edit
[c11concurrency-benchmarks.git] / jsbench-2013.1 / facebook / chrome / urem.js
1 /* Replayable replacements for global functions */
2
3 /***************************************************************
4  * BEGIN STABLE.JS
5  **************************************************************/
6 //! stable.js 0.1.3, https://github.com/Two-Screen/stable
7 //! © 2012 Stéphan Kochen, Angry Bytes. MIT licensed.
8 (function() {
9
10 // A stable array sort, because `Array#sort()` is not guaranteed stable.
11 // This is an implementation of merge sort, without recursion.
12
13 var stable = function(arr, comp) {
14     if (typeof(comp) !== 'function') {
15         comp = function(a, b) {
16             a = String(a);
17             b = String(b);
18             if (a < b) return -1;
19             if (a > b) return 1;
20             return 0;
21         };
22     }
23
24     var len = arr.length;
25
26     if (len <= 1) return arr;
27
28     // Rather than dividing input, simply iterate chunks of 1, 2, 4, 8, etc.
29     // Chunks are the size of the left or right hand in merge sort.
30     // Stop when the left-hand covers all of the array.
31     var oarr = arr;
32     for (var chk = 1; chk < len; chk *= 2) {
33         arr = pass(arr, comp, chk);
34     }
35     for (var i = 0; i < len; i++) {
36         oarr[i] = arr[i];
37     }
38     return oarr;
39 };
40
41 // Run a single pass with the given chunk size. Returns a new array.
42 var pass = function(arr, comp, chk) {
43     var len = arr.length;
44     // Output, and position.
45     var result = new Array(len);
46     var i = 0;
47     // Step size / double chunk size.
48     var dbl = chk * 2;
49     // Bounds of the left and right chunks.
50     var l, r, e;
51     // Iterators over the left and right chunk.
52     var li, ri;
53
54     // Iterate over pairs of chunks.
55     for (l = 0; l < len; l += dbl) {
56         r = l + chk;
57         e = r + chk;
58         if (r > len) r = len;
59         if (e > len) e = len;
60
61         // Iterate both chunks in parallel.
62         li = l;
63         ri = r;
64         while (true) {
65             // Compare the chunks.
66             if (li < r && ri < e) {
67                 // This works for a regular `sort()` compatible comparator,
68                 // but also for a simple comparator like: `a > b`
69                 if (comp(arr[li], arr[ri]) <= 0) {
70                     result[i++] = arr[li++];
71                 }
72                 else {
73                     result[i++] = arr[ri++];
74                 }
75             }
76             // Nothing to compare, just flush what's left.
77             else if (li < r) {
78                 result[i++] = arr[li++];
79             }
80             else if (ri < e) {
81                 result[i++] = arr[ri++];
82             }
83             // Both iterators are at the chunk ends.
84             else {
85                 break;
86             }
87         }
88     }
89
90     return result;
91 };
92
93 var arrsort = function(comp) {
94     return stable(this, comp);
95 };
96
97 if (Object.defineProperty) {
98     Object.defineProperty(Array.prototype, "sort", {
99         configurable: true, writable: true, enumerable: false,
100         value: arrsort
101     });
102 } else {
103     Array.prototype.sort = arrsort;
104 }
105
106 })();
107 /***************************************************************
108  * END STABLE.JS
109  **************************************************************/
110
111 /*
112  * In a generated replay, this file is partially common, boilerplate code
113  * included in every replay, and partially generated replay code. The following
114  * header applies to the boilerplate code. A comment indicating "Auto-generated
115  * below this comment" marks the separation between these two parts.
116  *
117  * Copyright (C) 2011, 2012 Purdue University
118  * Written by Gregor Richards
119  * All rights reserved.
120  * 
121  * Redistribution and use in source and binary forms, with or without
122  * modification, are permitted provided that the following conditions are met:
123  * 
124  * 1. Redistributions of source code must retain the above copyright notice,
125  *    this list of conditions and the following disclaimer.
126  * 2. Redistributions in binary form must reproduce the above copyright notice,
127  *    this list of conditions and the following disclaimer in the documentation
128  *    and/or other materials provided with the distribution.
129  * 
130  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
131  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
132  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
133  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
134  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
135  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
136  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
137  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
138  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
139  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
140  * POSSIBILITY OF SUCH DAMAGE.
141  */
142
143 (function() {
144     // global eval alias
145     var geval = eval;
146
147     // detect if we're in a browser or not
148     var inbrowser = false;
149     var inharness = false;
150     var finished = false;
151     if (typeof window !== "undefined" && "document" in window) {
152         inbrowser = true;
153         if (window.parent && "JSBNG_handleResult" in window.parent) {
154             inharness = true;
155         }
156     } else if (typeof global !== "undefined") {
157         window = global;
158         window.top = window;
159     } else {
160         window = (function() { return this; })();
161         window.top = window;
162     }
163
164     if ("console" in window) {
165         window.JSBNG_Console = window.console;
166     }
167
168     var callpath = [];
169
170     // global state
171     var JSBNG_Replay = window.top.JSBNG_Replay = {
172         push: function(arr, fun) {
173             arr.push(fun);
174             return fun;
175         },
176
177         path: function(str) {
178             verifyPath(str);
179         },
180
181         forInKeys: function(of) {
182             var keys = [];
183             for (var k in of)
184                 keys.push(k);
185             return keys.sort();
186         }
187     };
188
189     // the actual replay runner
190     function onload() {
191         try {
192             delete window.onload;
193         } catch (ex) {}
194
195         var jr = JSBNG_Replay$;
196         var cb = function() {
197             var end = new Date().getTime();
198             finished = true;
199
200             var msg = "Time: " + (end - st) + "ms";
201     
202             if (inharness) {
203                 window.parent.JSBNG_handleResult({error:false, time:(end - st)});
204             } else if (inbrowser) {
205                 var res = document.createElement("div");
206     
207                 res.style.position = "fixed";
208                 res.style.left = "1em";
209                 res.style.top = "1em";
210                 res.style.width = "35em";
211                 res.style.height = "5em";
212                 res.style.padding = "1em";
213                 res.style.backgroundColor = "white";
214                 res.style.color = "black";
215                 res.appendChild(document.createTextNode(msg));
216     
217                 document.body.appendChild(res);
218             } else if (typeof console !== "undefined") {
219                 console.log(msg);
220             } else if (typeof print !== "undefined") {
221                 // hopefully not the browser print() function :)
222                 print(msg);
223             }
224         };
225
226         // force it to JIT
227         jr(false);
228
229         // then time it
230         var st = new Date().getTime();
231         while (jr !== null) {
232             jr = jr(true, cb);
233         }
234     }
235
236     // add a frame at replay time
237     function iframe(pageid) {
238         var iw;
239         if (inbrowser) {
240             // represent the iframe as an iframe (of course)
241             var iframe = document.createElement("iframe");
242             iframe.style.display = "none";
243             document.body.appendChild(iframe);
244             iw = iframe.contentWindow;
245             iw.document.write("<script type=\"text/javascript\">var JSBNG_Replay_geval = eval;</script>");
246             iw.document.close();
247         } else {
248             // no general way, just lie and do horrible things
249             var topwin = window;
250             (function() {
251                 var window = {};
252                 window.window = window;
253                 window.top = topwin;
254                 window.JSBNG_Replay_geval = function(str) {
255                     eval(str);
256                 }
257                 iw = window;
258             })();
259         }
260         return iw;
261     }
262
263     // called at the end of the replay stuff
264     function finalize() {
265         if (inbrowser) {
266             setTimeout(onload, 0);
267         } else {
268             onload();
269         }
270     }
271
272     // verify this recorded value and this replayed value are close enough
273     function verify(rep, rec) {
274         if (rec !== rep &&
275             (rep === rep || rec === rec) /* NaN test */) {
276             // FIXME?
277             if (typeof rec === "function" && typeof rep === "function") {
278                 return true;
279             }
280             if (typeof rec !== "object" || rec === null ||
281                 !(("__JSBNG_unknown_" + typeof(rep)) in rec)) {
282                 return false;
283             }
284         }
285         return true;
286     }
287
288     // general message
289     var firstMessage = true;
290     function replayMessage(msg) {
291         if (inbrowser) {
292             if (firstMessage)
293                 document.open();
294             firstMessage = false;
295             document.write(msg);
296         } else {
297             console.log(msg);
298         }
299     }
300
301     // complain when there's an error
302     function verificationError(msg) {
303         if (finished) return;
304         if (inharness) {
305             window.parent.JSBNG_handleResult({error:true, msg: msg});
306         } else replayMessage(msg);
307         throw new Error();
308     }
309
310     // to verify a set
311     function verifySet(objstr, obj, prop, gvalstr, gval) {
312         if (/^on/.test(prop)) {
313             // these aren't instrumented compatibly
314             return;
315         }
316
317         if (!verify(obj[prop], gval)) {
318             var bval = obj[prop];
319             var msg = "Verification failure! " + objstr + "." + prop + " is not " + gvalstr + ", it's " + bval + "!";
320             verificationError(msg);
321         }
322     }
323
324     // to verify a call or new
325     function verifyCall(iscall, func, cthis, cargs) {
326         var ok = true;
327         var callArgs = func.callArgs[func.inst];
328         iscall = iscall ? 1 : 0;
329         if (cargs.length !== callArgs.length - 1) {
330             ok = false;
331         } else {
332             if (iscall && !verify(cthis, callArgs[0])) ok = false;
333             for (var i = 0; i < cargs.length; i++) {
334                 if (!verify(cargs[i], callArgs[i+1])) ok = false;
335             }
336         }
337         if (!ok) {
338             var msg = "Call verification failure!";
339             verificationError(msg);
340         }
341
342         return func.returns[func.inst++];
343     }
344
345     // to verify the callpath
346     function verifyPath(func) {
347         var real = callpath.shift();
348         if (real !== func) {
349             var msg = "Call path verification failure! Expected " + real + ", found " + func;
350             verificationError(msg);
351         }
352     }
353
354     // figure out how to define getters
355     var defineGetter;
356     if (Object.defineProperty) {
357         var odp = Object.defineProperty;
358         defineGetter = function(obj, prop, getter, setter) {
359             if (typeof setter === "undefined") setter = function(){};
360             odp(obj, prop, {"enumerable": true, "configurable": true, "get": getter, "set": setter});
361         };
362     } else if (Object.prototype.__defineGetter__) {
363         var opdg = Object.prototype.__defineGetter__;
364         var opds = Object.prototype.__defineSetter__;
365         defineGetter = function(obj, prop, getter, setter) {
366             if (typeof setter === "undefined") setter = function(){};
367             opdg.call(obj, prop, getter);
368             opds.call(obj, prop, setter);
369         };
370     } else {
371         defineGetter = function() {
372             verificationError("This replay requires getters for correct behavior, and your JS engine appears to be incapable of defining getters. Sorry!");
373         };
374     }
375
376     var defineRegetter = function(obj, prop, getter, setter) {
377         defineGetter(obj, prop, function() {
378             return getter.call(this, prop);
379         }, function(val) {
380             // once it's set by the client, it's claimed
381             setter.call(this, prop, val);
382             Object.defineProperty(obj, prop, {
383                 "enumerable": true, "configurable": true, "writable": true,
384                 "value": val
385             });
386         });
387     }
388
389     // for calling events
390     var fpc = Function.prototype.call;
391
392 // resist the urge, don't put a })(); here!
393 /******************************************************************************
394  * Auto-generated below this comment
395  *****************************************************************************/
396 var ow974244559 = window;
397 var f974244559_0;
398 var o0;
399 var o1;
400 var o2;
401 var f974244559_4;
402 var f974244559_7;
403 var f974244559_11;
404 var f974244559_12;
405 var f974244559_13;
406 var f974244559_14;
407 var f974244559_15;
408 var o3;
409 var o4;
410 var o5;
411 var f974244559_49;
412 var o6;
413 var f974244559_51;
414 var o7;
415 var f974244559_53;
416 var f974244559_54;
417 var f974244559_57;
418 var f974244559_59;
419 var f974244559_60;
420 var f974244559_61;
421 var f974244559_62;
422 var f974244559_70;
423 var f974244559_157;
424 var f974244559_272;
425 var f974244559_420;
426 var f974244559_468;
427 var f974244559_470;
428 var f974244559_471;
429 var f974244559_472;
430 var f974244559_473;
431 var f974244559_475;
432 var o8;
433 var o9;
434 var f974244559_478;
435 var f974244559_480;
436 var o10;
437 var f974244559_482;
438 var o11;
439 var o12;
440 var f974244559_485;
441 var f974244559_486;
442 var o13;
443 var o14;
444 var o15;
445 var o16;
446 var o17;
447 var o18;
448 var o19;
449 var o20;
450 var o21;
451 var o22;
452 var o23;
453 var f974244559_500;
454 var f974244559_502;
455 var o24;
456 var o25;
457 var f974244559_507;
458 var o26;
459 var o27;
460 var o28;
461 var f974244559_514;
462 var o29;
463 var f974244559_517;
464 var f974244559_519;
465 var f974244559_522;
466 var f974244559_523;
467 var f974244559_527;
468 var o30;
469 var o31;
470 var o32;
471 var o33;
472 var o34;
473 var o35;
474 var o36;
475 var o37;
476 var o38;
477 var o39;
478 var o40;
479 var o41;
480 var o42;
481 var o43;
482 var o44;
483 var o45;
484 var o46;
485 var o47;
486 var fo974244559_632_firstChild;
487 var f974244559_640;
488 var f974244559_643;
489 var f974244559_644;
490 var o48;
491 var o49;
492 var o50;
493 var fo974244559_651_firstChild;
494 var f974244559_658;
495 var o51;
496 var o52;
497 var o53;
498 var o54;
499 var o55;
500 var o56;
501 var f974244559_702;
502 var o57;
503 var o58;
504 var fo974244559_656_firstChild;
505 var o59;
506 var o60;
507 var o61;
508 var o62;
509 var fo974244559_928_firstChild;
510 var o63;
511 var o64;
512 var o65;
513 var o66;
514 var o67;
515 var o68;
516 var o69;
517 var o70;
518 var o71;
519 var o72;
520 var o73;
521 var o74;
522 var o75;
523 var o76;
524 var fo974244559_1_cookie;
525 var f974244559_1087;
526 var f974244559_1088;
527 var f974244559_1089;
528 var o77;
529 var o78;
530 var o79;
531 var o80;
532 var o81;
533 var o82;
534 var o83;
535 var o84;
536 var o85;
537 var f974244559_1110;
538 var o86;
539 var o87;
540 var o88;
541 var o89;
542 var o90;
543 var o91;
544 var o92;
545 var o93;
546 var o94;
547 var o95;
548 var o96;
549 var o97;
550 var o98;
551 var o99;
552 var f974244559_1202;
553 var o100;
554 var o101;
555 var o102;
556 var f974244559_1240;
557 var f974244559_1241;
558 var f974244559_1242;
559 var o103;
560 var f974244559_1244;
561 var o104;
562 var o105;
563 var f974244559_1253;
564 var f974244559_1254;
565 var f974244559_1257;
566 var f974244559_1258;
567 var f974244559_1259;
568 var f974244559_1262;
569 var f974244559_1263;
570 var o106;
571 var fo974244559_1269_firstChild;
572 var o107;
573 var o108;
574 var o109;
575 var o110;
576 var o111;
577 var o112;
578 var o113;
579 var o114;
580 var o115;
581 var o116;
582 var o117;
583 var o118;
584 var o119;
585 var o120;
586 var o121;
587 var o122;
588 var o123;
589 var o124;
590 var o125;
591 var o126;
592 var o127;
593 var o128;
594 var o129;
595 var o130;
596 var o131;
597 var o132;
598 var o133;
599 var fo974244559_1501_firstChild;
600 var fo974244559_1518_firstChild;
601 var o134;
602 var o135;
603 var f974244559_1564;
604 var f974244559_1565;
605 var f974244559_1566;
606 var f974244559_1568;
607 var o136;
608 var o137;
609 var o138;
610 var o139;
611 var o140;
612 var o141;
613 var f974244559_1576;
614 var o142;
615 var o143;
616 var o144;
617 var o145;
618 var o146;
619 var o147;
620 var o148;
621 var o149;
622 var f974244559_1617;
623 var o150;
624 var o151;
625 var o152;
626 var o153;
627 var o154;
628 var o155;
629 var o156;
630 var o157;
631 var f974244559_1628;
632 var o158;
633 var o159;
634 var o160;
635 var o161;
636 var o162;
637 var o163;
638 var o164;
639 var o165;
640 var o166;
641 var o167;
642 var o168;
643 var o169;
644 var o170;
645 var o171;
646 var fo974244559_1653_firstChild;
647 var f974244559_1659;
648 var o172;
649 var o173;
650 var o174;
651 var o175;
652 var o176;
653 var o177;
654 var o178;
655 var o179;
656 var o180;
657 var o181;
658 var o182;
659 var o183;
660 var o184;
661 var o185;
662 var o186;
663 var o187;
664 var o188;
665 var o189;
666 var o190;
667 var o191;
668 var fo974244559_1689_firstChild;
669 var o192;
670 var o193;
671 var o194;
672 var o195;
673 var o196;
674 var o197;
675 var o198;
676 var o199;
677 var o200;
678 var o201;
679 var o202;
680 var o203;
681 var o204;
682 var f974244559_1727;
683 var f974244559_1728;
684 var o205;
685 var o206;
686 var o207;
687 var o208;
688 var f974244559_1739;
689 var o209;
690 var f974244559_1745;
691 var o210;
692 var o211;
693 var o212;
694 var o213;
695 var o214;
696 var o215;
697 var o216;
698 var o217;
699 var f974244559_1858;
700 var fo974244559_1863_Shockwave_Flash;
701 var fo974244559_1866_application_x_shockwave_flash;
702 var f974244559_1874;
703 var f974244559_1881;
704 var f974244559_1882;
705 var o218;
706 var o219;
707 var f974244559_1902;
708 var fo974244559_1903_firstChild;
709 var f974244559_1909;
710 var f974244559_2086;
711 var fo974244559_2090_firstChild;
712 var f974244559_2097;
713 var f974244559_2099;
714 var f974244559_2100;
715 var f974244559_2101;
716 var f974244559_2102;
717 var f974244559_2104;
718 var f974244559_2105;
719 var f974244559_2106;
720 var f974244559_2109;
721 var f974244559_2110;
722 var f974244559_2112;
723 var f974244559_2115;
724 var f974244559_2116;
725 var f974244559_2118;
726 var f974244559_2119;
727 var f974244559_2123;
728 var f974244559_2124;
729 var f974244559_2125;
730 var f974244559_2127;
731 var f974244559_2128;
732 var f974244559_2129;
733 var f974244559_2130;
734 var f974244559_2131;
735 var f974244559_2132;
736 var f974244559_2133;
737 var f974244559_2135;
738 var f974244559_2147;
739 var f974244559_2148;
740 var f974244559_2149;
741 var f974244559_2150;
742 var f974244559_2151;
743 var o220;
744 var f974244559_2157;
745 var o221;
746 var o222;
747 var f974244559_2161;
748 var f974244559_2162;
749 var f974244559_2163;
750 var f974244559_2164;
751 var o223;
752 var o224;
753 var o225;
754 var fo974244559_2172_style;
755 var f974244559_2178;
756 var fo974244559_2174_style;
757 var f974244559_2468;
758 var f974244559_2470;
759 var f974244559_2471;
760 var f974244559_2472;
761 var f974244559_2566;
762 var f974244559_2853;
763 var f974244559_2864;
764 var f974244559_2914;
765 var f974244559_2916;
766 var fo974244559_2932_readyState;
767 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1 = [];
768 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190 = [];
769 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_166 = [];
770 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_169 = [];
771 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_222 = [];
772 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_225 = [];
773 JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_845 = [];
774 JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523 = [];
775 JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270 = [];
776 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_96 = [];
777 JSBNG_Replay.sa0cdb1bc3c127a88a086a13f4a6ca1502f98adf1_257 = [];
778 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757 = [];
779 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_739 = [];
780 JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_457 = [];
781 JSBNG_Replay.s6de57b149b09c494ec606f82771caf93a5a215db_133 = [];
782 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_226 = [];
783 // 1
784 // record generated by JSBench 8fa236f2f0ec at 2013-07-10T21:19:14.012Z
785 // 2
786 // 3
787 f974244559_0 = function() { return f974244559_0.returns[f974244559_0.inst++]; };
788 f974244559_0.returns = [];
789 f974244559_0.inst = 0;
790 // 4
791 ow974244559.JSBNG__Date = f974244559_0;
792 // 5
793 o0 = {};
794 // 6
795 ow974244559.JSBNG__document = o0;
796 // 7
797 o1 = {};
798 // 8
799 ow974244559.JSBNG__sessionStorage = o1;
800 // 9
801 o2 = {};
802 // 10
803 ow974244559.JSBNG__localStorage = o2;
804 // 11
805 f974244559_4 = function() { return f974244559_4.returns[f974244559_4.inst++]; };
806 f974244559_4.returns = [];
807 f974244559_4.inst = 0;
808 // 12
809 ow974244559.JSBNG__getComputedStyle = f974244559_4;
810 // 17
811 f974244559_7 = function() { return f974244559_7.returns[f974244559_7.inst++]; };
812 f974244559_7.returns = [];
813 f974244559_7.inst = 0;
814 // 18
815 ow974244559.JSBNG__addEventListener = f974244559_7;
816 // 19
817 ow974244559.JSBNG__top = ow974244559;
818 // 24
819 ow974244559.JSBNG__scrollX = 0;
820 // 25
821 ow974244559.JSBNG__scrollY = 0;
822 // 28
823 f974244559_11 = function() { return f974244559_11.returns[f974244559_11.inst++]; };
824 f974244559_11.returns = [];
825 f974244559_11.inst = 0;
826 // 29
827 ow974244559.JSBNG__scrollBy = f974244559_11;
828 // 30
829 f974244559_12 = function() { return f974244559_12.returns[f974244559_12.inst++]; };
830 f974244559_12.returns = [];
831 f974244559_12.inst = 0;
832 // 31
833 ow974244559.JSBNG__setTimeout = f974244559_12;
834 // 32
835 f974244559_13 = function() { return f974244559_13.returns[f974244559_13.inst++]; };
836 f974244559_13.returns = [];
837 f974244559_13.inst = 0;
838 // 33
839 ow974244559.JSBNG__setInterval = f974244559_13;
840 // 34
841 f974244559_14 = function() { return f974244559_14.returns[f974244559_14.inst++]; };
842 f974244559_14.returns = [];
843 f974244559_14.inst = 0;
844 // 35
845 ow974244559.JSBNG__clearTimeout = f974244559_14;
846 // 36
847 f974244559_15 = function() { return f974244559_15.returns[f974244559_15.inst++]; };
848 f974244559_15.returns = [];
849 f974244559_15.inst = 0;
850 // 37
851 ow974244559.JSBNG__clearInterval = f974244559_15;
852 // 42
853 ow974244559.JSBNG__frames = ow974244559;
854 // 45
855 ow974244559.JSBNG__self = ow974244559;
856 // 46
857 o3 = {};
858 // 47
859 ow974244559.JSBNG__navigator = o3;
860 // 50
861 o4 = {};
862 // 51
863 ow974244559.JSBNG__history = o4;
864 // 62
865 ow974244559.JSBNG__closed = false;
866 // 65
867 ow974244559.JSBNG__opener = null;
868 // 66
869 ow974244559.JSBNG__defaultStatus = "";
870 // 67
871 o5 = {};
872 // 68
873 ow974244559.JSBNG__location = o5;
874 // 69
875 ow974244559.JSBNG__innerWidth = 1050;
876 // 70
877 ow974244559.JSBNG__innerHeight = 588;
878 // 71
879 ow974244559.JSBNG__outerWidth = 1050;
880 // 72
881 ow974244559.JSBNG__outerHeight = 660;
882 // 73
883 ow974244559.JSBNG__screenX = 17;
884 // 74
885 ow974244559.JSBNG__screenY = 32;
886 // 75
887 ow974244559.JSBNG__pageXOffset = 0;
888 // 76
889 ow974244559.JSBNG__pageYOffset = 0;
890 // 101
891 ow974244559.JSBNG__frameElement = null;
892 // 118
893 f974244559_49 = function() { return f974244559_49.returns[f974244559_49.inst++]; };
894 f974244559_49.returns = [];
895 f974244559_49.inst = 0;
896 // 119
897 ow974244559.JSBNG__webkitIDBTransaction = f974244559_49;
898 // 120
899 o6 = {};
900 // 121
901 ow974244559.JSBNG__webkitNotifications = o6;
902 // 122
903 f974244559_51 = function() { return f974244559_51.returns[f974244559_51.inst++]; };
904 f974244559_51.returns = [];
905 f974244559_51.inst = 0;
906 // 123
907 ow974244559.JSBNG__webkitIDBIndex = f974244559_51;
908 // 124
909 o7 = {};
910 // 125
911 ow974244559.JSBNG__webkitIndexedDB = o7;
912 // 126
913 ow974244559.JSBNG__screenLeft = 17;
914 // 127
915 f974244559_53 = function() { return f974244559_53.returns[f974244559_53.inst++]; };
916 f974244559_53.returns = [];
917 f974244559_53.inst = 0;
918 // 128
919 ow974244559.JSBNG__webkitIDBFactory = f974244559_53;
920 // 129
921 ow974244559.JSBNG__clientInformation = o3;
922 // 130
923 f974244559_54 = function() { return f974244559_54.returns[f974244559_54.inst++]; };
924 f974244559_54.returns = [];
925 f974244559_54.inst = 0;
926 // 131
927 ow974244559.JSBNG__webkitIDBCursor = f974244559_54;
928 // 132
929 ow974244559.JSBNG__defaultstatus = "";
930 // 137
931 f974244559_57 = function() { return f974244559_57.returns[f974244559_57.inst++]; };
932 f974244559_57.returns = [];
933 f974244559_57.inst = 0;
934 // 138
935 ow974244559.JSBNG__webkitIDBDatabase = f974244559_57;
936 // 141
937 f974244559_59 = function() { return f974244559_59.returns[f974244559_59.inst++]; };
938 f974244559_59.returns = [];
939 f974244559_59.inst = 0;
940 // 142
941 ow974244559.JSBNG__webkitIDBRequest = f974244559_59;
942 // 143
943 f974244559_60 = function() { return f974244559_60.returns[f974244559_60.inst++]; };
944 f974244559_60.returns = [];
945 f974244559_60.inst = 0;
946 // 144
947 ow974244559.JSBNG__webkitIDBObjectStore = f974244559_60;
948 // 145
949 ow974244559.JSBNG__devicePixelRatio = 1;
950 // 146
951 f974244559_61 = function() { return f974244559_61.returns[f974244559_61.inst++]; };
952 f974244559_61.returns = [];
953 f974244559_61.inst = 0;
954 // 147
955 ow974244559.JSBNG__webkitURL = f974244559_61;
956 // 148
957 f974244559_62 = function() { return f974244559_62.returns[f974244559_62.inst++]; };
958 f974244559_62.returns = [];
959 f974244559_62.inst = 0;
960 // 149
961 ow974244559.JSBNG__webkitIDBKeyRange = f974244559_62;
962 // 150
963 ow974244559.JSBNG__offscreenBuffering = true;
964 // 151
965 ow974244559.JSBNG__screenTop = 32;
966 // 166
967 f974244559_70 = function() { return f974244559_70.returns[f974244559_70.inst++]; };
968 f974244559_70.returns = [];
969 f974244559_70.inst = 0;
970 // 167
971 ow974244559.JSBNG__XMLHttpRequest = f974244559_70;
972 // 170
973 ow974244559.JSBNG__URL = f974244559_61;
974 // 171
975 ow974244559.JSBNG__name = "";
976 // 178
977 ow974244559.JSBNG__status = "";
978 // 343
979 f974244559_157 = function() { return f974244559_157.returns[f974244559_157.inst++]; };
980 f974244559_157.returns = [];
981 f974244559_157.inst = 0;
982 // 344
983 ow974244559.JSBNG__Document = f974244559_157;
984 // 573
985 f974244559_272 = function() { return f974244559_272.returns[f974244559_272.inst++]; };
986 f974244559_272.returns = [];
987 f974244559_272.inst = 0;
988 // 574
989 ow974244559.JSBNG__Event = f974244559_272;
990 // 619
991 ow974244559.JSBNG__XMLDocument = f974244559_157;
992 // 840
993 ow974244559.JSBNG__TEMPORARY = 0;
994 // 841
995 ow974244559.JSBNG__PERSISTENT = 1;
996 // 872
997 f974244559_420 = function() { return f974244559_420.returns[f974244559_420.inst++]; };
998 f974244559_420.returns = [];
999 f974244559_420.inst = 0;
1000 // 873
1001 ow974244559.JSBNG__WebKitMutationObserver = f974244559_420;
1002 // 892
1003 ow974244559.JSBNG__indexedDB = o7;
1004 // undefined
1005 o7 = null;
1006 // 893
1007 o7 = {};
1008 // 894
1009 ow974244559.JSBNG__Intl = o7;
1010 // 895
1011 ow974244559.JSBNG__v8Intl = o7;
1012 // undefined
1013 o7 = null;
1014 // 946
1015 ow974244559.JSBNG__IDBTransaction = f974244559_49;
1016 // 947
1017 ow974244559.JSBNG__IDBRequest = f974244559_59;
1018 // 950
1019 ow974244559.JSBNG__IDBObjectStore = f974244559_60;
1020 // 951
1021 ow974244559.JSBNG__IDBKeyRange = f974244559_62;
1022 // 952
1023 ow974244559.JSBNG__IDBIndex = f974244559_51;
1024 // 953
1025 ow974244559.JSBNG__IDBFactory = f974244559_53;
1026 // 954
1027 ow974244559.JSBNG__IDBDatabase = f974244559_57;
1028 // 957
1029 ow974244559.JSBNG__IDBCursor = f974244559_54;
1030 // 958
1031 ow974244559.JSBNG__MutationObserver = f974244559_420;
1032 // 979
1033 f974244559_468 = function() { return f974244559_468.returns[f974244559_468.inst++]; };
1034 f974244559_468.returns = [];
1035 f974244559_468.inst = 0;
1036 // 980
1037 ow974244559.JSBNG__requestAnimationFrame = f974244559_468;
1038 // 983
1039 ow974244559.JSBNG__onerror = null;
1040 // 984
1041 f974244559_470 = function() { return f974244559_470.returns[f974244559_470.inst++]; };
1042 f974244559_470.returns = [];
1043 f974244559_470.inst = 0;
1044 // 985
1045 ow974244559.Math.JSBNG__random = f974244559_470;
1046 // 986
1047 // 990
1048 f974244559_471 = function() { return f974244559_471.returns[f974244559_471.inst++]; };
1049 f974244559_471.returns = [];
1050 f974244559_471.inst = 0;
1051 // 991
1052 f974244559_0.now = f974244559_471;
1053 // 992
1054 f974244559_471.returns.push(1373491283044);
1055 // 993
1056 o5.search = "";
1057 // 1009
1058 // 1010
1059 // 1012
1060 f974244559_472 = function() { return f974244559_472.returns[f974244559_472.inst++]; };
1061 f974244559_472.returns = [];
1062 f974244559_472.inst = 0;
1063 // 1013
1064 o0.JSBNG__addEventListener = f974244559_472;
1065 // 1014
1066 o3.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36";
1067 // 1016
1068 f974244559_472.returns.push(undefined);
1069 // 1017
1070 f974244559_473 = function() { return f974244559_473.returns[f974244559_473.inst++]; };
1071 f974244559_473.returns = [];
1072 f974244559_473.inst = 0;
1073 // 1018
1074 ow974244559.JSBNG__onload = f974244559_473;
1075 // 1026
1076 o7 = {};
1077 // 1033
1078 o0.documentMode = void 0;
1079 // 1035
1080 f974244559_475 = function() { return f974244559_475.returns[f974244559_475.inst++]; };
1081 f974244559_475.returns = [];
1082 f974244559_475.inst = 0;
1083 // 1036
1084 o0.getElementsByTagName = f974244559_475;
1085 // 1037
1086 o8 = {};
1087 // 1038
1088 f974244559_475.returns.push(o8);
1089 // 1039
1090 o8.length = 1;
1091 // 1040
1092 o9 = {};
1093 // 1041
1094 o8["0"] = o9;
1095 // undefined
1096 o8 = null;
1097 // 1042
1098 f974244559_478 = function() { return f974244559_478.returns[f974244559_478.inst++]; };
1099 f974244559_478.returns = [];
1100 f974244559_478.inst = 0;
1101 // 1043
1102 o0.createDocumentFragment = f974244559_478;
1103 // 1044
1104 o8 = {};
1105 // 1045
1106 f974244559_478.returns.push(o8);
1107 // 1047
1108 f974244559_471.returns.push(1373491283059);
1109 // 1048
1110 f974244559_480 = function() { return f974244559_480.returns[f974244559_480.inst++]; };
1111 f974244559_480.returns = [];
1112 f974244559_480.inst = 0;
1113 // 1049
1114 o0.createElement = f974244559_480;
1115 // 1050
1116 o10 = {};
1117 // 1051
1118 f974244559_480.returns.push(o10);
1119 // 1052
1120 // 1053
1121 // 1054
1122 // 1055
1123 // 1056
1124 // 1057
1125 // 1058
1126 f974244559_482 = function() { return f974244559_482.returns[f974244559_482.inst++]; };
1127 f974244559_482.returns = [];
1128 f974244559_482.inst = 0;
1129 // 1059
1130 o8.appendChild = f974244559_482;
1131 // 1060
1132 f974244559_482.returns.push(o10);
1133 // 1062
1134 f974244559_471.returns.push(1373491283060);
1135 // 1064
1136 o11 = {};
1137 // 1065
1138 f974244559_480.returns.push(o11);
1139 // 1066
1140 // 1067
1141 // 1068
1142 // 1069
1143 // 1070
1144 // 1071
1145 // 1073
1146 f974244559_482.returns.push(o11);
1147 // 1075
1148 f974244559_471.returns.push(1373491283061);
1149 // 1077
1150 o12 = {};
1151 // 1078
1152 f974244559_480.returns.push(o12);
1153 // 1079
1154 // 1080
1155 // 1081
1156 // 1082
1157 // 1083
1158 // 1084
1159 // 1086
1160 f974244559_482.returns.push(o12);
1161 // 1087
1162 o9.appendChild = f974244559_482;
1163 // 1088
1164 f974244559_482.returns.push(o8);
1165 // undefined
1166 o8 = null;
1167 // 1097
1168 f974244559_470.returns.push(0.4609540579840541);
1169 // 1098
1170 f974244559_485 = function() { return f974244559_485.returns[f974244559_485.inst++]; };
1171 f974244559_485.returns = [];
1172 f974244559_485.inst = 0;
1173 // 1099
1174 ow974244559.JSBNG__onunload = f974244559_485;
1175 // 1101
1176 f974244559_471.returns.push(1373491283074);
1177 // 1102
1178 f974244559_486 = function() { return f974244559_486.returns[f974244559_486.inst++]; };
1179 f974244559_486.returns = [];
1180 f974244559_486.inst = 0;
1181 // 1103
1182 o1.getItem = f974244559_486;
1183 // 1104
1184 f974244559_486.returns.push(null);
1185 // 1106
1186 f974244559_471.returns.push(1373491283075);
1187 // 1107
1188 f974244559_14.returns.push(undefined);
1189 // 1108
1190 f974244559_12.returns.push(1);
1191 // 1112
1192 o8 = {};
1193 // 1113
1194 o0.documentElement = o8;
1195 // 1114
1196 o8.className = "highContrast no_js";
1197 // 1115
1198 // 1117
1199 o0.domain = "jsbngssl.www.facebook.com";
1200 // 1118
1201 // 1120
1202 o5.href = "https://www.facebook.com/LawlabeeTheWallaby";
1203 // 1159
1204 o13 = {};
1205 // 1160
1206 f974244559_475.returns.push(o13);
1207 // 1161
1208 o13.length = 10;
1209 // 1162
1210 o14 = {};
1211 // 1163
1212 o13["0"] = o14;
1213 // 1164
1214 o14.rel = "alternate";
1215 // 1166
1216 o15 = {};
1217 // 1167
1218 o13["1"] = o15;
1219 // 1168
1220 o15.rel = "stylesheet";
1221 // 1170
1222 o15.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/TvSvrZCKhi2.css";
1223 // 1185
1224 o16 = {};
1225 // 1186
1226 o13["2"] = o16;
1227 // 1187
1228 o16.rel = "stylesheet";
1229 // 1189
1230 o16.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yr/r/18Su5nrioMP.css";
1231 // 1204
1232 o17 = {};
1233 // 1205
1234 o13["3"] = o17;
1235 // 1206
1236 o17.rel = "stylesheet";
1237 // 1208
1238 o17.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yR/r/CXfPMMHwvvH.css";
1239 // 1215
1240 o18 = {};
1241 // 1216
1242 o13["4"] = o18;
1243 // 1217
1244 o18.rel = "stylesheet";
1245 // 1219
1246 o18.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yi/r/4f32cuKS2xy.css";
1247 // 1230
1248 o19 = {};
1249 // 1231
1250 o13["5"] = o19;
1251 // 1232
1252 o19.rel = "stylesheet";
1253 // 1234
1254 o19.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/AXbdtQOFsWr.css";
1255 // 1241
1256 o20 = {};
1257 // 1242
1258 o13["6"] = o20;
1259 // 1243
1260 o20.rel = "shortcut icon";
1261 // 1245
1262 o21 = {};
1263 // 1246
1264 o13["7"] = o21;
1265 // 1247
1266 o21.rel = "stylesheet";
1267 // 1249
1268 o21.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/OWwnO_yMqhK.css";
1269 // 1252
1270 o22 = {};
1271 // 1253
1272 o13["8"] = o22;
1273 // 1254
1274 o22.rel = "stylesheet";
1275 // 1256
1276 o22.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/tOU0wFcLVo_.css";
1277 // 1261
1278 o23 = {};
1279 // 1262
1280 o13["9"] = o23;
1281 // undefined
1282 o13 = null;
1283 // 1263
1284 o23.rel = "stylesheet";
1285 // 1265
1286 o23.href = "http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/M-qAxLB_sZh.css";
1287 // 1340
1288 f974244559_471.returns.push(1373491283153);
1289 // 1342
1290 f974244559_471.returns.push(1373491283153);
1291 // 1343
1292 f974244559_14.returns.push(undefined);
1293 // 1344
1294 f974244559_12.returns.push(2);
1295 // 1351
1296 o8.clientWidth = 1050;
1297 // 1367
1298 o8.JSBNG__addEventListener = f974244559_472;
1299 // 1369
1300 f974244559_472.returns.push(undefined);
1301 // 1371
1302 f974244559_472.returns.push(undefined);
1303 // 1390
1304 // 1391
1305 // 1392
1306 // 1395
1307 f974244559_472.returns.push(undefined);
1308 // 1397
1309 o13 = {};
1310 // 1399
1311 o13.target = o8;
1312 // undefined
1313 o13 = null;
1314 // 1400
1315 f974244559_500 = function() { return f974244559_500.returns[f974244559_500.inst++]; };
1316 f974244559_500.returns = [];
1317 f974244559_500.inst = 0;
1318 // 1401
1319 o8.getAttribute = f974244559_500;
1320 // 1403
1321 f974244559_500.returns.push(null);
1322 // 1404
1323 o8.parentNode = o0;
1324 // 1405
1325 o0.getAttribute = void 0;
1326 // 1406
1327 o0.parentNode = null;
1328 // 1409
1329 f974244559_500.returns.push(null);
1330 // 1420
1331 f974244559_471.returns.push(1373491287156);
1332 // 1426
1333 f974244559_471.returns.push(1373491287158);
1334 // 1428
1335 f974244559_471.returns.push(1373491287158);
1336 // 1432
1337 f974244559_471.returns.push(1373491287159);
1338 // 1435
1339 f974244559_471.returns.push(1373491287160);
1340 // 1438
1341 f974244559_471.returns.push(1373491287160);
1342 // 1440
1343 f974244559_471.returns.push(1373491287161);
1344 // 1444
1345 o13 = {};
1346 // 1445
1347 f974244559_478.returns.push(o13);
1348 // 1447
1349 f974244559_482.returns.push(o13);
1350 // undefined
1351 o13 = null;
1352 // 1450
1353 f974244559_471.returns.push(1373491287162);
1354 // 1456
1355 f974244559_471.returns.push(1373491287206);
1356 // 1458
1357 f974244559_471.returns.push(1373491287207);
1358 // 1462
1359 f974244559_471.returns.push(1373491287207);
1360 // 1465
1361 f974244559_471.returns.push(1373491287208);
1362 // 1468
1363 f974244559_471.returns.push(1373491287208);
1364 // 1469
1365 f974244559_502 = function() { return f974244559_502.returns[f974244559_502.inst++]; };
1366 f974244559_502.returns = [];
1367 f974244559_502.inst = 0;
1368 // 1470
1369 o0.getElementById = f974244559_502;
1370 // 1471
1371 o13 = {};
1372 // 1472
1373 f974244559_502.returns.push(o13);
1374 // 1474
1375 o24 = {};
1376 // 1475
1377 f974244559_502.returns.push(o24);
1378 // 1476
1379 o25 = {};
1380 // 1477
1381 o24.firstChild = o25;
1382 // 1479
1383 o25.nodeType = 8;
1384 // 1481
1385 o25.nodeValue = " <div id=\"pagelet_main_column_personal\" data-referrer=\"pagelet_main_column_personal_timeline\"></div> ";
1386 // undefined
1387 o25 = null;
1388 // 1482
1389 o25 = {};
1390 // 1483
1391 o24.parentNode = o25;
1392 // 1484
1393 f974244559_507 = function() { return f974244559_507.returns[f974244559_507.inst++]; };
1394 f974244559_507.returns = [];
1395 f974244559_507.inst = 0;
1396 // 1485
1397 o25.removeChild = f974244559_507;
1398 // 1486
1399 f974244559_507.returns.push(o24);
1400 // undefined
1401 o24 = null;
1402 // 1487
1403 // 1488
1404 o13.getAttribute = f974244559_500;
1405 // 1489
1406 f974244559_500.returns.push("pagelet_timeline_main_column");
1407 // 1492
1408 f974244559_471.returns.push(1373491287211);
1409 // 1496
1410 o24 = {};
1411 // 1497
1412 f974244559_478.returns.push(o24);
1413 // 1499
1414 f974244559_482.returns.push(o24);
1415 // undefined
1416 o24 = null;
1417 // 1505
1418 f974244559_471.returns.push(1373491287224);
1419 // 1507
1420 f974244559_471.returns.push(1373491287225);
1421 // 1511
1422 f974244559_471.returns.push(1373491287225);
1423 // 1515
1424 o24 = {};
1425 // 1516
1426 f974244559_478.returns.push(o24);
1427 // 1518
1428 f974244559_471.returns.push(1373491287226);
1429 // 1519
1430 o0.createStyleSheet = void 0;
1431 // 1521
1432 o26 = {};
1433 // 1522
1434 f974244559_480.returns.push(o26);
1435 // 1523
1436 // 1524
1437 // 1525
1438 // 1527
1439 o27 = {};
1440 // 1528
1441 f974244559_480.returns.push(o27);
1442 // 1529
1443 // 1530
1444 o24.appendChild = f974244559_482;
1445 // 1531
1446 f974244559_482.returns.push(o27);
1447 // 1533
1448 f974244559_471.returns.push(1373491287227);
1449 // 1534
1450 f974244559_13.returns.push(3);
1451 // 1536
1452 o28 = {};
1453 // 1537
1454 f974244559_480.returns.push(o28);
1455 // 1538
1456 // 1539
1457 // 1540
1458 // 1542
1459 f974244559_482.returns.push(o28);
1460 // 1544
1461 f974244559_482.returns.push(o26);
1462 // 1546
1463 f974244559_482.returns.push(o24);
1464 // undefined
1465 o24 = null;
1466 // 1552
1467 o24 = {};
1468 // 1553
1469 f974244559_480.returns.push(o24);
1470 // 1554
1471 // 1556
1472 // 1557
1473 f974244559_514 = function() { return f974244559_514.returns[f974244559_514.inst++]; };
1474 f974244559_514.returns = [];
1475 f974244559_514.inst = 0;
1476 // 1558
1477 o24.getElementsByTagName = f974244559_514;
1478 // 1559
1479 o29 = {};
1480 // 1560
1481 f974244559_514.returns.push(o29);
1482 // 1561
1483 o29.length = 0;
1484 // undefined
1485 o29 = null;
1486 // 1563
1487 o29 = {};
1488 // 1564
1489 o24.childNodes = o29;
1490 // undefined
1491 o24 = null;
1492 // 1565
1493 f974244559_517 = function() { return f974244559_517.returns[f974244559_517.inst++]; };
1494 f974244559_517.returns = [];
1495 f974244559_517.inst = 0;
1496 // 1566
1497 o29.item = f974244559_517;
1498 // 1567
1499 o29.length = 1;
1500 // 1568
1501 o24 = {};
1502 // 1569
1503 o29["0"] = o24;
1504 // undefined
1505 o29 = null;
1506 // 1570
1507 f974244559_519 = function() { return f974244559_519.returns[f974244559_519.inst++]; };
1508 f974244559_519.returns = [];
1509 f974244559_519.inst = 0;
1510 // 1571
1511 o24.getAttributeNode = f974244559_519;
1512 // undefined
1513 o24 = null;
1514 // 1573
1515 o24 = {};
1516 // 1574
1517 f974244559_519.returns.push(o24);
1518 // 1575
1519 o24.value = "u_0_1";
1520 // undefined
1521 o24 = null;
1522 // 1578
1523 // 1579
1524 o24 = {};
1525 // 1580
1526 f974244559_272.prototype = o24;
1527 // 1582
1528 // 1583
1529 // 1584
1530 // 1585
1531 // 1586
1532 // 1587
1533 // 1589
1534 // 1590
1535 // 1591
1536 // 1592
1537 // 1593
1538 // 1594
1539 // undefined
1540 o24 = null;
1541 // 1595
1542 // 1596
1543 // 1597
1544 // 1598
1545 // 1599
1546 // 1600
1547 // 1601
1548 // 1602
1549 // 1603
1550 // 1604
1551 // 1605
1552 // 1606
1553 o3.msPointerEnabled = void 0;
1554 // 1607
1555 // 1608
1556 // 1614
1557 f974244559_471.returns.push(1373491287367);
1558 // 1615
1559 o0.body = o25;
1560 // 1616
1561 o25.getElementsByTagName = f974244559_514;
1562 // 1617
1563 f974244559_522 = function() { return f974244559_522.returns[f974244559_522.inst++]; };
1564 f974244559_522.returns = [];
1565 f974244559_522.inst = 0;
1566 // 1618
1567 o0.querySelectorAll = f974244559_522;
1568 // 1619
1569 f974244559_523 = function() { return f974244559_523.returns[f974244559_523.inst++]; };
1570 f974244559_523.returns = [];
1571 f974244559_523.inst = 0;
1572 // 1620
1573 o25.querySelectorAll = f974244559_523;
1574 // 1621
1575 o24 = {};
1576 // 1622
1577 f974244559_523.returns.push(o24);
1578 // 1623
1579 o24.length = 0;
1580 // undefined
1581 o24 = null;
1582 // 1624
1583 f974244559_14.returns.push(undefined);
1584 // 1625
1585 f974244559_12.returns.push(4);
1586 // 1628
1587 o24 = {};
1588 // 1629
1589 o29 = {};
1590 // 1631
1591 o24.length = 1;
1592 // 1632
1593 o24["0"] = "AyUu6";
1594 // 1640
1595 o8.nodeName = "HTML";
1596 // 1641
1597 o8.__FB_TOKEN = void 0;
1598 // 1642
1599 // 1644
1600 f974244559_527 = function() { return f974244559_527.returns[f974244559_527.inst++]; };
1601 f974244559_527.returns = [];
1602 f974244559_527.inst = 0;
1603 // 1645
1604 o8.hasAttribute = f974244559_527;
1605 // 1647
1606 f974244559_527.returns.push(false);
1607 // 1650
1608 f974244559_472.returns.push(undefined);
1609 // 1651
1610 o8.JSBNG__onmousewheel = null;
1611 // 1653
1612 o30 = {};
1613 // 1654
1614 o31 = {};
1615 // 1656
1616 o30.length = 1;
1617 // 1657
1618 o30["0"] = "OJTM4";
1619 // 1662
1620 o32 = {};
1621 // 1663
1622 o33 = {};
1623 // 1665
1624 o32.length = 1;
1625 // 1666
1626 o32["0"] = "KPZ5T";
1627 // 1668
1628 o34 = {};
1629 // 1670
1630 o28.parentNode = o9;
1631 // 1671
1632 o9.removeChild = f974244559_507;
1633 // 1672
1634 f974244559_507.returns.push(o28);
1635 // 1675
1636 f974244559_471.returns.push(1373491287647);
1637 // 1676
1638 o35 = {};
1639 // 1677
1640 f974244559_4.returns.push(o35);
1641 // 1678
1642 o35.height = "auto";
1643 // undefined
1644 o35 = null;
1645 // 1684
1646 f974244559_471.returns.push(1373491287672);
1647 // 1686
1648 f974244559_471.returns.push(1373491287673);
1649 // 1689
1650 f974244559_471.returns.push(1373491287673);
1651 // 1692
1652 f974244559_471.returns.push(1373491287673);
1653 // 1696
1654 o35 = {};
1655 // 1697
1656 f974244559_478.returns.push(o35);
1657 // 1699
1658 f974244559_482.returns.push(o35);
1659 // undefined
1660 o35 = null;
1661 // 1705
1662 f974244559_471.returns.push(1373491287686);
1663 // 1707
1664 f974244559_471.returns.push(1373491287686);
1665 // 1710
1666 f974244559_471.returns.push(1373491287687);
1667 // 1713
1668 f974244559_471.returns.push(1373491287687);
1669 // 1717
1670 o35 = {};
1671 // 1718
1672 f974244559_478.returns.push(o35);
1673 // 1720
1674 f974244559_482.returns.push(o35);
1675 // undefined
1676 o35 = null;
1677 // 1726
1678 f974244559_471.returns.push(1373491287693);
1679 // 1728
1680 f974244559_471.returns.push(1373491287694);
1681 // 1731
1682 f974244559_471.returns.push(1373491287695);
1683 // 1734
1684 f974244559_471.returns.push(1373491287695);
1685 // 1738
1686 o35 = {};
1687 // 1739
1688 f974244559_478.returns.push(o35);
1689 // 1741
1690 f974244559_482.returns.push(o35);
1691 // undefined
1692 o35 = null;
1693 // 1747
1694 f974244559_471.returns.push(1373491287697);
1695 // 1749
1696 f974244559_471.returns.push(1373491287698);
1697 // 1756
1698 f974244559_471.returns.push(1373491287700);
1699 // 1758
1700 f974244559_471.returns.push(1373491287701);
1701 // 1764
1702 f974244559_471.returns.push(1373491287736);
1703 // 1766
1704 f974244559_471.returns.push(1373491287739);
1705 // 1772
1706 f974244559_471.returns.push(1373491287765);
1707 // 1774
1708 f974244559_471.returns.push(1373491287766);
1709 // 1781
1710 f974244559_471.returns.push(1373491287768);
1711 // 1783
1712 f974244559_471.returns.push(1373491287768);
1713 // 1790
1714 f974244559_471.returns.push(1373491287771);
1715 // 1792
1716 f974244559_471.returns.push(1373491287772);
1717 // 1799
1718 f974244559_471.returns.push(1373491287808);
1719 // 1801
1720 f974244559_471.returns.push(1373491287809);
1721 // 1808
1722 f974244559_471.returns.push(1373491287811);
1723 // 1810
1724 f974244559_471.returns.push(1373491287811);
1725 // 1817
1726 f974244559_471.returns.push(1373491287834);
1727 // 1819
1728 f974244559_471.returns.push(1373491287835);
1729 // 1826
1730 f974244559_471.returns.push(1373491287844);
1731 // 1828
1732 f974244559_471.returns.push(1373491287845);
1733 // 1835
1734 f974244559_471.returns.push(1373491287846);
1735 // 1837
1736 f974244559_471.returns.push(1373491287846);
1737 // 1844
1738 f974244559_471.returns.push(1373491287847);
1739 // 1846
1740 f974244559_471.returns.push(1373491287848);
1741 // 1853
1742 f974244559_471.returns.push(1373491287866);
1743 // 1855
1744 f974244559_471.returns.push(1373491287866);
1745 // 1861
1746 f974244559_471.returns.push(1373491287867);
1747 // 1863
1748 f974244559_471.returns.push(1373491287868);
1749 // 1865
1750 o35 = {};
1751 // 1867
1752 o36 = {};
1753 // 1869
1754 f974244559_473.returns.push(undefined);
1755 // 1872
1756 f974244559_471.returns.push(1373491287880);
1757 // 1873
1758 o37 = {};
1759 // 1874
1760 f974244559_4.returns.push(o37);
1761 // 1875
1762 o37.height = "42px";
1763 // undefined
1764 o37 = null;
1765 // 1876
1766 o27.parentNode = o9;
1767 // 1878
1768 f974244559_507.returns.push(o27);
1769 // undefined
1770 o27 = null;
1771 // 1881
1772 f974244559_471.returns.push(1373491287881);
1773 // 1884
1774 f974244559_471.returns.push(1373491287882);
1775 // 1886
1776 o27 = {};
1777 // 1887
1778 f974244559_502.returns.push(o27);
1779 // 1889
1780 o37 = {};
1781 // 1890
1782 f974244559_502.returns.push(o37);
1783 // 1891
1784 o38 = {};
1785 // 1892
1786 o37.firstChild = o38;
1787 // 1894
1788 o38.nodeType = 8;
1789 // 1896
1790 o38.nodeValue = " <div class=\"fbTimelineTopSectionBase _6-d _529n\"><div id=\"pagelet_above_header_timeline\" data-referrer=\"pagelet_above_header_timeline\"></div><div id=\"above_header_timeline_placeholder\"></div><div class=\"fbTimelineSection mtm fbTimelineTopSection\"><div id=\"fbProfileCover\"><div class=\"cover\" id=\"u_0_h\"><a class=\"coverWrap coverImage\" href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268472248551&amp;set=a.3353777797334.2140697.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268472248551&amp;set=a.3353777797334.2140697.1055580469&amp;type=1&amp;src=https%3A%2F%2Fsphotos-a.xx.fbcdn.net%2Fhphotos-ash3%2F1017486_10200268472248551_842609840_n.jpg&amp;size=851%2C315&amp;source=10\" id=\"fbCoverImageContainer\"><img class=\"coverPhotoImg photo img\" src=\"http://jsbngssl.sphotos-a.xx.fbcdn.net/hphotos-ash3/1017486_10200268472248551_842609840_n.jpg\" alt=\"Cover Photo\" style=\"top:0px;width:100%\" data-fbid=\"10200268472248551\" /><div class=\"coverBorder\"></div><img class=\"coverChangeThrobber img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\" alt=\"\" width=\"16\" height=\"16\" /></a><div class=\"_6-e\"><h2 class=\"_6-f\"><a class=\"_8_2\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\">Gregor Richards</a></h2></div></div><div id=\"fbTimelineHeadline\" class=\"clearfix\"><div class=\"_50zj\"><div class=\"actions _70j\"><div class=\"actionsDropdown\" id=\"pagelet_timeline_profile_actions\" data-referrer=\"pagelet_timeline_profile_actions\"></div></div></div><div class=\"_70k\"><div class=\"_6_7 clearfix\" data-referrer=\"timeline_light_nav_top\" id=\"u_0_i\"><a class=\"_6-6 _6-7\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\">Timeline<span class=\"_513x\"></span></a><a class=\"_6-6\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/about\" data-medley-id=\"pagelet_timeline_medley_about\">About<span class=\"_513x\"></span></a><a class=\"_6-6\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/photos\" data-medley-id=\"pagelet_timeline_medley_photos\">Photos<span class=\"_513x\"></span></a><a class=\"_6-6\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/friends\" data-medley-id=\"pagelet_timeline_medley_friends\">Friends<span class=\"_513x\"></span></a><div class=\"_6a uiPopover _6-6 _9rx\" id=\"u_0_j\"><a class=\"_9ry _p\" href=\"#\" aria-haspopup=\"true\" aria-expanded=\"false\" rel=\"toggle\" role=\"button\" id=\"u_0_k\">More<i class=\"_bxy img sp_4p6kmz sx_4f53fc\"></i></a></div></div></div><div class=\"name\"><div class=\"photoContainer\"><a class=\"profilePicThumb\" id=\"profile_pic_education\" href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268473688587&amp;set=a.1468918877039.2062262.1055580469&amp;type=1&amp;source=11\" rel=\"theater\"><img class=\"profilePic img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-frc3/c55.0.552.552/s160x160/993004_10200268473688587_517108607_n.jpg\" alt=\"Gregor Richards\" /></a><meta itemprop=\"image\" content=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" /></div></div></div><div id=\"timeline_sticky_header\" data-referrer=\"timeline_sticky_header\"></div></div><div id=\"fbSuggestionsPlaceHolder\"></div></div><div id=\"pagelet_escape_hatch\" data-referrer=\"pagelet_escape_hatch\"></div></div><div id=\"timeline_tab_content\"><div id=\"pagelet_timeline_recent\" data-referrer=\"pagelet_timeline_recent\"></div><div id=\"timeline_tab_content_extra\"></div></div> ";
1791 // undefined
1792 o38 = null;
1793 // 1897
1794 o37.parentNode = o25;
1795 // 1899
1796 f974244559_507.returns.push(o37);
1797 // undefined
1798 o37 = null;
1799 // 1900
1800 // 1901
1801 o27.getAttribute = f974244559_500;
1802 // 1902
1803 f974244559_500.returns.push("pagelet_main_column_personal_timeline");
1804 // 1912
1805 o37 = {};
1806 // 1913
1807 f974244559_480.returns.push(o37);
1808 // 1914
1809 // 1915
1810 // 1916
1811 o37.getElementsByTagName = f974244559_514;
1812 // 1917
1813 o38 = {};
1814 // 1918
1815 f974244559_514.returns.push(o38);
1816 // 1919
1817 o38.length = 0;
1818 // undefined
1819 o38 = null;
1820 // 1921
1821 o38 = {};
1822 // 1922
1823 o37.childNodes = o38;
1824 // undefined
1825 o37 = null;
1826 // 1923
1827 o38.item = f974244559_517;
1828 // 1924
1829 o38.length = 1;
1830 // 1925
1831 o37 = {};
1832 // 1926
1833 o38["0"] = o37;
1834 // undefined
1835 o38 = null;
1836 // 1927
1837 o37.getAttributeNode = f974244559_519;
1838 // 1929
1839 f974244559_519.returns.push(null);
1840 // 1930
1841 o37.getElementsByTagName = f974244559_514;
1842 // 1932
1843 o38 = {};
1844 // 1933
1845 f974244559_514.returns.push(o38);
1846 // 1934
1847 o38.length = 73;
1848 // 1935
1849 o39 = {};
1850 // 1936
1851 o38["0"] = o39;
1852 // 1937
1853 o39.getAttributeNode = f974244559_519;
1854 // undefined
1855 o39 = null;
1856 // 1939
1857 f974244559_519.returns.push(null);
1858 // 1941
1859 o39 = {};
1860 // 1942
1861 o38["1"] = o39;
1862 // 1943
1863 o39.getAttributeNode = f974244559_519;
1864 // undefined
1865 o39 = null;
1866 // 1945
1867 f974244559_519.returns.push(null);
1868 // 1947
1869 o39 = {};
1870 // 1948
1871 o38["2"] = o39;
1872 // 1949
1873 o39.getAttributeNode = f974244559_519;
1874 // undefined
1875 o39 = null;
1876 // 1951
1877 f974244559_519.returns.push(null);
1878 // 1953
1879 o39 = {};
1880 // 1954
1881 o38["3"] = o39;
1882 // 1955
1883 o39.getAttributeNode = f974244559_519;
1884 // undefined
1885 o39 = null;
1886 // 1957
1887 o39 = {};
1888 // 1958
1889 f974244559_519.returns.push(o39);
1890 // 1959
1891 o39.value = "fullScreenSwitch";
1892 // undefined
1893 o39 = null;
1894 // 1961
1895 o39 = {};
1896 // 1962
1897 o38["4"] = o39;
1898 // 1963
1899 o39.getAttributeNode = f974244559_519;
1900 // undefined
1901 o39 = null;
1902 // 1965
1903 o39 = {};
1904 // 1966
1905 f974244559_519.returns.push(o39);
1906 // 1967
1907 o39.value = "fbPhotoSnowliftFullScreenSwitch";
1908 // undefined
1909 o39 = null;
1910 // 1969
1911 o39 = {};
1912 // 1970
1913 o38["5"] = o39;
1914 // 1971
1915 o39.getAttributeNode = f974244559_519;
1916 // undefined
1917 o39 = null;
1918 // 1973
1919 o39 = {};
1920 // 1974
1921 f974244559_519.returns.push(o39);
1922 // 1975
1923 o39.value = "fbPhotoSnowliftFullScreenClose";
1924 // undefined
1925 o39 = null;
1926 // 1977
1927 o39 = {};
1928 // 1978
1929 o38["6"] = o39;
1930 // 1979
1931 o39.getAttributeNode = f974244559_519;
1932 // undefined
1933 o39 = null;
1934 // 1981
1935 f974244559_519.returns.push(null);
1936 // 1983
1937 o39 = {};
1938 // 1984
1939 o38["7"] = o39;
1940 // 1985
1941 o39.getAttributeNode = f974244559_519;
1942 // undefined
1943 o39 = null;
1944 // 1987
1945 o39 = {};
1946 // 1988
1947 f974244559_519.returns.push(o39);
1948 // 1989
1949 o39.value = "fbPhotoSnowliftWantButton";
1950 // undefined
1951 o39 = null;
1952 // 1991
1953 o39 = {};
1954 // 1992
1955 o38["8"] = o39;
1956 // 1993
1957 o39.getAttributeNode = f974244559_519;
1958 // undefined
1959 o39 = null;
1960 // 1995
1961 f974244559_519.returns.push(null);
1962 // 1997
1963 o39 = {};
1964 // 1998
1965 o38["9"] = o39;
1966 // 1999
1967 o39.getAttributeNode = f974244559_519;
1968 // undefined
1969 o39 = null;
1970 // 2001
1971 o39 = {};
1972 // 2002
1973 f974244559_519.returns.push(o39);
1974 // 2003
1975 o39.value = "fbPhotoSnowliftTagBoxes";
1976 // undefined
1977 o39 = null;
1978 // 2005
1979 o39 = {};
1980 // 2006
1981 o38["10"] = o39;
1982 // 2007
1983 o39.getAttributeNode = f974244559_519;
1984 // undefined
1985 o39 = null;
1986 // 2009
1987 o39 = {};
1988 // 2010
1989 f974244559_519.returns.push(o39);
1990 // 2011
1991 o39.value = "fbPhotoSnowliftTagApproval";
1992 // undefined
1993 o39 = null;
1994 // 2013
1995 o39 = {};
1996 // 2014
1997 o38["11"] = o39;
1998 // 2015
1999 o39.getAttributeNode = f974244559_519;
2000 // undefined
2001 o39 = null;
2002 // 2017
2003 o39 = {};
2004 // 2018
2005 f974244559_519.returns.push(o39);
2006 // 2019
2007 o39.value = "fbPhotoSnowliftComputerVisionInfo";
2008 // undefined
2009 o39 = null;
2010 // 2021
2011 o39 = {};
2012 // 2022
2013 o38["12"] = o39;
2014 // 2023
2015 o39.getAttributeNode = f974244559_519;
2016 // undefined
2017 o39 = null;
2018 // 2025
2019 f974244559_519.returns.push(null);
2020 // 2027
2021 o39 = {};
2022 // 2028
2023 o38["13"] = o39;
2024 // 2029
2025 o39.getAttributeNode = f974244559_519;
2026 // undefined
2027 o39 = null;
2028 // 2031
2029 o39 = {};
2030 // 2032
2031 f974244559_519.returns.push(o39);
2032 // 2033
2033 o39.value = "snowliftStageActions";
2034 // undefined
2035 o39 = null;
2036 // 2035
2037 o39 = {};
2038 // 2036
2039 o38["14"] = o39;
2040 // 2037
2041 o39.getAttributeNode = f974244559_519;
2042 // undefined
2043 o39 = null;
2044 // 2039
2045 f974244559_519.returns.push(null);
2046 // 2041
2047 o39 = {};
2048 // 2042
2049 o38["15"] = o39;
2050 // 2043
2051 o39.getAttributeNode = f974244559_519;
2052 // undefined
2053 o39 = null;
2054 // 2045
2055 f974244559_519.returns.push(null);
2056 // 2047
2057 o39 = {};
2058 // 2048
2059 o38["16"] = o39;
2060 // 2049
2061 o39.getAttributeNode = f974244559_519;
2062 // undefined
2063 o39 = null;
2064 // 2051
2065 o39 = {};
2066 // 2052
2067 f974244559_519.returns.push(o39);
2068 // 2053
2069 o39.value = "fbPhotoSnowliftActions";
2070 // undefined
2071 o39 = null;
2072 // 2055
2073 o39 = {};
2074 // 2056
2075 o38["17"] = o39;
2076 // 2057
2077 o39.getAttributeNode = f974244559_519;
2078 // undefined
2079 o39 = null;
2080 // 2059
2081 o39 = {};
2082 // 2060
2083 f974244559_519.returns.push(o39);
2084 // 2061
2085 o39.value = "fbPhotoSnowliftButtons";
2086 // undefined
2087 o39 = null;
2088 // 2063
2089 o39 = {};
2090 // 2064
2091 o38["18"] = o39;
2092 // 2065
2093 o39.getAttributeNode = f974244559_519;
2094 // undefined
2095 o39 = null;
2096 // 2067
2097 f974244559_519.returns.push(null);
2098 // 2069
2099 o39 = {};
2100 // 2070
2101 o38["19"] = o39;
2102 // 2071
2103 o39.getAttributeNode = f974244559_519;
2104 // undefined
2105 o39 = null;
2106 // 2073
2107 f974244559_519.returns.push(null);
2108 // 2075
2109 o39 = {};
2110 // 2076
2111 o38["20"] = o39;
2112 // 2077
2113 o39.getAttributeNode = f974244559_519;
2114 // undefined
2115 o39 = null;
2116 // 2079
2117 o39 = {};
2118 // 2080
2119 f974244559_519.returns.push(o39);
2120 // 2081
2121 o39.value = "fbPhotoSnowliftMediaTitle";
2122 // undefined
2123 o39 = null;
2124 // 2083
2125 o39 = {};
2126 // 2084
2127 o38["21"] = o39;
2128 // 2085
2129 o39.getAttributeNode = f974244559_519;
2130 // undefined
2131 o39 = null;
2132 // 2087
2133 o39 = {};
2134 // 2088
2135 f974244559_519.returns.push(o39);
2136 // 2089
2137 o39.value = "fbPhotoSnowliftPositionAndCount";
2138 // undefined
2139 o39 = null;
2140 // 2091
2141 o39 = {};
2142 // 2092
2143 o38["22"] = o39;
2144 // 2093
2145 o39.getAttributeNode = f974244559_519;
2146 // undefined
2147 o39 = null;
2148 // 2095
2149 f974244559_519.returns.push(null);
2150 // 2097
2151 o39 = {};
2152 // 2098
2153 o38["23"] = o39;
2154 // 2099
2155 o39.getAttributeNode = f974244559_519;
2156 // undefined
2157 o39 = null;
2158 // 2101
2159 f974244559_519.returns.push(null);
2160 // 2103
2161 o39 = {};
2162 // 2104
2163 o38["24"] = o39;
2164 // 2105
2165 o39.getAttributeNode = f974244559_519;
2166 // undefined
2167 o39 = null;
2168 // 2107
2169 f974244559_519.returns.push(null);
2170 // 2109
2171 o39 = {};
2172 // 2110
2173 o38["25"] = o39;
2174 // 2111
2175 o39.getAttributeNode = f974244559_519;
2176 // undefined
2177 o39 = null;
2178 // 2113
2179 f974244559_519.returns.push(null);
2180 // 2115
2181 o39 = {};
2182 // 2116
2183 o38["26"] = o39;
2184 // 2117
2185 o39.getAttributeNode = f974244559_519;
2186 // undefined
2187 o39 = null;
2188 // 2119
2189 f974244559_519.returns.push(null);
2190 // 2121
2191 o39 = {};
2192 // 2122
2193 o38["27"] = o39;
2194 // 2123
2195 o39.getAttributeNode = f974244559_519;
2196 // undefined
2197 o39 = null;
2198 // 2125
2199 f974244559_519.returns.push(null);
2200 // 2127
2201 o39 = {};
2202 // 2128
2203 o38["28"] = o39;
2204 // 2129
2205 o39.getAttributeNode = f974244559_519;
2206 // undefined
2207 o39 = null;
2208 // 2131
2209 f974244559_519.returns.push(null);
2210 // 2133
2211 o39 = {};
2212 // 2134
2213 o38["29"] = o39;
2214 // 2135
2215 o39.getAttributeNode = f974244559_519;
2216 // undefined
2217 o39 = null;
2218 // 2137
2219 f974244559_519.returns.push(null);
2220 // 2139
2221 o39 = {};
2222 // 2140
2223 o38["30"] = o39;
2224 // 2141
2225 o39.getAttributeNode = f974244559_519;
2226 // undefined
2227 o39 = null;
2228 // 2143
2229 f974244559_519.returns.push(null);
2230 // 2145
2231 o39 = {};
2232 // 2146
2233 o38["31"] = o39;
2234 // 2147
2235 o39.getAttributeNode = f974244559_519;
2236 // undefined
2237 o39 = null;
2238 // 2149
2239 f974244559_519.returns.push(null);
2240 // 2151
2241 o39 = {};
2242 // 2152
2243 o38["32"] = o39;
2244 // 2153
2245 o39.getAttributeNode = f974244559_519;
2246 // undefined
2247 o39 = null;
2248 // 2155
2249 f974244559_519.returns.push(null);
2250 // 2157
2251 o39 = {};
2252 // 2158
2253 o38["33"] = o39;
2254 // 2159
2255 o39.getAttributeNode = f974244559_519;
2256 // undefined
2257 o39 = null;
2258 // 2161
2259 f974244559_519.returns.push(null);
2260 // 2163
2261 o39 = {};
2262 // 2164
2263 o38["34"] = o39;
2264 // 2165
2265 o39.getAttributeNode = f974244559_519;
2266 // undefined
2267 o39 = null;
2268 // 2167
2269 f974244559_519.returns.push(null);
2270 // 2169
2271 o39 = {};
2272 // 2170
2273 o38["35"] = o39;
2274 // 2171
2275 o39.getAttributeNode = f974244559_519;
2276 // undefined
2277 o39 = null;
2278 // 2173
2279 o39 = {};
2280 // 2174
2281 f974244559_519.returns.push(o39);
2282 // 2175
2283 o39.value = "fbPhotoSnowliftError";
2284 // undefined
2285 o39 = null;
2286 // 2177
2287 o39 = {};
2288 // 2178
2289 o38["36"] = o39;
2290 // 2179
2291 o39.getAttributeNode = f974244559_519;
2292 // undefined
2293 o39 = null;
2294 // 2181
2295 f974244559_519.returns.push(null);
2296 // 2183
2297 o39 = {};
2298 // 2184
2299 o38["37"] = o39;
2300 // 2185
2301 o39.getAttributeNode = f974244559_519;
2302 // undefined
2303 o39 = null;
2304 // 2187
2305 f974244559_519.returns.push(null);
2306 // 2189
2307 o39 = {};
2308 // 2190
2309 o38["38"] = o39;
2310 // 2191
2311 o39.getAttributeNode = f974244559_519;
2312 // undefined
2313 o39 = null;
2314 // 2193
2315 f974244559_519.returns.push(null);
2316 // 2195
2317 o39 = {};
2318 // 2196
2319 o38["39"] = o39;
2320 // 2197
2321 o39.getAttributeNode = f974244559_519;
2322 // undefined
2323 o39 = null;
2324 // 2199
2325 f974244559_519.returns.push(null);
2326 // 2201
2327 o39 = {};
2328 // 2202
2329 o38["40"] = o39;
2330 // 2203
2331 o39.getAttributeNode = f974244559_519;
2332 // undefined
2333 o39 = null;
2334 // 2205
2335 f974244559_519.returns.push(null);
2336 // 2207
2337 o39 = {};
2338 // 2208
2339 o38["41"] = o39;
2340 // 2209
2341 o39.getAttributeNode = f974244559_519;
2342 // undefined
2343 o39 = null;
2344 // 2211
2345 o39 = {};
2346 // 2212
2347 f974244559_519.returns.push(o39);
2348 // 2213
2349 o39.value = "fbPhotoSnowliftInlineEditor";
2350 // undefined
2351 o39 = null;
2352 // 2215
2353 o39 = {};
2354 // 2216
2355 o38["42"] = o39;
2356 // undefined
2357 o38 = null;
2358 // 2217
2359 o39.getAttributeNode = f974244559_519;
2360 // undefined
2361 o39 = null;
2362 // 2219
2363 o38 = {};
2364 // 2220
2365 f974244559_519.returns.push(o38);
2366 // 2221
2367 o38.value = "u_0_m";
2368 // undefined
2369 o38 = null;
2370 // 2232
2371 o38 = {};
2372 // 2233
2373 f974244559_502.returns.push(o38);
2374 // 2237
2375 o25.scrollWidth = 1050;
2376 // 2238
2377 o25.scrollHeight = 588;
2378 // 2240
2379 f974244559_502.returns.push(o13);
2380 // 2241
2381 o39 = {};
2382 // 2242
2383 o13.style = o39;
2384 // 2243
2385 // undefined
2386 o39 = null;
2387 // 2244
2388 f974244559_11.returns.push(undefined);
2389 // 2254
2390 f974244559_471.returns.push(1373491287972);
2391 // 2258
2392 f974244559_471.returns.push(1373491287973);
2393 // 2260
2394 o39 = {};
2395 // 2261
2396 f974244559_502.returns.push(o39);
2397 // 2263
2398 o40 = {};
2399 // 2264
2400 f974244559_502.returns.push(o40);
2401 // 2265
2402 o41 = {};
2403 // 2266
2404 o40.firstChild = o41;
2405 // 2268
2406 o41.nodeType = 8;
2407 // 2270
2408 o41.nodeValue = " <div class=\"escapeHatchMinimal _4__g\"><div class=\"_70l _51sh\"><div class=\"_57fp\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><div class=\"fsm fwn fcg\"><span class=\"_71u _70n\"><span>Do you know Gregor?</span></span></div></div></div><div class=\"pam uiBoxWhite noborder\"><div><div class=\"_5109\"><div class=\"FriendButton\" id=\"u_0_o\"><label class=\"FriendRequestAdd addButton selected uiButton uiButtonSpecial uiButtonLarge\" for=\"u_0_p\"><i class=\"mrs img sp_3fr8aa sx_ec0c2b\"></i><input value=\"Add Friend\" type=\"button\" id=\"u_0_p\" /></label><a class=\"FriendRequestOutgoing enableFriendListFlyout outgoingButton enableFriendListFlyout hidden_elem selected uiButton uiButtonSpecial uiButtonLarge\" href=\"#\" role=\"button\" data-profileid=\"1055580469\" data-flloc=\"escape_hatch\" data-cansuggestfriends=\"false\"><i class=\"mrs img sp_3fr8aa sx_ec0c2b\"></i><span class=\"uiButtonText\">Friend Request Sent</span></a></div></div><div class=\"phs pbs _5108\"><div class=\"pbs prm fsl\"></div><span class=\"fsl fcg\"><span id=\"u_0_q\"><span class=\"addFriendText\">To see what he shares with friends, <a class=\"addButton\" href=\"#\" role=\"button\">send him a friend request.</a></span><span class=\"hidden_elem enableFriendListFlyout outgoingButton\" data-profileid=\"1055580469\">Request Sent.</span></span></span></div></div></div><div id=\"fbSuggestionsHatchPlaceHolder\"></div></div> ";
2409 // undefined
2410 o41 = null;
2411 // 2271
2412 o40.parentNode = o25;
2413 // 2273
2414 f974244559_507.returns.push(o40);
2415 // undefined
2416 o40 = null;
2417 // 2274
2418 // 2275
2419 o39.getAttribute = f974244559_500;
2420 // 2276
2421 f974244559_500.returns.push("pagelet_escape_hatch");
2422 // 2287
2423 f974244559_471.returns.push(1373491287984);
2424 // 2291
2425 f974244559_471.returns.push(1373491287985);
2426 // 2293
2427 o40 = {};
2428 // 2294
2429 f974244559_502.returns.push(o40);
2430 // 2295
2431 o40.getAttribute = f974244559_500;
2432 // 2296
2433 f974244559_500.returns.push("pagelet_above_header_timeline");
2434 // 2312
2435 f974244559_471.returns.push(1373491287991);
2436 // 2316
2437 f974244559_471.returns.push(1373491287992);
2438 // 2318
2439 o41 = {};
2440 // 2319
2441 f974244559_502.returns.push(o41);
2442 // 2321
2443 o42 = {};
2444 // 2322
2445 f974244559_502.returns.push(o42);
2446 // 2323
2447 o43 = {};
2448 // 2324
2449 o42.firstChild = o43;
2450 // 2326
2451 o43.nodeType = 8;
2452 // 2328
2453 o43.nodeValue = " <span class=\"uiButtonGroup uiButtonGroupOverlay\" id=\"u_0_s\"><span class=\"firstItem lastItem uiButtonGroupItem buttonItem\"><div class=\"profileHeaderButton FriendButton\" id=\"u_0_14\"><label class=\"FriendRequestAdd addButton uiButton uiButtonOverlay uiButtonLarge\" for=\"u_0_15\"><i class=\"mrs img sp_3fr8aa sx_ec0c2b\"></i><input value=\"Add Friend\" type=\"button\" id=\"u_0_15\" /></label><a class=\"FriendRequestOutgoing enableFriendListFlyout outgoingButton enableFriendListFlyout hidden_elem uiButton uiButtonOverlay uiButtonLarge\" href=\"#\" role=\"button\" data-profileid=\"1055580469\" data-flloc=\"fbx_top_bar\" data-cansuggestfriends=\"false\"><i class=\"mrs img sp_3fr8aa sx_ec0c2b\"></i><span class=\"uiButtonText\">Friend Request Sent</span></a></div></span></span><span class=\"uiButtonGroup uiButtonGroupOverlay\" id=\"u_0_t\"><span class=\"firstItem lastItem uiButtonGroupItem buttonItem\"><span class=\"_52m- _3lt profileHeaderButton\"><a class=\"uiButton uiButtonOverlay uiButtonLarge\" href=\"#\" role=\"button\" ajaxify=\"/ajax/follow/follow_profile.php?profile_id=1055580469&amp;location=1\" rel=\"async-post\" id=\"u_0_10\"><i class=\"mrs img sp_3fr8aa sx_3f5e05\"></i><span class=\"uiButtonText\">Follow</span></a><label class=\"profileFollowButton _52nf _3spg hidden_elem uiButton uiButtonOverlay uiButtonLarge\" id=\"u_0_11\" for=\"u_0_13\"><i class=\"mrs img sp_3fr8aa sx_0bef0b\"></i><input value=\"Following\" aria-haspopup=\"1\" data-profileid=\"1055580469\" type=\"submit\" id=\"u_0_13\" /></label></span></span></span><span class=\"uiButtonGroup actionsContents uiButtonGroupOverlay\" id=\"u_0_u\"><span class=\"firstItem uiButtonGroupItem buttonItem\"><a class=\"uiButton uiButtonOverlay uiButtonLarge\" href=\"/messages/LawlabeeTheWallaby\" role=\"button\" ajaxify=\"/ajax/messaging/composer.php?ids%5B0%5D=1055580469&amp;ref=timeline\" rel=\"dialog\"><span class=\"uiButtonText\">Message</span></a></span><span class=\"lastItem uiButtonGroupItem selectorItem\"><div class=\"uiSelector inlineBlock fbTimelineActionSelector uiSelectorRight\"><div class=\"uiToggle wrap\"><a class=\"fbTimelineActionSelectorButton uiSelectorButton uiButton uiButtonOverlay uiButtonLarge uiButtonNoText\" href=\"#\" role=\"button\" aria-label=\"Other actions\" aria-haspopup=\"1\" rel=\"toggle\"><i class=\"mrs img sp_3fr8aa sx_da9635\"></i><span class=\"uiButtonText\"></span></a><div class=\"uiSelectorMenuWrapper uiToggleFlyout\"><div class=\"uiMenuContainer uiSelectorMenu\"><div role=\"menu\" class=\"uiMenu\" id=\"u_0_w\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem\" data-label=\"Add to Interest Lists...\" id=\"u_0_x\"><a class=\"itemAnchor\" role=\"menuitem\" tabindex=\"0\" href=\"#\"><span class=\"itemLabel fsm\">Add to Interest Lists...</span></a></li><li class=\"uiMenuSeparator\"></li><li class=\"uiMenuItem\" data-label=\"Report/Block...\"><a class=\"itemAnchor\" role=\"menuitem\" tabindex=\"-1\" href=\"/ajax/report/social.php?content_type=0&amp;cid=1055580469&amp;rid=1055580469&amp;from_gear=timeline\" rel=\"dialog\"><span class=\"itemLabel fsm\">Report/Block...</span></a></li></ul></div><div role=\"menu\" class=\"uiMenu hidden_elem\" id=\"u_0_v\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem\" data-label=\"Go Back\" id=\"u_0_y\"><a class=\"itemAnchor\" role=\"menuitem\" tabindex=\"0\" href=\"#\"><span class=\"itemLabel fsm\">Go Back</span></a></li><li class=\"uiMenuSeparator\"></li><img class=\"mal pal center img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\" alt=\"\" id=\"u_0_z\" width=\"16\" height=\"16\" /></ul></div></div></div></div></div></span></span> ";
2454 // undefined
2455 o43 = null;
2456 // 2329
2457 o42.parentNode = o25;
2458 // 2331
2459 f974244559_507.returns.push(o42);
2460 // undefined
2461 o42 = null;
2462 // 2332
2463 // 2333
2464 o41.getAttribute = f974244559_500;
2465 // 2334
2466 f974244559_500.returns.push("pagelet_timeline_profile_actions");
2467 // 2344
2468 o42 = {};
2469 // 2345
2470 f974244559_480.returns.push(o42);
2471 // 2346
2472 // 2347
2473 // 2348
2474 o42.getElementsByTagName = f974244559_514;
2475 // 2349
2476 o43 = {};
2477 // 2350
2478 f974244559_514.returns.push(o43);
2479 // 2351
2480 o43.length = 0;
2481 // undefined
2482 o43 = null;
2483 // 2353
2484 o43 = {};
2485 // 2354
2486 o42.childNodes = o43;
2487 // undefined
2488 o42 = null;
2489 // 2355
2490 o43.item = f974244559_517;
2491 // 2356
2492 o43.length = 1;
2493 // 2357
2494 o42 = {};
2495 // 2358
2496 o43["0"] = o42;
2497 // undefined
2498 o43 = null;
2499 // 2359
2500 o42.getAttributeNode = f974244559_519;
2501 // 2361
2502 f974244559_519.returns.push(null);
2503 // 2362
2504 o42.getElementsByTagName = f974244559_514;
2505 // 2364
2506 o43 = {};
2507 // 2365
2508 f974244559_514.returns.push(o43);
2509 // 2366
2510 o43.length = 4;
2511 // 2367
2512 o44 = {};
2513 // 2368
2514 o43["0"] = o44;
2515 // 2369
2516 o44.getAttributeNode = f974244559_519;
2517 // undefined
2518 o44 = null;
2519 // 2371
2520 f974244559_519.returns.push(null);
2521 // 2373
2522 o44 = {};
2523 // 2374
2524 o43["1"] = o44;
2525 // 2375
2526 o44.getAttributeNode = f974244559_519;
2527 // undefined
2528 o44 = null;
2529 // 2377
2530 f974244559_519.returns.push(null);
2531 // 2379
2532 o44 = {};
2533 // 2380
2534 o43["2"] = o44;
2535 // undefined
2536 o43 = null;
2537 // 2381
2538 o44.getAttributeNode = f974244559_519;
2539 // undefined
2540 o44 = null;
2541 // 2383
2542 o43 = {};
2543 // 2384
2544 f974244559_519.returns.push(o43);
2545 // 2385
2546 o43.value = "u_0_12";
2547 // undefined
2548 o43 = null;
2549 // 2410
2550 f974244559_471.returns.push(1373491288015);
2551 // 2413
2552 f974244559_471.returns.push(1373491288016);
2553 // 2416
2554 f974244559_471.returns.push(1373491288017);
2555 // 2419
2556 f974244559_471.returns.push(1373491288018);
2557 // 2422
2558 f974244559_471.returns.push(1373491288018);
2559 // 2424
2560 o43 = {};
2561 // 2425
2562 f974244559_502.returns.push(o43);
2563 // 2427
2564 o44 = {};
2565 // 2428
2566 f974244559_502.returns.push(o44);
2567 // 2429
2568 o45 = {};
2569 // 2430
2570 o44.firstChild = o45;
2571 // 2432
2572 o45.nodeType = 8;
2573 // 2434
2574 o45.nodeValue = " <div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\" id=\"u_0_18\"><div class=\"fbTimelineCapsule clearfix\" data-referrer=\"pagelet_timeline_recent_ocm\" data-start=\"1359228987\" data-end=\"1375340399\" id=\"u_0_17\"><div class=\"_4_7u\"><ol class=\"_3rbf clearfix\" data-referrer=\"pagelet_timeline_recent_ocm\" id=\"u_0_17_left\"></ol><div id=\"pagelet_timeline_recent_more_pager\"></div></div><div class=\"_3rbg\"><ol class=\"_3rbh clearfix\" data-referrer=\"pagelet_timeline_recent_ocm\" id=\"u_0_17_right\"></ol></div></div><div class=\"fbTimelineSubSections\"></div></div><div class=\"hidden_elem fbTimelineSectionExpandPager fbTimelineShowOlderSections\" id=\"u_0_18_scroll_trigger\"><div class=\"uiMorePager\"><a class=\"uiMorePagerPrimary\" href=\"#\" role=\"button\">Show Older Stories</a></div></div> ";
2575 // undefined
2576 o45 = null;
2577 // 2435
2578 o44.parentNode = o25;
2579 // 2437
2580 f974244559_507.returns.push(o44);
2581 // undefined
2582 o44 = null;
2583 // 2438
2584 // 2439
2585 o43.getAttribute = f974244559_500;
2586 // 2440
2587 f974244559_500.returns.push("pagelet_timeline_recent");
2588 // 2448
2589 f974244559_471.returns.push(1373491288028);
2590 // 2453
2591 o44 = {};
2592 // 2454
2593 f974244559_478.returns.push(o44);
2594 // 2456
2595 f974244559_482.returns.push(o44);
2596 // undefined
2597 o44 = null;
2598 // 2459
2599 f974244559_471.returns.push(1373491288030);
2600 // 2462
2601 f974244559_471.returns.push(1373491288030);
2602 // 2465
2603 f974244559_471.returns.push(1373491288030);
2604 // 2467
2605 o44 = {};
2606 // 2468
2607 f974244559_502.returns.push(o44);
2608 // 2469
2609 o44.getAttribute = f974244559_500;
2610 // 2470
2611 f974244559_500.returns.push("pagelet_timeline_recent_ocm");
2612 // 2472
2613 f974244559_471.returns.push(1373491288033);
2614 // 2477
2615 o45 = {};
2616 // 2478
2617 f974244559_478.returns.push(o45);
2618 // 2480
2619 f974244559_482.returns.push(o45);
2620 // undefined
2621 o45 = null;
2622 // 2483
2623 f974244559_471.returns.push(1373491288044);
2624 // 2486
2625 f974244559_471.returns.push(1373491288044);
2626 // 2489
2627 f974244559_471.returns.push(1373491288044);
2628 // 2491
2629 f974244559_502.returns.push(o44);
2630 // 2493
2631 o45 = {};
2632 // 2494
2633 f974244559_502.returns.push(o45);
2634 // 2495
2635 o46 = {};
2636 // 2496
2637 o45.firstChild = o46;
2638 // 2498
2639 o46.nodeType = 8;
2640 // 2500
2641 o46.nodeValue = " <li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"l\" data-fixed=\"1\" data-size=\"1\" id=\"tl_unit_2953496614934485437\"><div class=\"topBorder\"></div><div class=\"timelineUnitContainer\" id=\"u_0_1l\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;2953496614934485437&quot;,&quot;timeline_unit_type&quot;:&quot;StatusMessageUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;&#125;\" data-time=\"1373055341\"><div class=\"\"><div role=\"article\"><div class=\"clearfix mbs pbs _1_m\"><a class=\"_51wa _29h _303\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?hc_location=timeline\" data-ft=\"&#123;&quot;tn&quot;:&quot;\\\\u003C&quot;&#125;\" tabindex=\"-1\" aria-hidden=\"true\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469&amp;extragetparams=%7B%22hc_location%22%3A%22timeline%22%7D\"><img class=\"_50c7 img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" alt=\"\" /></a><div class=\"_3dp _29k\"><h5 class=\"_1_s\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><span class=\"fcg\"><span class=\"fwb\" data-ft=\"&#123;&quot;tn&quot;:&quot;;&quot;&#125;\"><a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?hc_location=timeline\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469&amp;extragetparams=%7B%22hc_location%22%3A%22timeline%22%7D\">Gregor Richards</a></span></span> </h5><div class=\"_1_n fsm fwn fcg\"><a class=\"uiLinkSubtle\" href=\"/LawlabeeTheWallaby/posts/10200350995551582\"><abbr title=\"Friday, July 5, 2013 at 4:15pm\" data-utime=\"1373066141\">July 5</abbr></a><a data-hover=\"tooltip\" aria-label=\"Public\" class=\"uiStreamPrivacy inlineBlock fbStreamPrivacy fbPrivacyAudienceIndicator _1_o\" href=\"#\" role=\"button\"><i class=\"lock img sp_3fr8aa sx_3189ab\"></i></a></div></div></div><div class=\"_1x1\"><div class=\"userContentWrapper\"><div class=\"_wk\"><span data-ft=\"&#123;&quot;tn&quot;:&quot;K&quot;&#125;\" class=\"userContent\">In the Place de la Comédie, there was an accordionist with a very nice, presumably authentic French, Musette accordion. A very French scene.<br /> <br /> This man could not play the Musette if his life depended on it. It made me sad. The twit didn&#039;t even TOUCH the bass manual. What an incompetent imbecile.</span></div></div></div></div><div class=\"fbTimelineUFI uiCommentContainer\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function eb6a2852249195ec780e655c74d557240e052db89(event) {\\u000a    return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\\u000a};\"), (\"s594a3efa8594ca08485393a46c38b35fe1adb84c\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function eb6a2852249195ec780e655c74d557240e052db89(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s594a3efa8594ca08485393a46c38b35fe1adb84c_0\"), (s594a3efa8594ca08485393a46c38b35fe1adb84c_0_instance), (this), (arguments)))\n        };\n        (null);\n        return (((((JSBNG_Record.get)(window, (\"JSBNG__Event\")))[(\"JSBNG__Event\")]) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])(this, JSBNG__event));\n    };\n    var s594a3efa8594ca08485393a46c38b35fe1adb84c_0_instance;\n    ((s594a3efa8594ca08485393a46c38b35fe1adb84c_0_instance) = ((JSBNG_Record.eventInstance)((\"s594a3efa8594ca08485393a46c38b35fe1adb84c_0\"))));\n    ((JSBNG_Record.markFunction)((eb6a2852249195ec780e655c74d557240e052db89)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><form rel=\"async\" class=\"live_10200350995551582_316526391751760 commentable_item autoexpand_mode\" method=\"post\" action=\"/ajax/ufi/modify.php\" data-live=\"&#123;&quot;seq&quot;:&quot;10200350995551582_4955918&quot;&#125;\" onsubmit=\"return eb6a2852249195ec780e655c74d557240e052db89.call(this, event);\" id=\"u_0_1w\"><input type=\"hidden\" name=\"charset_test\" value=\"&euro;,&acute;,€,´,水,Д,Є\" /><input type=\"hidden\" name=\"fb_dtsg\" value=\"AQCttlPQ\" autocomplete=\"off\" /><input type=\"hidden\" autocomplete=\"off\" name=\"feedback_params\" value=\"&#123;&quot;actor&quot;:&quot;1055580469&quot;,&quot;target_fbid&quot;:&quot;10200350995551582&quot;,&quot;target_profile_id&quot;:&quot;1055580469&quot;,&quot;type_id&quot;:&quot;22&quot;,&quot;assoc_obj_id&quot;:&quot;&quot;,&quot;source_app_id&quot;:&quot;0&quot;,&quot;extra_story_params&quot;:[],&quot;content_timestamp&quot;:&quot;1373055341&quot;,&quot;check_hash&quot;:&quot;AQCBBladrqmNC16S&quot;,&quot;source&quot;:&quot;13&quot;&#125;\" /><input type=\"hidden\" autocomplete=\"off\" name=\"data_only_response\" value=\"1\" /><input type=\"hidden\" autocomplete=\"off\" name=\"timeline_ufi\" value=\"1\" /><input type=\"hidden\" name=\"timeline_log_data\" value=\"AQA0ygLaoIJHgq67aBT-K1c3pj79g5OygMMsHNzDJu-9etibWoq1ZipXxwv_7rDQYnw7mc7OPjKj5Beyr9GBFDeu4VStyKM9XbyP9Aj0vtj__0Id5nF8bZdAch9fYCTA6Z5HXojmLoKLG9dt6tLzGvMXecj0uIKTkMzqQLePPXxpU1B4-db-2-s3Fh99w9DO1plYSzpabaaYcYw8oo-ejXWEvfGXk3p-qv74e-8VozmoKCDL4y2FEvzILcwwHVgt3obElgmRgnkwQkg4hQ2bZ4fl_dlYe6ISRXOiqnQW5-OOfrkLjdMMB5UcaztBff6fxAxyPURkZBzktcfC5m8jKfdWybdGKs1obIlQzJWki5VmoELTY7QMLjC8T-0UJv9q2zVZ0JBGzEGnpjU8NAQYo9FR\" /><div class=\"fbTimelineFeedbackHeader\"><div class=\"fbTimelineFeedbackActions clearfix\"><span></span><span class=\"UIActionLinks UIActionLinks_bottom\" data-ft=\"&#123;&quot;tn&quot;:&quot;=&quot;,&quot;type&quot;:20&#125;\"><button title=\"Like this item\" type=\"submit\" name=\"like\" class=\"like_link stat_elem as_link\" data-ft=\"&#123;&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22&#125;\"><span class=\"default_message\">Like</span><span class=\"saving_message\">Unlike</span></button> &#183; <a class=\"share_action_link\" href=\"/ajax/sharer/?s=22&amp;appid=25554907596&amp;p%5B0%5D=1055580469&amp;p%5B1%5D=10200350995551582&amp;profile_id=1055580469&amp;share_source_type=unknown\" rel=\"dialog\" data-ft=\"&#123;&quot;tn&quot;:&quot;J&quot;,&quot;type&quot;:25&#125;\" title=\"Send this to friends or post it on your timeline.\" role=\"button\">Share</a></span></div></div><div><div class=\"uiUfi UFIContainer\" id=\"u_0_1s\"></div></div></form></div><div class=\"_5ce\"><div class=\"_6a _6b mtm mrs uiPopover _6qd lfloat\" id=\"u_0_1m\"><a class=\"_p uiCloseButton\" href=\"#\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" rel=\"toggle\" title=\"Remove\" id=\"u_0_1n\"></a></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li><li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"l\" data-fixed=\"1\" data-size=\"1\" id=\"tl_unit_4498726532280095426\"><div class=\"topBorder\"></div><div class=\"timelineUnitContainer\" id=\"u_0_1i\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;4498726532280095426&quot;,&quot;timeline_unit_type&quot;:&quot;StatusMessageUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;&#125;\" data-time=\"1372923465\"><div class=\"\"><div role=\"article\"><div class=\"clearfix mbs pbs _1_m\"><a class=\"_51wa _29h _303\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?hc_location=timeline\" data-ft=\"&#123;&quot;tn&quot;:&quot;\\\\u003C&quot;&#125;\" tabindex=\"-1\" aria-hidden=\"true\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469&amp;extragetparams=%7B%22hc_location%22%3A%22timeline%22%7D\"><img class=\"_50c7 img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" alt=\"\" /></a><div class=\"_3dp _29k\"><h5 class=\"_1_s\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><span class=\"fcg\"><span class=\"fwb\" data-ft=\"&#123;&quot;tn&quot;:&quot;;&quot;&#125;\"><a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?hc_location=timeline\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469&amp;extragetparams=%7B%22hc_location%22%3A%22timeline%22%7D\">Gregor Richards</a></span></span> </h5><div class=\"_1_n fsm fwn fcg\"><a class=\"uiLinkSubtle\" href=\"/LawlabeeTheWallaby/posts/10200343222477260\"><abbr title=\"Thursday, July 4, 2013 at 3:37am\" data-utime=\"1372934265\">July 4</abbr></a><a data-hover=\"tooltip\" aria-label=\"Public\" class=\"uiStreamPrivacy inlineBlock fbStreamPrivacy fbPrivacyAudienceIndicator _1_o\" href=\"#\" role=\"button\"><i class=\"lock img sp_3fr8aa sx_3189ab\"></i></a></div></div></div><div class=\"_1x1\"><div class=\"userContentWrapper\"><div class=\"_wk\"><span data-ft=\"&#123;&quot;tn&quot;:&quot;K&quot;&#125;\" class=\"userContent\">This is the second time I&#039;ve been in France on American Independence Day...</span></div></div></div></div><div class=\"fbTimelineUFI uiCommentContainer\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e5efff7e530726e72f73aa5626d50026e791f1c8e(event) {\\u000a    return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\\u000a};\"), (\"s6718815e5c18f00d4dd5eac77b0337dbb6edb0d7\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e5efff7e530726e72f73aa5626d50026e791f1c8e(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s6718815e5c18f00d4dd5eac77b0337dbb6edb0d7_0\"), (s6718815e5c18f00d4dd5eac77b0337dbb6edb0d7_0_instance), (this), (arguments)))\n        };\n        (null);\n        return (((((JSBNG_Record.get)(window, (\"JSBNG__Event\")))[(\"JSBNG__Event\")]) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])(this, JSBNG__event));\n    };\n    var s6718815e5c18f00d4dd5eac77b0337dbb6edb0d7_0_instance;\n    ((s6718815e5c18f00d4dd5eac77b0337dbb6edb0d7_0_instance) = ((JSBNG_Record.eventInstance)((\"s6718815e5c18f00d4dd5eac77b0337dbb6edb0d7_0\"))));\n    ((JSBNG_Record.markFunction)((e5efff7e530726e72f73aa5626d50026e791f1c8e)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><form rel=\"async\" class=\"live_10200343222477260_316526391751760 commentable_item autoexpand_mode\" method=\"post\" action=\"/ajax/ufi/modify.php\" data-live=\"&#123;&quot;seq&quot;:&quot;10200343222477260_4950571&quot;&#125;\" onsubmit=\"return e5efff7e530726e72f73aa5626d50026e791f1c8e.call(this, event);\" id=\"u_0_1x\"><input type=\"hidden\" name=\"charset_test\" value=\"&euro;,&acute;,€,´,水,Д,Є\" /><input type=\"hidden\" name=\"fb_dtsg\" value=\"AQCttlPQ\" autocomplete=\"off\" /><input type=\"hidden\" autocomplete=\"off\" name=\"feedback_params\" value=\"&#123;&quot;actor&quot;:&quot;1055580469&quot;,&quot;target_fbid&quot;:&quot;10200343222477260&quot;,&quot;target_profile_id&quot;:&quot;1055580469&quot;,&quot;type_id&quot;:&quot;22&quot;,&quot;assoc_obj_id&quot;:&quot;&quot;,&quot;source_app_id&quot;:&quot;0&quot;,&quot;extra_story_params&quot;:[],&quot;content_timestamp&quot;:&quot;1372923465&quot;,&quot;check_hash&quot;:&quot;AQA0MfY19rbYGyj6&quot;,&quot;source&quot;:&quot;13&quot;&#125;\" /><input type=\"hidden\" autocomplete=\"off\" name=\"data_only_response\" value=\"1\" /><input type=\"hidden\" autocomplete=\"off\" name=\"timeline_ufi\" value=\"1\" /><input type=\"hidden\" name=\"timeline_log_data\" value=\"AQCrvWaeB11JjIMAytH5Nvv3qmEhQbh5baPerOqkyOPG1prNmmgkQAYqxfM8F4KjqFTD35ePAPwvQDoPrrHJTHSjopTAuw4pc583uhw3meWdTKut8CfMnKQqizqrxNnzYyp4oPdWH66yt7nwLvLnUzUvcvAjMWicEEkiNWbuP3BEi1jT5w2dD7zoCGzxzHY_BeJ1PJ9BPrKJxn6P8TCdhb40KyMbyy0_kaWcpo1sksJl-adSjcOMevAoGosEm8ZiQxjcmpajE_jLfhvKfoYMMW3spYJ_rJby1Js3Q_VW7GswwODSD2FCX_pOREfx3p9VXZfl1eZNupMCx6QKcIGU-ExdJPac8H7Lp4XnIPKIpA49Y5Y9rJADGzQX23L_q5IbjhfIntPu29XD5hzwIEpzA6EL\" /><div class=\"fbTimelineFeedbackHeader\"><div class=\"fbTimelineFeedbackActions clearfix\"><span></span><span class=\"UIActionLinks UIActionLinks_bottom\" data-ft=\"&#123;&quot;tn&quot;:&quot;=&quot;,&quot;type&quot;:20&#125;\"><button title=\"Like this item\" type=\"submit\" name=\"like\" class=\"like_link stat_elem as_link\" data-ft=\"&#123;&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22&#125;\"><span class=\"default_message\">Like</span><span class=\"saving_message\">Unlike</span></button> &#183; <a class=\"share_action_link\" href=\"/ajax/sharer/?s=22&amp;appid=25554907596&amp;p%5B0%5D=1055580469&amp;p%5B1%5D=10200343222477260&amp;profile_id=1055580469&amp;share_source_type=unknown\" rel=\"dialog\" data-ft=\"&#123;&quot;tn&quot;:&quot;J&quot;,&quot;type&quot;:25&#125;\" title=\"Send this to friends or post it on your timeline.\" role=\"button\">Share</a></span></div></div><div><div class=\"uiUfi UFIContainer\" id=\"u_0_1v\"></div></div></form></div><div class=\"_5ce\"><div class=\"_6a _6b mtm mrs uiPopover _6qd lfloat\" id=\"u_0_1j\"><a class=\"_p uiCloseButton\" href=\"#\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" rel=\"toggle\" title=\"Remove\" id=\"u_0_1k\"></a></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li><li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"l\" data-fixed=\"1\" data-size=\"1\" id=\"tl_unit_-6185676099150237519\"><div class=\"topBorder\"></div><div class=\"timelineUnitContainer\" id=\"u_0_1f\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;-6185676099150237519&quot;,&quot;timeline_unit_type&quot;:&quot;BestPostedLinkUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;&#125;\" data-time=\"1372627013\"><div class=\"\"><div role=\"article\"><div class=\"clearfix mbs pbs _1_m\"><a class=\"_51wa _29h _303\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?hc_location=timeline\" data-ft=\"&#123;&quot;tn&quot;:&quot;\\\\u003C&quot;&#125;\" tabindex=\"-1\" aria-hidden=\"true\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469&amp;extragetparams=%7B%22hc_location%22%3A%22timeline%22%7D\"><img class=\"_50c7 img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" alt=\"\" /></a><div class=\"_3dp _29k\"><h5 class=\"_1_s\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><span class=\"fcg\"><span class=\"fwb\"><a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469\">Gregor Richards</a></span> shared a <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ee3d0ebe4afcc8e6eebdc50ba3a034115d6a59f13(event) {\\u000a    LinkshimAsyncLink.swap(this, \\\"https:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=GWZ0pN_T9AA\\\");\\u000a};\"), (\"sd77ee50bd055f326db005463a73e4f4f0fd4fb58\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ee3d0ebe4afcc8e6eebdc50ba3a034115d6a59f13(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sd77ee50bd055f326db005463a73e4f4f0fd4fb58_0\"), (sd77ee50bd055f326db005463a73e4f4f0fd4fb58_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"swap\")))[(\"swap\")])(this, \"https:\\\\/\\\\/www.youtube.com\\\\/watch?v=GWZ0pN_T9AA\");\n    };\n    var sd77ee50bd055f326db005463a73e4f4f0fd4fb58_0_instance;\n    ((sd77ee50bd055f326db005463a73e4f4f0fd4fb58_0_instance) = ((JSBNG_Record.eventInstance)((\"sd77ee50bd055f326db005463a73e4f4f0fd4fb58_0\"))));\n    ((JSBNG_Record.markFunction)((ee3d0ebe4afcc8e6eebdc50ba3a034115d6a59f13)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e3f6f4a434050754b245acc6eed072e9a1bbc671c(event) {\\u000a    LinkshimAsyncLink.referrer_log(this, \\\"https:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=GWZ0pN_T9AA\\\", \\\"https:\\\\\\\\/\\\\\\\\/www.facebook.com\\\\\\\\/si\\\\\\\\/ajax\\\\\\\\/l\\\\\\\\/render_linkshim_log\\\\\\\\/?u=https\\\\\\\\u00253A\\\\\\\\u00252F\\\\\\\\u00252Fwww.youtube.com\\\\\\\\u00252Fwatch\\\\\\\\u00253Fv\\\\\\\\u00253DGWZ0pN_T9AA&h=xAQFVP3_IAQFjltrQ5JrEAffmnxAOtdY-LtcqHqk-8fzC3w&enc=AZNZoSoyUIaDqrq9Rumystji3uiZj7Jw0JwygIcAyJQnGd-hQP5ASBF4j7J4Y5IpelCzhpm4g3UtU7Aju2xjUaUE&s=1\\\");\\u000a};\"), (\"s9195168ed768a95b714acc3c6de171641a0d6625\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e3f6f4a434050754b245acc6eed072e9a1bbc671c(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s9195168ed768a95b714acc3c6de171641a0d6625_0\"), (s9195168ed768a95b714acc3c6de171641a0d6625_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"referrer_log\")))[(\"referrer_log\")])(this, \"https:\\\\/\\\\/www.youtube.com\\\\/watch?v=GWZ0pN_T9AA\", \"https:\\\\/\\\\/www.facebook.com\\\\/si\\\\/ajax\\\\/l\\\\/render_linkshim_log\\\\/?u=https\\\\u00253A\\\\u00252F\\\\u00252Fwww.youtube.com\\\\u00252Fwatch\\\\u00253Fv\\\\u00253DGWZ0pN_T9AA&h=xAQFVP3_IAQFjltrQ5JrEAffmnxAOtdY-LtcqHqk-8fzC3w&enc=AZNZoSoyUIaDqrq9Rumystji3uiZj7Jw0JwygIcAyJQnGd-hQP5ASBF4j7J4Y5IpelCzhpm4g3UtU7Aju2xjUaUE&s=1\");\n    };\n    var s9195168ed768a95b714acc3c6de171641a0d6625_0_instance;\n    ((s9195168ed768a95b714acc3c6de171641a0d6625_0_instance) = ((JSBNG_Record.eventInstance)((\"s9195168ed768a95b714acc3c6de171641a0d6625_0\"))));\n    ((JSBNG_Record.markFunction)((e3f6f4a434050754b245acc6eed072e9a1bbc671c)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a href=\"http://www.facebook.com/l.php?u=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGWZ0pN_T9AA&amp;h=xAQFVP3_IAQFjltrQ5JrEAffmnxAOtdY-LtcqHqk-8fzC3w&amp;enc=AZNZoSoyUIaDqrq9Rumystji3uiZj7Jw0JwygIcAyJQnGd-hQP5ASBF4j7J4Y5IpelCzhpm4g3UtU7Aju2xjUaUE&amp;s=1\" rel=\"nofollow\" onmouseover=\"return ee3d0ebe4afcc8e6eebdc50ba3a034115d6a59f13.call(this, event);\" onclick=\"return e3f6f4a434050754b245acc6eed072e9a1bbc671c.call(this, event);\" target=\"_blank\">link</a>.</span> </h5><div class=\"_1_n fsm fwn fcg\"><a class=\"uiLinkSubtle\" href=\"/LawlabeeTheWallaby/posts/10200325012062011\"><abbr title=\"Sunday, June 30, 2013 at 5:16pm\" data-utime=\"1372637813\">June 30</abbr></a><a data-hover=\"tooltip\" aria-label=\"Public\" class=\"uiStreamPrivacy inlineBlock fbStreamPrivacy fbPrivacyAudienceIndicator _1_o\" href=\"#\" role=\"button\"><i class=\"lock img sp_3fr8aa sx_3189ab\"></i></a></div></div></div><div class=\"userContentWrapper aboveUnitContent\" data-ft=\"&#123;&quot;tn&quot;:&quot;K&quot;&#125;\"><div class=\"_wk mbm\"><span class=\"userContent\">OK everyone who wants me to talk more about travel, I made a travel vlog JUST FOR YOU: <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e9fc90dc518cf60e3014f922fb7a42eb51231285c(event) {\\u000a    LinkshimAsyncLink.swap(this, \\\"https:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=GWZ0pN_T9AA\\\");\\u000a};\"), (\"sc89231e05f25f6a6e44da33149dffe67a9bbf1d7\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e9fc90dc518cf60e3014f922fb7a42eb51231285c(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sc89231e05f25f6a6e44da33149dffe67a9bbf1d7_0\"), (sc89231e05f25f6a6e44da33149dffe67a9bbf1d7_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"swap\")))[(\"swap\")])(this, \"https:\\\\/\\\\/www.youtube.com\\\\/watch?v=GWZ0pN_T9AA\");\n    };\n    var sc89231e05f25f6a6e44da33149dffe67a9bbf1d7_0_instance;\n    ((sc89231e05f25f6a6e44da33149dffe67a9bbf1d7_0_instance) = ((JSBNG_Record.eventInstance)((\"sc89231e05f25f6a6e44da33149dffe67a9bbf1d7_0\"))));\n    ((JSBNG_Record.markFunction)((e9fc90dc518cf60e3014f922fb7a42eb51231285c)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e514ee88504fed2319bd7834f01dbbf1c60b9d76d(event) {\\u000a    LinkshimAsyncLink.referrer_log(this, \\\"https:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=GWZ0pN_T9AA\\\", \\\"https:\\\\\\\\/\\\\\\\\/www.facebook.com\\\\\\\\/si\\\\\\\\/ajax\\\\\\\\/l\\\\\\\\/render_linkshim_log\\\\\\\\/?u=https\\\\\\\\u00253A\\\\\\\\u00252F\\\\\\\\u00252Fwww.youtube.com\\\\\\\\u00252Fwatch\\\\\\\\u00253Fv\\\\\\\\u00253DGWZ0pN_T9AA&h=RAQFjDDjy&s=1\\\");\\u000a};\"), (\"s5beb46d690b6b29d5d38fc8dde2dbcf672d59845\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e514ee88504fed2319bd7834f01dbbf1c60b9d76d(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s5beb46d690b6b29d5d38fc8dde2dbcf672d59845_0\"), (s5beb46d690b6b29d5d38fc8dde2dbcf672d59845_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"referrer_log\")))[(\"referrer_log\")])(this, \"https:\\\\/\\\\/www.youtube.com\\\\/watch?v=GWZ0pN_T9AA\", \"https:\\\\/\\\\/www.facebook.com\\\\/si\\\\/ajax\\\\/l\\\\/render_linkshim_log\\\\/?u=https\\\\u00253A\\\\u00252F\\\\u00252Fwww.youtube.com\\\\u00252Fwatch\\\\u00253Fv\\\\u00253DGWZ0pN_T9AA&h=RAQFjDDjy&s=1\");\n    };\n    var s5beb46d690b6b29d5d38fc8dde2dbcf672d59845_0_instance;\n    ((s5beb46d690b6b29d5d38fc8dde2dbcf672d59845_0_instance) = ((JSBNG_Record.eventInstance)((\"s5beb46d690b6b29d5d38fc8dde2dbcf672d59845_0\"))));\n    ((JSBNG_Record.markFunction)((e514ee88504fed2319bd7834f01dbbf1c60b9d76d)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a href=\"http://www.facebook.com/l.php?u=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGWZ0pN_T9AA&amp;h=RAQFjDDjy&amp;s=1\" rel=\"nofollow nofollow\" onmouseover=\"return e9fc90dc518cf60e3014f922fb7a42eb51231285c.call(this, event);\" onclick=\"return e514ee88504fed2319bd7834f01dbbf1c60b9d76d.call(this, event);\" target=\"_blank\">http://jsbngssl.www.youtube.com/watch?v=GWZ0pN_T9AA</a></span></div></div><div class=\"shareUnit\"><div class=\"_1y2\"><div><div class=\"_1xw shareLink _1y0\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e7a83e6f4f1dbd1eacc9499ae51e35922989b5914(event) {\\u000a    CSS.addClass(this, \\\"_1xu\\\");\\u000a    CSS.removeClass(this, \\\"_1xv\\\");\\u000a};\"), (\"sd5b514d447fd18fce31a602babb4c8576ed8cb85\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e7a83e6f4f1dbd1eacc9499ae51e35922989b5914(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sd5b514d447fd18fce31a602babb4c8576ed8cb85_0\"), (sd5b514d447fd18fce31a602babb4c8576ed8cb85_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(CSS, (\"addClass\")))[(\"addClass\")])(this, \"_1xu\");\n        (((JSBNG_Record.get)(CSS, (\"removeClass\")))[(\"removeClass\")])(this, \"_1xv\");\n    };\n    var sd5b514d447fd18fce31a602babb4c8576ed8cb85_0_instance;\n    ((sd5b514d447fd18fce31a602babb4c8576ed8cb85_0_instance) = ((JSBNG_Record.eventInstance)((\"sd5b514d447fd18fce31a602babb4c8576ed8cb85_0\"))));\n    ((JSBNG_Record.markFunction)((e7a83e6f4f1dbd1eacc9499ae51e35922989b5914)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"_1xv _1xy _1xx\" ajaxify=\"/ajax/flash/expand_inline.php?target_div=u_0_1e&amp;share_id=10200325012062011&amp;max_width=504&amp;max_height=378&amp;context=timelineOC\" rel=\"async\" href=\"#\" onclick=\"return e7a83e6f4f1dbd1eacc9499ae51e35922989b5914.call(this, event);\" role=\"button\"><i class=\"_1y4\"></i><img class=\"_42xb img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\" alt=\"\" height=\"116\" width=\"116\" style=\"background-image: url(http://jsbngssl.fbexternal-a.akamaihd.net/safe_image.php?d=AQBNVc6yXNVNFDHH&amp;w=116&amp;h=116&amp;url=http%3A%2F%2Fi1.ytimg.com%2Fvi%2FGWZ0pN_T9AA%2Fmaxresdefault.jpg%3Ffeature%3Dog&amp;cfs=1);\" /></a><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e0be9c1771508e91a0645971dd1a79cb7fba019f2(event) {\\u000a    LinkshimAsyncLink.swap(this, \\\"https:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=GWZ0pN_T9AA\\\");\\u000a};\"), (\"sc0ddf6b9cc4f845bf4be6f78384bf5d631e864ef\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e0be9c1771508e91a0645971dd1a79cb7fba019f2(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sc0ddf6b9cc4f845bf4be6f78384bf5d631e864ef_0\"), (sc0ddf6b9cc4f845bf4be6f78384bf5d631e864ef_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"swap\")))[(\"swap\")])(this, \"https:\\\\/\\\\/www.youtube.com\\\\/watch?v=GWZ0pN_T9AA\");\n    };\n    var sc0ddf6b9cc4f845bf4be6f78384bf5d631e864ef_0_instance;\n    ((sc0ddf6b9cc4f845bf4be6f78384bf5d631e864ef_0_instance) = ((JSBNG_Record.eventInstance)((\"sc0ddf6b9cc4f845bf4be6f78384bf5d631e864ef_0\"))));\n    ((JSBNG_Record.markFunction)((e0be9c1771508e91a0645971dd1a79cb7fba019f2)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e61f455b41f8b0f1a9adfb69f823a2478834d7457(event) {\\u000a    LinkshimAsyncLink.referrer_log(this, \\\"https:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=GWZ0pN_T9AA\\\", \\\"https:\\\\\\\\/\\\\\\\\/www.facebook.com\\\\\\\\/si\\\\\\\\/ajax\\\\\\\\/l\\\\\\\\/render_linkshim_log\\\\\\\\/?u=https\\\\\\\\u00253A\\\\\\\\u00252F\\\\\\\\u00252Fwww.youtube.com\\\\\\\\u00252Fwatch\\\\\\\\u00253Fv\\\\\\\\u00253DGWZ0pN_T9AA&h=MAQE0gpr2AQFcTBPB81lLv_J_4E1FtJZ9A_uMvJWVZQDrjA&enc=AZPxuuvOEOcc87VspV0z-b7YiofwAZtp5oH-Nq2dEGMZ_wCunpn_g0YaEWa6Wk73h99tMIEjH_vOwlQNvNMxiv1D&s=1\\\");\\u000a};\"), (\"s79e22085fd9abc87a23ff36cc37b4704847a1431\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e61f455b41f8b0f1a9adfb69f823a2478834d7457(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s79e22085fd9abc87a23ff36cc37b4704847a1431_0\"), (s79e22085fd9abc87a23ff36cc37b4704847a1431_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"referrer_log\")))[(\"referrer_log\")])(this, \"https:\\\\/\\\\/www.youtube.com\\\\/watch?v=GWZ0pN_T9AA\", \"https:\\\\/\\\\/www.facebook.com\\\\/si\\\\/ajax\\\\/l\\\\/render_linkshim_log\\\\/?u=https\\\\u00253A\\\\u00252F\\\\u00252Fwww.youtube.com\\\\u00252Fwatch\\\\u00253Fv\\\\u00253DGWZ0pN_T9AA&h=MAQE0gpr2AQFcTBPB81lLv_J_4E1FtJZ9A_uMvJWVZQDrjA&enc=AZPxuuvOEOcc87VspV0z-b7YiofwAZtp5oH-Nq2dEGMZ_wCunpn_g0YaEWa6Wk73h99tMIEjH_vOwlQNvNMxiv1D&s=1\");\n    };\n    var s79e22085fd9abc87a23ff36cc37b4704847a1431_0_instance;\n    ((s79e22085fd9abc87a23ff36cc37b4704847a1431_0_instance) = ((JSBNG_Record.eventInstance)((\"s79e22085fd9abc87a23ff36cc37b4704847a1431_0\"))));\n    ((JSBNG_Record.markFunction)((e61f455b41f8b0f1a9adfb69f823a2478834d7457)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"_1xx _1xz\" href=\"http://www.facebook.com/l.php?u=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGWZ0pN_T9AA&amp;h=MAQE0gpr2AQFcTBPB81lLv_J_4E1FtJZ9A_uMvJWVZQDrjA&amp;enc=AZPxuuvOEOcc87VspV0z-b7YiofwAZtp5oH-Nq2dEGMZ_wCunpn_g0YaEWa6Wk73h99tMIEjH_vOwlQNvNMxiv1D&amp;s=1\" target=\"_blank\" rel=\"nofollow\" onmouseover=\"return e0be9c1771508e91a0645971dd1a79cb7fba019f2.call(this, event);\" onclick=\"return e61f455b41f8b0f1a9adfb69f823a2478834d7457.call(this, event);\"><div class=\"_1x-\"><div class=\"_1x_ fwb\" dir=\"ltr\">My first travel vlog!</div><div class=\"fsm fwn fcg\">www.youtube.com</div><div class=\"_1y1 fsm fwn fcg\" dir=\"ltr\">I hope you enjoy my first travel vlog RATE COMMENT SHARE SUBSCRIBE WORSHIP</div></div></a></div></div></div></div></div><div class=\"fbTimelineUFI uiCommentContainer\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ea0bba40a2171dce6b66db0ea574193d5faf14eaa(event) {\\u000a    return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\\u000a};\"), (\"sffa75441debf600d62e6a6223d3f2bb359d002b8\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ea0bba40a2171dce6b66db0ea574193d5faf14eaa(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sffa75441debf600d62e6a6223d3f2bb359d002b8_0\"), (sffa75441debf600d62e6a6223d3f2bb359d002b8_0_instance), (this), (arguments)))\n        };\n        (null);\n        return (((((JSBNG_Record.get)(window, (\"JSBNG__Event\")))[(\"JSBNG__Event\")]) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])(this, JSBNG__event));\n    };\n    var sffa75441debf600d62e6a6223d3f2bb359d002b8_0_instance;\n    ((sffa75441debf600d62e6a6223d3f2bb359d002b8_0_instance) = ((JSBNG_Record.eventInstance)((\"sffa75441debf600d62e6a6223d3f2bb359d002b8_0\"))));\n    ((JSBNG_Record.markFunction)((ea0bba40a2171dce6b66db0ea574193d5faf14eaa)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><form rel=\"async\" class=\"live_10200325012062011_316526391751760 commentable_item autoexpand_mode\" method=\"post\" action=\"/ajax/ufi/modify.php\" data-live=\"&#123;&quot;seq&quot;:0&#125;\" onsubmit=\"return ea0bba40a2171dce6b66db0ea574193d5faf14eaa.call(this, event);\" id=\"u_0_1y\"><input type=\"hidden\" name=\"charset_test\" value=\"&euro;,&acute;,€,´,水,Д,Є\" /><input type=\"hidden\" name=\"fb_dtsg\" value=\"AQCttlPQ\" autocomplete=\"off\" /><input type=\"hidden\" autocomplete=\"off\" name=\"feedback_params\" value=\"&#123;&quot;actor&quot;:&quot;1055580469&quot;,&quot;target_fbid&quot;:&quot;10200325012062011&quot;,&quot;target_profile_id&quot;:&quot;1055580469&quot;,&quot;type_id&quot;:&quot;17&quot;,&quot;assoc_obj_id&quot;:&quot;&quot;,&quot;source_app_id&quot;:&quot;0&quot;,&quot;extra_story_params&quot;:[],&quot;content_timestamp&quot;:&quot;1372627013&quot;,&quot;check_hash&quot;:&quot;AQCDUFoJLtB65-Ke&quot;,&quot;source&quot;:&quot;13&quot;&#125;\" /><input type=\"hidden\" autocomplete=\"off\" name=\"data_only_response\" value=\"1\" /><input type=\"hidden\" autocomplete=\"off\" name=\"timeline_ufi\" value=\"1\" /><input type=\"hidden\" name=\"timeline_log_data\" value=\"AQAFUCiLAT5RUcefEz2gKoDEw2y45fki1LQIejQbsCIWgwWsHCHMRqEd6NhhEE3HTJZ2JeWFwNWNGpTentE0x92XazUIAtkX7WDrpyxi9lvRDzK82lTMz_-Mi3SE3WjxflxWWcoKMLrhgXNr8_aZGGFiPZMoR9NNj1x_UacSFZb2GTZ-WXhNFIoMR3XpZ0Pz27lrZweBjs2LJCZhbxVEPWJ_zyMrKnZHkx2FTxMwMZsHcYwye7UenkmczH058RJbpEvmjgxS1Gm_mgug6mBvaekggu2f8o4Rr45al2p3_SqwfDej46LHq_iPe0GGAcI4qqYAbF-p79BSdK-YgegB9yVzvHPCboN8aAtfuzDypVKin-tqTXAmmqLB3xV3C7kjQE4TV1nfDtFW2pWKQZP4YUc1kQmo11w5z3YMFqDxoxibhQ\" /><div class=\"fbTimelineFeedbackHeader\"><div class=\"fbTimelineFeedbackActions clearfix\"><span></span><span class=\"UIActionLinks UIActionLinks_bottom\" data-ft=\"&#123;&quot;tn&quot;:&quot;=&quot;,&quot;type&quot;:20&#125;\"><button title=\"Like this item\" type=\"submit\" name=\"like\" class=\"like_link stat_elem as_link\" data-ft=\"&#123;&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22&#125;\"><span class=\"default_message\">Like</span><span class=\"saving_message\">Unlike</span></button> &#183; <a class=\"share_action_link\" href=\"/ajax/sharer/?s=99&amp;appid=2309869772&amp;p%5B0%5D=1055580469&amp;p%5B1%5D=10200325012062011&amp;profile_id=1055580469&amp;share_source_type=unknown\" rel=\"dialog\" data-ft=\"&#123;&quot;tn&quot;:&quot;J&quot;,&quot;type&quot;:25&#125;\" title=\"Send this to friends or post it on your timeline.\" role=\"button\">Share</a></span></div></div><div><div class=\"uiUfi UFIContainer\" id=\"u_0_1t\"></div></div></form></div><div class=\"_5ce\"><div class=\"_6a _6b mtm mrs uiPopover _6qd lfloat\" id=\"u_0_1g\"><a class=\"_p uiCloseButton\" href=\"#\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" rel=\"toggle\" title=\"Remove\" id=\"u_0_1h\"></a></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li><li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"l\" data-fixed=\"1\" data-size=\"1\" id=\"tl_unit_3857418892059122853\"><div class=\"topBorder\"></div><div class=\"timelineUnitContainer\" id=\"u_0_1b\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;3857418892059122853&quot;,&quot;timeline_unit_type&quot;:&quot;BestPostedLinkUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;&#125;\" data-time=\"1372262734\"><div class=\"\"><div role=\"article\"><div class=\"clearfix mbs pbs _1_m\"><a class=\"_51wa _29h _303\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?hc_location=timeline\" data-ft=\"&#123;&quot;tn&quot;:&quot;\\\\u003C&quot;&#125;\" tabindex=\"-1\" aria-hidden=\"true\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469&amp;extragetparams=%7B%22hc_location%22%3A%22timeline%22%7D\"><img class=\"_50c7 img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" alt=\"\" /></a><div class=\"_3dp _29k\"><h5 class=\"_1_s\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><span class=\"fcg\"><span class=\"fwb\"><a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\" data-hovercard=\"/ajax/hovercard/user.php?id=1055580469\">Gregor Richards</a></span> shared a <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function edf90694c2fb016954fd97754fdd7edafeab56d36(event) {\\u000a    LinkshimAsyncLink.swap(this, \\\"http:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=i6cb0ggl8bQ&feature=share\\\");\\u000a};\"), (\"s5d7faaa135ee9abbc099cd57075302dca3387ac0\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function edf90694c2fb016954fd97754fdd7edafeab56d36(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s5d7faaa135ee9abbc099cd57075302dca3387ac0_0\"), (s5d7faaa135ee9abbc099cd57075302dca3387ac0_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"swap\")))[(\"swap\")])(this, \"http:\\\\/\\\\/www.youtube.com\\\\/watch?v=i6cb0ggl8bQ&feature=share\");\n    };\n    var s5d7faaa135ee9abbc099cd57075302dca3387ac0_0_instance;\n    ((s5d7faaa135ee9abbc099cd57075302dca3387ac0_0_instance) = ((JSBNG_Record.eventInstance)((\"s5d7faaa135ee9abbc099cd57075302dca3387ac0_0\"))));\n    ((JSBNG_Record.markFunction)((edf90694c2fb016954fd97754fdd7edafeab56d36)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e88c9c8701fdad33a384b8641d79f798a725fb9c6(event) {\\u000a    LinkshimAsyncLink.referrer_log(this, \\\"http:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=i6cb0ggl8bQ&feature=share\\\", \\\"https:\\\\\\\\/\\\\\\\\/www.facebook.com\\\\\\\\/si\\\\\\\\/ajax\\\\\\\\/l\\\\\\\\/render_linkshim_log\\\\\\\\/?u=http\\\\\\\\u00253A\\\\\\\\u00252F\\\\\\\\u00252Fwww.youtube.com\\\\\\\\u00252Fwatch\\\\\\\\u00253Fv\\\\\\\\u00253Di6cb0ggl8bQ\\\\\\\\u002526feature\\\\\\\\u00253Dshare&h=QAQGqvEwHAQFok9qv6FbCRILarrnpq5kcpFFAm6COU8GhTQ&enc=AZOUDkGNBZ9uDxd85yz_dR0LtIs2EptUAvNYcBxwyR72O6DTYLjM_cuLxV1SHzDa9IawXxyBI-sV7yTZiuwCmjQE&s=1\\\");\\u000a};\"), (\"sc78581c6960d783d046757153630dc256a88b2b3\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e88c9c8701fdad33a384b8641d79f798a725fb9c6(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sc78581c6960d783d046757153630dc256a88b2b3_0\"), (sc78581c6960d783d046757153630dc256a88b2b3_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"referrer_log\")))[(\"referrer_log\")])(this, \"http:\\\\/\\\\/www.youtube.com\\\\/watch?v=i6cb0ggl8bQ&feature=share\", \"https:\\\\/\\\\/www.facebook.com\\\\/si\\\\/ajax\\\\/l\\\\/render_linkshim_log\\\\/?u=http\\\\u00253A\\\\u00252F\\\\u00252Fwww.youtube.com\\\\u00252Fwatch\\\\u00253Fv\\\\u00253Di6cb0ggl8bQ\\\\u002526feature\\\\u00253Dshare&h=QAQGqvEwHAQFok9qv6FbCRILarrnpq5kcpFFAm6COU8GhTQ&enc=AZOUDkGNBZ9uDxd85yz_dR0LtIs2EptUAvNYcBxwyR72O6DTYLjM_cuLxV1SHzDa9IawXxyBI-sV7yTZiuwCmjQE&s=1\");\n    };\n    var sc78581c6960d783d046757153630dc256a88b2b3_0_instance;\n    ((sc78581c6960d783d046757153630dc256a88b2b3_0_instance) = ((JSBNG_Record.eventInstance)((\"sc78581c6960d783d046757153630dc256a88b2b3_0\"))));\n    ((JSBNG_Record.markFunction)((e88c9c8701fdad33a384b8641d79f798a725fb9c6)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a href=\"http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Di6cb0ggl8bQ%26feature%3Dshare&amp;h=QAQGqvEwHAQFok9qv6FbCRILarrnpq5kcpFFAm6COU8GhTQ&amp;enc=AZOUDkGNBZ9uDxd85yz_dR0LtIs2EptUAvNYcBxwyR72O6DTYLjM_cuLxV1SHzDa9IawXxyBI-sV7yTZiuwCmjQE&amp;s=1\" rel=\"nofollow\" onmouseover=\"return edf90694c2fb016954fd97754fdd7edafeab56d36.call(this, event);\" onclick=\"return e88c9c8701fdad33a384b8641d79f798a725fb9c6.call(this, event);\" target=\"_blank\">link</a>.</span> </h5><div class=\"_1_n fsm fwn fcg\"><a class=\"uiLinkSubtle\" href=\"/LawlabeeTheWallaby/posts/10200303357400658\"><abbr title=\"Wednesday, June 26, 2013 at 12:05pm\" data-utime=\"1372273534\">June 26</abbr></a><a data-hover=\"tooltip\" aria-label=\"Public\" class=\"uiStreamPrivacy inlineBlock fbStreamPrivacy fbPrivacyAudienceIndicator _1_o\" href=\"#\" role=\"button\"><i class=\"lock img sp_3fr8aa sx_3189ab\"></i></a></div></div></div><div class=\"userContentWrapper aboveUnitContent\" data-ft=\"&#123;&quot;tn&quot;:&quot;K&quot;&#125;\"><div class=\"_wk mbm\"><span class=\"userContent\">Last one&#039;s the best.</span></div></div><div class=\"shareUnit\"><div class=\"_1y2\"><div><div class=\"_1xw shareLink _1y0\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e4f4461b134c038c43e53741f6c07b135634ad38b(event) {\\u000a    CSS.addClass(this, \\\"_1xu\\\");\\u000a    CSS.removeClass(this, \\\"_1xv\\\");\\u000a};\"), (\"s784b3c9c5f9acc6efc168fe4ec7cd3c3978da0f0\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e4f4461b134c038c43e53741f6c07b135634ad38b(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s784b3c9c5f9acc6efc168fe4ec7cd3c3978da0f0_0\"), (s784b3c9c5f9acc6efc168fe4ec7cd3c3978da0f0_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(CSS, (\"addClass\")))[(\"addClass\")])(this, \"_1xu\");\n        (((JSBNG_Record.get)(CSS, (\"removeClass\")))[(\"removeClass\")])(this, \"_1xv\");\n    };\n    var s784b3c9c5f9acc6efc168fe4ec7cd3c3978da0f0_0_instance;\n    ((s784b3c9c5f9acc6efc168fe4ec7cd3c3978da0f0_0_instance) = ((JSBNG_Record.eventInstance)((\"s784b3c9c5f9acc6efc168fe4ec7cd3c3978da0f0_0\"))));\n    ((JSBNG_Record.markFunction)((e4f4461b134c038c43e53741f6c07b135634ad38b)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"_1xv _1xy _1xx\" ajaxify=\"/ajax/flash/expand_inline.php?target_div=u_0_1a&amp;share_id=10200303357400658&amp;max_width=504&amp;max_height=378&amp;context=timelineOC\" rel=\"async\" href=\"#\" onclick=\"return e4f4461b134c038c43e53741f6c07b135634ad38b.call(this, event);\" role=\"button\"><i class=\"_1y4\"></i><img class=\"_42xb img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\" alt=\"\" height=\"116\" width=\"116\" style=\"background-image: url(http://jsbngssl.fbexternal-a.akamaihd.net/safe_image.php?d=AQA7R5r-YEOUHY7V&amp;w=116&amp;h=116&amp;url=http%3A%2F%2Fi1.ytimg.com%2Fvi%2Fi6cb0ggl8bQ%2Fhqdefault.jpg%3Ffeature%3Dog&amp;cfs=1);\" /></a><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e0be9c9e16542d662692007370f966577e73e0028(event) {\\u000a    LinkshimAsyncLink.swap(this, \\\"http:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=i6cb0ggl8bQ&feature=share\\\");\\u000a};\"), (\"sff234bab37ce76f35ea200104ba85ddfeb76f760\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e0be9c9e16542d662692007370f966577e73e0028(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sff234bab37ce76f35ea200104ba85ddfeb76f760_0\"), (sff234bab37ce76f35ea200104ba85ddfeb76f760_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"swap\")))[(\"swap\")])(this, \"http:\\\\/\\\\/www.youtube.com\\\\/watch?v=i6cb0ggl8bQ&feature=share\");\n    };\n    var sff234bab37ce76f35ea200104ba85ddfeb76f760_0_instance;\n    ((sff234bab37ce76f35ea200104ba85ddfeb76f760_0_instance) = ((JSBNG_Record.eventInstance)((\"sff234bab37ce76f35ea200104ba85ddfeb76f760_0\"))));\n    ((JSBNG_Record.markFunction)((e0be9c9e16542d662692007370f966577e73e0028)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ec4b5dd1365a05d888eb861c40bc4ed1c49b09325(event) {\\u000a    LinkshimAsyncLink.referrer_log(this, \\\"http:\\\\\\\\/\\\\\\\\/www.youtube.com\\\\\\\\/watch?v=i6cb0ggl8bQ&feature=share\\\", \\\"https:\\\\\\\\/\\\\\\\\/www.facebook.com\\\\\\\\/si\\\\\\\\/ajax\\\\\\\\/l\\\\\\\\/render_linkshim_log\\\\\\\\/?u=http\\\\\\\\u00253A\\\\\\\\u00252F\\\\\\\\u00252Fwww.youtube.com\\\\\\\\u00252Fwatch\\\\\\\\u00253Fv\\\\\\\\u00253Di6cb0ggl8bQ\\\\\\\\u002526feature\\\\\\\\u00253Dshare&h=bAQEnft5SAQGS-fFhbNsHQPGCuKfDanJb-861l3IOxjcbiA&enc=AZMi2QfZSHchdhApjvjnq4DaTvu3hrCUT0MZm4oPvdEfmHp0kHgQWKUpUEhXcoD58cFKogChmUs3503jYgddfVSS&s=1\\\");\\u000a};\"), (\"sc3a54f2de423962b298d364143f729b1a313d919\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ec4b5dd1365a05d888eb861c40bc4ed1c49b09325(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sc3a54f2de423962b298d364143f729b1a313d919_0\"), (sc3a54f2de423962b298d364143f729b1a313d919_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(LinkshimAsyncLink, (\"referrer_log\")))[(\"referrer_log\")])(this, \"http:\\\\/\\\\/www.youtube.com\\\\/watch?v=i6cb0ggl8bQ&feature=share\", \"https:\\\\/\\\\/www.facebook.com\\\\/si\\\\/ajax\\\\/l\\\\/render_linkshim_log\\\\/?u=http\\\\u00253A\\\\u00252F\\\\u00252Fwww.youtube.com\\\\u00252Fwatch\\\\u00253Fv\\\\u00253Di6cb0ggl8bQ\\\\u002526feature\\\\u00253Dshare&h=bAQEnft5SAQGS-fFhbNsHQPGCuKfDanJb-861l3IOxjcbiA&enc=AZMi2QfZSHchdhApjvjnq4DaTvu3hrCUT0MZm4oPvdEfmHp0kHgQWKUpUEhXcoD58cFKogChmUs3503jYgddfVSS&s=1\");\n    };\n    var sc3a54f2de423962b298d364143f729b1a313d919_0_instance;\n    ((sc3a54f2de423962b298d364143f729b1a313d919_0_instance) = ((JSBNG_Record.eventInstance)((\"sc3a54f2de423962b298d364143f729b1a313d919_0\"))));\n    ((JSBNG_Record.markFunction)((ec4b5dd1365a05d888eb861c40bc4ed1c49b09325)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"_1xx _1xz\" href=\"http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Di6cb0ggl8bQ%26feature%3Dshare&amp;h=bAQEnft5SAQGS-fFhbNsHQPGCuKfDanJb-861l3IOxjcbiA&amp;enc=AZMi2QfZSHchdhApjvjnq4DaTvu3hrCUT0MZm4oPvdEfmHp0kHgQWKUpUEhXcoD58cFKogChmUs3503jYgddfVSS&amp;s=1\" target=\"_blank\" rel=\"nofollow\" onmouseover=\"return e0be9c9e16542d662692007370f966577e73e0028.call(this, event);\" onclick=\"return ec4b5dd1365a05d888eb861c40bc4ed1c49b09325.call(this, event);\"><div class=\"_1x-\"><div class=\"_1x_ fwb\" dir=\"ltr\">Exploding Actresses 03 - Disney Princesses</div><div class=\"fsm fwn fcg\">www.youtube.com</div><div class=\"_1y1 fsm fwn fcg\" dir=\"ltr\">by Simone Rovellini http://explodingactresses.tumblr.com/ info&#064;simonerovellini.com</div></div></a></div></div></div></div></div><div class=\"fbTimelineUFI uiCommentContainer\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function edce47c0fb42833f2f306974f30788c1d51e434be(event) {\\u000a    return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\\u000a};\"), (\"s8882c9d4c3aaeb2ece5bdf64d92ba47d1e0f49ba\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function edce47c0fb42833f2f306974f30788c1d51e434be(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s8882c9d4c3aaeb2ece5bdf64d92ba47d1e0f49ba_0\"), (s8882c9d4c3aaeb2ece5bdf64d92ba47d1e0f49ba_0_instance), (this), (arguments)))\n        };\n        (null);\n        return (((((JSBNG_Record.get)(window, (\"JSBNG__Event\")))[(\"JSBNG__Event\")]) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])) && (((JSBNG_Record.get)(JSBNG__Event, (\"__inlineSubmit\")))[(\"__inlineSubmit\")])(this, JSBNG__event));\n    };\n    var s8882c9d4c3aaeb2ece5bdf64d92ba47d1e0f49ba_0_instance;\n    ((s8882c9d4c3aaeb2ece5bdf64d92ba47d1e0f49ba_0_instance) = ((JSBNG_Record.eventInstance)((\"s8882c9d4c3aaeb2ece5bdf64d92ba47d1e0f49ba_0\"))));\n    ((JSBNG_Record.markFunction)((edce47c0fb42833f2f306974f30788c1d51e434be)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><form rel=\"async\" class=\"live_10200303357400658_316526391751760 commentable_item autoexpand_mode\" method=\"post\" action=\"/ajax/ufi/modify.php\" data-live=\"&#123;&quot;seq&quot;:&quot;10200303357400658_4912511&quot;&#125;\" onsubmit=\"return edce47c0fb42833f2f306974f30788c1d51e434be.call(this, event);\" id=\"u_0_1z\"><input type=\"hidden\" name=\"charset_test\" value=\"&euro;,&acute;,€,´,水,Д,Є\" /><input type=\"hidden\" name=\"fb_dtsg\" value=\"AQCttlPQ\" autocomplete=\"off\" /><input type=\"hidden\" autocomplete=\"off\" name=\"feedback_params\" value=\"&#123;&quot;actor&quot;:&quot;1055580469&quot;,&quot;target_fbid&quot;:&quot;10200303357400658&quot;,&quot;target_profile_id&quot;:&quot;1055580469&quot;,&quot;type_id&quot;:&quot;17&quot;,&quot;assoc_obj_id&quot;:&quot;&quot;,&quot;source_app_id&quot;:&quot;0&quot;,&quot;extra_story_params&quot;:[],&quot;content_timestamp&quot;:&quot;1372262734&quot;,&quot;check_hash&quot;:&quot;AQBLYqqsJU1aAE5L&quot;,&quot;source&quot;:&quot;13&quot;&#125;\" /><input type=\"hidden\" autocomplete=\"off\" name=\"data_only_response\" value=\"1\" /><input type=\"hidden\" autocomplete=\"off\" name=\"timeline_ufi\" value=\"1\" /><input type=\"hidden\" name=\"timeline_log_data\" value=\"AQChaL86QisSqs0sUSs8MRUaUotI69G171F9LUzJjbgJ3UzhkCDbngkCSE3LqTXr_kwkpMKYBFjbAFbf3ARkq6WPhwdNggKyVSvV8KV-PNpxpVpn4z-X01gT7qWCefQ74vFJS2ze7QPxN8wBikMPK_87rL9vxxevWGYc6pl6lt9iairELljWGqZ5OVTPh_6betWgKPnueIKl3cfeeu2Wp8JVo_rxtcGLCbGllyAUoOfJQvVl1ip2BW-lSbknT2jNEqF6YODCH8P6runJMeNh1vdnyrKv4tcAfTjIZJTNToVZuwg0_J_mSNRH0A0Pd0n1fwQ7E6tv0rX79Dhg8U_MZ5vNwdHr1A2inl1kF3pwcKlpAKuaPfTvQg9J_b4Er2dOkDYkc_ns-EaFh3HtRioAV4ql\" /><div class=\"fbTimelineFeedbackHeader\"><div class=\"fbTimelineFeedbackActions clearfix\"><span></span><span class=\"UIActionLinks UIActionLinks_bottom\" data-ft=\"&#123;&quot;tn&quot;:&quot;=&quot;,&quot;type&quot;:20&#125;\"><button title=\"Like this item\" type=\"submit\" name=\"like\" class=\"like_link stat_elem as_link\" data-ft=\"&#123;&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22&#125;\"><span class=\"default_message\">Like</span><span class=\"saving_message\">Unlike</span></button> &#183; <a class=\"share_action_link\" href=\"/ajax/sharer/?s=99&amp;appid=2309869772&amp;p%5B0%5D=1055580469&amp;p%5B1%5D=10200303357400658&amp;profile_id=1055580469&amp;share_source_type=unknown\" rel=\"dialog\" data-ft=\"&#123;&quot;tn&quot;:&quot;J&quot;,&quot;type&quot;:25&#125;\" title=\"Send this to friends or post it on your timeline.\" role=\"button\">Share</a></span></div></div><div><div class=\"uiUfi UFIContainer\" id=\"u_0_1p\"></div></div></form></div><div class=\"_5ce\"><div class=\"_6a _6b mtm mrs uiPopover _6qd lfloat\" id=\"u_0_1c\"><a class=\"_p uiCloseButton\" href=\"#\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" rel=\"toggle\" title=\"Remove\" id=\"u_0_1d\"></a></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li> ";
2642 // undefined
2643 o46 = null;
2644 // 2501
2645 o45.parentNode = o25;
2646 // 2503
2647 f974244559_507.returns.push(o45);
2648 // undefined
2649 o45 = null;
2650 // 2505
2651 o45 = {};
2652 // 2506
2653 f974244559_480.returns.push(o45);
2654 // 2507
2655 // 2509
2656 o46 = {};
2657 // 2510
2658 f974244559_478.returns.push(o46);
2659 // 2511
2660 o47 = {};
2661 // undefined
2662 fo974244559_632_firstChild = function() { return fo974244559_632_firstChild.returns[fo974244559_632_firstChild.inst++]; };
2663 fo974244559_632_firstChild.returns = [];
2664 fo974244559_632_firstChild.inst = 0;
2665 defineGetter(o45, "firstChild", fo974244559_632_firstChild, undefined);
2666 // undefined
2667 o45 = null;
2668 // undefined
2669 fo974244559_632_firstChild.returns.push(o47);
2670 // 2513
2671 o46.appendChild = f974244559_482;
2672 // undefined
2673 fo974244559_632_firstChild.returns.push(o47);
2674 // 2515
2675 f974244559_482.returns.push(o47);
2676 // undefined
2677 o47 = null;
2678 // 2516
2679 o45 = {};
2680 // undefined
2681 fo974244559_632_firstChild.returns.push(o45);
2682 // undefined
2683 fo974244559_632_firstChild.returns.push(o45);
2684 // 2520
2685 f974244559_482.returns.push(o45);
2686 // undefined
2687 o45 = null;
2688 // 2521
2689 o45 = {};
2690 // undefined
2691 fo974244559_632_firstChild.returns.push(o45);
2692 // undefined
2693 fo974244559_632_firstChild.returns.push(o45);
2694 // 2525
2695 f974244559_482.returns.push(o45);
2696 // undefined
2697 o45 = null;
2698 // 2526
2699 o45 = {};
2700 // undefined
2701 fo974244559_632_firstChild.returns.push(o45);
2702 // undefined
2703 fo974244559_632_firstChild.returns.push(o45);
2704 // 2530
2705 f974244559_482.returns.push(o45);
2706 // undefined
2707 o45 = null;
2708 // undefined
2709 fo974244559_632_firstChild.returns.push(null);
2710 // 2532
2711 o44.appendChild = f974244559_482;
2712 // 2533
2713 f974244559_482.returns.push(o46);
2714 // undefined
2715 o46 = null;
2716 // 2535
2717 f974244559_500.returns.push("pagelet_timeline_recent_ocm");
2718 // 2593
2719 o45 = {};
2720 // 2594
2721 f974244559_480.returns.push(o45);
2722 // 2595
2723 o46 = {};
2724 // 2596
2725 o0.implementation = o46;
2726 // 2598
2727 f974244559_640 = function() { return f974244559_640.returns[f974244559_640.inst++]; };
2728 f974244559_640.returns = [];
2729 f974244559_640.inst = 0;
2730 // 2599
2731 o46.hasFeature = f974244559_640;
2732 // undefined
2733 o46 = null;
2734 // 2602
2735 f974244559_640.returns.push(false);
2736 // 2604
2737 o46 = {};
2738 // 2605
2739 f974244559_480.returns.push(o46);
2740 // undefined
2741 o46 = null;
2742 // 2607
2743 o46 = {};
2744 // 2608
2745 f974244559_480.returns.push(o46);
2746 // 2609
2747 f974244559_643 = function() { return f974244559_643.returns[f974244559_643.inst++]; };
2748 f974244559_643.returns = [];
2749 f974244559_643.inst = 0;
2750 // 2610
2751 o46.setAttribute = f974244559_643;
2752 // 2611
2753 f974244559_643.returns.push(undefined);
2754 // 2612
2755 o46.JSBNG__onchange = null;
2756 // 2614
2757 // 2615
2758 f974244559_644 = function() { return f974244559_644.returns[f974244559_644.inst++]; };
2759 f974244559_644.returns = [];
2760 f974244559_644.inst = 0;
2761 // 2616
2762 o46.removeAttribute = f974244559_644;
2763 // undefined
2764 o46 = null;
2765 // 2617
2766 f974244559_644.returns.push(undefined);
2767 // 2619
2768 o46 = {};
2769 // 2620
2770 f974244559_480.returns.push(o46);
2771 // 2621
2772 o46.setAttribute = f974244559_643;
2773 // 2622
2774 f974244559_643.returns.push(undefined);
2775 // 2623
2776 o46.JSBNG__oninput = null;
2777 // 2625
2778 // 2626
2779 o46.removeAttribute = f974244559_644;
2780 // undefined
2781 o46 = null;
2782 // 2627
2783 f974244559_644.returns.push(undefined);
2784 // 2628
2785 o46 = {};
2786 // 2629
2787 f974244559_70.returns.push(o46);
2788 // undefined
2789 o46 = null;
2790 // 2630
2791 ow974244559.JSBNG__attachEvent = undefined;
2792 // 2631
2793 f974244559_470.returns.push(0.5932048605754972);
2794 // 2633
2795 o46 = {};
2796 // 2634
2797 f974244559_480.returns.push(o46);
2798 // 2635
2799 // 2636
2800 // 2637
2801 o46.getElementsByTagName = f974244559_514;
2802 // 2638
2803 o47 = {};
2804 // 2639
2805 f974244559_514.returns.push(o47);
2806 // 2640
2807 o47.length = 0;
2808 // undefined
2809 o47 = null;
2810 // 2642
2811 o47 = {};
2812 // 2643
2813 o46.childNodes = o47;
2814 // undefined
2815 o46 = null;
2816 // 2644
2817 o47.item = f974244559_517;
2818 // 2645
2819 o47.length = 1;
2820 // 2646
2821 o46 = {};
2822 // 2647
2823 o47["0"] = o46;
2824 // undefined
2825 o47 = null;
2826 // undefined
2827 o46 = null;
2828 // 2649
2829 o46 = {};
2830 // 2650
2831 f974244559_502.returns.push(o46);
2832 // 2651
2833 o46.id = "u_0_1p";
2834 // 2652
2835 o46.getElementsByTagName = f974244559_514;
2836 // 2653
2837 o47 = {};
2838 // 2654
2839 o46.parentNode = o47;
2840 // 2670
2841 f974244559_471.returns.push(1373491288224);
2842 // 2675
2843 o48 = {};
2844 // 2676
2845 f974244559_523.returns.push(o48);
2846 // 2677
2847 o48.length = 0;
2848 // undefined
2849 o48 = null;
2850 // 2678
2851 f974244559_14.returns.push(undefined);
2852 // 2679
2853 f974244559_12.returns.push(5);
2854 // 2686
2855 f974244559_12.returns.push(6);
2856 // 2690
2857 o48 = {};
2858 // 2691
2859 f974244559_478.returns.push(o48);
2860 // 2693
2861 f974244559_471.returns.push(1373491288228);
2862 // 2695
2863 o49 = {};
2864 // 2696
2865 f974244559_480.returns.push(o49);
2866 // 2697
2867 // 2698
2868 // 2699
2869 // 2700
2870 // 2701
2871 // 2702
2872 // 2703
2873 o48.appendChild = f974244559_482;
2874 // 2704
2875 f974244559_482.returns.push(o49);
2876 // 2706
2877 f974244559_482.returns.push(o48);
2878 // undefined
2879 o48 = null;
2880 // 2710
2881 o48 = {};
2882 // 2711
2883 f974244559_502.returns.push(o48);
2884 // 2712
2885 o48.id = "u_0_1s";
2886 // 2713
2887 o48.getElementsByTagName = f974244559_514;
2888 // 2714
2889 o50 = {};
2890 // 2715
2891 o48.parentNode = o50;
2892 // undefined
2893 fo974244559_651_firstChild = function() { return fo974244559_651_firstChild.returns[fo974244559_651_firstChild.inst++]; };
2894 fo974244559_651_firstChild.returns = [];
2895 fo974244559_651_firstChild.inst = 0;
2896 defineGetter(o46, "firstChild", fo974244559_651_firstChild, undefined);
2897 // undefined
2898 fo974244559_651_firstChild.returns.push(null);
2899 // undefined
2900 fo974244559_651_firstChild.returns.push(null);
2901 // 2737
2902 f974244559_7.returns.push(undefined);
2903 // 2738
2904 ow974244559.JSBNG__onJSBNG__scroll = undefined;
2905 // 2739
2906 f974244559_7.returns.push(undefined);
2907 // 2740
2908 f974244559_658 = function() { return f974244559_658.returns[f974244559_658.inst++]; };
2909 f974244559_658.returns = [];
2910 f974244559_658.inst = 0;
2911 // 2741
2912 ow974244559.JSBNG__onresize = f974244559_658;
2913 // 2744
2914 o0.nodeName = "#document";
2915 // 2745
2916 o0.__FB_TOKEN = void 0;
2917 // 2746
2918 // 2750
2919 f974244559_472.returns.push(undefined);
2920 // 2751
2921 o0.JSBNG__onmouseover = null;
2922 // 2756
2923 f974244559_472.returns.push(undefined);
2924 // 2757
2925 o0.JSBNG__onmousedown = null;
2926 // 2762
2927 f974244559_472.returns.push(undefined);
2928 // 2763
2929 o0.JSBNG__onmouseup = null;
2930 // 2768
2931 f974244559_472.returns.push(undefined);
2932 // 2769
2933 o0.JSBNG__onmousemove = null;
2934 // 2774
2935 f974244559_472.returns.push(undefined);
2936 // 2775
2937 o0.JSBNG__onmouseout = null;
2938 // 2780
2939 f974244559_472.returns.push(undefined);
2940 // 2781
2941 o0.JSBNG__onclick = null;
2942 // 2786
2943 f974244559_472.returns.push(undefined);
2944 // 2787
2945 o0.JSBNG__ondblclick = null;
2946 // 2792
2947 f974244559_472.returns.push(undefined);
2948 // 2793
2949 o0.JSBNG__onkeyup = null;
2950 // 2798
2951 f974244559_472.returns.push(undefined);
2952 // 2799
2953 o0.JSBNG__onkeypress = null;
2954 // 2804
2955 f974244559_472.returns.push(undefined);
2956 // 2805
2957 o0.JSBNG__onkeydown = null;
2958 // 2810
2959 f974244559_472.returns.push(undefined);
2960 // 2811
2961 o0.JSBNG__oninput = null;
2962 // 2816
2963 f974244559_472.returns.push(undefined);
2964 // 2817
2965 o0.JSBNG__onchange = null;
2966 // 2822
2967 f974244559_472.returns.push(undefined);
2968 // 2823
2969 o0.JSBNG__onselectionchange = null;
2970 // 2828
2971 f974244559_472.returns.push(undefined);
2972 // 2829
2973 o0.JSBNG__onDOMCharacterDataModified = void 0;
2974 // 2832
2975 o51 = {};
2976 // 2833
2977 f974244559_480.returns.push(o51);
2978 // 2834
2979 o51.setAttribute = f974244559_643;
2980 // 2835
2981 f974244559_643.returns.push(undefined);
2982 // 2836
2983 o51.JSBNG__ondrag = null;
2984 // 2838
2985 // 2839
2986 o51.removeAttribute = f974244559_644;
2987 // undefined
2988 o51 = null;
2989 // 2840
2990 f974244559_644.returns.push(undefined);
2991 // 2842
2992 o51 = {};
2993 // 2843
2994 f974244559_480.returns.push(o51);
2995 // 2844
2996 o51.setAttribute = f974244559_643;
2997 // 2845
2998 f974244559_643.returns.push(undefined);
2999 // 2846
3000 o51.JSBNG__onwheel = void 0;
3001 // 2848
3002 o51.removeAttribute = f974244559_644;
3003 // undefined
3004 o51 = null;
3005 // 2849
3006 f974244559_644.returns.push(undefined);
3007 // 2852
3008 f974244559_640.returns.push(false);
3009 // 2854
3010 o51 = {};
3011 // 2855
3012 f974244559_480.returns.push(o51);
3013 // 2856
3014 o51.setAttribute = f974244559_643;
3015 // 2857
3016 f974244559_643.returns.push(undefined);
3017 // 2858
3018 o51.JSBNG__onmousewheel = null;
3019 // 2860
3020 // 2861
3021 o51.removeAttribute = f974244559_644;
3022 // undefined
3023 o51 = null;
3024 // 2862
3025 f974244559_644.returns.push(undefined);
3026 // 2866
3027 f974244559_472.returns.push(undefined);
3028 // 2867
3029 o0.JSBNG__onDOMMouseScroll = void 0;
3030 // 2869
3031 o45.JSBNG__addEventListener = f974244559_472;
3032 // undefined
3033 o45 = null;
3034 // 2871
3035 o45 = {};
3036 // 2872
3037 f974244559_480.returns.push(o45);
3038 // 2873
3039 o45.setAttribute = f974244559_643;
3040 // 2874
3041 f974244559_643.returns.push(undefined);
3042 // 2875
3043 o45.JSBNG__onJSBNG__scroll = void 0;
3044 // 2877
3045 o45.removeAttribute = f974244559_644;
3046 // undefined
3047 o45 = null;
3048 // 2878
3049 f974244559_644.returns.push(undefined);
3050 // 2884
3051 o45 = {};
3052 // 2885
3053 f974244559_480.returns.push(o45);
3054 // 2886
3055 o45.setAttribute = f974244559_643;
3056 // 2887
3057 f974244559_643.returns.push(undefined);
3058 // 2888
3059 o45.JSBNG__onJSBNG__focus = void 0;
3060 // 2890
3061 o45.removeAttribute = f974244559_644;
3062 // undefined
3063 o45 = null;
3064 // 2891
3065 f974244559_644.returns.push(undefined);
3066 // 2893
3067 o45 = {};
3068 // 2894
3069 f974244559_480.returns.push(o45);
3070 // 2895
3071 o45.setAttribute = f974244559_643;
3072 // 2896
3073 f974244559_643.returns.push(undefined);
3074 // 2897
3075 o45.JSBNG__onfocusin = void 0;
3076 // 2899
3077 o45.removeAttribute = f974244559_644;
3078 // undefined
3079 o45 = null;
3080 // 2900
3081 f974244559_644.returns.push(undefined);
3082 // undefined
3083 fo974244559_651_firstChild.returns.push(null);
3084 // 2902
3085 f974244559_470.returns.push(0.41786139039322734);
3086 // 2904
3087 f974244559_471.returns.push(1373491288299);
3088 // 2906
3089 f974244559_471.returns.push(1373491288299);
3090 // 2907
3091 o0.activeElement = o25;
3092 // 2908
3093 o25.nodeName = "BODY";
3094 // 2910
3095 o25.contentEditable = "inherit";
3096 // 2912
3097 f974244559_471.returns.push(1373491288300);
3098 // 2914
3099 f974244559_471.returns.push(1373491288300);
3100 // 2916
3101 f974244559_471.returns.push(1373491288300);
3102 // 2918
3103 f974244559_471.returns.push(1373491288300);
3104 // 2920
3105 f974244559_471.returns.push(1373491288308);
3106 // 2921
3107 o46.nodeType = 1;
3108 // 2923
3109 f974244559_471.returns.push(1373491288308);
3110 // 2927
3111 o45 = {};
3112 // 2928
3113 f974244559_478.returns.push(o45);
3114 // 2930
3115 f974244559_482.returns.push(o45);
3116 // undefined
3117 o45 = null;
3118 // 2932
3119 f974244559_471.returns.push(1373491288342);
3120 // 2936
3121 o45 = {};
3122 // 2937
3123 f974244559_478.returns.push(o45);
3124 // 2939
3125 f974244559_482.returns.push(o45);
3126 // undefined
3127 o45 = null;
3128 // 2941
3129 f974244559_471.returns.push(1373491288363);
3130 // 2945
3131 o45 = {};
3132 // 2946
3133 f974244559_478.returns.push(o45);
3134 // 2948
3135 f974244559_482.returns.push(o45);
3136 // undefined
3137 o45 = null;
3138 // 2950
3139 f974244559_471.returns.push(1373491288376);
3140 // 2954
3141 o45 = {};
3142 // 2955
3143 f974244559_478.returns.push(o45);
3144 // 2957
3145 f974244559_482.returns.push(o45);
3146 // undefined
3147 o45 = null;
3148 // 2959
3149 f974244559_471.returns.push(1373491288386);
3150 // 2961
3151 f974244559_471.returns.push(1373491288389);
3152 // 2963
3153 f974244559_471.returns.push(1373491288389);
3154 // 2965
3155 o46.nextSibling = null;
3156 // 2966
3157 o47.removeChild = f974244559_507;
3158 // 2967
3159 f974244559_507.returns.push(o46);
3160 // 2968
3161 // 2969
3162 o47.appendChild = f974244559_482;
3163 // 2970
3164 f974244559_482.returns.push(o46);
3165 // 2972
3166 f974244559_471.returns.push(1373491288399);
3167 // 2974
3168 f974244559_471.returns.push(1373491288399);
3169 // 2976
3170 f974244559_471.returns.push(1373491288399);
3171 // 2979
3172 f974244559_471.returns.push(1373491288399);
3173 // 2981
3174 f974244559_471.returns.push(1373491288399);
3175 // 2983
3176 f974244559_471.returns.push(1373491288400);
3177 // 2985
3178 f974244559_471.returns.push(1373491288400);
3179 // 2986
3180 o45 = {};
3181 // undefined
3182 fo974244559_651_firstChild.returns.push(o45);
3183 // 2988
3184 o45.getAttributeNode = f974244559_519;
3185 // 2990
3186 o51 = {};
3187 // 2991
3188 f974244559_519.returns.push(o51);
3189 // 2992
3190 o51.value = ".r[2hk8m]";
3191 // 2993
3192 o52 = {};
3193 // 2994
3194 o45.firstChild = o52;
3195 // 2995
3196 o52.getAttributeNode = f974244559_519;
3197 // 2997
3198 o53 = {};
3199 // 2998
3200 f974244559_519.returns.push(o53);
3201 // 2999
3202 o53.value = ".r[2hk8m].[1][4][0]";
3203 // 3000
3204 o54 = {};
3205 // 3001
3206 o52.firstChild = o54;
3207 // undefined
3208 o54 = null;
3209 // 3002
3210 o54 = {};
3211 // 3003
3212 o52.nextSibling = o54;
3213 // undefined
3214 o52 = null;
3215 // 3004
3216 o54.getAttributeNode = f974244559_519;
3217 // 3006
3218 o52 = {};
3219 // 3007
3220 f974244559_519.returns.push(o52);
3221 // 3008
3222 o52.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}";
3223 // 3009
3224 o55 = {};
3225 // 3010
3226 o54.firstChild = o55;
3227 // 3011
3228 o55.getAttributeNode = f974244559_519;
3229 // 3013
3230 o56 = {};
3231 // 3014
3232 f974244559_519.returns.push(o56);
3233 // 3015
3234 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0]";
3235 // undefined
3236 o56 = null;
3237 // 3016
3238 o56 = {};
3239 // 3017
3240 o55.firstChild = o56;
3241 // undefined
3242 o55 = null;
3243 // 3018
3244 o56.getAttributeNode = f974244559_519;
3245 // 3020
3246 o55 = {};
3247 // 3021
3248 f974244559_519.returns.push(o55);
3249 // 3022
3250 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[left]";
3251 // undefined
3252 o55 = null;
3253 // 3023
3254 o55 = {};
3255 // 3024
3256 o56.firstChild = o55;
3257 // undefined
3258 o55 = null;
3259 // 3025
3260 o55 = {};
3261 // 3026
3262 o56.nextSibling = o55;
3263 // undefined
3264 o56 = null;
3265 // 3027
3266 o55.getAttributeNode = f974244559_519;
3267 // 3029
3268 o56 = {};
3269 // 3030
3270 f974244559_519.returns.push(o56);
3271 // 3031
3272 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right]";
3273 // undefined
3274 o56 = null;
3275 // 3032
3276 o56 = {};
3277 // 3033
3278 o55.firstChild = o56;
3279 // undefined
3280 o55 = null;
3281 // 3034
3282 o56.getAttributeNode = f974244559_519;
3283 // 3036
3284 o55 = {};
3285 // 3037
3286 f974244559_519.returns.push(o55);
3287 // 3038
3288 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0]";
3289 // undefined
3290 o55 = null;
3291 // 3039
3292 o55 = {};
3293 // 3040
3294 o56.firstChild = o55;
3295 // undefined
3296 o56 = null;
3297 // 3041
3298 o55.getAttributeNode = f974244559_519;
3299 // 3043
3300 o56 = {};
3301 // 3044
3302 f974244559_519.returns.push(o56);
3303 // 3045
3304 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left]";
3305 // undefined
3306 o56 = null;
3307 // 3046
3308 o56 = {};
3309 // 3047
3310 o55.firstChild = o56;
3311 // undefined
3312 o55 = null;
3313 // 3048
3314 o56.getAttributeNode = f974244559_519;
3315 // 3050
3316 o55 = {};
3317 // 3051
3318 f974244559_519.returns.push(o55);
3319 // 3052
3320 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left].[0]";
3321 // undefined
3322 o55 = null;
3323 // 3053
3324 o55 = {};
3325 // 3054
3326 o56.firstChild = o55;
3327 // undefined
3328 o56 = null;
3329 // 3055
3330 o55.getAttributeNode = f974244559_519;
3331 // 3057
3332 o56 = {};
3333 // 3058
3334 f974244559_519.returns.push(o56);
3335 // 3059
3336 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left].[0].[0]";
3337 // undefined
3338 o56 = null;
3339 // 3060
3340 o56 = {};
3341 // 3061
3342 o55.firstChild = o56;
3343 // undefined
3344 o55 = null;
3345 // 3062
3346 o56.getAttributeNode = f974244559_519;
3347 // 3064
3348 o55 = {};
3349 // 3065
3350 f974244559_519.returns.push(o55);
3351 // 3066
3352 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left].[0].[0].[0][0]";
3353 // undefined
3354 o55 = null;
3355 // 3067
3356 o55 = {};
3357 // 3068
3358 o56.firstChild = o55;
3359 // undefined
3360 o55 = null;
3361 // 3069
3362 o55 = {};
3363 // 3070
3364 o56.nextSibling = o55;
3365 // undefined
3366 o56 = null;
3367 // 3071
3368 o55.getAttributeNode = f974244559_519;
3369 // 3073
3370 o56 = {};
3371 // 3074
3372 f974244559_519.returns.push(o56);
3373 // 3075
3374 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left].[0].[0].[0][1]";
3375 // undefined
3376 o56 = null;
3377 // 3076
3378 o56 = {};
3379 // 3077
3380 o55.firstChild = o56;
3381 // undefined
3382 o56 = null;
3383 // 3078
3384 o56 = {};
3385 // 3079
3386 o55.nextSibling = o56;
3387 // undefined
3388 o55 = null;
3389 // 3080
3390 o56.getAttributeNode = f974244559_519;
3391 // 3082
3392 o55 = {};
3393 // 3083
3394 f974244559_519.returns.push(o55);
3395 // 3084
3396 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left].[0].[0].[0][2]";
3397 // undefined
3398 o55 = null;
3399 // 3085
3400 o55 = {};
3401 // 3086
3402 o56.firstChild = o55;
3403 // undefined
3404 o55 = null;
3405 // 3087
3406 o55 = {};
3407 // 3088
3408 o56.nextSibling = o55;
3409 // undefined
3410 o56 = null;
3411 // 3089
3412 o55.getAttributeNode = f974244559_519;
3413 // undefined
3414 o55 = null;
3415 // 3091
3416 o55 = {};
3417 // 3092
3418 f974244559_519.returns.push(o55);
3419 // 3093
3420 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912489}.[0].[right].[0].[left].[0].[0].[3]";
3421 // undefined
3422 o55 = null;
3423 // 3096
3424 f974244559_519.returns.push(o52);
3425 // 3098
3426 f974244559_702 = function() { return f974244559_702.returns[f974244559_702.inst++]; };
3427 f974244559_702.returns = [];
3428 f974244559_702.inst = 0;
3429 // 3099
3430 o46.contains = f974244559_702;
3431 // 3101
3432 f974244559_702.returns.push(true);
3433 // undefined
3434 fo974244559_651_firstChild.returns.push(o45);
3435 // 3105
3436 f974244559_519.returns.push(o51);
3437 // 3110
3438 f974244559_519.returns.push(o53);
3439 // 3116
3440 f974244559_519.returns.push(o52);
3441 // 3119
3442 o55 = {};
3443 // 3120
3444 o54.nextSibling = o55;
3445 // undefined
3446 o54 = null;
3447 // 3121
3448 o55.getAttributeNode = f974244559_519;
3449 // 3123
3450 o54 = {};
3451 // 3124
3452 f974244559_519.returns.push(o54);
3453 // 3125
3454 o54.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}";
3455 // 3126
3456 o56 = {};
3457 // 3127
3458 o55.firstChild = o56;
3459 // 3128
3460 o56.getAttributeNode = f974244559_519;
3461 // 3130
3462 o57 = {};
3463 // 3131
3464 f974244559_519.returns.push(o57);
3465 // 3132
3466 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0]";
3467 // undefined
3468 o57 = null;
3469 // 3133
3470 o57 = {};
3471 // 3134
3472 o56.firstChild = o57;
3473 // undefined
3474 o56 = null;
3475 // 3135
3476 o57.getAttributeNode = f974244559_519;
3477 // 3137
3478 o56 = {};
3479 // 3138
3480 f974244559_519.returns.push(o56);
3481 // 3139
3482 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[left]";
3483 // undefined
3484 o56 = null;
3485 // 3140
3486 o56 = {};
3487 // 3141
3488 o57.firstChild = o56;
3489 // undefined
3490 o56 = null;
3491 // 3142
3492 o56 = {};
3493 // 3143
3494 o57.nextSibling = o56;
3495 // undefined
3496 o57 = null;
3497 // 3144
3498 o56.getAttributeNode = f974244559_519;
3499 // 3146
3500 o57 = {};
3501 // 3147
3502 f974244559_519.returns.push(o57);
3503 // 3148
3504 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right]";
3505 // undefined
3506 o57 = null;
3507 // 3149
3508 o57 = {};
3509 // 3150
3510 o56.firstChild = o57;
3511 // undefined
3512 o56 = null;
3513 // 3151
3514 o57.getAttributeNode = f974244559_519;
3515 // 3153
3516 o56 = {};
3517 // 3154
3518 f974244559_519.returns.push(o56);
3519 // 3155
3520 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0]";
3521 // undefined
3522 o56 = null;
3523 // 3156
3524 o56 = {};
3525 // 3157
3526 o57.firstChild = o56;
3527 // undefined
3528 o57 = null;
3529 // 3158
3530 o56.getAttributeNode = f974244559_519;
3531 // 3160
3532 o57 = {};
3533 // 3161
3534 f974244559_519.returns.push(o57);
3535 // 3162
3536 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left]";
3537 // undefined
3538 o57 = null;
3539 // 3163
3540 o57 = {};
3541 // 3164
3542 o56.firstChild = o57;
3543 // undefined
3544 o56 = null;
3545 // 3165
3546 o57.getAttributeNode = f974244559_519;
3547 // 3167
3548 o56 = {};
3549 // 3168
3550 f974244559_519.returns.push(o56);
3551 // 3169
3552 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left].[0]";
3553 // undefined
3554 o56 = null;
3555 // 3170
3556 o56 = {};
3557 // 3171
3558 o57.firstChild = o56;
3559 // undefined
3560 o57 = null;
3561 // 3172
3562 o56.getAttributeNode = f974244559_519;
3563 // 3174
3564 o57 = {};
3565 // 3175
3566 f974244559_519.returns.push(o57);
3567 // 3176
3568 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left].[0].[0]";
3569 // undefined
3570 o57 = null;
3571 // 3177
3572 o57 = {};
3573 // 3178
3574 o56.firstChild = o57;
3575 // undefined
3576 o56 = null;
3577 // 3179
3578 o57.getAttributeNode = f974244559_519;
3579 // 3181
3580 o56 = {};
3581 // 3182
3582 f974244559_519.returns.push(o56);
3583 // 3183
3584 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left].[0].[0].[0][0]";
3585 // undefined
3586 o56 = null;
3587 // 3184
3588 o56 = {};
3589 // 3185
3590 o57.firstChild = o56;
3591 // undefined
3592 o56 = null;
3593 // 3186
3594 o56 = {};
3595 // 3187
3596 o57.nextSibling = o56;
3597 // undefined
3598 o57 = null;
3599 // 3188
3600 o56.getAttributeNode = f974244559_519;
3601 // 3190
3602 o57 = {};
3603 // 3191
3604 f974244559_519.returns.push(o57);
3605 // 3192
3606 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left].[0].[0].[0][1]";
3607 // undefined
3608 o57 = null;
3609 // 3193
3610 o57 = {};
3611 // 3194
3612 o56.firstChild = o57;
3613 // undefined
3614 o57 = null;
3615 // 3195
3616 o57 = {};
3617 // 3196
3618 o56.nextSibling = o57;
3619 // undefined
3620 o56 = null;
3621 // 3197
3622 o57.getAttributeNode = f974244559_519;
3623 // 3199
3624 o56 = {};
3625 // 3200
3626 f974244559_519.returns.push(o56);
3627 // 3201
3628 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left].[0].[0].[0][2]";
3629 // undefined
3630 o56 = null;
3631 // 3202
3632 o56 = {};
3633 // 3203
3634 o57.firstChild = o56;
3635 // undefined
3636 o56 = null;
3637 // 3204
3638 o56 = {};
3639 // 3205
3640 o57.nextSibling = o56;
3641 // undefined
3642 o57 = null;
3643 // 3206
3644 o56.getAttributeNode = f974244559_519;
3645 // undefined
3646 o56 = null;
3647 // 3208
3648 o56 = {};
3649 // 3209
3650 f974244559_519.returns.push(o56);
3651 // 3210
3652 o56.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912495}.[0].[right].[0].[left].[0].[0].[3]";
3653 // undefined
3654 o56 = null;
3655 // 3213
3656 f974244559_519.returns.push(o54);
3657 // 3217
3658 f974244559_702.returns.push(true);
3659 // undefined
3660 fo974244559_651_firstChild.returns.push(o45);
3661 // 3221
3662 f974244559_519.returns.push(o51);
3663 // 3226
3664 f974244559_519.returns.push(o53);
3665 // 3232
3666 f974244559_519.returns.push(o52);
3667 // 3238
3668 f974244559_519.returns.push(o54);
3669 // 3241
3670 o56 = {};
3671 // 3242
3672 o55.nextSibling = o56;
3673 // undefined
3674 o55 = null;
3675 // 3243
3676 o56.getAttributeNode = f974244559_519;
3677 // 3245
3678 o55 = {};
3679 // 3246
3680 f974244559_519.returns.push(o55);
3681 // 3247
3682 o55.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}";
3683 // 3248
3684 o57 = {};
3685 // 3249
3686 o56.firstChild = o57;
3687 // 3250
3688 o57.getAttributeNode = f974244559_519;
3689 // 3252
3690 o58 = {};
3691 // 3253
3692 f974244559_519.returns.push(o58);
3693 // 3254
3694 o58.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0]";
3695 // undefined
3696 o58 = null;
3697 // 3255
3698 o58 = {};
3699 // 3256
3700 o57.firstChild = o58;
3701 // undefined
3702 o57 = null;
3703 // 3257
3704 o58.getAttributeNode = f974244559_519;
3705 // 3259
3706 o57 = {};
3707 // 3260
3708 f974244559_519.returns.push(o57);
3709 // 3261
3710 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[left]";
3711 // undefined
3712 o57 = null;
3713 // 3262
3714 o57 = {};
3715 // 3263
3716 o58.firstChild = o57;
3717 // undefined
3718 o57 = null;
3719 // 3264
3720 o57 = {};
3721 // 3265
3722 o58.nextSibling = o57;
3723 // undefined
3724 o58 = null;
3725 // 3266
3726 o57.getAttributeNode = f974244559_519;
3727 // 3268
3728 o58 = {};
3729 // 3269
3730 f974244559_519.returns.push(o58);
3731 // 3270
3732 o58.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right]";
3733 // undefined
3734 o58 = null;
3735 // 3271
3736 o58 = {};
3737 // 3272
3738 o57.firstChild = o58;
3739 // undefined
3740 o57 = null;
3741 // 3273
3742 o58.getAttributeNode = f974244559_519;
3743 // 3275
3744 o57 = {};
3745 // 3276
3746 f974244559_519.returns.push(o57);
3747 // 3277
3748 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0]";
3749 // undefined
3750 o57 = null;
3751 // 3278
3752 o57 = {};
3753 // 3279
3754 o58.firstChild = o57;
3755 // undefined
3756 o58 = null;
3757 // 3280
3758 o57.getAttributeNode = f974244559_519;
3759 // 3282
3760 o58 = {};
3761 // 3283
3762 f974244559_519.returns.push(o58);
3763 // 3284
3764 o58.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left]";
3765 // undefined
3766 o58 = null;
3767 // 3285
3768 o58 = {};
3769 // 3286
3770 o57.firstChild = o58;
3771 // undefined
3772 o57 = null;
3773 // 3287
3774 o58.getAttributeNode = f974244559_519;
3775 // 3289
3776 o57 = {};
3777 // 3290
3778 f974244559_519.returns.push(o57);
3779 // 3291
3780 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left].[0]";
3781 // undefined
3782 o57 = null;
3783 // 3292
3784 o57 = {};
3785 // 3293
3786 o58.firstChild = o57;
3787 // undefined
3788 o58 = null;
3789 // 3294
3790 o57.getAttributeNode = f974244559_519;
3791 // 3296
3792 o58 = {};
3793 // 3297
3794 f974244559_519.returns.push(o58);
3795 // 3298
3796 o58.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left].[0].[0]";
3797 // undefined
3798 o58 = null;
3799 // 3299
3800 o58 = {};
3801 // 3300
3802 o57.firstChild = o58;
3803 // undefined
3804 o57 = null;
3805 // 3301
3806 o58.getAttributeNode = f974244559_519;
3807 // 3303
3808 o57 = {};
3809 // 3304
3810 f974244559_519.returns.push(o57);
3811 // 3305
3812 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left].[0].[0].[0][0]";
3813 // undefined
3814 o57 = null;
3815 // 3306
3816 o57 = {};
3817 // 3307
3818 o58.firstChild = o57;
3819 // undefined
3820 o57 = null;
3821 // 3308
3822 o57 = {};
3823 // 3309
3824 o58.nextSibling = o57;
3825 // undefined
3826 o58 = null;
3827 // 3310
3828 o57.getAttributeNode = f974244559_519;
3829 // 3312
3830 o58 = {};
3831 // 3313
3832 f974244559_519.returns.push(o58);
3833 // 3314
3834 o58.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left].[0].[0].[0][1]";
3835 // undefined
3836 o58 = null;
3837 // 3315
3838 o58 = {};
3839 // 3316
3840 o57.firstChild = o58;
3841 // undefined
3842 o58 = null;
3843 // 3317
3844 o58 = {};
3845 // 3318
3846 o57.nextSibling = o58;
3847 // undefined
3848 o57 = null;
3849 // 3319
3850 o58.getAttributeNode = f974244559_519;
3851 // 3321
3852 o57 = {};
3853 // 3322
3854 f974244559_519.returns.push(o57);
3855 // 3323
3856 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left].[0].[0].[0][2]";
3857 // undefined
3858 o57 = null;
3859 // 3324
3860 o57 = {};
3861 // 3325
3862 o58.firstChild = o57;
3863 // undefined
3864 o57 = null;
3865 // 3326
3866 o57 = {};
3867 // 3327
3868 o58.nextSibling = o57;
3869 // undefined
3870 o58 = null;
3871 // 3328
3872 o57.getAttributeNode = f974244559_519;
3873 // undefined
3874 o57 = null;
3875 // 3330
3876 o57 = {};
3877 // 3331
3878 f974244559_519.returns.push(o57);
3879 // 3332
3880 o57.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912503}.[0].[right].[0].[left].[0].[0].[3]";
3881 // undefined
3882 o57 = null;
3883 // 3335
3884 f974244559_519.returns.push(o55);
3885 // 3339
3886 f974244559_702.returns.push(true);
3887 // undefined
3888 fo974244559_651_firstChild.returns.push(o45);
3889 // undefined
3890 o45 = null;
3891 // 3343
3892 f974244559_519.returns.push(o51);
3893 // undefined
3894 o51 = null;
3895 // 3348
3896 f974244559_519.returns.push(o53);
3897 // undefined
3898 o53 = null;
3899 // 3354
3900 f974244559_519.returns.push(o52);
3901 // undefined
3902 o52 = null;
3903 // 3360
3904 f974244559_519.returns.push(o54);
3905 // undefined
3906 o54 = null;
3907 // 3366
3908 f974244559_519.returns.push(o55);
3909 // undefined
3910 o55 = null;
3911 // 3369
3912 o45 = {};
3913 // 3370
3914 o56.nextSibling = o45;
3915 // undefined
3916 o56 = null;
3917 // 3371
3918 o45.getAttributeNode = f974244559_519;
3919 // 3373
3920 o51 = {};
3921 // 3374
3922 f974244559_519.returns.push(o51);
3923 // 3375
3924 o51.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}";
3925 // 3376
3926 o52 = {};
3927 // 3377
3928 o45.firstChild = o52;
3929 // undefined
3930 o45 = null;
3931 // 3378
3932 o52.getAttributeNode = f974244559_519;
3933 // 3380
3934 o45 = {};
3935 // 3381
3936 f974244559_519.returns.push(o45);
3937 // 3382
3938 o45.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0]";
3939 // undefined
3940 o45 = null;
3941 // 3383
3942 o45 = {};
3943 // 3384
3944 o52.firstChild = o45;
3945 // undefined
3946 o52 = null;
3947 // 3385
3948 o45.getAttributeNode = f974244559_519;
3949 // 3387
3950 o52 = {};
3951 // 3388
3952 f974244559_519.returns.push(o52);
3953 // 3389
3954 o52.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[left]";
3955 // undefined
3956 o52 = null;
3957 // 3390
3958 o52 = {};
3959 // 3391
3960 o45.firstChild = o52;
3961 // undefined
3962 o52 = null;
3963 // 3392
3964 o52 = {};
3965 // 3393
3966 o45.nextSibling = o52;
3967 // undefined
3968 o45 = null;
3969 // 3394
3970 o52.getAttributeNode = f974244559_519;
3971 // 3396
3972 o45 = {};
3973 // 3397
3974 f974244559_519.returns.push(o45);
3975 // 3398
3976 o45.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right]";
3977 // undefined
3978 o45 = null;
3979 // 3399
3980 o45 = {};
3981 // 3400
3982 o52.firstChild = o45;
3983 // undefined
3984 o52 = null;
3985 // 3401
3986 o45.getAttributeNode = f974244559_519;
3987 // 3403
3988 o52 = {};
3989 // 3404
3990 f974244559_519.returns.push(o52);
3991 // 3405
3992 o52.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0]";
3993 // undefined
3994 o52 = null;
3995 // 3406
3996 o52 = {};
3997 // 3407
3998 o45.firstChild = o52;
3999 // undefined
4000 o45 = null;
4001 // 3408
4002 o52.getAttributeNode = f974244559_519;
4003 // 3410
4004 o45 = {};
4005 // 3411
4006 f974244559_519.returns.push(o45);
4007 // 3412
4008 o45.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left]";
4009 // undefined
4010 o45 = null;
4011 // 3413
4012 o45 = {};
4013 // 3414
4014 o52.firstChild = o45;
4015 // undefined
4016 o52 = null;
4017 // 3415
4018 o45.getAttributeNode = f974244559_519;
4019 // 3417
4020 o52 = {};
4021 // 3418
4022 f974244559_519.returns.push(o52);
4023 // 3419
4024 o52.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left].[0]";
4025 // undefined
4026 o52 = null;
4027 // 3420
4028 o52 = {};
4029 // 3421
4030 o45.firstChild = o52;
4031 // undefined
4032 o45 = null;
4033 // 3422
4034 o52.getAttributeNode = f974244559_519;
4035 // 3424
4036 o45 = {};
4037 // 3425
4038 f974244559_519.returns.push(o45);
4039 // 3426
4040 o45.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left].[0].[0]";
4041 // undefined
4042 o45 = null;
4043 // 3427
4044 o45 = {};
4045 // 3428
4046 o52.firstChild = o45;
4047 // undefined
4048 o52 = null;
4049 // 3429
4050 o45.getAttributeNode = f974244559_519;
4051 // 3431
4052 o52 = {};
4053 // 3432
4054 f974244559_519.returns.push(o52);
4055 // 3433
4056 o52.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left].[0].[0].[0][0]";
4057 // undefined
4058 o52 = null;
4059 // 3434
4060 o52 = {};
4061 // 3435
4062 o45.firstChild = o52;
4063 // undefined
4064 o52 = null;
4065 // 3436
4066 o52 = {};
4067 // 3437
4068 o45.nextSibling = o52;
4069 // undefined
4070 o45 = null;
4071 // 3438
4072 o52.getAttributeNode = f974244559_519;
4073 // 3440
4074 o45 = {};
4075 // 3441
4076 f974244559_519.returns.push(o45);
4077 // 3442
4078 o45.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left].[0].[0].[0][1]";
4079 // undefined
4080 o45 = null;
4081 // 3443
4082 o45 = {};
4083 // 3444
4084 o52.firstChild = o45;
4085 // undefined
4086 o45 = null;
4087 // 3445
4088 o45 = {};
4089 // 3446
4090 o52.nextSibling = o45;
4091 // undefined
4092 o52 = null;
4093 // 3447
4094 o45.getAttributeNode = f974244559_519;
4095 // 3449
4096 o52 = {};
4097 // 3450
4098 f974244559_519.returns.push(o52);
4099 // 3451
4100 o52.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left].[0].[0].[0][2]";
4101 // undefined
4102 o52 = null;
4103 // 3452
4104 o52 = {};
4105 // 3453
4106 o45.firstChild = o52;
4107 // undefined
4108 o52 = null;
4109 // 3454
4110 o52 = {};
4111 // 3455
4112 o45.nextSibling = o52;
4113 // undefined
4114 o45 = null;
4115 // 3456
4116 o52.getAttributeNode = f974244559_519;
4117 // undefined
4118 o52 = null;
4119 // 3458
4120 o45 = {};
4121 // 3459
4122 f974244559_519.returns.push(o45);
4123 // 3460
4124 o45.value = ".r[2hk8m].[1][4][1]{comment10200303357400658_4912511}.[0].[right].[0].[left].[0].[0].[3]";
4125 // undefined
4126 o45 = null;
4127 // 3463
4128 f974244559_519.returns.push(o51);
4129 // undefined
4130 o51 = null;
4131 // 3467
4132 f974244559_702.returns.push(true);
4133 // 3469
4134 f974244559_471.returns.push(1373491288453);
4135 // 3474
4136 o45 = {};
4137 // 3475
4138 f974244559_523.returns.push(o45);
4139 // 3476
4140 o45.length = 4;
4141 // 3477
4142 o51 = {};
4143 // 3478
4144 o45["0"] = o51;
4145 // 3479
4146 o52 = {};
4147 // 3480
4148 o45["1"] = o52;
4149 // 3481
4150 o53 = {};
4151 // 3482
4152 o45["2"] = o53;
4153 // 3483
4154 o54 = {};
4155 // 3484
4156 o45["3"] = o54;
4157 // undefined
4158 o45 = null;
4159 // 3485
4160 f974244559_14.returns.push(undefined);
4161 // 3486
4162 f974244559_12.returns.push(7);
4163 // 3487
4164 o46.nodeName = "DIV";
4165 // undefined
4166 o46 = null;
4167 // 3489
4168 o47.nodeName = "DIV";
4169 // 3490
4170 o45 = {};
4171 // 3491
4172 o47.parentNode = o45;
4173 // undefined
4174 o47 = null;
4175 // 3492
4176 o45.nodeName = "FORM";
4177 // 3494
4178 f974244559_471.returns.push(1373491288471);
4179 // 3499
4180 o46 = {};
4181 // 3500
4182 f974244559_523.returns.push(o46);
4183 // 3501
4184 o46.length = 4;
4185 // 3502
4186 o46["0"] = o51;
4187 // 3503
4188 o46["1"] = o52;
4189 // 3504
4190 o46["2"] = o53;
4191 // 3505
4192 o46["3"] = o54;
4193 // undefined
4194 o46 = null;
4195 // 3506
4196 f974244559_14.returns.push(undefined);
4197 // 3507
4198 f974244559_12.returns.push(8);
4199 // undefined
4200 fo974244559_656_firstChild = function() { return fo974244559_656_firstChild.returns[fo974244559_656_firstChild.inst++]; };
4201 fo974244559_656_firstChild.returns = [];
4202 fo974244559_656_firstChild.inst = 0;
4203 defineGetter(o48, "firstChild", fo974244559_656_firstChild, undefined);
4204 // undefined
4205 fo974244559_656_firstChild.returns.push(null);
4206 // undefined
4207 fo974244559_656_firstChild.returns.push(null);
4208 // undefined
4209 fo974244559_656_firstChild.returns.push(null);
4210 // 3520
4211 f974244559_470.returns.push(0.08837570110335946);
4212 // 3522
4213 f974244559_471.returns.push(1373491288478);
4214 // 3524
4215 f974244559_471.returns.push(1373491288478);
4216 // 3530
4217 f974244559_471.returns.push(1373491288479);
4218 // 3532
4219 f974244559_471.returns.push(1373491288479);
4220 // 3534
4221 f974244559_471.returns.push(1373491288479);
4222 // 3536
4223 f974244559_471.returns.push(1373491288479);
4224 // 3538
4225 f974244559_471.returns.push(1373491288479);
4226 // 3539
4227 o48.nodeType = 1;
4228 // 3541
4229 f974244559_471.returns.push(1373491288479);
4230 // 3545
4231 o46 = {};
4232 // 3546
4233 f974244559_478.returns.push(o46);
4234 // 3548
4235 f974244559_482.returns.push(o46);
4236 // undefined
4237 o46 = null;
4238 // 3552
4239 o46 = {};
4240 // 3553
4241 f974244559_478.returns.push(o46);
4242 // 3555
4243 f974244559_482.returns.push(o46);
4244 // undefined
4245 o46 = null;
4246 // 3557
4247 f974244559_471.returns.push(1373491288536);
4248 // 3561
4249 o46 = {};
4250 // 3562
4251 f974244559_478.returns.push(o46);
4252 // 3564
4253 f974244559_482.returns.push(o46);
4254 // undefined
4255 o46 = null;
4256 // 3566
4257 f974244559_471.returns.push(1373491288542);
4258 // 3570
4259 o46 = {};
4260 // 3571
4261 f974244559_478.returns.push(o46);
4262 // 3573
4263 f974244559_482.returns.push(o46);
4264 // undefined
4265 o46 = null;
4266 // 3575
4267 f974244559_471.returns.push(1373491288549);
4268 // 3579
4269 o46 = {};
4270 // 3580
4271 f974244559_478.returns.push(o46);
4272 // 3582
4273 f974244559_482.returns.push(o46);
4274 // undefined
4275 o46 = null;
4276 // 3584
4277 f974244559_471.returns.push(1373491288562);
4278 // 3586
4279 f974244559_471.returns.push(1373491288563);
4280 // 3588
4281 f974244559_471.returns.push(1373491288563);
4282 // 3590
4283 o48.nextSibling = null;
4284 // 3591
4285 o50.removeChild = f974244559_507;
4286 // 3592
4287 f974244559_507.returns.push(o48);
4288 // 3593
4289 // 3594
4290 o50.appendChild = f974244559_482;
4291 // 3595
4292 f974244559_482.returns.push(o48);
4293 // 3597
4294 f974244559_471.returns.push(1373491288572);
4295 // 3599
4296 f974244559_471.returns.push(1373491288572);
4297 // 3601
4298 f974244559_471.returns.push(1373491288572);
4299 // 3604
4300 f974244559_471.returns.push(1373491288572);
4301 // 3606
4302 f974244559_471.returns.push(1373491288572);
4303 // 3608
4304 f974244559_471.returns.push(1373491288572);
4305 // 3610
4306 f974244559_471.returns.push(1373491288573);
4307 // 3611
4308 o46 = {};
4309 // undefined
4310 fo974244559_656_firstChild.returns.push(o46);
4311 // 3613
4312 o46.getAttributeNode = f974244559_519;
4313 // 3615
4314 o47 = {};
4315 // 3616
4316 f974244559_519.returns.push(o47);
4317 // 3617
4318 o47.value = ".r[ixwt]";
4319 // 3618
4320 o55 = {};
4321 // 3619
4322 o46.firstChild = o55;
4323 // 3620
4324 o55.getAttributeNode = f974244559_519;
4325 // 3622
4326 o56 = {};
4327 // 3623
4328 f974244559_519.returns.push(o56);
4329 // 3624
4330 o56.value = ".r[ixwt].[1][0]";
4331 // 3625
4332 o57 = {};
4333 // 3626
4334 o55.firstChild = o57;
4335 // undefined
4336 o57 = null;
4337 // 3627
4338 o57 = {};
4339 // 3628
4340 o55.nextSibling = o57;
4341 // undefined
4342 o55 = null;
4343 // 3629
4344 o57.getAttributeNode = f974244559_519;
4345 // 3631
4346 o55 = {};
4347 // 3632
4348 f974244559_519.returns.push(o55);
4349 // 3633
4350 o55.value = ".r[ixwt].[1][4][0]";
4351 // 3634
4352 o58 = {};
4353 // 3635
4354 o57.firstChild = o58;
4355 // undefined
4356 o58 = null;
4357 // 3636
4358 o58 = {};
4359 // 3637
4360 o57.nextSibling = o58;
4361 // undefined
4362 o57 = null;
4363 // 3638
4364 o58.getAttributeNode = f974244559_519;
4365 // 3640
4366 o57 = {};
4367 // 3641
4368 f974244559_519.returns.push(o57);
4369 // 3642
4370 o57.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}";
4371 // 3643
4372 o59 = {};
4373 // 3644
4374 o58.firstChild = o59;
4375 // 3645
4376 o59.getAttributeNode = f974244559_519;
4377 // 3647
4378 o60 = {};
4379 // 3648
4380 f974244559_519.returns.push(o60);
4381 // 3649
4382 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0]";
4383 // undefined
4384 o60 = null;
4385 // 3650
4386 o60 = {};
4387 // 3651
4388 o59.firstChild = o60;
4389 // undefined
4390 o59 = null;
4391 // 3652
4392 o60.getAttributeNode = f974244559_519;
4393 // 3654
4394 o59 = {};
4395 // 3655
4396 f974244559_519.returns.push(o59);
4397 // 3656
4398 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[left]";
4399 // undefined
4400 o59 = null;
4401 // 3657
4402 o59 = {};
4403 // 3658
4404 o60.firstChild = o59;
4405 // undefined
4406 o59 = null;
4407 // 3659
4408 o59 = {};
4409 // 3660
4410 o60.nextSibling = o59;
4411 // undefined
4412 o60 = null;
4413 // 3661
4414 o59.getAttributeNode = f974244559_519;
4415 // 3663
4416 o60 = {};
4417 // 3664
4418 f974244559_519.returns.push(o60);
4419 // 3665
4420 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right]";
4421 // undefined
4422 o60 = null;
4423 // 3666
4424 o60 = {};
4425 // 3667
4426 o59.firstChild = o60;
4427 // undefined
4428 o59 = null;
4429 // 3668
4430 o60.getAttributeNode = f974244559_519;
4431 // 3670
4432 o59 = {};
4433 // 3671
4434 f974244559_519.returns.push(o59);
4435 // 3672
4436 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0]";
4437 // undefined
4438 o59 = null;
4439 // 3673
4440 o59 = {};
4441 // 3674
4442 o60.firstChild = o59;
4443 // undefined
4444 o60 = null;
4445 // 3675
4446 o59.getAttributeNode = f974244559_519;
4447 // 3677
4448 o60 = {};
4449 // 3678
4450 f974244559_519.returns.push(o60);
4451 // 3679
4452 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left]";
4453 // undefined
4454 o60 = null;
4455 // 3680
4456 o60 = {};
4457 // 3681
4458 o59.firstChild = o60;
4459 // undefined
4460 o59 = null;
4461 // 3682
4462 o60.getAttributeNode = f974244559_519;
4463 // 3684
4464 o59 = {};
4465 // 3685
4466 f974244559_519.returns.push(o59);
4467 // 3686
4468 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left].[0]";
4469 // undefined
4470 o59 = null;
4471 // 3687
4472 o59 = {};
4473 // 3688
4474 o60.firstChild = o59;
4475 // undefined
4476 o60 = null;
4477 // 3689
4478 o59.getAttributeNode = f974244559_519;
4479 // 3691
4480 o60 = {};
4481 // 3692
4482 f974244559_519.returns.push(o60);
4483 // 3693
4484 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left].[0].[0]";
4485 // undefined
4486 o60 = null;
4487 // 3694
4488 o60 = {};
4489 // 3695
4490 o59.firstChild = o60;
4491 // undefined
4492 o59 = null;
4493 // 3696
4494 o60.getAttributeNode = f974244559_519;
4495 // 3698
4496 o59 = {};
4497 // 3699
4498 f974244559_519.returns.push(o59);
4499 // 3700
4500 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left].[0].[0].[0][0]";
4501 // undefined
4502 o59 = null;
4503 // 3701
4504 o59 = {};
4505 // 3702
4506 o60.firstChild = o59;
4507 // undefined
4508 o59 = null;
4509 // 3703
4510 o59 = {};
4511 // 3704
4512 o60.nextSibling = o59;
4513 // undefined
4514 o60 = null;
4515 // 3705
4516 o59.getAttributeNode = f974244559_519;
4517 // 3707
4518 o60 = {};
4519 // 3708
4520 f974244559_519.returns.push(o60);
4521 // 3709
4522 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left].[0].[0].[0][1]";
4523 // undefined
4524 o60 = null;
4525 // 3710
4526 o60 = {};
4527 // 3711
4528 o59.firstChild = o60;
4529 // undefined
4530 o60 = null;
4531 // 3712
4532 o60 = {};
4533 // 3713
4534 o59.nextSibling = o60;
4535 // undefined
4536 o59 = null;
4537 // 3714
4538 o60.getAttributeNode = f974244559_519;
4539 // 3716
4540 o59 = {};
4541 // 3717
4542 f974244559_519.returns.push(o59);
4543 // 3718
4544 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left].[0].[0].[0][2]";
4545 // undefined
4546 o59 = null;
4547 // 3719
4548 o59 = {};
4549 // 3720
4550 o60.firstChild = o59;
4551 // undefined
4552 o59 = null;
4553 // 3721
4554 o59 = {};
4555 // 3722
4556 o60.nextSibling = o59;
4557 // undefined
4558 o60 = null;
4559 // 3723
4560 o59.getAttributeNode = f974244559_519;
4561 // undefined
4562 o59 = null;
4563 // 3725
4564 o59 = {};
4565 // 3726
4566 f974244559_519.returns.push(o59);
4567 // 3727
4568 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4954379}.[0].[right].[0].[left].[0].[0].[3]";
4569 // undefined
4570 o59 = null;
4571 // 3730
4572 f974244559_519.returns.push(o57);
4573 // 3732
4574 o48.contains = f974244559_702;
4575 // 3734
4576 f974244559_702.returns.push(true);
4577 // undefined
4578 fo974244559_656_firstChild.returns.push(o46);
4579 // 3738
4580 f974244559_519.returns.push(o47);
4581 // 3743
4582 f974244559_519.returns.push(o56);
4583 // 3749
4584 f974244559_519.returns.push(o55);
4585 // 3755
4586 f974244559_519.returns.push(o57);
4587 // 3758
4588 o59 = {};
4589 // 3759
4590 o58.nextSibling = o59;
4591 // undefined
4592 o58 = null;
4593 // 3760
4594 o59.getAttributeNode = f974244559_519;
4595 // 3762
4596 o58 = {};
4597 // 3763
4598 f974244559_519.returns.push(o58);
4599 // 3764
4600 o58.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}";
4601 // 3765
4602 o60 = {};
4603 // 3766
4604 o59.firstChild = o60;
4605 // 3767
4606 o60.getAttributeNode = f974244559_519;
4607 // 3769
4608 o61 = {};
4609 // 3770
4610 f974244559_519.returns.push(o61);
4611 // 3771
4612 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0]";
4613 // undefined
4614 o61 = null;
4615 // 3772
4616 o61 = {};
4617 // 3773
4618 o60.firstChild = o61;
4619 // undefined
4620 o60 = null;
4621 // 3774
4622 o61.getAttributeNode = f974244559_519;
4623 // 3776
4624 o60 = {};
4625 // 3777
4626 f974244559_519.returns.push(o60);
4627 // 3778
4628 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[left]";
4629 // undefined
4630 o60 = null;
4631 // 3779
4632 o60 = {};
4633 // 3780
4634 o61.firstChild = o60;
4635 // undefined
4636 o60 = null;
4637 // 3781
4638 o60 = {};
4639 // 3782
4640 o61.nextSibling = o60;
4641 // undefined
4642 o61 = null;
4643 // 3783
4644 o60.getAttributeNode = f974244559_519;
4645 // 3785
4646 o61 = {};
4647 // 3786
4648 f974244559_519.returns.push(o61);
4649 // 3787
4650 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right]";
4651 // undefined
4652 o61 = null;
4653 // 3788
4654 o61 = {};
4655 // 3789
4656 o60.firstChild = o61;
4657 // undefined
4658 o60 = null;
4659 // 3790
4660 o61.getAttributeNode = f974244559_519;
4661 // 3792
4662 o60 = {};
4663 // 3793
4664 f974244559_519.returns.push(o60);
4665 // 3794
4666 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0]";
4667 // undefined
4668 o60 = null;
4669 // 3795
4670 o60 = {};
4671 // 3796
4672 o61.firstChild = o60;
4673 // undefined
4674 o61 = null;
4675 // 3797
4676 o60.getAttributeNode = f974244559_519;
4677 // 3799
4678 o61 = {};
4679 // 3800
4680 f974244559_519.returns.push(o61);
4681 // 3801
4682 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left]";
4683 // undefined
4684 o61 = null;
4685 // 3802
4686 o61 = {};
4687 // 3803
4688 o60.firstChild = o61;
4689 // undefined
4690 o60 = null;
4691 // 3804
4692 o61.getAttributeNode = f974244559_519;
4693 // 3806
4694 o60 = {};
4695 // 3807
4696 f974244559_519.returns.push(o60);
4697 // 3808
4698 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left].[0]";
4699 // undefined
4700 o60 = null;
4701 // 3809
4702 o60 = {};
4703 // 3810
4704 o61.firstChild = o60;
4705 // undefined
4706 o61 = null;
4707 // 3811
4708 o60.getAttributeNode = f974244559_519;
4709 // 3813
4710 o61 = {};
4711 // 3814
4712 f974244559_519.returns.push(o61);
4713 // 3815
4714 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left].[0].[0]";
4715 // undefined
4716 o61 = null;
4717 // 3816
4718 o61 = {};
4719 // 3817
4720 o60.firstChild = o61;
4721 // undefined
4722 o60 = null;
4723 // 3818
4724 o61.getAttributeNode = f974244559_519;
4725 // 3820
4726 o60 = {};
4727 // 3821
4728 f974244559_519.returns.push(o60);
4729 // 3822
4730 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left].[0].[0].[0][0]";
4731 // undefined
4732 o60 = null;
4733 // 3823
4734 o60 = {};
4735 // 3824
4736 o61.firstChild = o60;
4737 // undefined
4738 o60 = null;
4739 // 3825
4740 o60 = {};
4741 // 3826
4742 o61.nextSibling = o60;
4743 // undefined
4744 o61 = null;
4745 // 3827
4746 o60.getAttributeNode = f974244559_519;
4747 // 3829
4748 o61 = {};
4749 // 3830
4750 f974244559_519.returns.push(o61);
4751 // 3831
4752 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left].[0].[0].[0][1]";
4753 // undefined
4754 o61 = null;
4755 // 3832
4756 o61 = {};
4757 // 3833
4758 o60.firstChild = o61;
4759 // undefined
4760 o61 = null;
4761 // 3834
4762 o61 = {};
4763 // 3835
4764 o60.nextSibling = o61;
4765 // undefined
4766 o60 = null;
4767 // 3836
4768 o61.getAttributeNode = f974244559_519;
4769 // 3838
4770 o60 = {};
4771 // 3839
4772 f974244559_519.returns.push(o60);
4773 // 3840
4774 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left].[0].[0].[0][2]";
4775 // undefined
4776 o60 = null;
4777 // 3841
4778 o60 = {};
4779 // 3842
4780 o61.firstChild = o60;
4781 // undefined
4782 o60 = null;
4783 // 3843
4784 o60 = {};
4785 // 3844
4786 o61.nextSibling = o60;
4787 // undefined
4788 o61 = null;
4789 // 3845
4790 o60.getAttributeNode = f974244559_519;
4791 // undefined
4792 o60 = null;
4793 // 3847
4794 o60 = {};
4795 // 3848
4796 f974244559_519.returns.push(o60);
4797 // 3849
4798 o60.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955913}.[0].[right].[0].[left].[0].[0].[3]";
4799 // undefined
4800 o60 = null;
4801 // 3852
4802 f974244559_519.returns.push(o58);
4803 // 3856
4804 f974244559_702.returns.push(true);
4805 // undefined
4806 fo974244559_656_firstChild.returns.push(o46);
4807 // 3860
4808 f974244559_519.returns.push(o47);
4809 // 3865
4810 f974244559_519.returns.push(o56);
4811 // 3871
4812 f974244559_519.returns.push(o55);
4813 // 3877
4814 f974244559_519.returns.push(o57);
4815 // 3883
4816 f974244559_519.returns.push(o58);
4817 // 3886
4818 o60 = {};
4819 // 3887
4820 o59.nextSibling = o60;
4821 // undefined
4822 o59 = null;
4823 // 3888
4824 o60.getAttributeNode = f974244559_519;
4825 // 3890
4826 o59 = {};
4827 // 3891
4828 f974244559_519.returns.push(o59);
4829 // 3892
4830 o59.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}";
4831 // 3893
4832 o61 = {};
4833 // 3894
4834 o60.firstChild = o61;
4835 // 3895
4836 o61.getAttributeNode = f974244559_519;
4837 // 3897
4838 o62 = {};
4839 // 3898
4840 f974244559_519.returns.push(o62);
4841 // 3899
4842 o62.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0]";
4843 // undefined
4844 o62 = null;
4845 // 3900
4846 o62 = {};
4847 // 3901
4848 o61.firstChild = o62;
4849 // undefined
4850 o61 = null;
4851 // 3902
4852 o62.getAttributeNode = f974244559_519;
4853 // 3904
4854 o61 = {};
4855 // 3905
4856 f974244559_519.returns.push(o61);
4857 // 3906
4858 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[left]";
4859 // undefined
4860 o61 = null;
4861 // 3907
4862 o61 = {};
4863 // 3908
4864 o62.firstChild = o61;
4865 // undefined
4866 o61 = null;
4867 // 3909
4868 o61 = {};
4869 // 3910
4870 o62.nextSibling = o61;
4871 // undefined
4872 o62 = null;
4873 // 3911
4874 o61.getAttributeNode = f974244559_519;
4875 // 3913
4876 o62 = {};
4877 // 3914
4878 f974244559_519.returns.push(o62);
4879 // 3915
4880 o62.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right]";
4881 // undefined
4882 o62 = null;
4883 // 3916
4884 o62 = {};
4885 // 3917
4886 o61.firstChild = o62;
4887 // undefined
4888 o61 = null;
4889 // 3918
4890 o62.getAttributeNode = f974244559_519;
4891 // 3920
4892 o61 = {};
4893 // 3921
4894 f974244559_519.returns.push(o61);
4895 // 3922
4896 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0]";
4897 // undefined
4898 o61 = null;
4899 // 3923
4900 o61 = {};
4901 // 3924
4902 o62.firstChild = o61;
4903 // undefined
4904 o62 = null;
4905 // 3925
4906 o61.getAttributeNode = f974244559_519;
4907 // 3927
4908 o62 = {};
4909 // 3928
4910 f974244559_519.returns.push(o62);
4911 // 3929
4912 o62.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left]";
4913 // undefined
4914 o62 = null;
4915 // 3930
4916 o62 = {};
4917 // 3931
4918 o61.firstChild = o62;
4919 // undefined
4920 o61 = null;
4921 // 3932
4922 o62.getAttributeNode = f974244559_519;
4923 // 3934
4924 o61 = {};
4925 // 3935
4926 f974244559_519.returns.push(o61);
4927 // 3936
4928 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left].[0]";
4929 // undefined
4930 o61 = null;
4931 // 3937
4932 o61 = {};
4933 // 3938
4934 o62.firstChild = o61;
4935 // undefined
4936 o62 = null;
4937 // 3939
4938 o61.getAttributeNode = f974244559_519;
4939 // 3941
4940 o62 = {};
4941 // 3942
4942 f974244559_519.returns.push(o62);
4943 // 3943
4944 o62.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left].[0].[0]";
4945 // undefined
4946 o62 = null;
4947 // 3944
4948 o62 = {};
4949 // 3945
4950 o61.firstChild = o62;
4951 // undefined
4952 o61 = null;
4953 // 3946
4954 o62.getAttributeNode = f974244559_519;
4955 // 3948
4956 o61 = {};
4957 // 3949
4958 f974244559_519.returns.push(o61);
4959 // 3950
4960 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left].[0].[0].[0][0]";
4961 // undefined
4962 o61 = null;
4963 // 3951
4964 o61 = {};
4965 // 3952
4966 o62.firstChild = o61;
4967 // undefined
4968 o61 = null;
4969 // 3953
4970 o61 = {};
4971 // 3954
4972 o62.nextSibling = o61;
4973 // undefined
4974 o62 = null;
4975 // 3955
4976 o61.getAttributeNode = f974244559_519;
4977 // 3957
4978 o62 = {};
4979 // 3958
4980 f974244559_519.returns.push(o62);
4981 // 3959
4982 o62.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left].[0].[0].[0][1]";
4983 // undefined
4984 o62 = null;
4985 // 3960
4986 o62 = {};
4987 // 3961
4988 o61.firstChild = o62;
4989 // undefined
4990 o62 = null;
4991 // 3962
4992 o62 = {};
4993 // 3963
4994 o61.nextSibling = o62;
4995 // undefined
4996 o61 = null;
4997 // 3964
4998 o62.getAttributeNode = f974244559_519;
4999 // 3966
5000 o61 = {};
5001 // 3967
5002 f974244559_519.returns.push(o61);
5003 // 3968
5004 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left].[0].[0].[0][2]";
5005 // undefined
5006 o61 = null;
5007 // 3969
5008 o61 = {};
5009 // 3970
5010 o62.firstChild = o61;
5011 // undefined
5012 o61 = null;
5013 // 3971
5014 o61 = {};
5015 // 3972
5016 o62.nextSibling = o61;
5017 // undefined
5018 o62 = null;
5019 // 3973
5020 o61.getAttributeNode = f974244559_519;
5021 // undefined
5022 o61 = null;
5023 // 3975
5024 o61 = {};
5025 // 3976
5026 f974244559_519.returns.push(o61);
5027 // 3977
5028 o61.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955915}.[0].[right].[0].[left].[0].[0].[3]";
5029 // undefined
5030 o61 = null;
5031 // 3980
5032 f974244559_519.returns.push(o59);
5033 // 3984
5034 f974244559_702.returns.push(true);
5035 // undefined
5036 fo974244559_656_firstChild.returns.push(o46);
5037 // undefined
5038 o46 = null;
5039 // 3988
5040 f974244559_519.returns.push(o47);
5041 // undefined
5042 o47 = null;
5043 // 3993
5044 f974244559_519.returns.push(o56);
5045 // undefined
5046 o56 = null;
5047 // 3999
5048 f974244559_519.returns.push(o55);
5049 // undefined
5050 o55 = null;
5051 // 4005
5052 f974244559_519.returns.push(o57);
5053 // undefined
5054 o57 = null;
5055 // 4011
5056 f974244559_519.returns.push(o58);
5057 // undefined
5058 o58 = null;
5059 // 4017
5060 f974244559_519.returns.push(o59);
5061 // undefined
5062 o59 = null;
5063 // 4020
5064 o46 = {};
5065 // 4021
5066 o60.nextSibling = o46;
5067 // undefined
5068 o60 = null;
5069 // 4022
5070 o46.getAttributeNode = f974244559_519;
5071 // 4024
5072 o47 = {};
5073 // 4025
5074 f974244559_519.returns.push(o47);
5075 // 4026
5076 o47.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}";
5077 // 4027
5078 o55 = {};
5079 // 4028
5080 o46.firstChild = o55;
5081 // undefined
5082 o46 = null;
5083 // 4029
5084 o55.getAttributeNode = f974244559_519;
5085 // 4031
5086 o46 = {};
5087 // 4032
5088 f974244559_519.returns.push(o46);
5089 // 4033
5090 o46.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0]";
5091 // undefined
5092 o46 = null;
5093 // 4034
5094 o46 = {};
5095 // 4035
5096 o55.firstChild = o46;
5097 // undefined
5098 o55 = null;
5099 // 4036
5100 o46.getAttributeNode = f974244559_519;
5101 // 4038
5102 o55 = {};
5103 // 4039
5104 f974244559_519.returns.push(o55);
5105 // 4040
5106 o55.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[left]";
5107 // undefined
5108 o55 = null;
5109 // 4041
5110 o55 = {};
5111 // 4042
5112 o46.firstChild = o55;
5113 // undefined
5114 o55 = null;
5115 // 4043
5116 o55 = {};
5117 // 4044
5118 o46.nextSibling = o55;
5119 // undefined
5120 o46 = null;
5121 // 4045
5122 o55.getAttributeNode = f974244559_519;
5123 // 4047
5124 o46 = {};
5125 // 4048
5126 f974244559_519.returns.push(o46);
5127 // 4049
5128 o46.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right]";
5129 // undefined
5130 o46 = null;
5131 // 4050
5132 o46 = {};
5133 // 4051
5134 o55.firstChild = o46;
5135 // undefined
5136 o55 = null;
5137 // 4052
5138 o46.getAttributeNode = f974244559_519;
5139 // 4054
5140 o55 = {};
5141 // 4055
5142 f974244559_519.returns.push(o55);
5143 // 4056
5144 o55.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0]";
5145 // undefined
5146 o55 = null;
5147 // 4057
5148 o55 = {};
5149 // 4058
5150 o46.firstChild = o55;
5151 // undefined
5152 o46 = null;
5153 // 4059
5154 o55.getAttributeNode = f974244559_519;
5155 // 4061
5156 o46 = {};
5157 // 4062
5158 f974244559_519.returns.push(o46);
5159 // 4063
5160 o46.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left]";
5161 // undefined
5162 o46 = null;
5163 // 4064
5164 o46 = {};
5165 // 4065
5166 o55.firstChild = o46;
5167 // undefined
5168 o55 = null;
5169 // 4066
5170 o46.getAttributeNode = f974244559_519;
5171 // 4068
5172 o55 = {};
5173 // 4069
5174 f974244559_519.returns.push(o55);
5175 // 4070
5176 o55.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left].[0]";
5177 // undefined
5178 o55 = null;
5179 // 4071
5180 o55 = {};
5181 // 4072
5182 o46.firstChild = o55;
5183 // undefined
5184 o46 = null;
5185 // 4073
5186 o55.getAttributeNode = f974244559_519;
5187 // 4075
5188 o46 = {};
5189 // 4076
5190 f974244559_519.returns.push(o46);
5191 // 4077
5192 o46.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left].[0].[0]";
5193 // undefined
5194 o46 = null;
5195 // 4078
5196 o46 = {};
5197 // 4079
5198 o55.firstChild = o46;
5199 // undefined
5200 o55 = null;
5201 // 4080
5202 o46.getAttributeNode = f974244559_519;
5203 // 4082
5204 o55 = {};
5205 // 4083
5206 f974244559_519.returns.push(o55);
5207 // 4084
5208 o55.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left].[0].[0].[0][0]";
5209 // undefined
5210 o55 = null;
5211 // 4085
5212 o55 = {};
5213 // 4086
5214 o46.firstChild = o55;
5215 // undefined
5216 o55 = null;
5217 // 4087
5218 o55 = {};
5219 // 4088
5220 o46.nextSibling = o55;
5221 // undefined
5222 o46 = null;
5223 // 4089
5224 o55.getAttributeNode = f974244559_519;
5225 // 4091
5226 o46 = {};
5227 // 4092
5228 f974244559_519.returns.push(o46);
5229 // 4093
5230 o46.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left].[0].[0].[0][1]";
5231 // undefined
5232 o46 = null;
5233 // 4094
5234 o46 = {};
5235 // 4095
5236 o55.firstChild = o46;
5237 // undefined
5238 o46 = null;
5239 // 4096
5240 o46 = {};
5241 // 4097
5242 o55.nextSibling = o46;
5243 // undefined
5244 o55 = null;
5245 // 4098
5246 o46.getAttributeNode = f974244559_519;
5247 // 4100
5248 o55 = {};
5249 // 4101
5250 f974244559_519.returns.push(o55);
5251 // 4102
5252 o55.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left].[0].[0].[0][2]";
5253 // undefined
5254 o55 = null;
5255 // 4103
5256 o55 = {};
5257 // 4104
5258 o46.firstChild = o55;
5259 // undefined
5260 o55 = null;
5261 // 4105
5262 o55 = {};
5263 // 4106
5264 o46.nextSibling = o55;
5265 // undefined
5266 o46 = null;
5267 // 4107
5268 o55.getAttributeNode = f974244559_519;
5269 // undefined
5270 o55 = null;
5271 // 4109
5272 o46 = {};
5273 // 4110
5274 f974244559_519.returns.push(o46);
5275 // 4111
5276 o46.value = ".r[ixwt].[1][4][1]{comment10200350995551582_4955918}.[0].[right].[0].[left].[0].[0].[3]";
5277 // undefined
5278 o46 = null;
5279 // 4114
5280 f974244559_519.returns.push(o47);
5281 // undefined
5282 o47 = null;
5283 // 4118
5284 f974244559_702.returns.push(true);
5285 // 4120
5286 f974244559_471.returns.push(1373491288631);
5287 // 4125
5288 o46 = {};
5289 // 4126
5290 f974244559_523.returns.push(o46);
5291 // 4127
5292 o46.length = 8;
5293 // 4128
5294 o47 = {};
5295 // 4129
5296 o46["0"] = o47;
5297 // 4130
5298 o55 = {};
5299 // 4131
5300 o46["1"] = o55;
5301 // 4132
5302 o56 = {};
5303 // 4133
5304 o46["2"] = o56;
5305 // 4134
5306 o57 = {};
5307 // 4135
5308 o46["3"] = o57;
5309 // 4136
5310 o46["4"] = o51;
5311 // 4137
5312 o46["5"] = o52;
5313 // 4138
5314 o46["6"] = o53;
5315 // 4139
5316 o46["7"] = o54;
5317 // undefined
5318 o46 = null;
5319 // 4140
5320 f974244559_14.returns.push(undefined);
5321 // 4141
5322 f974244559_12.returns.push(9);
5323 // 4142
5324 o48.nodeName = "DIV";
5325 // undefined
5326 o48 = null;
5327 // 4144
5328 o50.nodeName = "DIV";
5329 // 4145
5330 o46 = {};
5331 // 4146
5332 o50.parentNode = o46;
5333 // undefined
5334 o50 = null;
5335 // 4147
5336 o46.nodeName = "FORM";
5337 // 4151
5338 o48 = {};
5339 // 4152
5340 f974244559_478.returns.push(o48);
5341 // 4154
5342 f974244559_482.returns.push(o48);
5343 // undefined
5344 o48 = null;
5345 // 4157
5346 o48 = {};
5347 // 4158
5348 f974244559_502.returns.push(o48);
5349 // 4159
5350 o48.id = "u_0_1t";
5351 // 4160
5352 o48.getElementsByTagName = f974244559_514;
5353 // 4161
5354 o50 = {};
5355 // 4162
5356 o48.parentNode = o50;
5357 // undefined
5358 o48 = null;
5359 // undefined
5360 o50 = null;
5361 // 4167
5362 o48 = {};
5363 // 4168
5364 f974244559_502.returns.push(o48);
5365 // 4169
5366 o48.id = "u_0_1v";
5367 // 4170
5368 o48.getElementsByTagName = f974244559_514;
5369 // 4171
5370 o50 = {};
5371 // 4172
5372 o48.parentNode = o50;
5373 // 4190
5374 f974244559_471.returns.push(1373491288715);
5375 // 4195
5376 o58 = {};
5377 // 4196
5378 f974244559_523.returns.push(o58);
5379 // 4197
5380 o58.length = 8;
5381 // 4198
5382 o58["0"] = o47;
5383 // 4199
5384 o58["1"] = o55;
5385 // 4200
5386 o58["2"] = o56;
5387 // 4201
5388 o58["3"] = o57;
5389 // 4202
5390 o58["4"] = o51;
5391 // 4203
5392 o58["5"] = o52;
5393 // 4204
5394 o58["6"] = o53;
5395 // 4205
5396 o58["7"] = o54;
5397 // undefined
5398 o58 = null;
5399 // 4206
5400 f974244559_14.returns.push(undefined);
5401 // 4207
5402 f974244559_12.returns.push(10);
5403 // undefined
5404 fo974244559_928_firstChild = function() { return fo974244559_928_firstChild.returns[fo974244559_928_firstChild.inst++]; };
5405 fo974244559_928_firstChild.returns = [];
5406 fo974244559_928_firstChild.inst = 0;
5407 defineGetter(o48, "firstChild", fo974244559_928_firstChild, undefined);
5408 // undefined
5409 fo974244559_928_firstChild.returns.push(null);
5410 // undefined
5411 fo974244559_928_firstChild.returns.push(null);
5412 // undefined
5413 fo974244559_928_firstChild.returns.push(null);
5414 // 4223
5415 f974244559_470.returns.push(0.5066393024753779);
5416 // 4225
5417 f974244559_471.returns.push(1373491288721);
5418 // 4227
5419 f974244559_471.returns.push(1373491288721);
5420 // 4233
5421 f974244559_471.returns.push(1373491288721);
5422 // 4235
5423 f974244559_471.returns.push(1373491288721);
5424 // 4237
5425 f974244559_471.returns.push(1373491288721);
5426 // 4239
5427 f974244559_471.returns.push(1373491288721);
5428 // 4241
5429 f974244559_471.returns.push(1373491288721);
5430 // 4242
5431 o48.nodeType = 1;
5432 // 4244
5433 f974244559_471.returns.push(1373491288722);
5434 // 4248
5435 o58 = {};
5436 // 4249
5437 f974244559_478.returns.push(o58);
5438 // 4251
5439 f974244559_482.returns.push(o58);
5440 // undefined
5441 o58 = null;
5442 // 4253
5443 o58 = {};
5444 // 4254
5445 f974244559_480.returns.push(o58);
5446 // 4255
5447 // 4256
5448 // 4258
5449 o59 = {};
5450 // 4259
5451 f974244559_480.returns.push(o59);
5452 // 4260
5453 o59.firstChild = null;
5454 // 4261
5455 o58.__html = void 0;
5456 // undefined
5457 o58 = null;
5458 // 4263
5459 o58 = {};
5460 // 4264
5461 f974244559_478.returns.push(o58);
5462 // 4266
5463 o59.appendChild = f974244559_482;
5464 // 4267
5465 f974244559_482.returns.push(o58);
5466 // undefined
5467 o58 = null;
5468 // 4268
5469 o59.innerHTML = "";
5470 // undefined
5471 o59 = null;
5472 // 4270
5473 f974244559_471.returns.push(1373491288737);
5474 // 4274
5475 o58 = {};
5476 // 4275
5477 f974244559_478.returns.push(o58);
5478 // 4277
5479 f974244559_482.returns.push(o58);
5480 // undefined
5481 o58 = null;
5482 // 4279
5483 f974244559_471.returns.push(1373491288745);
5484 // 4283
5485 o58 = {};
5486 // 4284
5487 f974244559_478.returns.push(o58);
5488 // 4286
5489 f974244559_482.returns.push(o58);
5490 // undefined
5491 o58 = null;
5492 // 4288
5493 f974244559_471.returns.push(1373491288756);
5494 // 4292
5495 o58 = {};
5496 // 4293
5497 f974244559_478.returns.push(o58);
5498 // 4295
5499 f974244559_482.returns.push(o58);
5500 // undefined
5501 o58 = null;
5502 // 4297
5503 f974244559_471.returns.push(1373491288764);
5504 // 4299
5505 f974244559_471.returns.push(1373491288766);
5506 // 4301
5507 f974244559_471.returns.push(1373491288766);
5508 // 4303
5509 o48.nextSibling = null;
5510 // 4304
5511 o50.removeChild = f974244559_507;
5512 // 4305
5513 f974244559_507.returns.push(o48);
5514 // 4306
5515 // 4307
5516 o50.appendChild = f974244559_482;
5517 // 4308
5518 f974244559_482.returns.push(o48);
5519 // 4310
5520 f974244559_471.returns.push(1373491288775);
5521 // 4312
5522 f974244559_471.returns.push(1373491288775);
5523 // 4314
5524 f974244559_471.returns.push(1373491288775);
5525 // 4317
5526 f974244559_471.returns.push(1373491288775);
5527 // 4319
5528 f974244559_471.returns.push(1373491288775);
5529 // 4321
5530 f974244559_471.returns.push(1373491288775);
5531 // 4323
5532 f974244559_471.returns.push(1373491288775);
5533 // 4324
5534 o58 = {};
5535 // undefined
5536 fo974244559_928_firstChild.returns.push(o58);
5537 // 4326
5538 o58.getAttributeNode = f974244559_519;
5539 // 4328
5540 o59 = {};
5541 // 4329
5542 f974244559_519.returns.push(o59);
5543 // 4330
5544 o59.value = ".r[30l95]";
5545 // 4331
5546 o60 = {};
5547 // 4332
5548 o58.firstChild = o60;
5549 // 4333
5550 o60.getAttributeNode = f974244559_519;
5551 // 4335
5552 o61 = {};
5553 // 4336
5554 f974244559_519.returns.push(o61);
5555 // 4337
5556 o61.value = ".r[30l95].[1][0]";
5557 // 4338
5558 o62 = {};
5559 // 4339
5560 o60.firstChild = o62;
5561 // undefined
5562 o62 = null;
5563 // 4340
5564 o62 = {};
5565 // 4341
5566 o60.nextSibling = o62;
5567 // undefined
5568 o60 = null;
5569 // 4342
5570 o62.getAttributeNode = f974244559_519;
5571 // 4344
5572 o60 = {};
5573 // 4345
5574 f974244559_519.returns.push(o60);
5575 // 4346
5576 o60.value = ".r[30l95].[1][4][0]";
5577 // 4347
5578 o63 = {};
5579 // 4348
5580 o62.firstChild = o63;
5581 // undefined
5582 o63 = null;
5583 // 4349
5584 o63 = {};
5585 // 4350
5586 o62.nextSibling = o63;
5587 // undefined
5588 o62 = null;
5589 // 4351
5590 o63.getAttributeNode = f974244559_519;
5591 // 4353
5592 o62 = {};
5593 // 4354
5594 f974244559_519.returns.push(o62);
5595 // 4355
5596 o62.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}";
5597 // 4356
5598 o64 = {};
5599 // 4357
5600 o63.firstChild = o64;
5601 // 4358
5602 o64.getAttributeNode = f974244559_519;
5603 // 4360
5604 o65 = {};
5605 // 4361
5606 f974244559_519.returns.push(o65);
5607 // 4362
5608 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0]";
5609 // undefined
5610 o65 = null;
5611 // 4363
5612 o65 = {};
5613 // 4364
5614 o64.firstChild = o65;
5615 // undefined
5616 o64 = null;
5617 // 4365
5618 o65.getAttributeNode = f974244559_519;
5619 // 4367
5620 o64 = {};
5621 // 4368
5622 f974244559_519.returns.push(o64);
5623 // 4369
5624 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[left]";
5625 // undefined
5626 o64 = null;
5627 // 4370
5628 o64 = {};
5629 // 4371
5630 o65.firstChild = o64;
5631 // undefined
5632 o64 = null;
5633 // 4372
5634 o64 = {};
5635 // 4373
5636 o65.nextSibling = o64;
5637 // undefined
5638 o65 = null;
5639 // 4374
5640 o64.getAttributeNode = f974244559_519;
5641 // 4376
5642 o65 = {};
5643 // 4377
5644 f974244559_519.returns.push(o65);
5645 // 4378
5646 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right]";
5647 // undefined
5648 o65 = null;
5649 // 4379
5650 o65 = {};
5651 // 4380
5652 o64.firstChild = o65;
5653 // undefined
5654 o64 = null;
5655 // 4381
5656 o65.getAttributeNode = f974244559_519;
5657 // 4383
5658 o64 = {};
5659 // 4384
5660 f974244559_519.returns.push(o64);
5661 // 4385
5662 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0]";
5663 // undefined
5664 o64 = null;
5665 // 4386
5666 o64 = {};
5667 // 4387
5668 o65.firstChild = o64;
5669 // undefined
5670 o65 = null;
5671 // 4388
5672 o64.getAttributeNode = f974244559_519;
5673 // 4390
5674 o65 = {};
5675 // 4391
5676 f974244559_519.returns.push(o65);
5677 // 4392
5678 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left]";
5679 // undefined
5680 o65 = null;
5681 // 4393
5682 o65 = {};
5683 // 4394
5684 o64.firstChild = o65;
5685 // undefined
5686 o64 = null;
5687 // 4395
5688 o65.getAttributeNode = f974244559_519;
5689 // 4397
5690 o64 = {};
5691 // 4398
5692 f974244559_519.returns.push(o64);
5693 // 4399
5694 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left].[0]";
5695 // undefined
5696 o64 = null;
5697 // 4400
5698 o64 = {};
5699 // 4401
5700 o65.firstChild = o64;
5701 // undefined
5702 o65 = null;
5703 // 4402
5704 o64.getAttributeNode = f974244559_519;
5705 // 4404
5706 o65 = {};
5707 // 4405
5708 f974244559_519.returns.push(o65);
5709 // 4406
5710 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left].[0].[0]";
5711 // undefined
5712 o65 = null;
5713 // 4407
5714 o65 = {};
5715 // 4408
5716 o64.firstChild = o65;
5717 // undefined
5718 o64 = null;
5719 // 4409
5720 o65.getAttributeNode = f974244559_519;
5721 // 4411
5722 o64 = {};
5723 // 4412
5724 f974244559_519.returns.push(o64);
5725 // 4413
5726 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left].[0].[0].[0][0]";
5727 // undefined
5728 o64 = null;
5729 // 4414
5730 o64 = {};
5731 // 4415
5732 o65.firstChild = o64;
5733 // undefined
5734 o64 = null;
5735 // 4416
5736 o64 = {};
5737 // 4417
5738 o65.nextSibling = o64;
5739 // undefined
5740 o65 = null;
5741 // 4418
5742 o64.getAttributeNode = f974244559_519;
5743 // 4420
5744 o65 = {};
5745 // 4421
5746 f974244559_519.returns.push(o65);
5747 // 4422
5748 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left].[0].[0].[0][1]";
5749 // undefined
5750 o65 = null;
5751 // 4423
5752 o65 = {};
5753 // 4424
5754 o64.firstChild = o65;
5755 // undefined
5756 o65 = null;
5757 // 4425
5758 o65 = {};
5759 // 4426
5760 o64.nextSibling = o65;
5761 // undefined
5762 o64 = null;
5763 // 4427
5764 o65.getAttributeNode = f974244559_519;
5765 // 4429
5766 o64 = {};
5767 // 4430
5768 f974244559_519.returns.push(o64);
5769 // 4431
5770 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left].[0].[0].[0][2]";
5771 // undefined
5772 o64 = null;
5773 // 4432
5774 o64 = {};
5775 // 4433
5776 o65.firstChild = o64;
5777 // undefined
5778 o64 = null;
5779 // 4434
5780 o64 = {};
5781 // 4435
5782 o65.nextSibling = o64;
5783 // undefined
5784 o65 = null;
5785 // 4436
5786 o64.getAttributeNode = f974244559_519;
5787 // undefined
5788 o64 = null;
5789 // 4438
5790 o64 = {};
5791 // 4439
5792 f974244559_519.returns.push(o64);
5793 // 4440
5794 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4946958}.[0].[right].[0].[left].[0].[0].[3]";
5795 // undefined
5796 o64 = null;
5797 // 4443
5798 f974244559_519.returns.push(o62);
5799 // 4445
5800 o48.contains = f974244559_702;
5801 // 4447
5802 f974244559_702.returns.push(true);
5803 // undefined
5804 fo974244559_928_firstChild.returns.push(o58);
5805 // 4451
5806 f974244559_519.returns.push(o59);
5807 // 4456
5808 f974244559_519.returns.push(o61);
5809 // 4462
5810 f974244559_519.returns.push(o60);
5811 // 4468
5812 f974244559_519.returns.push(o62);
5813 // 4471
5814 o64 = {};
5815 // 4472
5816 o63.nextSibling = o64;
5817 // undefined
5818 o63 = null;
5819 // 4473
5820 o64.getAttributeNode = f974244559_519;
5821 // 4475
5822 o63 = {};
5823 // 4476
5824 f974244559_519.returns.push(o63);
5825 // 4477
5826 o63.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}";
5827 // 4478
5828 o65 = {};
5829 // 4479
5830 o64.firstChild = o65;
5831 // 4480
5832 o65.getAttributeNode = f974244559_519;
5833 // 4482
5834 o66 = {};
5835 // 4483
5836 f974244559_519.returns.push(o66);
5837 // 4484
5838 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0]";
5839 // undefined
5840 o66 = null;
5841 // 4485
5842 o66 = {};
5843 // 4486
5844 o65.firstChild = o66;
5845 // undefined
5846 o65 = null;
5847 // 4487
5848 o66.getAttributeNode = f974244559_519;
5849 // 4489
5850 o65 = {};
5851 // 4490
5852 f974244559_519.returns.push(o65);
5853 // 4491
5854 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[left]";
5855 // undefined
5856 o65 = null;
5857 // 4492
5858 o65 = {};
5859 // 4493
5860 o66.firstChild = o65;
5861 // undefined
5862 o65 = null;
5863 // 4494
5864 o65 = {};
5865 // 4495
5866 o66.nextSibling = o65;
5867 // undefined
5868 o66 = null;
5869 // 4496
5870 o65.getAttributeNode = f974244559_519;
5871 // 4498
5872 o66 = {};
5873 // 4499
5874 f974244559_519.returns.push(o66);
5875 // 4500
5876 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right]";
5877 // undefined
5878 o66 = null;
5879 // 4501
5880 o66 = {};
5881 // 4502
5882 o65.firstChild = o66;
5883 // undefined
5884 o65 = null;
5885 // 4503
5886 o66.getAttributeNode = f974244559_519;
5887 // 4505
5888 o65 = {};
5889 // 4506
5890 f974244559_519.returns.push(o65);
5891 // 4507
5892 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0]";
5893 // undefined
5894 o65 = null;
5895 // 4508
5896 o65 = {};
5897 // 4509
5898 o66.firstChild = o65;
5899 // undefined
5900 o66 = null;
5901 // 4510
5902 o65.getAttributeNode = f974244559_519;
5903 // 4512
5904 o66 = {};
5905 // 4513
5906 f974244559_519.returns.push(o66);
5907 // 4514
5908 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left]";
5909 // undefined
5910 o66 = null;
5911 // 4515
5912 o66 = {};
5913 // 4516
5914 o65.firstChild = o66;
5915 // undefined
5916 o65 = null;
5917 // 4517
5918 o66.getAttributeNode = f974244559_519;
5919 // 4519
5920 o65 = {};
5921 // 4520
5922 f974244559_519.returns.push(o65);
5923 // 4521
5924 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left].[0]";
5925 // undefined
5926 o65 = null;
5927 // 4522
5928 o65 = {};
5929 // 4523
5930 o66.firstChild = o65;
5931 // undefined
5932 o66 = null;
5933 // 4524
5934 o65.getAttributeNode = f974244559_519;
5935 // 4526
5936 o66 = {};
5937 // 4527
5938 f974244559_519.returns.push(o66);
5939 // 4528
5940 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left].[0].[0]";
5941 // undefined
5942 o66 = null;
5943 // 4529
5944 o66 = {};
5945 // 4530
5946 o65.firstChild = o66;
5947 // undefined
5948 o65 = null;
5949 // 4531
5950 o66.getAttributeNode = f974244559_519;
5951 // 4533
5952 o65 = {};
5953 // 4534
5954 f974244559_519.returns.push(o65);
5955 // 4535
5956 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left].[0].[0].[0][0]";
5957 // undefined
5958 o65 = null;
5959 // 4536
5960 o65 = {};
5961 // 4537
5962 o66.firstChild = o65;
5963 // undefined
5964 o65 = null;
5965 // 4538
5966 o65 = {};
5967 // 4539
5968 o66.nextSibling = o65;
5969 // undefined
5970 o66 = null;
5971 // 4540
5972 o65.getAttributeNode = f974244559_519;
5973 // 4542
5974 o66 = {};
5975 // 4543
5976 f974244559_519.returns.push(o66);
5977 // 4544
5978 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left].[0].[0].[0][1]";
5979 // undefined
5980 o66 = null;
5981 // 4545
5982 o66 = {};
5983 // 4546
5984 o65.firstChild = o66;
5985 // undefined
5986 o66 = null;
5987 // 4547
5988 o66 = {};
5989 // 4548
5990 o65.nextSibling = o66;
5991 // undefined
5992 o65 = null;
5993 // 4549
5994 o66.getAttributeNode = f974244559_519;
5995 // 4551
5996 o65 = {};
5997 // 4552
5998 f974244559_519.returns.push(o65);
5999 // 4553
6000 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left].[0].[0].[0][2]";
6001 // undefined
6002 o65 = null;
6003 // 4554
6004 o65 = {};
6005 // 4555
6006 o66.firstChild = o65;
6007 // undefined
6008 o65 = null;
6009 // 4556
6010 o65 = {};
6011 // 4557
6012 o66.nextSibling = o65;
6013 // undefined
6014 o66 = null;
6015 // 4558
6016 o65.getAttributeNode = f974244559_519;
6017 // undefined
6018 o65 = null;
6019 // 4560
6020 o65 = {};
6021 // 4561
6022 f974244559_519.returns.push(o65);
6023 // 4562
6024 o65.value = ".r[30l95].[1][4][1]{comment10200343222477260_4947623}.[0].[right].[0].[left].[0].[0].[3]";
6025 // undefined
6026 o65 = null;
6027 // 4565
6028 f974244559_519.returns.push(o63);
6029 // 4569
6030 f974244559_702.returns.push(true);
6031 // undefined
6032 fo974244559_928_firstChild.returns.push(o58);
6033 // 4573
6034 f974244559_519.returns.push(o59);
6035 // 4578
6036 f974244559_519.returns.push(o61);
6037 // 4584
6038 f974244559_519.returns.push(o60);
6039 // 4590
6040 f974244559_519.returns.push(o62);
6041 // 4596
6042 f974244559_519.returns.push(o63);
6043 // 4599
6044 o65 = {};
6045 // 4600
6046 o64.nextSibling = o65;
6047 // undefined
6048 o64 = null;
6049 // 4601
6050 o65.getAttributeNode = f974244559_519;
6051 // 4603
6052 o64 = {};
6053 // 4604
6054 f974244559_519.returns.push(o64);
6055 // 4605
6056 o64.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}";
6057 // 4606
6058 o66 = {};
6059 // 4607
6060 o65.firstChild = o66;
6061 // 4608
6062 o66.getAttributeNode = f974244559_519;
6063 // 4610
6064 o67 = {};
6065 // 4611
6066 f974244559_519.returns.push(o67);
6067 // 4612
6068 o67.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0]";
6069 // undefined
6070 o67 = null;
6071 // 4613
6072 o67 = {};
6073 // 4614
6074 o66.firstChild = o67;
6075 // undefined
6076 o66 = null;
6077 // 4615
6078 o67.getAttributeNode = f974244559_519;
6079 // 4617
6080 o66 = {};
6081 // 4618
6082 f974244559_519.returns.push(o66);
6083 // 4619
6084 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[left]";
6085 // undefined
6086 o66 = null;
6087 // 4620
6088 o66 = {};
6089 // 4621
6090 o67.firstChild = o66;
6091 // undefined
6092 o66 = null;
6093 // 4622
6094 o66 = {};
6095 // 4623
6096 o67.nextSibling = o66;
6097 // undefined
6098 o67 = null;
6099 // 4624
6100 o66.getAttributeNode = f974244559_519;
6101 // 4626
6102 o67 = {};
6103 // 4627
6104 f974244559_519.returns.push(o67);
6105 // 4628
6106 o67.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right]";
6107 // undefined
6108 o67 = null;
6109 // 4629
6110 o67 = {};
6111 // 4630
6112 o66.firstChild = o67;
6113 // undefined
6114 o66 = null;
6115 // 4631
6116 o67.getAttributeNode = f974244559_519;
6117 // 4633
6118 o66 = {};
6119 // 4634
6120 f974244559_519.returns.push(o66);
6121 // 4635
6122 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0]";
6123 // undefined
6124 o66 = null;
6125 // 4636
6126 o66 = {};
6127 // 4637
6128 o67.firstChild = o66;
6129 // undefined
6130 o67 = null;
6131 // 4638
6132 o66.getAttributeNode = f974244559_519;
6133 // 4640
6134 o67 = {};
6135 // 4641
6136 f974244559_519.returns.push(o67);
6137 // 4642
6138 o67.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left]";
6139 // undefined
6140 o67 = null;
6141 // 4643
6142 o67 = {};
6143 // 4644
6144 o66.firstChild = o67;
6145 // undefined
6146 o66 = null;
6147 // 4645
6148 o67.getAttributeNode = f974244559_519;
6149 // 4647
6150 o66 = {};
6151 // 4648
6152 f974244559_519.returns.push(o66);
6153 // 4649
6154 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left].[0]";
6155 // undefined
6156 o66 = null;
6157 // 4650
6158 o66 = {};
6159 // 4651
6160 o67.firstChild = o66;
6161 // undefined
6162 o67 = null;
6163 // 4652
6164 o66.getAttributeNode = f974244559_519;
6165 // 4654
6166 o67 = {};
6167 // 4655
6168 f974244559_519.returns.push(o67);
6169 // 4656
6170 o67.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left].[0].[0]";
6171 // undefined
6172 o67 = null;
6173 // 4657
6174 o67 = {};
6175 // 4658
6176 o66.firstChild = o67;
6177 // undefined
6178 o66 = null;
6179 // 4659
6180 o67.getAttributeNode = f974244559_519;
6181 // 4661
6182 o66 = {};
6183 // 4662
6184 f974244559_519.returns.push(o66);
6185 // 4663
6186 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left].[0].[0].[0][0]";
6187 // undefined
6188 o66 = null;
6189 // 4664
6190 o66 = {};
6191 // 4665
6192 o67.firstChild = o66;
6193 // undefined
6194 o66 = null;
6195 // 4666
6196 o66 = {};
6197 // 4667
6198 o67.nextSibling = o66;
6199 // undefined
6200 o67 = null;
6201 // 4668
6202 o66.getAttributeNode = f974244559_519;
6203 // 4670
6204 o67 = {};
6205 // 4671
6206 f974244559_519.returns.push(o67);
6207 // 4672
6208 o67.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left].[0].[0].[0][1]";
6209 // undefined
6210 o67 = null;
6211 // 4673
6212 o67 = {};
6213 // 4674
6214 o66.firstChild = o67;
6215 // undefined
6216 o67 = null;
6217 // 4675
6218 o67 = {};
6219 // 4676
6220 o66.nextSibling = o67;
6221 // undefined
6222 o66 = null;
6223 // 4677
6224 o67.getAttributeNode = f974244559_519;
6225 // 4679
6226 o66 = {};
6227 // 4680
6228 f974244559_519.returns.push(o66);
6229 // 4681
6230 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left].[0].[0].[0][2]";
6231 // undefined
6232 o66 = null;
6233 // 4682
6234 o66 = {};
6235 // 4683
6236 o67.firstChild = o66;
6237 // undefined
6238 o66 = null;
6239 // 4684
6240 o66 = {};
6241 // 4685
6242 o67.nextSibling = o66;
6243 // undefined
6244 o67 = null;
6245 // 4686
6246 o66.getAttributeNode = f974244559_519;
6247 // undefined
6248 o66 = null;
6249 // 4688
6250 o66 = {};
6251 // 4689
6252 f974244559_519.returns.push(o66);
6253 // 4690
6254 o66.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950566}.[0].[right].[0].[left].[0].[0].[3]";
6255 // undefined
6256 o66 = null;
6257 // 4693
6258 f974244559_519.returns.push(o64);
6259 // 4697
6260 f974244559_702.returns.push(true);
6261 // undefined
6262 fo974244559_928_firstChild.returns.push(o58);
6263 // undefined
6264 o58 = null;
6265 // 4701
6266 f974244559_519.returns.push(o59);
6267 // undefined
6268 o59 = null;
6269 // 4706
6270 f974244559_519.returns.push(o61);
6271 // undefined
6272 o61 = null;
6273 // 4712
6274 f974244559_519.returns.push(o60);
6275 // undefined
6276 o60 = null;
6277 // 4718
6278 f974244559_519.returns.push(o62);
6279 // undefined
6280 o62 = null;
6281 // 4724
6282 f974244559_519.returns.push(o63);
6283 // undefined
6284 o63 = null;
6285 // 4730
6286 f974244559_519.returns.push(o64);
6287 // undefined
6288 o64 = null;
6289 // 4733
6290 o58 = {};
6291 // 4734
6292 o65.nextSibling = o58;
6293 // undefined
6294 o65 = null;
6295 // 4735
6296 o58.getAttributeNode = f974244559_519;
6297 // 4737
6298 o59 = {};
6299 // 4738
6300 f974244559_519.returns.push(o59);
6301 // 4739
6302 o59.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}";
6303 // 4740
6304 o60 = {};
6305 // 4741
6306 o58.firstChild = o60;
6307 // undefined
6308 o58 = null;
6309 // 4742
6310 o60.getAttributeNode = f974244559_519;
6311 // 4744
6312 o58 = {};
6313 // 4745
6314 f974244559_519.returns.push(o58);
6315 // 4746
6316 o58.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0]";
6317 // undefined
6318 o58 = null;
6319 // 4747
6320 o58 = {};
6321 // 4748
6322 o60.firstChild = o58;
6323 // undefined
6324 o60 = null;
6325 // 4749
6326 o58.getAttributeNode = f974244559_519;
6327 // 4751
6328 o60 = {};
6329 // 4752
6330 f974244559_519.returns.push(o60);
6331 // 4753
6332 o60.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[left]";
6333 // undefined
6334 o60 = null;
6335 // 4754
6336 o60 = {};
6337 // 4755
6338 o58.firstChild = o60;
6339 // undefined
6340 o60 = null;
6341 // 4756
6342 o60 = {};
6343 // 4757
6344 o58.nextSibling = o60;
6345 // undefined
6346 o58 = null;
6347 // 4758
6348 o60.getAttributeNode = f974244559_519;
6349 // 4760
6350 o58 = {};
6351 // 4761
6352 f974244559_519.returns.push(o58);
6353 // 4762
6354 o58.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right]";
6355 // undefined
6356 o58 = null;
6357 // 4763
6358 o58 = {};
6359 // 4764
6360 o60.firstChild = o58;
6361 // undefined
6362 o60 = null;
6363 // 4765
6364 o58.getAttributeNode = f974244559_519;
6365 // 4767
6366 o60 = {};
6367 // 4768
6368 f974244559_519.returns.push(o60);
6369 // 4769
6370 o60.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0]";
6371 // undefined
6372 o60 = null;
6373 // 4770
6374 o60 = {};
6375 // 4771
6376 o58.firstChild = o60;
6377 // undefined
6378 o58 = null;
6379 // 4772
6380 o60.getAttributeNode = f974244559_519;
6381 // 4774
6382 o58 = {};
6383 // 4775
6384 f974244559_519.returns.push(o58);
6385 // 4776
6386 o58.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left]";
6387 // undefined
6388 o58 = null;
6389 // 4777
6390 o58 = {};
6391 // 4778
6392 o60.firstChild = o58;
6393 // undefined
6394 o60 = null;
6395 // 4779
6396 o58.getAttributeNode = f974244559_519;
6397 // 4781
6398 o60 = {};
6399 // 4782
6400 f974244559_519.returns.push(o60);
6401 // 4783
6402 o60.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left].[0]";
6403 // undefined
6404 o60 = null;
6405 // 4784
6406 o60 = {};
6407 // 4785
6408 o58.firstChild = o60;
6409 // undefined
6410 o58 = null;
6411 // 4786
6412 o60.getAttributeNode = f974244559_519;
6413 // 4788
6414 o58 = {};
6415 // 4789
6416 f974244559_519.returns.push(o58);
6417 // 4790
6418 o58.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left].[0].[0]";
6419 // undefined
6420 o58 = null;
6421 // 4791
6422 o58 = {};
6423 // 4792
6424 o60.firstChild = o58;
6425 // undefined
6426 o60 = null;
6427 // 4793
6428 o58.getAttributeNode = f974244559_519;
6429 // 4795
6430 o60 = {};
6431 // 4796
6432 f974244559_519.returns.push(o60);
6433 // 4797
6434 o60.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left].[0].[0].[0][0]";
6435 // undefined
6436 o60 = null;
6437 // 4798
6438 o60 = {};
6439 // 4799
6440 o58.firstChild = o60;
6441 // undefined
6442 o60 = null;
6443 // 4800
6444 o60 = {};
6445 // 4801
6446 o58.nextSibling = o60;
6447 // undefined
6448 o58 = null;
6449 // 4802
6450 o60.getAttributeNode = f974244559_519;
6451 // 4804
6452 o58 = {};
6453 // 4805
6454 f974244559_519.returns.push(o58);
6455 // 4806
6456 o58.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left].[0].[0].[0][1]";
6457 // undefined
6458 o58 = null;
6459 // 4807
6460 o58 = {};
6461 // 4808
6462 o60.firstChild = o58;
6463 // undefined
6464 o58 = null;
6465 // 4809
6466 o58 = {};
6467 // 4810
6468 o60.nextSibling = o58;
6469 // undefined
6470 o60 = null;
6471 // 4811
6472 o58.getAttributeNode = f974244559_519;
6473 // 4813
6474 o60 = {};
6475 // 4814
6476 f974244559_519.returns.push(o60);
6477 // 4815
6478 o60.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left].[0].[0].[0][2]";
6479 // undefined
6480 o60 = null;
6481 // 4816
6482 o60 = {};
6483 // 4817
6484 o58.firstChild = o60;
6485 // undefined
6486 o60 = null;
6487 // 4818
6488 o60 = {};
6489 // 4819
6490 o58.nextSibling = o60;
6491 // undefined
6492 o58 = null;
6493 // 4820
6494 o60.getAttributeNode = f974244559_519;
6495 // undefined
6496 o60 = null;
6497 // 4822
6498 o58 = {};
6499 // 4823
6500 f974244559_519.returns.push(o58);
6501 // 4824
6502 o58.value = ".r[30l95].[1][4][1]{comment10200343222477260_4950571}.[0].[right].[0].[left].[0].[0].[3]";
6503 // undefined
6504 o58 = null;
6505 // 4827
6506 f974244559_519.returns.push(o59);
6507 // undefined
6508 o59 = null;
6509 // 4831
6510 f974244559_702.returns.push(true);
6511 // 4833
6512 f974244559_471.returns.push(1373491288830);
6513 // 4838
6514 o58 = {};
6515 // 4839
6516 f974244559_523.returns.push(o58);
6517 // 4840
6518 o58.length = 12;
6519 // 4841
6520 o58["0"] = o47;
6521 // 4842
6522 o58["1"] = o55;
6523 // 4843
6524 o58["2"] = o56;
6525 // 4844
6526 o58["3"] = o57;
6527 // 4845
6528 o59 = {};
6529 // 4846
6530 o58["4"] = o59;
6531 // 4847
6532 o60 = {};
6533 // 4848
6534 o58["5"] = o60;
6535 // 4849
6536 o61 = {};
6537 // 4850
6538 o58["6"] = o61;
6539 // 4851
6540 o62 = {};
6541 // 4852
6542 o58["7"] = o62;
6543 // 4853
6544 o58["8"] = o51;
6545 // 4854
6546 o58["9"] = o52;
6547 // 4855
6548 o58["10"] = o53;
6549 // 4856
6550 o58["11"] = o54;
6551 // undefined
6552 o58 = null;
6553 // 4857
6554 f974244559_14.returns.push(undefined);
6555 // 4858
6556 f974244559_12.returns.push(11);
6557 // 4859
6558 o48.nodeName = "DIV";
6559 // undefined
6560 o48 = null;
6561 // 4861
6562 o50.nodeName = "DIV";
6563 // 4862
6564 o48 = {};
6565 // 4863
6566 o50.parentNode = o48;
6567 // undefined
6568 o50 = null;
6569 // 4864
6570 o48.nodeName = "FORM";
6571 // 4868
6572 o50 = {};
6573 // 4869
6574 f974244559_478.returns.push(o50);
6575 // 4871
6576 f974244559_482.returns.push(o50);
6577 // undefined
6578 o50 = null;
6579 // 4873
6580 f974244559_471.returns.push(1373491288832);
6581 // 4876
6582 f974244559_471.returns.push(1373491288833);
6583 // 4878
6584 f974244559_471.returns.push(1373491288833);
6585 // 4881
6586 f974244559_471.returns.push(1373491288833);
6587 // 4885
6588 o50 = {};
6589 // 4886
6590 f974244559_478.returns.push(o50);
6591 // 4888
6592 f974244559_471.returns.push(1373491288834);
6593 // 4891
6594 o58 = {};
6595 // 4892
6596 f974244559_480.returns.push(o58);
6597 // 4893
6598 // 4894
6599 // 4895
6600 // 4896
6601 // 4897
6602 // 4898
6603 o50.appendChild = f974244559_482;
6604 // 4899
6605 f974244559_482.returns.push(o58);
6606 // 4901
6607 f974244559_482.returns.push(o50);
6608 // undefined
6609 o50 = null;
6610 // 4904
6611 f974244559_471.returns.push(1373491288836);
6612 // 4908
6613 o50 = {};
6614 // 4909
6615 f974244559_478.returns.push(o50);
6616 // 4911
6617 f974244559_471.returns.push(1373491288837);
6618 // 4914
6619 o63 = {};
6620 // 4915
6621 f974244559_480.returns.push(o63);
6622 // 4916
6623 // 4917
6624 // 4918
6625 // 4919
6626 // 4920
6627 // 4921
6628 o50.appendChild = f974244559_482;
6629 // 4922
6630 f974244559_482.returns.push(o63);
6631 // 4924
6632 f974244559_482.returns.push(o50);
6633 // undefined
6634 o50 = null;
6635 // 4928
6636 o50 = {};
6637 // 4929
6638 f974244559_478.returns.push(o50);
6639 // 4931
6640 f974244559_482.returns.push(o50);
6641 // undefined
6642 o50 = null;
6643 // 4933
6644 f974244559_471.returns.push(1373491288842);
6645 // 4934
6646 f974244559_15.returns.push(undefined);
6647 // 4935
6648 o50 = {};
6649 // 4938
6650 o50.srcElement = o8;
6651 // 4940
6652 o50.target = o8;
6653 // 4942
6654 o8.nodeType = 1;
6655 // 4945
6656 o8.getAttributeNode = f974244559_519;
6657 // 4947
6658 f974244559_519.returns.push(null);
6659 // 4950
6660 o0.nodeType = 9;
6661 // 4952
6662 o64 = {};
6663 // 4953
6664 o50.relatedTarget = o64;
6665 // 4954
6666 o65 = {};
6667 // 4955
6668 o64.parentNode = o65;
6669 // 4956
6670 o64.nodeType = 1;
6671 // 4957
6672 o64.getAttributeNode = f974244559_519;
6673 // 4959
6674 f974244559_519.returns.push(null);
6675 // 4961
6676 o66 = {};
6677 // 4962
6678 o65.parentNode = o66;
6679 // 4963
6680 o65.nodeType = 1;
6681 // 4964
6682 o65.getAttributeNode = f974244559_519;
6683 // 4966
6684 f974244559_519.returns.push(null);
6685 // 4968
6686 o67 = {};
6687 // 4969
6688 o66.parentNode = o67;
6689 // 4970
6690 o66.nodeType = 1;
6691 // 4971
6692 o66.getAttributeNode = f974244559_519;
6693 // 4973
6694 f974244559_519.returns.push(null);
6695 // 4975
6696 o68 = {};
6697 // 4976
6698 o67.parentNode = o68;
6699 // 4977
6700 o67.nodeType = 1;
6701 // 4978
6702 o67.getAttributeNode = f974244559_519;
6703 // 4980
6704 f974244559_519.returns.push(null);
6705 // 4982
6706 o69 = {};
6707 // 4983
6708 o68.parentNode = o69;
6709 // 4984
6710 o68.nodeType = 1;
6711 // 4985
6712 o68.getAttributeNode = f974244559_519;
6713 // 4987
6714 f974244559_519.returns.push(null);
6715 // 4989
6716 o69.parentNode = o27;
6717 // 4990
6718 o69.nodeType = 1;
6719 // 4991
6720 o69.getAttributeNode = f974244559_519;
6721 // 4993
6722 f974244559_519.returns.push(null);
6723 // 4995
6724 o27.parentNode = o13;
6725 // 4996
6726 o27.nodeType = 1;
6727 // 4997
6728 o27.getAttributeNode = f974244559_519;
6729 // 4999
6730 f974244559_519.returns.push(null);
6731 // 5001
6732 o70 = {};
6733 // 5002
6734 o13.parentNode = o70;
6735 // 5003
6736 o13.nodeType = 1;
6737 // 5004
6738 o13.getAttributeNode = f974244559_519;
6739 // 5006
6740 f974244559_519.returns.push(null);
6741 // 5008
6742 o71 = {};
6743 // 5009
6744 o70.parentNode = o71;
6745 // 5010
6746 o70.nodeType = 1;
6747 // 5011
6748 o70.getAttributeNode = f974244559_519;
6749 // 5013
6750 f974244559_519.returns.push(null);
6751 // 5015
6752 o72 = {};
6753 // 5016
6754 o71.parentNode = o72;
6755 // 5017
6756 o71.nodeType = 1;
6757 // 5018
6758 o71.getAttributeNode = f974244559_519;
6759 // 5020
6760 f974244559_519.returns.push(null);
6761 // 5022
6762 o73 = {};
6763 // 5023
6764 o72.parentNode = o73;
6765 // 5024
6766 o72.nodeType = 1;
6767 // 5025
6768 o72.getAttributeNode = f974244559_519;
6769 // 5027
6770 f974244559_519.returns.push(null);
6771 // 5029
6772 o74 = {};
6773 // 5030
6774 o73.parentNode = o74;
6775 // 5031
6776 o73.nodeType = 1;
6777 // 5032
6778 o73.getAttributeNode = f974244559_519;
6779 // 5034
6780 f974244559_519.returns.push(null);
6781 // 5036
6782 o75 = {};
6783 // 5037
6784 o74.parentNode = o75;
6785 // 5038
6786 o74.nodeType = 1;
6787 // 5039
6788 o74.getAttributeNode = f974244559_519;
6789 // 5041
6790 f974244559_519.returns.push(null);
6791 // 5043
6792 o76 = {};
6793 // 5044
6794 o75.parentNode = o76;
6795 // 5045
6796 o75.nodeType = 1;
6797 // 5046
6798 o75.getAttributeNode = f974244559_519;
6799 // 5048
6800 f974244559_519.returns.push(null);
6801 // 5050
6802 o76.parentNode = o25;
6803 // 5051
6804 o76.nodeType = 1;
6805 // 5052
6806 o76.getAttributeNode = f974244559_519;
6807 // 5054
6808 f974244559_519.returns.push(null);
6809 // 5056
6810 o25.parentNode = o8;
6811 // 5057
6812 o25.nodeType = 1;
6813 // 5058
6814 o25.getAttributeNode = f974244559_519;
6815 // 5060
6816 f974244559_519.returns.push(null);
6817 // 5066
6818 f974244559_519.returns.push(null);
6819 // 5071
6820 o50.cancelBubble = false;
6821 // 5072
6822 o50.returnValue = true;
6823 // undefined
6824 o50 = null;
6825 // 5073
6826 o50 = {};
6827 // 5075
6828 o50.target = o64;
6829 // 5076
6830 o64.getAttribute = f974244559_500;
6831 // 5078
6832 f974244559_500.returns.push(null);
6833 // 5080
6834 o65.getAttribute = f974244559_500;
6835 // 5082
6836 f974244559_500.returns.push(null);
6837 // 5084
6838 o66.getAttribute = f974244559_500;
6839 // 5086
6840 f974244559_500.returns.push(null);
6841 // 5088
6842 o67.getAttribute = f974244559_500;
6843 // 5090
6844 f974244559_500.returns.push(null);
6845 // 5092
6846 o68.getAttribute = f974244559_500;
6847 // 5094
6848 f974244559_500.returns.push(null);
6849 // 5096
6850 o69.getAttribute = f974244559_500;
6851 // 5098
6852 f974244559_500.returns.push(null);
6853 // 5102
6854 f974244559_500.returns.push(null);
6855 // 5106
6856 f974244559_500.returns.push(null);
6857 // 5108
6858 o70.getAttribute = f974244559_500;
6859 // 5110
6860 f974244559_500.returns.push(null);
6861 // 5112
6862 o71.getAttribute = f974244559_500;
6863 // 5114
6864 f974244559_500.returns.push(null);
6865 // 5116
6866 o72.getAttribute = f974244559_500;
6867 // 5118
6868 f974244559_500.returns.push(null);
6869 // 5120
6870 o73.getAttribute = f974244559_500;
6871 // 5122
6872 f974244559_500.returns.push(null);
6873 // 5124
6874 o74.getAttribute = f974244559_500;
6875 // 5126
6876 f974244559_500.returns.push(null);
6877 // 5128
6878 o75.getAttribute = f974244559_500;
6879 // 5130
6880 f974244559_500.returns.push(null);
6881 // 5132
6882 o76.getAttribute = f974244559_500;
6883 // 5134
6884 f974244559_500.returns.push(null);
6885 // 5136
6886 o25.getAttribute = f974244559_500;
6887 // 5138
6888 f974244559_500.returns.push(null);
6889 // 5142
6890 f974244559_500.returns.push(null);
6891 // 5148
6892 f974244559_500.returns.push(null);
6893 // 5152
6894 f974244559_500.returns.push(null);
6895 // 5156
6896 f974244559_500.returns.push(null);
6897 // 5160
6898 f974244559_500.returns.push(null);
6899 // 5164
6900 f974244559_500.returns.push(null);
6901 // 5168
6902 f974244559_500.returns.push(null);
6903 // 5172
6904 f974244559_500.returns.push(null);
6905 // 5176
6906 f974244559_500.returns.push(null);
6907 // 5180
6908 f974244559_500.returns.push(null);
6909 // 5184
6910 f974244559_500.returns.push(null);
6911 // 5188
6912 f974244559_500.returns.push(null);
6913 // 5192
6914 f974244559_500.returns.push(null);
6915 // 5196
6916 f974244559_500.returns.push(null);
6917 // 5200
6918 f974244559_500.returns.push(null);
6919 // 5204
6920 f974244559_500.returns.push(null);
6921 // 5208
6922 f974244559_500.returns.push(null);
6923 // 5212
6924 f974244559_500.returns.push(null);
6925 // 5218
6926 o50.srcElement = o64;
6927 // 5227
6928 f974244559_519.returns.push(null);
6929 // 5233
6930 f974244559_519.returns.push(null);
6931 // 5239
6932 f974244559_519.returns.push(null);
6933 // 5245
6934 f974244559_519.returns.push(null);
6935 // 5251
6936 f974244559_519.returns.push(null);
6937 // 5257
6938 f974244559_519.returns.push(null);
6939 // 5263
6940 f974244559_519.returns.push(null);
6941 // 5269
6942 f974244559_519.returns.push(null);
6943 // 5275
6944 f974244559_519.returns.push(null);
6945 // 5281
6946 f974244559_519.returns.push(null);
6947 // 5287
6948 f974244559_519.returns.push(null);
6949 // 5293
6950 f974244559_519.returns.push(null);
6951 // 5299
6952 f974244559_519.returns.push(null);
6953 // 5305
6954 f974244559_519.returns.push(null);
6955 // 5311
6956 f974244559_519.returns.push(null);
6957 // 5317
6958 f974244559_519.returns.push(null);
6959 // 5323
6960 f974244559_519.returns.push(null);
6961 // 5328
6962 o50.relatedTarget = o8;
6963 // 5329
6964 o50.cancelBubble = false;
6965 // 5330
6966 o50.returnValue = true;
6967 // undefined
6968 o50 = null;
6969 // 5331
6970 o50 = {};
6971 // 5334
6972 o50.srcElement = o64;
6973 // 5336
6974 o50.target = o64;
6975 // 5343
6976 f974244559_519.returns.push(null);
6977 // 5349
6978 f974244559_519.returns.push(null);
6979 // 5355
6980 f974244559_519.returns.push(null);
6981 // 5361
6982 f974244559_519.returns.push(null);
6983 // 5367
6984 f974244559_519.returns.push(null);
6985 // 5373
6986 f974244559_519.returns.push(null);
6987 // 5379
6988 f974244559_519.returns.push(null);
6989 // 5385
6990 f974244559_519.returns.push(null);
6991 // 5391
6992 f974244559_519.returns.push(null);
6993 // 5397
6994 f974244559_519.returns.push(null);
6995 // 5403
6996 f974244559_519.returns.push(null);
6997 // 5409
6998 f974244559_519.returns.push(null);
6999 // 5415
7000 f974244559_519.returns.push(null);
7001 // 5421
7002 f974244559_519.returns.push(null);
7003 // 5427
7004 f974244559_519.returns.push(null);
7005 // 5433
7006 f974244559_519.returns.push(null);
7007 // 5439
7008 f974244559_519.returns.push(null);
7009 // 5444
7010 o50.JSBNG__screenX = 784;
7011 // 5445
7012 o50.JSBNG__screenY = 324;
7013 // 5446
7014 o50.altKey = false;
7015 // 5447
7016 o50.bubbles = true;
7017 // 5448
7018 o50.button = 0;
7019 // 5449
7020 o50.buttons = void 0;
7021 // 5450
7022 o50.cancelable = false;
7023 // 5451
7024 o50.clientX = 767;
7025 // 5452
7026 o50.clientY = 220;
7027 // 5453
7028 o50.ctrlKey = false;
7029 // 5454
7030 o50.currentTarget = o0;
7031 // 5455
7032 o50.defaultPrevented = false;
7033 // 5456
7034 o50.detail = 0;
7035 // 5457
7036 o50.eventPhase = 3;
7037 // 5458
7038 o50.isTrusted = void 0;
7039 // 5459
7040 o50.metaKey = false;
7041 // 5460
7042 o50.pageX = 767;
7043 // 5461
7044 o50.pageY = 379;
7045 // 5462
7046 o50.relatedTarget = null;
7047 // 5463
7048 o50.fromElement = null;
7049 // 5466
7050 o50.shiftKey = false;
7051 // 5469
7052 o50.timeStamp = 1373491288917;
7053 // 5470
7054 o50.type = "mousemove";
7055 // 5471
7056 o50.view = ow974244559;
7057 // 5473
7058 o50.returnValue = true;
7059 // 5474
7060 o50.cancelBubble = false;
7061 // undefined
7062 o50 = null;
7063 // 5481
7064 o5.protocol = "https:";
7065 // undefined
7066 fo974244559_1_cookie = function() { return fo974244559_1_cookie.returns[fo974244559_1_cookie.inst++]; };
7067 fo974244559_1_cookie.returns = [];
7068 fo974244559_1_cookie.inst = 0;
7069 defineGetter(o0, "cookie", fo974244559_1_cookie, undefined);
7070 // undefined
7071 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2");
7072 // 5484
7073 f974244559_471.returns.push(1373491289201);
7074 // 5485
7075 o50 = {};
7076 // 5486
7077 f974244559_0.returns.push(o50);
7078 // 5487
7079 f974244559_1087 = function() { return f974244559_1087.returns[f974244559_1087.inst++]; };
7080 f974244559_1087.returns = [];
7081 f974244559_1087.inst = 0;
7082 // 5488
7083 o50.toGMTString = f974244559_1087;
7084 // undefined
7085 o50 = null;
7086 // 5489
7087 f974244559_1087.returns.push("Wed, 17 Jul 2013 21:21:29 GMT");
7088 // 5490
7089 o5.hostname = "jsbngssl.www.facebook.com";
7090 // undefined
7091 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2");
7092 // 5493
7093 f974244559_471.returns.push(1373491289203);
7094 // 5495
7095 f974244559_486.returns.push("1;1");
7096 // 5507
7097 f974244559_472.returns.push(undefined);
7098 // 5508
7099 o8.JSBNG__oninput = null;
7100 // 5513
7101 f974244559_472.returns.push(undefined);
7102 // 5514
7103 o8.JSBNG__onkeyup = null;
7104 // 5521
7105 f974244559_472.returns.push(undefined);
7106 // 5522
7107 f974244559_1088 = function() { return f974244559_1088.returns[f974244559_1088.inst++]; };
7108 f974244559_1088.returns = [];
7109 f974244559_1088.inst = 0;
7110 // 5523
7111 o8.JSBNG__onsubmit = f974244559_1088;
7112 // 5526
7113 // 5533
7114 // 5539
7115 f974244559_472.returns.push(undefined);
7116 // 5540
7117 o8.JSBNG__onkeydown = null;
7118 // 5550
7119 f974244559_472.returns.push(undefined);
7120 // 5551
7121 f974244559_1089 = function() { return f974244559_1089.returns[f974244559_1089.inst++]; };
7122 f974244559_1089.returns = [];
7123 f974244559_1089.inst = 0;
7124 // 5552
7125 o8.JSBNG__onclick = f974244559_1089;
7126 // 5555
7127 // 5559
7128 o50 = {};
7129 // 5560
7130 f974244559_480.returns.push(o50);
7131 // 5565
7132 f974244559_472.returns.push(undefined);
7133 // 5566
7134 o8.JSBNG__onmousedown = null;
7135 // 5571
7136 o77 = {};
7137 // 5572
7138 f974244559_502.returns.push(o77);
7139 // 5574
7140 o78 = {};
7141 // 5575
7142 f974244559_502.returns.push(o78);
7143 // 5576
7144 o78.nodeName = "A";
7145 // 5577
7146 o78.rel = "toggle";
7147 // 5579
7148 o78.__FB_TOKEN = void 0;
7149 // 5580
7150 // 5581
7151 o78.getAttribute = f974244559_500;
7152 // 5582
7153 o78.hasAttribute = f974244559_527;
7154 // 5584
7155 f974244559_527.returns.push(false);
7156 // 5585
7157 o78.JSBNG__addEventListener = f974244559_472;
7158 // 5587
7159 f974244559_472.returns.push(undefined);
7160 // 5588
7161 o78.JSBNG__onkeydown = null;
7162 // 5590
7163 o78.setAttribute = f974244559_643;
7164 // 5591
7165 f974244559_643.returns.push(undefined);
7166 // 5592
7167 o77.__FB_TOKEN = void 0;
7168 // 5593
7169 // 5603
7170 o79 = {};
7171 // 5604
7172 f974244559_480.returns.push(o79);
7173 // undefined
7174 o79 = null;
7175 // 5606
7176 o79 = {};
7177 // 5607
7178 f974244559_480.returns.push(o79);
7179 // undefined
7180 o79 = null;
7181 // 5610
7182 o79 = {};
7183 // 5611
7184 f974244559_502.returns.push(o79);
7185 // 5612
7186 o79.getElementsByTagName = f974244559_514;
7187 // 5614
7188 o79.querySelectorAll = f974244559_523;
7189 // 5615
7190 o80 = {};
7191 // 5616
7192 f974244559_523.returns.push(o80);
7193 // 5617
7194 o80.length = 1;
7195 // 5618
7196 o81 = {};
7197 // 5619
7198 o80["0"] = o81;
7199 // undefined
7200 o80 = null;
7201 // 5620
7202 o81.getElementsByTagName = f974244559_514;
7203 // 5622
7204 o81.querySelectorAll = f974244559_523;
7205 // 5623
7206 o80 = {};
7207 // 5624
7208 f974244559_523.returns.push(o80);
7209 // 5625
7210 o80.length = 1;
7211 // 5626
7212 o82 = {};
7213 // 5627
7214 o80["0"] = o82;
7215 // undefined
7216 o80 = null;
7217 // 5628
7218 o82.getElementsByTagName = f974244559_514;
7219 // 5630
7220 o82.querySelectorAll = f974244559_523;
7221 // 5631
7222 o80 = {};
7223 // 5632
7224 f974244559_523.returns.push(o80);
7225 // 5633
7226 o80.length = 1;
7227 // 5634
7228 o83 = {};
7229 // 5635
7230 o80["0"] = o83;
7231 // undefined
7232 o80 = null;
7233 // 5639
7234 o80 = {};
7235 // 5640
7236 f974244559_523.returns.push(o80);
7237 // 5641
7238 o80.length = 1;
7239 // 5642
7240 o84 = {};
7241 // 5643
7242 o80["0"] = o84;
7243 // undefined
7244 o80 = null;
7245 // 5644
7246 o84.getElementsByTagName = f974244559_514;
7247 // 5646
7248 o84.querySelectorAll = f974244559_523;
7249 // 5647
7250 o80 = {};
7251 // 5648
7252 f974244559_523.returns.push(o80);
7253 // 5649
7254 o80.length = 1;
7255 // 5650
7256 o85 = {};
7257 // 5651
7258 o80["0"] = o85;
7259 // undefined
7260 o80 = null;
7261 // 5652
7262 f974244559_12.returns.push(12);
7263 // 5653
7264 o81.nodeName = "DIV";
7265 // 5654
7266 o81.__FB_TOKEN = void 0;
7267 // 5655
7268 // 5656
7269 o81.getAttribute = f974244559_500;
7270 // 5657
7271 o81.hasAttribute = f974244559_527;
7272 // 5659
7273 f974244559_527.returns.push(false);
7274 // 5660
7275 o81.JSBNG__addEventListener = f974244559_472;
7276 // 5662
7277 f974244559_472.returns.push(undefined);
7278 // 5663
7279 o81.JSBNG__onJSBNG__scroll = void 0;
7280 // 5665
7281 o79.nodeName = "DIV";
7282 // 5666
7283 o79.__FB_TOKEN = void 0;
7284 // 5667
7285 // 5668
7286 o79.getAttribute = f974244559_500;
7287 // 5669
7288 o79.hasAttribute = f974244559_527;
7289 // 5671
7290 f974244559_527.returns.push(false);
7291 // 5672
7292 o79.JSBNG__addEventListener = f974244559_472;
7293 // 5674
7294 f974244559_472.returns.push(undefined);
7295 // 5675
7296 o79.JSBNG__onmousemove = null;
7297 // 5677
7298 o84.nodeName = "DIV";
7299 // 5678
7300 o84.__FB_TOKEN = void 0;
7301 // 5679
7302 // 5680
7303 o84.getAttribute = f974244559_500;
7304 // 5681
7305 o84.hasAttribute = f974244559_527;
7306 // 5683
7307 f974244559_527.returns.push(false);
7308 // 5684
7309 o84.JSBNG__addEventListener = f974244559_472;
7310 // 5686
7311 f974244559_472.returns.push(undefined);
7312 // 5687
7313 o84.JSBNG__onclick = null;
7314 // 5689
7315 o80 = {};
7316 // 5690
7317 o50.style = o80;
7318 // 5692
7319 // 5694
7320 // undefined
7321 o80 = null;
7322 // 5696
7323 o50.__html = void 0;
7324 // 5698
7325 o80 = {};
7326 // 5699
7327 f974244559_478.returns.push(o80);
7328 // 5701
7329 o8.appendChild = f974244559_482;
7330 // 5702
7331 f974244559_482.returns.push(o80);
7332 // undefined
7333 o80 = null;
7334 // 5703
7335 o80 = {};
7336 // 5704
7337 f974244559_4.returns.push(o80);
7338 // 5705
7339 o80.pointerEvents = "";
7340 // undefined
7341 o80 = null;
7342 // 5706
7343 o50.parentNode = null;
7344 // 5710
7345 f974244559_472.returns.push(undefined);
7346 // 5711
7347 o79.JSBNG__onmouseover = null;
7348 // 5716
7349 f974244559_472.returns.push(undefined);
7350 // 5717
7351 o79.JSBNG__onmouseout = null;
7352 // 5722
7353 f974244559_472.returns.push(undefined);
7354 // 5723
7355 o79.JSBNG__onfocusin = void 0;
7356 // 5728
7357 f974244559_472.returns.push(undefined);
7358 // 5729
7359 o79.JSBNG__onfocusout = void 0;
7360 // 5734
7361 f974244559_472.returns.push(undefined);
7362 // 5735
7363 o79.JSBNG__onmousedown = null;
7364 // 5737
7365 o85.nodeName = "DIV";
7366 // 5738
7367 o85.__FB_TOKEN = void 0;
7368 // 5739
7369 // 5740
7370 o85.getAttribute = f974244559_500;
7371 // 5741
7372 o85.hasAttribute = f974244559_527;
7373 // 5743
7374 f974244559_527.returns.push(false);
7375 // 5744
7376 o85.JSBNG__addEventListener = f974244559_472;
7377 // 5746
7378 f974244559_472.returns.push(undefined);
7379 // 5747
7380 o85.JSBNG__onmousedown = null;
7381 // 5749
7382 o80 = {};
7383 // 5750
7384 o79.classList = o80;
7385 // 5752
7386 f974244559_1110 = function() { return f974244559_1110.returns[f974244559_1110.inst++]; };
7387 f974244559_1110.returns = [];
7388 f974244559_1110.inst = 0;
7389 // 5753
7390 o80.add = f974244559_1110;
7391 // 5754
7392 f974244559_1110.returns.push(undefined);
7393 // 5757
7394 o86 = {};
7395 // 5758
7396 f974244559_502.returns.push(o86);
7397 // 5759
7398 o86.getElementsByTagName = f974244559_514;
7399 // 5761
7400 o86.querySelectorAll = f974244559_523;
7401 // 5762
7402 o87 = {};
7403 // 5763
7404 f974244559_523.returns.push(o87);
7405 // 5764
7406 o87.length = 1;
7407 // 5765
7408 o88 = {};
7409 // 5766
7410 o87["0"] = o88;
7411 // undefined
7412 o87 = null;
7413 // 5767
7414 o88.getElementsByTagName = f974244559_514;
7415 // 5769
7416 o88.querySelectorAll = f974244559_523;
7417 // 5770
7418 o87 = {};
7419 // 5771
7420 f974244559_523.returns.push(o87);
7421 // 5772
7422 o87.length = 1;
7423 // 5773
7424 o89 = {};
7425 // 5774
7426 o87["0"] = o89;
7427 // undefined
7428 o87 = null;
7429 // 5775
7430 o89.getElementsByTagName = f974244559_514;
7431 // 5777
7432 o89.querySelectorAll = f974244559_523;
7433 // 5778
7434 o87 = {};
7435 // 5779
7436 f974244559_523.returns.push(o87);
7437 // 5780
7438 o87.length = 1;
7439 // 5781
7440 o90 = {};
7441 // 5782
7442 o87["0"] = o90;
7443 // undefined
7444 o87 = null;
7445 // 5786
7446 o87 = {};
7447 // 5787
7448 f974244559_523.returns.push(o87);
7449 // 5788
7450 o87.length = 1;
7451 // 5789
7452 o91 = {};
7453 // 5790
7454 o87["0"] = o91;
7455 // undefined
7456 o87 = null;
7457 // 5791
7458 o91.getElementsByTagName = f974244559_514;
7459 // 5793
7460 o91.querySelectorAll = f974244559_523;
7461 // 5794
7462 o87 = {};
7463 // 5795
7464 f974244559_523.returns.push(o87);
7465 // 5796
7466 o87.length = 1;
7467 // 5797
7468 o92 = {};
7469 // 5798
7470 o87["0"] = o92;
7471 // undefined
7472 o87 = null;
7473 // 5799
7474 f974244559_12.returns.push(13);
7475 // 5800
7476 o88.nodeName = "DIV";
7477 // 5801
7478 o88.__FB_TOKEN = void 0;
7479 // 5802
7480 // 5803
7481 o88.getAttribute = f974244559_500;
7482 // 5804
7483 o88.hasAttribute = f974244559_527;
7484 // 5806
7485 f974244559_527.returns.push(false);
7486 // 5807
7487 o88.JSBNG__addEventListener = f974244559_472;
7488 // 5809
7489 f974244559_472.returns.push(undefined);
7490 // 5810
7491 o88.JSBNG__onJSBNG__scroll = void 0;
7492 // 5812
7493 o86.nodeName = "DIV";
7494 // 5813
7495 o86.__FB_TOKEN = void 0;
7496 // 5814
7497 // 5815
7498 o86.getAttribute = f974244559_500;
7499 // 5816
7500 o86.hasAttribute = f974244559_527;
7501 // 5818
7502 f974244559_527.returns.push(false);
7503 // 5819
7504 o86.JSBNG__addEventListener = f974244559_472;
7505 // 5821
7506 f974244559_472.returns.push(undefined);
7507 // 5822
7508 o86.JSBNG__onmousemove = null;
7509 // 5824
7510 o91.nodeName = "DIV";
7511 // 5825
7512 o91.__FB_TOKEN = void 0;
7513 // 5826
7514 // 5827
7515 o91.getAttribute = f974244559_500;
7516 // 5828
7517 o91.hasAttribute = f974244559_527;
7518 // 5830
7519 f974244559_527.returns.push(false);
7520 // 5831
7521 o91.JSBNG__addEventListener = f974244559_472;
7522 // 5833
7523 f974244559_472.returns.push(undefined);
7524 // 5834
7525 o91.JSBNG__onclick = null;
7526 // 5839
7527 f974244559_472.returns.push(undefined);
7528 // 5840
7529 o86.JSBNG__onmouseover = null;
7530 // 5845
7531 f974244559_472.returns.push(undefined);
7532 // 5846
7533 o86.JSBNG__onmouseout = null;
7534 // 5851
7535 f974244559_472.returns.push(undefined);
7536 // 5852
7537 o86.JSBNG__onfocusin = void 0;
7538 // 5857
7539 f974244559_472.returns.push(undefined);
7540 // 5858
7541 o86.JSBNG__onfocusout = void 0;
7542 // 5863
7543 f974244559_472.returns.push(undefined);
7544 // 5864
7545 o86.JSBNG__onmousedown = null;
7546 // 5866
7547 o92.nodeName = "DIV";
7548 // 5867
7549 o92.__FB_TOKEN = void 0;
7550 // 5868
7551 // 5869
7552 o92.getAttribute = f974244559_500;
7553 // 5870
7554 o92.hasAttribute = f974244559_527;
7555 // 5872
7556 f974244559_527.returns.push(false);
7557 // 5873
7558 o92.JSBNG__addEventListener = f974244559_472;
7559 // 5875
7560 f974244559_472.returns.push(undefined);
7561 // 5876
7562 o92.JSBNG__onmousedown = null;
7563 // 5878
7564 o87 = {};
7565 // 5879
7566 o86.classList = o87;
7567 // 5881
7568 o87.add = f974244559_1110;
7569 // 5882
7570 f974244559_1110.returns.push(undefined);
7571 // 5885
7572 o93 = {};
7573 // 5886
7574 f974244559_502.returns.push(o93);
7575 // 5888
7576 o94 = {};
7577 // 5889
7578 f974244559_502.returns.push(o94);
7579 // 5890
7580 o94.nodeName = "A";
7581 // 5891
7582 o94.rel = "toggle";
7583 // 5893
7584 o94.__FB_TOKEN = void 0;
7585 // 5894
7586 // 5895
7587 o94.getAttribute = f974244559_500;
7588 // 5896
7589 o94.hasAttribute = f974244559_527;
7590 // 5898
7591 f974244559_527.returns.push(false);
7592 // 5899
7593 o94.JSBNG__addEventListener = f974244559_472;
7594 // 5901
7595 f974244559_472.returns.push(undefined);
7596 // 5902
7597 o94.JSBNG__onkeydown = null;
7598 // 5904
7599 o94.setAttribute = f974244559_643;
7600 // 5905
7601 f974244559_643.returns.push(undefined);
7602 // 5906
7603 o93.__FB_TOKEN = void 0;
7604 // 5907
7605 // undefined
7606 o93 = null;
7607 // 5910
7608 o93 = {};
7609 // 5911
7610 f974244559_502.returns.push(o93);
7611 // 5913
7612 o95 = {};
7613 // 5914
7614 f974244559_502.returns.push(o95);
7615 // 5915
7616 o95.nodeName = "A";
7617 // 5916
7618 o95.rel = "toggle";
7619 // 5918
7620 o95.__FB_TOKEN = void 0;
7621 // 5919
7622 // 5920
7623 o95.getAttribute = f974244559_500;
7624 // 5921
7625 o95.hasAttribute = f974244559_527;
7626 // 5923
7627 f974244559_527.returns.push(false);
7628 // 5924
7629 o95.JSBNG__addEventListener = f974244559_472;
7630 // 5926
7631 f974244559_472.returns.push(undefined);
7632 // 5927
7633 o95.JSBNG__onkeydown = null;
7634 // 5929
7635 o95.setAttribute = f974244559_643;
7636 // 5930
7637 f974244559_643.returns.push(undefined);
7638 // 5931
7639 o93.__FB_TOKEN = void 0;
7640 // 5932
7641 // undefined
7642 o93 = null;
7643 // 5935
7644 o93 = {};
7645 // 5936
7646 f974244559_502.returns.push(o93);
7647 // 5938
7648 o96 = {};
7649 // 5939
7650 f974244559_502.returns.push(o96);
7651 // 5940
7652 o96.nodeName = "A";
7653 // 5941
7654 o96.rel = "toggle";
7655 // 5943
7656 o96.__FB_TOKEN = void 0;
7657 // 5944
7658 // 5945
7659 o96.getAttribute = f974244559_500;
7660 // 5946
7661 o96.hasAttribute = f974244559_527;
7662 // 5948
7663 f974244559_527.returns.push(false);
7664 // 5949
7665 o96.JSBNG__addEventListener = f974244559_472;
7666 // 5951
7667 f974244559_472.returns.push(undefined);
7668 // 5952
7669 o96.JSBNG__onkeydown = null;
7670 // 5954
7671 o96.setAttribute = f974244559_643;
7672 // 5955
7673 f974244559_643.returns.push(undefined);
7674 // 5956
7675 o93.__FB_TOKEN = void 0;
7676 // 5957
7677 // undefined
7678 o93 = null;
7679 // 5960
7680 o93 = {};
7681 // 5961
7682 f974244559_502.returns.push(o93);
7683 // 5963
7684 o97 = {};
7685 // 5964
7686 f974244559_502.returns.push(o97);
7687 // 5965
7688 o97.nodeName = "A";
7689 // 5966
7690 o97.rel = "toggle";
7691 // 5968
7692 o97.__FB_TOKEN = void 0;
7693 // 5969
7694 // 5970
7695 o97.getAttribute = f974244559_500;
7696 // 5971
7697 o97.hasAttribute = f974244559_527;
7698 // 5973
7699 f974244559_527.returns.push(false);
7700 // 5974
7701 o97.JSBNG__addEventListener = f974244559_472;
7702 // 5976
7703 f974244559_472.returns.push(undefined);
7704 // 5977
7705 o97.JSBNG__onkeydown = null;
7706 // 5979
7707 o97.setAttribute = f974244559_643;
7708 // 5980
7709 f974244559_643.returns.push(undefined);
7710 // 5981
7711 o93.__FB_TOKEN = void 0;
7712 // 5982
7713 // undefined
7714 o93 = null;
7715 // 5985
7716 o93 = {};
7717 // 5986
7718 f974244559_480.returns.push(o93);
7719 // 5987
7720 // 5988
7721 // 5989
7722 o93.getElementsByTagName = f974244559_514;
7723 // 5990
7724 o98 = {};
7725 // 5991
7726 f974244559_514.returns.push(o98);
7727 // 5992
7728 o98.length = 0;
7729 // undefined
7730 o98 = null;
7731 // 5994
7732 o98 = {};
7733 // 5995
7734 o93.childNodes = o98;
7735 // undefined
7736 o93 = null;
7737 // 5996
7738 o98.item = f974244559_517;
7739 // 5997
7740 o98.length = 1;
7741 // 5998
7742 o93 = {};
7743 // 5999
7744 o98["0"] = o93;
7745 // undefined
7746 o98 = null;
7747 // 6000
7748 o93.getElementsByTagName = f974244559_514;
7749 // 6002
7750 o93.querySelectorAll = f974244559_523;
7751 // 6003
7752 o98 = {};
7753 // 6004
7754 f974244559_523.returns.push(o98);
7755 // 6005
7756 o98.length = 0;
7757 // undefined
7758 o98 = null;
7759 // 6006
7760 o93.__html = void 0;
7761 // 6007
7762 o93.mountComponentIntoNode = void 0;
7763 // 6008
7764 o98 = {};
7765 // 6009
7766 o93.classList = o98;
7767 // undefined
7768 o93 = null;
7769 // 6011
7770 o98.add = f974244559_1110;
7771 // undefined
7772 o98 = null;
7773 // 6012
7774 f974244559_1110.returns.push(undefined);
7775 // 6014
7776 o93 = {};
7777 // 6015
7778 f974244559_480.returns.push(o93);
7779 // 6016
7780 // 6017
7781 o93.firstChild = null;
7782 // 6020
7783 o98 = {};
7784 // 6021
7785 f974244559_478.returns.push(o98);
7786 // 6023
7787 o93.appendChild = f974244559_482;
7788 // 6024
7789 f974244559_482.returns.push(o98);
7790 // undefined
7791 o98 = null;
7792 // 6026
7793 o98 = {};
7794 // 6027
7795 f974244559_480.returns.push(o98);
7796 // 6028
7797 // 6029
7798 o98.firstChild = null;
7799 // 6030
7800 o93.__html = void 0;
7801 // 6032
7802 o99 = {};
7803 // 6033
7804 f974244559_478.returns.push(o99);
7805 // 6035
7806 o98.appendChild = f974244559_482;
7807 // 6036
7808 f974244559_482.returns.push(o99);
7809 // undefined
7810 o99 = null;
7811 // 6037
7812 o99 = {};
7813 // 6038
7814 o98.classList = o99;
7815 // 6040
7816 o99.add = f974244559_1110;
7817 // undefined
7818 o99 = null;
7819 // 6041
7820 f974244559_1110.returns.push(undefined);
7821 // 6042
7822 o99 = {};
7823 // 6043
7824 o93.style = o99;
7825 // undefined
7826 o93 = null;
7827 // 6044
7828 // undefined
7829 o99 = null;
7830 // 6048
7831 f974244559_1110.returns.push(undefined);
7832 // 6049
7833 o98.__FB_TOKEN = void 0;
7834 // 6050
7835 // 6051
7836 o98.nodeName = "DIV";
7837 // 6052
7838 o98.getAttribute = f974244559_500;
7839 // 6053
7840 o98.hasAttribute = f974244559_527;
7841 // 6055
7842 f974244559_527.returns.push(false);
7843 // 6056
7844 o98.JSBNG__addEventListener = f974244559_472;
7845 // 6058
7846 f974244559_472.returns.push(undefined);
7847 // 6059
7848 o98.JSBNG__onclick = null;
7849 // 6064
7850 f974244559_472.returns.push(undefined);
7851 // 6065
7852 o98.JSBNG__onsubmit = null;
7853 // 6070
7854 f974244559_472.returns.push(undefined);
7855 // 6071
7856 o98.JSBNG__onsuccess = void 0;
7857 // 6076
7858 f974244559_472.returns.push(undefined);
7859 // 6077
7860 o98.JSBNG__onerror = null;
7861 // undefined
7862 o98 = null;
7863 // 6079
7864 f974244559_12.returns.push(14);
7865 // 6082
7866 o93 = {};
7867 // 6083
7868 f974244559_480.returns.push(o93);
7869 // 6084
7870 // 6085
7871 // 6086
7872 o93.getElementsByTagName = f974244559_514;
7873 // 6087
7874 o98 = {};
7875 // 6088
7876 f974244559_514.returns.push(o98);
7877 // 6089
7878 o98.length = 0;
7879 // undefined
7880 o98 = null;
7881 // 6091
7882 o98 = {};
7883 // 6092
7884 o93.childNodes = o98;
7885 // undefined
7886 o93 = null;
7887 // 6093
7888 o98.item = f974244559_517;
7889 // 6094
7890 o98.length = 1;
7891 // 6095
7892 o93 = {};
7893 // 6096
7894 o98["0"] = o93;
7895 // undefined
7896 o98 = null;
7897 // 6097
7898 o93.getElementsByTagName = f974244559_514;
7899 // 6099
7900 o93.querySelectorAll = f974244559_523;
7901 // 6100
7902 o98 = {};
7903 // 6101
7904 f974244559_523.returns.push(o98);
7905 // 6102
7906 o98.length = 1;
7907 // 6103
7908 o99 = {};
7909 // 6104
7910 o98["0"] = o99;
7911 // undefined
7912 o98 = null;
7913 // undefined
7914 o99 = null;
7915 // 6105
7916 o93.__html = void 0;
7917 // 6106
7918 o93.mountComponentIntoNode = void 0;
7919 // 6107
7920 o98 = {};
7921 // 6108
7922 o93.classList = o98;
7923 // undefined
7924 o93 = null;
7925 // 6110
7926 o98.add = f974244559_1110;
7927 // undefined
7928 o98 = null;
7929 // 6111
7930 f974244559_1110.returns.push(undefined);
7931 // 6113
7932 o93 = {};
7933 // 6114
7934 f974244559_480.returns.push(o93);
7935 // 6115
7936 // 6116
7937 o93.firstChild = null;
7938 // 6119
7939 o98 = {};
7940 // 6120
7941 f974244559_478.returns.push(o98);
7942 // 6122
7943 o93.appendChild = f974244559_482;
7944 // 6123
7945 f974244559_482.returns.push(o98);
7946 // undefined
7947 o98 = null;
7948 // 6125
7949 o98 = {};
7950 // 6126
7951 f974244559_480.returns.push(o98);
7952 // 6127
7953 // 6128
7954 o98.firstChild = null;
7955 // 6129
7956 o93.__html = void 0;
7957 // 6131
7958 o99 = {};
7959 // 6132
7960 f974244559_478.returns.push(o99);
7961 // 6134
7962 o98.appendChild = f974244559_482;
7963 // 6135
7964 f974244559_482.returns.push(o99);
7965 // undefined
7966 o99 = null;
7967 // 6136
7968 o99 = {};
7969 // 6137
7970 o98.classList = o99;
7971 // 6139
7972 o99.add = f974244559_1110;
7973 // undefined
7974 o99 = null;
7975 // 6140
7976 f974244559_1110.returns.push(undefined);
7977 // 6141
7978 o99 = {};
7979 // 6142
7980 o93.style = o99;
7981 // undefined
7982 o93 = null;
7983 // 6143
7984 // undefined
7985 o99 = null;
7986 // 6147
7987 f974244559_1110.returns.push(undefined);
7988 // 6151
7989 f974244559_1110.returns.push(undefined);
7990 // 6152
7991 o98.__FB_TOKEN = void 0;
7992 // 6153
7993 // 6154
7994 o98.nodeName = "DIV";
7995 // 6155
7996 o98.getAttribute = f974244559_500;
7997 // 6156
7998 o98.hasAttribute = f974244559_527;
7999 // 6158
8000 f974244559_527.returns.push(false);
8001 // 6159
8002 o98.JSBNG__addEventListener = f974244559_472;
8003 // 6161
8004 f974244559_472.returns.push(undefined);
8005 // 6162
8006 o98.JSBNG__onclick = null;
8007 // 6167
8008 f974244559_472.returns.push(undefined);
8009 // 6168
8010 o98.JSBNG__onsubmit = null;
8011 // 6173
8012 f974244559_472.returns.push(undefined);
8013 // 6174
8014 o98.JSBNG__onsuccess = void 0;
8015 // 6179
8016 f974244559_472.returns.push(undefined);
8017 // 6180
8018 o98.JSBNG__onerror = null;
8019 // undefined
8020 o98 = null;
8021 // 6182
8022 f974244559_12.returns.push(15);
8023 // 6185
8024 o93 = {};
8025 // 6186
8026 f974244559_480.returns.push(o93);
8027 // 6187
8028 // 6188
8029 // 6189
8030 o93.getElementsByTagName = f974244559_514;
8031 // 6190
8032 o98 = {};
8033 // 6191
8034 f974244559_514.returns.push(o98);
8035 // 6192
8036 o98.length = 0;
8037 // undefined
8038 o98 = null;
8039 // 6194
8040 o98 = {};
8041 // 6195
8042 o93.childNodes = o98;
8043 // undefined
8044 o93 = null;
8045 // 6196
8046 o98.item = f974244559_517;
8047 // 6197
8048 o98.length = 1;
8049 // 6198
8050 o93 = {};
8051 // 6199
8052 o98["0"] = o93;
8053 // undefined
8054 o98 = null;
8055 // 6200
8056 o93.getElementsByTagName = f974244559_514;
8057 // 6202
8058 o93.querySelectorAll = f974244559_523;
8059 // 6203
8060 o98 = {};
8061 // 6204
8062 f974244559_523.returns.push(o98);
8063 // 6205
8064 o98.length = 0;
8065 // undefined
8066 o98 = null;
8067 // 6206
8068 o93.__html = void 0;
8069 // 6207
8070 o93.mountComponentIntoNode = void 0;
8071 // 6208
8072 o98 = {};
8073 // 6209
8074 o93.classList = o98;
8075 // undefined
8076 o93 = null;
8077 // 6211
8078 o98.add = f974244559_1110;
8079 // undefined
8080 o98 = null;
8081 // 6212
8082 f974244559_1110.returns.push(undefined);
8083 // 6214
8084 o93 = {};
8085 // 6215
8086 f974244559_480.returns.push(o93);
8087 // 6216
8088 // 6217
8089 o93.firstChild = null;
8090 // 6220
8091 o98 = {};
8092 // 6221
8093 f974244559_478.returns.push(o98);
8094 // 6223
8095 o93.appendChild = f974244559_482;
8096 // 6224
8097 f974244559_482.returns.push(o98);
8098 // undefined
8099 o98 = null;
8100 // 6226
8101 o98 = {};
8102 // 6227
8103 f974244559_480.returns.push(o98);
8104 // 6228
8105 // 6229
8106 o98.firstChild = null;
8107 // 6230
8108 o93.__html = void 0;
8109 // 6232
8110 o99 = {};
8111 // 6233
8112 f974244559_478.returns.push(o99);
8113 // 6235
8114 o98.appendChild = f974244559_482;
8115 // 6236
8116 f974244559_482.returns.push(o99);
8117 // undefined
8118 o99 = null;
8119 // 6237
8120 o99 = {};
8121 // 6238
8122 o98.classList = o99;
8123 // 6240
8124 o99.add = f974244559_1110;
8125 // undefined
8126 o99 = null;
8127 // 6241
8128 f974244559_1110.returns.push(undefined);
8129 // 6242
8130 o99 = {};
8131 // 6243
8132 o93.style = o99;
8133 // undefined
8134 o93 = null;
8135 // 6244
8136 // undefined
8137 o99 = null;
8138 // 6248
8139 f974244559_1110.returns.push(undefined);
8140 // 6249
8141 o98.__FB_TOKEN = void 0;
8142 // 6250
8143 // undefined
8144 o98 = null;
8145 // 6253
8146 o93 = {};
8147 // 6254
8148 f974244559_480.returns.push(o93);
8149 // 6255
8150 // 6256
8151 // 6257
8152 o93.getElementsByTagName = f974244559_514;
8153 // 6258
8154 o98 = {};
8155 // 6259
8156 f974244559_514.returns.push(o98);
8157 // 6260
8158 o98.length = 0;
8159 // undefined
8160 o98 = null;
8161 // 6262
8162 o98 = {};
8163 // 6263
8164 o93.childNodes = o98;
8165 // undefined
8166 o93 = null;
8167 // 6264
8168 o98.item = f974244559_517;
8169 // 6265
8170 o98.length = 1;
8171 // 6266
8172 o93 = {};
8173 // 6267
8174 o98["0"] = o93;
8175 // undefined
8176 o98 = null;
8177 // 6268
8178 o93.getElementsByTagName = f974244559_514;
8179 // 6270
8180 o93.querySelectorAll = f974244559_523;
8181 // 6271
8182 o98 = {};
8183 // 6272
8184 f974244559_523.returns.push(o98);
8185 // 6273
8186 o98.length = 1;
8187 // 6274
8188 o99 = {};
8189 // 6275
8190 o98["0"] = o99;
8191 // undefined
8192 o98 = null;
8193 // undefined
8194 o99 = null;
8195 // 6276
8196 o93.__html = void 0;
8197 // 6277
8198 o93.mountComponentIntoNode = void 0;
8199 // 6278
8200 o98 = {};
8201 // 6279
8202 o93.classList = o98;
8203 // undefined
8204 o93 = null;
8205 // 6281
8206 o98.add = f974244559_1110;
8207 // undefined
8208 o98 = null;
8209 // 6282
8210 f974244559_1110.returns.push(undefined);
8211 // 6284
8212 o93 = {};
8213 // 6285
8214 f974244559_480.returns.push(o93);
8215 // 6286
8216 // 6287
8217 o93.firstChild = null;
8218 // 6290
8219 o98 = {};
8220 // 6291
8221 f974244559_478.returns.push(o98);
8222 // 6293
8223 o93.appendChild = f974244559_482;
8224 // 6294
8225 f974244559_482.returns.push(o98);
8226 // undefined
8227 o98 = null;
8228 // 6296
8229 o98 = {};
8230 // 6297
8231 f974244559_480.returns.push(o98);
8232 // 6298
8233 // 6299
8234 o98.firstChild = null;
8235 // 6300
8236 o93.__html = void 0;
8237 // 6302
8238 o99 = {};
8239 // 6303
8240 f974244559_478.returns.push(o99);
8241 // 6305
8242 o98.appendChild = f974244559_482;
8243 // 6306
8244 f974244559_482.returns.push(o99);
8245 // undefined
8246 o99 = null;
8247 // 6307
8248 o99 = {};
8249 // 6308
8250 o98.classList = o99;
8251 // 6310
8252 o99.add = f974244559_1110;
8253 // undefined
8254 o99 = null;
8255 // 6311
8256 f974244559_1110.returns.push(undefined);
8257 // 6312
8258 o99 = {};
8259 // 6313
8260 o93.style = o99;
8261 // undefined
8262 o93 = null;
8263 // 6314
8264 // undefined
8265 o99 = null;
8266 // 6318
8267 f974244559_1110.returns.push(undefined);
8268 // 6319
8269 o98.__FB_TOKEN = void 0;
8270 // 6320
8271 // undefined
8272 o98 = null;
8273 // 6323
8274 o93 = {};
8275 // 6324
8276 f974244559_480.returns.push(o93);
8277 // 6325
8278 // 6326
8279 // 6327
8280 o93.getElementsByTagName = f974244559_514;
8281 // 6328
8282 o98 = {};
8283 // 6329
8284 f974244559_514.returns.push(o98);
8285 // 6330
8286 o98.length = 0;
8287 // undefined
8288 o98 = null;
8289 // 6332
8290 o98 = {};
8291 // 6333
8292 o93.childNodes = o98;
8293 // undefined
8294 o93 = null;
8295 // 6334
8296 o98.item = f974244559_517;
8297 // 6335
8298 o98.length = 1;
8299 // 6336
8300 o93 = {};
8301 // 6337
8302 o98["0"] = o93;
8303 // undefined
8304 o98 = null;
8305 // 6338
8306 o93.getElementsByTagName = f974244559_514;
8307 // 6340
8308 o93.querySelectorAll = f974244559_523;
8309 // 6341
8310 o98 = {};
8311 // 6342
8312 f974244559_523.returns.push(o98);
8313 // 6343
8314 o98.length = 1;
8315 // 6344
8316 o99 = {};
8317 // 6345
8318 o98["0"] = o99;
8319 // undefined
8320 o98 = null;
8321 // undefined
8322 o99 = null;
8323 // 6346
8324 o93.__html = void 0;
8325 // 6347
8326 o93.mountComponentIntoNode = void 0;
8327 // 6348
8328 o98 = {};
8329 // 6349
8330 o93.classList = o98;
8331 // undefined
8332 o93 = null;
8333 // 6351
8334 o98.add = f974244559_1110;
8335 // undefined
8336 o98 = null;
8337 // 6352
8338 f974244559_1110.returns.push(undefined);
8339 // 6354
8340 o93 = {};
8341 // 6355
8342 f974244559_480.returns.push(o93);
8343 // 6356
8344 // 6357
8345 o93.firstChild = null;
8346 // 6360
8347 o98 = {};
8348 // 6361
8349 f974244559_478.returns.push(o98);
8350 // 6363
8351 o93.appendChild = f974244559_482;
8352 // 6364
8353 f974244559_482.returns.push(o98);
8354 // undefined
8355 o98 = null;
8356 // 6366
8357 o98 = {};
8358 // 6367
8359 f974244559_480.returns.push(o98);
8360 // 6368
8361 // 6369
8362 o98.firstChild = null;
8363 // 6370
8364 o93.__html = void 0;
8365 // 6372
8366 o99 = {};
8367 // 6373
8368 f974244559_478.returns.push(o99);
8369 // 6375
8370 o98.appendChild = f974244559_482;
8371 // 6376
8372 f974244559_482.returns.push(o99);
8373 // undefined
8374 o99 = null;
8375 // 6377
8376 o99 = {};
8377 // 6378
8378 o98.classList = o99;
8379 // 6380
8380 o99.add = f974244559_1110;
8381 // undefined
8382 o99 = null;
8383 // 6381
8384 f974244559_1110.returns.push(undefined);
8385 // 6382
8386 o99 = {};
8387 // 6383
8388 o93.style = o99;
8389 // undefined
8390 o93 = null;
8391 // 6384
8392 // undefined
8393 o99 = null;
8394 // 6388
8395 f974244559_1110.returns.push(undefined);
8396 // 6389
8397 o98.__FB_TOKEN = void 0;
8398 // 6390
8399 // undefined
8400 o98 = null;
8401 // 6396
8402 o42.querySelectorAll = f974244559_523;
8403 // 6397
8404 o93 = {};
8405 // 6398
8406 f974244559_523.returns.push(o93);
8407 // 6399
8408 o93.length = 0;
8409 // undefined
8410 o93 = null;
8411 // 6400
8412 o42.__html = void 0;
8413 // 6401
8414 o42.mountComponentIntoNode = void 0;
8415 // 6402
8416 o93 = {};
8417 // 6403
8418 o42.classList = o93;
8419 // undefined
8420 o42 = null;
8421 // 6405
8422 o93.add = f974244559_1110;
8423 // undefined
8424 o93 = null;
8425 // 6406
8426 f974244559_1110.returns.push(undefined);
8427 // 6408
8428 o42 = {};
8429 // 6409
8430 f974244559_480.returns.push(o42);
8431 // 6410
8432 // 6411
8433 o42.firstChild = null;
8434 // 6414
8435 o93 = {};
8436 // 6415
8437 f974244559_478.returns.push(o93);
8438 // 6417
8439 o42.appendChild = f974244559_482;
8440 // 6418
8441 f974244559_482.returns.push(o93);
8442 // undefined
8443 o93 = null;
8444 // 6420
8445 o93 = {};
8446 // 6421
8447 f974244559_480.returns.push(o93);
8448 // 6422
8449 // 6423
8450 o93.firstChild = null;
8451 // 6424
8452 o42.__html = void 0;
8453 // 6426
8454 o98 = {};
8455 // 6427
8456 f974244559_478.returns.push(o98);
8457 // 6429
8458 o93.appendChild = f974244559_482;
8459 // 6430
8460 f974244559_482.returns.push(o98);
8461 // undefined
8462 o98 = null;
8463 // 6431
8464 o98 = {};
8465 // 6432
8466 o93.classList = o98;
8467 // 6434
8468 o98.add = f974244559_1110;
8469 // undefined
8470 o98 = null;
8471 // 6435
8472 f974244559_1110.returns.push(undefined);
8473 // 6436
8474 o98 = {};
8475 // 6437
8476 o42.style = o98;
8477 // undefined
8478 o42 = null;
8479 // 6438
8480 // undefined
8481 o98 = null;
8482 // 6442
8483 f974244559_1110.returns.push(undefined);
8484 // 6443
8485 o93.__FB_TOKEN = void 0;
8486 // 6444
8487 // undefined
8488 o93 = null;
8489 // 6452
8490 f974244559_472.returns.push(undefined);
8491 // 6453
8492 f974244559_1202 = function() { return f974244559_1202.returns[f974244559_1202.inst++]; };
8493 f974244559_1202.returns = [];
8494 f974244559_1202.inst = 0;
8495 // 6454
8496 o8.JSBNG__onmouseover = f974244559_1202;
8497 // 6457
8498 // 6467
8499 f974244559_472.returns.push(undefined);
8500 // 6468
8501 o94.JSBNG__onmouseover = null;
8502 // undefined
8503 o94 = null;
8504 // 6477
8505 f974244559_472.returns.push(undefined);
8506 // 6478
8507 o95.JSBNG__onmouseover = null;
8508 // undefined
8509 o95 = null;
8510 // 6486
8511 f974244559_472.returns.push(undefined);
8512 // 6487
8513 o96.JSBNG__onmouseover = null;
8514 // undefined
8515 o96 = null;
8516 // 6495
8517 f974244559_472.returns.push(undefined);
8518 // 6496
8519 o97.JSBNG__onmouseover = null;
8520 // undefined
8521 o97 = null;
8522 // 6501
8523 o42 = {};
8524 // 6502
8525 o93 = {};
8526 // 6504
8527 o42.length = 1;
8528 // 6505
8529 o42["0"] = "AsDOA";
8530 // 6523
8531 o94 = {};
8532 // 6526
8533 o94.srcElement = o64;
8534 // 6528
8535 o94.target = o64;
8536 // 6535
8537 f974244559_519.returns.push(null);
8538 // 6541
8539 f974244559_519.returns.push(null);
8540 // 6547
8541 f974244559_519.returns.push(null);
8542 // 6553
8543 f974244559_519.returns.push(null);
8544 // 6559
8545 f974244559_519.returns.push(null);
8546 // 6565
8547 f974244559_519.returns.push(null);
8548 // 6571
8549 f974244559_519.returns.push(null);
8550 // 6577
8551 f974244559_519.returns.push(null);
8552 // 6583
8553 f974244559_519.returns.push(null);
8554 // 6589
8555 f974244559_519.returns.push(null);
8556 // 6595
8557 f974244559_519.returns.push(null);
8558 // 6601
8559 f974244559_519.returns.push(null);
8560 // 6607
8561 f974244559_519.returns.push(null);
8562 // 6613
8563 f974244559_519.returns.push(null);
8564 // 6619
8565 f974244559_519.returns.push(null);
8566 // 6625
8567 f974244559_519.returns.push(null);
8568 // 6631
8569 f974244559_519.returns.push(null);
8570 // 6636
8571 o94.relatedTarget = o69;
8572 // 6641
8573 f974244559_519.returns.push(null);
8574 // 6647
8575 f974244559_519.returns.push(null);
8576 // 6653
8577 f974244559_519.returns.push(null);
8578 // 6659
8579 f974244559_519.returns.push(null);
8580 // 6665
8581 f974244559_519.returns.push(null);
8582 // 6671
8583 f974244559_519.returns.push(null);
8584 // 6677
8585 f974244559_519.returns.push(null);
8586 // 6683
8587 f974244559_519.returns.push(null);
8588 // 6689
8589 f974244559_519.returns.push(null);
8590 // 6695
8591 f974244559_519.returns.push(null);
8592 // 6701
8593 f974244559_519.returns.push(null);
8594 // 6707
8595 f974244559_519.returns.push(null);
8596 // 6712
8597 o94.cancelBubble = false;
8598 // 6713
8599 o94.returnValue = true;
8600 // undefined
8601 o94 = null;
8602 // 6714
8603 o94 = {};
8604 // 6717
8605 o94.cancelBubble = false;
8606 // 6719
8607 f974244559_1202.returns.push(undefined);
8608 // 6721
8609 o94.returnValue = true;
8610 // 6724
8611 o94.srcElement = o69;
8612 // 6726
8613 o94.target = o69;
8614 // 6733
8615 f974244559_519.returns.push(null);
8616 // 6739
8617 f974244559_519.returns.push(null);
8618 // 6745
8619 f974244559_519.returns.push(null);
8620 // 6751
8621 f974244559_519.returns.push(null);
8622 // 6757
8623 f974244559_519.returns.push(null);
8624 // 6763
8625 f974244559_519.returns.push(null);
8626 // 6769
8627 f974244559_519.returns.push(null);
8628 // 6775
8629 f974244559_519.returns.push(null);
8630 // 6781
8631 f974244559_519.returns.push(null);
8632 // 6787
8633 f974244559_519.returns.push(null);
8634 // 6793
8635 f974244559_519.returns.push(null);
8636 // 6799
8637 f974244559_519.returns.push(null);
8638 // 6804
8639 o94.relatedTarget = o64;
8640 // undefined
8641 o94 = null;
8642 // 6807
8643 o94 = {};
8644 // 6810
8645 o94.srcElement = o69;
8646 // 6812
8647 o94.target = o69;
8648 // 6819
8649 f974244559_519.returns.push(null);
8650 // 6825
8651 f974244559_519.returns.push(null);
8652 // 6831
8653 f974244559_519.returns.push(null);
8654 // 6837
8655 f974244559_519.returns.push(null);
8656 // 6843
8657 f974244559_519.returns.push(null);
8658 // 6849
8659 f974244559_519.returns.push(null);
8660 // 6855
8661 f974244559_519.returns.push(null);
8662 // 6861
8663 f974244559_519.returns.push(null);
8664 // 6867
8665 f974244559_519.returns.push(null);
8666 // 6873
8667 f974244559_519.returns.push(null);
8668 // 6879
8669 f974244559_519.returns.push(null);
8670 // 6885
8671 f974244559_519.returns.push(null);
8672 // 6890
8673 o94.JSBNG__screenX = 723;
8674 // 6891
8675 o94.JSBNG__screenY = 341;
8676 // 6892
8677 o94.altKey = false;
8678 // 6893
8679 o94.bubbles = true;
8680 // 6894
8681 o94.button = 0;
8682 // 6895
8683 o94.buttons = void 0;
8684 // 6896
8685 o94.cancelable = false;
8686 // 6897
8687 o94.clientX = 706;
8688 // 6898
8689 o94.clientY = 237;
8690 // 6899
8691 o94.ctrlKey = false;
8692 // 6900
8693 o94.currentTarget = o0;
8694 // 6901
8695 o94.defaultPrevented = false;
8696 // 6902
8697 o94.detail = 0;
8698 // 6903
8699 o94.eventPhase = 3;
8700 // 6904
8701 o94.isTrusted = void 0;
8702 // 6905
8703 o94.metaKey = false;
8704 // 6906
8705 o94.pageX = 706;
8706 // 6907
8707 o94.pageY = 396;
8708 // 6908
8709 o94.relatedTarget = null;
8710 // 6909
8711 o94.fromElement = null;
8712 // 6912
8713 o94.shiftKey = false;
8714 // 6915
8715 o94.timeStamp = 1373491289457;
8716 // 6916
8717 o94.type = "mousemove";
8718 // 6917
8719 o94.view = ow974244559;
8720 // 6919
8721 o94.returnValue = true;
8722 // 6920
8723 o94.cancelBubble = false;
8724 // undefined
8725 o94 = null;
8726 // 6922
8727 o94 = {};
8728 // undefined
8729 o94 = null;
8730 // 6923
8731 // 6924
8732 // 6927
8733 f974244559_471.returns.push(1373491289469);
8734 // 6930
8735 f974244559_471.returns.push(1373491289469);
8736 // 6932
8737 o94 = {};
8738 // 6933
8739 f974244559_502.returns.push(o94);
8740 // 6935
8741 o95 = {};
8742 // 6936
8743 f974244559_502.returns.push(o95);
8744 // 6937
8745 o96 = {};
8746 // 6938
8747 o95.firstChild = o96;
8748 // 6940
8749 o96.nodeType = 8;
8750 // 6942
8751 o96.nodeValue = " <div class=\"fbChatSidebar fixed_always hidden_elem\" id=\"u_0_22\"><div class=\"fbChatSidebarBody\"><div class=\"uiScrollableArea scrollableOrderedList fade\" style=\"width:205px;\" id=\"u_0_23\"><div class=\"uiScrollableAreaWrap scrollable\" aria-label=\"Scrollable region\" tabindex=\"0\"><div class=\"uiScrollableAreaBody\" style=\"width:205px;\"><div class=\"uiScrollableAreaContent\"><div id=\"u_0_29\"><ul class=\"fbChatOrderedList clearfix\"><li><div class=\"phs fcg\"><span data-jsid=\"message\">Loading...</span></div></li></ul></div></div></div></div><div class=\"uiScrollableAreaTrack invisible_elem\"><div class=\"uiScrollableAreaGripper\"></div></div></div><div class=\"fbChatTypeaheadView hidden_elem\" id=\"u_0_21\"></div></div><div class=\"fbChatSidebarMessage clearfix\"><img class=\"img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\" alt=\"\" width=\"1\" height=\"1\" /><div class=\"message fcg\"></div></div><table class=\"uiGrid _4oes\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td><div class=\"uiTypeahead uiClearableTypeahead fbChatTypeahead\" id=\"u_0_24\"><div class=\"wrap\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e3824a9f0927c9599de0727896477430b9d24dc00(event) {\\u000a\\u000a};\"), (\"sbeefa1ae3d68fe41ebf216859a81b85c7525462c\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e3824a9f0927c9599de0727896477430b9d24dc00(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sbeefa1ae3d68fe41ebf216859a81b85c7525462c_0\"), (sbeefa1ae3d68fe41ebf216859a81b85c7525462c_0_instance), (this), (arguments)))\n        };\n        (null);\n    ;\n    };\n    var sbeefa1ae3d68fe41ebf216859a81b85c7525462c_0_instance;\n    ((sbeefa1ae3d68fe41ebf216859a81b85c7525462c_0_instance) = ((JSBNG_Record.eventInstance)((\"sbeefa1ae3d68fe41ebf216859a81b85c7525462c_0\"))));\n    ((JSBNG_Record.markFunction)((e3824a9f0927c9599de0727896477430b9d24dc00)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><button class=\"_42ft _50zy clear uiTypeaheadCloseButton _50-0 _50z-\" title=\"Remove\" onclick=\"return e3824a9f0927c9599de0727896477430b9d24dc00.call(this, event);\" type=\"button\" id=\"u_0_25\">Remove</button><input type=\"hidden\" autocomplete=\"off\" class=\"hiddenInput\" /><div class=\"innerWrap\"><input type=\"text\" class=\"inputtext inputsearch textInput DOMControl_placeholder\" autocomplete=\"off\" placeholder=\"Search\" aria-autocomplete=\"list\" aria-expanded=\"false\" aria-owns=\"typeahead_list_u_0_24\" role=\"combobox\" spellcheck=\"false\" value=\"Search\" aria-label=\"Search\" id=\"u_0_26\" /></div><img class=\"throbber uiLoadingIndicatorAsync img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div></div></td><td><div><div class=\"uiSelector inlineBlock fbChatSidebarDropdown button uiSelectorBottomUp uiSelectorRight\" id=\"u_0_27\" data-multiple=\"1\"><div class=\"uiToggle wrap\"><a data-hover=\"tooltip\" aria-label=\"Options\" class=\"uiSelectorButton uiCloseButton\" href=\"#\" role=\"button\" aria-haspopup=\"1\" rel=\"toggle\"></a><div class=\"uiSelectorMenuWrapper uiToggleFlyout\"><div role=\"menu\" class=\"uiMenu uiSelectorMenu\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption checked\" data-label=\"Chat Sounds\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"0\" href=\"#\" aria-checked=\"true\"><span class=\"itemLabel fsm\">Chat Sounds</span></a></li><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption\" data-label=\"Advanced Settings...\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"/ajax/chat/privacy/settings_dialog.php\" aria-checked=\"false\" rel=\"dialog\"><span class=\"itemLabel fsm\">Advanced Settings...</span></a></li><li class=\"uiMenuSeparator\"></li><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption fbChatGoOnlineItem\" data-label=\"Turn On Chat\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\"><span class=\"itemLabel fsm\">Turn On Chat</span></a></li><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption fbChatGoOfflineItem\" data-label=\"Turn Off Chat\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\"><span class=\"itemLabel fsm\">Turn Off Chat</span></a></li></ul></div></div></div><select multiple=\"1\"><option value=\"\" disabled=\"1\"></option><option value=\"sound\" selected=\"1\">Chat Sounds</option><option value=\"advanced_settings\">Advanced Settings...</option><option value=\"online\">Turn On Chat</option><option value=\"offline\">Turn Off Chat</option></select></div></div></td><td><div></div></td><td><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e2ac4d7d24444ff5918e0077a14f810304f88b623(event) {\\u000a    Chat.toggleSidebar();\\u000a};\"), (\"sf3eb0c08669dec0098a79e26677a137ad0d416ba\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e2ac4d7d24444ff5918e0077a14f810304f88b623(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sf3eb0c08669dec0098a79e26677a137ad0d416ba_0\"), (sf3eb0c08669dec0098a79e26677a137ad0d416ba_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((JSBNG_Record.get)(Chat, (\"toggleSidebar\")))[(\"toggleSidebar\")])();\n    };\n    var sf3eb0c08669dec0098a79e26677a137ad0d416ba_0_instance;\n    ((sf3eb0c08669dec0098a79e26677a137ad0d416ba_0_instance) = ((JSBNG_Record.eventInstance)((\"sf3eb0c08669dec0098a79e26677a137ad0d416ba_0\"))));\n    ((JSBNG_Record.markFunction)((e2ac4d7d24444ff5918e0077a14f810304f88b623)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a data-hover=\"tooltip\" aria-label=\"Hide sidebar\" data-tooltip-alignh=\"right\" class=\"toggle button\" href=\"#\" onclick=\"return e2ac4d7d24444ff5918e0077a14f810304f88b623.call(this, event);\" role=\"button\"></a></td></tr></tbody></table></div> ";
8752 // undefined
8753 o96 = null;
8754 // 6943
8755 o95.parentNode = o25;
8756 // 6945
8757 f974244559_507.returns.push(o95);
8758 // undefined
8759 o95 = null;
8760 // 6946
8761 // 6947
8762 o94.getAttribute = f974244559_500;
8763 // 6948
8764 f974244559_500.returns.push("pagelet_sidebar");
8765 // 6977
8766 o95 = {};
8767 // 6978
8768 f974244559_480.returns.push(o95);
8769 // 6979
8770 // 6980
8771 // 6981
8772 o95.getElementsByTagName = f974244559_514;
8773 // 6982
8774 o96 = {};
8775 // 6983
8776 f974244559_514.returns.push(o96);
8777 // 6984
8778 o96.length = 0;
8779 // undefined
8780 o96 = null;
8781 // 6986
8782 o96 = {};
8783 // 6987
8784 o95.childNodes = o96;
8785 // undefined
8786 o95 = null;
8787 // 6988
8788 o96.item = f974244559_517;
8789 // 6989
8790 o96.length = 1;
8791 // 6990
8792 o95 = {};
8793 // 6991
8794 o96["0"] = o95;
8795 // undefined
8796 o96 = null;
8797 // 6992
8798 o95.getAttributeNode = f974244559_519;
8799 // undefined
8800 o95 = null;
8801 // 6994
8802 o95 = {};
8803 // 6995
8804 f974244559_519.returns.push(o95);
8805 // 6996
8806 o95.value = "u_0_2b";
8807 // undefined
8808 o95 = null;
8809 // 6999
8810 o95 = {};
8811 // 7000
8812 f974244559_480.returns.push(o95);
8813 // 7001
8814 // 7002
8815 // 7003
8816 o95.getElementsByTagName = f974244559_514;
8817 // 7004
8818 o96 = {};
8819 // 7005
8820 f974244559_514.returns.push(o96);
8821 // 7006
8822 o96.length = 0;
8823 // undefined
8824 o96 = null;
8825 // 7008
8826 o96 = {};
8827 // 7009
8828 o95.childNodes = o96;
8829 // undefined
8830 o95 = null;
8831 // 7010
8832 o96.item = f974244559_517;
8833 // 7011
8834 o96.length = 1;
8835 // 7012
8836 o95 = {};
8837 // 7013
8838 o96["0"] = o95;
8839 // undefined
8840 o96 = null;
8841 // 7014
8842 o95.getAttributeNode = f974244559_519;
8843 // undefined
8844 o95 = null;
8845 // 7016
8846 o95 = {};
8847 // 7017
8848 f974244559_519.returns.push(o95);
8849 // 7018
8850 o95.value = "u_0_2c";
8851 // undefined
8852 o95 = null;
8853 // 7021
8854 o95 = {};
8855 // 7022
8856 f974244559_480.returns.push(o95);
8857 // 7023
8858 // 7024
8859 // 7025
8860 o95.getElementsByTagName = f974244559_514;
8861 // 7026
8862 o96 = {};
8863 // 7027
8864 f974244559_514.returns.push(o96);
8865 // 7028
8866 o96.length = 0;
8867 // undefined
8868 o96 = null;
8869 // 7030
8870 o96 = {};
8871 // 7031
8872 o95.childNodes = o96;
8873 // undefined
8874 o95 = null;
8875 // 7032
8876 o96.item = f974244559_517;
8877 // 7033
8878 o96.length = 1;
8879 // 7034
8880 o95 = {};
8881 // 7035
8882 o96["0"] = o95;
8883 // undefined
8884 o96 = null;
8885 // 7036
8886 o95.getAttributeNode = f974244559_519;
8887 // undefined
8888 o95 = null;
8889 // 7038
8890 o95 = {};
8891 // 7039
8892 f974244559_519.returns.push(o95);
8893 // 7040
8894 o95.value = "u_0_2d";
8895 // undefined
8896 o95 = null;
8897 // 7059
8898 o95 = {};
8899 // 7060
8900 f974244559_502.returns.push(o95);
8901 // 7061
8902 o95.getElementsByTagName = f974244559_514;
8903 // 7063
8904 o95.querySelectorAll = f974244559_523;
8905 // 7064
8906 o96 = {};
8907 // 7065
8908 f974244559_523.returns.push(o96);
8909 // 7066
8910 o96.length = 1;
8911 // 7067
8912 o97 = {};
8913 // 7068
8914 o96["0"] = o97;
8915 // undefined
8916 o96 = null;
8917 // 7069
8918 o97.getElementsByTagName = f974244559_514;
8919 // 7071
8920 o97.querySelectorAll = f974244559_523;
8921 // 7072
8922 o96 = {};
8923 // 7073
8924 f974244559_523.returns.push(o96);
8925 // 7074
8926 o96.length = 1;
8927 // 7075
8928 o98 = {};
8929 // 7076
8930 o96["0"] = o98;
8931 // undefined
8932 o96 = null;
8933 // 7077
8934 o98.getElementsByTagName = f974244559_514;
8935 // 7079
8936 o98.querySelectorAll = f974244559_523;
8937 // 7080
8938 o96 = {};
8939 // 7081
8940 f974244559_523.returns.push(o96);
8941 // 7082
8942 o96.length = 1;
8943 // 7083
8944 o99 = {};
8945 // 7084
8946 o96["0"] = o99;
8947 // undefined
8948 o96 = null;
8949 // 7088
8950 o96 = {};
8951 // 7089
8952 f974244559_523.returns.push(o96);
8953 // 7090
8954 o96.length = 1;
8955 // 7091
8956 o100 = {};
8957 // 7092
8958 o96["0"] = o100;
8959 // undefined
8960 o96 = null;
8961 // 7093
8962 o100.getElementsByTagName = f974244559_514;
8963 // 7095
8964 o100.querySelectorAll = f974244559_523;
8965 // 7096
8966 o96 = {};
8967 // 7097
8968 f974244559_523.returns.push(o96);
8969 // 7098
8970 o96.length = 1;
8971 // 7099
8972 o101 = {};
8973 // 7100
8974 o96["0"] = o101;
8975 // undefined
8976 o96 = null;
8977 // 7101
8978 f974244559_12.returns.push(16);
8979 // 7102
8980 o97.nodeName = "DIV";
8981 // 7103
8982 o97.__FB_TOKEN = void 0;
8983 // 7104
8984 // 7105
8985 o97.getAttribute = f974244559_500;
8986 // 7106
8987 o97.hasAttribute = f974244559_527;
8988 // 7108
8989 f974244559_527.returns.push(false);
8990 // 7109
8991 o97.JSBNG__addEventListener = f974244559_472;
8992 // 7111
8993 f974244559_472.returns.push(undefined);
8994 // 7112
8995 o97.JSBNG__onJSBNG__scroll = void 0;
8996 // 7114
8997 o95.nodeName = "DIV";
8998 // 7115
8999 o95.__FB_TOKEN = void 0;
9000 // 7116
9001 // 7117
9002 o95.getAttribute = f974244559_500;
9003 // 7118
9004 o95.hasAttribute = f974244559_527;
9005 // 7120
9006 f974244559_527.returns.push(false);
9007 // 7121
9008 o95.JSBNG__addEventListener = f974244559_472;
9009 // 7123
9010 f974244559_472.returns.push(undefined);
9011 // 7124
9012 o95.JSBNG__onmousemove = null;
9013 // 7126
9014 o100.nodeName = "DIV";
9015 // 7127
9016 o100.__FB_TOKEN = void 0;
9017 // 7128
9018 // 7129
9019 o100.getAttribute = f974244559_500;
9020 // 7130
9021 o100.hasAttribute = f974244559_527;
9022 // 7132
9023 f974244559_527.returns.push(false);
9024 // 7133
9025 o100.JSBNG__addEventListener = f974244559_472;
9026 // 7135
9027 f974244559_472.returns.push(undefined);
9028 // 7136
9029 o100.JSBNG__onclick = null;
9030 // 7141
9031 f974244559_472.returns.push(undefined);
9032 // 7142
9033 o95.JSBNG__onmouseover = null;
9034 // 7147
9035 f974244559_472.returns.push(undefined);
9036 // 7148
9037 o95.JSBNG__onmouseout = null;
9038 // 7153
9039 f974244559_472.returns.push(undefined);
9040 // 7154
9041 o95.JSBNG__onfocusin = void 0;
9042 // 7159
9043 f974244559_472.returns.push(undefined);
9044 // 7160
9045 o95.JSBNG__onfocusout = void 0;
9046 // 7165
9047 f974244559_472.returns.push(undefined);
9048 // 7166
9049 o95.JSBNG__onmousedown = null;
9050 // 7168
9051 o101.nodeName = "DIV";
9052 // 7169
9053 o101.__FB_TOKEN = void 0;
9054 // 7170
9055 // 7171
9056 o101.getAttribute = f974244559_500;
9057 // 7172
9058 o101.hasAttribute = f974244559_527;
9059 // 7174
9060 f974244559_527.returns.push(false);
9061 // 7175
9062 o101.JSBNG__addEventListener = f974244559_472;
9063 // 7177
9064 f974244559_472.returns.push(undefined);
9065 // 7178
9066 o101.JSBNG__onmousedown = null;
9067 // 7180
9068 o96 = {};
9069 // 7181
9070 o95.classList = o96;
9071 // 7183
9072 o96.add = f974244559_1110;
9073 // 7184
9074 f974244559_1110.returns.push(undefined);
9075 // 7194
9076 f974244559_471.returns.push(1373491289512);
9077 // 7195
9078 o102 = {};
9079 // 7197
9080 f974244559_1240 = function() { return f974244559_1240.returns[f974244559_1240.inst++]; };
9081 f974244559_1240.returns = [];
9082 f974244559_1240.inst = 0;
9083 // 7198
9084 o102._needsGripper = f974244559_1240;
9085 // 7199
9086 f974244559_1241 = function() { return f974244559_1241.returns[f974244559_1241.inst++]; };
9087 f974244559_1241.returns = [];
9088 f974244559_1241.inst = 0;
9089 // 7200
9090 o102._throttledComputeHeights = f974244559_1241;
9091 // 7202
9092 f974244559_471.returns.push(1373491289513);
9093 // 7203
9094 o86.clientHeight = 0;
9095 // 7204
9096 o90.offsetHeight = 0;
9097 // 7205
9098 o91.offsetHeight = 0;
9099 // 7206
9100 f974244559_12.returns.push(17);
9101 // 7207
9102 f974244559_1241.returns.push(undefined);
9103 // 7208
9104 o102._gripperHeight = NaN;
9105 // 7209
9106 o102._trackHeight = 0;
9107 // 7210
9108 f974244559_1240.returns.push(false);
9109 // 7211
9110 f974244559_1242 = function() { return f974244559_1242.returns[f974244559_1242.inst++]; };
9111 f974244559_1242.returns = [];
9112 f974244559_1242.inst = 0;
9113 // 7212
9114 o102._throttledShowGripperAndShadows = f974244559_1242;
9115 // 7214
9116 f974244559_471.returns.push(1373491289526);
9117 // 7216
9118 f974244559_471.returns.push(1373491289526);
9119 // 7217
9120 o103 = {};
9121 // 7218
9122 o92.classList = o103;
9123 // 7220
9124 o103.add = f974244559_1110;
9125 // undefined
9126 o103 = null;
9127 // 7221
9128 f974244559_1110.returns.push(undefined);
9129 // 7222
9130 o88.scrollTop = 0;
9131 // 7225
9132 f974244559_1244 = function() { return f974244559_1244.returns[f974244559_1244.inst++]; };
9133 f974244559_1244.returns = [];
9134 f974244559_1244.inst = 0;
9135 // 7226
9136 o87.remove = f974244559_1244;
9137 // undefined
9138 o87 = null;
9139 // 7227
9140 f974244559_1244.returns.push(undefined);
9141 // 7232
9142 f974244559_1244.returns.push(undefined);
9143 // 7233
9144 f974244559_12.returns.push(18);
9145 // 7234
9146 f974244559_1242.returns.push(undefined);
9147 // 7235
9148 o87 = {};
9149 // 7238
9150 o87.srcElement = o69;
9151 // 7240
9152 o87.target = o69;
9153 // 7247
9154 f974244559_519.returns.push(null);
9155 // 7253
9156 f974244559_519.returns.push(null);
9157 // 7259
9158 f974244559_519.returns.push(null);
9159 // 7265
9160 f974244559_519.returns.push(null);
9161 // 7271
9162 f974244559_519.returns.push(null);
9163 // 7277
9164 f974244559_519.returns.push(null);
9165 // 7283
9166 f974244559_519.returns.push(null);
9167 // 7289
9168 f974244559_519.returns.push(null);
9169 // 7295
9170 f974244559_519.returns.push(null);
9171 // 7301
9172 f974244559_519.returns.push(null);
9173 // 7307
9174 f974244559_519.returns.push(null);
9175 // 7313
9176 f974244559_519.returns.push(null);
9177 // 7318
9178 o103 = {};
9179 // 7319
9180 o87.relatedTarget = o103;
9181 // 7320
9182 o104 = {};
9183 // 7321
9184 o103.parentNode = o104;
9185 // 7322
9186 o103.nodeType = 1;
9187 // 7323
9188 o103.getAttributeNode = f974244559_519;
9189 // 7325
9190 f974244559_519.returns.push(null);
9191 // 7327
9192 o105 = {};
9193 // 7328
9194 o104.parentNode = o105;
9195 // 7329
9196 o104.nodeType = 1;
9197 // 7330
9198 o104.getAttributeNode = f974244559_519;
9199 // undefined
9200 o104 = null;
9201 // 7332
9202 f974244559_519.returns.push(null);
9203 // 7334
9204 o104 = {};
9205 // 7335
9206 o105.parentNode = o104;
9207 // 7336
9208 o105.nodeType = 1;
9209 // 7337
9210 o105.getAttributeNode = f974244559_519;
9211 // undefined
9212 o105 = null;
9213 // 7339
9214 f974244559_519.returns.push(null);
9215 // 7341
9216 o104.parentNode = o39;
9217 // 7342
9218 o104.nodeType = 1;
9219 // 7343
9220 o104.getAttributeNode = f974244559_519;
9221 // 7345
9222 f974244559_519.returns.push(null);
9223 // 7347
9224 o39.parentNode = o69;
9225 // 7348
9226 o39.nodeType = 1;
9227 // 7349
9228 o39.getAttributeNode = f974244559_519;
9229 // undefined
9230 o39 = null;
9231 // 7351
9232 f974244559_519.returns.push(null);
9233 // 7357
9234 f974244559_519.returns.push(null);
9235 // 7363
9236 f974244559_519.returns.push(null);
9237 // 7369
9238 f974244559_519.returns.push(null);
9239 // 7375
9240 f974244559_519.returns.push(null);
9241 // 7381
9242 f974244559_519.returns.push(null);
9243 // 7387
9244 f974244559_519.returns.push(null);
9245 // 7393
9246 f974244559_519.returns.push(null);
9247 // 7399
9248 f974244559_519.returns.push(null);
9249 // 7405
9250 f974244559_519.returns.push(null);
9251 // 7411
9252 f974244559_519.returns.push(null);
9253 // 7417
9254 f974244559_519.returns.push(null);
9255 // 7423
9256 f974244559_519.returns.push(null);
9257 // 7428
9258 o87.cancelBubble = false;
9259 // 7429
9260 o87.returnValue = true;
9261 // undefined
9262 o87 = null;
9263 // 7430
9264 o39 = {};
9265 // 7433
9266 o39.cancelBubble = false;
9267 // 7435
9268 f974244559_1202.returns.push(undefined);
9269 // 7437
9270 o39.returnValue = true;
9271 // 7440
9272 o39.srcElement = o103;
9273 // 7442
9274 o39.target = o103;
9275 // 7449
9276 f974244559_519.returns.push(null);
9277 // 7455
9278 f974244559_519.returns.push(null);
9279 // 7461
9280 f974244559_519.returns.push(null);
9281 // 7467
9282 f974244559_519.returns.push(null);
9283 // 7473
9284 f974244559_519.returns.push(null);
9285 // 7479
9286 f974244559_519.returns.push(null);
9287 // 7485
9288 f974244559_519.returns.push(null);
9289 // 7491
9290 f974244559_519.returns.push(null);
9291 // 7497
9292 f974244559_519.returns.push(null);
9293 // 7503
9294 f974244559_519.returns.push(null);
9295 // 7509
9296 f974244559_519.returns.push(null);
9297 // 7515
9298 f974244559_519.returns.push(null);
9299 // 7521
9300 f974244559_519.returns.push(null);
9301 // 7527
9302 f974244559_519.returns.push(null);
9303 // 7533
9304 f974244559_519.returns.push(null);
9305 // 7539
9306 f974244559_519.returns.push(null);
9307 // 7545
9308 f974244559_519.returns.push(null);
9309 // 7550
9310 o39.relatedTarget = o69;
9311 // undefined
9312 o39 = null;
9313 // 7553
9314 o39 = {};
9315 // 7556
9316 o39.srcElement = o103;
9317 // 7558
9318 o39.target = o103;
9319 // 7565
9320 f974244559_519.returns.push(null);
9321 // 7571
9322 f974244559_519.returns.push(null);
9323 // 7577
9324 f974244559_519.returns.push(null);
9325 // 7583
9326 f974244559_519.returns.push(null);
9327 // 7589
9328 f974244559_519.returns.push(null);
9329 // 7595
9330 f974244559_519.returns.push(null);
9331 // 7601
9332 f974244559_519.returns.push(null);
9333 // 7607
9334 f974244559_519.returns.push(null);
9335 // 7613
9336 f974244559_519.returns.push(null);
9337 // 7619
9338 f974244559_519.returns.push(null);
9339 // 7625
9340 f974244559_519.returns.push(null);
9341 // 7631
9342 f974244559_519.returns.push(null);
9343 // 7637
9344 f974244559_519.returns.push(null);
9345 // 7643
9346 f974244559_519.returns.push(null);
9347 // 7649
9348 f974244559_519.returns.push(null);
9349 // 7655
9350 f974244559_519.returns.push(null);
9351 // 7661
9352 f974244559_519.returns.push(null);
9353 // 7666
9354 o39.JSBNG__screenX = 681;
9355 // 7667
9356 o39.JSBNG__screenY = 358;
9357 // 7668
9358 o39.altKey = false;
9359 // 7669
9360 o39.bubbles = true;
9361 // 7670
9362 o39.button = 0;
9363 // 7671
9364 o39.buttons = void 0;
9365 // 7672
9366 o39.cancelable = false;
9367 // 7673
9368 o39.clientX = 664;
9369 // 7674
9370 o39.clientY = 254;
9371 // 7675
9372 o39.ctrlKey = false;
9373 // 7676
9374 o39.currentTarget = o0;
9375 // 7677
9376 o39.defaultPrevented = false;
9377 // 7678
9378 o39.detail = 0;
9379 // 7679
9380 o39.eventPhase = 3;
9381 // 7680
9382 o39.isTrusted = void 0;
9383 // 7681
9384 o39.metaKey = false;
9385 // 7682
9386 o39.pageX = 664;
9387 // 7683
9388 o39.pageY = 413;
9389 // 7684
9390 o39.relatedTarget = null;
9391 // 7685
9392 o39.fromElement = null;
9393 // 7688
9394 o39.shiftKey = false;
9395 // 7691
9396 o39.timeStamp = 1373491289568;
9397 // 7692
9398 o39.type = "mousemove";
9399 // 7693
9400 o39.view = ow974244559;
9401 // 7695
9402 o39.returnValue = true;
9403 // 7696
9404 o39.cancelBubble = false;
9405 // undefined
9406 o39 = null;
9407 // 7698
9408 o39 = {};
9409 // 7700
9410 o39._needsGripper = f974244559_1240;
9411 // 7701
9412 f974244559_1253 = function() { return f974244559_1253.returns[f974244559_1253.inst++]; };
9413 f974244559_1253.returns = [];
9414 f974244559_1253.inst = 0;
9415 // 7702
9416 o39._throttledComputeHeights = f974244559_1253;
9417 // 7704
9418 f974244559_471.returns.push(1373491289591);
9419 // 7705
9420 o79.clientHeight = 0;
9421 // 7706
9422 o83.offsetHeight = 0;
9423 // 7707
9424 o84.offsetHeight = 0;
9425 // 7708
9426 f974244559_12.returns.push(19);
9427 // 7709
9428 f974244559_1253.returns.push(undefined);
9429 // 7710
9430 o39._gripperHeight = NaN;
9431 // 7711
9432 o39._trackHeight = 0;
9433 // 7712
9434 f974244559_1240.returns.push(false);
9435 // 7713
9436 f974244559_1254 = function() { return f974244559_1254.returns[f974244559_1254.inst++]; };
9437 f974244559_1254.returns = [];
9438 f974244559_1254.inst = 0;
9439 // 7714
9440 o39._throttledShowGripperAndShadows = f974244559_1254;
9441 // 7716
9442 f974244559_471.returns.push(1373491289592);
9443 // 7718
9444 f974244559_471.returns.push(1373491289592);
9445 // 7719
9446 o87 = {};
9447 // 7720
9448 o85.classList = o87;
9449 // 7722
9450 o87.add = f974244559_1110;
9451 // undefined
9452 o87 = null;
9453 // 7723
9454 f974244559_1110.returns.push(undefined);
9455 // 7724
9456 o81.scrollTop = 0;
9457 // 7727
9458 o80.remove = f974244559_1244;
9459 // undefined
9460 o80 = null;
9461 // 7728
9462 f974244559_1244.returns.push(undefined);
9463 // 7733
9464 f974244559_1244.returns.push(undefined);
9465 // 7734
9466 f974244559_12.returns.push(20);
9467 // 7735
9468 f974244559_1254.returns.push(undefined);
9469 // 7736
9470 o80 = {};
9471 // 7742
9472 f974244559_471.returns.push(1373491289594);
9473 // 7743
9474 f974244559_1257 = function() { return f974244559_1257.returns[f974244559_1257.inst++]; };
9475 f974244559_1257.returns = [];
9476 f974244559_1257.inst = 0;
9477 // 7744
9478 o4.pushState = f974244559_1257;
9479 // 7745
9480 o0.JSBNG__URL = "http://jsbngssl.www.facebook.com/LawlabeeTheWallaby";
9481 // 7746
9482 f974244559_1258 = function() { return f974244559_1258.returns[f974244559_1258.inst++]; };
9483 f974244559_1258.returns = [];
9484 f974244559_1258.inst = 0;
9485 // 7747
9486 o4.replaceState = f974244559_1258;
9487 // undefined
9488 o4 = null;
9489 // 7748
9490 f974244559_1258.returns.push(undefined);
9491 // 7749
9492 f974244559_7.returns.push(undefined);
9493 // 7750
9494 f974244559_1259 = function() { return f974244559_1259.returns[f974244559_1259.inst++]; };
9495 f974244559_1259.returns = [];
9496 f974244559_1259.inst = 0;
9497 // 7751
9498 ow974244559.JSBNG__onpopstate = f974244559_1259;
9499 // 7758
9500 f974244559_472.returns.push(undefined);
9501 // 7759
9502 o0.JSBNG__onsubmit = null;
9503 // 7764
9504 o4 = {};
9505 // 7766
9506 o87 = {};
9507 // 7768
9508 o87._needsGripper = f974244559_1240;
9509 // 7769
9510 f974244559_1262 = function() { return f974244559_1262.returns[f974244559_1262.inst++]; };
9511 f974244559_1262.returns = [];
9512 f974244559_1262.inst = 0;
9513 // 7770
9514 o87._throttledComputeHeights = f974244559_1262;
9515 // 7772
9516 f974244559_471.returns.push(1373491289598);
9517 // 7773
9518 o95.clientHeight = 0;
9519 // 7774
9520 o99.offsetHeight = 0;
9521 // 7775
9522 o100.offsetHeight = 0;
9523 // undefined
9524 o100 = null;
9525 // 7776
9526 f974244559_12.returns.push(21);
9527 // 7777
9528 f974244559_1262.returns.push(undefined);
9529 // 7778
9530 o87._gripperHeight = NaN;
9531 // 7779
9532 o87._trackHeight = 0;
9533 // 7780
9534 f974244559_1240.returns.push(false);
9535 // 7781
9536 f974244559_1263 = function() { return f974244559_1263.returns[f974244559_1263.inst++]; };
9537 f974244559_1263.returns = [];
9538 f974244559_1263.inst = 0;
9539 // 7782
9540 o87._throttledShowGripperAndShadows = f974244559_1263;
9541 // 7784
9542 f974244559_471.returns.push(1373491289605);
9543 // 7786
9544 f974244559_471.returns.push(1373491289605);
9545 // 7787
9546 o100 = {};
9547 // 7788
9548 o101.classList = o100;
9549 // undefined
9550 o101 = null;
9551 // 7790
9552 o100.add = f974244559_1110;
9553 // undefined
9554 o100 = null;
9555 // 7791
9556 f974244559_1110.returns.push(undefined);
9557 // 7792
9558 o97.scrollTop = 0;
9559 // 7795
9560 o96.remove = f974244559_1244;
9561 // 7796
9562 f974244559_1244.returns.push(undefined);
9563 // 7801
9564 f974244559_1244.returns.push(undefined);
9565 // 7802
9566 f974244559_12.returns.push(22);
9567 // 7803
9568 f974244559_1263.returns.push(undefined);
9569 // 7804
9570 o100 = {};
9571 // undefined
9572 o100 = null;
9573 // 7805
9574 // 7806
9575 // 7809
9576 f974244559_471.returns.push(1373491289607);
9577 // 7812
9578 f974244559_471.returns.push(1373491289608);
9579 // 7814
9580 o100 = {};
9581 // 7815
9582 f974244559_502.returns.push(o100);
9583 // 7817
9584 o101 = {};
9585 // 7818
9586 f974244559_502.returns.push(o101);
9587 // 7819
9588 o105 = {};
9589 // 7820
9590 o101.firstChild = o105;
9591 // 7822
9592 o105.nodeType = 8;
9593 // 7824
9594 o105.nodeValue = " <li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"r\" data-fixed=\"1\" data-size=\"1\" id=\"tl_unit_380562705353186_recent\"><div class=\"topBorder\"></div><div class=\"timelineReportContainer\" id=\"u_0_2h\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;&quot;,&quot;timeline_unit_type&quot;:&quot;TimelineAboutReportUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;&#125;\" role=\"complementary\"><div class=\"\"><div role=\"article\"><div class=\"_70l\"><div class=\"_57fp\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><a class=\"_57fo\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/info\"></a><div class=\"fsm fwn fcg\"><a class=\"_71u _70n\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/info\">About</a></div></div></div><div class=\"timelineReportContent timelineNoSubheaderReport\"><div class=\"timelineUnitContainer _503z ogProfileLastUnit\" id=\"timeline_about_unit\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;&quot;,&quot;timeline_unit_type&quot;:&quot;TimelineAboutUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;&#125;\" data-time=\"0\"><div class=\"\"><div role=\"article\"><div><ul><li data-token=\"1\" class=\"_5bko\" id=\"u_0_2k\"><div class=\"_4_uf\"><div class=\"clearfix\"><img class=\"_s0 _51iw _8o _8r lfloat _54rv img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/3LFVMmKZeUX.png\" alt=\"\" width=\"16\" height=\"16\" /><div class=\"_8u _42ef\"><ul class=\"uiList _4_vp _4kg\"><li class=\"_4_ug\">Works at <a class=\"profileLink\" href=\"http://jsbngssl.www.facebook.com/PurdueUniversity?ref=br_rs\" data-hovercard=\"/ajax/hovercard/page.php?id=100526673914\">Purdue University</a></li><li class=\"_4_uh\">September 2008 to present</li></ul></div></div></div></li><li data-token=\"2\" class=\"_5bko\" id=\"u_0_2l\"><div class=\"_4_uf\"><div class=\"clearfix\"><img class=\"_s0 _51iw _8o _8r lfloat _54rv img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/wKvDSXpnqkB.png\" alt=\"\" width=\"16\" height=\"16\" /><div class=\"_8u _42ef\"><ul class=\"uiList _4_vp _4kg\"><li class=\"_4_ug\">Studies Computer Science at <a class=\"profileLink\" href=\"http://jsbngssl.www.facebook.com/PurdueUniversity?ref=br_rs\" data-hovercard=\"/ajax/hovercard/page.php?id=100526673914\">Purdue University</a></li><li class=\"_4_uh\">Past: <a class=\"profileLink\" href=\"http://jsbngssl.www.facebook.com/pages/Portland-State-University/113512491992878\" data-hovercard=\"/ajax/hovercard/page.php?id=113512491992878\">Portland State University</a> and <a class=\"profileLink\" href=\"http://jsbngssl.www.facebook.com/pages/Milwaukie-High-School/109486142404101\" data-hovercard=\"/ajax/hovercard/page.php?id=109486142404101\">Milwaukie High School</a></li></ul></div></div></div></li><li data-token=\"3\" class=\"_5bko\" id=\"u_0_2m\"><div class=\"_4_uf\"><div class=\"clearfix\"><img class=\"_s0 _51iw _8o _8r lfloat _54rv img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yI/r/jg7lQrpjdKk.png\" alt=\"\" width=\"16\" height=\"16\" /><div class=\"_8u _42ef\"><ul class=\"uiList _4_vp _513w _4kg\"><li class=\"_4_ug\">Lives in <a class=\"profileLink\" href=\"http://jsbngssl.www.facebook.com/pages/West-Lafayette-Indiana/112305682116972?ref=br_rs\" data-hovercard=\"/ajax/hovercard/page.php?id=112305682116972\">West Lafayette, Indiana</a></li></ul></div></div></div></li><li data-token=\"4\" class=\"_5bko\" id=\"u_0_2n\"><div class=\"_4_uf\"><div class=\"clearfix\"><img class=\"_s0 _51iw _8o _8r lfloat _54rv img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yZ/r/kBTlO7fdcY0.png\" alt=\"\" width=\"16\" height=\"16\" /><div class=\"_8u _42ef\"><ul class=\"uiList _4_vp _513w _4kg\"><li class=\"_4_ug\">From <a class=\"profileLink\" href=\"http://jsbngssl.www.facebook.com/pages/Portland-Oregon/112548152092705?ref=br_rs\" data-hovercard=\"/ajax/hovercard/page.php?id=112548152092705\">Portland, Oregon</a></li></ul></div></div></div></li><li data-token=\"6\" class=\"_5bko\" id=\"u_0_2o\"><div class=\"_4_uf\"><div class=\"clearfix\"><img class=\"_s0 _51iw _8o _8r lfloat _54rv img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/kz0_p5XcuSq.png\" alt=\"\" width=\"16\" height=\"16\" /><div class=\"_8u _42ef\"><ul class=\"uiList _4_vp _513w _4kg\"><li class=\"_4_ug\">Followed by <a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/followers\">9 people</a></li></ul></div></div></div></li></ul></div></div></div></div></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li><li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"r\" data-fixed=\"1\" data-size=\"1\" id=\"u_0_2f\"><div class=\"topBorder\"></div><div class=\"timelineReportContainer _w90\" id=\"u_0_2i\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;&quot;,&quot;timeline_unit_type&quot;:&quot;AppSectionEgoUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;,&quot;timeline_og_unit_click&quot;:&quot;1&quot;,&quot;unit_id&quot;:&quot;288381481237582&quot;,&quot;event_source&quot;:&quot;38&quot;,&quot;app_id&quot;:&quot;2305272732&quot;,&quot;action_type_id&quot;:&quot;&quot;&#125;\" data-time=\"0\"><div class=\"\"><div role=\"article\"><div class=\"_70l\"><div class=\"_57fp\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><a class=\"_57fo\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/photos\"></a><div class=\"fsm fwn fcg\"><a class=\"_71u _70n\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/photos\">Photos</a> · <span class=\"_71u\"><a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/photos\"><span class=\"fwn fcg\">241</span></a></span></div></div></div><div id=\"pagelet_timeline_app_collection_report_5\" class=\"_w8_\"><div data-referrer=\"photos_ego\"><table class=\"uiGrid _122 _1g2x\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268473688587&amp;set=a.1468918877039.2062262.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268473688587&amp;set=a.1468918877039.2062262.1055580469&amp;type=1&amp;src=https%3A%2F%2Ffbcdn-sphotos-b-a.akamaihd.net%2Fhphotos-ak-frc3%2F993004_10200268473688587_517108607_n.jpg&amp;size=640%2C640&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"scaledImageFitWidth img\" src=\"http://jsbngssl.fbcdn-photos-b-a.akamaihd.net/hphotos-ak-frc3/p110x80/993004_10200268473688587_517108607_a.jpg\" alt=\"Gregor Richards&#039;s photo.\" width=\"103\" height=\"103\" /></div></a></td><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268472248551&amp;set=a.3353777797334.2140697.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=10200268472248551&amp;set=a.3353777797334.2140697.1055580469&amp;type=1&amp;src=https%3A%2F%2Fsphotos-a.xx.fbcdn.net%2Fhphotos-ash3%2F1017486_10200268472248551_842609840_n.jpg&amp;size=851%2C315&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"img\" src=\"http://jsbngssl.sphotos-a.xx.fbcdn.net/hphotos-ash3/s280x280/1017486_10200268472248551_842609840_n.jpg\" style=\"left:-88px;\" alt=\"Gregor Richards&#039;s photo.\" width=\"280\" height=\"103\" /></div></a></td><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4986916864790&amp;set=a.1138433375108.2021456.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4986916864790&amp;set=a.1138433375108.2021456.1055580469&amp;type=1&amp;src=https%3A%2F%2Fsphotos-b.xx.fbcdn.net%2Fhphotos-frc1%2F913679_4986916864790_91703778_o.jpg&amp;smallsrc=https%3A%2F%2Fsphotos-b.xx.fbcdn.net%2Fhphotos-prn2%2F178992_4986916864790_91703778_n.jpg&amp;size=2048%2C1536&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"img\" src=\"http://jsbngssl.sphotos-b.xx.fbcdn.net/hphotos-prn2/p118x118/178992_4986916864790_91703778_n.jpg\" alt=\"Today I learned that Dr. Gorman is actually another alternate identity for Clark Kent.\" width=\"138\" height=\"103\" /></div></a></td></tr><tr><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4897864518537&amp;set=a.1138433375108.2021456.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4897864518537&amp;set=a.1138433375108.2021456.1055580469&amp;type=1&amp;src=https%3A%2F%2Ffbcdn-sphotos-c-a.akamaihd.net%2Fhphotos-ak-frc1%2F422167_4897864518537_1503459754_n.jpg&amp;size=538%2C404&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"img\" src=\"http://jsbngssl.fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-frc1/p118x118/422167_4897864518537_1503459754_n.jpg\" style=\"left:-17px;\" alt=\"No parking gais. For realsies. They&#039;ll tow your boat.\" width=\"138\" height=\"103\" /></div></a></td><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4897839437910&amp;set=a.1138433375108.2021456.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4897839437910&amp;set=a.1138433375108.2021456.1055580469&amp;type=1&amp;src=https%3A%2F%2Ffbcdn-sphotos-h-a.akamaihd.net%2Fhphotos-ak-frc1%2F920971_4897839437910_1063615079_o.jpg&amp;smallsrc=https%3A%2F%2Ffbcdn-sphotos-h-a.akamaihd.net%2Fhphotos-ak-frc1%2F644616_4897839437910_1063615079_n.jpg&amp;size=2048%2C473&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"img\" src=\"http://jsbngssl.fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-frc1/s480x480/644616_4897839437910_1063615079_n.jpg\" style=\"left:-173px;\" alt=\"So yeah, there&#039;s a LITTLE bit of flooding &#039;round these parts.\" width=\"450\" height=\"103\" /></div></a></td><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4875948970662&amp;set=a.1138433375108.2021456.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4875948970662&amp;set=a.1138433375108.2021456.1055580469&amp;type=1&amp;src=https%3A%2F%2Fsphotos-b.xx.fbcdn.net%2Fhphotos-ash3%2F150431_4875948970662_1470457029_n.jpg&amp;size=944%2C834&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"_46-h\" style=\"width:103px;height:103px;\"><img class=\"_46-i img\" src=\"http://jsbngssl.photos-b.xx.fbcdn.net/hphotos-ash3/p118x90/150431_4875948970662_1470457029_a.jpg\" style=\"left:-7px; top:0px;\" alt=\"Anyone who can spot the delightful (and delicious!) irony in this photo gets ten Internet points.\" width=\"118\" height=\"104\" /></div></a></td></tr><tr><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4691723285135&amp;set=a.1138433375108.2021456.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4691723285135&amp;set=a.1138433375108.2021456.1055580469&amp;type=1&amp;src=https%3A%2F%2Ffbcdn-sphotos-f-a.akamaihd.net%2Fhphotos-ak-ash3%2F577358_4691723285135_528345851_n.jpg&amp;size=600%2C600&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"scaledImageFitWidth img\" src=\"http://jsbngssl.fbcdn-photos-f-a.akamaihd.net/hphotos-ak-ash3/p110x80/577358_4691723285135_528345851_a.jpg\" alt=\"I, for one, blame my parents.\" width=\"103\" height=\"103\" /></div></a></td><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4441724315317&amp;set=a.1138433375108.2021456.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4441724315317&amp;set=a.1138433375108.2021456.1055580469&amp;type=1&amp;src=https%3A%2F%2Fsphotos-a.xx.fbcdn.net%2Fhphotos-prn1%2F793914_4441724315317_424104454_o.jpg&amp;smallsrc=https%3A%2F%2Fsphotos-a.xx.fbcdn.net%2Fhphotos-prn1%2F74137_4441724315317_424104454_n.jpg&amp;size=1024%2C1024&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"scaledImageFitWidth img\" src=\"http://jsbngssl.photos-a.xx.fbcdn.net/hphotos-prn1/p110x80/74137_4441724315317_424104454_a.jpg\" alt=\"Bought myself some nostalgia in the form of a watch.\" width=\"103\" height=\"103\" /></div></a></td><td><a href=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4158049383621&amp;set=a.3353777797334.2140697.1055580469&amp;type=1\" rel=\"theater\" ajaxify=\"http://jsbngssl.www.facebook.com/photo.php?fbid=4158049383621&amp;set=a.3353777797334.2140697.1055580469&amp;type=1&amp;src=https%3A%2F%2Ffbcdn-sphotos-g-a.akamaihd.net%2Fhphotos-ak-prn1%2F73038_4158049383621_1395344823_n.jpg&amp;size=851%2C315&amp;source=8\" data-ft=\"&#123;&quot;tn&quot;:&quot;E&quot;&#125;\"><div class=\"uiScaledImageContainer\" style=\"width:103px;height:103px;\"><img class=\"img\" src=\"http://jsbngssl.fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/s280x280/73038_4158049383621_1395344823_n.jpg\" style=\"left:-88px;\" alt=\"Gregor Richards&#039;s photo.\" width=\"280\" height=\"103\" /></div></a></td></tr></tbody></table></div></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li><li class=\"fbTimelineUnit fbTimelineTwoColumn clearfix\" data-side=\"r\" data-fixed=\"1\" data-size=\"1\" id=\"u_0_2g\"><div class=\"topBorder\"></div><div class=\"timelineReportContainer\" id=\"u_0_2j\" data-gt=\"&#123;&quot;eventtime&quot;:&quot;1373491278&quot;,&quot;viewerid&quot;:&quot;100006118350059&quot;,&quot;profileownerid&quot;:&quot;1055580469&quot;,&quot;unitimpressionid&quot;:&quot;856ec6cb&quot;,&quot;contentid&quot;:&quot;&quot;,&quot;timeline_unit_type&quot;:&quot;AppSectionEgoUnit&quot;,&quot;timewindowsize&quot;:&quot;3&quot;,&quot;query_type&quot;:&quot;39&quot;,&quot;contextwindowstart&quot;:&quot;0&quot;,&quot;contextwindowend&quot;:&quot;1375340399&quot;,&quot;timeline_og_unit_click&quot;:&quot;1&quot;,&quot;unit_id&quot;:&quot;288381481237582&quot;,&quot;event_source&quot;:&quot;38&quot;,&quot;app_id&quot;:&quot;2361831622&quot;,&quot;action_type_id&quot;:&quot;&quot;&#125;\" data-time=\"0\"><div class=\"\"><div role=\"article\"><div class=\"_70l\"><div class=\"_57fp\" data-ft=\"&#123;&quot;tn&quot;:&quot;C&quot;&#125;\"><a class=\"_57fo\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/groups\"></a><div class=\"fsm fwn fcg\"><a class=\"_71u _70n\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/groups\">Groups</a> · <span class=\"_71u\"><a href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/groups\"><span class=\"fwn fcg\">1</span></a></span></div></div></div><div id=\"pagelet_timeline_app_collection_report_66\" class=\"_w8_\"><div class=\"_1ln2\"><ul class=\"uiList _4kg _4kt\"><li><div class=\"clearfix\" data-ft=\"&#123;&quot;tn&quot;:&quot;l&quot;&#125;\"><div class=\"listMemberFacepileLargeCollection listMemberFacepile _8o _8t lfloat\"><img class=\"firstImg img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" alt=\"\" /><img class=\"img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif\" alt=\"\" /><img class=\"img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif\" alt=\"\" /><img class=\"lastImg img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif\" alt=\"\" /></div><div class=\"_42ef\"><div class=\"_6a _ph5\"><div class=\"_6a _6b\" style=\"height:64px\"></div><div class=\"_6a _6b\"><a href=\"/groups/26418081870/\" data-hovercard=\"/ajax/hovercard/group.php?id=26418081870\">Purdue Extreme Croquet</a><div><div class=\"fcg\">1 member</div></div><span class=\"_538r\">Enjoy the civilized and gentlemanly...</span></div></div></div></div></li></ul></div></div></div></div></div><i class=\"spinePointer\"></i><div class=\"bottomBorder\"></div></li><li class=\"_3ram hidden_elem\" data-endmarker=\"recent\" data-pageindex=\"0\"></li> ";
9595 // undefined
9596 o105 = null;
9597 // 7825
9598 o101.parentNode = o25;
9599 // 7827
9600 f974244559_507.returns.push(o101);
9601 // undefined
9602 o101 = null;
9603 // 7829
9604 o101 = {};
9605 // 7830
9606 f974244559_480.returns.push(o101);
9607 // 7831
9608 // 7833
9609 o105 = {};
9610 // 7834
9611 f974244559_478.returns.push(o105);
9612 // 7835
9613 o106 = {};
9614 // undefined
9615 fo974244559_1269_firstChild = function() { return fo974244559_1269_firstChild.returns[fo974244559_1269_firstChild.inst++]; };
9616 fo974244559_1269_firstChild.returns = [];
9617 fo974244559_1269_firstChild.inst = 0;
9618 defineGetter(o101, "firstChild", fo974244559_1269_firstChild, undefined);
9619 // undefined
9620 o101 = null;
9621 // undefined
9622 fo974244559_1269_firstChild.returns.push(o106);
9623 // 7837
9624 o105.appendChild = f974244559_482;
9625 // undefined
9626 fo974244559_1269_firstChild.returns.push(o106);
9627 // 7839
9628 f974244559_482.returns.push(o106);
9629 // undefined
9630 o106 = null;
9631 // 7840
9632 o101 = {};
9633 // undefined
9634 fo974244559_1269_firstChild.returns.push(o101);
9635 // undefined
9636 fo974244559_1269_firstChild.returns.push(o101);
9637 // 7844
9638 f974244559_482.returns.push(o101);
9639 // undefined
9640 o101 = null;
9641 // 7845
9642 o101 = {};
9643 // undefined
9644 fo974244559_1269_firstChild.returns.push(o101);
9645 // undefined
9646 fo974244559_1269_firstChild.returns.push(o101);
9647 // 7849
9648 f974244559_482.returns.push(o101);
9649 // undefined
9650 o101 = null;
9651 // 7850
9652 o101 = {};
9653 // undefined
9654 fo974244559_1269_firstChild.returns.push(o101);
9655 // undefined
9656 fo974244559_1269_firstChild.returns.push(o101);
9657 // 7854
9658 f974244559_482.returns.push(o101);
9659 // undefined
9660 fo974244559_1269_firstChild.returns.push(null);
9661 // 7856
9662 o100.appendChild = f974244559_482;
9663 // 7857
9664 f974244559_482.returns.push(o105);
9665 // undefined
9666 o105 = null;
9667 // 7858
9668 o100.getAttribute = f974244559_500;
9669 // 7859
9670 f974244559_500.returns.push("pagelet_timeline_recent_ocm");
9671 // 7864
9672 f974244559_471.returns.push(1373491289636);
9673 // 7867
9674 f974244559_471.returns.push(1373491289637);
9675 // 7870
9676 f974244559_471.returns.push(1373491289638);
9677 // 7873
9678 f974244559_471.returns.push(1373491289638);
9679 // 7876
9680 f974244559_471.returns.push(1373491289638);
9681 // 7878
9682 o105 = {};
9683 // 7879
9684 f974244559_502.returns.push(o105);
9685 // 7881
9686 o106 = {};
9687 // 7882
9688 f974244559_502.returns.push(o106);
9689 // 7883
9690 o107 = {};
9691 // 7884
9692 o106.firstChild = o107;
9693 // 7886
9694 o107.nodeType = 8;
9695 // 7888
9696 o107.nodeValue = " <div class=\"_22t _22q _22r\" id=\"u_0_2q\" data-referrer=\"u_0_2q\"></div> ";
9697 // undefined
9698 o107 = null;
9699 // 7889
9700 o106.parentNode = o25;
9701 // 7891
9702 f974244559_507.returns.push(o106);
9703 // undefined
9704 o106 = null;
9705 // 7892
9706 // 7893
9707 o105.getAttribute = f974244559_500;
9708 // 7894
9709 f974244559_500.returns.push("pagelet_side_ads");
9710 // 7898
9711 f974244559_471.returns.push(1373491289641);
9712 // 7903
9713 o106 = {};
9714 // 7904
9715 f974244559_478.returns.push(o106);
9716 // 7906
9717 f974244559_482.returns.push(o106);
9718 // undefined
9719 o106 = null;
9720 // 7909
9721 f974244559_471.returns.push(1373491289642);
9722 // 7912
9723 f974244559_471.returns.push(1373491289643);
9724 // 7915
9725 f974244559_471.returns.push(1373491289643);
9726 // 7917
9727 o106 = {};
9728 // 7918
9729 f974244559_502.returns.push(o106);
9730 // 7920
9731 o107 = {};
9732 // 7921
9733 f974244559_502.returns.push(o107);
9734 // 7922
9735 o108 = {};
9736 // 7923
9737 o107.firstChild = o108;
9738 // 7925
9739 o108.nodeType = 8;
9740 // 7927
9741 o108.nodeValue = " <div class=\"_50-\\-\\ fbDockWrapper fbDockWrapperRight\" id=\"u_0_2s\"><div class=\"fbDock clearfix\"><div class=\"clearfix nubContainer rNubContainer\"><div id=\"ChatTabsPagelet\" data-referrer=\"ChatTabsPagelet\"><div class=\"fbNubGroup clearfix _56oy\" id=\"u_0_2t\"><div class=\"fbNubGroup clearfix\" id=\"u_0_2u\"></div></div></div><div id=\"BuddylistPagelet\" data-referrer=\"BuddylistPagelet\"><div class=\"_56ox\"><div class=\"uiToggle _50-v fbNub _4mq3 hide_on_presence_error\" id=\"fbDockChatBuddylistNub\"><a class=\"fbNubButton\" tabindex=\"0\" href=\"#\" rel=\"toggle\" role=\"button\"><span class=\"_5ayx rfloat\"></span><img class=\"icon lfloat img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\" alt=\"\" width=\"1\" height=\"1\" /><span class=\"label\">Chat<span class=\"count\"> (<strong>0</strong>)</span></span></a><div class=\"fbNubFlyout uiToggleFlyout\"><div class=\"fbNubFlyoutOuter\"><div class=\"fbNubFlyoutInner\"><div class=\"clearfix fbNubFlyoutTitlebar\" data-jsid=\"nubFlyoutTitlebar\"><div class=\"uiSelector inlineBlock fbChatSidebarDropdown button rfloat uiSelectorRight\" id=\"u_0_2z\" data-multiple=\"1\"><div class=\"uiToggle wrap\"><a data-hover=\"tooltip\" aria-label=\"Options\" class=\"uiSelectorButton uiCloseButton\" href=\"#\" role=\"button\" aria-haspopup=\"1\" rel=\"toggle\"></a><div class=\"uiSelectorMenuWrapper uiToggleFlyout\"><div role=\"menu\" class=\"uiMenu uiSelectorMenu\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption checked\" data-label=\"Chat Sounds\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"0\" href=\"#\" aria-checked=\"true\"><span class=\"itemLabel fsm\">Chat Sounds</span></a></li><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption\" data-label=\"Advanced Settings...\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"/ajax/chat/privacy/settings_dialog.php\" aria-checked=\"false\" rel=\"dialog\"><span class=\"itemLabel fsm\">Advanced Settings...</span></a></li><li class=\"uiMenuSeparator\"></li><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption fbChatGoOnlineItem\" data-label=\"Turn On Chat\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\"><span class=\"itemLabel fsm\">Turn On Chat</span></a></li><li class=\"uiMenuItem uiMenuItemCheckbox uiSelectorOption fbChatGoOfflineItem\" data-label=\"Turn Off Chat\"><a class=\"itemAnchor\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"/ajax/chat/privacy/turn_off_dialog.php\" aria-checked=\"false\" rel=\"dialog\"><span class=\"itemLabel fsm\">Turn Off Chat</span></a></li></ul></div></div></div><select multiple=\"1\"><option value=\"\" disabled=\"1\"></option><option value=\"sound\" selected=\"1\">Chat Sounds</option><option value=\"advanced_settings\">Advanced Settings...</option><option value=\"online\">Turn On Chat</option><option value=\"turn_off_dialog\">Turn Off Chat</option></select></div><div class=\"titlebarLabel clearfix\"><div class=\"titlebarTextWrapper\">Chat</div></div></div><div class=\"fbNubFlyoutBody scrollable\"><div class=\"fbNubFlyoutBodyContent\"><div id=\"u_0_31\"><ul class=\"fbChatOrderedList clearfix\"><li><div class=\"phs fcg\"><span data-jsid=\"message\">Loading...</span></div></li></ul></div><div class=\"fbChatTypeaheadView hidden_elem\" id=\"u_0_2v\"></div></div></div><div class=\"fbNubFlyoutFooter\"><div class=\"_4mq7 clearfix\"><img class=\"img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\" alt=\"\" width=\"1\" height=\"1\" /><div class=\"_4mq1 fcg\"></div></div><div class=\"uiTypeahead uiClearableTypeahead fbChatTypeahead\" id=\"u_0_2w\"><div class=\"wrap\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ecde908e25f2a2f2e82ee2fd34e043030c4d5611d(event) {\\u000a\\u000a};\"), (\"sad475d6e5bd4bb64b387ffbc8ac2e55c88177952\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ecde908e25f2a2f2e82ee2fd34e043030c4d5611d(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sad475d6e5bd4bb64b387ffbc8ac2e55c88177952_0\"), (sad475d6e5bd4bb64b387ffbc8ac2e55c88177952_0_instance), (this), (arguments)))\n        };\n        (null);\n    ;\n    };\n    var sad475d6e5bd4bb64b387ffbc8ac2e55c88177952_0_instance;\n    ((sad475d6e5bd4bb64b387ffbc8ac2e55c88177952_0_instance) = ((JSBNG_Record.eventInstance)((\"sad475d6e5bd4bb64b387ffbc8ac2e55c88177952_0\"))));\n    ((JSBNG_Record.markFunction)((ecde908e25f2a2f2e82ee2fd34e043030c4d5611d)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><button class=\"_42ft _50zy clear uiTypeaheadCloseButton _50-0 _50z-\" title=\"Remove\" onclick=\"return ecde908e25f2a2f2e82ee2fd34e043030c4d5611d.call(this, event);\" type=\"button\" id=\"u_0_2x\">Remove</button><input type=\"hidden\" autocomplete=\"off\" class=\"hiddenInput\" /><div class=\"innerWrap\"><input type=\"text\" class=\"inputtext inputsearch textInput DOMControl_placeholder\" autocomplete=\"off\" placeholder=\"Search\" aria-autocomplete=\"list\" aria-expanded=\"false\" aria-owns=\"typeahead_list_u_0_2w\" role=\"combobox\" spellcheck=\"false\" value=\"Search\" aria-label=\"Search\" id=\"u_0_2y\" /></div><img class=\"throbber uiLoadingIndicatorAsync img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div></div></div></div></div></div></div></div></div></div></div></div><div id=\"u_0_32\"></div> ";
9742 // undefined
9743 o108 = null;
9744 // 7928
9745 o107.parentNode = o25;
9746 // 7930
9747 f974244559_507.returns.push(o107);
9748 // undefined
9749 o107 = null;
9750 // 7931
9751 // 7932
9752 o106.getAttribute = f974244559_500;
9753 // 7933
9754 f974244559_500.returns.push("pagelet_dock");
9755 // 7997
9756 o107 = {};
9757 // 7998
9758 f974244559_480.returns.push(o107);
9759 // 7999
9760 // 8000
9761 // 8001
9762 o107.getElementsByTagName = f974244559_514;
9763 // 8002
9764 o108 = {};
9765 // 8003
9766 f974244559_514.returns.push(o108);
9767 // 8004
9768 o108.length = 0;
9769 // undefined
9770 o108 = null;
9771 // 8006
9772 o108 = {};
9773 // 8007
9774 o107.childNodes = o108;
9775 // undefined
9776 o107 = null;
9777 // 8008
9778 o108.item = f974244559_517;
9779 // 8009
9780 o108.length = 1;
9781 // 8010
9782 o107 = {};
9783 // 8011
9784 o108["0"] = o107;
9785 // undefined
9786 o108 = null;
9787 // 8012
9788 o107.getAttributeNode = f974244559_519;
9789 // 8014
9790 f974244559_519.returns.push(null);
9791 // 8015
9792 o107.getElementsByTagName = f974244559_514;
9793 // undefined
9794 o107 = null;
9795 // 8017
9796 o107 = {};
9797 // 8018
9798 f974244559_514.returns.push(o107);
9799 // 8019
9800 o107.length = 138;
9801 // 8020
9802 o108 = {};
9803 // 8021
9804 o107["0"] = o108;
9805 // 8022
9806 o108.getAttributeNode = f974244559_519;
9807 // 8024
9808 f974244559_519.returns.push(null);
9809 // 8026
9810 o109 = {};
9811 // 8027
9812 o107["1"] = o109;
9813 // 8028
9814 o109.getAttributeNode = f974244559_519;
9815 // 8030
9816 f974244559_519.returns.push(null);
9817 // 8032
9818 o110 = {};
9819 // 8033
9820 o107["2"] = o110;
9821 // 8034
9822 o110.getAttributeNode = f974244559_519;
9823 // 8036
9824 f974244559_519.returns.push(null);
9825 // 8038
9826 o111 = {};
9827 // 8039
9828 o107["3"] = o111;
9829 // 8040
9830 o111.getAttributeNode = f974244559_519;
9831 // 8042
9832 f974244559_519.returns.push(null);
9833 // 8044
9834 o112 = {};
9835 // 8045
9836 o107["4"] = o112;
9837 // 8046
9838 o112.getAttributeNode = f974244559_519;
9839 // 8048
9840 f974244559_519.returns.push(null);
9841 // 8050
9842 o113 = {};
9843 // 8051
9844 o107["5"] = o113;
9845 // 8052
9846 o113.getAttributeNode = f974244559_519;
9847 // 8054
9848 f974244559_519.returns.push(null);
9849 // 8056
9850 o114 = {};
9851 // 8057
9852 o107["6"] = o114;
9853 // 8058
9854 o114.getAttributeNode = f974244559_519;
9855 // 8060
9856 f974244559_519.returns.push(null);
9857 // 8062
9858 o115 = {};
9859 // 8063
9860 o107["7"] = o115;
9861 // 8064
9862 o115.getAttributeNode = f974244559_519;
9863 // 8066
9864 f974244559_519.returns.push(null);
9865 // 8068
9866 o116 = {};
9867 // 8069
9868 o107["8"] = o116;
9869 // 8070
9870 o116.getAttributeNode = f974244559_519;
9871 // 8072
9872 f974244559_519.returns.push(null);
9873 // 8074
9874 o117 = {};
9875 // 8075
9876 o107["9"] = o117;
9877 // 8076
9878 o117.getAttributeNode = f974244559_519;
9879 // 8078
9880 f974244559_519.returns.push(null);
9881 // 8080
9882 o118 = {};
9883 // 8081
9884 o107["10"] = o118;
9885 // 8082
9886 o118.getAttributeNode = f974244559_519;
9887 // 8084
9888 f974244559_519.returns.push(null);
9889 // 8086
9890 o119 = {};
9891 // 8087
9892 o107["11"] = o119;
9893 // 8088
9894 o119.getAttributeNode = f974244559_519;
9895 // 8090
9896 f974244559_519.returns.push(null);
9897 // 8092
9898 o120 = {};
9899 // 8093
9900 o107["12"] = o120;
9901 // 8094
9902 o120.getAttributeNode = f974244559_519;
9903 // 8096
9904 f974244559_519.returns.push(null);
9905 // 8098
9906 o121 = {};
9907 // 8099
9908 o107["13"] = o121;
9909 // 8100
9910 o121.getAttributeNode = f974244559_519;
9911 // 8102
9912 f974244559_519.returns.push(null);
9913 // 8104
9914 o122 = {};
9915 // 8105
9916 o107["14"] = o122;
9917 // 8106
9918 o122.getAttributeNode = f974244559_519;
9919 // 8108
9920 f974244559_519.returns.push(null);
9921 // 8110
9922 o123 = {};
9923 // 8111
9924 o107["15"] = o123;
9925 // 8112
9926 o123.getAttributeNode = f974244559_519;
9927 // 8114
9928 f974244559_519.returns.push(null);
9929 // 8116
9930 o124 = {};
9931 // 8117
9932 o107["16"] = o124;
9933 // 8118
9934 o124.getAttributeNode = f974244559_519;
9935 // 8120
9936 f974244559_519.returns.push(null);
9937 // 8122
9938 o125 = {};
9939 // 8123
9940 o107["17"] = o125;
9941 // 8124
9942 o125.getAttributeNode = f974244559_519;
9943 // 8126
9944 f974244559_519.returns.push(null);
9945 // 8128
9946 o126 = {};
9947 // 8129
9948 o107["18"] = o126;
9949 // 8130
9950 o126.getAttributeNode = f974244559_519;
9951 // 8132
9952 f974244559_519.returns.push(null);
9953 // 8134
9954 o127 = {};
9955 // 8135
9956 o107["19"] = o127;
9957 // 8136
9958 o127.getAttributeNode = f974244559_519;
9959 // 8138
9960 f974244559_519.returns.push(null);
9961 // 8140
9962 o128 = {};
9963 // 8141
9964 o107["20"] = o128;
9965 // 8142
9966 o128.getAttributeNode = f974244559_519;
9967 // 8144
9968 f974244559_519.returns.push(null);
9969 // 8146
9970 o129 = {};
9971 // 8147
9972 o107["21"] = o129;
9973 // 8148
9974 o129.getAttributeNode = f974244559_519;
9975 // 8150
9976 f974244559_519.returns.push(null);
9977 // 8152
9978 o130 = {};
9979 // 8153
9980 o107["22"] = o130;
9981 // 8154
9982 o130.getAttributeNode = f974244559_519;
9983 // 8156
9984 f974244559_519.returns.push(null);
9985 // 8158
9986 o131 = {};
9987 // 8159
9988 o107["23"] = o131;
9989 // 8160
9990 o131.getAttributeNode = f974244559_519;
9991 // 8162
9992 f974244559_519.returns.push(null);
9993 // 8164
9994 o132 = {};
9995 // 8165
9996 o107["24"] = o132;
9997 // undefined
9998 o107 = null;
9999 // 8166
10000 o132.getAttributeNode = f974244559_519;
10001 // 8168
10002 o107 = {};
10003 // 8169
10004 f974244559_519.returns.push(o107);
10005 // 8170
10006 o107.value = "u_0_37";
10007 // 8175
10008 f974244559_519.returns.push(null);
10009 // 8178
10010 o133 = {};
10011 // 8179
10012 f974244559_514.returns.push(o133);
10013 // 8180
10014 o133.length = 138;
10015 // 8181
10016 o133["0"] = o108;
10017 // undefined
10018 o108 = null;
10019 // 8184
10020 f974244559_519.returns.push(null);
10021 // 8186
10022 o133["1"] = o109;
10023 // undefined
10024 o109 = null;
10025 // 8189
10026 f974244559_519.returns.push(null);
10027 // 8191
10028 o133["2"] = o110;
10029 // undefined
10030 o110 = null;
10031 // 8194
10032 f974244559_519.returns.push(null);
10033 // 8196
10034 o133["3"] = o111;
10035 // undefined
10036 o111 = null;
10037 // 8199
10038 f974244559_519.returns.push(null);
10039 // 8201
10040 o133["4"] = o112;
10041 // undefined
10042 o112 = null;
10043 // 8204
10044 f974244559_519.returns.push(null);
10045 // 8206
10046 o133["5"] = o113;
10047 // undefined
10048 o113 = null;
10049 // 8209
10050 f974244559_519.returns.push(null);
10051 // 8211
10052 o133["6"] = o114;
10053 // undefined
10054 o114 = null;
10055 // 8214
10056 f974244559_519.returns.push(null);
10057 // 8216
10058 o133["7"] = o115;
10059 // undefined
10060 o115 = null;
10061 // 8219
10062 f974244559_519.returns.push(null);
10063 // 8221
10064 o133["8"] = o116;
10065 // undefined
10066 o116 = null;
10067 // 8224
10068 f974244559_519.returns.push(null);
10069 // 8226
10070 o133["9"] = o117;
10071 // undefined
10072 o117 = null;
10073 // 8229
10074 f974244559_519.returns.push(null);
10075 // 8231
10076 o133["10"] = o118;
10077 // undefined
10078 o118 = null;
10079 // 8234
10080 f974244559_519.returns.push(null);
10081 // 8236
10082 o133["11"] = o119;
10083 // undefined
10084 o119 = null;
10085 // 8239
10086 f974244559_519.returns.push(null);
10087 // 8241
10088 o133["12"] = o120;
10089 // undefined
10090 o120 = null;
10091 // 8244
10092 f974244559_519.returns.push(null);
10093 // 8246
10094 o133["13"] = o121;
10095 // undefined
10096 o121 = null;
10097 // 8249
10098 f974244559_519.returns.push(null);
10099 // 8251
10100 o133["14"] = o122;
10101 // undefined
10102 o122 = null;
10103 // 8254
10104 f974244559_519.returns.push(null);
10105 // 8256
10106 o133["15"] = o123;
10107 // undefined
10108 o123 = null;
10109 // 8259
10110 f974244559_519.returns.push(null);
10111 // 8261
10112 o133["16"] = o124;
10113 // undefined
10114 o124 = null;
10115 // 8264
10116 f974244559_519.returns.push(null);
10117 // 8266
10118 o133["17"] = o125;
10119 // undefined
10120 o125 = null;
10121 // 8269
10122 f974244559_519.returns.push(null);
10123 // 8271
10124 o133["18"] = o126;
10125 // undefined
10126 o126 = null;
10127 // 8274
10128 f974244559_519.returns.push(null);
10129 // 8276
10130 o133["19"] = o127;
10131 // undefined
10132 o127 = null;
10133 // 8279
10134 f974244559_519.returns.push(null);
10135 // 8281
10136 o133["20"] = o128;
10137 // undefined
10138 o128 = null;
10139 // 8284
10140 f974244559_519.returns.push(null);
10141 // 8286
10142 o133["21"] = o129;
10143 // undefined
10144 o129 = null;
10145 // 8289
10146 f974244559_519.returns.push(null);
10147 // 8291
10148 o133["22"] = o130;
10149 // undefined
10150 o130 = null;
10151 // 8294
10152 f974244559_519.returns.push(null);
10153 // 8296
10154 o133["23"] = o131;
10155 // undefined
10156 o131 = null;
10157 // 8299
10158 f974244559_519.returns.push(null);
10159 // 8301
10160 o133["24"] = o132;
10161 // undefined
10162 o132 = null;
10163 // 8304
10164 f974244559_519.returns.push(o107);
10165 // undefined
10166 o107 = null;
10167 // 8307
10168 o107 = {};
10169 // 8308
10170 o133["25"] = o107;
10171 // 8309
10172 o107.getAttributeNode = f974244559_519;
10173 // undefined
10174 o107 = null;
10175 // 8311
10176 f974244559_519.returns.push(null);
10177 // 8313
10178 o107 = {};
10179 // 8314
10180 o133["26"] = o107;
10181 // 8315
10182 o107.getAttributeNode = f974244559_519;
10183 // undefined
10184 o107 = null;
10185 // 8317
10186 f974244559_519.returns.push(null);
10187 // 8319
10188 o107 = {};
10189 // 8320
10190 o133["27"] = o107;
10191 // 8321
10192 o107.getAttributeNode = f974244559_519;
10193 // undefined
10194 o107 = null;
10195 // 8323
10196 f974244559_519.returns.push(null);
10197 // 8325
10198 o107 = {};
10199 // 8326
10200 o133["28"] = o107;
10201 // 8327
10202 o107.getAttributeNode = f974244559_519;
10203 // undefined
10204 o107 = null;
10205 // 8329
10206 f974244559_519.returns.push(null);
10207 // 8331
10208 o107 = {};
10209 // 8332
10210 o133["29"] = o107;
10211 // 8333
10212 o107.getAttributeNode = f974244559_519;
10213 // undefined
10214 o107 = null;
10215 // 8335
10216 f974244559_519.returns.push(null);
10217 // 8337
10218 o107 = {};
10219 // 8338
10220 o133["30"] = o107;
10221 // 8339
10222 o107.getAttributeNode = f974244559_519;
10223 // undefined
10224 o107 = null;
10225 // 8341
10226 f974244559_519.returns.push(null);
10227 // 8343
10228 o107 = {};
10229 // 8344
10230 o133["31"] = o107;
10231 // 8345
10232 o107.getAttributeNode = f974244559_519;
10233 // undefined
10234 o107 = null;
10235 // 8347
10236 f974244559_519.returns.push(null);
10237 // 8349
10238 o107 = {};
10239 // 8350
10240 o133["32"] = o107;
10241 // 8351
10242 o107.getAttributeNode = f974244559_519;
10243 // undefined
10244 o107 = null;
10245 // 8353
10246 f974244559_519.returns.push(null);
10247 // 8355
10248 o107 = {};
10249 // 8356
10250 o133["33"] = o107;
10251 // 8357
10252 o107.getAttributeNode = f974244559_519;
10253 // undefined
10254 o107 = null;
10255 // 8359
10256 f974244559_519.returns.push(null);
10257 // 8361
10258 o107 = {};
10259 // 8362
10260 o133["34"] = o107;
10261 // 8363
10262 o107.getAttributeNode = f974244559_519;
10263 // undefined
10264 o107 = null;
10265 // 8365
10266 f974244559_519.returns.push(null);
10267 // 8367
10268 o107 = {};
10269 // 8368
10270 o133["35"] = o107;
10271 // 8369
10272 o107.getAttributeNode = f974244559_519;
10273 // undefined
10274 o107 = null;
10275 // 8371
10276 f974244559_519.returns.push(null);
10277 // 8373
10278 o107 = {};
10279 // 8374
10280 o133["36"] = o107;
10281 // 8375
10282 o107.getAttributeNode = f974244559_519;
10283 // undefined
10284 o107 = null;
10285 // 8377
10286 f974244559_519.returns.push(null);
10287 // 8379
10288 o107 = {};
10289 // 8380
10290 o133["37"] = o107;
10291 // 8381
10292 o107.getAttributeNode = f974244559_519;
10293 // undefined
10294 o107 = null;
10295 // 8383
10296 f974244559_519.returns.push(null);
10297 // 8385
10298 o107 = {};
10299 // 8386
10300 o133["38"] = o107;
10301 // 8387
10302 o107.getAttributeNode = f974244559_519;
10303 // undefined
10304 o107 = null;
10305 // 8389
10306 f974244559_519.returns.push(null);
10307 // 8391
10308 o107 = {};
10309 // 8392
10310 o133["39"] = o107;
10311 // 8393
10312 o107.getAttributeNode = f974244559_519;
10313 // undefined
10314 o107 = null;
10315 // 8395
10316 f974244559_519.returns.push(null);
10317 // 8397
10318 o107 = {};
10319 // 8398
10320 o133["40"] = o107;
10321 // 8399
10322 o107.getAttributeNode = f974244559_519;
10323 // undefined
10324 o107 = null;
10325 // 8401
10326 f974244559_519.returns.push(null);
10327 // 8403
10328 o107 = {};
10329 // 8404
10330 o133["41"] = o107;
10331 // 8405
10332 o107.getAttributeNode = f974244559_519;
10333 // undefined
10334 o107 = null;
10335 // 8407
10336 f974244559_519.returns.push(null);
10337 // 8409
10338 o107 = {};
10339 // 8410
10340 o133["42"] = o107;
10341 // 8411
10342 o107.getAttributeNode = f974244559_519;
10343 // undefined
10344 o107 = null;
10345 // 8413
10346 f974244559_519.returns.push(null);
10347 // 8415
10348 o107 = {};
10349 // 8416
10350 o133["43"] = o107;
10351 // 8417
10352 o107.getAttributeNode = f974244559_519;
10353 // undefined
10354 o107 = null;
10355 // 8419
10356 f974244559_519.returns.push(null);
10357 // 8421
10358 o107 = {};
10359 // 8422
10360 o133["44"] = o107;
10361 // 8423
10362 o107.getAttributeNode = f974244559_519;
10363 // undefined
10364 o107 = null;
10365 // 8425
10366 f974244559_519.returns.push(null);
10367 // 8427
10368 o107 = {};
10369 // 8428
10370 o133["45"] = o107;
10371 // 8429
10372 o107.getAttributeNode = f974244559_519;
10373 // undefined
10374 o107 = null;
10375 // 8431
10376 f974244559_519.returns.push(null);
10377 // 8433
10378 o107 = {};
10379 // 8434
10380 o133["46"] = o107;
10381 // 8435
10382 o107.getAttributeNode = f974244559_519;
10383 // undefined
10384 o107 = null;
10385 // 8437
10386 f974244559_519.returns.push(null);
10387 // 8439
10388 o107 = {};
10389 // 8440
10390 o133["47"] = o107;
10391 // 8441
10392 o107.getAttributeNode = f974244559_519;
10393 // undefined
10394 o107 = null;
10395 // 8443
10396 f974244559_519.returns.push(null);
10397 // 8445
10398 o107 = {};
10399 // 8446
10400 o133["48"] = o107;
10401 // 8447
10402 o107.getAttributeNode = f974244559_519;
10403 // undefined
10404 o107 = null;
10405 // 8449
10406 f974244559_519.returns.push(null);
10407 // 8451
10408 o107 = {};
10409 // 8452
10410 o133["49"] = o107;
10411 // 8453
10412 o107.getAttributeNode = f974244559_519;
10413 // undefined
10414 o107 = null;
10415 // 8455
10416 f974244559_519.returns.push(null);
10417 // 8457
10418 o107 = {};
10419 // 8458
10420 o133["50"] = o107;
10421 // 8459
10422 o107.getAttributeNode = f974244559_519;
10423 // undefined
10424 o107 = null;
10425 // 8461
10426 f974244559_519.returns.push(null);
10427 // 8463
10428 o107 = {};
10429 // 8464
10430 o133["51"] = o107;
10431 // 8465
10432 o107.getAttributeNode = f974244559_519;
10433 // undefined
10434 o107 = null;
10435 // 8467
10436 o107 = {};
10437 // 8468
10438 f974244559_519.returns.push(o107);
10439 // 8469
10440 o107.value = "u_0_35";
10441 // undefined
10442 o107 = null;
10443 // 8471
10444 o107 = {};
10445 // 8472
10446 o133["52"] = o107;
10447 // 8473
10448 o107.getAttributeNode = f974244559_519;
10449 // undefined
10450 o107 = null;
10451 // 8475
10452 f974244559_519.returns.push(null);
10453 // 8477
10454 o107 = {};
10455 // 8478
10456 o133["53"] = o107;
10457 // 8479
10458 o107.getAttributeNode = f974244559_519;
10459 // undefined
10460 o107 = null;
10461 // 8481
10462 f974244559_519.returns.push(null);
10463 // 8483
10464 o107 = {};
10465 // 8484
10466 o133["54"] = o107;
10467 // 8485
10468 o107.getAttributeNode = f974244559_519;
10469 // undefined
10470 o107 = null;
10471 // 8487
10472 f974244559_519.returns.push(null);
10473 // 8489
10474 o107 = {};
10475 // 8490
10476 o133["55"] = o107;
10477 // 8491
10478 o107.getAttributeNode = f974244559_519;
10479 // undefined
10480 o107 = null;
10481 // 8493
10482 f974244559_519.returns.push(null);
10483 // 8495
10484 o107 = {};
10485 // 8496
10486 o133["56"] = o107;
10487 // 8497
10488 o107.getAttributeNode = f974244559_519;
10489 // undefined
10490 o107 = null;
10491 // 8499
10492 f974244559_519.returns.push(null);
10493 // 8501
10494 o107 = {};
10495 // 8502
10496 o133["57"] = o107;
10497 // 8503
10498 o107.getAttributeNode = f974244559_519;
10499 // undefined
10500 o107 = null;
10501 // 8505
10502 f974244559_519.returns.push(null);
10503 // 8507
10504 o107 = {};
10505 // 8508
10506 o133["58"] = o107;
10507 // 8509
10508 o107.getAttributeNode = f974244559_519;
10509 // undefined
10510 o107 = null;
10511 // 8511
10512 f974244559_519.returns.push(null);
10513 // 8513
10514 o107 = {};
10515 // 8514
10516 o133["59"] = o107;
10517 // 8515
10518 o107.getAttributeNode = f974244559_519;
10519 // undefined
10520 o107 = null;
10521 // 8517
10522 f974244559_519.returns.push(null);
10523 // 8519
10524 o107 = {};
10525 // 8520
10526 o133["60"] = o107;
10527 // 8521
10528 o107.getAttributeNode = f974244559_519;
10529 // undefined
10530 o107 = null;
10531 // 8523
10532 f974244559_519.returns.push(null);
10533 // 8525
10534 o107 = {};
10535 // 8526
10536 o133["61"] = o107;
10537 // 8527
10538 o107.getAttributeNode = f974244559_519;
10539 // undefined
10540 o107 = null;
10541 // 8529
10542 f974244559_519.returns.push(null);
10543 // 8531
10544 o107 = {};
10545 // 8532
10546 o133["62"] = o107;
10547 // 8533
10548 o107.getAttributeNode = f974244559_519;
10549 // undefined
10550 o107 = null;
10551 // 8535
10552 f974244559_519.returns.push(null);
10553 // 8537
10554 o107 = {};
10555 // 8538
10556 o133["63"] = o107;
10557 // 8539
10558 o107.getAttributeNode = f974244559_519;
10559 // undefined
10560 o107 = null;
10561 // 8541
10562 o107 = {};
10563 // 8542
10564 f974244559_519.returns.push(o107);
10565 // 8543
10566 o107.value = "u_0_36";
10567 // undefined
10568 o107 = null;
10569 // 8545
10570 o107 = {};
10571 // 8546
10572 o133["64"] = o107;
10573 // 8547
10574 o107.getAttributeNode = f974244559_519;
10575 // undefined
10576 o107 = null;
10577 // 8549
10578 f974244559_519.returns.push(null);
10579 // 8551
10580 o107 = {};
10581 // 8552
10582 o133["65"] = o107;
10583 // 8553
10584 o107.getAttributeNode = f974244559_519;
10585 // undefined
10586 o107 = null;
10587 // 8555
10588 f974244559_519.returns.push(null);
10589 // 8557
10590 o107 = {};
10591 // 8558
10592 o133["66"] = o107;
10593 // 8559
10594 o107.getAttributeNode = f974244559_519;
10595 // undefined
10596 o107 = null;
10597 // 8561
10598 f974244559_519.returns.push(null);
10599 // 8563
10600 o107 = {};
10601 // 8564
10602 o133["67"] = o107;
10603 // 8565
10604 o107.getAttributeNode = f974244559_519;
10605 // undefined
10606 o107 = null;
10607 // 8567
10608 f974244559_519.returns.push(null);
10609 // 8569
10610 o107 = {};
10611 // 8570
10612 o133["68"] = o107;
10613 // 8571
10614 o107.getAttributeNode = f974244559_519;
10615 // undefined
10616 o107 = null;
10617 // 8573
10618 f974244559_519.returns.push(null);
10619 // 8575
10620 o107 = {};
10621 // 8576
10622 o133["69"] = o107;
10623 // 8577
10624 o107.getAttributeNode = f974244559_519;
10625 // undefined
10626 o107 = null;
10627 // 8579
10628 f974244559_519.returns.push(null);
10629 // 8581
10630 o107 = {};
10631 // 8582
10632 o133["70"] = o107;
10633 // 8583
10634 o107.getAttributeNode = f974244559_519;
10635 // undefined
10636 o107 = null;
10637 // 8585
10638 f974244559_519.returns.push(null);
10639 // 8587
10640 o107 = {};
10641 // 8588
10642 o133["71"] = o107;
10643 // 8589
10644 o107.getAttributeNode = f974244559_519;
10645 // undefined
10646 o107 = null;
10647 // 8591
10648 f974244559_519.returns.push(null);
10649 // 8593
10650 o107 = {};
10651 // 8594
10652 o133["72"] = o107;
10653 // 8595
10654 o107.getAttributeNode = f974244559_519;
10655 // undefined
10656 o107 = null;
10657 // 8597
10658 f974244559_519.returns.push(null);
10659 // 8599
10660 o107 = {};
10661 // 8600
10662 o133["73"] = o107;
10663 // undefined
10664 o133 = null;
10665 // 8601
10666 o107.getAttributeNode = f974244559_519;
10667 // undefined
10668 o107 = null;
10669 // 8603
10670 o107 = {};
10671 // 8604
10672 f974244559_519.returns.push(o107);
10673 // 8605
10674 o107.value = "u_0_38";
10675 // undefined
10676 o107 = null;
10677 // 8609
10678 o107 = {};
10679 // 8610
10680 f974244559_480.returns.push(o107);
10681 // 8611
10682 // 8612
10683 // 8613
10684 o107.getElementsByTagName = f974244559_514;
10685 // 8614
10686 o108 = {};
10687 // 8615
10688 f974244559_514.returns.push(o108);
10689 // 8616
10690 o108.length = 0;
10691 // undefined
10692 o108 = null;
10693 // 8618
10694 o108 = {};
10695 // 8619
10696 o107.childNodes = o108;
10697 // undefined
10698 o107 = null;
10699 // 8620
10700 o108.item = f974244559_517;
10701 // 8621
10702 o108.length = 1;
10703 // 8622
10704 o107 = {};
10705 // 8623
10706 o108["0"] = o107;
10707 // undefined
10708 o108 = null;
10709 // 8624
10710 o107.getAttributeNode = f974244559_519;
10711 // 8626
10712 f974244559_519.returns.push(null);
10713 // 8627
10714 o107.getElementsByTagName = f974244559_514;
10715 // undefined
10716 o107 = null;
10717 // 8629
10718 o107 = {};
10719 // 8630
10720 f974244559_514.returns.push(o107);
10721 // 8631
10722 o107.length = 11;
10723 // 8632
10724 o108 = {};
10725 // 8633
10726 o107["0"] = o108;
10727 // 8634
10728 o108.getAttributeNode = f974244559_519;
10729 // 8636
10730 f974244559_519.returns.push(null);
10731 // 8638
10732 o109 = {};
10733 // 8639
10734 o107["1"] = o109;
10735 // 8640
10736 o109.getAttributeNode = f974244559_519;
10737 // 8642
10738 f974244559_519.returns.push(null);
10739 // 8644
10740 o110 = {};
10741 // 8645
10742 o107["2"] = o110;
10743 // 8646
10744 o110.getAttributeNode = f974244559_519;
10745 // 8648
10746 f974244559_519.returns.push(null);
10747 // 8650
10748 o111 = {};
10749 // 8651
10750 o107["3"] = o111;
10751 // 8652
10752 o111.getAttributeNode = f974244559_519;
10753 // 8654
10754 f974244559_519.returns.push(null);
10755 // 8656
10756 o112 = {};
10757 // 8657
10758 o107["4"] = o112;
10759 // undefined
10760 o107 = null;
10761 // 8658
10762 o112.getAttributeNode = f974244559_519;
10763 // 8660
10764 o107 = {};
10765 // 8661
10766 f974244559_519.returns.push(o107);
10767 // 8662
10768 o107.value = "u_0_39";
10769 // 8667
10770 f974244559_519.returns.push(null);
10771 // 8670
10772 o113 = {};
10773 // 8671
10774 f974244559_514.returns.push(o113);
10775 // 8672
10776 o113.length = 11;
10777 // 8673
10778 o113["0"] = o108;
10779 // undefined
10780 o108 = null;
10781 // 8676
10782 f974244559_519.returns.push(null);
10783 // 8678
10784 o113["1"] = o109;
10785 // undefined
10786 o109 = null;
10787 // 8681
10788 f974244559_519.returns.push(null);
10789 // 8683
10790 o113["2"] = o110;
10791 // undefined
10792 o110 = null;
10793 // 8686
10794 f974244559_519.returns.push(null);
10795 // 8688
10796 o113["3"] = o111;
10797 // undefined
10798 o111 = null;
10799 // 8691
10800 f974244559_519.returns.push(null);
10801 // 8693
10802 o113["4"] = o112;
10803 // 8696
10804 f974244559_519.returns.push(o107);
10805 // undefined
10806 o107 = null;
10807 // 8699
10808 o107 = {};
10809 // 8700
10810 o113["5"] = o107;
10811 // 8701
10812 o107.getAttributeNode = f974244559_519;
10813 // undefined
10814 o107 = null;
10815 // 8703
10816 f974244559_519.returns.push(null);
10817 // 8705
10818 o107 = {};
10819 // 8706
10820 o113["6"] = o107;
10821 // 8707
10822 o107.getAttributeNode = f974244559_519;
10823 // undefined
10824 o107 = null;
10825 // 8709
10826 f974244559_519.returns.push(null);
10827 // 8711
10828 o107 = {};
10829 // 8712
10830 o113["7"] = o107;
10831 // 8713
10832 o107.getAttributeNode = f974244559_519;
10833 // undefined
10834 o107 = null;
10835 // 8715
10836 f974244559_519.returns.push(null);
10837 // 8717
10838 o107 = {};
10839 // 8718
10840 o113["8"] = o107;
10841 // undefined
10842 o113 = null;
10843 // 8719
10844 o107.getAttributeNode = f974244559_519;
10845 // 8721
10846 o108 = {};
10847 // 8722
10848 f974244559_519.returns.push(o108);
10849 // 8723
10850 o108.value = "u_0_3a";
10851 // undefined
10852 o108 = null;
10853 // 8727
10854 o108 = {};
10855 // 8728
10856 f974244559_480.returns.push(o108);
10857 // 8729
10858 // 8730
10859 // 8731
10860 o108.getElementsByTagName = f974244559_514;
10861 // 8732
10862 o109 = {};
10863 // 8733
10864 f974244559_514.returns.push(o109);
10865 // 8734
10866 o109.length = 0;
10867 // undefined
10868 o109 = null;
10869 // 8736
10870 o109 = {};
10871 // 8737
10872 o108.childNodes = o109;
10873 // undefined
10874 o108 = null;
10875 // 8738
10876 o109.item = f974244559_517;
10877 // 8739
10878 o109.length = 1;
10879 // 8740
10880 o108 = {};
10881 // 8741
10882 o109["0"] = o108;
10883 // undefined
10884 o109 = null;
10885 // 8742
10886 o108.getAttributeNode = f974244559_519;
10887 // 8744
10888 f974244559_519.returns.push(null);
10889 // 8745
10890 o108.getElementsByTagName = f974244559_514;
10891 // undefined
10892 o108 = null;
10893 // 8747
10894 o108 = {};
10895 // 8748
10896 f974244559_514.returns.push(o108);
10897 // 8749
10898 o108.length = 143;
10899 // 8750
10900 o109 = {};
10901 // 8751
10902 o108["0"] = o109;
10903 // 8752
10904 o109.getAttributeNode = f974244559_519;
10905 // 8754
10906 f974244559_519.returns.push(null);
10907 // 8756
10908 o110 = {};
10909 // 8757
10910 o108["1"] = o110;
10911 // 8758
10912 o110.getAttributeNode = f974244559_519;
10913 // 8760
10914 f974244559_519.returns.push(null);
10915 // 8762
10916 o111 = {};
10917 // 8763
10918 o108["2"] = o111;
10919 // 8764
10920 o111.getAttributeNode = f974244559_519;
10921 // 8766
10922 f974244559_519.returns.push(null);
10923 // 8768
10924 o113 = {};
10925 // 8769
10926 o108["3"] = o113;
10927 // 8770
10928 o113.getAttributeNode = f974244559_519;
10929 // 8772
10930 f974244559_519.returns.push(null);
10931 // 8774
10932 o114 = {};
10933 // 8775
10934 o108["4"] = o114;
10935 // 8776
10936 o114.getAttributeNode = f974244559_519;
10937 // 8778
10938 f974244559_519.returns.push(null);
10939 // 8780
10940 o115 = {};
10941 // 8781
10942 o108["5"] = o115;
10943 // 8782
10944 o115.getAttributeNode = f974244559_519;
10945 // 8784
10946 f974244559_519.returns.push(null);
10947 // 8786
10948 o116 = {};
10949 // 8787
10950 o108["6"] = o116;
10951 // 8788
10952 o116.getAttributeNode = f974244559_519;
10953 // 8790
10954 f974244559_519.returns.push(null);
10955 // 8792
10956 o117 = {};
10957 // 8793
10958 o108["7"] = o117;
10959 // 8794
10960 o117.getAttributeNode = f974244559_519;
10961 // 8796
10962 f974244559_519.returns.push(null);
10963 // 8798
10964 o118 = {};
10965 // 8799
10966 o108["8"] = o118;
10967 // 8800
10968 o118.getAttributeNode = f974244559_519;
10969 // 8802
10970 f974244559_519.returns.push(null);
10971 // 8804
10972 o119 = {};
10973 // 8805
10974 o108["9"] = o119;
10975 // 8806
10976 o119.getAttributeNode = f974244559_519;
10977 // 8808
10978 f974244559_519.returns.push(null);
10979 // 8810
10980 o120 = {};
10981 // 8811
10982 o108["10"] = o120;
10983 // 8812
10984 o120.getAttributeNode = f974244559_519;
10985 // 8814
10986 f974244559_519.returns.push(null);
10987 // 8816
10988 o121 = {};
10989 // 8817
10990 o108["11"] = o121;
10991 // 8818
10992 o121.getAttributeNode = f974244559_519;
10993 // 8820
10994 f974244559_519.returns.push(null);
10995 // 8822
10996 o122 = {};
10997 // 8823
10998 o108["12"] = o122;
10999 // 8824
11000 o122.getAttributeNode = f974244559_519;
11001 // 8826
11002 f974244559_519.returns.push(null);
11003 // 8828
11004 o123 = {};
11005 // 8829
11006 o108["13"] = o123;
11007 // 8830
11008 o123.getAttributeNode = f974244559_519;
11009 // 8832
11010 f974244559_519.returns.push(null);
11011 // 8834
11012 o124 = {};
11013 // 8835
11014 o108["14"] = o124;
11015 // 8836
11016 o124.getAttributeNode = f974244559_519;
11017 // 8838
11018 f974244559_519.returns.push(null);
11019 // 8840
11020 o125 = {};
11021 // 8841
11022 o108["15"] = o125;
11023 // 8842
11024 o125.getAttributeNode = f974244559_519;
11025 // 8844
11026 f974244559_519.returns.push(null);
11027 // 8846
11028 o126 = {};
11029 // 8847
11030 o108["16"] = o126;
11031 // 8848
11032 o126.getAttributeNode = f974244559_519;
11033 // 8850
11034 f974244559_519.returns.push(null);
11035 // 8852
11036 o127 = {};
11037 // 8853
11038 o108["17"] = o127;
11039 // 8854
11040 o127.getAttributeNode = f974244559_519;
11041 // 8856
11042 f974244559_519.returns.push(null);
11043 // 8858
11044 o128 = {};
11045 // 8859
11046 o108["18"] = o128;
11047 // 8860
11048 o128.getAttributeNode = f974244559_519;
11049 // 8862
11050 f974244559_519.returns.push(null);
11051 // 8864
11052 o129 = {};
11053 // 8865
11054 o108["19"] = o129;
11055 // 8866
11056 o129.getAttributeNode = f974244559_519;
11057 // 8868
11058 f974244559_519.returns.push(null);
11059 // 8870
11060 o130 = {};
11061 // 8871
11062 o108["20"] = o130;
11063 // 8872
11064 o130.getAttributeNode = f974244559_519;
11065 // 8874
11066 f974244559_519.returns.push(null);
11067 // 8876
11068 o131 = {};
11069 // 8877
11070 o108["21"] = o131;
11071 // 8878
11072 o131.getAttributeNode = f974244559_519;
11073 // 8880
11074 f974244559_519.returns.push(null);
11075 // 8882
11076 o132 = {};
11077 // 8883
11078 o108["22"] = o132;
11079 // undefined
11080 o108 = null;
11081 // 8884
11082 o132.getAttributeNode = f974244559_519;
11083 // 8886
11084 o108 = {};
11085 // 8887
11086 f974244559_519.returns.push(o108);
11087 // 8888
11088 o108.value = "u_0_3e";
11089 // 8893
11090 f974244559_519.returns.push(null);
11091 // 8896
11092 o133 = {};
11093 // 8897
11094 f974244559_514.returns.push(o133);
11095 // 8898
11096 o133.length = 143;
11097 // 8899
11098 o133["0"] = o109;
11099 // undefined
11100 o109 = null;
11101 // 8902
11102 f974244559_519.returns.push(null);
11103 // 8904
11104 o133["1"] = o110;
11105 // undefined
11106 o110 = null;
11107 // 8907
11108 f974244559_519.returns.push(null);
11109 // 8909
11110 o133["2"] = o111;
11111 // undefined
11112 o111 = null;
11113 // 8912
11114 f974244559_519.returns.push(null);
11115 // 8914
11116 o133["3"] = o113;
11117 // undefined
11118 o113 = null;
11119 // 8917
11120 f974244559_519.returns.push(null);
11121 // 8919
11122 o133["4"] = o114;
11123 // undefined
11124 o114 = null;
11125 // 8922
11126 f974244559_519.returns.push(null);
11127 // 8924
11128 o133["5"] = o115;
11129 // undefined
11130 o115 = null;
11131 // 8927
11132 f974244559_519.returns.push(null);
11133 // 8929
11134 o133["6"] = o116;
11135 // undefined
11136 o116 = null;
11137 // 8932
11138 f974244559_519.returns.push(null);
11139 // 8934
11140 o133["7"] = o117;
11141 // undefined
11142 o117 = null;
11143 // 8937
11144 f974244559_519.returns.push(null);
11145 // 8939
11146 o133["8"] = o118;
11147 // undefined
11148 o118 = null;
11149 // 8942
11150 f974244559_519.returns.push(null);
11151 // 8944
11152 o133["9"] = o119;
11153 // undefined
11154 o119 = null;
11155 // 8947
11156 f974244559_519.returns.push(null);
11157 // 8949
11158 o133["10"] = o120;
11159 // undefined
11160 o120 = null;
11161 // 8952
11162 f974244559_519.returns.push(null);
11163 // 8954
11164 o133["11"] = o121;
11165 // undefined
11166 o121 = null;
11167 // 8957
11168 f974244559_519.returns.push(null);
11169 // 8959
11170 o133["12"] = o122;
11171 // undefined
11172 o122 = null;
11173 // 8962
11174 f974244559_519.returns.push(null);
11175 // 8964
11176 o133["13"] = o123;
11177 // undefined
11178 o123 = null;
11179 // 8967
11180 f974244559_519.returns.push(null);
11181 // 8969
11182 o133["14"] = o124;
11183 // undefined
11184 o124 = null;
11185 // 8972
11186 f974244559_519.returns.push(null);
11187 // 8974
11188 o133["15"] = o125;
11189 // undefined
11190 o125 = null;
11191 // 8977
11192 f974244559_519.returns.push(null);
11193 // 8979
11194 o133["16"] = o126;
11195 // undefined
11196 o126 = null;
11197 // 8982
11198 f974244559_519.returns.push(null);
11199 // 8984
11200 o133["17"] = o127;
11201 // undefined
11202 o127 = null;
11203 // 8987
11204 f974244559_519.returns.push(null);
11205 // 8989
11206 o133["18"] = o128;
11207 // undefined
11208 o128 = null;
11209 // 8992
11210 f974244559_519.returns.push(null);
11211 // 8994
11212 o133["19"] = o129;
11213 // undefined
11214 o129 = null;
11215 // 8997
11216 f974244559_519.returns.push(null);
11217 // 8999
11218 o133["20"] = o130;
11219 // undefined
11220 o130 = null;
11221 // 9002
11222 f974244559_519.returns.push(null);
11223 // 9004
11224 o133["21"] = o131;
11225 // undefined
11226 o131 = null;
11227 // 9007
11228 f974244559_519.returns.push(null);
11229 // 9009
11230 o133["22"] = o132;
11231 // undefined
11232 o132 = null;
11233 // 9012
11234 f974244559_519.returns.push(o108);
11235 // undefined
11236 o108 = null;
11237 // 9015
11238 o108 = {};
11239 // 9016
11240 o133["23"] = o108;
11241 // 9017
11242 o108.getAttributeNode = f974244559_519;
11243 // undefined
11244 o108 = null;
11245 // 9019
11246 f974244559_519.returns.push(null);
11247 // 9021
11248 o108 = {};
11249 // 9022
11250 o133["24"] = o108;
11251 // 9023
11252 o108.getAttributeNode = f974244559_519;
11253 // undefined
11254 o108 = null;
11255 // 9025
11256 f974244559_519.returns.push(null);
11257 // 9027
11258 o108 = {};
11259 // 9028
11260 o133["25"] = o108;
11261 // 9029
11262 o108.getAttributeNode = f974244559_519;
11263 // undefined
11264 o108 = null;
11265 // 9031
11266 f974244559_519.returns.push(null);
11267 // 9033
11268 o108 = {};
11269 // 9034
11270 o133["26"] = o108;
11271 // 9035
11272 o108.getAttributeNode = f974244559_519;
11273 // undefined
11274 o108 = null;
11275 // 9037
11276 f974244559_519.returns.push(null);
11277 // 9039
11278 o108 = {};
11279 // 9040
11280 o133["27"] = o108;
11281 // 9041
11282 o108.getAttributeNode = f974244559_519;
11283 // undefined
11284 o108 = null;
11285 // 9043
11286 f974244559_519.returns.push(null);
11287 // 9045
11288 o108 = {};
11289 // 9046
11290 o133["28"] = o108;
11291 // 9047
11292 o108.getAttributeNode = f974244559_519;
11293 // undefined
11294 o108 = null;
11295 // 9049
11296 f974244559_519.returns.push(null);
11297 // 9051
11298 o108 = {};
11299 // 9052
11300 o133["29"] = o108;
11301 // 9053
11302 o108.getAttributeNode = f974244559_519;
11303 // undefined
11304 o108 = null;
11305 // 9055
11306 f974244559_519.returns.push(null);
11307 // 9057
11308 o108 = {};
11309 // 9058
11310 o133["30"] = o108;
11311 // 9059
11312 o108.getAttributeNode = f974244559_519;
11313 // undefined
11314 o108 = null;
11315 // 9061
11316 f974244559_519.returns.push(null);
11317 // 9063
11318 o108 = {};
11319 // 9064
11320 o133["31"] = o108;
11321 // 9065
11322 o108.getAttributeNode = f974244559_519;
11323 // undefined
11324 o108 = null;
11325 // 9067
11326 f974244559_519.returns.push(null);
11327 // 9069
11328 o108 = {};
11329 // 9070
11330 o133["32"] = o108;
11331 // 9071
11332 o108.getAttributeNode = f974244559_519;
11333 // undefined
11334 o108 = null;
11335 // 9073
11336 f974244559_519.returns.push(null);
11337 // 9075
11338 o108 = {};
11339 // 9076
11340 o133["33"] = o108;
11341 // 9077
11342 o108.getAttributeNode = f974244559_519;
11343 // undefined
11344 o108 = null;
11345 // 9079
11346 f974244559_519.returns.push(null);
11347 // 9081
11348 o108 = {};
11349 // 9082
11350 o133["34"] = o108;
11351 // 9083
11352 o108.getAttributeNode = f974244559_519;
11353 // undefined
11354 o108 = null;
11355 // 9085
11356 f974244559_519.returns.push(null);
11357 // 9087
11358 o108 = {};
11359 // 9088
11360 o133["35"] = o108;
11361 // 9089
11362 o108.getAttributeNode = f974244559_519;
11363 // undefined
11364 o108 = null;
11365 // 9091
11366 f974244559_519.returns.push(null);
11367 // 9093
11368 o108 = {};
11369 // 9094
11370 o133["36"] = o108;
11371 // 9095
11372 o108.getAttributeNode = f974244559_519;
11373 // undefined
11374 o108 = null;
11375 // 9097
11376 f974244559_519.returns.push(null);
11377 // 9099
11378 o108 = {};
11379 // 9100
11380 o133["37"] = o108;
11381 // 9101
11382 o108.getAttributeNode = f974244559_519;
11383 // undefined
11384 o108 = null;
11385 // 9103
11386 f974244559_519.returns.push(null);
11387 // 9105
11388 o108 = {};
11389 // 9106
11390 o133["38"] = o108;
11391 // 9107
11392 o108.getAttributeNode = f974244559_519;
11393 // undefined
11394 o108 = null;
11395 // 9109
11396 f974244559_519.returns.push(null);
11397 // 9111
11398 o108 = {};
11399 // 9112
11400 o133["39"] = o108;
11401 // 9113
11402 o108.getAttributeNode = f974244559_519;
11403 // undefined
11404 o108 = null;
11405 // 9115
11406 f974244559_519.returns.push(null);
11407 // 9117
11408 o108 = {};
11409 // 9118
11410 o133["40"] = o108;
11411 // 9119
11412 o108.getAttributeNode = f974244559_519;
11413 // undefined
11414 o108 = null;
11415 // 9121
11416 f974244559_519.returns.push(null);
11417 // 9123
11418 o108 = {};
11419 // 9124
11420 o133["41"] = o108;
11421 // 9125
11422 o108.getAttributeNode = f974244559_519;
11423 // undefined
11424 o108 = null;
11425 // 9127
11426 f974244559_519.returns.push(null);
11427 // 9129
11428 o108 = {};
11429 // 9130
11430 o133["42"] = o108;
11431 // 9131
11432 o108.getAttributeNode = f974244559_519;
11433 // undefined
11434 o108 = null;
11435 // 9133
11436 f974244559_519.returns.push(null);
11437 // 9135
11438 o108 = {};
11439 // 9136
11440 o133["43"] = o108;
11441 // 9137
11442 o108.getAttributeNode = f974244559_519;
11443 // undefined
11444 o108 = null;
11445 // 9139
11446 f974244559_519.returns.push(null);
11447 // 9141
11448 o108 = {};
11449 // 9142
11450 o133["44"] = o108;
11451 // 9143
11452 o108.getAttributeNode = f974244559_519;
11453 // undefined
11454 o108 = null;
11455 // 9145
11456 f974244559_519.returns.push(null);
11457 // 9147
11458 o108 = {};
11459 // 9148
11460 o133["45"] = o108;
11461 // 9149
11462 o108.getAttributeNode = f974244559_519;
11463 // undefined
11464 o108 = null;
11465 // 9151
11466 f974244559_519.returns.push(null);
11467 // 9153
11468 o108 = {};
11469 // 9154
11470 o133["46"] = o108;
11471 // 9155
11472 o108.getAttributeNode = f974244559_519;
11473 // undefined
11474 o108 = null;
11475 // 9157
11476 f974244559_519.returns.push(null);
11477 // 9159
11478 o108 = {};
11479 // 9160
11480 o133["47"] = o108;
11481 // 9161
11482 o108.getAttributeNode = f974244559_519;
11483 // undefined
11484 o108 = null;
11485 // 9163
11486 f974244559_519.returns.push(null);
11487 // 9165
11488 o108 = {};
11489 // 9166
11490 o133["48"] = o108;
11491 // 9167
11492 o108.getAttributeNode = f974244559_519;
11493 // undefined
11494 o108 = null;
11495 // 9169
11496 f974244559_519.returns.push(null);
11497 // 9171
11498 o108 = {};
11499 // 9172
11500 o133["49"] = o108;
11501 // 9173
11502 o108.getAttributeNode = f974244559_519;
11503 // undefined
11504 o108 = null;
11505 // 9175
11506 f974244559_519.returns.push(null);
11507 // 9177
11508 o108 = {};
11509 // 9178
11510 o133["50"] = o108;
11511 // 9179
11512 o108.getAttributeNode = f974244559_519;
11513 // undefined
11514 o108 = null;
11515 // 9181
11516 f974244559_519.returns.push(null);
11517 // 9183
11518 o108 = {};
11519 // 9184
11520 o133["51"] = o108;
11521 // 9185
11522 o108.getAttributeNode = f974244559_519;
11523 // undefined
11524 o108 = null;
11525 // 9187
11526 f974244559_519.returns.push(null);
11527 // 9189
11528 o108 = {};
11529 // 9190
11530 o133["52"] = o108;
11531 // 9191
11532 o108.getAttributeNode = f974244559_519;
11533 // undefined
11534 o108 = null;
11535 // 9193
11536 f974244559_519.returns.push(null);
11537 // 9195
11538 o108 = {};
11539 // 9196
11540 o133["53"] = o108;
11541 // 9197
11542 o108.getAttributeNode = f974244559_519;
11543 // undefined
11544 o108 = null;
11545 // 9199
11546 f974244559_519.returns.push(null);
11547 // 9201
11548 o108 = {};
11549 // 9202
11550 o133["54"] = o108;
11551 // 9203
11552 o108.getAttributeNode = f974244559_519;
11553 // undefined
11554 o108 = null;
11555 // 9205
11556 f974244559_519.returns.push(null);
11557 // 9207
11558 o108 = {};
11559 // 9208
11560 o133["55"] = o108;
11561 // 9209
11562 o108.getAttributeNode = f974244559_519;
11563 // undefined
11564 o108 = null;
11565 // 9211
11566 f974244559_519.returns.push(null);
11567 // 9213
11568 o108 = {};
11569 // 9214
11570 o133["56"] = o108;
11571 // 9215
11572 o108.getAttributeNode = f974244559_519;
11573 // undefined
11574 o108 = null;
11575 // 9217
11576 o108 = {};
11577 // 9218
11578 f974244559_519.returns.push(o108);
11579 // 9219
11580 o108.value = "u_0_3c";
11581 // undefined
11582 o108 = null;
11583 // 9221
11584 o108 = {};
11585 // 9222
11586 o133["57"] = o108;
11587 // 9223
11588 o108.getAttributeNode = f974244559_519;
11589 // undefined
11590 o108 = null;
11591 // 9225
11592 f974244559_519.returns.push(null);
11593 // 9227
11594 o108 = {};
11595 // 9228
11596 o133["58"] = o108;
11597 // 9229
11598 o108.getAttributeNode = f974244559_519;
11599 // undefined
11600 o108 = null;
11601 // 9231
11602 f974244559_519.returns.push(null);
11603 // 9233
11604 o108 = {};
11605 // 9234
11606 o133["59"] = o108;
11607 // 9235
11608 o108.getAttributeNode = f974244559_519;
11609 // undefined
11610 o108 = null;
11611 // 9237
11612 f974244559_519.returns.push(null);
11613 // 9239
11614 o108 = {};
11615 // 9240
11616 o133["60"] = o108;
11617 // 9241
11618 o108.getAttributeNode = f974244559_519;
11619 // undefined
11620 o108 = null;
11621 // 9243
11622 f974244559_519.returns.push(null);
11623 // 9245
11624 o108 = {};
11625 // 9246
11626 o133["61"] = o108;
11627 // 9247
11628 o108.getAttributeNode = f974244559_519;
11629 // undefined
11630 o108 = null;
11631 // 9249
11632 f974244559_519.returns.push(null);
11633 // 9251
11634 o108 = {};
11635 // 9252
11636 o133["62"] = o108;
11637 // 9253
11638 o108.getAttributeNode = f974244559_519;
11639 // undefined
11640 o108 = null;
11641 // 9255
11642 f974244559_519.returns.push(null);
11643 // 9257
11644 o108 = {};
11645 // 9258
11646 o133["63"] = o108;
11647 // 9259
11648 o108.getAttributeNode = f974244559_519;
11649 // undefined
11650 o108 = null;
11651 // 9261
11652 f974244559_519.returns.push(null);
11653 // 9263
11654 o108 = {};
11655 // 9264
11656 o133["64"] = o108;
11657 // 9265
11658 o108.getAttributeNode = f974244559_519;
11659 // undefined
11660 o108 = null;
11661 // 9267
11662 f974244559_519.returns.push(null);
11663 // 9269
11664 o108 = {};
11665 // 9270
11666 o133["65"] = o108;
11667 // 9271
11668 o108.getAttributeNode = f974244559_519;
11669 // undefined
11670 o108 = null;
11671 // 9273
11672 f974244559_519.returns.push(null);
11673 // 9275
11674 o108 = {};
11675 // 9276
11676 o133["66"] = o108;
11677 // 9277
11678 o108.getAttributeNode = f974244559_519;
11679 // undefined
11680 o108 = null;
11681 // 9279
11682 f974244559_519.returns.push(null);
11683 // 9281
11684 o108 = {};
11685 // 9282
11686 o133["67"] = o108;
11687 // 9283
11688 o108.getAttributeNode = f974244559_519;
11689 // undefined
11690 o108 = null;
11691 // 9285
11692 f974244559_519.returns.push(null);
11693 // 9287
11694 o108 = {};
11695 // 9288
11696 o133["68"] = o108;
11697 // 9289
11698 o108.getAttributeNode = f974244559_519;
11699 // undefined
11700 o108 = null;
11701 // 9291
11702 o108 = {};
11703 // 9292
11704 f974244559_519.returns.push(o108);
11705 // 9293
11706 o108.value = "u_0_3d";
11707 // undefined
11708 o108 = null;
11709 // 9295
11710 o108 = {};
11711 // 9296
11712 o133["69"] = o108;
11713 // 9297
11714 o108.getAttributeNode = f974244559_519;
11715 // undefined
11716 o108 = null;
11717 // 9299
11718 f974244559_519.returns.push(null);
11719 // 9301
11720 o108 = {};
11721 // 9302
11722 o133["70"] = o108;
11723 // 9303
11724 o108.getAttributeNode = f974244559_519;
11725 // undefined
11726 o108 = null;
11727 // 9305
11728 f974244559_519.returns.push(null);
11729 // 9307
11730 o108 = {};
11731 // 9308
11732 o133["71"] = o108;
11733 // 9309
11734 o108.getAttributeNode = f974244559_519;
11735 // undefined
11736 o108 = null;
11737 // 9311
11738 f974244559_519.returns.push(null);
11739 // 9313
11740 o108 = {};
11741 // 9314
11742 o133["72"] = o108;
11743 // 9315
11744 o108.getAttributeNode = f974244559_519;
11745 // undefined
11746 o108 = null;
11747 // 9317
11748 f974244559_519.returns.push(null);
11749 // 9319
11750 o108 = {};
11751 // 9320
11752 o133["73"] = o108;
11753 // 9321
11754 o108.getAttributeNode = f974244559_519;
11755 // undefined
11756 o108 = null;
11757 // 9323
11758 f974244559_519.returns.push(null);
11759 // 9325
11760 o108 = {};
11761 // 9326
11762 o133["74"] = o108;
11763 // 9327
11764 o108.getAttributeNode = f974244559_519;
11765 // undefined
11766 o108 = null;
11767 // 9329
11768 f974244559_519.returns.push(null);
11769 // 9331
11770 o108 = {};
11771 // 9332
11772 o133["75"] = o108;
11773 // 9333
11774 o108.getAttributeNode = f974244559_519;
11775 // undefined
11776 o108 = null;
11777 // 9335
11778 f974244559_519.returns.push(null);
11779 // 9337
11780 o108 = {};
11781 // 9338
11782 o133["76"] = o108;
11783 // 9339
11784 o108.getAttributeNode = f974244559_519;
11785 // undefined
11786 o108 = null;
11787 // 9341
11788 f974244559_519.returns.push(null);
11789 // 9343
11790 o108 = {};
11791 // 9344
11792 o133["77"] = o108;
11793 // 9345
11794 o108.getAttributeNode = f974244559_519;
11795 // undefined
11796 o108 = null;
11797 // 9347
11798 f974244559_519.returns.push(null);
11799 // 9349
11800 o108 = {};
11801 // 9350
11802 o133["78"] = o108;
11803 // undefined
11804 o133 = null;
11805 // 9351
11806 o108.getAttributeNode = f974244559_519;
11807 // undefined
11808 o108 = null;
11809 // 9353
11810 o108 = {};
11811 // 9354
11812 f974244559_519.returns.push(o108);
11813 // 9355
11814 o108.value = "u_0_3f";
11815 // undefined
11816 o108 = null;
11817 // 9426
11818 f974244559_471.returns.push(1373491289858);
11819 // 9430
11820 o108 = {};
11821 // 9431
11822 f974244559_478.returns.push(o108);
11823 // 9433
11824 f974244559_482.returns.push(o108);
11825 // undefined
11826 o108 = null;
11827 // 9436
11828 f974244559_471.returns.push(1373491289859);
11829 // 9439
11830 f974244559_471.returns.push(1373491289860);
11831 // 9442
11832 f974244559_471.returns.push(1373491289860);
11833 // 9444
11834 o108 = {};
11835 // 9445
11836 f974244559_502.returns.push(o108);
11837 // 9447
11838 o109 = {};
11839 // 9448
11840 f974244559_502.returns.push(o109);
11841 // 9449
11842 o110 = {};
11843 // 9450
11844 o109.firstChild = o110;
11845 // 9452
11846 o110.nodeType = 8;
11847 // 9454
11848 o110.nodeValue = " <div id=\"fbRequestsJewelLoading\"><div id=\"fbRequestsJewelLoadingContent\"><div class=\"uiHeader uiHeaderBottomBorder jewelHeader\"><div class=\"clearfix uiHeaderTop\"><div class=\"rfloat\"><h3 class=\"accessible_elem\">Friend Requests</h3><div class=\"uiHeaderActions fsm fwn fcg\"><a href=\"http://jsbngssl.www.facebook.com/?sk=ff\" accesskey=\"3\">Find Friends</a> · <a ajaxify=\"/ajax/settings/granular_privacy/can_friend.php\" rel=\"dialog\" href=\"#\" role=\"button\">Settings</a></div></div><div><h3 class=\"uiHeaderTitle\" aria-hidden=\"true\">Friend Requests</h3></div></div></div><img class=\"jewelLoading img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"jewelFooter\"><a class=\"seeMore\" href=\"/friends/requests/\"><span>See All</span></a></div></div> ";
11849 // undefined
11850 o110 = null;
11851 // 9455
11852 o109.parentNode = o25;
11853 // 9457
11854 f974244559_507.returns.push(o109);
11855 // undefined
11856 o109 = null;
11857 // 9458
11858 // 9459
11859 o108.getAttribute = f974244559_500;
11860 // 9460
11861 f974244559_500.returns.push(null);
11862 // 9461
11863 o108.setAttribute = f974244559_643;
11864 // 9462
11865 f974244559_643.returns.push(undefined);
11866 // 9464
11867 f974244559_471.returns.push(1373491289862);
11868 // 9468
11869 o109 = {};
11870 // 9469
11871 f974244559_478.returns.push(o109);
11872 // 9471
11873 f974244559_482.returns.push(o109);
11874 // undefined
11875 o109 = null;
11876 // 9474
11877 f974244559_471.returns.push(1373491289863);
11878 // 9477
11879 f974244559_471.returns.push(1373491289871);
11880 // 9480
11881 f974244559_471.returns.push(1373491289871);
11882 // 9482
11883 o109 = {};
11884 // 9483
11885 f974244559_502.returns.push(o109);
11886 // 9485
11887 o110 = {};
11888 // 9486
11889 f974244559_502.returns.push(o110);
11890 // 9487
11891 o111 = {};
11892 // 9488
11893 o110.firstChild = o111;
11894 // 9490
11895 o111.nodeType = 8;
11896 // 9492
11897 o111.nodeValue = " <div class=\"fbTimelineStickyHeader fixed_elem fbTimelineStickyHeaderHidden\" aria-hidden=\"true\" id=\"u_0_3q\"><div class=\"stickyHeaderWrap clearfix\"><div class=\"back\"></div><div class=\"name\"><a class=\"profileThumb\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\"><img class=\"_s0 _rw img\" src=\"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/276274_1055580469_962040234_q.jpg\" alt=\"\" /></a><span class=\"uiButtonGroup fbStickyHeaderBreadcrumb uiButtonGroupOverlay\" id=\"u_0_3p\"><span class=\"firstItem uiButtonGroupItem buttonItem\"><a class=\"nameButton uiButton uiButtonOverlay\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\" role=\"button\"><span class=\"uiButtonText\">Gregor Richards</span></a></span><span class=\"uiButtonGroupItem selectorItem\"><div class=\"uiSelector inlineBlock pageMenu uiSelectorNormal uiSelectorDynamicLabel\"><div class=\"uiToggle wrap\"><a class=\"pageMenuButton uiSelectorButton uiButton uiButtonOverlay\" href=\"#\" role=\"button\" aria-haspopup=\"1\" data-label=\"Timeline\" data-length=\"30\" rel=\"toggle\"><span class=\"uiButtonText\">Timeline</span></a><div class=\"uiSelectorMenuWrapper uiToggleFlyout\"><div role=\"menu\" class=\"uiMenu uiSelectorMenu\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem uiMenuItemCheckbox checked\" data-label=\"Timeline\"><a class=\"itemAnchor itemWithIcon\" role=\"menuitemcheckbox\" tabindex=\"0\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\" aria-checked=\"true\"><i class=\"mrs itemIcon img sp_3fr8aa sx_22ecb2\"></i><span class=\"itemLabel fsm\">Timeline</span></a></li><li class=\"uiMenuItem uiMenuItemCheckbox\" data-label=\"About\"><a class=\"itemAnchor itemWithIcon\" role=\"menuitemcheckbox\" tabindex=\"-1\" href=\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby/about\" aria-checked=\"false\"><i class=\"mrs itemIcon img sp_4p6kmz sx_fb2987\"></i><span class=\"itemLabel fsm\">About</span></a></li><li class=\"uiMenuSeparator separator hidden_elem\"></li></ul></div></div></div></div></span><span class=\"lastItem uiButtonGroupItem selectorItem\"><div class=\"uiSelector inlineBlock sectionMenu uiSelectorNormal uiSelectorDynamicLabel\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiButton uiButtonOverlay\" href=\"#\" role=\"button\" aria-haspopup=\"1\" data-length=\"30\" rel=\"toggle\"><span class=\"uiButtonText\">Now</span></a><div class=\"uiSelectorMenuWrapper uiToggleFlyout\"><div role=\"menu\" class=\"uiMenu uiSelectorMenu\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption checked\" data-label=\"Now\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"0\" href=\"#\" aria-checked=\"true\" data-key=\"recent\"><span class=\"itemLabel fsm\">Now</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"2013\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"year_2013\"><span class=\"itemLabel fsm\">2013</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"2012\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"year_2012\"><span class=\"itemLabel fsm\">2012</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"2011\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"year_2011\"><span class=\"itemLabel fsm\">2011</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"2010\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"year_2010\"><span class=\"itemLabel fsm\">2010</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"2009\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"year_2009\"><span class=\"itemLabel fsm\">2009</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"2008\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"year_2008\"><span class=\"itemLabel fsm\">2008</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption\" data-label=\"Born\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\" data-key=\"way_back\"><span class=\"itemLabel fsm\">Born</span></a></li></ul></div></div></div><select><option value=\"\"></option><option value=\"recent\" selected=\"1\">Now</option><option value=\"year_2013\">2013</option><option value=\"year_2012\">2012</option><option value=\"year_2011\">2011</option><option value=\"year_2010\">2010</option><option value=\"year_2009\">2009</option><option value=\"year_2008\">2008</option><option value=\"way_back\">Born</option></select></div></span><span class=\"uiButtonGroupItem selectorItem hidden_elem\"><div class=\"uiSelector inlineBlock subsectionMenu uiSelectorNormal uiSelectorDynamicLabel\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiButton uiButtonOverlay\" href=\"#\" role=\"button\" aria-haspopup=\"1\" data-length=\"30\" rel=\"toggle\"><span class=\"uiButtonText\">Highlights</span></a><div class=\"uiSelectorMenuWrapper uiToggleFlyout\"><div role=\"menu\" class=\"uiMenu uiSelectorMenu\"><ul class=\"uiMenuInner\"><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption highlights checked\" data-label=\"Highlights\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"0\" href=\"#\" aria-checked=\"true\"><span class=\"itemLabel fsm\">Highlights</span></a></li><li class=\"uiMenuItem uiMenuItemRadio uiSelectorOption allStories\" data-label=\"All Stories\"><a class=\"itemAnchor\" role=\"menuitemradio\" tabindex=\"-1\" href=\"#\" aria-checked=\"false\"><span class=\"itemLabel fsm\">All Stories</span></a></li><li class=\"uiMenuSeparator separator hidden_elem\"></li></ul></div></div></div><select><option value=\"\"></option><option value=\"highlights\" selected=\"1\">Highlights</option><option value=\"allStories\">All Stories</option></select></div></span></span></div><div class=\"actions\"><span class=\"uiButtonGroup fbTimelineConnectButtonGroup uiButtonGroupOverlay\" id=\"u_0_3i\"><span class=\"firstItem uiButtonGroupItem buttonItem\"><div class=\"FriendButton\" id=\"u_0_3n\"><label class=\"FriendRequestAdd addButton uiButton uiButtonOverlay uiButtonLarge\" for=\"u_0_3o\"><i class=\"mrs img sp_3fr8aa sx_ec0c2b\"></i><input value=\"Add Friend\" type=\"button\" id=\"u_0_3o\" /></label><a class=\"FriendRequestOutgoing enableFriendListFlyout outgoingButton enableFriendListFlyout hidden_elem uiButton uiButtonOverlay uiButtonLarge\" href=\"#\" role=\"button\" data-profileid=\"1055580469\" data-flloc=\"sticky_header\" data-cansuggestfriends=\"false\"><i class=\"mrs img sp_3fr8aa sx_ec0c2b\"></i><span class=\"uiButtonText\">Friend Request Sent</span></a></div></span><span class=\"lastItem uiButtonGroupItem buttonItem\"><span class=\"_52m- _3lt\"><a class=\"uiButton uiButtonOverlay uiButtonLarge\" href=\"#\" role=\"button\" ajaxify=\"/ajax/follow/follow_profile.php?profile_id=1055580469&amp;location=1\" rel=\"async-post\" id=\"u_0_3j\"><i class=\"mrs img sp_3fr8aa sx_3f5e05\"></i><span class=\"uiButtonText\">Follow</span></a><label class=\"profileFollowButton _52nf _3spg hidden_elem uiButton uiButtonOverlay uiButtonLarge\" id=\"u_0_3k\" for=\"u_0_3m\"><i class=\"mrs img sp_3fr8aa sx_0bef0b\"></i><input value=\"Following\" aria-haspopup=\"1\" data-profileid=\"1055580469\" type=\"submit\" id=\"u_0_3m\" /></label></span></span></span></div></div></div> ";
11898 // undefined
11899 o111 = null;
11900 // 9493
11901 o110.parentNode = o25;
11902 // 9495
11903 f974244559_507.returns.push(o110);
11904 // undefined
11905 o110 = null;
11906 // 9496
11907 // 9497
11908 o109.getAttribute = f974244559_500;
11909 // undefined
11910 o109 = null;
11911 // 9498
11912 f974244559_500.returns.push("timeline_sticky_header");
11913 // 9505
11914 o109 = {};
11915 // 9506
11916 f974244559_480.returns.push(o109);
11917 // 9507
11918 // 9508
11919 // 9509
11920 o109.getElementsByTagName = f974244559_514;
11921 // 9510
11922 o110 = {};
11923 // 9511
11924 f974244559_514.returns.push(o110);
11925 // 9512
11926 o110.length = 0;
11927 // undefined
11928 o110 = null;
11929 // 9514
11930 o110 = {};
11931 // 9515
11932 o109.childNodes = o110;
11933 // undefined
11934 o109 = null;
11935 // 9516
11936 o110.item = f974244559_517;
11937 // 9517
11938 o110.length = 1;
11939 // 9518
11940 o109 = {};
11941 // 9519
11942 o110["0"] = o109;
11943 // undefined
11944 o110 = null;
11945 // 9520
11946 o109.getAttributeNode = f974244559_519;
11947 // 9522
11948 f974244559_519.returns.push(null);
11949 // 9523
11950 o109.getElementsByTagName = f974244559_514;
11951 // 9525
11952 o110 = {};
11953 // 9526
11954 f974244559_514.returns.push(o110);
11955 // 9527
11956 o110.length = 4;
11957 // 9528
11958 o111 = {};
11959 // 9529
11960 o110["0"] = o111;
11961 // 9530
11962 o111.getAttributeNode = f974244559_519;
11963 // undefined
11964 o111 = null;
11965 // 9532
11966 f974244559_519.returns.push(null);
11967 // 9534
11968 o111 = {};
11969 // 9535
11970 o110["1"] = o111;
11971 // 9536
11972 o111.getAttributeNode = f974244559_519;
11973 // undefined
11974 o111 = null;
11975 // 9538
11976 f974244559_519.returns.push(null);
11977 // 9540
11978 o111 = {};
11979 // 9541
11980 o110["2"] = o111;
11981 // undefined
11982 o110 = null;
11983 // 9542
11984 o111.getAttributeNode = f974244559_519;
11985 // undefined
11986 o111 = null;
11987 // 9544
11988 o110 = {};
11989 // 9545
11990 f974244559_519.returns.push(o110);
11991 // 9546
11992 o110.value = "u_0_3l";
11993 // undefined
11994 o110 = null;
11995 // 9564
11996 o109.querySelectorAll = f974244559_523;
11997 // 9565
11998 o110 = {};
11999 // 9566
12000 f974244559_523.returns.push(o110);
12001 // 9567
12002 o110.length = 0;
12003 // undefined
12004 o110 = null;
12005 // 9568
12006 o109.__html = void 0;
12007 // 9569
12008 o109.mountComponentIntoNode = void 0;
12009 // 9570
12010 o110 = {};
12011 // 9571
12012 o109.classList = o110;
12013 // undefined
12014 o109 = null;
12015 // 9573
12016 o110.add = f974244559_1110;
12017 // undefined
12018 o110 = null;
12019 // 9574
12020 f974244559_1110.returns.push(undefined);
12021 // 9576
12022 o109 = {};
12023 // 9577
12024 f974244559_480.returns.push(o109);
12025 // 9578
12026 // 9579
12027 o109.firstChild = null;
12028 // 9582
12029 o110 = {};
12030 // 9583
12031 f974244559_478.returns.push(o110);
12032 // 9585
12033 o109.appendChild = f974244559_482;
12034 // 9586
12035 f974244559_482.returns.push(o110);
12036 // undefined
12037 o110 = null;
12038 // 9588
12039 o110 = {};
12040 // 9589
12041 f974244559_480.returns.push(o110);
12042 // 9590
12043 // 9591
12044 o110.firstChild = null;
12045 // 9592
12046 o109.__html = void 0;
12047 // 9594
12048 o111 = {};
12049 // 9595
12050 f974244559_478.returns.push(o111);
12051 // 9597
12052 o110.appendChild = f974244559_482;
12053 // 9598
12054 f974244559_482.returns.push(o111);
12055 // undefined
12056 o111 = null;
12057 // 9599
12058 o111 = {};
12059 // 9600
12060 o110.classList = o111;
12061 // 9602
12062 o111.add = f974244559_1110;
12063 // undefined
12064 o111 = null;
12065 // 9603
12066 f974244559_1110.returns.push(undefined);
12067 // 9604
12068 o111 = {};
12069 // 9605
12070 o109.style = o111;
12071 // undefined
12072 o109 = null;
12073 // 9606
12074 // undefined
12075 o111 = null;
12076 // 9610
12077 f974244559_1110.returns.push(undefined);
12078 // 9611
12079 o110.__FB_TOKEN = void 0;
12080 // 9612
12081 // undefined
12082 o110 = null;
12083 // 9618
12084 f974244559_471.returns.push(1373491289948);
12085 // 9622
12086 o109 = {};
12087 // 9623
12088 f974244559_478.returns.push(o109);
12089 // 9625
12090 f974244559_482.returns.push(o109);
12091 // undefined
12092 o109 = null;
12093 // 9628
12094 f974244559_471.returns.push(1373491289961);
12095 // 9631
12096 f974244559_471.returns.push(1373491289961);
12097 // 9634
12098 f974244559_471.returns.push(1373491289962);
12099 // 9636
12100 o109 = {};
12101 // 9637
12102 f974244559_502.returns.push(o109);
12103 // 9639
12104 o110 = {};
12105 // 9640
12106 f974244559_502.returns.push(o110);
12107 // 9641
12108 o111 = {};
12109 // 9642
12110 o110.firstChild = o111;
12111 // 9644
12112 o111.nodeType = 8;
12113 // 9646
12114 o111.nodeValue = " <div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_year_current\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">Earlier in 2013</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3s\"><span class=\"sectionLabel fwb\" data-year=\"2013\">Show 2013</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_year_last\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">2012</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3t\"><span class=\"sectionLabel fwb\" data-year=\"2012\">Show 2012</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_year_2011\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">2011</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3u\"><span class=\"sectionLabel fwb\" data-year=\"2011\">Show 2011</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_year_2010\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">2010</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3y\"><span class=\"sectionLabel fwb\" data-year=\"2010\">Show 2010</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_year_2009\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">2009</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3x\"><span class=\"sectionLabel fwb\" data-year=\"2009\">Show 2009</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_year_2008\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">2008</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3v\"><span class=\"sectionLabel fwb\" data-year=\"2008\">Show 2008</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div><div class=\"fbTimelineTimePeriod fbTimelineTimePeriodUnexpanded\" id=\"pagelet_timeline_wayback\"><div class=\"fbTimelineSection fbTimelineCompactSection fbTimelineSectionTransparent\"><div class=\"fbTimelinePeriodPlaceholder\"><div class=\"mbm _5vf sectionHeader\"><div class=\"uiHeader\"><div class=\"clearfix uiHeaderTop\"><div><h3 class=\"uiHeaderTitle\">Born</h3></div></div></div><div class=\"_5vg\"></div></div><div class=\"loadingContainer\"><a class=\"mbm phm forceLoad\" href=\"#\" role=\"button\" id=\"u_0_3w\"><span class=\"sectionLabel fwb\" data-year=\"2007\">Show 2007</span></a></div></div></div><img class=\"ptl loadingIndicator img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></div> ";
12115 // undefined
12116 o111 = null;
12117 // 9647
12118 o110.parentNode = o25;
12119 // 9649
12120 f974244559_507.returns.push(o110);
12121 // undefined
12122 o110 = null;
12123 // 9651
12124 o110 = {};
12125 // 9652
12126 f974244559_480.returns.push(o110);
12127 // 9653
12128 // 9655
12129 o111 = {};
12130 // 9656
12131 f974244559_478.returns.push(o111);
12132 // 9657
12133 o113 = {};
12134 // undefined
12135 fo974244559_1501_firstChild = function() { return fo974244559_1501_firstChild.returns[fo974244559_1501_firstChild.inst++]; };
12136 fo974244559_1501_firstChild.returns = [];
12137 fo974244559_1501_firstChild.inst = 0;
12138 defineGetter(o110, "firstChild", fo974244559_1501_firstChild, undefined);
12139 // undefined
12140 o110 = null;
12141 // undefined
12142 fo974244559_1501_firstChild.returns.push(o113);
12143 // 9659
12144 o111.appendChild = f974244559_482;
12145 // undefined
12146 fo974244559_1501_firstChild.returns.push(o113);
12147 // 9661
12148 f974244559_482.returns.push(o113);
12149 // 9662
12150 o110 = {};
12151 // undefined
12152 fo974244559_1501_firstChild.returns.push(o110);
12153 // undefined
12154 fo974244559_1501_firstChild.returns.push(o110);
12155 // 9666
12156 f974244559_482.returns.push(o110);
12157 // 9667
12158 o114 = {};
12159 // undefined
12160 fo974244559_1501_firstChild.returns.push(o114);
12161 // undefined
12162 fo974244559_1501_firstChild.returns.push(o114);
12163 // 9671
12164 f974244559_482.returns.push(o114);
12165 // 9672
12166 o115 = {};
12167 // undefined
12168 fo974244559_1501_firstChild.returns.push(o115);
12169 // undefined
12170 fo974244559_1501_firstChild.returns.push(o115);
12171 // 9676
12172 f974244559_482.returns.push(o115);
12173 // 9677
12174 o116 = {};
12175 // undefined
12176 fo974244559_1501_firstChild.returns.push(o116);
12177 // undefined
12178 fo974244559_1501_firstChild.returns.push(o116);
12179 // 9681
12180 f974244559_482.returns.push(o116);
12181 // 9682
12182 o117 = {};
12183 // undefined
12184 fo974244559_1501_firstChild.returns.push(o117);
12185 // undefined
12186 fo974244559_1501_firstChild.returns.push(o117);
12187 // 9686
12188 f974244559_482.returns.push(o117);
12189 // 9687
12190 o118 = {};
12191 // undefined
12192 fo974244559_1501_firstChild.returns.push(o118);
12193 // undefined
12194 fo974244559_1501_firstChild.returns.push(o118);
12195 // 9691
12196 f974244559_482.returns.push(o118);
12197 // undefined
12198 fo974244559_1501_firstChild.returns.push(null);
12199 // 9693
12200 o109.appendChild = f974244559_482;
12201 // 9694
12202 f974244559_482.returns.push(o111);
12203 // undefined
12204 o111 = null;
12205 // 9695
12206 o109.getAttribute = f974244559_500;
12207 // 9696
12208 f974244559_500.returns.push(null);
12209 // 9697
12210 o109.setAttribute = f974244559_643;
12211 // undefined
12212 o109 = null;
12213 // 9698
12214 f974244559_643.returns.push(undefined);
12215 // 9734
12216 f974244559_471.returns.push(1373491289982);
12217 // 9738
12218 o109 = {};
12219 // 9739
12220 f974244559_478.returns.push(o109);
12221 // 9741
12222 f974244559_482.returns.push(o109);
12223 // undefined
12224 o109 = null;
12225 // 9744
12226 f974244559_471.returns.push(1373491289983);
12227 // 9747
12228 f974244559_471.returns.push(1373491289984);
12229 // 9750
12230 f974244559_471.returns.push(1373491289984);
12231 // 9752
12232 o109 = {};
12233 // 9753
12234 f974244559_502.returns.push(o109);
12235 // 9755
12236 o111 = {};
12237 // 9756
12238 f974244559_502.returns.push(o111);
12239 // 9757
12240 o119 = {};
12241 // 9758
12242 o111.firstChild = o119;
12243 // 9760
12244 o119.nodeType = 8;
12245 // 9762
12246 o119.nodeValue = " <div class=\"fbTimelineSectionExpander fbTimelineHiddenPager stat_elem\" id=\"pagelet_timeline_recent_pager_1\"><div class=\"fbTimelineSectionExpandPager fbTimelineShowOlder\" data-gt=\"&#123;&quot;timeline_pager&quot;:&quot;1&quot;,&quot;profile_id&quot;:&quot;1055580469&quot;,&quot;page_index&quot;:&quot;1&quot;,&quot;query_type&quot;:&quot;39&quot;&#125;\" id=\"u_0_40\"><div class=\"clearfix uiMorePager stat_elem\"><a class=\"_5xn uiMorePagerSecondary rfloat\" href=\"#\" role=\"button\"></a><div><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ecda3ca27f7c0893c497b8928e68f51a830acf9bb(event) {\\u000a    ((JSCC.get(\\\"jo1YixfNw93Ap09ygDm0\\\") && JSCC.get(\\\"jo1YixfNw93Ap09ygDm0\\\").getHandler()))();\\u000a    return false;\\u000a};\"), (\"s878f4a1c62fa8fc3a3816641defef147a7944494\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ecda3ca27f7c0893c497b8928e68f51a830acf9bb(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s878f4a1c62fa8fc3a3816641defef147a7944494_0\"), (s878f4a1c62fa8fc3a3816641defef147a7944494_0_instance), (this), (arguments)))\n        };\n        (null);\n        (((((JSBNG_Record.get)(JSCC, (\"get\")))[(\"get\")])(\"jo1YixfNw93Ap09ygDm0\") && (((JSBNG_Record.get)((((JSBNG_Record.get)(JSCC, (\"get\")))[(\"get\")])(\"jo1YixfNw93Ap09ygDm0\"), (\"getHandler\")))[(\"getHandler\")])()))();\n        return false;\n    };\n    var s878f4a1c62fa8fc3a3816641defef147a7944494_0_instance;\n    ((s878f4a1c62fa8fc3a3816641defef147a7944494_0_instance) = ((JSBNG_Record.eventInstance)((\"s878f4a1c62fa8fc3a3816641defef147a7944494_0\"))));\n    ((JSBNG_Record.markFunction)((ecda3ca27f7c0893c497b8928e68f51a830acf9bb)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"pam uiBoxLightblue uiMorePagerPrimary\" onclick=\"return ecda3ca27f7c0893c497b8928e68f51a830acf9bb.call(this, event);\" href=\"#\" role=\"button\">See More Recent Stories</a><span class=\"uiMorePagerLoader pam uiBoxLightblue\"><img class=\"img\" src=\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\" alt=\"\" width=\"16\" height=\"11\" /></span></div></div></div></div> ";
12247 // undefined
12248 o119 = null;
12249 // 9763
12250 o111.parentNode = o25;
12251 // 9765
12252 f974244559_507.returns.push(o111);
12253 // undefined
12254 o111 = null;
12255 // 9766
12256 // 9767
12257 o109.getAttribute = f974244559_500;
12258 // 9768
12259 f974244559_500.returns.push(null);
12260 // 9769
12261 o109.setAttribute = f974244559_643;
12262 // 9770
12263 f974244559_643.returns.push(undefined);
12264 // 9774
12265 f974244559_471.returns.push(1373491289990);
12266 // 9778
12267 o111 = {};
12268 // 9779
12269 f974244559_478.returns.push(o111);
12270 // 9781
12271 f974244559_482.returns.push(o111);
12272 // undefined
12273 o111 = null;
12274 // 9784
12275 f974244559_471.returns.push(1373491289991);
12276 // 9787
12277 f974244559_471.returns.push(1373491289992);
12278 // 9790
12279 f974244559_471.returns.push(1373491289992);
12280 // 9792
12281 o111 = {};
12282 // 9793
12283 f974244559_502.returns.push(o111);
12284 // 9795
12285 o119 = {};
12286 // 9796
12287 f974244559_502.returns.push(o119);
12288 // 9797
12289 o120 = {};
12290 // 9798
12291 o119.firstChild = o120;
12292 // 9800
12293 o120.nodeType = 8;
12294 // 9802
12295 o120.nodeValue = " <ul class=\"fbTimelineScrubber hidden_elem\" role=\"navigation\" data-gt=\"&#123;&quot;timeline_scrubber&quot;:&quot;1&quot;,&quot;profile_id&quot;:&quot;1055580469&quot;&#125;\" id=\"u_0_42\"><li data-key=\"recent\" class=\"selected\"><a href=\"/LawlabeeTheWallaby/timeline\" rel=\"ignore\">Now</a></li><li data-key=\"year_2013\" class=\"clearfix\" data-rollup=\"2010s\" data-year=\"2013\"><a href=\"/LawlabeeTheWallaby/timeline/2013\" rel=\"ignore\" tabindex=\"-1\">2013</a><ul class=\"clearfix\"><li data-key=\"month_2013_1\"><a href=\"/LawlabeeTheWallaby/timeline/2013/1\" rel=\"ignore\">January</a></li></ul></li><li data-key=\"year_2012\" class=\"clearfix\" data-rollup=\"2010s\" data-year=\"2012\"><a href=\"/LawlabeeTheWallaby/timeline/2012\" rel=\"ignore\" tabindex=\"-1\">2012</a><ul class=\"clearfix\"><li data-key=\"month_2012_12\"><a href=\"/LawlabeeTheWallaby/timeline/2012/12\" rel=\"ignore\">December</a></li><li data-key=\"month_2012_11\"><a href=\"/LawlabeeTheWallaby/timeline/2012/11\" rel=\"ignore\">November</a></li><li data-key=\"month_2012_10\"><a href=\"/LawlabeeTheWallaby/timeline/2012/10\" rel=\"ignore\">October</a></li><li data-key=\"month_2012_9\"><a href=\"/LawlabeeTheWallaby/timeline/2012/9\" rel=\"ignore\">September</a></li><li data-key=\"month_2012_8\"><a href=\"/LawlabeeTheWallaby/timeline/2012/8\" rel=\"ignore\">August</a></li><li data-key=\"month_2012_7\"><a href=\"/LawlabeeTheWallaby/timeline/2012/7\" rel=\"ignore\">July</a></li><li data-key=\"month_2012_6\"><a href=\"/LawlabeeTheWallaby/timeline/2012/6\" rel=\"ignore\">June</a></li><li data-key=\"month_2012_5\"><a href=\"/LawlabeeTheWallaby/timeline/2012/5\" rel=\"ignore\">May</a></li><li data-key=\"month_2012_4\"><a href=\"/LawlabeeTheWallaby/timeline/2012/4\" rel=\"ignore\">April</a></li><li data-key=\"month_2012_3\"><a href=\"/LawlabeeTheWallaby/timeline/2012/3\" rel=\"ignore\">March</a></li><li data-key=\"month_2012_2\"><a href=\"/LawlabeeTheWallaby/timeline/2012/2\" rel=\"ignore\">February</a></li><li data-key=\"month_2012_1\"><a href=\"/LawlabeeTheWallaby/timeline/2012/1\" rel=\"ignore\">January</a></li></ul></li><li data-key=\"year_2011\" class=\"clearfix\" data-rollup=\"2010s\" data-year=\"2011\"><a href=\"/LawlabeeTheWallaby/timeline/2011\" rel=\"ignore\" tabindex=\"-1\">2011</a><ul class=\"clearfix\"><li data-key=\"month_2011_12\"><a href=\"/LawlabeeTheWallaby/timeline/2011/12\" rel=\"ignore\">December</a></li><li data-key=\"month_2011_11\"><a href=\"/LawlabeeTheWallaby/timeline/2011/11\" rel=\"ignore\">November</a></li><li data-key=\"month_2011_10\"><a href=\"/LawlabeeTheWallaby/timeline/2011/10\" rel=\"ignore\">October</a></li><li data-key=\"month_2011_9\"><a href=\"/LawlabeeTheWallaby/timeline/2011/9\" rel=\"ignore\">September</a></li><li data-key=\"month_2011_8\"><a href=\"/LawlabeeTheWallaby/timeline/2011/8\" rel=\"ignore\">August</a></li><li data-key=\"month_2011_7\"><a href=\"/LawlabeeTheWallaby/timeline/2011/7\" rel=\"ignore\">July</a></li><li data-key=\"month_2011_6\"><a href=\"/LawlabeeTheWallaby/timeline/2011/6\" rel=\"ignore\">June</a></li><li data-key=\"month_2011_5\"><a href=\"/LawlabeeTheWallaby/timeline/2011/5\" rel=\"ignore\">May</a></li><li data-key=\"month_2011_4\"><a href=\"/LawlabeeTheWallaby/timeline/2011/4\" rel=\"ignore\">April</a></li><li data-key=\"month_2011_3\"><a href=\"/LawlabeeTheWallaby/timeline/2011/3\" rel=\"ignore\">March</a></li><li data-key=\"month_2011_2\"><a href=\"/LawlabeeTheWallaby/timeline/2011/2\" rel=\"ignore\">February</a></li><li data-key=\"month_2011_1\"><a href=\"/LawlabeeTheWallaby/timeline/2011/1\" rel=\"ignore\">January</a></li></ul></li><li data-key=\"year_2010\" class=\"clearfix\" data-rollup=\"2010s\" data-year=\"2010\"><a href=\"/LawlabeeTheWallaby/timeline/2010\" rel=\"ignore\" tabindex=\"-1\">2010</a><ul class=\"clearfix\"><li data-key=\"month_2010_12\"><a href=\"/LawlabeeTheWallaby/timeline/2010/12\" rel=\"ignore\">December</a></li><li data-key=\"month_2010_11\"><a href=\"/LawlabeeTheWallaby/timeline/2010/11\" rel=\"ignore\">November</a></li><li data-key=\"month_2010_10\"><a href=\"/LawlabeeTheWallaby/timeline/2010/10\" rel=\"ignore\">October</a></li><li data-key=\"month_2010_9\"><a href=\"/LawlabeeTheWallaby/timeline/2010/9\" rel=\"ignore\">September</a></li><li data-key=\"month_2010_8\"><a href=\"/LawlabeeTheWallaby/timeline/2010/8\" rel=\"ignore\">August</a></li><li data-key=\"month_2010_7\"><a href=\"/LawlabeeTheWallaby/timeline/2010/7\" rel=\"ignore\">July</a></li><li data-key=\"month_2010_6\"><a href=\"/LawlabeeTheWallaby/timeline/2010/6\" rel=\"ignore\">June</a></li><li data-key=\"month_2010_5\"><a href=\"/LawlabeeTheWallaby/timeline/2010/5\" rel=\"ignore\">May</a></li><li data-key=\"month_2010_4\"><a href=\"/LawlabeeTheWallaby/timeline/2010/4\" rel=\"ignore\">April</a></li><li data-key=\"month_2010_3\"><a href=\"/LawlabeeTheWallaby/timeline/2010/3\" rel=\"ignore\">March</a></li><li data-key=\"month_2010_2\"><a href=\"/LawlabeeTheWallaby/timeline/2010/2\" rel=\"ignore\">February</a></li><li data-key=\"month_2010_1\"><a href=\"/LawlabeeTheWallaby/timeline/2010/1\" rel=\"ignore\">January</a></li></ul></li><li data-key=\"year_2009\" class=\"clearfix\" data-rollup=\"2000s\" data-year=\"2009\"><a href=\"/LawlabeeTheWallaby/timeline/2009\" rel=\"ignore\" tabindex=\"-1\">2009</a><ul class=\"clearfix\"><li data-key=\"month_2009_12\"><a href=\"/LawlabeeTheWallaby/timeline/2009/12\" rel=\"ignore\">December</a></li><li data-key=\"month_2009_11\"><a href=\"/LawlabeeTheWallaby/timeline/2009/11\" rel=\"ignore\">November</a></li><li data-key=\"month_2009_10\"><a href=\"/LawlabeeTheWallaby/timeline/2009/10\" rel=\"ignore\">October</a></li><li data-key=\"month_2009_9\"><a href=\"/LawlabeeTheWallaby/timeline/2009/9\" rel=\"ignore\">September</a></li><li data-key=\"month_2009_8\"><a href=\"/LawlabeeTheWallaby/timeline/2009/8\" rel=\"ignore\">August</a></li><li data-key=\"month_2009_7\"><a href=\"/LawlabeeTheWallaby/timeline/2009/7\" rel=\"ignore\">July</a></li><li data-key=\"month_2009_6\"><a href=\"/LawlabeeTheWallaby/timeline/2009/6\" rel=\"ignore\">June</a></li><li data-key=\"month_2009_5\"><a href=\"/LawlabeeTheWallaby/timeline/2009/5\" rel=\"ignore\">May</a></li><li data-key=\"month_2009_4\"><a href=\"/LawlabeeTheWallaby/timeline/2009/4\" rel=\"ignore\">April</a></li><li data-key=\"month_2009_3\"><a href=\"/LawlabeeTheWallaby/timeline/2009/3\" rel=\"ignore\">March</a></li><li data-key=\"month_2009_2\"><a href=\"/LawlabeeTheWallaby/timeline/2009/2\" rel=\"ignore\">February</a></li><li data-key=\"month_2009_1\"><a href=\"/LawlabeeTheWallaby/timeline/2009/1\" rel=\"ignore\">January</a></li></ul></li><li data-key=\"year_2008\" class=\"clearfix\" data-rollup=\"2000s\" data-year=\"2008\"><a href=\"/LawlabeeTheWallaby/timeline/2008\" rel=\"ignore\" tabindex=\"-1\">2008</a><ul class=\"clearfix\"><li data-key=\"month_2008_12\"><a href=\"/LawlabeeTheWallaby/timeline/2008/12\" rel=\"ignore\">December</a></li><li data-key=\"month_2008_11\"><a href=\"/LawlabeeTheWallaby/timeline/2008/11\" rel=\"ignore\">November</a></li><li data-key=\"month_2008_10\"><a href=\"/LawlabeeTheWallaby/timeline/2008/10\" rel=\"ignore\">October</a></li><li data-key=\"month_2008_9\"><a href=\"/LawlabeeTheWallaby/timeline/2008/9\" rel=\"ignore\">September</a></li><li data-key=\"month_2008_8\"><a href=\"/LawlabeeTheWallaby/timeline/2008/8\" rel=\"ignore\">August</a></li><li data-key=\"month_2008_7\"><a href=\"/LawlabeeTheWallaby/timeline/2008/7\" rel=\"ignore\">July</a></li><li data-key=\"month_2008_6\"><a href=\"/LawlabeeTheWallaby/timeline/2008/6\" rel=\"ignore\">June</a></li><li data-key=\"month_2008_5\"><a href=\"/LawlabeeTheWallaby/timeline/2008/5\" rel=\"ignore\">May</a></li><li data-key=\"month_2008_4\"><a href=\"/LawlabeeTheWallaby/timeline/2008/4\" rel=\"ignore\">April</a></li><li data-key=\"month_2008_3\"><a href=\"/LawlabeeTheWallaby/timeline/2008/3\" rel=\"ignore\">March</a></li><li data-key=\"month_2008_2\"><a href=\"/LawlabeeTheWallaby/timeline/2008/2\" rel=\"ignore\">February</a></li><li data-key=\"month_2008_1\"><a href=\"/LawlabeeTheWallaby/timeline/2008/1\" rel=\"ignore\">January</a></li></ul></li><li data-key=\"way_back\"><a href=\"/LawlabeeTheWallaby/timeline#way_back\" rel=\"ignore\" tabindex=\"-1\">Born</a></li></ul> ";
12296 // undefined
12297 o120 = null;
12298 // 9803
12299 o119.parentNode = o25;
12300 // 9805
12301 f974244559_507.returns.push(o119);
12302 // undefined
12303 o119 = null;
12304 // 9807
12305 o119 = {};
12306 // 9808
12307 f974244559_480.returns.push(o119);
12308 // 9809
12309 // 9811
12310 o120 = {};
12311 // 9812
12312 f974244559_478.returns.push(o120);
12313 // 9813
12314 o121 = {};
12315 // undefined
12316 fo974244559_1518_firstChild = function() { return fo974244559_1518_firstChild.returns[fo974244559_1518_firstChild.inst++]; };
12317 fo974244559_1518_firstChild.returns = [];
12318 fo974244559_1518_firstChild.inst = 0;
12319 defineGetter(o119, "firstChild", fo974244559_1518_firstChild, undefined);
12320 // undefined
12321 o119 = null;
12322 // undefined
12323 fo974244559_1518_firstChild.returns.push(o121);
12324 // 9815
12325 o120.appendChild = f974244559_482;
12326 // undefined
12327 fo974244559_1518_firstChild.returns.push(o121);
12328 // 9817
12329 f974244559_482.returns.push(o121);
12330 // undefined
12331 fo974244559_1518_firstChild.returns.push(null);
12332 // 9819
12333 o111.appendChild = f974244559_482;
12334 // 9820
12335 f974244559_482.returns.push(o120);
12336 // undefined
12337 o120 = null;
12338 // 9821
12339 o111.getAttribute = f974244559_500;
12340 // 9822
12341 f974244559_500.returns.push(null);
12342 // 9823
12343 o111.setAttribute = f974244559_643;
12344 // 9824
12345 f974244559_643.returns.push(undefined);
12346 // 9826
12347 f974244559_471.returns.push(1373491290008);
12348 // 9830
12349 o119 = {};
12350 // 9831
12351 f974244559_478.returns.push(o119);
12352 // 9833
12353 f974244559_482.returns.push(o119);
12354 // undefined
12355 o119 = null;
12356 // 9836
12357 f974244559_471.returns.push(1373491290011);
12358 // 9839
12359 f974244559_471.returns.push(1373491290012);
12360 // 9842
12361 f974244559_471.returns.push(1373491290013);
12362 // 9844
12363 o119 = {};
12364 // 9845
12365 f974244559_502.returns.push(o119);
12366 // 9847
12367 o120 = {};
12368 // 9848
12369 f974244559_502.returns.push(o120);
12370 // 9849
12371 o122 = {};
12372 // 9850
12373 o120.firstChild = o122;
12374 // 9852
12375 o122.nodeType = 8;
12376 // 9854
12377 o122.nodeValue = " <div class=\"ego_column\"><div class=\"ego_section\" id=\"u_0_44\"><div class=\"uiHeader uiHeaderTopBorder mbs uiSideHeader\"><div class=\"clearfix uiHeaderTop\"><div class=\"rfloat\"><h6 class=\"accessible_elem\"><a href=\"/campaign/landing.php?placement=egot&amp;campaign_id=366925476690229&amp;extra_1=auto\"><span class=\"adsCategoryTitleLink\">Sponsored</span></a></h6><a class=\"uiHeaderActions\" href=\"/ads/adboard/?type=normal\">See All</a></div><div><h6 class=\"uiHeaderTitle\" aria-hidden=\"true\"><a href=\"/campaign/landing.php?placement=egot&amp;campaign_id=366925476690229&amp;extra_1=auto\"><span class=\"adsCategoryTitleLink\">Sponsored</span></a><a href=\"/campaign/landing.php?placement=egot&amp;campaign_id=366925476690229&amp;extra_1=auto\"><i class=\"mls adsCategoryIcon img sp_9kaae3 sx_5f2560\"></i></a></h6></div></div></div><div class=\"ego_unit_container\"><div class=\"ego_unit\" data-ego-fbid=\"6010069360965\"><div class=\"_4u8\" data-ad=\"&#123;&quot;adid&quot;:6010069360965,&quot;segment&quot;:&quot;market&quot;&#125;\" id=\"6010069360965-id_51ddd04f4b2ff8432881967\"><div class=\"_24n _24y\"><div class=\"uiSelector inlineBlock emu_x emuEventfad_hide _24x uiSelectorRight\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiCloseButton uiCloseButtonSmall\" href=\"#\" role=\"button\" title=\"About Facebook Ads\" rel=\"toggle\" ajaxify=\"/ajax/emu/end.php?eid=AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl-\\-\\nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A&amp;f=0&amp;ui=6010069360965-id_51ddd04f4b2ff8432881967&amp;en=fad_hide&amp;ed=true&amp;a=1&amp;__tn__=v\" aria-haspopup=\"1\"></a></div></div><div class=\"title\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e2b8ac0048076134293fb4a101b110b40df5f7df7(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e2b8ac0048076134293fb4a101b110b40df5f7df7(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_0\"), (sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_1_instance;\n            ((sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_1_instance) = ((JSBNG_Record.eventInstance)((\"sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_1\"), (sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_0_instance;\n    ((sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_0_instance) = ((JSBNG_Record.eventInstance)((\"sf08ba6c64ed9e2a9de34f2e3082fa2392a6a515d_0\"))));\n    ((JSBNG_Record.markFunction)((e2b8ac0048076134293fb4a101b110b40df5f7df7)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl-\\-\\nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A&amp;f=1&amp;ui=6010069360965-id_51ddd04f4b2ff8432881967&amp;en=1&amp;a=0&amp;sig=121144&amp;__tn__=wv\" onmousedown=\"return e2b8ac0048076134293fb4a101b110b40df5f7df7.call(this, event);\">Check Out SUBWAY®</a></div><div class=\"clearfix image_body_block\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ee297644d85f8cc7bedd6a8e6f296df633ddd6ca2(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"seee223a82cd2ca400f4634fd9ef142a96b519b35\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ee297644d85f8cc7bedd6a8e6f296df633ddd6ca2(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"seee223a82cd2ca400f4634fd9ef142a96b519b35_0\"), (seee223a82cd2ca400f4634fd9ef142a96b519b35_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var seee223a82cd2ca400f4634fd9ef142a96b519b35_1_instance;\n            ((seee223a82cd2ca400f4634fd9ef142a96b519b35_1_instance) = ((JSBNG_Record.eventInstance)((\"seee223a82cd2ca400f4634fd9ef142a96b519b35_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"seee223a82cd2ca400f4634fd9ef142a96b519b35_1\"), (seee223a82cd2ca400f4634fd9ef142a96b519b35_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var seee223a82cd2ca400f4634fd9ef142a96b519b35_0_instance;\n    ((seee223a82cd2ca400f4634fd9ef142a96b519b35_0_instance) = ((JSBNG_Record.eventInstance)((\"seee223a82cd2ca400f4634fd9ef142a96b519b35_0\"))));\n    ((JSBNG_Record.markFunction)((ee297644d85f8cc7bedd6a8e6f296df633ddd6ca2)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x image fbEmuImage _8o _8s lfloat\" tabindex=\"-1\" href=\"/ajax/emu/end.php?eid=AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl-\\-\\nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A&amp;f=1&amp;ui=6010069360965-id_51ddd04f4b2ff8432881967&amp;en=1&amp;a=0&amp;sig=131071&amp;__tn__=ywv\" onmousedown=\"return ee297644d85f8cc7bedd6a8e6f296df633ddd6ca2.call(this, event);\" aria-hidden=\"true\"><img class=\"img\" src=\"http://jsbngssl.fbcdn-creative-a.akamaihd.net/hads-ak-prn1/s110x80/735333_6010066603965_417420211_n.png\" alt=\"\" /></a><div class=\"_42ef\"><div class=\"body\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e07e9f7fab52598ed743f8e69b84163d953c06770(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s09a76401006d0213dc92759b65ec397fc1a43042\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e07e9f7fab52598ed743f8e69b84163d953c06770(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s09a76401006d0213dc92759b65ec397fc1a43042_0\"), (s09a76401006d0213dc92759b65ec397fc1a43042_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s09a76401006d0213dc92759b65ec397fc1a43042_1_instance;\n            ((s09a76401006d0213dc92759b65ec397fc1a43042_1_instance) = ((JSBNG_Record.eventInstance)((\"s09a76401006d0213dc92759b65ec397fc1a43042_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s09a76401006d0213dc92759b65ec397fc1a43042_1\"), (s09a76401006d0213dc92759b65ec397fc1a43042_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s09a76401006d0213dc92759b65ec397fc1a43042_0_instance;\n    ((s09a76401006d0213dc92759b65ec397fc1a43042_0_instance) = ((JSBNG_Record.eventInstance)((\"s09a76401006d0213dc92759b65ec397fc1a43042_0\"))));\n    ((JSBNG_Record.markFunction)((e07e9f7fab52598ed743f8e69b84163d953c06770)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl-\\-\\nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A&amp;f=1&amp;ui=6010069360965-id_51ddd04f4b2ff8432881967&amp;en=1&amp;a=0&amp;sig=120709&amp;__tn__=xywv\" onmousedown=\"return e07e9f7fab52598ed743f8e69b84163d953c06770.call(this, event);\">Get a 6” sub plus a 21 oz. drink for only $4. We LIKE the sound of that!</a></div></div></div><div class=\"inline\"><div class=\"action\"><a class=\"uiIconText emuEventfad_fan _24x\" href=\"#\" style=\"padding-left: 17px;\" rel=\"async-post\" ajaxify=\"/ajax/emu/end.php?eid=AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl-\\-\\nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A&amp;f=0&amp;ui=6010069360965-id_51ddd04f4b2ff8432881967&amp;en=fad_fan&amp;ed=224383614973&amp;a=1&amp;__tn__=wv\" role=\"button\"><i class=\"img sp_4p6kmz sx_bc56c4\" style=\"top: 1px;\"></i>Like</a> · <span class=\"fbEmuContext\">23,400,426 people like <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e664100ebff51c05e6dafbc19a2bccf88e62aa45a(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e664100ebff51c05e6dafbc19a2bccf88e62aa45a(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_0\"), (s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_1_instance;\n            ((s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_1_instance) = ((JSBNG_Record.eventInstance)((\"s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_1\"), (s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_0_instance;\n    ((s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_0_instance) = ((JSBNG_Record.eventInstance)((\"s6ebf5856f286bcd9bb382f2d96b287fdbdaf580d_0\"))));\n    ((JSBNG_Record.markFunction)((e664100ebff51c05e6dafbc19a2bccf88e62aa45a)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"emuEventfad_pageclick _24x\" href=\"/ajax/emu/end.php?eid=AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl-\\-\\nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A&amp;f=1&amp;ui=6010069360965-id_51ddd04f4b2ff8432881967&amp;en=fad_pageclick&amp;ed=224383614973&amp;a=0&amp;mac=AQLzHrsk6DRltR9j&amp;sig=121392&amp;__tn__=zwv\" onmousedown=\"return e664100ebff51c05e6dafbc19a2bccf88e62aa45a.call(this, event);\">Subway</a>.</span></div></div></div></div></div><div class=\"ego_unit\" data-ego-fbid=\"6008291652839\"><div class=\"_4u8\" data-ad=\"&#123;&quot;adid&quot;:6008291652839,&quot;segment&quot;:&quot;market&quot;&#125;\" id=\"6008291652839-id_51ddd04f4b40f3b54921268\"><div class=\"_24n _24y\"><div class=\"uiSelector inlineBlock emu_x emuEventfad_hide _24x uiSelectorRight\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiCloseButton uiCloseButtonSmall\" href=\"#\" role=\"button\" title=\"About Facebook Ads\" rel=\"toggle\" ajaxify=\"/ajax/emu/end.php?eid=AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ&amp;f=0&amp;ui=6008291652839-id_51ddd04f4b40f3b54921268&amp;en=fad_hide&amp;ed=true&amp;a=1&amp;__tn__=v\" aria-haspopup=\"1\"></a></div></div><div class=\"title\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e9f5b9a2bb214f2d447f31c696aa483359e5984ac(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s75fe50d6f9bf6ca100345c70e228d1faf3165a0b\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e9f5b9a2bb214f2d447f31c696aa483359e5984ac(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_0\"), (s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_1_instance;\n            ((s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_1_instance) = ((JSBNG_Record.eventInstance)((\"s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_1\"), (s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_0_instance;\n    ((s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_0_instance) = ((JSBNG_Record.eventInstance)((\"s75fe50d6f9bf6ca100345c70e228d1faf3165a0b_0\"))));\n    ((JSBNG_Record.markFunction)((e9f5b9a2bb214f2d447f31c696aa483359e5984ac)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ&amp;f=1&amp;ui=6008291652839-id_51ddd04f4b40f3b54921268&amp;en=1&amp;a=0&amp;sig=94408&amp;__tn__=wv\" onmousedown=\"return e9f5b9a2bb214f2d447f31c696aa483359e5984ac.call(this, event);\">Ready for Takeoff</a></div><div class=\"clearfix image_body_block\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function efad42820574618f2786b3ec98d96839ac62061f9(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"sb370ecceb13cfa756cf10a3884c6106ebe13b492\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function efad42820574618f2786b3ec98d96839ac62061f9(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sb370ecceb13cfa756cf10a3884c6106ebe13b492_0\"), (sb370ecceb13cfa756cf10a3884c6106ebe13b492_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var sb370ecceb13cfa756cf10a3884c6106ebe13b492_1_instance;\n            ((sb370ecceb13cfa756cf10a3884c6106ebe13b492_1_instance) = ((JSBNG_Record.eventInstance)((\"sb370ecceb13cfa756cf10a3884c6106ebe13b492_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"sb370ecceb13cfa756cf10a3884c6106ebe13b492_1\"), (sb370ecceb13cfa756cf10a3884c6106ebe13b492_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var sb370ecceb13cfa756cf10a3884c6106ebe13b492_0_instance;\n    ((sb370ecceb13cfa756cf10a3884c6106ebe13b492_0_instance) = ((JSBNG_Record.eventInstance)((\"sb370ecceb13cfa756cf10a3884c6106ebe13b492_0\"))));\n    ((JSBNG_Record.markFunction)((efad42820574618f2786b3ec98d96839ac62061f9)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x image fbEmuImage _8o _8s lfloat\" tabindex=\"-1\" href=\"/ajax/emu/end.php?eid=AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ&amp;f=1&amp;ui=6008291652839-id_51ddd04f4b40f3b54921268&amp;en=1&amp;a=0&amp;sig=119219&amp;__tn__=ywv\" onmousedown=\"return efad42820574618f2786b3ec98d96839ac62061f9.call(this, event);\" aria-hidden=\"true\"><img class=\"img\" src=\"http://jsbngssl.fbcdn-creative-a.akamaihd.net/hads-ak-prn1/s110x80/735355_6008290657639_943178325_n.png\" alt=\"\" /></a><div class=\"_42ef\"><div class=\"body\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e63e9ebe2ed33002bd5f78cae16e80b40f25418dc(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e63e9ebe2ed33002bd5f78cae16e80b40f25418dc(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_0\"), (sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_1_instance;\n            ((sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_1_instance) = ((JSBNG_Record.eventInstance)((\"sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_1\"), (sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_0_instance;\n    ((sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_0_instance) = ((JSBNG_Record.eventInstance)((\"sace79e7de15493d3d3ca9e7d3b33a9b9c7cb1b73_0\"))));\n    ((JSBNG_Record.markFunction)((e63e9ebe2ed33002bd5f78cae16e80b40f25418dc)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ&amp;f=1&amp;ui=6008291652839-id_51ddd04f4b40f3b54921268&amp;en=1&amp;a=0&amp;sig=66210&amp;__tn__=xywv\" onmousedown=\"return e63e9ebe2ed33002bd5f78cae16e80b40f25418dc.call(this, event);\">Let imaginations soar with Walmart toys. &quot;Like&quot; us if you love to see them smile.</a></div></div></div><div class=\"inline\"><div class=\"action\"><a class=\"uiIconText emuEventfad_fan _24x\" href=\"#\" style=\"padding-left: 17px;\" rel=\"async-post\" ajaxify=\"/ajax/emu/end.php?eid=AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ&amp;f=0&amp;ui=6008291652839-id_51ddd04f4b40f3b54921268&amp;en=fad_fan&amp;ed=159616034235&amp;a=1&amp;__tn__=wv\" role=\"button\"><i class=\"img sp_4p6kmz sx_bc56c4\" style=\"top: 1px;\"></i>Like</a> · <span class=\"fbEmuContext\">30,985,226 people like <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function eef522934aeea21d4a13209dbba299f1e37e568d6(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s5fca977e4aa2da37b129d8b68584c4dff2d3ca27\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function eef522934aeea21d4a13209dbba299f1e37e568d6(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_0\"), (s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_1_instance;\n            ((s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_1_instance) = ((JSBNG_Record.eventInstance)((\"s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_1\"), (s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_0_instance;\n    ((s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_0_instance) = ((JSBNG_Record.eventInstance)((\"s5fca977e4aa2da37b129d8b68584c4dff2d3ca27_0\"))));\n    ((JSBNG_Record.markFunction)((eef522934aeea21d4a13209dbba299f1e37e568d6)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"emuEventfad_pageclick _24x\" href=\"/ajax/emu/end.php?eid=AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ&amp;f=1&amp;ui=6008291652839-id_51ddd04f4b40f3b54921268&amp;en=fad_pageclick&amp;ed=159616034235&amp;a=0&amp;mac=AQJORo0vP6aDQiTn&amp;sig=123721&amp;__tn__=zwv\" onmousedown=\"return eef522934aeea21d4a13209dbba299f1e37e568d6.call(this, event);\">Walmart</a>.</span></div></div></div></div></div><div class=\"ego_unit\" data-ego-fbid=\"6008916062318\"><div class=\"_4u8\" data-ad=\"&#123;&quot;adid&quot;:6008916062318,&quot;segment&quot;:&quot;market&quot;&#125;\" id=\"6008916062318-id_51ddd04f4b4974851446951\"><div class=\"_24n _24y\"><div class=\"uiSelector inlineBlock emu_x emuEventfad_hide _24x uiSelectorRight\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiCloseButton uiCloseButtonSmall\" href=\"#\" role=\"button\" title=\"About Facebook Ads\" rel=\"toggle\" ajaxify=\"/ajax/emu/end.php?eid=AQJGJvOnYZukufXE1r_V1Je4-\\-\\yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk&amp;f=0&amp;ui=6008916062318-id_51ddd04f4b4974851446951&amp;en=fad_hide&amp;ed=true&amp;a=1&amp;__tn__=v\" aria-haspopup=\"1\"></a></div></div><div class=\"title\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ecef0d91f7b6fc6359cb2f046e243644d6a01d04e(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"se8b8c37e7870c69ab3a417f78a21c3517001b80c\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ecef0d91f7b6fc6359cb2f046e243644d6a01d04e(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"se8b8c37e7870c69ab3a417f78a21c3517001b80c_0\"), (se8b8c37e7870c69ab3a417f78a21c3517001b80c_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var se8b8c37e7870c69ab3a417f78a21c3517001b80c_1_instance;\n            ((se8b8c37e7870c69ab3a417f78a21c3517001b80c_1_instance) = ((JSBNG_Record.eventInstance)((\"se8b8c37e7870c69ab3a417f78a21c3517001b80c_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"se8b8c37e7870c69ab3a417f78a21c3517001b80c_1\"), (se8b8c37e7870c69ab3a417f78a21c3517001b80c_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var se8b8c37e7870c69ab3a417f78a21c3517001b80c_0_instance;\n    ((se8b8c37e7870c69ab3a417f78a21c3517001b80c_0_instance) = ((JSBNG_Record.eventInstance)((\"se8b8c37e7870c69ab3a417f78a21c3517001b80c_0\"))));\n    ((JSBNG_Record.markFunction)((ecef0d91f7b6fc6359cb2f046e243644d6a01d04e)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQJGJvOnYZukufXE1r_V1Je4-\\-\\yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk&amp;f=1&amp;ui=6008916062318-id_51ddd04f4b4974851446951&amp;en=1&amp;a=0&amp;sig=119612&amp;__tn__=wv\" onmousedown=\"return ecef0d91f7b6fc6359cb2f046e243644d6a01d04e.call(this, event);\">Stop Obama&#039;s Surveillance</a></div><div class=\"clearfix image_body_block\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function efdc76185b6ca0a2b8922a69f90d2e21786d04658(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s47c1e78e99121241496aefc348d453acb571129b\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function efdc76185b6ca0a2b8922a69f90d2e21786d04658(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s47c1e78e99121241496aefc348d453acb571129b_0\"), (s47c1e78e99121241496aefc348d453acb571129b_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s47c1e78e99121241496aefc348d453acb571129b_1_instance;\n            ((s47c1e78e99121241496aefc348d453acb571129b_1_instance) = ((JSBNG_Record.eventInstance)((\"s47c1e78e99121241496aefc348d453acb571129b_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s47c1e78e99121241496aefc348d453acb571129b_1\"), (s47c1e78e99121241496aefc348d453acb571129b_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s47c1e78e99121241496aefc348d453acb571129b_0_instance;\n    ((s47c1e78e99121241496aefc348d453acb571129b_0_instance) = ((JSBNG_Record.eventInstance)((\"s47c1e78e99121241496aefc348d453acb571129b_0\"))));\n    ((JSBNG_Record.markFunction)((efdc76185b6ca0a2b8922a69f90d2e21786d04658)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x image fbEmuImage _8o _8s lfloat\" tabindex=\"-1\" href=\"/ajax/emu/end.php?eid=AQJGJvOnYZukufXE1r_V1Je4-\\-\\yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk&amp;f=1&amp;ui=6008916062318-id_51ddd04f4b4974851446951&amp;en=1&amp;a=0&amp;sig=109789&amp;__tn__=ywv\" onmousedown=\"return efdc76185b6ca0a2b8922a69f90d2e21786d04658.call(this, event);\" aria-hidden=\"true\"><img class=\"img\" src=\"http://jsbngssl.creative.xx.fbcdn.net/hads-prn1/s110x80/735318_6008915444118_1970152449_n.png\" alt=\"\" /></a><div class=\"_42ef\"><div class=\"body\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e4707d7392cb429565c42e667235726d4182c9a8c(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"sdc5c325490e6fbccf397876ee5aa7d45da380cfc\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e4707d7392cb429565c42e667235726d4182c9a8c(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sdc5c325490e6fbccf397876ee5aa7d45da380cfc_0\"), (sdc5c325490e6fbccf397876ee5aa7d45da380cfc_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var sdc5c325490e6fbccf397876ee5aa7d45da380cfc_1_instance;\n            ((sdc5c325490e6fbccf397876ee5aa7d45da380cfc_1_instance) = ((JSBNG_Record.eventInstance)((\"sdc5c325490e6fbccf397876ee5aa7d45da380cfc_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"sdc5c325490e6fbccf397876ee5aa7d45da380cfc_1\"), (sdc5c325490e6fbccf397876ee5aa7d45da380cfc_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var sdc5c325490e6fbccf397876ee5aa7d45da380cfc_0_instance;\n    ((sdc5c325490e6fbccf397876ee5aa7d45da380cfc_0_instance) = ((JSBNG_Record.eventInstance)((\"sdc5c325490e6fbccf397876ee5aa7d45da380cfc_0\"))));\n    ((JSBNG_Record.markFunction)((e4707d7392cb429565c42e667235726d4182c9a8c)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQJGJvOnYZukufXE1r_V1Je4-\\-\\yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk&amp;f=1&amp;ui=6008916062318-id_51ddd04f4b4974851446951&amp;en=1&amp;a=0&amp;sig=83327&amp;__tn__=xywv\" onmousedown=\"return e4707d7392cb429565c42e667235726d4182c9a8c.call(this, event);\">Do You Support Obama’s Violation of Our Civil Liberties? Restrain the NSA – VOTE NOW!</a></div></div></div><div class=\"inline\"><div class=\"action\"><a class=\"uiIconText emuEventfad_fan _24x\" href=\"#\" style=\"padding-left: 17px;\" rel=\"async-post\" ajaxify=\"/ajax/emu/end.php?eid=AQJGJvOnYZukufXE1r_V1Je4-\\-\\yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk&amp;f=0&amp;ui=6008916062318-id_51ddd04f4b4974851446951&amp;en=fad_fan&amp;ed=161616200566899&amp;a=1&amp;__tn__=wv\" role=\"button\"><i class=\"img sp_4p6kmz sx_bc56c4\" style=\"top: 1px;\"></i>Like</a> · <span class=\"fbEmuContext\">13,045 people like <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e3d3f13bd8ba89d64b1f3b16c685330296d0e66e8(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s38e51f310ee263bff2eb42ae552806815f9c2e02\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e3d3f13bd8ba89d64b1f3b16c685330296d0e66e8(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s38e51f310ee263bff2eb42ae552806815f9c2e02_0\"), (s38e51f310ee263bff2eb42ae552806815f9c2e02_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s38e51f310ee263bff2eb42ae552806815f9c2e02_1_instance;\n            ((s38e51f310ee263bff2eb42ae552806815f9c2e02_1_instance) = ((JSBNG_Record.eventInstance)((\"s38e51f310ee263bff2eb42ae552806815f9c2e02_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s38e51f310ee263bff2eb42ae552806815f9c2e02_1\"), (s38e51f310ee263bff2eb42ae552806815f9c2e02_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s38e51f310ee263bff2eb42ae552806815f9c2e02_0_instance;\n    ((s38e51f310ee263bff2eb42ae552806815f9c2e02_0_instance) = ((JSBNG_Record.eventInstance)((\"s38e51f310ee263bff2eb42ae552806815f9c2e02_0\"))));\n    ((JSBNG_Record.markFunction)((e3d3f13bd8ba89d64b1f3b16c685330296d0e66e8)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"emuEventfad_pageclick _24x\" href=\"/ajax/emu/end.php?eid=AQJGJvOnYZukufXE1r_V1Je4-\\-\\yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk&amp;f=1&amp;ui=6008916062318-id_51ddd04f4b4974851446951&amp;en=fad_pageclick&amp;ed=161616200566899&amp;a=0&amp;mac=AQLuIcHGeBTdpT86&amp;sig=97550&amp;__tn__=zwv\" onmousedown=\"return e3d3f13bd8ba89d64b1f3b16c685330296d0e66e8.call(this, event);\">Jim Sensenbrenner for Congress</a>.</span></div></div></div></div></div><div class=\"ego_unit\" data-ego-fbid=\"6010037469977\"><div class=\"_4u8\" data-ad=\"&#123;&quot;adid&quot;:6010037469977,&quot;segment&quot;:&quot;market&quot;&#125;\" id=\"6010037469977-id_51ddd04f4b5207180068485\"><div class=\"_24n _24y\"><div class=\"uiSelector inlineBlock emu_x emuEventfad_hide _24x uiSelectorRight\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiCloseButton uiCloseButtonSmall\" href=\"#\" role=\"button\" title=\"About Facebook Ads\" rel=\"toggle\" ajaxify=\"/ajax/emu/end.php?eid=AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9-\\-\\Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op-\\-\\d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY&amp;f=0&amp;ui=6010037469977-id_51ddd04f4b5207180068485&amp;en=fad_hide&amp;ed=true&amp;a=1&amp;__tn__=v\" aria-haspopup=\"1\"></a></div></div><div class=\"title\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ef28de477e071720898c6baad2c6b05b12cc4b312(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s11f7e5f2458195a59e011735485f15566cf4211d\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ef28de477e071720898c6baad2c6b05b12cc4b312(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s11f7e5f2458195a59e011735485f15566cf4211d_0\"), (s11f7e5f2458195a59e011735485f15566cf4211d_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s11f7e5f2458195a59e011735485f15566cf4211d_1_instance;\n            ((s11f7e5f2458195a59e011735485f15566cf4211d_1_instance) = ((JSBNG_Record.eventInstance)((\"s11f7e5f2458195a59e011735485f15566cf4211d_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s11f7e5f2458195a59e011735485f15566cf4211d_1\"), (s11f7e5f2458195a59e011735485f15566cf4211d_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s11f7e5f2458195a59e011735485f15566cf4211d_0_instance;\n    ((s11f7e5f2458195a59e011735485f15566cf4211d_0_instance) = ((JSBNG_Record.eventInstance)((\"s11f7e5f2458195a59e011735485f15566cf4211d_0\"))));\n    ((JSBNG_Record.markFunction)((ef28de477e071720898c6baad2c6b05b12cc4b312)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9-\\-\\Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op-\\-\\d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY&amp;f=1&amp;ui=6010037469977-id_51ddd04f4b5207180068485&amp;en=1&amp;a=0&amp;sig=120303&amp;__tn__=wv\" onmousedown=\"return ef28de477e071720898c6baad2c6b05b12cc4b312.call(this, event);\">High energy costs?</a></div><div class=\"clearfix image_body_block\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ece5eeb2690d177de193f39c0aff43d597740bd67(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s4f13be56008e0d69e942d0564f6655f8057b7ba0\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ece5eeb2690d177de193f39c0aff43d597740bd67(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s4f13be56008e0d69e942d0564f6655f8057b7ba0_0\"), (s4f13be56008e0d69e942d0564f6655f8057b7ba0_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s4f13be56008e0d69e942d0564f6655f8057b7ba0_1_instance;\n            ((s4f13be56008e0d69e942d0564f6655f8057b7ba0_1_instance) = ((JSBNG_Record.eventInstance)((\"s4f13be56008e0d69e942d0564f6655f8057b7ba0_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s4f13be56008e0d69e942d0564f6655f8057b7ba0_1\"), (s4f13be56008e0d69e942d0564f6655f8057b7ba0_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s4f13be56008e0d69e942d0564f6655f8057b7ba0_0_instance;\n    ((s4f13be56008e0d69e942d0564f6655f8057b7ba0_0_instance) = ((JSBNG_Record.eventInstance)((\"s4f13be56008e0d69e942d0564f6655f8057b7ba0_0\"))));\n    ((JSBNG_Record.markFunction)((ece5eeb2690d177de193f39c0aff43d597740bd67)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x image fbEmuImage _8o _8s lfloat\" tabindex=\"-1\" href=\"/ajax/emu/end.php?eid=AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9-\\-\\Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op-\\-\\d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY&amp;f=1&amp;ui=6010037469977-id_51ddd04f4b5207180068485&amp;en=1&amp;a=0&amp;sig=118789&amp;__tn__=ywv\" onmousedown=\"return ece5eeb2690d177de193f39c0aff43d597740bd67.call(this, event);\" aria-hidden=\"true\"><img class=\"img\" src=\"http://jsbngssl.creative.xx.fbcdn.net/hads-prn1/s110x80/735361_6010037447377_1745788505_n.png\" alt=\"\" /></a><div class=\"_42ef\"><div class=\"body\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function edf5d72c8018fb9c0147b9c0883e5beda2fcc645c(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s8e1304dcd71fbc8c267299685b79cb5378ae1c5c\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function edf5d72c8018fb9c0147b9c0883e5beda2fcc645c(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_0\"), (s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_1_instance;\n            ((s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_1_instance) = ((JSBNG_Record.eventInstance)((\"s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_1\"), (s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_0_instance;\n    ((s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_0_instance) = ((JSBNG_Record.eventInstance)((\"s8e1304dcd71fbc8c267299685b79cb5378ae1c5c_0\"))));\n    ((JSBNG_Record.markFunction)((edf5d72c8018fb9c0147b9c0883e5beda2fcc645c)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9-\\-\\Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op-\\-\\d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY&amp;f=1&amp;ui=6010037469977-id_51ddd04f4b5207180068485&amp;en=1&amp;a=0&amp;sig=100629&amp;__tn__=xywv\" onmousedown=\"return edf5d72c8018fb9c0147b9c0883e5beda2fcc645c.call(this, event);\">You could be paying too much for electricity. We can help you $ave money on energy costs.</a></div></div></div><div class=\"inline\"><div class=\"action\"><a class=\"uiIconText emuEventfad_fan _24x\" href=\"#\" style=\"padding-left: 17px;\" rel=\"async-post\" ajaxify=\"/ajax/emu/end.php?eid=AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9-\\-\\Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op-\\-\\d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY&amp;f=0&amp;ui=6010037469977-id_51ddd04f4b5207180068485&amp;en=fad_fan&amp;ed=149993378445656&amp;a=1&amp;__tn__=wv\" role=\"button\"><i class=\"img sp_4p6kmz sx_bc56c4\" style=\"top: 1px;\"></i>Like</a> · <span class=\"fbEmuContext\">42 people like <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e2e06132baab585b35261ab8e15905f80d6deac94(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e2e06132baab585b35261ab8e15905f80d6deac94(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_0\"), (s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_1_instance;\n            ((s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_1_instance) = ((JSBNG_Record.eventInstance)((\"s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_1\"), (s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_0_instance;\n    ((s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_0_instance) = ((JSBNG_Record.eventInstance)((\"s6d0458d8aa2ef1d31844cdf8ffed9173a2ec3737_0\"))));\n    ((JSBNG_Record.markFunction)((e2e06132baab585b35261ab8e15905f80d6deac94)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"emuEventfad_pageclick _24x\" href=\"/ajax/emu/end.php?eid=AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9-\\-\\Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op-\\-\\d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY&amp;f=1&amp;ui=6010037469977-id_51ddd04f4b5207180068485&amp;en=fad_pageclick&amp;ed=149993378445656&amp;a=0&amp;mac=AQKFDBvFI3R4T4gq&amp;sig=70006&amp;__tn__=zwv\" onmousedown=\"return e2e06132baab585b35261ab8e15905f80d6deac94.call(this, event);\">Secure Energy Solutions</a>.</span></div></div></div></div></div><div class=\"ego_unit\" data-ego-fbid=\"6008948705864\"><div class=\"_4u8\" data-ad=\"&#123;&quot;adid&quot;:6008948705864,&quot;segment&quot;:&quot;market&quot;&#125;\" id=\"6008948705864-id_51ddd04f4b59a3268404703\"><div class=\"_24n _24y\"><div class=\"uiSelector inlineBlock emu_x emuEventfad_hide _24x uiSelectorRight\"><div class=\"uiToggle wrap\"><a class=\"uiSelectorButton uiCloseButton uiCloseButtonSmall\" href=\"#\" role=\"button\" title=\"About Facebook Ads\" rel=\"toggle\" ajaxify=\"/ajax/emu/end.php?eid=AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE&amp;f=0&amp;ui=6008948705864-id_51ddd04f4b59a3268404703&amp;en=fad_hide&amp;ed=true&amp;a=1&amp;__tn__=v\" aria-haspopup=\"1\"></a></div></div><div class=\"title\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e2dcff99bc54e497223886312102272d6454a1514(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"sa0c7005338a14bbd110a7f135140ceb90831af34\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e2dcff99bc54e497223886312102272d6454a1514(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sa0c7005338a14bbd110a7f135140ceb90831af34_0\"), (sa0c7005338a14bbd110a7f135140ceb90831af34_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var sa0c7005338a14bbd110a7f135140ceb90831af34_1_instance;\n            ((sa0c7005338a14bbd110a7f135140ceb90831af34_1_instance) = ((JSBNG_Record.eventInstance)((\"sa0c7005338a14bbd110a7f135140ceb90831af34_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"sa0c7005338a14bbd110a7f135140ceb90831af34_1\"), (sa0c7005338a14bbd110a7f135140ceb90831af34_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var sa0c7005338a14bbd110a7f135140ceb90831af34_0_instance;\n    ((sa0c7005338a14bbd110a7f135140ceb90831af34_0_instance) = ((JSBNG_Record.eventInstance)((\"sa0c7005338a14bbd110a7f135140ceb90831af34_0\"))));\n    ((JSBNG_Record.markFunction)((e2dcff99bc54e497223886312102272d6454a1514)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE&amp;f=1&amp;ui=6008948705864-id_51ddd04f4b59a3268404703&amp;en=1&amp;a=0&amp;sig=124355&amp;__tn__=wv\" onmousedown=\"return e2dcff99bc54e497223886312102272d6454a1514.call(this, event);\">Bing&#039;s Hallmark</a></div><div class=\"clearfix image_body_block\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ef17124233d9e1069ffb942c36e3c0f2cb19589c5(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ef17124233d9e1069ffb942c36e3c0f2cb19589c5(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_0\"), (sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_1_instance;\n            ((sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_1_instance) = ((JSBNG_Record.eventInstance)((\"sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_1\"), (sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_0_instance;\n    ((sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_0_instance) = ((JSBNG_Record.eventInstance)((\"sbf5249bbd0fcdd553bc13c221bb1b6e0bb7cb804_0\"))));\n    ((JSBNG_Record.markFunction)((ef17124233d9e1069ffb942c36e3c0f2cb19589c5)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x image fbEmuImage _8o _8s lfloat\" tabindex=\"-1\" href=\"/ajax/emu/end.php?eid=AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE&amp;f=1&amp;ui=6008948705864-id_51ddd04f4b59a3268404703&amp;en=1&amp;a=0&amp;sig=112031&amp;__tn__=ywv\" onmousedown=\"return ef17124233d9e1069ffb942c36e3c0f2cb19589c5.call(this, event);\" aria-hidden=\"true\"><img class=\"img\" src=\"http://jsbngssl.fbcdn-creative-a.akamaihd.net/hads-ak-prn1/s110x80/735350_6008948702864_139308658_n.png\" alt=\"\" /></a><div class=\"_42ef\"><div class=\"body\"><script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function ee6d522bc48f4b1f77a36c2d43ebf87c8779100e5(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"se86fc6e28238039b0d91ef60bd5e825493292807\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function ee6d522bc48f4b1f77a36c2d43ebf87c8779100e5(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"se86fc6e28238039b0d91ef60bd5e825493292807_0\"), (se86fc6e28238039b0d91ef60bd5e825493292807_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var se86fc6e28238039b0d91ef60bd5e825493292807_1_instance;\n            ((se86fc6e28238039b0d91ef60bd5e825493292807_1_instance) = ((JSBNG_Record.eventInstance)((\"se86fc6e28238039b0d91ef60bd5e825493292807_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"se86fc6e28238039b0d91ef60bd5e825493292807_1\"), (se86fc6e28238039b0d91ef60bd5e825493292807_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var se86fc6e28238039b0d91ef60bd5e825493292807_0_instance;\n    ((se86fc6e28238039b0d91ef60bd5e825493292807_0_instance) = ((JSBNG_Record.eventInstance)((\"se86fc6e28238039b0d91ef60bd5e825493292807_0\"))));\n    ((JSBNG_Record.markFunction)((ee6d522bc48f4b1f77a36c2d43ebf87c8779100e5)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"forceLTR emuEvent1 _24x\" href=\"/ajax/emu/end.php?eid=AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE&amp;f=1&amp;ui=6008948705864-id_51ddd04f4b59a3268404703&amp;en=1&amp;a=0&amp;sig=70309&amp;__tn__=xywv\" onmousedown=\"return ee6d522bc48f4b1f77a36c2d43ebf87c8779100e5.call(this, event);\">Shopping/Retail</a></div></div></div><div class=\"inline\"><div class=\"action\"><a class=\"uiIconText emuEventfad_fan _24x\" href=\"#\" style=\"padding-left: 17px;\" rel=\"async-post\" ajaxify=\"/ajax/emu/end.php?eid=AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE&amp;f=0&amp;ui=6008948705864-id_51ddd04f4b59a3268404703&amp;en=fad_fan&amp;ed=214074018662300&amp;a=1&amp;__tn__=wv\" role=\"button\"><i class=\"img sp_4p6kmz sx_bc56c4\" style=\"top: 1px;\"></i>Like</a> · <span class=\"fbEmuContext\">43 people like <script type=\"text/javascript\">try {\n    ((JSBNG_Record.scriptLoad)((\"function e06f21b809f9f18b96528c0ead689415545e55627(event) {\\u000a    var meta = document.getElementById(\\\"meta_referrer\\\");\\u000a    meta.content = \\\"origin\\\";\\u000a    setTimeout(function() {\\u000a        meta.content = \\\"default\\\";\\u000a    }, 100);\\u000a    var attribute = \\\"href\\\";\\u000a    var ms = this.getAttribute(attribute).match(/([\\\\\\\\?|&]f=)([^&]*)/);\\u000a    if (ms) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]f=[^&]*/, (ms[1] + 0)));\\u000a    }\\u000a;\\u000a;\\u000a    var attribute = \\\"href\\\";\\u000a    var sig = this.getAttribute(attribute).match(/([\\\\\\\\?|&]sig=)([^&]*)/);\\u000a    if (sig) {\\u000a        this.setAttribute(attribute, this.getAttribute(attribute).replace(/[\\\\\\\\?|&]sig=[^&]*/, (sig[1] + ((Math.floor((Math.random() * 65535)) + 65536)))));\\u000a    }\\u000a;\\u000a;\\u000a};\"), (\"s3362573a26f528e075e3d5a3049c53089cb46ada\")));\n    ((window.top.JSBNG_Record.callerJS) = (true));\n    function e06f21b809f9f18b96528c0ead689415545e55627(JSBNG__event) {\n        if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n            return ((JSBNG_Record.eventCall)((arguments.callee), (\"s3362573a26f528e075e3d5a3049c53089cb46ada_0\"), (s3362573a26f528e075e3d5a3049c53089cb46ada_0_instance), (this), (arguments)))\n        };\n        (null);\n        var meta = (((JSBNG_Record.get)(JSBNG__document, (\"getElementById\")))[(\"getElementById\")])(\"meta_referrer\");\n        ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"origin\"));\n        JSBNG__setTimeout(((function() {\n            var s3362573a26f528e075e3d5a3049c53089cb46ada_1_instance;\n            ((s3362573a26f528e075e3d5a3049c53089cb46ada_1_instance) = ((JSBNG_Record.eventInstance)((\"s3362573a26f528e075e3d5a3049c53089cb46ada_1\"))));\n            return ((JSBNG_Record.markFunction)((function() {\n                if ((!(JSBNG_Record.top.JSBNG_Record.callerJS))) {\n                    return ((JSBNG_Record.eventCall)((arguments.callee), (\"s3362573a26f528e075e3d5a3049c53089cb46ada_1\"), (s3362573a26f528e075e3d5a3049c53089cb46ada_1_instance), (this), (arguments)))\n                };\n                (null);\n                ((JSBNG_Record.set)(meta, (\"JSBNG__content\"), \"default\"));\n            })));\n        })()), 100);\n        var attribute = \"href\";\n        var ms = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]f=)([^&]*)/);\n        if (ms) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]f=[^&]*/, ((((JSBNG_Record.get)(ms, 1))[1]) + 0)));\n        }\n        ;\n        ;\n        var attribute = \"href\";\n        var sig = (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"match\")))[(\"match\")])(/([\\\\?|&]sig=)([^&]*)/);\n        if (sig) {\n            (((JSBNG_Record.get)(this, (\"setAttribute\")))[(\"setAttribute\")])(attribute, (((JSBNG_Record.get)((((JSBNG_Record.get)(this, (\"getAttribute\")))[(\"getAttribute\")])(attribute), (\"replace\")))[(\"replace\")])(/[\\\\?|&]sig=[^&]*/, ((((JSBNG_Record.get)(sig, 1))[1]) + (((((JSBNG_Record.get)(Math, (\"floor\")))[(\"floor\")])(((((JSBNG_Record.get)(Math, (\"JSBNG__random\")))[(\"JSBNG__random\")])() * 65535)) + 65536)))));\n        }\n        ;\n        ;\n    };\n    var s3362573a26f528e075e3d5a3049c53089cb46ada_0_instance;\n    ((s3362573a26f528e075e3d5a3049c53089cb46ada_0_instance) = ((JSBNG_Record.eventInstance)((\"s3362573a26f528e075e3d5a3049c53089cb46ada_0\"))));\n    ((JSBNG_Record.markFunction)((e06f21b809f9f18b96528c0ead689415545e55627)));\n} finally {\n    ((window.top.JSBNG_Record.callerJS) = (false));\n    ((window.top.JSBNG_Record.flushDeferredEvents)());\n};</script><a class=\"emuEventfad_pageclick _24x\" href=\"/ajax/emu/end.php?eid=AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE&amp;f=1&amp;ui=6008948705864-id_51ddd04f4b59a3268404703&amp;en=fad_pageclick&amp;ed=214074018662300&amp;a=0&amp;mac=AQK0iMDMI_-EfmLU&amp;sig=77814&amp;__tn__=zwv\" onmousedown=\"return e06f21b809f9f18b96528c0ead689415545e55627.call(this, event);\">Bing&#039;s Hallmark</a>.</span></div></div></div></div></div></div></div></div> ";
12378 // undefined
12379 o122 = null;
12380 // 9855
12381 o120.parentNode = o25;
12382 // 9857
12383 f974244559_507.returns.push(o120);
12384 // undefined
12385 o120 = null;
12386 // 9858
12387 // 9859
12388 o119.getAttribute = f974244559_500;
12389 // 9860
12390 f974244559_500.returns.push("u_0_2q");
12391 // 9870
12392 o120 = {};
12393 // 9871
12394 f974244559_502.returns.push(o120);
12395 // 9872
12396 o120.getAttribute = f974244559_500;
12397 // 9873
12398 f974244559_500.returns.push(null);
12399 // 9874
12400 o120.setAttribute = f974244559_643;
12401 // 9875
12402 f974244559_643.returns.push(undefined);
12403 // 9876
12404 f974244559_12.returns.push(23);
12405 // 9879
12406 f974244559_471.returns.push(1373491290126);
12407 // 9883
12408 o122 = {};
12409 // 9884
12410 f974244559_478.returns.push(o122);
12411 // 9886
12412 f974244559_482.returns.push(o122);
12413 // undefined
12414 o122 = null;
12415 // 9889
12416 f974244559_471.returns.push(1373491290129);
12417 // 9892
12418 f974244559_471.returns.push(1373491290129);
12419 // 9895
12420 f974244559_471.returns.push(1373491290130);
12421 // 9898
12422 f974244559_471.returns.push(1373491290131);
12423 // 9902
12424 f974244559_471.returns.push(1373491290133);
12425 // 9907
12426 o122 = {};
12427 // 9908
12428 f974244559_478.returns.push(o122);
12429 // 9910
12430 f974244559_471.returns.push(1373491290135);
12431 // 9912
12432 o123 = {};
12433 // 9913
12434 f974244559_480.returns.push(o123);
12435 // 9914
12436 // 9915
12437 // 9916
12438 // 9917
12439 // 9918
12440 // 9919
12441 // 9920
12442 o122.appendChild = f974244559_482;
12443 // 9921
12444 f974244559_482.returns.push(o123);
12445 // 9923
12446 f974244559_471.returns.push(1373491290136);
12447 // 9925
12448 o124 = {};
12449 // 9926
12450 f974244559_480.returns.push(o124);
12451 // 9927
12452 // 9928
12453 // 9929
12454 // 9930
12455 // 9931
12456 // 9932
12457 // 9934
12458 f974244559_482.returns.push(o124);
12459 // 9936
12460 f974244559_471.returns.push(1373491290137);
12461 // 9938
12462 o125 = {};
12463 // 9939
12464 f974244559_480.returns.push(o125);
12465 // 9940
12466 // 9941
12467 // 9942
12468 // 9943
12469 // 9944
12470 // 9945
12471 // 9947
12472 f974244559_482.returns.push(o125);
12473 // 9949
12474 f974244559_471.returns.push(1373491290137);
12475 // 9951
12476 o126 = {};
12477 // 9952
12478 f974244559_480.returns.push(o126);
12479 // 9953
12480 // 9954
12481 // 9955
12482 // 9956
12483 // 9957
12484 // 9958
12485 // 9960
12486 f974244559_482.returns.push(o126);
12487 // 9962
12488 f974244559_471.returns.push(1373491290156);
12489 // 9964
12490 o127 = {};
12491 // 9965
12492 f974244559_480.returns.push(o127);
12493 // 9966
12494 // 9967
12495 // 9968
12496 // 9969
12497 // 9970
12498 // 9971
12499 // 9973
12500 f974244559_482.returns.push(o127);
12501 // 9975
12502 f974244559_482.returns.push(o122);
12503 // undefined
12504 o122 = null;
12505 // 9978
12506 f974244559_471.returns.push(1373491290158);
12507 // 9982
12508 o122 = {};
12509 // 9983
12510 f974244559_478.returns.push(o122);
12511 // 9985
12512 f974244559_471.returns.push(1373491290159);
12513 // 9987
12514 o128 = {};
12515 // 9988
12516 f974244559_480.returns.push(o128);
12517 // 9989
12518 // 9990
12519 // 9991
12520 // 9992
12521 // 9993
12522 // 9994
12523 // 9995
12524 o122.appendChild = f974244559_482;
12525 // 9996
12526 f974244559_482.returns.push(o128);
12527 // 9998
12528 f974244559_482.returns.push(o122);
12529 // undefined
12530 o122 = null;
12531 // 10001
12532 f974244559_471.returns.push(1373491290160);
12533 // 10005
12534 o122 = {};
12535 // 10006
12536 f974244559_478.returns.push(o122);
12537 // 10008
12538 f974244559_471.returns.push(1373491290161);
12539 // 10010
12540 o129 = {};
12541 // 10011
12542 f974244559_480.returns.push(o129);
12543 // 10012
12544 // 10013
12545 // 10014
12546 // 10015
12547 // 10016
12548 // 10017
12549 // 10018
12550 o122.appendChild = f974244559_482;
12551 // 10019
12552 f974244559_482.returns.push(o129);
12553 // 10021
12554 f974244559_471.returns.push(1373491290161);
12555 // 10023
12556 o130 = {};
12557 // 10024
12558 f974244559_480.returns.push(o130);
12559 // 10025
12560 // 10026
12561 // 10027
12562 // 10028
12563 // 10029
12564 // 10030
12565 // 10032
12566 f974244559_482.returns.push(o130);
12567 // 10034
12568 f974244559_482.returns.push(o122);
12569 // undefined
12570 o122 = null;
12571 // 10037
12572 f974244559_471.returns.push(1373491290163);
12573 // 10041
12574 o122 = {};
12575 // 10042
12576 f974244559_478.returns.push(o122);
12577 // 10044
12578 f974244559_482.returns.push(o122);
12579 // undefined
12580 o122 = null;
12581 // 10047
12582 f974244559_471.returns.push(1373491290165);
12583 // 10051
12584 o122 = {};
12585 // 10052
12586 f974244559_478.returns.push(o122);
12587 // 10054
12588 f974244559_482.returns.push(o122);
12589 // undefined
12590 o122 = null;
12591 // 10057
12592 f974244559_471.returns.push(1373491290176);
12593 // 10061
12594 o122 = {};
12595 // 10062
12596 f974244559_478.returns.push(o122);
12597 // 10064
12598 f974244559_471.returns.push(1373491290177);
12599 // 10066
12600 o131 = {};
12601 // 10067
12602 f974244559_480.returns.push(o131);
12603 // 10068
12604 // 10069
12605 // 10070
12606 // 10071
12607 // 10072
12608 // 10073
12609 // 10074
12610 o122.appendChild = f974244559_482;
12611 // 10075
12612 f974244559_482.returns.push(o131);
12613 // 10077
12614 f974244559_482.returns.push(o122);
12615 // undefined
12616 o122 = null;
12617 // 10080
12618 f974244559_471.returns.push(1373491290178);
12619 // 10084
12620 o122 = {};
12621 // 10085
12622 f974244559_478.returns.push(o122);
12623 // 10087
12624 f974244559_482.returns.push(o122);
12625 // undefined
12626 o122 = null;
12627 // 10090
12628 f974244559_471.returns.push(1373491290180);
12629 // 10093
12630 f974244559_471.returns.push(1373491290180);
12631 // 10097
12632 o122 = {};
12633 // 10098
12634 f974244559_478.returns.push(o122);
12635 // 10100
12636 f974244559_482.returns.push(o122);
12637 // undefined
12638 o122 = null;
12639 // 10103
12640 f974244559_471.returns.push(1373491290181);
12641 // 10107
12642 o122 = {};
12643 // 10108
12644 f974244559_478.returns.push(o122);
12645 // 10110
12646 f974244559_482.returns.push(o122);
12647 // undefined
12648 o122 = null;
12649 // 10113
12650 f974244559_471.returns.push(1373491290182);
12651 // 10117
12652 o122 = {};
12653 // 10118
12654 f974244559_478.returns.push(o122);
12655 // 10120
12656 f974244559_471.returns.push(1373491290182);
12657 // 10122
12658 o132 = {};
12659 // 10123
12660 f974244559_480.returns.push(o132);
12661 // 10124
12662 // 10125
12663 // 10126
12664 // 10127
12665 // 10128
12666 // 10129
12667 // 10130
12668 o122.appendChild = f974244559_482;
12669 // 10131
12670 f974244559_482.returns.push(o132);
12671 // 10133
12672 f974244559_471.returns.push(1373491290184);
12673 // 10135
12674 o133 = {};
12675 // 10136
12676 f974244559_480.returns.push(o133);
12677 // 10137
12678 // 10138
12679 // 10139
12680 // 10140
12681 // 10141
12682 // 10142
12683 // 10144
12684 f974244559_482.returns.push(o133);
12685 // 10146
12686 f974244559_471.returns.push(1373491290185);
12687 // 10148
12688 o134 = {};
12689 // 10149
12690 f974244559_480.returns.push(o134);
12691 // 10150
12692 // 10151
12693 // 10152
12694 // 10153
12695 // 10154
12696 // 10155
12697 // 10157
12698 f974244559_482.returns.push(o134);
12699 // 10159
12700 f974244559_482.returns.push(o122);
12701 // undefined
12702 o122 = null;
12703 // 10162
12704 f974244559_471.returns.push(1373491290193);
12705 // 10166
12706 o122 = {};
12707 // 10167
12708 f974244559_478.returns.push(o122);
12709 // 10169
12710 f974244559_482.returns.push(o122);
12711 // undefined
12712 o122 = null;
12713 // 10172
12714 f974244559_471.returns.push(1373491290194);
12715 // 10176
12716 o122 = {};
12717 // 10177
12718 f974244559_478.returns.push(o122);
12719 // 10179
12720 f974244559_471.returns.push(1373491290195);
12721 // 10181
12722 o135 = {};
12723 // 10182
12724 f974244559_480.returns.push(o135);
12725 // 10183
12726 // 10184
12727 // 10185
12728 // 10186
12729 // 10187
12730 // 10188
12731 // 10189
12732 o122.appendChild = f974244559_482;
12733 // 10190
12734 f974244559_482.returns.push(o135);
12735 // 10192
12736 f974244559_482.returns.push(o122);
12737 // undefined
12738 o122 = null;
12739 // 10195
12740 f974244559_471.returns.push(1373491290196);
12741 // 10198
12742 f974244559_471.returns.push(1373491290196);
12743 // 10202
12744 o122 = {};
12745 // 10203
12746 f974244559_478.returns.push(o122);
12747 // 10205
12748 f974244559_482.returns.push(o122);
12749 // undefined
12750 o122 = null;
12751 // 10208
12752 f974244559_471.returns.push(1373491290197);
12753 // 10212
12754 o122 = {};
12755 // 10213
12756 f974244559_478.returns.push(o122);
12757 // 10215
12758 f974244559_482.returns.push(o122);
12759 // undefined
12760 o122 = null;
12761 // 10218
12762 f974244559_471.returns.push(1373491290199);
12763 // 10222
12764 o122 = {};
12765 // 10223
12766 f974244559_478.returns.push(o122);
12767 // 10225
12768 f974244559_482.returns.push(o122);
12769 // undefined
12770 o122 = null;
12771 // 10228
12772 f974244559_471.returns.push(1373491290199);
12773 // 10232
12774 o122 = {};
12775 // 10233
12776 f974244559_478.returns.push(o122);
12777 // 10235
12778 f974244559_482.returns.push(o122);
12779 // undefined
12780 o122 = null;
12781 // 10238
12782 f974244559_471.returns.push(1373491290200);
12783 // 10242
12784 o122 = {};
12785 // 10243
12786 f974244559_478.returns.push(o122);
12787 // 10245
12788 f974244559_482.returns.push(o122);
12789 // undefined
12790 o122 = null;
12791 // 10248
12792 f974244559_471.returns.push(1373491290213);
12793 // 10252
12794 o122 = {};
12795 // 10253
12796 f974244559_478.returns.push(o122);
12797 // 10255
12798 f974244559_482.returns.push(o122);
12799 // undefined
12800 o122 = null;
12801 // 10258
12802 f974244559_471.returns.push(1373491290213);
12803 // 10262
12804 o122 = {};
12805 // 10263
12806 f974244559_478.returns.push(o122);
12807 // 10265
12808 f974244559_482.returns.push(o122);
12809 // undefined
12810 o122 = null;
12811 // 10267
12812 f974244559_471.returns.push(1373491290214);
12813 // 10270
12814 f974244559_471.returns.push(1373491290216);
12815 // 10274
12816 o122 = {};
12817 // 10275
12818 f974244559_478.returns.push(o122);
12819 // 10277
12820 f974244559_482.returns.push(o122);
12821 // undefined
12822 o122 = null;
12823 // 10281
12824 o122 = {};
12825 // 10282
12826 f974244559_478.returns.push(o122);
12827 // 10284
12828 f974244559_482.returns.push(o122);
12829 // undefined
12830 o122 = null;
12831 // 10287
12832 f974244559_471.returns.push(1373491290217);
12833 // 10291
12834 o122 = {};
12835 // 10292
12836 f974244559_478.returns.push(o122);
12837 // 10294
12838 f974244559_482.returns.push(o122);
12839 // undefined
12840 o122 = null;
12841 // 10296
12842 f974244559_471.returns.push(1373491290224);
12843 // 10300
12844 f974244559_12.returns.push(24);
12845 // 10302
12846 f974244559_471.returns.push(1373491290225);
12847 // 10304
12848 f974244559_471.returns.push(1373491290225);
12849 // 10306
12850 f974244559_471.returns.push(1373491290225);
12851 // 10310
12852 f974244559_12.returns.push(25);
12853 // 10312
12854 f974244559_471.returns.push(1373491290226);
12855 // 10316
12856 f974244559_12.returns.push(26);
12857 // 10318
12858 f974244559_471.returns.push(1373491290226);
12859 // 10327
12860 o0.title = "Gregor Richards";
12861 // 10329
12862 o1._ua_log = "{\"log\":[{\"ts\":1373491169511,\"path\":\"-\",\"index\":0,\"type\":\"init\",\"iref\":\"-\"},{\"path\":\"/index.php\",\"type\":\"click\",\"ts\":1373491180578,\"iref\":\"bluebar\",\"index\":1},{\"path\":\"/index.php\",\"type\":\"submit\",\"ts\":1373491180618,\"iref\":\"bluebar\",\"index\":2}],\"len\":3}";
12863 // undefined
12864 o1 = null;
12865 // 10332
12866 f974244559_471.returns.push(1373491290296);
12867 // 10336
12868 o25.__FB_TOKEN = void 0;
12869 // 10337
12870 // 10339
12871 o25.hasAttribute = f974244559_527;
12872 // 10341
12873 f974244559_527.returns.push(false);
12874 // 10342
12875 o25.JSBNG__addEventListener = f974244559_472;
12876 // 10344
12877 f974244559_472.returns.push(undefined);
12878 // 10345
12879 o25.JSBNG__onclick = null;
12880 // 10348
12881 f974244559_468.returns.push(1);
12882 // 10350
12883 f974244559_468.returns.push(2);
12884 // 10353
12885 f974244559_471.returns.push(1373491290309);
12886 // 10357
12887 f974244559_7.returns.push(undefined);
12888 // 10358
12889 ow974244559.JSBNG__onJSBNG__focus = undefined;
12890 // 10363
12891 f974244559_472.returns.push(undefined);
12892 // 10364
12893 o8.JSBNG__onDOMMouseScroll = void 0;
12894 // 10371
12895 f974244559_472.returns.push(undefined);
12896 // 10372
12897 o8.JSBNG__onmousemove = null;
12898 // 10376
12899 o1 = {};
12900 // 10377
12901 f974244559_0.returns.push(o1);
12902 // undefined
12903 o1 = null;
12904 // 10379
12905 f974244559_471.returns.push(1373491290317);
12906 // 10381
12907 f974244559_486.returns.push("1;1");
12908 // 10383
12909 f974244559_486.returns.push("{\"log\":[{\"ts\":1373491169511,\"path\":\"-\",\"index\":0,\"type\":\"init\",\"iref\":\"-\"},{\"path\":\"/index.php\",\"type\":\"click\",\"ts\":1373491180578,\"iref\":\"bluebar\",\"index\":1},{\"path\":\"/index.php\",\"type\":\"submit\",\"ts\":1373491180618,\"iref\":\"bluebar\",\"index\":2}],\"len\":3}");
12910 // 10385
12911 f974244559_471.returns.push(1373491290317);
12912 // 10387
12913 o1 = {};
12914 // 10388
12915 f974244559_70.returns.push(o1);
12916 // 10389
12917 // 10390
12918 f974244559_1564 = function() { return f974244559_1564.returns[f974244559_1564.inst++]; };
12919 f974244559_1564.returns = [];
12920 f974244559_1564.inst = 0;
12921 // 10391
12922 o1.open = f974244559_1564;
12923 // 10392
12924 f974244559_1564.returns.push(undefined);
12925 // 10393
12926 f974244559_1565 = function() { return f974244559_1565.returns[f974244559_1565.inst++]; };
12927 f974244559_1565.returns = [];
12928 f974244559_1565.inst = 0;
12929 // 10394
12930 o1.setRequestHeader = f974244559_1565;
12931 // 10395
12932 f974244559_1565.returns.push(undefined);
12933 // 10398
12934 f974244559_1565.returns.push(undefined);
12935 // 10399
12936 f974244559_1566 = function() { return f974244559_1566.returns[f974244559_1566.inst++]; };
12937 f974244559_1566.returns = [];
12938 f974244559_1566.inst = 0;
12939 // 10400
12940 o1.send = f974244559_1566;
12941 // 10401
12942 f974244559_1566.returns.push(undefined);
12943 // 10404
12944 o122 = {};
12945 // 10405
12946 f974244559_502.returns.push(o122);
12947 // 10406
12948 o122.nodeName = "FORM";
12949 // 10407
12950 o122.__FB_TOKEN = void 0;
12951 // 10408
12952 // 10409
12953 o122.getAttribute = f974244559_500;
12954 // 10410
12955 o122.hasAttribute = f974244559_527;
12956 // 10412
12957 f974244559_527.returns.push(false);
12958 // 10413
12959 o122.JSBNG__addEventListener = f974244559_472;
12960 // 10415
12961 f974244559_472.returns.push(undefined);
12962 // 10416
12963 f974244559_1568 = function() { return f974244559_1568.returns[f974244559_1568.inst++]; };
12964 f974244559_1568.returns = [];
12965 f974244559_1568.inst = 0;
12966 // 10417
12967 o122.JSBNG__onsubmit = f974244559_1568;
12968 // 10420
12969 // undefined
12970 o122 = null;
12971 // 10424
12972 o122 = {};
12973 // 10425
12974 o136 = {};
12975 // 10427
12976 o122.transport = o1;
12977 // 10428
12978 o1.readyState = 1;
12979 // 10429
12980 o137 = {};
12981 // 10430
12982 o138 = {};
12983 // 10432
12984 o137.length = 1;
12985 // 10433
12986 o137["0"] = "63VzN";
12987 // 10440
12988 f974244559_471.returns.push(1373491290378);
12989 // 10441
12990 f974244559_12.returns.push(27);
12991 // 10442
12992 o139 = {};
12993 // 10443
12994 o140 = {};
12995 // 10445
12996 o139.length = 1;
12997 // 10446
12998 o139["0"] = "4vv8/";
12999 // 10452
13000 ow974244559.JSBNG__random = undefined;
13001 // 10453
13002 f974244559_470.returns.push(0.825079214759171);
13003 // 10454
13004 o5.pathname = "/LawlabeeTheWallaby";
13005 // 10456
13006 f974244559_471.returns.push(1373491292271);
13007 // 10460
13008 f974244559_12.returns.push(28);
13009 // 10464
13010 o141 = {};
13011 // 10465
13012 f974244559_502.returns.push(o141);
13013 // 10466
13014 o141.nodeName = "A";
13015 // 10467
13016 o141.__FB_TOKEN = void 0;
13017 // 10468
13018 // 10469
13019 o141.getAttribute = f974244559_500;
13020 // 10470
13021 o141.hasAttribute = f974244559_527;
13022 // 10472
13023 f974244559_527.returns.push(false);
13024 // 10473
13025 o141.JSBNG__addEventListener = f974244559_472;
13026 // 10475
13027 f974244559_472.returns.push(undefined);
13028 // 10476
13029 f974244559_1576 = function() { return f974244559_1576.returns[f974244559_1576.inst++]; };
13030 f974244559_1576.returns = [];
13031 f974244559_1576.inst = 0;
13032 // 10477
13033 o141.JSBNG__onclick = f974244559_1576;
13034 // 10480
13035 // 10484
13036 o112.__FB_TOKEN = void 0;
13037 // 10485
13038 // undefined
13039 o112 = null;
13040 // 10486
13041 o107.getElementsByTagName = f974244559_514;
13042 // 10488
13043 o107.querySelectorAll = f974244559_523;
13044 // undefined
13045 o107 = null;
13046 // 10489
13047 o107 = {};
13048 // 10490
13049 f974244559_523.returns.push(o107);
13050 // 10491
13051 o107.length = 0;
13052 // undefined
13053 o107 = null;
13054 // 10495
13055 o107 = {};
13056 // 10496
13057 f974244559_523.returns.push(o107);
13058 // 10497
13059 o107.length = 0;
13060 // undefined
13061 o107 = null;
13062 // 10505
13063 f974244559_471.returns.push(1373491292324);
13064 // 10508
13065 f974244559_1202.returns.push(undefined);
13066 // 10514
13067 f974244559_471.returns.push(1373491292327);
13068 // 10521
13069 f974244559_471.returns.push(1373491292334);
13070 // 10525
13071 o107 = {};
13072 // 10526
13073 o112 = {};
13074 // 10528
13075 o107.length = 1;
13076 // 10529
13077 o107["0"] = "u//Ut";
13078 // 10538
13079 o142 = {};
13080 // 10539
13081 f974244559_502.returns.push(o142);
13082 // 10540
13083 o142.getElementsByTagName = f974244559_514;
13084 // 10542
13085 o142.querySelectorAll = f974244559_523;
13086 // 10543
13087 o143 = {};
13088 // 10544
13089 f974244559_523.returns.push(o143);
13090 // 10545
13091 o143.length = 1;
13092 // 10546
13093 o144 = {};
13094 // 10547
13095 o143["0"] = o144;
13096 // undefined
13097 o143 = null;
13098 // 10550
13099 o143 = {};
13100 // 10551
13101 f974244559_502.returns.push(o143);
13102 // 10552
13103 o143.getElementsByTagName = f974244559_514;
13104 // 10554
13105 o143.querySelectorAll = f974244559_523;
13106 // 10555
13107 o145 = {};
13108 // 10556
13109 f974244559_523.returns.push(o145);
13110 // 10557
13111 o145.length = 1;
13112 // 10558
13113 o146 = {};
13114 // 10559
13115 o145["0"] = o146;
13116 // undefined
13117 o145 = null;
13118 // 10562
13119 o145 = {};
13120 // 10563
13121 f974244559_502.returns.push(o145);
13122 // 10564
13123 o145.getElementsByTagName = f974244559_514;
13124 // 10566
13125 o145.querySelectorAll = f974244559_523;
13126 // 10567
13127 o147 = {};
13128 // 10568
13129 f974244559_523.returns.push(o147);
13130 // 10569
13131 o147.length = 1;
13132 // 10570
13133 o148 = {};
13134 // 10571
13135 o147["0"] = o148;
13136 // undefined
13137 o147 = null;
13138 // 10574
13139 o147 = {};
13140 // 10575
13141 f974244559_480.returns.push(o147);
13142 // 10576
13143 // 10577
13144 // 10578
13145 o147.getElementsByTagName = f974244559_514;
13146 // 10579
13147 o149 = {};
13148 // 10580
13149 f974244559_514.returns.push(o149);
13150 // 10581
13151 o149.length = 0;
13152 // undefined
13153 o149 = null;
13154 // 10583
13155 o149 = {};
13156 // 10584
13157 o147.childNodes = o149;
13158 // undefined
13159 o147 = null;
13160 // 10585
13161 o149.item = f974244559_517;
13162 // 10586
13163 o149.length = 1;
13164 // 10587
13165 o147 = {};
13166 // 10588
13167 o149["0"] = o147;
13168 // undefined
13169 o149 = null;
13170 // undefined
13171 o147 = null;
13172 // 10590
13173 o147 = {};
13174 // 10591
13175 f974244559_480.returns.push(o147);
13176 // 10592
13177 // 10593
13178 // 10594
13179 o147.getElementsByTagName = f974244559_514;
13180 // 10595
13181 o149 = {};
13182 // 10596
13183 f974244559_514.returns.push(o149);
13184 // 10597
13185 o149.length = 0;
13186 // undefined
13187 o149 = null;
13188 // 10599
13189 o149 = {};
13190 // 10600
13191 o147.childNodes = o149;
13192 // undefined
13193 o147 = null;
13194 // 10601
13195 o149.item = f974244559_517;
13196 // 10602
13197 o149.length = 1;
13198 // 10603
13199 o147 = {};
13200 // 10604
13201 o149["0"] = o147;
13202 // undefined
13203 o149 = null;
13204 // undefined
13205 o147 = null;
13206 // 10606
13207 o147 = {};
13208 // 10607
13209 f974244559_480.returns.push(o147);
13210 // 10608
13211 // 10609
13212 // 10610
13213 o147.getElementsByTagName = f974244559_514;
13214 // 10611
13215 o149 = {};
13216 // 10612
13217 f974244559_514.returns.push(o149);
13218 // 10613
13219 o149.length = 0;
13220 // undefined
13221 o149 = null;
13222 // 10615
13223 o149 = {};
13224 // 10616
13225 o147.childNodes = o149;
13226 // undefined
13227 o147 = null;
13228 // 10617
13229 o149.item = f974244559_517;
13230 // 10618
13231 o149.length = 1;
13232 // 10619
13233 o147 = {};
13234 // 10620
13235 o149["0"] = o147;
13236 // undefined
13237 o149 = null;
13238 // undefined
13239 o147 = null;
13240 // 10622
13241 o147 = {};
13242 // 10623
13243 f974244559_480.returns.push(o147);
13244 // 10624
13245 // 10625
13246 // 10626
13247 o147.getElementsByTagName = f974244559_514;
13248 // 10627
13249 o149 = {};
13250 // 10628
13251 f974244559_514.returns.push(o149);
13252 // 10629
13253 o149.length = 0;
13254 // undefined
13255 o149 = null;
13256 // 10631
13257 o149 = {};
13258 // 10632
13259 o147.childNodes = o149;
13260 // undefined
13261 o147 = null;
13262 // 10633
13263 o149.item = f974244559_517;
13264 // 10634
13265 o149.length = 1;
13266 // 10635
13267 o147 = {};
13268 // 10636
13269 o149["0"] = o147;
13270 // undefined
13271 o149 = null;
13272 // undefined
13273 o147 = null;
13274 // 10638
13275 o147 = {};
13276 // 10639
13277 f974244559_480.returns.push(o147);
13278 // 10640
13279 // 10641
13280 // 10642
13281 o147.getElementsByTagName = f974244559_514;
13282 // 10643
13283 o149 = {};
13284 // 10644
13285 f974244559_514.returns.push(o149);
13286 // 10645
13287 o149.length = 0;
13288 // undefined
13289 o149 = null;
13290 // 10647
13291 o149 = {};
13292 // 10648
13293 o147.childNodes = o149;
13294 // undefined
13295 o147 = null;
13296 // 10649
13297 o149.item = f974244559_517;
13298 // 10650
13299 o149.length = 1;
13300 // 10651
13301 o147 = {};
13302 // 10652
13303 o149["0"] = o147;
13304 // undefined
13305 o149 = null;
13306 // undefined
13307 o147 = null;
13308 // 10654
13309 o147 = {};
13310 // 10655
13311 f974244559_480.returns.push(o147);
13312 // 10656
13313 // 10657
13314 // 10658
13315 o147.getElementsByTagName = f974244559_514;
13316 // 10659
13317 o149 = {};
13318 // 10660
13319 f974244559_514.returns.push(o149);
13320 // 10661
13321 o149.length = 0;
13322 // undefined
13323 o149 = null;
13324 // 10663
13325 o149 = {};
13326 // 10664
13327 o147.childNodes = o149;
13328 // undefined
13329 o147 = null;
13330 // 10665
13331 o149.item = f974244559_517;
13332 // 10666
13333 o149.length = 1;
13334 // 10667
13335 o147 = {};
13336 // 10668
13337 o149["0"] = o147;
13338 // undefined
13339 o149 = null;
13340 // undefined
13341 o147 = null;
13342 // 10673
13343 o147 = {};
13344 // 10674
13345 f974244559_502.returns.push(o147);
13346 // 10678
13347 o149 = {};
13348 // 10679
13349 f974244559_502.returns.push(o149);
13350 // undefined
13351 o149 = null;
13352 // 10681
13353 o149 = {};
13354 // 10682
13355 o25.classList = o149;
13356 // 10684
13357 f974244559_1617 = function() { return f974244559_1617.returns[f974244559_1617.inst++]; };
13358 f974244559_1617.returns = [];
13359 f974244559_1617.inst = 0;
13360 // 10685
13361 o149.contains = f974244559_1617;
13362 // undefined
13363 o149 = null;
13364 // 10686
13365 f974244559_1617.returns.push(false);
13366 // 10691
13367 o149 = {};
13368 // 10692
13369 f974244559_502.returns.push(o149);
13370 // 10694
13371 o150 = {};
13372 // 10695
13373 f974244559_502.returns.push(o150);
13374 // 10698
13375 o149.__FB_TOKEN = void 0;
13376 // 10699
13377 // 10702
13378 o151 = {};
13379 // 10703
13380 f974244559_502.returns.push(o151);
13381 // 10705
13382 o152 = {};
13383 // 10706
13384 f974244559_502.returns.push(o152);
13385 // 10708
13386 o153 = {};
13387 // 10709
13388 f974244559_502.returns.push(o153);
13389 // 10711
13390 o154 = {};
13391 // 10712
13392 f974244559_502.returns.push(o154);
13393 // 10714
13394 o155 = {};
13395 // 10715
13396 f974244559_502.returns.push(o155);
13397 // 10716
13398 o152.getElementsByTagName = f974244559_514;
13399 // 10718
13400 o152.querySelectorAll = f974244559_523;
13401 // 10719
13402 o156 = {};
13403 // 10720
13404 f974244559_523.returns.push(o156);
13405 // 10721
13406 o156.length = 1;
13407 // 10722
13408 o157 = {};
13409 // 10723
13410 o156["0"] = o157;
13411 // undefined
13412 o156 = null;
13413 // 10725
13414 o156 = {};
13415 // 10726
13416 f974244559_480.returns.push(o156);
13417 // undefined
13418 o156 = null;
13419 // 10727
13420 o157.nodeName = "INPUT";
13421 // 10728
13422 o157.__FB_TOKEN = void 0;
13423 // 10729
13424 // 10730
13425 o157.getAttribute = f974244559_500;
13426 // 10731
13427 o157.hasAttribute = f974244559_527;
13428 // 10733
13429 f974244559_527.returns.push(false);
13430 // 10734
13431 o157.JSBNG__addEventListener = f974244559_472;
13432 // 10736
13433 f974244559_472.returns.push(undefined);
13434 // 10737
13435 o157.JSBNG__onkeyup = null;
13436 // 10739
13437 o154.nodeName = "A";
13438 // 10740
13439 o154.__FB_TOKEN = void 0;
13440 // 10741
13441 // 10742
13442 o154.getAttribute = f974244559_500;
13443 // 10743
13444 o154.hasAttribute = f974244559_527;
13445 // 10745
13446 f974244559_527.returns.push(false);
13447 // 10746
13448 o154.JSBNG__addEventListener = f974244559_472;
13449 // 10748
13450 f974244559_472.returns.push(undefined);
13451 // 10749
13452 o154.JSBNG__onclick = null;
13453 // 10751
13454 o157.tabIndex = 0;
13455 // 10752
13456 // 10753
13457 f974244559_1628 = function() { return f974244559_1628.returns[f974244559_1628.inst++]; };
13458 f974244559_1628.returns = [];
13459 f974244559_1628.inst = 0;
13460 // 10754
13461 o157.JSBNG__focus = f974244559_1628;
13462 // 10755
13463 f974244559_1628.returns.push(undefined);
13464 // 10756
13465 o156 = {};
13466 // 10757
13467 o152.classList = o156;
13468 // 10759
13469 o156.contains = f974244559_1617;
13470 // undefined
13471 o156 = null;
13472 // 10760
13473 f974244559_1617.returns.push(false);
13474 // 10761
13475 o156 = {};
13476 // 10762
13477 o152.parentNode = o156;
13478 // 10763
13479 o158 = {};
13480 // 10764
13481 o156.classList = o158;
13482 // 10766
13483 o158.contains = f974244559_1617;
13484 // undefined
13485 o158 = null;
13486 // 10767
13487 f974244559_1617.returns.push(false);
13488 // 10768
13489 o158 = {};
13490 // 10769
13491 o156.parentNode = o158;
13492 // 10770
13493 o159 = {};
13494 // 10771
13495 o158.classList = o159;
13496 // 10773
13497 o159.contains = f974244559_1617;
13498 // undefined
13499 o159 = null;
13500 // 10774
13501 f974244559_1617.returns.push(false);
13502 // 10775
13503 o158.parentNode = o149;
13504 // 10776
13505 o159 = {};
13506 // 10777
13507 o149.classList = o159;
13508 // 10779
13509 o159.contains = f974244559_1617;
13510 // undefined
13511 o159 = null;
13512 // 10780
13513 f974244559_1617.returns.push(false);
13514 // 10781
13515 o149.parentNode = o150;
13516 // 10782
13517 o159 = {};
13518 // 10783
13519 o150.classList = o159;
13520 // 10785
13521 o159.contains = f974244559_1617;
13522 // undefined
13523 o159 = null;
13524 // 10786
13525 f974244559_1617.returns.push(true);
13526 // 10787
13527 o155.nodeName = "A";
13528 // 10788
13529 o155.__FB_TOKEN = void 0;
13530 // 10789
13531 // 10790
13532 o155.getAttribute = f974244559_500;
13533 // 10791
13534 o155.hasAttribute = f974244559_527;
13535 // 10793
13536 f974244559_527.returns.push(false);
13537 // 10794
13538 o155.JSBNG__addEventListener = f974244559_472;
13539 // 10796
13540 f974244559_472.returns.push(undefined);
13541 // 10797
13542 o155.JSBNG__onclick = null;
13543 // 10799
13544 o150.getElementsByTagName = f974244559_514;
13545 // 10801
13546 o150.querySelectorAll = f974244559_523;
13547 // 10802
13548 o159 = {};
13549 // 10803
13550 f974244559_523.returns.push(o159);
13551 // 10804
13552 o159.length = 1;
13553 // 10805
13554 o160 = {};
13555 // 10806
13556 o159["0"] = o160;
13557 // undefined
13558 o159 = null;
13559 // 10807
13560 o160.nodeName = "A";
13561 // 10808
13562 o160.__FB_TOKEN = void 0;
13563 // 10809
13564 // 10810
13565 o160.getAttribute = f974244559_500;
13566 // 10811
13567 o160.hasAttribute = f974244559_527;
13568 // 10813
13569 f974244559_527.returns.push(false);
13570 // 10814
13571 o160.JSBNG__addEventListener = f974244559_472;
13572 // 10816
13573 f974244559_472.returns.push(undefined);
13574 // 10817
13575 o160.JSBNG__onclick = null;
13576 // 10822
13577 o159 = {};
13578 // 10823
13579 f974244559_502.returns.push(o159);
13580 // undefined
13581 o159 = null;
13582 // 10834
13583 o159 = {};
13584 // 10835
13585 f974244559_502.returns.push(o159);
13586 // 10837
13587 o161 = {};
13588 // 10838
13589 f974244559_502.returns.push(o161);
13590 // 10839
13591 o161.__FB_TOKEN = void 0;
13592 // 10840
13593 // 10845
13594 o159.getElementsByTagName = f974244559_514;
13595 // 10847
13596 o159.querySelectorAll = f974244559_523;
13597 // 10848
13598 o162 = {};
13599 // 10849
13600 f974244559_523.returns.push(o162);
13601 // 10850
13602 o162.length = 1;
13603 // 10851
13604 o163 = {};
13605 // 10852
13606 o162["0"] = o163;
13607 // undefined
13608 o162 = null;
13609 // 10854
13610 o163.nodeName = "INPUT";
13611 // 10855
13612 o163.__FB_TOKEN = void 0;
13613 // 10856
13614 // 10857
13615 o163.getAttribute = f974244559_500;
13616 // 10858
13617 o163.hasAttribute = f974244559_527;
13618 // 10860
13619 f974244559_527.returns.push(false);
13620 // 10861
13621 o163.JSBNG__addEventListener = f974244559_472;
13622 // 10863
13623 f974244559_472.returns.push(undefined);
13624 // 10864
13625 o163.JSBNG__onJSBNG__focus = void 0;
13626 // 10867
13627 o162 = {};
13628 // 10868
13629 o164 = {};
13630 // 10870
13631 o162.length = 1;
13632 // 10871
13633 o162["0"] = "hfrQl";
13634 // 10877
13635 f974244559_13.returns.push(29);
13636 // 10878
13637 o3.onLine = true;
13638 // 10880
13639 f974244559_471.returns.push(1373491297160);
13640 // 10881
13641 o165 = {};
13642 // 10882
13643 o166 = {};
13644 // 10884
13645 o165.length = 1;
13646 // 10885
13647 o165["0"] = "C6rJk";
13648 // 10890
13649 o167 = {};
13650 // 10891
13651 f974244559_70.returns.push(o167);
13652 // 10892
13653 // 10893
13654 o167.open = f974244559_1564;
13655 // 10894
13656 f974244559_1564.returns.push(undefined);
13657 // 10895
13658 o167.setRequestHeader = f974244559_1565;
13659 // 10896
13660 f974244559_1565.returns.push(undefined);
13661 // 10899
13662 f974244559_1565.returns.push(undefined);
13663 // 10900
13664 o167.send = f974244559_1566;
13665 // 10901
13666 f974244559_1566.returns.push(undefined);
13667 // 10904
13668 f974244559_502.returns.push(o144);
13669 // 10906
13670 f974244559_502.returns.push(o142);
13671 // 10909
13672 f974244559_471.returns.push(1373491297170);
13673 // 10920
13674 o142.getAttributeNode = f974244559_519;
13675 // 10922
13676 o168 = {};
13677 // 10923
13678 f974244559_519.returns.push(o168);
13679 // 10924
13680 o168.value = "fbMessagesJewel";
13681 // undefined
13682 o168 = null;
13683 // 10927
13684 o168 = {};
13685 // 10928
13686 f974244559_514.returns.push(o168);
13687 // 10929
13688 o168.length = 41;
13689 // 10930
13690 o169 = {};
13691 // 10931
13692 o168["0"] = o169;
13693 // 10932
13694 o169.getAttributeNode = f974244559_519;
13695 // 10934
13696 f974244559_519.returns.push(null);
13697 // 10936
13698 o170 = {};
13699 // 10937
13700 o168["1"] = o170;
13701 // 10938
13702 o170.getAttributeNode = f974244559_519;
13703 // 10940
13704 o171 = {};
13705 // 10941
13706 f974244559_519.returns.push(o171);
13707 // 10942
13708 o171.value = "mercurymessagesCountWrapper";
13709 // undefined
13710 o171 = null;
13711 // 10944
13712 o171 = {};
13713 // 10945
13714 o168["2"] = o171;
13715 // undefined
13716 o168 = null;
13717 // 10946
13718 o171.getAttributeNode = f974244559_519;
13719 // 10948
13720 o168 = {};
13721 // 10949
13722 f974244559_519.returns.push(o168);
13723 // 10950
13724 o168.value = "mercurymessagesCountValue";
13725 // undefined
13726 o168 = null;
13727 // 10952
13728 o142.contains = f974244559_702;
13729 // 10954
13730 f974244559_702.returns.push(true);
13731 // 10959
13732 o168 = {};
13733 // 10960
13734 f974244559_523.returns.push(o168);
13735 // 10961
13736 o168.length = 1;
13737 // 10962
13738 o168["0"] = o170;
13739 // undefined
13740 o168 = null;
13741 // 10964
13742 o170.querySelectorAll = f974244559_523;
13743 // 10965
13744 o168 = {};
13745 // 10966
13746 f974244559_523.returns.push(o168);
13747 // 10967
13748 o168.length = 1;
13749 // 10968
13750 o168["0"] = o171;
13751 // undefined
13752 o168 = null;
13753 // 10969
13754 o168 = {};
13755 // undefined
13756 fo974244559_1653_firstChild = function() { return fo974244559_1653_firstChild.returns[fo974244559_1653_firstChild.inst++]; };
13757 fo974244559_1653_firstChild.returns = [];
13758 fo974244559_1653_firstChild.inst = 0;
13759 defineGetter(o171, "firstChild", fo974244559_1653_firstChild, undefined);
13760 // undefined
13761 fo974244559_1653_firstChild.returns.push(o168);
13762 // undefined
13763 fo974244559_1653_firstChild.returns.push(o168);
13764 // 10972
13765 o168.parentNode = o171;
13766 // 10974
13767 o171.removeChild = f974244559_507;
13768 // 10975
13769 f974244559_507.returns.push(o168);
13770 // undefined
13771 o168 = null;
13772 // undefined
13773 fo974244559_1653_firstChild.returns.push(null);
13774 // 10978
13775 o168 = {};
13776 // 10979
13777 f974244559_478.returns.push(o168);
13778 // 10980
13779 f974244559_1659 = function() { return f974244559_1659.returns[f974244559_1659.inst++]; };
13780 f974244559_1659.returns = [];
13781 f974244559_1659.inst = 0;
13782 // 10981
13783 o0.createTextNode = f974244559_1659;
13784 // 10982
13785 o172 = {};
13786 // 10983
13787 f974244559_1659.returns.push(o172);
13788 // 10984
13789 o168.appendChild = f974244559_482;
13790 // 10985
13791 f974244559_482.returns.push(o172);
13792 // undefined
13793 o172 = null;
13794 // 10986
13795 o171.appendChild = f974244559_482;
13796 // 10987
13797 f974244559_482.returns.push(o168);
13798 // undefined
13799 o168 = null;
13800 // 10988
13801 o168 = {};
13802 // 10989
13803 o142.classList = o168;
13804 // 10991
13805 o168.remove = f974244559_1244;
13806 // 10992
13807 f974244559_1244.returns.push(undefined);
13808 // 10995
13809 o144.getElementsByTagName = f974244559_514;
13810 // 10996
13811 o144.getAttributeNode = f974244559_519;
13812 // 10998
13813 o172 = {};
13814 // 10999
13815 f974244559_519.returns.push(o172);
13816 // 11000
13817 o172.value = "fbMessagesFlyout";
13818 // undefined
13819 o172 = null;
13820 // 11003
13821 o172 = {};
13822 // 11004
13823 f974244559_514.returns.push(o172);
13824 // 11005
13825 o172.length = 36;
13826 // 11006
13827 o173 = {};
13828 // 11007
13829 o172["0"] = o173;
13830 // 11008
13831 o173.getAttributeNode = f974244559_519;
13832 // 11010
13833 f974244559_519.returns.push(null);
13834 // 11012
13835 o174 = {};
13836 // 11013
13837 o172["1"] = o174;
13838 // 11014
13839 o174.getAttributeNode = f974244559_519;
13840 // 11016
13841 f974244559_519.returns.push(null);
13842 // 11018
13843 o175 = {};
13844 // 11019
13845 o172["2"] = o175;
13846 // 11020
13847 o175.getAttributeNode = f974244559_519;
13848 // 11022
13849 f974244559_519.returns.push(null);
13850 // 11024
13851 o176 = {};
13852 // 11025
13853 o172["3"] = o176;
13854 // 11026
13855 o176.getAttributeNode = f974244559_519;
13856 // 11028
13857 f974244559_519.returns.push(null);
13858 // 11030
13859 o177 = {};
13860 // 11031
13861 o172["4"] = o177;
13862 // 11032
13863 o177.getAttributeNode = f974244559_519;
13864 // 11034
13865 f974244559_519.returns.push(null);
13866 // 11036
13867 o178 = {};
13868 // 11037
13869 o172["5"] = o178;
13870 // 11038
13871 o178.getAttributeNode = f974244559_519;
13872 // 11040
13873 f974244559_519.returns.push(null);
13874 // 11042
13875 o179 = {};
13876 // 11043
13877 o172["6"] = o179;
13878 // 11044
13879 o179.getAttributeNode = f974244559_519;
13880 // 11046
13881 f974244559_519.returns.push(null);
13882 // 11048
13883 o180 = {};
13884 // 11049
13885 o172["7"] = o180;
13886 // 11050
13887 o180.getAttributeNode = f974244559_519;
13888 // 11052
13889 f974244559_519.returns.push(null);
13890 // 11054
13891 o172["8"] = o141;
13892 // 11055
13893 o141.getAttributeNode = f974244559_519;
13894 // 11057
13895 o181 = {};
13896 // 11058
13897 f974244559_519.returns.push(o181);
13898 // 11059
13899 o181.value = "u_0_4";
13900 // undefined
13901 o181 = null;
13902 // 11061
13903 o181 = {};
13904 // 11062
13905 o172["9"] = o181;
13906 // 11063
13907 o181.getAttributeNode = f974244559_519;
13908 // 11065
13909 f974244559_519.returns.push(null);
13910 // 11067
13911 o182 = {};
13912 // 11068
13913 o172["10"] = o182;
13914 // 11069
13915 o182.getAttributeNode = f974244559_519;
13916 // 11071
13917 f974244559_519.returns.push(null);
13918 // 11073
13919 o183 = {};
13920 // 11074
13921 o172["11"] = o183;
13922 // 11075
13923 o183.getAttributeNode = f974244559_519;
13924 // 11077
13925 f974244559_519.returns.push(null);
13926 // 11079
13927 o184 = {};
13928 // 11080
13929 o172["12"] = o184;
13930 // 11081
13931 o184.getAttributeNode = f974244559_519;
13932 // 11083
13933 f974244559_519.returns.push(null);
13934 // 11085
13935 o185 = {};
13936 // 11086
13937 o172["13"] = o185;
13938 // 11087
13939 o185.getAttributeNode = f974244559_519;
13940 // 11089
13941 f974244559_519.returns.push(null);
13942 // 11091
13943 o186 = {};
13944 // 11092
13945 o172["14"] = o186;
13946 // 11093
13947 o186.getAttributeNode = f974244559_519;
13948 // 11095
13949 f974244559_519.returns.push(null);
13950 // 11097
13951 o187 = {};
13952 // 11098
13953 o172["15"] = o187;
13954 // 11099
13955 o187.getAttributeNode = f974244559_519;
13956 // 11101
13957 f974244559_519.returns.push(null);
13958 // 11103
13959 o172["16"] = o79;
13960 // undefined
13961 o172 = null;
13962 // 11104
13963 o79.getAttributeNode = f974244559_519;
13964 // 11106
13965 o172 = {};
13966 // 11107
13967 f974244559_519.returns.push(o172);
13968 // 11108
13969 o172.value = "MercuryJewelThreadList";
13970 // undefined
13971 o172 = null;
13972 // 11110
13973 o144.contains = f974244559_702;
13974 // 11112
13975 f974244559_702.returns.push(true);
13976 // 11115
13977 o168.contains = f974244559_1617;
13978 // undefined
13979 o168 = null;
13980 // 11116
13981 f974244559_1617.returns.push(false);
13982 // 11120
13983 f974244559_471.returns.push(1373491297225);
13984 // 11123
13985 f974244559_502.returns.push(o146);
13986 // 11125
13987 f974244559_502.returns.push(null);
13988 // 11127
13989 f974244559_502.returns.push(null);
13990 // 11128
13991 o146.nodeName = "DIV";
13992 // 11129
13993 o146.__FB_TOKEN = void 0;
13994 // 11130
13995 // 11131
13996 o146.getAttribute = f974244559_500;
13997 // 11132
13998 o146.hasAttribute = f974244559_527;
13999 // 11134
14000 f974244559_527.returns.push(false);
14001 // 11135
14002 o146.JSBNG__addEventListener = f974244559_472;
14003 // 11137
14004 f974244559_472.returns.push(undefined);
14005 // 11138
14006 o146.JSBNG__onsubmit = null;
14007 // 11140
14008 o146.getElementsByTagName = f974244559_514;
14009 // 11142
14010 o146.querySelectorAll = f974244559_523;
14011 // 11143
14012 o168 = {};
14013 // 11144
14014 f974244559_523.returns.push(o168);
14015 // 11145
14016 o168.length = 0;
14017 // undefined
14018 o168 = null;
14019 // 11148
14020 f974244559_502.returns.push(o145);
14021 // 11150
14022 o168 = {};
14023 // 11151
14024 f974244559_502.returns.push(o168);
14025 // 11153
14026 f974244559_502.returns.push(o148);
14027 // 11154
14028 o148.getElementsByTagName = f974244559_514;
14029 // 11156
14030 o148.querySelectorAll = f974244559_523;
14031 // 11157
14032 o172 = {};
14033 // 11158
14034 f974244559_523.returns.push(o172);
14035 // 11159
14036 o172.length = 1;
14037 // 11160
14038 o188 = {};
14039 // 11161
14040 o172["0"] = o188;
14041 // undefined
14042 o172 = null;
14043 // 11163
14044 o172 = {};
14045 // 11164
14046 f974244559_502.returns.push(o172);
14047 // 11166
14048 // 11173
14049 o189 = {};
14050 // 11174
14051 f974244559_523.returns.push(o189);
14052 // 11175
14053 o189.length = 1;
14054 // 11176
14055 o190 = {};
14056 // 11177
14057 o189["0"] = o190;
14058 // undefined
14059 o189 = null;
14060 // 11179
14061 o190.querySelectorAll = f974244559_523;
14062 // 11180
14063 o189 = {};
14064 // 11181
14065 f974244559_523.returns.push(o189);
14066 // 11182
14067 o189.length = 1;
14068 // 11183
14069 o191 = {};
14070 // 11184
14071 o189["0"] = o191;
14072 // undefined
14073 o189 = null;
14074 // 11185
14075 o189 = {};
14076 // undefined
14077 fo974244559_1689_firstChild = function() { return fo974244559_1689_firstChild.returns[fo974244559_1689_firstChild.inst++]; };
14078 fo974244559_1689_firstChild.returns = [];
14079 fo974244559_1689_firstChild.inst = 0;
14080 defineGetter(o191, "firstChild", fo974244559_1689_firstChild, undefined);
14081 // undefined
14082 fo974244559_1689_firstChild.returns.push(o189);
14083 // undefined
14084 fo974244559_1689_firstChild.returns.push(o189);
14085 // 11188
14086 o189.parentNode = o191;
14087 // 11190
14088 o191.removeChild = f974244559_507;
14089 // 11191
14090 f974244559_507.returns.push(o189);
14091 // undefined
14092 o189 = null;
14093 // undefined
14094 fo974244559_1689_firstChild.returns.push(null);
14095 // 11194
14096 o189 = {};
14097 // 11195
14098 f974244559_478.returns.push(o189);
14099 // 11197
14100 o192 = {};
14101 // 11198
14102 f974244559_1659.returns.push(o192);
14103 // 11199
14104 o189.appendChild = f974244559_482;
14105 // 11200
14106 f974244559_482.returns.push(o192);
14107 // undefined
14108 o192 = null;
14109 // 11201
14110 o191.appendChild = f974244559_482;
14111 // 11202
14112 f974244559_482.returns.push(o189);
14113 // undefined
14114 o189 = null;
14115 // 11203
14116 o189 = {};
14117 // 11204
14118 o145.classList = o189;
14119 // 11206
14120 o189.remove = f974244559_1244;
14121 // 11207
14122 f974244559_1244.returns.push(undefined);
14123 // 11209
14124 // 11210
14125 o145.__FB_TOKEN = void 0;
14126 // 11211
14127 // 11212
14128 o145.getAttribute = f974244559_500;
14129 // 11213
14130 o145.hasAttribute = f974244559_527;
14131 // 11215
14132 f974244559_527.returns.push(false);
14133 // 11218
14134 o189.contains = f974244559_1617;
14135 // undefined
14136 o189 = null;
14137 // 11219
14138 f974244559_1617.returns.push(false);
14139 // 11222
14140 f974244559_500.returns.push(null);
14141 // 11223
14142 o189 = {};
14143 // 11224
14144 o145.parentNode = o189;
14145 // 11225
14146 o189.__FB_TOKEN = void 0;
14147 // 11226
14148 // 11227
14149 o189.getAttribute = f974244559_500;
14150 // 11228
14151 o189.hasAttribute = f974244559_527;
14152 // 11230
14153 f974244559_527.returns.push(false);
14154 // 11231
14155 o192 = {};
14156 // 11232
14157 o189.classList = o192;
14158 // 11234
14159 o192.contains = f974244559_1617;
14160 // undefined
14161 o192 = null;
14162 // 11235
14163 f974244559_1617.returns.push(false);
14164 // 11238
14165 f974244559_500.returns.push(null);
14166 // 11239
14167 o192 = {};
14168 // 11240
14169 o189.parentNode = o192;
14170 // 11241
14171 o192.__FB_TOKEN = void 0;
14172 // 11242
14173 // 11243
14174 o192.getAttribute = f974244559_500;
14175 // 11244
14176 o192.hasAttribute = f974244559_527;
14177 // 11246
14178 f974244559_527.returns.push(false);
14179 // 11247
14180 o193 = {};
14181 // 11248
14182 o192.classList = o193;
14183 // 11250
14184 o193.contains = f974244559_1617;
14185 // undefined
14186 o193 = null;
14187 // 11251
14188 f974244559_1617.returns.push(false);
14189 // 11254
14190 f974244559_500.returns.push(null);
14191 // 11255
14192 o193 = {};
14193 // 11256
14194 o192.parentNode = o193;
14195 // 11257
14196 o193.__FB_TOKEN = void 0;
14197 // 11258
14198 // 11259
14199 o193.getAttribute = f974244559_500;
14200 // 11260
14201 o193.hasAttribute = f974244559_527;
14202 // 11262
14203 f974244559_527.returns.push(false);
14204 // 11263
14205 o194 = {};
14206 // 11264
14207 o193.classList = o194;
14208 // 11266
14209 o194.contains = f974244559_1617;
14210 // undefined
14211 o194 = null;
14212 // 11267
14213 f974244559_1617.returns.push(false);
14214 // 11270
14215 f974244559_500.returns.push(null);
14216 // 11271
14217 o194 = {};
14218 // 11272
14219 o193.parentNode = o194;
14220 // 11273
14221 o194.__FB_TOKEN = void 0;
14222 // 11274
14223 // 11275
14224 o194.getAttribute = f974244559_500;
14225 // 11276
14226 o194.hasAttribute = f974244559_527;
14227 // 11278
14228 f974244559_527.returns.push(false);
14229 // 11279
14230 o195 = {};
14231 // 11280
14232 o194.classList = o195;
14233 // 11282
14234 o195.contains = f974244559_1617;
14235 // undefined
14236 o195 = null;
14237 // 11283
14238 f974244559_1617.returns.push(false);
14239 // 11286
14240 f974244559_500.returns.push(null);
14241 // 11287
14242 o195 = {};
14243 // 11288
14244 o194.parentNode = o195;
14245 // 11289
14246 o195.__FB_TOKEN = void 0;
14247 // 11290
14248 // 11291
14249 o195.getAttribute = f974244559_500;
14250 // 11292
14251 o195.hasAttribute = f974244559_527;
14252 // 11294
14253 f974244559_527.returns.push(false);
14254 // 11295
14255 o196 = {};
14256 // 11296
14257 o195.classList = o196;
14258 // 11298
14259 o196.contains = f974244559_1617;
14260 // undefined
14261 o196 = null;
14262 // 11299
14263 f974244559_1617.returns.push(false);
14264 // 11302
14265 f974244559_500.returns.push(null);
14266 // 11303
14267 o195.parentNode = o76;
14268 // 11304
14269 o76.__FB_TOKEN = void 0;
14270 // 11305
14271 // 11307
14272 o76.hasAttribute = f974244559_527;
14273 // 11309
14274 f974244559_527.returns.push(false);
14275 // 11310
14276 o196 = {};
14277 // 11311
14278 o76.classList = o196;
14279 // 11313
14280 o196.contains = f974244559_1617;
14281 // undefined
14282 o196 = null;
14283 // 11314
14284 f974244559_1617.returns.push(false);
14285 // 11317
14286 f974244559_500.returns.push(null);
14287 // 11322
14288 f974244559_527.returns.push(false);
14289 // 11326
14290 f974244559_1617.returns.push(false);
14291 // 11329
14292 f974244559_500.returns.push(null);
14293 // 11334
14294 f974244559_527.returns.push(false);
14295 // 11335
14296 o196 = {};
14297 // 11336
14298 o8.classList = o196;
14299 // 11338
14300 o196.contains = f974244559_1617;
14301 // 11339
14302 f974244559_1617.returns.push(false);
14303 // 11342
14304 f974244559_500.returns.push(null);
14305 // 11345
14306 o0.classList = void 0;
14307 // 11346
14308 o0.className = void 0;
14309 // 11349
14310 f974244559_12.returns.push(30);
14311 // 11353
14312 o197 = {};
14313 // 11354
14314 f974244559_523.returns.push(o197);
14315 // 11355
14316 o197.length = 1;
14317 // 11356
14318 o197["0"] = o190;
14319 // undefined
14320 o197 = null;
14321 // 11359
14322 o197 = {};
14323 // 11360
14324 f974244559_523.returns.push(o197);
14325 // 11361
14326 o197.length = 1;
14327 // 11362
14328 o197["0"] = o191;
14329 // undefined
14330 o197 = null;
14331 // 11363
14332 o168.nodeName = "UL";
14333 // 11364
14334 o168.__FB_TOKEN = void 0;
14335 // 11365
14336 // 11366
14337 o168.getAttribute = f974244559_500;
14338 // 11367
14339 o168.hasAttribute = f974244559_527;
14340 // 11369
14341 f974244559_527.returns.push(false);
14342 // 11370
14343 o168.JSBNG__addEventListener = f974244559_472;
14344 // 11372
14345 f974244559_472.returns.push(undefined);
14346 // 11373
14347 o168.JSBNG__onmousedown = null;
14348 // 11378
14349 f974244559_472.returns.push(undefined);
14350 // 11379
14351 o168.JSBNG__onmouseout = null;
14352 // 11384
14353 f974244559_472.returns.push(undefined);
14354 // 11385
14355 o168.JSBNG__onmouseover = null;
14356 // 11387
14357 o145.nodeName = "DIV";
14358 // 11391
14359 f974244559_527.returns.push(false);
14360 // 11392
14361 o145.JSBNG__addEventListener = f974244559_472;
14362 // 11394
14363 f974244559_472.returns.push(undefined);
14364 // 11395
14365 o145.JSBNG__onmouseover = null;
14366 // 11398
14367 f974244559_502.returns.push(o145);
14368 // 11402
14369 o197 = {};
14370 // 11403
14371 f974244559_523.returns.push(o197);
14372 // 11404
14373 o197.length = 1;
14374 // 11405
14375 o197["0"] = o88;
14376 // undefined
14377 o197 = null;
14378 // 11409
14379 o197 = {};
14380 // 11410
14381 f974244559_523.returns.push(o197);
14382 // 11411
14383 o197.length = 1;
14384 // 11412
14385 o198 = {};
14386 // 11413
14387 o197["0"] = o198;
14388 // undefined
14389 o197 = null;
14390 // 11415
14391 o198.querySelectorAll = f974244559_523;
14392 // 11416
14393 o197 = {};
14394 // 11417
14395 f974244559_523.returns.push(o197);
14396 // 11418
14397 o197.length = 1;
14398 // 11419
14399 o199 = {};
14400 // 11420
14401 o197["0"] = o199;
14402 // undefined
14403 o197 = null;
14404 // 11421
14405 o197 = {};
14406 // 11422
14407 o199.classList = o197;
14408 // 11424
14409 o197.contains = f974244559_1617;
14410 // undefined
14411 o197 = null;
14412 // 11425
14413 f974244559_1617.returns.push(false);
14414 // 11426
14415 o197 = {};
14416 // 11427
14417 o199.parentNode = o197;
14418 // 11428
14419 o200 = {};
14420 // 11429
14421 o197.classList = o200;
14422 // 11431
14423 o200.contains = f974244559_1617;
14424 // undefined
14425 o200 = null;
14426 // 11432
14427 f974244559_1617.returns.push(false);
14428 // 11433
14429 o197.parentNode = o198;
14430 // 11434
14431 o200 = {};
14432 // 11435
14433 o198.classList = o200;
14434 // 11437
14435 o200.contains = f974244559_1617;
14436 // undefined
14437 o200 = null;
14438 // 11438
14439 f974244559_1617.returns.push(true);
14440 // 11440
14441 o199.nodeName = "A";
14442 // 11441
14443 o199.__FB_TOKEN = void 0;
14444 // 11442
14445 // 11443
14446 o199.getAttribute = f974244559_500;
14447 // 11444
14448 o199.hasAttribute = f974244559_527;
14449 // 11446
14450 f974244559_527.returns.push(false);
14451 // 11447
14452 o199.JSBNG__addEventListener = f974244559_472;
14453 // 11449
14454 f974244559_472.returns.push(undefined);
14455 // 11450
14456 o199.JSBNG__onsuccess = void 0;
14457 // 11452
14458 f974244559_12.returns.push(31);
14459 // 11456
14460 f974244559_527.returns.push(false);
14461 // 11460
14462 f974244559_1617.returns.push(false);
14463 // 11463
14464 f974244559_500.returns.push(null);
14465 // 11468
14466 f974244559_527.returns.push(false);
14467 // 11472
14468 f974244559_1617.returns.push(false);
14469 // 11475
14470 f974244559_500.returns.push(null);
14471 // 11480
14472 f974244559_527.returns.push(false);
14473 // 11484
14474 f974244559_1617.returns.push(false);
14475 // 11487
14476 f974244559_500.returns.push(null);
14477 // 11492
14478 f974244559_527.returns.push(false);
14479 // 11496
14480 f974244559_1617.returns.push(false);
14481 // 11499
14482 f974244559_500.returns.push(null);
14483 // 11504
14484 f974244559_527.returns.push(false);
14485 // 11508
14486 f974244559_1617.returns.push(false);
14487 // 11511
14488 f974244559_500.returns.push(null);
14489 // 11516
14490 f974244559_527.returns.push(false);
14491 // 11520
14492 f974244559_1617.returns.push(false);
14493 // 11523
14494 f974244559_500.returns.push(null);
14495 // 11528
14496 f974244559_527.returns.push(false);
14497 // 11532
14498 f974244559_1617.returns.push(false);
14499 // 11535
14500 f974244559_500.returns.push(null);
14501 // 11540
14502 f974244559_527.returns.push(false);
14503 // 11544
14504 f974244559_1617.returns.push(false);
14505 // 11547
14506 f974244559_500.returns.push(null);
14507 // 11552
14508 f974244559_527.returns.push(false);
14509 // 11556
14510 f974244559_1617.returns.push(false);
14511 // 11559
14512 f974244559_500.returns.push(null);
14513 // 11566
14514 o168.getElementsByTagName = f974244559_514;
14515 // 11568
14516 o168.querySelectorAll = f974244559_523;
14517 // 11569
14518 o200 = {};
14519 // 11570
14520 f974244559_523.returns.push(o200);
14521 // 11571
14522 o200.length = 0;
14523 // undefined
14524 o200 = null;
14525 // 11578
14526 f974244559_471.returns.push(1373491297324);
14527 // 11580
14528 f974244559_471.returns.push(1373491297324);
14529 // 11583
14530 f974244559_471.returns.push(1373491297325);
14531 // 11585
14532 f974244559_471.returns.push(1373491297325);
14533 // 11588
14534 f974244559_471.returns.push(1373491297326);
14535 // 11591
14536 f974244559_471.returns.push(1373491297326);
14537 // 11593
14538 f974244559_471.returns.push(1373491297327);
14539 // 11595
14540 o200 = {};
14541 // 11596
14542 o201 = {};
14543 // 11598
14544 o200.transport = o167;
14545 // 11599
14546 o167.readyState = 1;
14547 // 11605
14548 o202 = {};
14549 // 11606
14550 f974244559_502.returns.push(o202);
14551 // 11608
14552 o203 = {};
14553 // 11609
14554 f974244559_502.returns.push(o203);
14555 // 11610
14556 o202.nodeName = "A";
14557 // 11611
14558 o202.__FB_TOKEN = void 0;
14559 // 11612
14560 // 11613
14561 o202.getAttribute = f974244559_500;
14562 // 11614
14563 o202.hasAttribute = f974244559_527;
14564 // 11616
14565 f974244559_527.returns.push(false);
14566 // 11617
14567 o202.JSBNG__addEventListener = f974244559_472;
14568 // 11619
14569 f974244559_472.returns.push(undefined);
14570 // 11620
14571 o202.JSBNG__onclick = null;
14572 // undefined
14573 o202 = null;
14574 // 11624
14575 o202 = {};
14576 // 11625
14577 f974244559_502.returns.push(o202);
14578 // 11627
14579 o204 = {};
14580 // 11628
14581 f974244559_502.returns.push(o204);
14582 // 11629
14583 o202.nodeName = "A";
14584 // 11630
14585 o202.__FB_TOKEN = void 0;
14586 // 11631
14587 // 11632
14588 o202.getAttribute = f974244559_500;
14589 // 11633
14590 o202.hasAttribute = f974244559_527;
14591 // 11635
14592 f974244559_527.returns.push(false);
14593 // 11636
14594 o202.JSBNG__addEventListener = f974244559_472;
14595 // 11638
14596 f974244559_472.returns.push(undefined);
14597 // 11639
14598 o202.JSBNG__onclick = null;
14599 // undefined
14600 o202 = null;
14601 // 11643
14602 o202 = {};
14603 // 11652
14604 f974244559_502.returns.push(o203);
14605 // undefined
14606 o203 = null;
14607 // 11657
14608 f974244559_471.returns.push(1373491297448);
14609 // 11663
14610 f974244559_471.returns.push(1373491297464);
14611 // 11670
14612 f974244559_471.returns.push(1373491297470);
14613 // 11673
14614 f974244559_502.returns.push(o204);
14615 // undefined
14616 o204 = null;
14617 // 11679
14618 o203 = {};
14619 // 11680
14620 o204 = {};
14621 // 11682
14622 o203.length = 1;
14623 // 11683
14624 o203["0"] = "bUzfU";
14625 // undefined
14626 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2");
14627 // 11692
14628 f974244559_471.returns.push(1373491297578);
14629 // 11693
14630 f974244559_13.returns.push(32);
14631 // 11695
14632 f974244559_471.returns.push(1373491297579);
14633 // 11696
14634 f974244559_470.returns.push(0.7455075979232788);
14635 // 11698
14636 f974244559_471.returns.push(1373491297579);
14637 // 11701
14638 f974244559_471.returns.push(1373491297579);
14639 // 11703
14640 f974244559_470.returns.push(0.8785001414362341);
14641 // undefined
14642 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2");
14643 // 11706
14644 // 11707
14645 f974244559_1727 = function() { return f974244559_1727.returns[f974244559_1727.inst++]; };
14646 f974244559_1727.returns = [];
14647 f974244559_1727.inst = 0;
14648 // 11708
14649 ow974244559.JSBNG__onpageshow = f974244559_1727;
14650 // 11709
14651 f974244559_7.returns.push(undefined);
14652 // 11710
14653 f974244559_1728 = function() { return f974244559_1728.returns[f974244559_1728.inst++]; };
14654 f974244559_1728.returns = [];
14655 f974244559_1728.inst = 0;
14656 // 11711
14657 ow974244559.JSBNG__onpagehide = f974244559_1728;
14658 // 11714
14659 o205 = {};
14660 // 11715
14661 f974244559_0.returns.push(o205);
14662 // undefined
14663 o205 = null;
14664 // undefined
14665 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
14666 // 11717
14667 f974244559_14.returns.push(undefined);
14668 // 11718
14669 o205 = {};
14670 // 11719
14671 f974244559_0.returns.push(o205);
14672 // undefined
14673 o205 = null;
14674 // 11720
14675 o205 = {};
14676 // 11721
14677 f974244559_0.returns.push(o205);
14678 // undefined
14679 o205 = null;
14680 // 11722
14681 o205 = {};
14682 // 11723
14683 f974244559_0.returns.push(o205);
14684 // undefined
14685 o205 = null;
14686 // undefined
14687 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
14688 // 11725
14689 o205 = {};
14690 // 11726
14691 f974244559_70.returns.push(o205);
14692 // 11727
14693 o205.open = f974244559_1564;
14694 // 11728
14695 f974244559_1564.returns.push(undefined);
14696 // 11729
14697 // 11730
14698 f974244559_12.returns.push(33);
14699 // 11732
14700 f974244559_471.returns.push(1373491297587);
14701 // 11733
14702 o205.send = f974244559_1566;
14703 // 11734
14704 f974244559_1566.returns.push(undefined);
14705 // 11737
14706 f974244559_471.returns.push(1373491297593);
14707 // 11739
14708 f974244559_471.returns.push(1373491297597);
14709 // 11741
14710 f974244559_471.returns.push(1373491297597);
14711 // 11742
14712 f974244559_13.returns.push(34);
14713 // 11743
14714 f974244559_13.returns.push(35);
14715 // 11745
14716 f974244559_471.returns.push(1373491297599);
14717 // 11746
14718 f974244559_12.returns.push(36);
14719 // 11748
14720 f974244559_12.returns.push(37);
14721 // 11749
14722 f974244559_12.returns.push(38);
14723 // 11750
14724 f974244559_12.returns.push(39);
14725 // 11751
14726 f974244559_12.returns.push(40);
14727 // 11752
14728 f974244559_12.returns.push(41);
14729 // 11754
14730 f974244559_471.returns.push(1373491297606);
14731 // 11756
14732 f974244559_471.returns.push(1373491297608);
14733 // 11758
14734 f974244559_471.returns.push(1373491297608);
14735 // 11760
14736 f974244559_471.returns.push(1373491297608);
14737 // 11761
14738 f974244559_14.returns.push(undefined);
14739 // 11762
14740 f974244559_12.returns.push(42);
14741 // 11763
14742 f974244559_12.returns.push(43);
14743 // 11766
14744 o206 = {};
14745 // 11767
14746 f974244559_502.returns.push(o206);
14747 // 11770
14748 f974244559_471.returns.push(1373491297618);
14749 // 11772
14750 o207 = {};
14751 // 11773
14752 f974244559_502.returns.push(o207);
14753 // 11774
14754 o207.__FB_TOKEN = void 0;
14755 // 11775
14756 // 11776
14757 o206.getElementsByTagName = f974244559_514;
14758 // 11778
14759 o206.querySelectorAll = f974244559_523;
14760 // 11779
14761 o208 = {};
14762 // 11780
14763 f974244559_523.returns.push(o208);
14764 // 11781
14765 o208.length = 0;
14766 // undefined
14767 o208 = null;
14768 // 11785
14769 o208 = {};
14770 // 11786
14771 f974244559_523.returns.push(o208);
14772 // 11787
14773 o208.length = 0;
14774 // undefined
14775 o208 = null;
14776 // 11791
14777 o208 = {};
14778 // 11792
14779 f974244559_502.returns.push(o208);
14780 // 11793
14781 o208.nodeName = "BUTTON";
14782 // 11794
14783 o208.__FB_TOKEN = void 0;
14784 // 11795
14785 // 11796
14786 o208.getAttribute = f974244559_500;
14787 // 11797
14788 o208.hasAttribute = f974244559_527;
14789 // 11799
14790 f974244559_527.returns.push(false);
14791 // 11800
14792 o208.JSBNG__addEventListener = f974244559_472;
14793 // 11802
14794 f974244559_472.returns.push(undefined);
14795 // 11803
14796 f974244559_1739 = function() { return f974244559_1739.returns[f974244559_1739.inst++]; };
14797 f974244559_1739.returns = [];
14798 f974244559_1739.inst = 0;
14799 // 11804
14800 o208.JSBNG__onclick = f974244559_1739;
14801 // 11807
14802 // undefined
14803 o208 = null;
14804 // 11812
14805 o208 = {};
14806 // 11813
14807 f974244559_502.returns.push(o208);
14808 // 11816
14809 f974244559_471.returns.push(1373491297629);
14810 // 11818
14811 o209 = {};
14812 // 11819
14813 f974244559_502.returns.push(o209);
14814 // 11820
14815 o209.__FB_TOKEN = void 0;
14816 // 11821
14817 // undefined
14818 o209 = null;
14819 // 11822
14820 o208.getElementsByTagName = f974244559_514;
14821 // 11824
14822 o208.querySelectorAll = f974244559_523;
14823 // undefined
14824 o208 = null;
14825 // 11825
14826 o208 = {};
14827 // 11826
14828 f974244559_523.returns.push(o208);
14829 // 11827
14830 o208.length = 0;
14831 // undefined
14832 o208 = null;
14833 // 11831
14834 o208 = {};
14835 // 11832
14836 f974244559_523.returns.push(o208);
14837 // 11833
14838 o208.length = 0;
14839 // undefined
14840 o208 = null;
14841 // 11837
14842 o208 = {};
14843 // 11838
14844 f974244559_502.returns.push(o208);
14845 // 11839
14846 o208.nodeName = "BUTTON";
14847 // 11840
14848 o208.__FB_TOKEN = void 0;
14849 // 11841
14850 // 11842
14851 o208.getAttribute = f974244559_500;
14852 // 11843
14853 o208.hasAttribute = f974244559_527;
14854 // 11845
14855 f974244559_527.returns.push(false);
14856 // 11846
14857 o208.JSBNG__addEventListener = f974244559_472;
14858 // 11848
14859 f974244559_472.returns.push(undefined);
14860 // 11849
14861 f974244559_1745 = function() { return f974244559_1745.returns[f974244559_1745.inst++]; };
14862 f974244559_1745.returns = [];
14863 f974244559_1745.inst = 0;
14864 // 11850
14865 o208.JSBNG__onclick = f974244559_1745;
14866 // 11853
14867 // undefined
14868 o208 = null;
14869 // 11862
14870 o208 = {};
14871 // 11863
14872 f974244559_480.returns.push(o208);
14873 // 11864
14874 // 11865
14875 // 11866
14876 o208.getElementsByTagName = f974244559_514;
14877 // 11867
14878 o209 = {};
14879 // 11868
14880 f974244559_514.returns.push(o209);
14881 // 11869
14882 o209.length = 0;
14883 // undefined
14884 o209 = null;
14885 // 11871
14886 o209 = {};
14887 // 11872
14888 o208.childNodes = o209;
14889 // undefined
14890 o208 = null;
14891 // 11873
14892 o209.item = f974244559_517;
14893 // 11874
14894 o209.length = 1;
14895 // 11875
14896 o208 = {};
14897 // 11876
14898 o209["0"] = o208;
14899 // undefined
14900 o209 = null;
14901 // 11877
14902 o208.__html = void 0;
14903 // 11878
14904 o208.mountComponentIntoNode = void 0;
14905 // 11879
14906 o209 = {};
14907 // 11880
14908 o208.classList = o209;
14909 // 11882
14910 o209.add = f974244559_1110;
14911 // 11883
14912 f974244559_1110.returns.push(undefined);
14913 // 11884
14914 o208.__FB_TOKEN = void 0;
14915 // 11885
14916 // 11886
14917 o208.getElementsByTagName = f974244559_514;
14918 // 11888
14919 o208.querySelectorAll = f974244559_523;
14920 // 11889
14921 o210 = {};
14922 // 11890
14923 f974244559_523.returns.push(o210);
14924 // 11891
14925 o210.length = 1;
14926 // 11892
14927 o211 = {};
14928 // 11893
14929 o210["0"] = o211;
14930 // undefined
14931 o210 = null;
14932 // 11897
14933 f974244559_1110.returns.push(undefined);
14934 // 11901
14935 o210 = {};
14936 // 11902
14937 f974244559_478.returns.push(o210);
14938 // 11904
14939 o25.appendChild = f974244559_482;
14940 // 11905
14941 f974244559_482.returns.push(o210);
14942 // undefined
14943 o210 = null;
14944 // 11906
14945 o211.__FB_TOKEN = void 0;
14946 // 11907
14947 // 11908
14948 o211.getAttribute = f974244559_500;
14949 // 11909
14950 o211.hasAttribute = f974244559_527;
14951 // 11911
14952 f974244559_527.returns.push(true);
14953 // 11913
14954 f974244559_500.returns.push("300");
14955 // 11917
14956 f974244559_527.returns.push(false);
14957 // 11920
14958 o209.remove = f974244559_1244;
14959 // undefined
14960 o209 = null;
14961 // 11921
14962 f974244559_1244.returns.push(undefined);
14963 // 11925
14964 f974244559_527.returns.push(false);
14965 // 11929
14966 f974244559_527.returns.push(true);
14967 // 11931
14968 f974244559_500.returns.push("false");
14969 // 11935
14970 f974244559_527.returns.push(false);
14971 // 11939
14972 f974244559_527.returns.push(false);
14973 // 11943
14974 f974244559_527.returns.push(true);
14975 // 11945
14976 f974244559_500.returns.push("false");
14977 // 11946
14978 o208.getAttribute = f974244559_500;
14979 // 11947
14980 o208.hasAttribute = f974244559_527;
14981 // 11949
14982 f974244559_527.returns.push(false);
14983 // 11953
14984 f974244559_1244.returns.push(undefined);
14985 // 11957
14986 f974244559_527.returns.push(false);
14987 // 11961
14988 f974244559_527.returns.push(false);
14989 // 11965
14990 f974244559_527.returns.push(true);
14991 // 11967
14992 f974244559_500.returns.push("left");
14993 // 11971
14994 f974244559_1244.returns.push(undefined);
14995 // 11975
14996 f974244559_1244.returns.push(undefined);
14997 // 11979
14998 f974244559_1110.returns.push(undefined);
14999 // 11983
15000 f974244559_1244.returns.push(undefined);
15001 // 11987
15002 f974244559_1244.returns.push(undefined);
15003 // 11988
15004 o209 = {};
15005 // 11989
15006 o211.classList = o209;
15007 // 11991
15008 o209.remove = f974244559_1244;
15009 // 11992
15010 f974244559_1244.returns.push(undefined);
15011 // 11996
15012 f974244559_1244.returns.push(undefined);
15013 // 12000
15014 f974244559_1244.returns.push(undefined);
15015 // 12003
15016 o209.add = f974244559_1110;
15017 // undefined
15018 o209 = null;
15019 // 12004
15020 f974244559_1110.returns.push(undefined);
15021 // 12008
15022 f974244559_1244.returns.push(undefined);
15023 // 12010
15024 o209 = {};
15025 // 12011
15026 f974244559_480.returns.push(o209);
15027 // 12012
15028 // 12013
15029 o209.__html = void 0;
15030 // 12015
15031 o210 = {};
15032 // 12016
15033 f974244559_478.returns.push(o210);
15034 // 12018
15035 o211.appendChild = f974244559_482;
15036 // undefined
15037 o211 = null;
15038 // 12019
15039 f974244559_482.returns.push(o210);
15040 // undefined
15041 o210 = null;
15042 // 12020
15043 o210 = {};
15044 // 12021
15045 o209.style = o210;
15046 // undefined
15047 o209 = null;
15048 // 12022
15049 // 12024
15050 // 12026
15051 // 12028
15052 // 12030
15053 // 12032
15054 // undefined
15055 o210 = null;
15056 // 12036
15057 f974244559_527.returns.push(false);
15058 // 12040
15059 o209 = {};
15060 // 12041
15061 f974244559_523.returns.push(o209);
15062 // 12042
15063 o209.length = 1;
15064 // 12043
15065 o210 = {};
15066 // 12044
15067 o209["0"] = o210;
15068 // undefined
15069 o209 = null;
15070 // 12045
15071 o210.setAttribute = f974244559_643;
15072 // 12046
15073 f974244559_643.returns.push(undefined);
15074 // 12047
15075 o210.getElementsByTagName = f974244559_514;
15076 // 12049
15077 o210.querySelectorAll = f974244559_523;
15078 // undefined
15079 o210 = null;
15080 // 12050
15081 o209 = {};
15082 // 12051
15083 f974244559_523.returns.push(o209);
15084 // 12052
15085 o209.length = 0;
15086 // undefined
15087 o209 = null;
15088 // 12053
15089 o208.nodeName = "DIV";
15090 // 12057
15091 f974244559_527.returns.push(false);
15092 // 12058
15093 o208.JSBNG__addEventListener = f974244559_472;
15094 // 12060
15095 f974244559_472.returns.push(undefined);
15096 // 12061
15097 o208.JSBNG__onclick = null;
15098 // 12066
15099 f974244559_472.returns.push(undefined);
15100 // 12067
15101 o208.JSBNG__onsubmit = null;
15102 // 12072
15103 f974244559_472.returns.push(undefined);
15104 // 12073
15105 o208.JSBNG__onsuccess = void 0;
15106 // 12078
15107 f974244559_472.returns.push(undefined);
15108 // 12079
15109 o208.JSBNG__onerror = null;
15110 // undefined
15111 o208 = null;
15112 // 12081
15113 f974244559_12.returns.push(44);
15114 // 12084
15115 o208 = {};
15116 // 12085
15117 f974244559_480.returns.push(o208);
15118 // 12086
15119 // 12087
15120 // 12088
15121 o208.getElementsByTagName = f974244559_514;
15122 // 12089
15123 o209 = {};
15124 // 12090
15125 f974244559_514.returns.push(o209);
15126 // 12091
15127 o209.length = 0;
15128 // undefined
15129 o209 = null;
15130 // 12093
15131 o209 = {};
15132 // 12094
15133 o208.childNodes = o209;
15134 // undefined
15135 o208 = null;
15136 // 12095
15137 o209.item = f974244559_517;
15138 // 12096
15139 o209.length = 1;
15140 // 12097
15141 o208 = {};
15142 // 12098
15143 o209["0"] = o208;
15144 // undefined
15145 o209 = null;
15146 // 12099
15147 o208.__html = void 0;
15148 // 12100
15149 o208.mountComponentIntoNode = void 0;
15150 // 12101
15151 o209 = {};
15152 // 12102
15153 o208.classList = o209;
15154 // 12104
15155 o209.add = f974244559_1110;
15156 // 12105
15157 f974244559_1110.returns.push(undefined);
15158 // 12106
15159 o208.__FB_TOKEN = void 0;
15160 // 12107
15161 // 12108
15162 o208.getElementsByTagName = f974244559_514;
15163 // 12110
15164 o208.querySelectorAll = f974244559_523;
15165 // 12111
15166 o210 = {};
15167 // 12112
15168 f974244559_523.returns.push(o210);
15169 // 12113
15170 o210.length = 1;
15171 // 12114
15172 o211 = {};
15173 // 12115
15174 o210["0"] = o211;
15175 // undefined
15176 o210 = null;
15177 // 12119
15178 f974244559_1110.returns.push(undefined);
15179 // 12123
15180 o210 = {};
15181 // 12124
15182 f974244559_478.returns.push(o210);
15183 // 12127
15184 f974244559_482.returns.push(o210);
15185 // undefined
15186 o210 = null;
15187 // 12128
15188 o211.__FB_TOKEN = void 0;
15189 // 12129
15190 // 12130
15191 o211.getAttribute = f974244559_500;
15192 // 12131
15193 o211.hasAttribute = f974244559_527;
15194 // 12133
15195 f974244559_527.returns.push(true);
15196 // 12135
15197 f974244559_500.returns.push("300");
15198 // 12139
15199 f974244559_527.returns.push(false);
15200 // 12142
15201 o209.remove = f974244559_1244;
15202 // undefined
15203 o209 = null;
15204 // 12143
15205 f974244559_1244.returns.push(undefined);
15206 // 12147
15207 f974244559_527.returns.push(false);
15208 // 12151
15209 f974244559_527.returns.push(true);
15210 // 12153
15211 f974244559_500.returns.push("false");
15212 // 12157
15213 f974244559_527.returns.push(false);
15214 // 12161
15215 f974244559_527.returns.push(false);
15216 // 12165
15217 f974244559_527.returns.push(true);
15218 // 12167
15219 f974244559_500.returns.push("false");
15220 // 12168
15221 o208.getAttribute = f974244559_500;
15222 // 12169
15223 o208.hasAttribute = f974244559_527;
15224 // 12171
15225 f974244559_527.returns.push(false);
15226 // 12175
15227 f974244559_1244.returns.push(undefined);
15228 // 12179
15229 f974244559_527.returns.push(false);
15230 // 12183
15231 f974244559_527.returns.push(false);
15232 // 12187
15233 f974244559_527.returns.push(true);
15234 // 12189
15235 f974244559_500.returns.push("left");
15236 // 12193
15237 f974244559_1244.returns.push(undefined);
15238 // 12197
15239 f974244559_1244.returns.push(undefined);
15240 // 12201
15241 f974244559_1110.returns.push(undefined);
15242 // 12205
15243 f974244559_1244.returns.push(undefined);
15244 // 12209
15245 f974244559_1244.returns.push(undefined);
15246 // 12210
15247 o209 = {};
15248 // 12211
15249 o211.classList = o209;
15250 // 12213
15251 o209.remove = f974244559_1244;
15252 // 12214
15253 f974244559_1244.returns.push(undefined);
15254 // 12218
15255 f974244559_1244.returns.push(undefined);
15256 // 12222
15257 f974244559_1244.returns.push(undefined);
15258 // 12225
15259 o209.add = f974244559_1110;
15260 // undefined
15261 o209 = null;
15262 // 12226
15263 f974244559_1110.returns.push(undefined);
15264 // 12230
15265 f974244559_1244.returns.push(undefined);
15266 // 12232
15267 o209 = {};
15268 // 12233
15269 f974244559_480.returns.push(o209);
15270 // 12234
15271 // 12235
15272 o209.__html = void 0;
15273 // 12237
15274 o210 = {};
15275 // 12238
15276 f974244559_478.returns.push(o210);
15277 // 12240
15278 o211.appendChild = f974244559_482;
15279 // undefined
15280 o211 = null;
15281 // 12241
15282 f974244559_482.returns.push(o210);
15283 // undefined
15284 o210 = null;
15285 // 12242
15286 o210 = {};
15287 // 12243
15288 o209.style = o210;
15289 // undefined
15290 o209 = null;
15291 // 12244
15292 // 12246
15293 // 12248
15294 // 12250
15295 // 12252
15296 // 12254
15297 // undefined
15298 o210 = null;
15299 // 12258
15300 f974244559_527.returns.push(false);
15301 // 12262
15302 o209 = {};
15303 // 12263
15304 f974244559_523.returns.push(o209);
15305 // 12264
15306 o209.length = 1;
15307 // 12265
15308 o210 = {};
15309 // 12266
15310 o209["0"] = o210;
15311 // undefined
15312 o209 = null;
15313 // 12267
15314 o210.setAttribute = f974244559_643;
15315 // 12268
15316 f974244559_643.returns.push(undefined);
15317 // 12269
15318 o210.getElementsByTagName = f974244559_514;
15319 // 12271
15320 o210.querySelectorAll = f974244559_523;
15321 // undefined
15322 o210 = null;
15323 // 12272
15324 o209 = {};
15325 // 12273
15326 f974244559_523.returns.push(o209);
15327 // 12274
15328 o209.length = 0;
15329 // undefined
15330 o209 = null;
15331 // 12275
15332 o208.nodeName = "DIV";
15333 // 12279
15334 f974244559_527.returns.push(false);
15335 // 12280
15336 o208.JSBNG__addEventListener = f974244559_472;
15337 // 12282
15338 f974244559_472.returns.push(undefined);
15339 // 12283
15340 o208.JSBNG__onclick = null;
15341 // 12288
15342 f974244559_472.returns.push(undefined);
15343 // 12289
15344 o208.JSBNG__onsubmit = null;
15345 // 12294
15346 f974244559_472.returns.push(undefined);
15347 // 12295
15348 o208.JSBNG__onsuccess = void 0;
15349 // 12300
15350 f974244559_472.returns.push(undefined);
15351 // 12301
15352 o208.JSBNG__onerror = null;
15353 // undefined
15354 o208 = null;
15355 // 12303
15356 f974244559_12.returns.push(45);
15357 // 12306
15358 o208 = {};
15359 // 12307
15360 o209 = {};
15361 // 12309
15362 o208.length = 1;
15363 // 12310
15364 o208["0"] = "EzMPG";
15365 // 12318
15366 f974244559_471.returns.push(1373491297866);
15367 // 12323
15368 o210 = {};
15369 // 12324
15370 f974244559_502.returns.push(o210);
15371 // 12326
15372 o211 = {};
15373 // 12327
15374 f974244559_480.returns.push(o211);
15375 // 12328
15376 // 12329
15377 // 12330
15378 o211.getElementsByTagName = f974244559_514;
15379 // 12331
15380 o212 = {};
15381 // 12332
15382 f974244559_514.returns.push(o212);
15383 // 12333
15384 o212.length = 0;
15385 // undefined
15386 o212 = null;
15387 // 12335
15388 o212 = {};
15389 // 12336
15390 o211.childNodes = o212;
15391 // undefined
15392 o211 = null;
15393 // 12337
15394 o212.item = f974244559_517;
15395 // 12338
15396 o212.length = 1;
15397 // 12339
15398 o211 = {};
15399 // 12340
15400 o212["0"] = o211;
15401 // undefined
15402 o212 = null;
15403 // undefined
15404 o211 = null;
15405 // 12342
15406 o211 = {};
15407 // 12343
15408 f974244559_480.returns.push(o211);
15409 // 12344
15410 // 12345
15411 // 12346
15412 o211.getElementsByTagName = f974244559_514;
15413 // 12347
15414 o212 = {};
15415 // 12348
15416 f974244559_514.returns.push(o212);
15417 // 12349
15418 o212.length = 0;
15419 // undefined
15420 o212 = null;
15421 // 12351
15422 o212 = {};
15423 // 12352
15424 o211.childNodes = o212;
15425 // undefined
15426 o211 = null;
15427 // 12353
15428 o212.item = f974244559_517;
15429 // 12354
15430 o212.length = 1;
15431 // 12355
15432 o211 = {};
15433 // 12356
15434 o212["0"] = o211;
15435 // undefined
15436 o212 = null;
15437 // undefined
15438 o211 = null;
15439 // 12357
15440 o211 = {};
15441 // 12358
15442 o210.classList = o211;
15443 // 12360
15444 o211.contains = f974244559_1617;
15445 // undefined
15446 o211 = null;
15447 // 12361
15448 f974244559_1617.returns.push(false);
15449 // 12362
15450 o210.parentNode = o99;
15451 // 12363
15452 o211 = {};
15453 // 12364
15454 o99.classList = o211;
15455 // 12366
15456 o211.contains = f974244559_1617;
15457 // undefined
15458 o211 = null;
15459 // 12367
15460 f974244559_1617.returns.push(false);
15461 // 12368
15462 o99.parentNode = o98;
15463 // undefined
15464 o99 = null;
15465 // 12369
15466 o99 = {};
15467 // 12370
15468 o98.classList = o99;
15469 // 12372
15470 o99.contains = f974244559_1617;
15471 // undefined
15472 o99 = null;
15473 // 12373
15474 f974244559_1617.returns.push(false);
15475 // 12374
15476 o98.parentNode = o97;
15477 // undefined
15478 o98 = null;
15479 // 12375
15480 o98 = {};
15481 // 12376
15482 o97.classList = o98;
15483 // 12378
15484 o98.contains = f974244559_1617;
15485 // undefined
15486 o98 = null;
15487 // 12379
15488 f974244559_1617.returns.push(false);
15489 // 12380
15490 o97.parentNode = o95;
15491 // 12383
15492 o96.contains = f974244559_1617;
15493 // undefined
15494 o96 = null;
15495 // 12384
15496 f974244559_1617.returns.push(false);
15497 // 12385
15498 o96 = {};
15499 // 12386
15500 o95.parentNode = o96;
15501 // undefined
15502 o95 = null;
15503 // 12387
15504 o95 = {};
15505 // 12388
15506 o96.classList = o95;
15507 // 12390
15508 o95.contains = f974244559_1617;
15509 // undefined
15510 o95 = null;
15511 // 12391
15512 f974244559_1617.returns.push(false);
15513 // 12392
15514 o95 = {};
15515 // 12393
15516 o96.parentNode = o95;
15517 // 12394
15518 o98 = {};
15519 // 12395
15520 o95.classList = o98;
15521 // 12397
15522 o98.contains = f974244559_1617;
15523 // 12398
15524 f974244559_1617.returns.push(false);
15525 // 12399
15526 o95.parentNode = o94;
15527 // 12400
15528 o99 = {};
15529 // 12401
15530 o94.classList = o99;
15531 // 12403
15532 o99.contains = f974244559_1617;
15533 // undefined
15534 o99 = null;
15535 // 12404
15536 f974244559_1617.returns.push(false);
15537 // 12405
15538 o94.parentNode = o76;
15539 // undefined
15540 o94 = null;
15541 // 12409
15542 f974244559_1617.returns.push(false);
15543 // 12414
15544 f974244559_1617.returns.push(false);
15545 // 12419
15546 f974244559_1617.returns.push(false);
15547 // 12427
15548 f974244559_1617.returns.push(false);
15549 // 12432
15550 f974244559_1617.returns.push(false);
15551 // 12437
15552 f974244559_1617.returns.push(false);
15553 // 12442
15554 f974244559_1617.returns.push(false);
15555 // 12447
15556 f974244559_1617.returns.push(false);
15557 // 12452
15558 f974244559_1617.returns.push(false);
15559 // 12457
15560 f974244559_1617.returns.push(false);
15561 // 12462
15562 f974244559_1617.returns.push(false);
15563 // 12467
15564 f974244559_1617.returns.push(false);
15565 // 12472
15566 f974244559_1617.returns.push(false);
15567 // 12477
15568 f974244559_1617.returns.push(false);
15569 // 12482
15570 o210.getElementsByTagName = f974244559_514;
15571 // 12484
15572 o210.querySelectorAll = f974244559_523;
15573 // 12485
15574 o94 = {};
15575 // 12486
15576 f974244559_523.returns.push(o94);
15577 // 12487
15578 o94.length = 1;
15579 // 12488
15580 o99 = {};
15581 // 12489
15582 o94["0"] = o99;
15583 // undefined
15584 o94 = null;
15585 // undefined
15586 o99 = null;
15587 // 12493
15588 f974244559_1617.returns.push(false);
15589 // 12498
15590 f974244559_1617.returns.push(false);
15591 // 12503
15592 f974244559_1617.returns.push(false);
15593 // 12508
15594 f974244559_1617.returns.push(false);
15595 // 12513
15596 f974244559_1617.returns.push(true);
15597 // 12517
15598 f974244559_1617.returns.push(false);
15599 // 12522
15600 f974244559_1617.returns.push(false);
15601 // 12527
15602 f974244559_1617.returns.push(false);
15603 // 12532
15604 f974244559_1617.returns.push(false);
15605 // 12537
15606 f974244559_1617.returns.push(false);
15607 // 12542
15608 f974244559_1617.returns.push(false);
15609 // 12547
15610 f974244559_1617.returns.push(true);
15611 // 12551
15612 f974244559_1617.returns.push(false);
15613 // 12556
15614 f974244559_1617.returns.push(false);
15615 // 12561
15616 f974244559_1617.returns.push(false);
15617 // 12566
15618 f974244559_1617.returns.push(true);
15619 // 12567
15620 o210.nodeName = "DIV";
15621 // 12568
15622 o210.__FB_TOKEN = void 0;
15623 // 12569
15624 // 12570
15625 o210.getAttribute = f974244559_500;
15626 // 12571
15627 o210.hasAttribute = f974244559_527;
15628 // 12573
15629 f974244559_527.returns.push(false);
15630 // 12574
15631 o210.JSBNG__addEventListener = f974244559_472;
15632 // 12576
15633 f974244559_472.returns.push(undefined);
15634 // 12577
15635 o210.JSBNG__onclick = null;
15636 // 12582
15637 f974244559_472.returns.push(undefined);
15638 // 12583
15639 o210.JSBNG__onmouseover = null;
15640 // 12588
15641 f974244559_472.returns.push(undefined);
15642 // 12589
15643 o210.JSBNG__onmouseout = null;
15644 // undefined
15645 o210 = null;
15646 // 12591
15647 f974244559_14.returns.push(undefined);
15648 // 12592
15649 f974244559_12.returns.push(46);
15650 // 12595
15651 o94 = {};
15652 // 12596
15653 f974244559_502.returns.push(o94);
15654 // 12598
15655 o99 = {};
15656 // 12599
15657 f974244559_480.returns.push(o99);
15658 // 12600
15659 // 12601
15660 // 12602
15661 o99.getElementsByTagName = f974244559_514;
15662 // 12603
15663 o210 = {};
15664 // 12604
15665 f974244559_514.returns.push(o210);
15666 // 12605
15667 o210.length = 0;
15668 // undefined
15669 o210 = null;
15670 // 12607
15671 o210 = {};
15672 // 12608
15673 o99.childNodes = o210;
15674 // undefined
15675 o99 = null;
15676 // 12609
15677 o210.item = f974244559_517;
15678 // 12610
15679 o210.length = 1;
15680 // 12611
15681 o99 = {};
15682 // 12612
15683 o210["0"] = o99;
15684 // undefined
15685 o210 = null;
15686 // undefined
15687 o99 = null;
15688 // 12614
15689 o99 = {};
15690 // 12615
15691 f974244559_480.returns.push(o99);
15692 // 12616
15693 // 12617
15694 // 12618
15695 o99.getElementsByTagName = f974244559_514;
15696 // 12619
15697 o210 = {};
15698 // 12620
15699 f974244559_514.returns.push(o210);
15700 // 12621
15701 o210.length = 0;
15702 // undefined
15703 o210 = null;
15704 // 12623
15705 o210 = {};
15706 // 12624
15707 o99.childNodes = o210;
15708 // undefined
15709 o99 = null;
15710 // 12625
15711 o210.item = f974244559_517;
15712 // 12626
15713 o210.length = 1;
15714 // 12627
15715 o99 = {};
15716 // 12628
15717 o210["0"] = o99;
15718 // undefined
15719 o210 = null;
15720 // undefined
15721 o99 = null;
15722 // 12629
15723 o99 = {};
15724 // 12630
15725 o94.classList = o99;
15726 // 12632
15727 o99.contains = f974244559_1617;
15728 // undefined
15729 o99 = null;
15730 // 12633
15731 f974244559_1617.returns.push(false);
15732 // 12634
15733 o99 = {};
15734 // 12635
15735 o94.parentNode = o99;
15736 // 12636
15737 o210 = {};
15738 // 12637
15739 o99.classList = o210;
15740 // 12639
15741 o210.contains = f974244559_1617;
15742 // undefined
15743 o210 = null;
15744 // 12640
15745 f974244559_1617.returns.push(false);
15746 // 12641
15747 o210 = {};
15748 // 12642
15749 o99.parentNode = o210;
15750 // undefined
15751 o99 = null;
15752 // 12643
15753 o99 = {};
15754 // 12644
15755 o210.classList = o99;
15756 // 12646
15757 o99.contains = f974244559_1617;
15758 // undefined
15759 o99 = null;
15760 // 12647
15761 f974244559_1617.returns.push(false);
15762 // 12648
15763 o99 = {};
15764 // 12649
15765 o210.parentNode = o99;
15766 // 12650
15767 o211 = {};
15768 // 12651
15769 o99.classList = o211;
15770 // 12653
15771 o211.contains = f974244559_1617;
15772 // undefined
15773 o211 = null;
15774 // 12654
15775 f974244559_1617.returns.push(false);
15776 // 12655
15777 o211 = {};
15778 // 12656
15779 o99.parentNode = o211;
15780 // undefined
15781 o99 = null;
15782 // 12657
15783 o99 = {};
15784 // 12658
15785 o211.classList = o99;
15786 // 12660
15787 o99.contains = f974244559_1617;
15788 // undefined
15789 o99 = null;
15790 // 12661
15791 f974244559_1617.returns.push(false);
15792 // 12662
15793 o99 = {};
15794 // 12663
15795 o211.parentNode = o99;
15796 // undefined
15797 o211 = null;
15798 // 12664
15799 o211 = {};
15800 // 12665
15801 o99.classList = o211;
15802 // 12667
15803 o211.contains = f974244559_1617;
15804 // undefined
15805 o211 = null;
15806 // 12668
15807 f974244559_1617.returns.push(false);
15808 // 12669
15809 o211 = {};
15810 // 12670
15811 o99.parentNode = o211;
15812 // undefined
15813 o99 = null;
15814 // 12671
15815 o99 = {};
15816 // 12672
15817 o211.classList = o99;
15818 // 12674
15819 o99.contains = f974244559_1617;
15820 // undefined
15821 o99 = null;
15822 // 12675
15823 f974244559_1617.returns.push(false);
15824 // 12676
15825 o99 = {};
15826 // 12677
15827 o211.parentNode = o99;
15828 // 12678
15829 o212 = {};
15830 // 12679
15831 o99.classList = o212;
15832 // 12681
15833 o212.contains = f974244559_1617;
15834 // 12682
15835 f974244559_1617.returns.push(false);
15836 // 12683
15837 o213 = {};
15838 // 12684
15839 o99.parentNode = o213;
15840 // 12685
15841 o214 = {};
15842 // 12686
15843 o213.classList = o214;
15844 // 12688
15845 o214.contains = f974244559_1617;
15846 // undefined
15847 o214 = null;
15848 // 12689
15849 f974244559_1617.returns.push(false);
15850 // 12690
15851 o214 = {};
15852 // 12691
15853 o213.parentNode = o214;
15854 // undefined
15855 o213 = null;
15856 // 12692
15857 o213 = {};
15858 // 12693
15859 o214.classList = o213;
15860 // 12695
15861 o213.contains = f974244559_1617;
15862 // undefined
15863 o213 = null;
15864 // 12696
15865 f974244559_1617.returns.push(false);
15866 // 12697
15867 o213 = {};
15868 // 12698
15869 o214.parentNode = o213;
15870 // 12699
15871 o215 = {};
15872 // 12700
15873 o213.classList = o215;
15874 // 12702
15875 o215.contains = f974244559_1617;
15876 // undefined
15877 o215 = null;
15878 // 12703
15879 f974244559_1617.returns.push(false);
15880 // 12704
15881 o215 = {};
15882 // 12705
15883 o213.parentNode = o215;
15884 // 12706
15885 o216 = {};
15886 // 12707
15887 o215.classList = o216;
15888 // 12709
15889 o216.contains = f974244559_1617;
15890 // undefined
15891 o216 = null;
15892 // 12710
15893 f974244559_1617.returns.push(false);
15894 // 12711
15895 o215.parentNode = o106;
15896 // 12712
15897 o216 = {};
15898 // 12713
15899 o106.classList = o216;
15900 // 12715
15901 o216.contains = f974244559_1617;
15902 // undefined
15903 o216 = null;
15904 // 12716
15905 f974244559_1617.returns.push(false);
15906 // 12717
15907 o106.parentNode = o76;
15908 // 12721
15909 f974244559_1617.returns.push(false);
15910 // 12726
15911 f974244559_1617.returns.push(false);
15912 // 12731
15913 f974244559_1617.returns.push(false);
15914 // 12739
15915 f974244559_1617.returns.push(false);
15916 // 12744
15917 f974244559_1617.returns.push(false);
15918 // 12749
15919 f974244559_1617.returns.push(false);
15920 // 12754
15921 f974244559_1617.returns.push(false);
15922 // 12759
15923 f974244559_1617.returns.push(false);
15924 // 12764
15925 f974244559_1617.returns.push(false);
15926 // 12769
15927 f974244559_1617.returns.push(false);
15928 // 12774
15929 f974244559_1617.returns.push(false);
15930 // 12779
15931 f974244559_1617.returns.push(false);
15932 // 12784
15933 f974244559_1617.returns.push(false);
15934 // 12789
15935 f974244559_1617.returns.push(false);
15936 // 12794
15937 f974244559_1617.returns.push(false);
15938 // 12799
15939 f974244559_1617.returns.push(false);
15940 // 12804
15941 f974244559_1617.returns.push(false);
15942 // 12809
15943 f974244559_1617.returns.push(false);
15944 // 12814
15945 f974244559_1617.returns.push(false);
15946 // 12819
15947 o94.getElementsByTagName = f974244559_514;
15948 // 12821
15949 o94.querySelectorAll = f974244559_523;
15950 // 12822
15951 o216 = {};
15952 // 12823
15953 f974244559_523.returns.push(o216);
15954 // 12824
15955 o216.length = 1;
15956 // 12825
15957 o217 = {};
15958 // 12826
15959 o216["0"] = o217;
15960 // undefined
15961 o216 = null;
15962 // undefined
15963 o217 = null;
15964 // 12830
15965 f974244559_1617.returns.push(false);
15966 // 12835
15967 f974244559_1617.returns.push(false);
15968 // 12840
15969 f974244559_1617.returns.push(false);
15970 // 12845
15971 f974244559_1617.returns.push(false);
15972 // 12850
15973 f974244559_1617.returns.push(false);
15974 // 12855
15975 f974244559_1617.returns.push(false);
15976 // 12860
15977 f974244559_1617.returns.push(false);
15978 // 12865
15979 f974244559_1617.returns.push(false);
15980 // 12870
15981 f974244559_1617.returns.push(false);
15982 // 12875
15983 f974244559_1617.returns.push(false);
15984 // 12880
15985 f974244559_1617.returns.push(false);
15986 // 12885
15987 f974244559_1617.returns.push(false);
15988 // 12890
15989 f974244559_1617.returns.push(false);
15990 // 12895
15991 f974244559_1617.returns.push(false);
15992 // 12900
15993 f974244559_1617.returns.push(false);
15994 // 12905
15995 f974244559_1617.returns.push(false);
15996 // 12913
15997 f974244559_1617.returns.push(false);
15998 // 12918
15999 f974244559_1617.returns.push(false);
16000 // 12923
16001 f974244559_1617.returns.push(false);
16002 // 12928
16003 f974244559_1617.returns.push(false);
16004 // 12933
16005 f974244559_1617.returns.push(false);
16006 // 12938
16007 f974244559_1617.returns.push(false);
16008 // 12943
16009 f974244559_1617.returns.push(false);
16010 // 12948
16011 f974244559_1617.returns.push(false);
16012 // 12953
16013 f974244559_1617.returns.push(false);
16014 // 12958
16015 f974244559_1617.returns.push(false);
16016 // 12963
16017 f974244559_1617.returns.push(false);
16018 // 12968
16019 f974244559_1617.returns.push(false);
16020 // 12973
16021 f974244559_1617.returns.push(false);
16022 // 12978
16023 f974244559_1617.returns.push(false);
16024 // 12983
16025 f974244559_1617.returns.push(false);
16026 // 12988
16027 f974244559_1617.returns.push(false);
16028 // 12996
16029 f974244559_1617.returns.push(false);
16030 // 13001
16031 f974244559_1617.returns.push(false);
16032 // 13006
16033 f974244559_1617.returns.push(true);
16034 // 13007
16035 o94.nodeName = "DIV";
16036 // 13008
16037 o94.__FB_TOKEN = void 0;
16038 // 13009
16039 // 13010
16040 o94.getAttribute = f974244559_500;
16041 // 13011
16042 o94.hasAttribute = f974244559_527;
16043 // 13013
16044 f974244559_527.returns.push(false);
16045 // 13014
16046 o94.JSBNG__addEventListener = f974244559_472;
16047 // 13016
16048 f974244559_472.returns.push(undefined);
16049 // 13017
16050 o94.JSBNG__onclick = null;
16051 // 13022
16052 f974244559_472.returns.push(undefined);
16053 // 13023
16054 o94.JSBNG__onmouseover = null;
16055 // 13028
16056 f974244559_472.returns.push(undefined);
16057 // 13029
16058 o94.JSBNG__onmouseout = null;
16059 // undefined
16060 o94 = null;
16061 // 13031
16062 f974244559_14.returns.push(undefined);
16063 // 13032
16064 f974244559_12.returns.push(47);
16065 // 13035
16066 o94 = {};
16067 // 13036
16068 f974244559_480.returns.push(o94);
16069 // 13037
16070 // 13038
16071 // 13039
16072 o94.getElementsByTagName = f974244559_514;
16073 // 13040
16074 o216 = {};
16075 // 13041
16076 f974244559_514.returns.push(o216);
16077 // 13042
16078 o216.length = 0;
16079 // undefined
16080 o216 = null;
16081 // 13044
16082 o216 = {};
16083 // 13045
16084 o94.childNodes = o216;
16085 // undefined
16086 o94 = null;
16087 // 13046
16088 o216.item = f974244559_517;
16089 // 13047
16090 o216.length = 1;
16091 // 13048
16092 o94 = {};
16093 // 13049
16094 o216["0"] = o94;
16095 // undefined
16096 o216 = null;
16097 // undefined
16098 o94 = null;
16099 // 13051
16100 f974244559_502.returns.push(o95);
16101 // 13052
16102 o95.getElementsByTagName = f974244559_514;
16103 // 13054
16104 o95.querySelectorAll = f974244559_523;
16105 // undefined
16106 o95 = null;
16107 // 13055
16108 o94 = {};
16109 // 13056
16110 f974244559_523.returns.push(o94);
16111 // 13057
16112 o94.length = 1;
16113 // 13058
16114 o94["0"] = o96;
16115 // undefined
16116 o94 = null;
16117 // undefined
16118 o96 = null;
16119 // 13059
16120 // 13060
16121 // 13061
16122 // 13067
16123 o94 = {};
16124 // 13068
16125 f974244559_523.returns.push(o94);
16126 // 13069
16127 o94.length = 0;
16128 // undefined
16129 o94 = null;
16130 // 13073
16131 o94 = {};
16132 // 13074
16133 f974244559_523.returns.push(o94);
16134 // 13075
16135 o94.length = 1;
16136 // 13076
16137 o95 = {};
16138 // 13077
16139 o94["0"] = o95;
16140 // undefined
16141 o94 = null;
16142 // 13079
16143 o95.querySelectorAll = f974244559_523;
16144 // undefined
16145 o95 = null;
16146 // 13080
16147 o94 = {};
16148 // 13081
16149 f974244559_523.returns.push(o94);
16150 // 13082
16151 o94.length = 1;
16152 // 13083
16153 o95 = {};
16154 // 13084
16155 o94["0"] = o95;
16156 // undefined
16157 o94 = null;
16158 // 13087
16159 o98.remove = f974244559_1244;
16160 // undefined
16161 o98 = null;
16162 // 13088
16163 f974244559_1244.returns.push(undefined);
16164 // 13092
16165 f974244559_1244.returns.push(undefined);
16166 // 13096
16167 f974244559_1244.returns.push(undefined);
16168 // 13100
16169 f974244559_1244.returns.push(undefined);
16170 // 13104
16171 f974244559_1244.returns.push(undefined);
16172 // 13105
16173 o95.firstChild = null;
16174 // undefined
16175 o95 = null;
16176 // 13109
16177 f974244559_1617.returns.push(false);
16178 // 13114
16179 f974244559_1617.returns.push(false);
16180 // 13119
16181 f974244559_1617.returns.push(false);
16182 // 13124
16183 f974244559_1617.returns.push(true);
16184 // 13125
16185 o97.contains = f974244559_702;
16186 // undefined
16187 o97 = null;
16188 // 13127
16189 f974244559_702.returns.push(true);
16190 // 13130
16191 f974244559_471.returns.push(1373491297983);
16192 // 13131
16193 o207.getElementsByTagName = f974244559_514;
16194 // 13133
16195 o207.querySelectorAll = f974244559_523;
16196 // undefined
16197 o207 = null;
16198 // 13134
16199 o94 = {};
16200 // 13135
16201 f974244559_523.returns.push(o94);
16202 // 13136
16203 o94.length = 1;
16204 // 13137
16205 o94["0"] = o206;
16206 // undefined
16207 o94 = null;
16208 // 13141
16209 o94 = {};
16210 // 13142
16211 f974244559_523.returns.push(o94);
16212 // 13143
16213 o94.length = 0;
16214 // undefined
16215 o94 = null;
16216 // 13147
16217 o94 = {};
16218 // 13148
16219 f974244559_523.returns.push(o94);
16220 // 13149
16221 o94.length = 1;
16222 // 13150
16223 o95 = {};
16224 // 13151
16225 o94["0"] = o95;
16226 // undefined
16227 o94 = null;
16228 // undefined
16229 o95 = null;
16230 // 13155
16231 o94 = {};
16232 // 13156
16233 f974244559_523.returns.push(o94);
16234 // 13157
16235 o94.length = 1;
16236 // 13158
16237 o95 = {};
16238 // 13159
16239 o94["0"] = o95;
16240 // undefined
16241 o94 = null;
16242 // undefined
16243 o95 = null;
16244 // 13160
16245 o206.nodeName = "INPUT";
16246 // 13161
16247 o206.__FB_TOKEN = void 0;
16248 // 13162
16249 // 13163
16250 o206.getAttribute = f974244559_500;
16251 // 13164
16252 o206.hasAttribute = f974244559_527;
16253 // 13166
16254 f974244559_527.returns.push(false);
16255 // 13167
16256 o206.JSBNG__addEventListener = f974244559_472;
16257 // 13169
16258 f974244559_472.returns.push(undefined);
16259 // 13170
16260 o206.JSBNG__onJSBNG__blur = void 0;
16261 // 13175
16262 f974244559_472.returns.push(undefined);
16263 // 13176
16264 o206.JSBNG__onJSBNG__focus = void 0;
16265 // 13181
16266 f974244559_472.returns.push(undefined);
16267 // 13182
16268 o206.JSBNG__onclick = null;
16269 // 13187
16270 f974244559_472.returns.push(undefined);
16271 // 13188
16272 o206.JSBNG__onkeydown = null;
16273 // 13193
16274 f974244559_472.returns.push(undefined);
16275 // 13194
16276 o206.JSBNG__onkeyup = null;
16277 // 13199
16278 f974244559_472.returns.push(undefined);
16279 // 13200
16280 o206.JSBNG__onkeypress = null;
16281 // undefined
16282 o206 = null;
16283 // 13207
16284 o8.clientHeight = 588;
16285 // 13211
16286 o196.remove = f974244559_1244;
16287 // 13212
16288 f974244559_1244.returns.push(undefined);
16289 // 13217
16290 f974244559_1244.returns.push(undefined);
16291 // 13227
16292 f974244559_471.returns.push(1373491297998);
16293 // 13228
16294 o2.getItem = f974244559_486;
16295 // undefined
16296 o2 = null;
16297 // 13229
16298 f974244559_486.returns.push(null);
16299 // 13232
16300 f974244559_471.returns.push(1373491297999);
16301 // undefined
16302 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
16303 // 13235
16304 o2 = {};
16305 // 13236
16306 f974244559_70.returns.push(o2);
16307 // 13237
16308 // 13238
16309 o2.open = f974244559_1564;
16310 // 13239
16311 f974244559_1564.returns.push(undefined);
16312 // 13240
16313 o2.setRequestHeader = f974244559_1565;
16314 // 13241
16315 f974244559_1565.returns.push(undefined);
16316 // 13244
16317 f974244559_1565.returns.push(undefined);
16318 // 13245
16319 o2.send = f974244559_1566;
16320 // 13246
16321 f974244559_1566.returns.push(undefined);
16322 // 13249
16323 o94 = {};
16324 // 13250
16325 f974244559_502.returns.push(o94);
16326 // 13252
16327 o95 = {};
16328 // 13253
16329 f974244559_502.returns.push(o95);
16330 // 13255
16331 o96 = {};
16332 // 13256
16333 o97 = {};
16334 // 13258
16335 o96.transport = o2;
16336 // 13259
16337 o2.readyState = 1;
16338 // 13260
16339 o98 = {};
16340 // 13261
16341 o206 = {};
16342 // 13263
16343 o98.length = 1;
16344 // 13264
16345 o98["0"] = "brbS1";
16346 // 13272
16347 o207 = {};
16348 // 13273
16349 f974244559_502.returns.push(o207);
16350 // undefined
16351 o207 = null;
16352 // 13277
16353 o207 = {};
16354 // 13278
16355 f974244559_522.returns.push(o207);
16356 // 13279
16357 o207.length = 0;
16358 // undefined
16359 o207 = null;
16360 // 13280
16361 f974244559_1858 = function() { return f974244559_1858.returns[f974244559_1858.inst++]; };
16362 f974244559_1858.returns = [];
16363 f974244559_1858.inst = 0;
16364 // 13281
16365 o6.checkPermission = f974244559_1858;
16366 // undefined
16367 o6 = null;
16368 // 13282
16369 f974244559_1858.returns.push(1);
16370 // 13286
16371 o6 = {};
16372 // 13287
16373 f974244559_522.returns.push(o6);
16374 // 13288
16375 o6.length = 0;
16376 // undefined
16377 o6 = null;
16378 // 13291
16379 o6 = {};
16380 // 13292
16381 f974244559_502.returns.push(o6);
16382 // undefined
16383 o6 = null;
16384 // 13296
16385 o6 = {};
16386 // 13297
16387 f974244559_522.returns.push(o6);
16388 // 13298
16389 o6.length = 0;
16390 // undefined
16391 o6 = null;
16392 // 13300
16393 f974244559_1858.returns.push(1);
16394 // 13304
16395 o6 = {};
16396 // 13305
16397 f974244559_522.returns.push(o6);
16398 // 13306
16399 o6.length = 0;
16400 // undefined
16401 o6 = null;
16402 // 13308
16403 f974244559_470.returns.push(0.7653322485275567);
16404 // 13310
16405 f974244559_12.returns.push(48);
16406 // 13311
16407 f974244559_12.returns.push(49);
16408 // 13312
16409 f974244559_12.returns.push(50);
16410 // 13313
16411 f974244559_12.returns.push(51);
16412 // 13314
16413 f974244559_12.returns.push(52);
16414 // 13321
16415 o3.platform = "MacIntel";
16416 // 13322
16417 o6 = {};
16418 // 13323
16419 o3.plugins = o6;
16420 // 13325
16421 o207 = {};
16422 // undefined
16423 fo974244559_1863_Shockwave_Flash = function() { return fo974244559_1863_Shockwave_Flash.returns[fo974244559_1863_Shockwave_Flash.inst++]; };
16424 fo974244559_1863_Shockwave_Flash.returns = [];
16425 fo974244559_1863_Shockwave_Flash.inst = 0;
16426 defineGetter(o6, "Shockwave Flash", fo974244559_1863_Shockwave_Flash, undefined);
16427 // undefined
16428 o6 = null;
16429 // undefined
16430 fo974244559_1863_Shockwave_Flash.returns.push(o207);
16431 // undefined
16432 o207 = null;
16433 // 13328
16434 o6 = {};
16435 // undefined
16436 fo974244559_1863_Shockwave_Flash.returns.push(o6);
16437 // 13330
16438 o6.description = "Shockwave Flash 11.7 r700";
16439 // undefined
16440 o6 = null;
16441 // 13331
16442 o6 = {};
16443 // 13332
16444 o3.mimeTypes = o6;
16445 // undefined
16446 o3 = null;
16447 // 13334
16448 o3 = {};
16449 // undefined
16450 fo974244559_1866_application_x_shockwave_flash = function() { return fo974244559_1866_application_x_shockwave_flash.returns[fo974244559_1866_application_x_shockwave_flash.inst++]; };
16451 fo974244559_1866_application_x_shockwave_flash.returns = [];
16452 fo974244559_1866_application_x_shockwave_flash.inst = 0;
16453 defineGetter(o6, "application/x-shockwave-flash", fo974244559_1866_application_x_shockwave_flash, undefined);
16454 // undefined
16455 o6 = null;
16456 // undefined
16457 fo974244559_1866_application_x_shockwave_flash.returns.push(o3);
16458 // undefined
16459 o3 = null;
16460 // 13337
16461 o3 = {};
16462 // undefined
16463 fo974244559_1866_application_x_shockwave_flash.returns.push(o3);
16464 // 13339
16465 o6 = {};
16466 // 13340
16467 o3.enabledPlugin = o6;
16468 // undefined
16469 o3 = null;
16470 // undefined
16471 o6 = null;
16472 // 13341
16473 o0.readyState = "complete";
16474 // 13344
16475 o3 = {};
16476 // 13345
16477 f974244559_475.returns.push(o3);
16478 // 13346
16479 o3["0"] = o25;
16480 // undefined
16481 o3 = null;
16482 // 13349
16483 o3 = {};
16484 // 13350
16485 f974244559_480.returns.push(o3);
16486 // 13351
16487 f974244559_482.returns.push(o3);
16488 // 13352
16489 o3.parentNode = o25;
16490 // 13354
16491 f974244559_507.returns.push(o3);
16492 // undefined
16493 o3 = null;
16494 // 13356
16495 o3 = {};
16496 // 13357
16497 f974244559_475.returns.push(o3);
16498 // 13358
16499 o3["0"] = o25;
16500 // undefined
16501 o3 = null;
16502 // 13360
16503 o3 = {};
16504 // 13361
16505 f974244559_480.returns.push(o3);
16506 // 13362
16507 o3.setAttribute = f974244559_643;
16508 // 13363
16509 f974244559_643.returns.push(undefined);
16510 // 13365
16511 f974244559_643.returns.push(undefined);
16512 // 13367
16513 f974244559_482.returns.push(o3);
16514 // 13368
16515 f974244559_1874 = function() { return f974244559_1874.returns[f974244559_1874.inst++]; };
16516 f974244559_1874.returns = [];
16517 f974244559_1874.inst = 0;
16518 // 13369
16519 o3.GetVariable = f974244559_1874;
16520 // undefined
16521 o3 = null;
16522 // 13371
16523 f974244559_1874.returns.push("MAC 11,7,700,225");
16524 // 13373
16525 o5.host = "jsbngssl.www.facebook.com";
16526 // undefined
16527 o5 = null;
16528 // 13375
16529 o3 = {};
16530 // 13376
16531 f974244559_480.returns.push(o3);
16532 // 13377
16533 o3.setAttribute = f974244559_643;
16534 // 13378
16535 f974244559_643.returns.push(undefined);
16536 // 13379
16537 o5 = {};
16538 // 13380
16539 o3.style = o5;
16540 // 13381
16541 // undefined
16542 o5 = null;
16543 // 13384
16544 f974244559_482.returns.push(o3);
16545 // undefined
16546 o3 = null;
16547 // 13386
16548 o3 = {};
16549 // 13387
16550 f974244559_502.returns.push(o3);
16551 // 13388
16552 o3.firstChild = null;
16553 // 13391
16554 f974244559_470.returns.push(0.3476652142126113);
16555 // 13393
16556 f974244559_471.returns.push(1373491298178);
16557 // 13395
16558 f974244559_471.returns.push(1373491298178);
16559 // 13401
16560 f974244559_471.returns.push(1373491298178);
16561 // 13403
16562 f974244559_471.returns.push(1373491298178);
16563 // 13405
16564 f974244559_471.returns.push(1373491298178);
16565 // 13407
16566 f974244559_471.returns.push(1373491298178);
16567 // 13409
16568 f974244559_471.returns.push(1373491298179);
16569 // 13410
16570 o3.nodeType = 1;
16571 // 13412
16572 f974244559_471.returns.push(1373491298179);
16573 // 13414
16574 f974244559_471.returns.push(1373491298181);
16575 // 13416
16576 f974244559_471.returns.push(1373491298181);
16577 // 13417
16578 o3.parentNode = o106;
16579 // 13418
16580 o3.nextSibling = null;
16581 // 13419
16582 o106.removeChild = f974244559_507;
16583 // 13420
16584 f974244559_507.returns.push(o3);
16585 // 13421
16586 // 13422
16587 o106.appendChild = f974244559_482;
16588 // undefined
16589 o106 = null;
16590 // 13423
16591 f974244559_482.returns.push(o3);
16592 // undefined
16593 o3 = null;
16594 // 13425
16595 f974244559_471.returns.push(1373491298182);
16596 // 13427
16597 f974244559_471.returns.push(1373491298182);
16598 // 13429
16599 f974244559_471.returns.push(1373491298182);
16600 // 13432
16601 f974244559_471.returns.push(1373491298182);
16602 // 13434
16603 f974244559_471.returns.push(1373491298182);
16604 // 13436
16605 f974244559_471.returns.push(1373491298183);
16606 // 13438
16607 f974244559_471.returns.push(1373491298183);
16608 // 13440
16609 f974244559_471.returns.push(1373491298183);
16610 // 13445
16611 o3 = {};
16612 // 13446
16613 o5 = {};
16614 // 13448
16615 o3.length = 1;
16616 // 13449
16617 o3["0"] = "H+v1W";
16618 // 13452
16619 f974244559_471.returns.push(1373491298190);
16620 // 13455
16621 f974244559_471.returns.push(1373491298191);
16622 // 13457
16623 f974244559_471.returns.push(1373491298191);
16624 // 13464
16625 f974244559_502.returns.push(o215);
16626 // 13467
16627 o215.offsetWidth = 220;
16628 // 13468
16629 o215.offsetHeight = 25;
16630 // 13470
16631 f974244559_502.returns.push(o193);
16632 // 13472
16633 o25.contains = f974244559_702;
16634 // 13474
16635 f974244559_702.returns.push(true);
16636 // 13475
16637 o6 = {};
16638 // 13476
16639 f974244559_4.returns.push(o6);
16640 // 13477
16641 f974244559_1881 = function() { return f974244559_1881.returns[f974244559_1881.inst++]; };
16642 f974244559_1881.returns = [];
16643 f974244559_1881.inst = 0;
16644 // 13478
16645 o6.getPropertyValue = f974244559_1881;
16646 // undefined
16647 o6 = null;
16648 // 13479
16649 f974244559_1881.returns.push("fixed");
16650 // 13481
16651 o8.contains = f974244559_702;
16652 // 13483
16653 f974244559_702.returns.push(true);
16654 // 13484
16655 f974244559_1882 = function() { return f974244559_1882.returns[f974244559_1882.inst++]; };
16656 f974244559_1882.returns = [];
16657 f974244559_1882.inst = 0;
16658 // 13485
16659 o193.getBoundingClientRect = f974244559_1882;
16660 // 13486
16661 o6 = {};
16662 // 13487
16663 f974244559_1882.returns.push(o6);
16664 // 13488
16665 o6.left = 0;
16666 // 13489
16667 o8.clientLeft = 0;
16668 // 13490
16669 o6.JSBNG__top = 0;
16670 // undefined
16671 o6 = null;
16672 // 13491
16673 o8.clientTop = 0;
16674 // 13492
16675 o193.offsetWidth = 1050;
16676 // 13493
16677 o193.offsetHeight = 38;
16678 // 13494
16679 o215.getElementsByTagName = f974244559_514;
16680 // 13496
16681 o215.querySelectorAll = f974244559_523;
16682 // 13497
16683 o6 = {};
16684 // 13498
16685 f974244559_523.returns.push(o6);
16686 // 13499
16687 o6.length = 6;
16688 // 13500
16689 o106 = {};
16690 // 13501
16691 o6["0"] = o106;
16692 // 13502
16693 o207 = {};
16694 // 13503
16695 o6["1"] = o207;
16696 // 13504
16697 o216 = {};
16698 // 13505
16699 o6["2"] = o216;
16700 // 13506
16701 o217 = {};
16702 // 13507
16703 o6["3"] = o217;
16704 // 13508
16705 o218 = {};
16706 // 13509
16707 o6["4"] = o218;
16708 // 13510
16709 o219 = {};
16710 // 13511
16711 o6["5"] = o219;
16712 // undefined
16713 o6 = null;
16714 // 13512
16715 o106.getAttribute = f974244559_500;
16716 // 13513
16717 f974244559_500.returns.push("#");
16718 // 13514
16719 o207.getAttribute = f974244559_500;
16720 // 13515
16721 f974244559_500.returns.push("#");
16722 // 13516
16723 o216.getAttribute = f974244559_500;
16724 // 13517
16725 f974244559_500.returns.push("#");
16726 // 13518
16727 o217.getAttribute = f974244559_500;
16728 // undefined
16729 o217 = null;
16730 // 13519
16731 f974244559_500.returns.push("/ajax/chat/privacy/settings_dialog.php");
16732 // 13520
16733 o218.getAttribute = f974244559_500;
16734 // 13521
16735 f974244559_500.returns.push("#");
16736 // 13522
16737 o219.getAttribute = f974244559_500;
16738 // undefined
16739 o219 = null;
16740 // 13523
16741 f974244559_500.returns.push("/ajax/chat/privacy/turn_off_dialog.php");
16742 // 13524
16743 o106.removeAttribute = f974244559_644;
16744 // 13525
16745 f974244559_644.returns.push(undefined);
16746 // 13526
16747 o106.setAttribute = f974244559_643;
16748 // 13527
16749 f974244559_643.returns.push(undefined);
16750 // 13528
16751 o207.removeAttribute = f974244559_644;
16752 // 13529
16753 f974244559_644.returns.push(undefined);
16754 // 13530
16755 o207.setAttribute = f974244559_643;
16756 // undefined
16757 o207 = null;
16758 // 13531
16759 f974244559_643.returns.push(undefined);
16760 // 13532
16761 o216.removeAttribute = f974244559_644;
16762 // 13533
16763 f974244559_644.returns.push(undefined);
16764 // 13534
16765 o216.setAttribute = f974244559_643;
16766 // undefined
16767 o216 = null;
16768 // 13535
16769 f974244559_643.returns.push(undefined);
16770 // 13536
16771 o218.removeAttribute = f974244559_644;
16772 // 13537
16773 f974244559_644.returns.push(undefined);
16774 // 13538
16775 o218.setAttribute = f974244559_643;
16776 // undefined
16777 o218 = null;
16778 // 13539
16779 f974244559_643.returns.push(undefined);
16780 // 13540
16781 o215.nodeName = "DIV";
16782 // 13541
16783 o215.__FB_TOKEN = void 0;
16784 // 13542
16785 // 13543
16786 o215.getAttribute = f974244559_500;
16787 // 13544
16788 o215.hasAttribute = f974244559_527;
16789 // 13546
16790 f974244559_527.returns.push(false);
16791 // 13547
16792 o215.JSBNG__addEventListener = f974244559_472;
16793 // 13549
16794 f974244559_472.returns.push(undefined);
16795 // 13550
16796 o215.JSBNG__onclick = null;
16797 // undefined
16798 o215 = null;
16799 // 13554
16800 f974244559_502.returns.push(o211);
16801 // 13555
16802 o211.__FB_TOKEN = void 0;
16803 // 13556
16804 // 13557
16805 o211.getElementsByTagName = f974244559_514;
16806 // 13559
16807 o211.querySelectorAll = f974244559_523;
16808 // 13560
16809 o6 = {};
16810 // 13561
16811 f974244559_523.returns.push(o6);
16812 // 13562
16813 o6.length = 1;
16814 // 13563
16815 o6["0"] = o106;
16816 // undefined
16817 o6 = null;
16818 // 13567
16819 o6 = {};
16820 // 13568
16821 f974244559_523.returns.push(o6);
16822 // 13569
16823 o6.length = 1;
16824 // 13570
16825 o207 = {};
16826 // 13571
16827 o6["0"] = o207;
16828 // undefined
16829 o6 = null;
16830 // 13575
16831 o6 = {};
16832 // 13576
16833 f974244559_523.returns.push(o6);
16834 // 13577
16835 o6.length = 1;
16836 // 13578
16837 o215 = {};
16838 // 13579
16839 o6["0"] = o215;
16840 // undefined
16841 o6 = null;
16842 // 13583
16843 o6 = {};
16844 // 13584
16845 f974244559_523.returns.push(o6);
16846 // 13585
16847 o6.length = 1;
16848 // 13586
16849 o6["0"] = o210;
16850 // undefined
16851 o6 = null;
16852 // 13590
16853 f974244559_1617.returns.push(false);
16854 // 13595
16855 f974244559_1617.returns.push(true);
16856 // 13599
16857 o6 = {};
16858 // 13600
16859 f974244559_523.returns.push(o6);
16860 // 13601
16861 o6.length = 1;
16862 // 13602
16863 o216 = {};
16864 // 13603
16865 o6["0"] = o216;
16866 // undefined
16867 o6 = null;
16868 // 13604
16869 o216.__FB_TOKEN = void 0;
16870 // 13605
16871 // undefined
16872 o216 = null;
16873 // 13606
16874 o210.contains = f974244559_702;
16875 // undefined
16876 o210 = null;
16877 // 13608
16878 f974244559_702.returns.push(true);
16879 // 13612
16880 o6 = {};
16881 // 13613
16882 f974244559_523.returns.push(o6);
16883 // 13614
16884 o6.length = 1;
16885 // 13615
16886 o210 = {};
16887 // 13616
16888 o6["0"] = o210;
16889 // undefined
16890 o6 = null;
16891 // undefined
16892 o210 = null;
16893 // 13617
16894 o211.nodeName = "DIV";
16895 // 13618
16896 o211.getAttribute = f974244559_500;
16897 // 13619
16898 o211.hasAttribute = f974244559_527;
16899 // 13621
16900 f974244559_527.returns.push(false);
16901 // 13622
16902 o211.JSBNG__addEventListener = f974244559_472;
16903 // 13624
16904 f974244559_472.returns.push(undefined);
16905 // 13625
16906 o211.JSBNG__onkeydown = null;
16907 // undefined
16908 o211 = null;
16909 // 13627
16910 o106.nodeName = "A";
16911 // 13628
16912 o106.__FB_TOKEN = void 0;
16913 // 13629
16914 // 13631
16915 o106.hasAttribute = f974244559_527;
16916 // 13633
16917 f974244559_527.returns.push(false);
16918 // 13634
16919 o106.JSBNG__addEventListener = f974244559_472;
16920 // 13636
16921 f974244559_472.returns.push(undefined);
16922 // 13637
16923 o106.JSBNG__onclick = null;
16924 // 13643
16925 o212.remove = f974244559_1244;
16926 // undefined
16927 o212 = null;
16928 // 13644
16929 f974244559_1244.returns.push(undefined);
16930 // 13648
16931 f974244559_1244.returns.push(undefined);
16932 // 13649
16933 o6 = {};
16934 // 13650
16935 o207.classList = o6;
16936 // undefined
16937 o207 = null;
16938 // 13652
16939 o6.add = f974244559_1110;
16940 // undefined
16941 o6 = null;
16942 // 13653
16943 f974244559_1110.returns.push(undefined);
16944 // 13654
16945 f974244559_1902 = function() { return f974244559_1902.returns[f974244559_1902.inst++]; };
16946 f974244559_1902.returns = [];
16947 f974244559_1902.inst = 0;
16948 // 13655
16949 o215.cloneNode = f974244559_1902;
16950 // 13656
16951 o6 = {};
16952 // 13657
16953 f974244559_1902.returns.push(o6);
16954 // 13658
16955 o207 = {};
16956 // undefined
16957 fo974244559_1903_firstChild = function() { return fo974244559_1903_firstChild.returns[fo974244559_1903_firstChild.inst++]; };
16958 fo974244559_1903_firstChild.returns = [];
16959 fo974244559_1903_firstChild.inst = 0;
16960 defineGetter(o6, "firstChild", fo974244559_1903_firstChild, undefined);
16961 // undefined
16962 fo974244559_1903_firstChild.returns.push(o207);
16963 // undefined
16964 fo974244559_1903_firstChild.returns.push(o207);
16965 // 13661
16966 o207.parentNode = o6;
16967 // 13663
16968 o6.removeChild = f974244559_507;
16969 // 13664
16970 f974244559_507.returns.push(o207);
16971 // undefined
16972 o207 = null;
16973 // 13665
16974 o207 = {};
16975 // undefined
16976 fo974244559_1903_firstChild.returns.push(o207);
16977 // undefined
16978 fo974244559_1903_firstChild.returns.push(o207);
16979 // 13668
16980 o207.parentNode = o6;
16981 // 13671
16982 f974244559_507.returns.push(o207);
16983 // undefined
16984 o207 = null;
16985 // undefined
16986 fo974244559_1903_firstChild.returns.push(null);
16987 // 13674
16988 o207 = {};
16989 // 13675
16990 f974244559_478.returns.push(o207);
16991 // 13677
16992 o210 = {};
16993 // 13678
16994 f974244559_1659.returns.push(o210);
16995 // 13679
16996 o207.appendChild = f974244559_482;
16997 // 13680
16998 f974244559_482.returns.push(o210);
16999 // undefined
17000 o210 = null;
17001 // 13681
17002 o6.appendChild = f974244559_482;
17003 // 13682
17004 f974244559_482.returns.push(o207);
17005 // undefined
17006 o207 = null;
17007 // 13683
17008 o215.parentNode = o106;
17009 // 13684
17010 o6.__html = void 0;
17011 // 13686
17012 o207 = {};
17013 // 13687
17014 f974244559_478.returns.push(o207);
17015 // undefined
17016 o207 = null;
17017 // 13689
17018 f974244559_1909 = function() { return f974244559_1909.returns[f974244559_1909.inst++]; };
17019 f974244559_1909.returns = [];
17020 f974244559_1909.inst = 0;
17021 // 13690
17022 o106.replaceChild = f974244559_1909;
17023 // undefined
17024 o106 = null;
17025 // 13691
17026 f974244559_1909.returns.push(o215);
17027 // undefined
17028 o215 = null;
17029 // 13696
17030 f974244559_471.returns.push(1373491298331);
17031 // 13698
17032 f974244559_471.returns.push(1373491298333);
17033 // 13699
17034 f974244559_7.returns.push(undefined);
17035 // 13700
17036 ow974244559.JSBNG__onJSBNG__blur = undefined;
17037 // 13701
17038 f974244559_13.returns.push(53);
17039 // 13703
17040 o106 = {};
17041 // 13704
17042 f974244559_480.returns.push(o106);
17043 // 13705
17044 // 13706
17045 // 13707
17046 o106.getElementsByTagName = f974244559_514;
17047 // 13708
17048 o207 = {};
17049 // 13709
17050 f974244559_514.returns.push(o207);
17051 // 13710
17052 o207.length = 0;
17053 // undefined
17054 o207 = null;
17055 // 13712
17056 o207 = {};
17057 // 13713
17058 o106.childNodes = o207;
17059 // undefined
17060 o106 = null;
17061 // 13714
17062 o207.item = f974244559_517;
17063 // 13715
17064 o207.length = 1;
17065 // 13716
17066 o106 = {};
17067 // 13717
17068 o207["0"] = o106;
17069 // undefined
17070 o207 = null;
17071 // undefined
17072 o106 = null;
17073 // 13719
17074 o106 = {};
17075 // 13720
17076 f974244559_480.returns.push(o106);
17077 // 13721
17078 // 13722
17079 // 13723
17080 o106.getElementsByTagName = f974244559_514;
17081 // 13724
17082 o207 = {};
17083 // 13725
17084 f974244559_514.returns.push(o207);
17085 // 13726
17086 o207.length = 0;
17087 // undefined
17088 o207 = null;
17089 // 13728
17090 o207 = {};
17091 // 13729
17092 o106.childNodes = o207;
17093 // undefined
17094 o106 = null;
17095 // 13730
17096 o207.item = f974244559_517;
17097 // 13731
17098 o207.length = 1;
17099 // 13732
17100 o106 = {};
17101 // 13733
17102 o207["0"] = o106;
17103 // undefined
17104 o207 = null;
17105 // undefined
17106 o106 = null;
17107 // 13735
17108 o106 = {};
17109 // 13736
17110 f974244559_480.returns.push(o106);
17111 // 13737
17112 // 13738
17113 // 13739
17114 o106.getElementsByTagName = f974244559_514;
17115 // 13740
17116 o207 = {};
17117 // 13741
17118 f974244559_514.returns.push(o207);
17119 // 13742
17120 o207.length = 0;
17121 // undefined
17122 o207 = null;
17123 // 13744
17124 o207 = {};
17125 // 13745
17126 o106.childNodes = o207;
17127 // undefined
17128 o106 = null;
17129 // 13746
17130 o207.item = f974244559_517;
17131 // 13747
17132 o207.length = 1;
17133 // 13748
17134 o106 = {};
17135 // 13749
17136 o207["0"] = o106;
17137 // undefined
17138 o207 = null;
17139 // undefined
17140 o106 = null;
17141 // 13751
17142 o106 = {};
17143 // 13752
17144 f974244559_480.returns.push(o106);
17145 // 13753
17146 // 13754
17147 // 13755
17148 o106.getElementsByTagName = f974244559_514;
17149 // 13756
17150 o207 = {};
17151 // 13757
17152 f974244559_514.returns.push(o207);
17153 // 13758
17154 o207.length = 0;
17155 // undefined
17156 o207 = null;
17157 // 13760
17158 o207 = {};
17159 // 13761
17160 o106.childNodes = o207;
17161 // undefined
17162 o106 = null;
17163 // 13762
17164 o207.item = f974244559_517;
17165 // 13763
17166 o207.length = 1;
17167 // 13764
17168 o106 = {};
17169 // 13765
17170 o207["0"] = o106;
17171 // undefined
17172 o207 = null;
17173 // undefined
17174 o106 = null;
17175 // 13767
17176 o106 = {};
17177 // 13768
17178 f974244559_480.returns.push(o106);
17179 // 13769
17180 // 13770
17181 // 13771
17182 o106.getElementsByTagName = f974244559_514;
17183 // 13772
17184 o207 = {};
17185 // 13773
17186 f974244559_514.returns.push(o207);
17187 // 13774
17188 o207.length = 0;
17189 // undefined
17190 o207 = null;
17191 // 13776
17192 o207 = {};
17193 // 13777
17194 o106.childNodes = o207;
17195 // undefined
17196 o106 = null;
17197 // 13778
17198 o207.item = f974244559_517;
17199 // 13779
17200 o207.length = 1;
17201 // 13780
17202 o106 = {};
17203 // 13781
17204 o207["0"] = o106;
17205 // undefined
17206 o207 = null;
17207 // undefined
17208 o106 = null;
17209 // 13783
17210 o106 = {};
17211 // 13784
17212 f974244559_480.returns.push(o106);
17213 // 13785
17214 // 13786
17215 // 13787
17216 o106.getElementsByTagName = f974244559_514;
17217 // 13788
17218 o207 = {};
17219 // 13789
17220 f974244559_514.returns.push(o207);
17221 // 13790
17222 o207.length = 0;
17223 // undefined
17224 o207 = null;
17225 // 13792
17226 o207 = {};
17227 // 13793
17228 o106.childNodes = o207;
17229 // undefined
17230 o106 = null;
17231 // 13794
17232 o207.item = f974244559_517;
17233 // 13795
17234 o207.length = 1;
17235 // 13796
17236 o106 = {};
17237 // 13797
17238 o207["0"] = o106;
17239 // undefined
17240 o207 = null;
17241 // 13799
17242 o207 = {};
17243 // 13800
17244 f974244559_480.returns.push(o207);
17245 // 13801
17246 // 13802
17247 // 13803
17248 o207.getElementsByTagName = f974244559_514;
17249 // 13804
17250 o210 = {};
17251 // 13805
17252 f974244559_514.returns.push(o210);
17253 // 13806
17254 o210.length = 0;
17255 // undefined
17256 o210 = null;
17257 // 13808
17258 o210 = {};
17259 // 13809
17260 o207.childNodes = o210;
17261 // undefined
17262 o207 = null;
17263 // 13810
17264 o210.item = f974244559_517;
17265 // 13811
17266 o210.length = 1;
17267 // 13812
17268 o207 = {};
17269 // 13813
17270 o210["0"] = o207;
17271 // undefined
17272 o210 = null;
17273 // undefined
17274 o207 = null;
17275 // 13815
17276 o207 = {};
17277 // 13816
17278 f974244559_480.returns.push(o207);
17279 // 13817
17280 // 13818
17281 // 13819
17282 o207.getElementsByTagName = f974244559_514;
17283 // 13820
17284 o210 = {};
17285 // 13821
17286 f974244559_514.returns.push(o210);
17287 // 13822
17288 o210.length = 0;
17289 // undefined
17290 o210 = null;
17291 // 13824
17292 o210 = {};
17293 // 13825
17294 o207.childNodes = o210;
17295 // undefined
17296 o207 = null;
17297 // 13826
17298 o210.item = f974244559_517;
17299 // 13827
17300 o210.length = 1;
17301 // 13828
17302 o207 = {};
17303 // 13829
17304 o210["0"] = o207;
17305 // undefined
17306 o210 = null;
17307 // undefined
17308 o207 = null;
17309 // 13831
17310 o207 = {};
17311 // 13832
17312 f974244559_480.returns.push(o207);
17313 // 13833
17314 // 13834
17315 // 13835
17316 o207.getElementsByTagName = f974244559_514;
17317 // 13836
17318 o210 = {};
17319 // 13837
17320 f974244559_514.returns.push(o210);
17321 // 13838
17322 o210.length = 0;
17323 // undefined
17324 o210 = null;
17325 // 13840
17326 o210 = {};
17327 // 13841
17328 o207.childNodes = o210;
17329 // undefined
17330 o207 = null;
17331 // 13842
17332 o210.item = f974244559_517;
17333 // 13843
17334 o210.length = 1;
17335 // 13844
17336 o207 = {};
17337 // 13845
17338 o210["0"] = o207;
17339 // undefined
17340 o210 = null;
17341 // undefined
17342 o207 = null;
17343 // 13847
17344 o207 = {};
17345 // 13848
17346 f974244559_480.returns.push(o207);
17347 // 13849
17348 // 13850
17349 // 13851
17350 o207.getElementsByTagName = f974244559_514;
17351 // 13852
17352 o210 = {};
17353 // 13853
17354 f974244559_514.returns.push(o210);
17355 // 13854
17356 o210.length = 0;
17357 // undefined
17358 o210 = null;
17359 // 13856
17360 o210 = {};
17361 // 13857
17362 o207.childNodes = o210;
17363 // undefined
17364 o207 = null;
17365 // 13858
17366 o210.item = f974244559_517;
17367 // 13859
17368 o210.length = 1;
17369 // 13860
17370 o207 = {};
17371 // 13861
17372 o210["0"] = o207;
17373 // undefined
17374 o210 = null;
17375 // undefined
17376 o207 = null;
17377 // 13863
17378 o207 = {};
17379 // 13864
17380 f974244559_480.returns.push(o207);
17381 // 13865
17382 // 13866
17383 // 13867
17384 o207.getElementsByTagName = f974244559_514;
17385 // 13868
17386 o210 = {};
17387 // 13869
17388 f974244559_514.returns.push(o210);
17389 // 13870
17390 o210.length = 0;
17391 // undefined
17392 o210 = null;
17393 // 13872
17394 o210 = {};
17395 // 13873
17396 o207.childNodes = o210;
17397 // undefined
17398 o207 = null;
17399 // 13874
17400 o210.item = f974244559_517;
17401 // 13875
17402 o210.length = 1;
17403 // 13876
17404 o207 = {};
17405 // 13877
17406 o210["0"] = o207;
17407 // undefined
17408 o210 = null;
17409 // undefined
17410 o207 = null;
17411 // 13879
17412 o207 = {};
17413 // 13880
17414 f974244559_480.returns.push(o207);
17415 // 13881
17416 // 13882
17417 // 13883
17418 o207.getElementsByTagName = f974244559_514;
17419 // 13884
17420 o210 = {};
17421 // 13885
17422 f974244559_514.returns.push(o210);
17423 // 13886
17424 o210.length = 0;
17425 // undefined
17426 o210 = null;
17427 // 13888
17428 o210 = {};
17429 // 13889
17430 o207.childNodes = o210;
17431 // undefined
17432 o207 = null;
17433 // 13890
17434 o210.item = f974244559_517;
17435 // 13891
17436 o210.length = 1;
17437 // 13892
17438 o207 = {};
17439 // 13893
17440 o210["0"] = o207;
17441 // undefined
17442 o210 = null;
17443 // undefined
17444 o207 = null;
17445 // 13895
17446 o207 = {};
17447 // 13896
17448 f974244559_480.returns.push(o207);
17449 // 13897
17450 // 13898
17451 // 13899
17452 o207.getElementsByTagName = f974244559_514;
17453 // 13900
17454 o210 = {};
17455 // 13901
17456 f974244559_514.returns.push(o210);
17457 // 13902
17458 o210.length = 0;
17459 // undefined
17460 o210 = null;
17461 // 13904
17462 o210 = {};
17463 // 13905
17464 o207.childNodes = o210;
17465 // undefined
17466 o207 = null;
17467 // 13906
17468 o210.item = f974244559_517;
17469 // 13907
17470 o210.length = 1;
17471 // 13908
17472 o207 = {};
17473 // 13909
17474 o210["0"] = o207;
17475 // undefined
17476 o210 = null;
17477 // undefined
17478 o207 = null;
17479 // 13911
17480 o207 = {};
17481 // 13912
17482 f974244559_480.returns.push(o207);
17483 // 13913
17484 // 13914
17485 // 13915
17486 o207.getElementsByTagName = f974244559_514;
17487 // 13916
17488 o210 = {};
17489 // 13917
17490 f974244559_514.returns.push(o210);
17491 // 13918
17492 o210.length = 0;
17493 // undefined
17494 o210 = null;
17495 // 13920
17496 o210 = {};
17497 // 13921
17498 o207.childNodes = o210;
17499 // undefined
17500 o207 = null;
17501 // 13922
17502 o210.item = f974244559_517;
17503 // 13923
17504 o210.length = 1;
17505 // 13924
17506 o207 = {};
17507 // 13925
17508 o210["0"] = o207;
17509 // undefined
17510 o210 = null;
17511 // undefined
17512 o207 = null;
17513 // 13927
17514 o207 = {};
17515 // 13928
17516 f974244559_480.returns.push(o207);
17517 // 13929
17518 // 13930
17519 // 13931
17520 o207.getElementsByTagName = f974244559_514;
17521 // 13932
17522 o210 = {};
17523 // 13933
17524 f974244559_514.returns.push(o210);
17525 // 13934
17526 o210.length = 0;
17527 // undefined
17528 o210 = null;
17529 // 13936
17530 o210 = {};
17531 // 13937
17532 o207.childNodes = o210;
17533 // undefined
17534 o207 = null;
17535 // 13938
17536 o210.item = f974244559_517;
17537 // 13939
17538 o210.length = 1;
17539 // 13940
17540 o207 = {};
17541 // 13941
17542 o210["0"] = o207;
17543 // undefined
17544 o210 = null;
17545 // undefined
17546 o207 = null;
17547 // 13943
17548 o207 = {};
17549 // 13944
17550 f974244559_480.returns.push(o207);
17551 // 13945
17552 // 13946
17553 // 13947
17554 o207.getElementsByTagName = f974244559_514;
17555 // 13948
17556 o210 = {};
17557 // 13949
17558 f974244559_514.returns.push(o210);
17559 // 13950
17560 o210.length = 0;
17561 // undefined
17562 o210 = null;
17563 // 13952
17564 o210 = {};
17565 // 13953
17566 o207.childNodes = o210;
17567 // undefined
17568 o207 = null;
17569 // 13954
17570 o210.item = f974244559_517;
17571 // 13955
17572 o210.length = 1;
17573 // 13956
17574 o207 = {};
17575 // 13957
17576 o210["0"] = o207;
17577 // undefined
17578 o210 = null;
17579 // undefined
17580 o207 = null;
17581 // 13959
17582 o207 = {};
17583 // 13960
17584 f974244559_480.returns.push(o207);
17585 // 13961
17586 // 13962
17587 // 13963
17588 o207.getElementsByTagName = f974244559_514;
17589 // 13964
17590 o210 = {};
17591 // 13965
17592 f974244559_514.returns.push(o210);
17593 // 13966
17594 o210.length = 0;
17595 // undefined
17596 o210 = null;
17597 // 13968
17598 o210 = {};
17599 // 13969
17600 o207.childNodes = o210;
17601 // undefined
17602 o207 = null;
17603 // 13970
17604 o210.item = f974244559_517;
17605 // 13971
17606 o210.length = 1;
17607 // 13972
17608 o207 = {};
17609 // 13973
17610 o210["0"] = o207;
17611 // undefined
17612 o210 = null;
17613 // undefined
17614 o207 = null;
17615 // 13975
17616 o207 = {};
17617 // 13976
17618 f974244559_480.returns.push(o207);
17619 // 13977
17620 // 13978
17621 // 13979
17622 o207.getElementsByTagName = f974244559_514;
17623 // 13980
17624 o210 = {};
17625 // 13981
17626 f974244559_514.returns.push(o210);
17627 // 13982
17628 o210.length = 0;
17629 // undefined
17630 o210 = null;
17631 // 13984
17632 o210 = {};
17633 // 13985
17634 o207.childNodes = o210;
17635 // undefined
17636 o207 = null;
17637 // 13986
17638 o210.item = f974244559_517;
17639 // 13987
17640 o210.length = 1;
17641 // 13988
17642 o207 = {};
17643 // 13989
17644 o210["0"] = o207;
17645 // undefined
17646 o210 = null;
17647 // undefined
17648 o207 = null;
17649 // 13991
17650 o207 = {};
17651 // 13992
17652 f974244559_480.returns.push(o207);
17653 // 13993
17654 // 13994
17655 // 13995
17656 o207.getElementsByTagName = f974244559_514;
17657 // 13996
17658 o210 = {};
17659 // 13997
17660 f974244559_514.returns.push(o210);
17661 // 13998
17662 o210.length = 0;
17663 // undefined
17664 o210 = null;
17665 // 14000
17666 o210 = {};
17667 // 14001
17668 o207.childNodes = o210;
17669 // undefined
17670 o207 = null;
17671 // 14002
17672 o210.item = f974244559_517;
17673 // 14003
17674 o210.length = 1;
17675 // 14004
17676 o207 = {};
17677 // 14005
17678 o210["0"] = o207;
17679 // undefined
17680 o210 = null;
17681 // undefined
17682 o207 = null;
17683 // 14007
17684 o207 = {};
17685 // 14008
17686 f974244559_480.returns.push(o207);
17687 // 14009
17688 // 14010
17689 // 14011
17690 o207.getElementsByTagName = f974244559_514;
17691 // 14012
17692 o210 = {};
17693 // 14013
17694 f974244559_514.returns.push(o210);
17695 // 14014
17696 o210.length = 0;
17697 // undefined
17698 o210 = null;
17699 // 14016
17700 o210 = {};
17701 // 14017
17702 o207.childNodes = o210;
17703 // undefined
17704 o207 = null;
17705 // 14018
17706 o210.item = f974244559_517;
17707 // 14019
17708 o210.length = 1;
17709 // 14020
17710 o207 = {};
17711 // 14021
17712 o210["0"] = o207;
17713 // undefined
17714 o210 = null;
17715 // undefined
17716 o207 = null;
17717 // 14023
17718 o207 = {};
17719 // 14024
17720 f974244559_480.returns.push(o207);
17721 // 14025
17722 // 14026
17723 // 14027
17724 o207.getElementsByTagName = f974244559_514;
17725 // 14028
17726 o210 = {};
17727 // 14029
17728 f974244559_514.returns.push(o210);
17729 // 14030
17730 o210.length = 0;
17731 // undefined
17732 o210 = null;
17733 // 14032
17734 o210 = {};
17735 // 14033
17736 o207.childNodes = o210;
17737 // undefined
17738 o207 = null;
17739 // 14034
17740 o210.item = f974244559_517;
17741 // 14035
17742 o210.length = 1;
17743 // 14036
17744 o207 = {};
17745 // 14037
17746 o210["0"] = o207;
17747 // undefined
17748 o210 = null;
17749 // undefined
17750 o207 = null;
17751 // 14039
17752 o207 = {};
17753 // 14040
17754 f974244559_480.returns.push(o207);
17755 // 14041
17756 // 14042
17757 // 14043
17758 o207.getElementsByTagName = f974244559_514;
17759 // 14044
17760 o210 = {};
17761 // 14045
17762 f974244559_514.returns.push(o210);
17763 // 14046
17764 o210.length = 0;
17765 // undefined
17766 o210 = null;
17767 // 14048
17768 o210 = {};
17769 // 14049
17770 o207.childNodes = o210;
17771 // undefined
17772 o207 = null;
17773 // 14050
17774 o210.item = f974244559_517;
17775 // 14051
17776 o210.length = 1;
17777 // 14052
17778 o207 = {};
17779 // 14053
17780 o210["0"] = o207;
17781 // undefined
17782 o210 = null;
17783 // undefined
17784 o207 = null;
17785 // 14055
17786 o207 = {};
17787 // 14056
17788 f974244559_480.returns.push(o207);
17789 // 14057
17790 // 14058
17791 // 14059
17792 o207.getElementsByTagName = f974244559_514;
17793 // 14060
17794 o210 = {};
17795 // 14061
17796 f974244559_514.returns.push(o210);
17797 // 14062
17798 o210.length = 0;
17799 // undefined
17800 o210 = null;
17801 // 14064
17802 o210 = {};
17803 // 14065
17804 o207.childNodes = o210;
17805 // undefined
17806 o207 = null;
17807 // 14066
17808 o210.item = f974244559_517;
17809 // 14067
17810 o210.length = 1;
17811 // 14068
17812 o207 = {};
17813 // 14069
17814 o210["0"] = o207;
17815 // undefined
17816 o210 = null;
17817 // undefined
17818 o207 = null;
17819 // 14071
17820 o207 = {};
17821 // 14072
17822 f974244559_480.returns.push(o207);
17823 // 14073
17824 // 14074
17825 // 14075
17826 o207.getElementsByTagName = f974244559_514;
17827 // 14076
17828 o210 = {};
17829 // 14077
17830 f974244559_514.returns.push(o210);
17831 // 14078
17832 o210.length = 0;
17833 // undefined
17834 o210 = null;
17835 // 14080
17836 o210 = {};
17837 // 14081
17838 o207.childNodes = o210;
17839 // undefined
17840 o207 = null;
17841 // 14082
17842 o210.item = f974244559_517;
17843 // 14083
17844 o210.length = 1;
17845 // 14084
17846 o207 = {};
17847 // 14085
17848 o210["0"] = o207;
17849 // undefined
17850 o210 = null;
17851 // undefined
17852 o207 = null;
17853 // 14087
17854 o207 = {};
17855 // 14088
17856 f974244559_480.returns.push(o207);
17857 // 14089
17858 // 14090
17859 // 14091
17860 o207.getElementsByTagName = f974244559_514;
17861 // 14092
17862 o210 = {};
17863 // 14093
17864 f974244559_514.returns.push(o210);
17865 // 14094
17866 o210.length = 0;
17867 // undefined
17868 o210 = null;
17869 // 14096
17870 o210 = {};
17871 // 14097
17872 o207.childNodes = o210;
17873 // undefined
17874 o207 = null;
17875 // 14098
17876 o210.item = f974244559_517;
17877 // 14099
17878 o210.length = 1;
17879 // 14100
17880 o207 = {};
17881 // 14101
17882 o210["0"] = o207;
17883 // undefined
17884 o210 = null;
17885 // undefined
17886 o207 = null;
17887 // 14103
17888 o207 = {};
17889 // 14104
17890 f974244559_480.returns.push(o207);
17891 // 14105
17892 // 14106
17893 // 14107
17894 o207.getElementsByTagName = f974244559_514;
17895 // 14108
17896 o210 = {};
17897 // 14109
17898 f974244559_514.returns.push(o210);
17899 // 14110
17900 o210.length = 0;
17901 // undefined
17902 o210 = null;
17903 // 14112
17904 o210 = {};
17905 // 14113
17906 o207.childNodes = o210;
17907 // undefined
17908 o207 = null;
17909 // 14114
17910 o210.item = f974244559_517;
17911 // 14115
17912 o210.length = 1;
17913 // 14116
17914 o207 = {};
17915 // 14117
17916 o210["0"] = o207;
17917 // undefined
17918 o210 = null;
17919 // undefined
17920 o207 = null;
17921 // 14119
17922 o207 = {};
17923 // 14120
17924 f974244559_480.returns.push(o207);
17925 // 14121
17926 // 14122
17927 // 14123
17928 o207.getElementsByTagName = f974244559_514;
17929 // 14124
17930 o210 = {};
17931 // 14125
17932 f974244559_514.returns.push(o210);
17933 // 14126
17934 o210.length = 0;
17935 // undefined
17936 o210 = null;
17937 // 14128
17938 o210 = {};
17939 // 14129
17940 o207.childNodes = o210;
17941 // undefined
17942 o207 = null;
17943 // 14130
17944 o210.item = f974244559_517;
17945 // 14131
17946 o210.length = 1;
17947 // 14132
17948 o207 = {};
17949 // 14133
17950 o210["0"] = o207;
17951 // undefined
17952 o210 = null;
17953 // undefined
17954 o207 = null;
17955 // 14135
17956 o207 = {};
17957 // 14136
17958 f974244559_480.returns.push(o207);
17959 // 14137
17960 // 14138
17961 // 14139
17962 o207.getElementsByTagName = f974244559_514;
17963 // 14140
17964 o210 = {};
17965 // 14141
17966 f974244559_514.returns.push(o210);
17967 // 14142
17968 o210.length = 0;
17969 // undefined
17970 o210 = null;
17971 // 14144
17972 o210 = {};
17973 // 14145
17974 o207.childNodes = o210;
17975 // undefined
17976 o207 = null;
17977 // 14146
17978 o210.item = f974244559_517;
17979 // 14147
17980 o210.length = 1;
17981 // 14148
17982 o207 = {};
17983 // 14149
17984 o210["0"] = o207;
17985 // undefined
17986 o210 = null;
17987 // undefined
17988 o207 = null;
17989 // 14151
17990 o207 = {};
17991 // 14152
17992 f974244559_480.returns.push(o207);
17993 // 14153
17994 // 14154
17995 // 14155
17996 o207.getElementsByTagName = f974244559_514;
17997 // 14156
17998 o210 = {};
17999 // 14157
18000 f974244559_514.returns.push(o210);
18001 // 14158
18002 o210.length = 0;
18003 // undefined
18004 o210 = null;
18005 // 14160
18006 o210 = {};
18007 // 14161
18008 o207.childNodes = o210;
18009 // undefined
18010 o207 = null;
18011 // 14162
18012 o210.item = f974244559_517;
18013 // 14163
18014 o210.length = 1;
18015 // 14164
18016 o207 = {};
18017 // 14165
18018 o210["0"] = o207;
18019 // undefined
18020 o210 = null;
18021 // undefined
18022 o207 = null;
18023 // 14167
18024 o207 = {};
18025 // 14168
18026 f974244559_480.returns.push(o207);
18027 // 14169
18028 // 14170
18029 // 14171
18030 o207.getElementsByTagName = f974244559_514;
18031 // 14172
18032 o210 = {};
18033 // 14173
18034 f974244559_514.returns.push(o210);
18035 // 14174
18036 o210.length = 0;
18037 // undefined
18038 o210 = null;
18039 // 14176
18040 o210 = {};
18041 // 14177
18042 o207.childNodes = o210;
18043 // undefined
18044 o207 = null;
18045 // 14178
18046 o210.item = f974244559_517;
18047 // 14179
18048 o210.length = 1;
18049 // 14180
18050 o207 = {};
18051 // 14181
18052 o210["0"] = o207;
18053 // undefined
18054 o210 = null;
18055 // undefined
18056 o207 = null;
18057 // 14183
18058 o207 = {};
18059 // 14184
18060 f974244559_480.returns.push(o207);
18061 // 14185
18062 // 14186
18063 // 14187
18064 o207.getElementsByTagName = f974244559_514;
18065 // 14188
18066 o210 = {};
18067 // 14189
18068 f974244559_514.returns.push(o210);
18069 // 14190
18070 o210.length = 0;
18071 // undefined
18072 o210 = null;
18073 // 14192
18074 o210 = {};
18075 // 14193
18076 o207.childNodes = o210;
18077 // undefined
18078 o207 = null;
18079 // 14194
18080 o210.item = f974244559_517;
18081 // 14195
18082 o210.length = 1;
18083 // 14196
18084 o207 = {};
18085 // 14197
18086 o210["0"] = o207;
18087 // undefined
18088 o210 = null;
18089 // undefined
18090 o207 = null;
18091 // 14199
18092 o207 = {};
18093 // 14200
18094 f974244559_480.returns.push(o207);
18095 // 14201
18096 // 14202
18097 // 14203
18098 o207.getElementsByTagName = f974244559_514;
18099 // 14204
18100 o210 = {};
18101 // 14205
18102 f974244559_514.returns.push(o210);
18103 // 14206
18104 o210.length = 0;
18105 // undefined
18106 o210 = null;
18107 // 14208
18108 o210 = {};
18109 // 14209
18110 o207.childNodes = o210;
18111 // undefined
18112 o207 = null;
18113 // 14210
18114 o210.item = f974244559_517;
18115 // 14211
18116 o210.length = 1;
18117 // 14212
18118 o207 = {};
18119 // 14213
18120 o210["0"] = o207;
18121 // undefined
18122 o210 = null;
18123 // undefined
18124 o207 = null;
18125 // 14215
18126 o207 = {};
18127 // 14216
18128 f974244559_480.returns.push(o207);
18129 // 14217
18130 // 14218
18131 // 14219
18132 o207.getElementsByTagName = f974244559_514;
18133 // 14220
18134 o210 = {};
18135 // 14221
18136 f974244559_514.returns.push(o210);
18137 // 14222
18138 o210.length = 0;
18139 // undefined
18140 o210 = null;
18141 // 14224
18142 o210 = {};
18143 // 14225
18144 o207.childNodes = o210;
18145 // undefined
18146 o207 = null;
18147 // 14226
18148 o210.item = f974244559_517;
18149 // 14227
18150 o210.length = 1;
18151 // 14228
18152 o207 = {};
18153 // 14229
18154 o210["0"] = o207;
18155 // undefined
18156 o210 = null;
18157 // undefined
18158 o207 = null;
18159 // 14231
18160 o207 = {};
18161 // 14232
18162 f974244559_480.returns.push(o207);
18163 // 14233
18164 // 14234
18165 // 14235
18166 o207.getElementsByTagName = f974244559_514;
18167 // 14236
18168 o210 = {};
18169 // 14237
18170 f974244559_514.returns.push(o210);
18171 // 14238
18172 o210.length = 0;
18173 // undefined
18174 o210 = null;
18175 // 14240
18176 o210 = {};
18177 // 14241
18178 o207.childNodes = o210;
18179 // undefined
18180 o207 = null;
18181 // 14242
18182 o210.item = f974244559_517;
18183 // 14243
18184 o210.length = 1;
18185 // 14244
18186 o207 = {};
18187 // 14245
18188 o210["0"] = o207;
18189 // undefined
18190 o210 = null;
18191 // undefined
18192 o207 = null;
18193 // 14247
18194 o207 = {};
18195 // 14248
18196 f974244559_480.returns.push(o207);
18197 // 14249
18198 // 14250
18199 // 14251
18200 o207.getElementsByTagName = f974244559_514;
18201 // 14252
18202 o210 = {};
18203 // 14253
18204 f974244559_514.returns.push(o210);
18205 // 14254
18206 o210.length = 0;
18207 // undefined
18208 o210 = null;
18209 // 14256
18210 o210 = {};
18211 // 14257
18212 o207.childNodes = o210;
18213 // undefined
18214 o207 = null;
18215 // 14258
18216 o210.item = f974244559_517;
18217 // 14259
18218 o210.length = 1;
18219 // 14260
18220 o207 = {};
18221 // 14261
18222 o210["0"] = o207;
18223 // undefined
18224 o210 = null;
18225 // undefined
18226 o207 = null;
18227 // 14263
18228 o207 = {};
18229 // 14264
18230 f974244559_480.returns.push(o207);
18231 // 14265
18232 // 14266
18233 // 14267
18234 o207.getElementsByTagName = f974244559_514;
18235 // 14268
18236 o210 = {};
18237 // 14269
18238 f974244559_514.returns.push(o210);
18239 // 14270
18240 o210.length = 0;
18241 // undefined
18242 o210 = null;
18243 // 14272
18244 o210 = {};
18245 // 14273
18246 o207.childNodes = o210;
18247 // undefined
18248 o207 = null;
18249 // 14274
18250 o210.item = f974244559_517;
18251 // 14275
18252 o210.length = 1;
18253 // 14276
18254 o207 = {};
18255 // 14277
18256 o210["0"] = o207;
18257 // undefined
18258 o210 = null;
18259 // undefined
18260 o207 = null;
18261 // 14279
18262 o207 = {};
18263 // 14280
18264 f974244559_480.returns.push(o207);
18265 // 14281
18266 // 14282
18267 // 14283
18268 o207.getElementsByTagName = f974244559_514;
18269 // 14284
18270 o210 = {};
18271 // 14285
18272 f974244559_514.returns.push(o210);
18273 // 14286
18274 o210.length = 0;
18275 // undefined
18276 o210 = null;
18277 // 14288
18278 o210 = {};
18279 // 14289
18280 o207.childNodes = o210;
18281 // undefined
18282 o207 = null;
18283 // 14290
18284 o210.item = f974244559_517;
18285 // 14291
18286 o210.length = 1;
18287 // 14292
18288 o207 = {};
18289 // 14293
18290 o210["0"] = o207;
18291 // undefined
18292 o210 = null;
18293 // undefined
18294 o207 = null;
18295 // 14296
18296 f974244559_471.returns.push(1373491298480);
18297 // 14312
18298 f974244559_1617.returns.push(false);
18299 // 14319
18300 o207 = {};
18301 // 14320
18302 o95.classList = o207;
18303 // 14322
18304 o207.contains = f974244559_1617;
18305 // 14323
18306 f974244559_1617.returns.push(false);
18307 // 14324
18308 o95.parentNode = o94;
18309 // undefined
18310 o95 = null;
18311 // 14325
18312 o95 = {};
18313 // 14326
18314 o94.classList = o95;
18315 // 14328
18316 o95.contains = f974244559_1617;
18317 // undefined
18318 o95 = null;
18319 // 14329
18320 f974244559_1617.returns.push(false);
18321 // 14330
18322 o95 = {};
18323 // 14331
18324 o94.parentNode = o95;
18325 // 14332
18326 o210 = {};
18327 // 14333
18328 o95.classList = o210;
18329 // 14335
18330 o210.contains = f974244559_1617;
18331 // undefined
18332 o210 = null;
18333 // 14336
18334 f974244559_1617.returns.push(false);
18335 // 14337
18336 o95.parentNode = o214;
18337 // undefined
18338 o95 = null;
18339 // undefined
18340 o214 = null;
18341 // 14341
18342 f974244559_1617.returns.push(false);
18343 // 14346
18344 f974244559_1617.returns.push(true);
18345 // 14347
18346 o213.getElementsByTagName = f974244559_514;
18347 // 14349
18348 o213.querySelectorAll = f974244559_523;
18349 // 14350
18350 o95 = {};
18351 // 14351
18352 f974244559_523.returns.push(o95);
18353 // 14352
18354 o95.length = 1;
18355 // 14353
18356 o95["0"] = o99;
18357 // undefined
18358 o95 = null;
18359 // 14354
18360 o99.offsetWidth = 205;
18361 // 14355
18362 o99.offsetHeight = 0;
18363 // undefined
18364 o99 = null;
18365 // 14359
18366 o95 = {};
18367 // 14360
18368 f974244559_523.returns.push(o95);
18369 // 14361
18370 o95.length = 1;
18371 // 14362
18372 o95["0"] = o94;
18373 // undefined
18374 o95 = null;
18375 // 14363
18376 o94.offsetWidth = 0;
18377 // 14364
18378 o94.offsetHeight = 0;
18379 // 14365
18380 o213.offsetWidth = 205;
18381 // 14366
18382 o213.offsetHeight = 25;
18383 // undefined
18384 o213 = null;
18385 // 14367
18386 o106.__html = void 0;
18387 // 14368
18388 o106.cloneNode = f974244559_1902;
18389 // undefined
18390 o106 = null;
18391 // 14369
18392 o95 = {};
18393 // 14370
18394 f974244559_1902.returns.push(o95);
18395 // 14371
18396 o95.getElementsByTagName = f974244559_514;
18397 // 14372
18398 o99 = {};
18399 // 14373
18400 f974244559_514.returns.push(o99);
18401 // 14374
18402 o99.length = 14;
18403 // 14375
18404 o106 = {};
18405 // 14376
18406 o99["0"] = o106;
18407 // 14377
18408 o106.getAttribute = f974244559_500;
18409 // undefined
18410 o106 = null;
18411 // 14378
18412 f974244559_500.returns.push(null);
18413 // 14379
18414 o106 = {};
18415 // 14380
18416 o99["1"] = o106;
18417 // 14381
18418 o106.getAttribute = f974244559_500;
18419 // undefined
18420 o106 = null;
18421 // 14382
18422 f974244559_500.returns.push(null);
18423 // 14383
18424 o106 = {};
18425 // 14384
18426 o99["2"] = o106;
18427 // 14385
18428 o106.getAttribute = f974244559_500;
18429 // 14386
18430 f974244559_500.returns.push("numTabs");
18431 // 14387
18432 o106.removeAttribute = f974244559_644;
18433 // 14388
18434 f974244559_644.returns.push(undefined);
18435 // 14389
18436 o210 = {};
18437 // 14390
18438 o106.childNodes = o210;
18439 // undefined
18440 o106 = null;
18441 // 14391
18442 o210.length = 0;
18443 // undefined
18444 o210 = null;
18445 // 14392
18446 o106 = {};
18447 // 14393
18448 o99["3"] = o106;
18449 // 14394
18450 o106.getAttribute = f974244559_500;
18451 // 14395
18452 f974244559_500.returns.push("numMessages");
18453 // 14396
18454 o106.removeAttribute = f974244559_644;
18455 // 14397
18456 f974244559_644.returns.push(undefined);
18457 // 14398
18458 o210 = {};
18459 // 14399
18460 o106.childNodes = o210;
18461 // undefined
18462 o106 = null;
18463 // 14400
18464 o210.length = 0;
18465 // undefined
18466 o210 = null;
18467 // 14401
18468 o106 = {};
18469 // 14402
18470 o99["4"] = o106;
18471 // 14403
18472 o106.getAttribute = f974244559_500;
18473 // undefined
18474 o106 = null;
18475 // 14404
18476 f974244559_500.returns.push(null);
18477 // 14405
18478 o106 = {};
18479 // 14406
18480 o99["5"] = o106;
18481 // 14407
18482 o106.getAttribute = f974244559_500;
18483 // undefined
18484 o106 = null;
18485 // 14408
18486 f974244559_500.returns.push(null);
18487 // 14409
18488 o106 = {};
18489 // 14410
18490 o99["6"] = o106;
18491 // 14411
18492 o106.getAttribute = f974244559_500;
18493 // undefined
18494 o106 = null;
18495 // 14412
18496 f974244559_500.returns.push(null);
18497 // 14413
18498 o106 = {};
18499 // 14414
18500 o99["7"] = o106;
18501 // 14415
18502 o106.getAttribute = f974244559_500;
18503 // undefined
18504 o106 = null;
18505 // 14416
18506 f974244559_500.returns.push(null);
18507 // 14417
18508 o106 = {};
18509 // 14418
18510 o99["8"] = o106;
18511 // 14419
18512 o106.getAttribute = f974244559_500;
18513 // undefined
18514 o106 = null;
18515 // 14420
18516 f974244559_500.returns.push(null);
18517 // 14421
18518 o106 = {};
18519 // 14422
18520 o99["9"] = o106;
18521 // 14423
18522 o106.getAttribute = f974244559_500;
18523 // 14424
18524 f974244559_500.returns.push("menu");
18525 // 14425
18526 o106.removeAttribute = f974244559_644;
18527 // 14426
18528 f974244559_644.returns.push(undefined);
18529 // 14427
18530 o210 = {};
18531 // 14428
18532 o106.childNodes = o210;
18533 // 14429
18534 o210.length = 1;
18535 // undefined
18536 o210 = null;
18537 // 14430
18538 o210 = {};
18539 // 14431
18540 o99["10"] = o210;
18541 // 14432
18542 o210.getAttribute = f974244559_500;
18543 // 14433
18544 f974244559_500.returns.push(null);
18545 // 14434
18546 o211 = {};
18547 // 14435
18548 o99["11"] = o211;
18549 // 14436
18550 o211.getAttribute = f974244559_500;
18551 // undefined
18552 o211 = null;
18553 // 14437
18554 f974244559_500.returns.push(null);
18555 // 14438
18556 o211 = {};
18557 // 14439
18558 o99["12"] = o211;
18559 // 14440
18560 o211.getAttribute = f974244559_500;
18561 // undefined
18562 o211 = null;
18563 // 14441
18564 f974244559_500.returns.push(null);
18565 // 14442
18566 o211 = {};
18567 // 14443
18568 o99["13"] = o211;
18569 // undefined
18570 o99 = null;
18571 // 14444
18572 o211.getAttribute = f974244559_500;
18573 // undefined
18574 o211 = null;
18575 // 14445
18576 f974244559_500.returns.push(null);
18577 // 14446
18578 o106.getElementsByTagName = f974244559_514;
18579 // 14448
18580 o106.querySelectorAll = f974244559_523;
18581 // undefined
18582 o106 = null;
18583 // 14449
18584 o99 = {};
18585 // 14450
18586 f974244559_523.returns.push(o99);
18587 // 14451
18588 o99.length = 1;
18589 // 14452
18590 o99["0"] = o210;
18591 // undefined
18592 o99 = null;
18593 // undefined
18594 o210 = null;
18595 // 14453
18596 o95.__FB_TOKEN = void 0;
18597 // 14454
18598 // 14455
18599 o99 = {};
18600 // 14456
18601 o95.classList = o99;
18602 // 14458
18603 o99.add = f974244559_1110;
18604 // undefined
18605 o99 = null;
18606 // 14459
18607 f974244559_1110.returns.push(undefined);
18608 // 14461
18609 o95.__html = void 0;
18610 // undefined
18611 o95 = null;
18612 // 14463
18613 o95 = {};
18614 // 14464
18615 f974244559_478.returns.push(o95);
18616 // 14466
18617 f974244559_2086 = function() { return f974244559_2086.returns[f974244559_2086.inst++]; };
18618 f974244559_2086.returns = [];
18619 f974244559_2086.inst = 0;
18620 // 14467
18621 o94.insertBefore = f974244559_2086;
18622 // undefined
18623 o94 = null;
18624 // 14468
18625 f974244559_2086.returns.push(o95);
18626 // undefined
18627 o95 = null;
18628 // 14471
18629 o207.add = f974244559_1110;
18630 // undefined
18631 o207 = null;
18632 // 14472
18633 f974244559_1110.returns.push(undefined);
18634 // 14476
18635 f974244559_1110.returns.push(undefined);
18636 // 14477
18637 o94 = {};
18638 // 14478
18639 o95 = {};
18640 // 14480
18641 o94.length = 1;
18642 // 14481
18643 o94["0"] = "LpC/l";
18644 // 14484
18645 f974244559_471.returns.push(1373491298517);
18646 // 14487
18647 f974244559_471.returns.push(1373491298518);
18648 // 14489
18649 f974244559_471.returns.push(1373491298518);
18650 // 14499
18651 f974244559_1244.returns.push(undefined);
18652 // 14502
18653 o196.add = f974244559_1110;
18654 // undefined
18655 o196 = null;
18656 // 14503
18657 f974244559_1110.returns.push(undefined);
18658 // 14504
18659 o99 = {};
18660 // 14508
18661 f974244559_471.returns.push(1373491298565);
18662 // 14513
18663 f974244559_471.returns.push(1373491298568);
18664 // 14517
18665 f974244559_471.returns.push(1373491298569);
18666 // 14519
18667 o99.cancelBubble = false;
18668 // 14520
18669 o99.returnValue = true;
18670 // 14523
18671 o99.srcElement = o71;
18672 // 14525
18673 o99.target = o71;
18674 // 14532
18675 f974244559_519.returns.push(null);
18676 // 14538
18677 f974244559_519.returns.push(null);
18678 // 14544
18679 f974244559_519.returns.push(null);
18680 // 14550
18681 f974244559_519.returns.push(null);
18682 // 14556
18683 f974244559_519.returns.push(null);
18684 // 14562
18685 f974244559_519.returns.push(null);
18686 // 14568
18687 f974244559_519.returns.push(null);
18688 // 14574
18689 f974244559_519.returns.push(null);
18690 // 14579
18691 o99.JSBNG__screenX = 997;
18692 // 14580
18693 o99.JSBNG__screenY = 323;
18694 // 14581
18695 o99.altKey = false;
18696 // 14582
18697 o99.bubbles = true;
18698 // 14583
18699 o99.button = 0;
18700 // 14584
18701 o99.buttons = void 0;
18702 // 14585
18703 o99.cancelable = false;
18704 // 14586
18705 o99.clientX = 980;
18706 // 14587
18707 o99.clientY = 219;
18708 // 14588
18709 o99.ctrlKey = false;
18710 // 14589
18711 o99.currentTarget = o0;
18712 // 14590
18713 o99.defaultPrevented = false;
18714 // 14591
18715 o99.detail = 0;
18716 // 14592
18717 o99.eventPhase = 3;
18718 // 14593
18719 o99.isTrusted = void 0;
18720 // 14594
18721 o99.metaKey = false;
18722 // 14595
18723 o99.pageX = 980;
18724 // 14596
18725 o99.pageY = 1458;
18726 // 14597
18727 o99.relatedTarget = null;
18728 // 14598
18729 o99.fromElement = null;
18730 // 14601
18731 o99.shiftKey = false;
18732 // 14604
18733 o99.timeStamp = 1373491298565;
18734 // 14605
18735 o99.type = "mousemove";
18736 // 14606
18737 o99.view = ow974244559;
18738 // undefined
18739 o99 = null;
18740 // 14612
18741 f974244559_471.returns.push(1373491298578);
18742 // 14616
18743 f974244559_468.returns.push(3);
18744 // 14618
18745 f974244559_468.returns.push(4);
18746 // 14623
18747 f974244559_1244.returns.push(undefined);
18748 // 14627
18749 f974244559_1244.returns.push(undefined);
18750 // 14631
18751 f974244559_1110.returns.push(undefined);
18752 // 14632
18753 o6.cloneNode = f974244559_1902;
18754 // 14633
18755 o99 = {};
18756 // 14634
18757 f974244559_1902.returns.push(o99);
18758 // 14635
18759 o106 = {};
18760 // undefined
18761 fo974244559_2090_firstChild = function() { return fo974244559_2090_firstChild.returns[fo974244559_2090_firstChild.inst++]; };
18762 fo974244559_2090_firstChild.returns = [];
18763 fo974244559_2090_firstChild.inst = 0;
18764 defineGetter(o99, "firstChild", fo974244559_2090_firstChild, undefined);
18765 // undefined
18766 fo974244559_2090_firstChild.returns.push(o106);
18767 // undefined
18768 fo974244559_2090_firstChild.returns.push(o106);
18769 // 14638
18770 o106.parentNode = o99;
18771 // 14640
18772 o99.removeChild = f974244559_507;
18773 // 14641
18774 f974244559_507.returns.push(o106);
18775 // undefined
18776 o106 = null;
18777 // undefined
18778 fo974244559_2090_firstChild.returns.push(null);
18779 // 14644
18780 o106 = {};
18781 // 14645
18782 f974244559_478.returns.push(o106);
18783 // 14647
18784 o196 = {};
18785 // 14648
18786 f974244559_1659.returns.push(o196);
18787 // 14649
18788 o106.appendChild = f974244559_482;
18789 // 14650
18790 f974244559_482.returns.push(o196);
18791 // undefined
18792 o196 = null;
18793 // 14651
18794 o99.appendChild = f974244559_482;
18795 // 14652
18796 f974244559_482.returns.push(o106);
18797 // undefined
18798 o106 = null;
18799 // 14653
18800 o6.parentNode = null;
18801 // undefined
18802 o6 = null;
18803 // 14654
18804 o99.__html = void 0;
18805 // undefined
18806 o99 = null;
18807 // 14656
18808 o6 = {};
18809 // 14657
18810 f974244559_478.returns.push(o6);
18811 // undefined
18812 o6 = null;
18813 // 14661
18814 f974244559_471.returns.push(1373491298595);
18815 // 14662
18816 o6 = {};
18817 // 14664
18818 o99 = {};
18819 // 14665
18820 o6.alertList = o99;
18821 // 14666
18822 f974244559_2097 = function() { return f974244559_2097.returns[f974244559_2097.inst++]; };
18823 f974244559_2097.returns = [];
18824 f974244559_2097.inst = 0;
18825 // 14667
18826 o99.getIds = f974244559_2097;
18827 // 14668
18828 o106 = {};
18829 // 14669
18830 o99._list = o106;
18831 // 14670
18832 f974244559_2099 = function() { return f974244559_2099.returns[f974244559_2099.inst++]; };
18833 f974244559_2099.returns = [];
18834 f974244559_2099.inst = 0;
18835 // 14671
18836 o106.reduce = f974244559_2099;
18837 // 14672
18838 o106._head = null;
18839 // 14673
18840 f974244559_2099.returns.push({__JSBNG_unknown_object:true});
18841 // 14674
18842 f974244559_2097.returns.push({__JSBNG_unknown_object:true});
18843 // 14675
18844 o6._autoLoadNotifIndex = 1;
18845 // 14677
18846 f974244559_2100 = function() { return f974244559_2100.returns[f974244559_2100.inst++]; };
18847 f974244559_2100.returns = [];
18848 f974244559_2100.inst = 0;
18849 // 14678
18850 o99.getDomObj = f974244559_2100;
18851 // 14679
18852 f974244559_2101 = function() { return f974244559_2101.returns[f974244559_2101.inst++]; };
18853 f974244559_2101.returns = [];
18854 f974244559_2101.inst = 0;
18855 // 14680
18856 o99._getField = f974244559_2101;
18857 // 14682
18858 f974244559_2102 = function() { return f974244559_2102.returns[f974244559_2102.inst++]; };
18859 f974244559_2102.returns = [];
18860 f974244559_2102.inst = 0;
18861 // 14683
18862 o106.get = f974244559_2102;
18863 // 14684
18864 o196 = {};
18865 // 14685
18866 o106._nodes = o196;
18867 // 14686
18868 o196["null"] = void 0;
18869 // undefined
18870 o196 = null;
18871 // 14687
18872 f974244559_2102.returns.push(null);
18873 // 14688
18874 f974244559_2101.returns.push(null);
18875 // 14689
18876 f974244559_2100.returns.push(null);
18877 // 14690
18878 // 14691
18879 f974244559_2104 = function() { return f974244559_2104.returns[f974244559_2104.inst++]; };
18880 f974244559_2104.returns = [];
18881 f974244559_2104.inst = 0;
18882 // 14692
18883 o6._annotateMorePagerURI = f974244559_2104;
18884 // 14693
18885 o6._morePagerLink = o199;
18886 // 14694
18887 o199.setAttribute = f974244559_643;
18888 // 14697
18889 f974244559_500.returns.push("/ajax/notifications/get.php?user=100006118350059");
18890 // 14699
18891 f974244559_2105 = function() { return f974244559_2105.returns[f974244559_2105.inst++]; };
18892 f974244559_2105.returns = [];
18893 f974244559_2105.inst = 0;
18894 // 14700
18895 o99.getEarliestNotifTime = f974244559_2105;
18896 // undefined
18897 o99 = null;
18898 // 14702
18899 f974244559_2106 = function() { return f974244559_2106.returns[f974244559_2106.inst++]; };
18900 f974244559_2106.returns = [];
18901 f974244559_2106.inst = 0;
18902 // 14703
18903 o106.isEmpty = f974244559_2106;
18904 // undefined
18905 o106 = null;
18906 // 14705
18907 f974244559_2106.returns.push(true);
18908 // 14706
18909 f974244559_2105.returns.push(0);
18910 // 14707
18911 f974244559_643.returns.push(undefined);
18912 // 14708
18913 f974244559_2104.returns.push(undefined);
18914 // 14709
18915 o99 = {};
18916 // undefined
18917 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
18918 // 14714
18919 f974244559_471.returns.push(1373491298603);
18920 // 14716
18921 f974244559_471.returns.push(1373491298604);
18922 // 14718
18923 f974244559_471.returns.push(1373491298604);
18924 // 14719
18925 o120.offsetHeight = 669;
18926 // 14720
18927 o106 = {};
18928 // 14722
18929 o106._polling = false;
18930 // 14723
18931 // 14724
18932 f974244559_2109 = function() { return f974244559_2109.returns[f974244559_2109.inst++]; };
18933 f974244559_2109.returns = [];
18934 f974244559_2109.inst = 0;
18935 // 14725
18936 o106.request = f974244559_2109;
18937 // 14726
18938 f974244559_2110 = function() { return f974244559_2110.returns[f974244559_2110.inst++]; };
18939 f974244559_2110.returns = [];
18940 f974244559_2110.inst = 0;
18941 // 14727
18942 o106._cancelRequest = f974244559_2110;
18943 // 14728
18944 f974244559_2110.returns.push(undefined);
18945 // 14729
18946 // undefined
18947 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
18948 // 14731
18949 o106._muted = false;
18950 // 14732
18951 o196 = {};
18952 // 14733
18953 o106._config = o196;
18954 // 14734
18955 o196.maxRequests = Infinity;
18956 // 14735
18957 // 14737
18958 f974244559_2112 = function() { return f974244559_2112.returns[f974244559_2112.inst++]; };
18959 f974244559_2112.returns = [];
18960 f974244559_2112.inst = 0;
18961 // 14738
18962 o196.setupRequest = f974244559_2112;
18963 // undefined
18964 o196 = null;
18965 // 14739
18966 f974244559_2112.returns.push(undefined);
18967 // 14740
18968 o106._skip = false;
18969 // 14741
18970 f974244559_2109.returns.push(o106);
18971 // undefined
18972 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
18973 // 14743
18974 o196 = {};
18975 // 14745
18976 o207 = {};
18977 // 14746
18978 f974244559_2115 = function() { return f974244559_2115.returns[f974244559_2115.inst++]; };
18979 f974244559_2115.returns = [];
18980 f974244559_2115.inst = 0;
18981 // 14747
18982 o207.render = f974244559_2115;
18983 // 14748
18984 f974244559_2116 = function() { return f974244559_2116.returns[f974244559_2116.inst++]; };
18985 f974244559_2116.returns = [];
18986 f974244559_2116.inst = 0;
18987 // 14749
18988 f974244559_2115.reset = f974244559_2116;
18989 // 14750
18990 f974244559_14.returns.push(undefined);
18991 // 14751
18992 f974244559_2116.returns.push(undefined);
18993 // 14752
18994 f974244559_12.returns.push(54);
18995 // 14753
18996 f974244559_2115.returns.push(undefined);
18997 // 14754
18998 // undefined
18999 o207 = null;
19000 // 14755
19001 o207 = {};
19002 // 14756
19003 f974244559_2118 = function() { return f974244559_2118.returns[f974244559_2118.inst++]; };
19004 f974244559_2118.returns = [];
19005 f974244559_2118.inst = 0;
19006 // 14757
19007 o207.render = f974244559_2118;
19008 // 14758
19009 f974244559_2119 = function() { return f974244559_2119.returns[f974244559_2119.inst++]; };
19010 f974244559_2119.returns = [];
19011 f974244559_2119.inst = 0;
19012 // 14759
19013 f974244559_2118.reset = f974244559_2119;
19014 // 14760
19015 f974244559_14.returns.push(undefined);
19016 // 14761
19017 f974244559_2119.returns.push(undefined);
19018 // 14762
19019 f974244559_12.returns.push(55);
19020 // 14763
19021 f974244559_2118.returns.push(undefined);
19022 // 14764
19023 // undefined
19024 o207 = null;
19025 // 14765
19026 o207 = {};
19027 // 14769
19028 o210 = {};
19029 // 14773
19030 o211 = {};
19031 // 14778
19032 f974244559_2123 = function() { return f974244559_2123.returns[f974244559_2123.inst++]; };
19033 f974244559_2123.returns = [];
19034 f974244559_2123.inst = 0;
19035 // 14779
19036 o167.getResponseHeader = f974244559_2123;
19037 // 14782
19038 f974244559_2123.returns.push("onvQQQgeg26FG1vjcTQeJoqQtTf9CDmOIpf3fGFEjY4=");
19039 // 14785
19040 f974244559_2123.returns.push("onvQQQgeg26FG1vjcTQeJoqQtTf9CDmOIpf3fGFEjY4=");
19041 // 14786
19042 // 14788
19043 o167.JSBNG__status = 200;
19044 // 14792
19045 f974244559_471.returns.push(1373491298619);
19046 // 14793
19047 f974244559_2124 = function() { return f974244559_2124.returns[f974244559_2124.inst++]; };
19048 f974244559_2124.returns = [];
19049 f974244559_2124.inst = 0;
19050 // 14794
19051 o200._handleXHRResponse = f974244559_2124;
19052 // 14796
19053 f974244559_2125 = function() { return f974244559_2125.returns[f974244559_2125.inst++]; };
19054 f974244559_2125.returns = [];
19055 f974244559_2125.inst = 0;
19056 // 14797
19057 o200.getOption = f974244559_2125;
19058 // 14798
19059 o212 = {};
19060 // 14799
19061 o200.option = o212;
19062 // 14800
19063 o212.suppressEvaluation = false;
19064 // 14803
19065 f974244559_2125.returns.push(false);
19066 // 14804
19067 o167.responseText = "for (;;);{\"__ar\":1,\"payload\":null,\"jsmods\":{\"require\":[[\"m_2_0\"],[\"Layer\",\"show\",[\"m_2_0\"],[{\"__m\":\"m_2_0\"}]]],\"instances\":[[\"m_2_0\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerFadeOnHide\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_2_1\"],[{\"width\":300,\"context\":null,\"contextID\":null,\"contextSelector\":\"#userNavigationLabel\",\"position\":\"below\",\"alignment\":\"right\",\"offsetX\":0,\"offsetY\":0,\"arrowBehavior\":{\"__m\":\"ContextualDialogArrow\"},\"theme\":{\"__m\":\"ContextualDialogDefaultTheme\"},\"addedBehaviors\":[{\"__m\":\"LayerFadeOnHide\"},{\"__m\":\"LayerRemoveOnHide\"},{\"__m\":\"LayerDestroyOnHide\"},{\"__m\":\"LayerHideOnTransition\"},{\"__m\":\"LayerFadeOnShow\"},{\"__m\":\"ContextualLayerAutoFlip\"},{\"__m\":\"DialogHideOnSuccess\"}]},{\"__m\":\"m_2_1\"}],3]],\"markup\":[[\"m_2_1\",{\"__html\":\"\\u003Cdiv>\\u003Cdiv class=\\\"pam\\\">\\u003Cdiv>\\u003Cdiv class=\\\"clearfix\\\">\\u003Cimg class=\\\"_8o _8s lfloat img\\\" src=\\\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yR\\/r\\/TU3b_k6WbfA.png\\\" alt=\\\"\\\" width=\\\"43\\\" height=\\\"43\\\" \\/>\\u003Cdiv class=\\\"_42ef\\\">\\u003Cstrong>Get to Know Your Privacy Settings\\u003C\\/strong>\\u003Cdiv class=\\\"mts\\\">You control how you share your stuff with people and apps on Facebook\\u003C\\/div>\\u003C\\/div>\\u003C\\/div>\\u003C\\/div>\\u003C\\/div>\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\">\\u003Ca class=\\\"_42ft _42fu layerCancel uiOverlayButton selected _42g-\\\" role=\\\"button\\\" href=\\\"\\/ajax\\/marketing\\/tour\\/privacy_tour.php\\\" rel=\\\"dialog\\\">Learn More\\u003C\\/a>\\u003Ca class=\\\"_42ft _42fu layerCancel uiOverlayButton\\\" role=\\\"button\\\" href=\\\"\\/ajax\\/marketing\\/tour\\/privacy_dialog.php?close=1\\\" rel=\\\"async\\\">Close\\u003C\\/a>\\u003C\\/div>\\u003C\\/div>\"},2]]},\"css\":[\"W3Ky6\"],\"js\":[\"AyUu6\",\"AsDOA\"],\"bootloadable\":{\"IframeShim\":{\"resources\":[\"AyUu6\",\"AsDOA\",\"MqSmz\"],\"module\":true},\"Dialog\":{\"resources\":[\"AyUu6\",\"W3Ky6\",\"AsDOA\"],\"module\":true},\"AsyncDOM\":{\"resources\":[\"AyUu6\"],\"module\":true},\"ConfirmationDialog\":{\"resources\":[\"AyUu6\",\"AsDOA\",\"oE4Do\"],\"module\":true},\"React\":{\"resources\":[\"OJTM4\",\"AyUu6\"],\"module\":true}},\"resource_map\":{\"oE4Do\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yq\\/r\\/MDwOqV08JHh.js\"},\"AyUu6\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yF\\/r\\/pmYy9aLa5q_.js\"},\"W3Ky6\":{\"type\":\"css\",\"permanent\":1,\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yk\\/r\\/TvSvrZCKhi2.css\"},\"OJTM4\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yd\\/r\\/-z4vUS8jrpA.js\"},\"AsDOA\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yg\\/r\\/4CJ_klaVGHP.js\"},\"MqSmz\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yH\\/r\\/ghlEJgSKAee.js\"}},\"ixData\":[]}";
19068 // 14805
19069 f974244559_2127 = function() { return f974244559_2127.returns[f974244559_2127.inst++]; };
19070 f974244559_2127.returns = [];
19071 f974244559_2127.inst = 0;
19072 // 14806
19073 o200._unshieldResponseText = f974244559_2127;
19074 // 14807
19075 f974244559_2127.returns.push("{\"__ar\":1,\"payload\":null,\"jsmods\":{\"require\":[[\"m_2_0\"],[\"Layer\",\"show\",[\"m_2_0\"],[{\"__m\":\"m_2_0\"}]]],\"instances\":[[\"m_2_0\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerFadeOnHide\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_2_1\"],[{\"width\":300,\"context\":null,\"contextID\":null,\"contextSelector\":\"#userNavigationLabel\",\"position\":\"below\",\"alignment\":\"right\",\"offsetX\":0,\"offsetY\":0,\"arrowBehavior\":{\"__m\":\"ContextualDialogArrow\"},\"theme\":{\"__m\":\"ContextualDialogDefaultTheme\"},\"addedBehaviors\":[{\"__m\":\"LayerFadeOnHide\"},{\"__m\":\"LayerRemoveOnHide\"},{\"__m\":\"LayerDestroyOnHide\"},{\"__m\":\"LayerHideOnTransition\"},{\"__m\":\"LayerFadeOnShow\"},{\"__m\":\"ContextualLayerAutoFlip\"},{\"__m\":\"DialogHideOnSuccess\"}]},{\"__m\":\"m_2_1\"}],3]],\"markup\":[[\"m_2_1\",{\"__html\":\"\\u003Cdiv>\\u003Cdiv class=\\\"pam\\\">\\u003Cdiv>\\u003Cdiv class=\\\"clearfix\\\">\\u003Cimg class=\\\"_8o _8s lfloat img\\\" src=\\\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yR\\/r\\/TU3b_k6WbfA.png\\\" alt=\\\"\\\" width=\\\"43\\\" height=\\\"43\\\" \\/>\\u003Cdiv class=\\\"_42ef\\\">\\u003Cstrong>Get to Know Your Privacy Settings\\u003C\\/strong>\\u003Cdiv class=\\\"mts\\\">You control how you share your stuff with people and apps on Facebook\\u003C\\/div>\\u003C\\/div>\\u003C\\/div>\\u003C\\/div>\\u003C\\/div>\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\">\\u003Ca class=\\\"_42ft _42fu layerCancel uiOverlayButton selected _42g-\\\" role=\\\"button\\\" href=\\\"\\/ajax\\/marketing\\/tour\\/privacy_tour.php\\\" rel=\\\"dialog\\\">Learn More\\u003C\\/a>\\u003Ca class=\\\"_42ft _42fu layerCancel uiOverlayButton\\\" role=\\\"button\\\" href=\\\"\\/ajax\\/marketing\\/tour\\/privacy_dialog.php?close=1\\\" rel=\\\"async\\\">Close\\u003C\\/a>\\u003C\\/div>\\u003C\\/div>\"},2]]},\"css\":[\"W3Ky6\"],\"js\":[\"AyUu6\",\"AsDOA\"],\"bootloadable\":{\"IframeShim\":{\"resources\":[\"AyUu6\",\"AsDOA\",\"MqSmz\"],\"module\":true},\"Dialog\":{\"resources\":[\"AyUu6\",\"W3Ky6\",\"AsDOA\"],\"module\":true},\"AsyncDOM\":{\"resources\":[\"AyUu6\"],\"module\":true},\"ConfirmationDialog\":{\"resources\":[\"AyUu6\",\"AsDOA\",\"oE4Do\"],\"module\":true},\"React\":{\"resources\":[\"OJTM4\",\"AyUu6\"],\"module\":true}},\"resource_map\":{\"oE4Do\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yq\\/r\\/MDwOqV08JHh.js\"},\"AyUu6\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yF\\/r\\/pmYy9aLa5q_.js\"},\"W3Ky6\":{\"type\":\"css\",\"permanent\":1,\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yk\\/r\\/TvSvrZCKhi2.css\"},\"OJTM4\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yd\\/r\\/-z4vUS8jrpA.js\"},\"AsDOA\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yg\\/r\\/4CJ_klaVGHP.js\"},\"MqSmz\":{\"type\":\"js\",\"crossOrigin\":1,\"src\":\"https:\\/\\/fbstatic-a.akamaihd.net\\/rsrc.php\\/v2\\/yH\\/r\\/ghlEJgSKAee.js\"}},\"ixData\":[]}");
19076 // 14808
19077 f974244559_2128 = function() { return f974244559_2128.returns[f974244559_2128.inst++]; };
19078 f974244559_2128.returns = [];
19079 f974244559_2128.inst = 0;
19080 // 14809
19081 o200._interpretResponse = f974244559_2128;
19082 // 14810
19083 f974244559_2128.returns.push({__JSBNG_unknown_object:true});
19084 // 14811
19085 f974244559_2129 = function() { return f974244559_2129.returns[f974244559_2129.inst++]; };
19086 f974244559_2129.returns = [];
19087 f974244559_2129.inst = 0;
19088 // 14812
19089 o200.invokeResponseHandler = f974244559_2129;
19090 // 14813
19091 o200.handler = null;
19092 // 14814
19093 f974244559_2130 = function() { return f974244559_2130.returns[f974244559_2130.inst++]; };
19094 f974244559_2130.returns = [];
19095 f974244559_2130.inst = 0;
19096 // 14815
19097 o200.errorHandler = f974244559_2130;
19098 // 14816
19099 f974244559_2131 = function() { return f974244559_2131.returns[f974244559_2131.inst++]; };
19100 f974244559_2131.returns = [];
19101 f974244559_2131.inst = 0;
19102 // 14817
19103 o200._isRelevant = f974244559_2131;
19104 // 14818
19105 o200._allowCrossPageTransition = void 0;
19106 // 14819
19107 o200.id = 4;
19108 // 14821
19109 f974244559_2131.returns.push(true);
19110 // 14822
19111 f974244559_2132 = function() { return f974244559_2132.returns[f974244559_2132.inst++]; };
19112 f974244559_2132.returns = [];
19113 f974244559_2132.inst = 0;
19114 // 14823
19115 o200._dispatchResponse = f974244559_2132;
19116 // 14824
19117 f974244559_2132.JSBNG__name = "";
19118 // 14825
19119 o200.preBootloadHandler = void 0;
19120 // 14826
19121 f974244559_2133 = function() { return f974244559_2133.returns[f974244559_2133.inst++]; };
19122 f974244559_2133.returns = [];
19123 f974244559_2133.inst = 0;
19124 // 14827
19125 o200.getURI = f974244559_2133;
19126 // 14828
19127 o213 = {};
19128 // 14829
19129 o200.uri = o213;
19130 // 14830
19131 f974244559_2135 = function() { return f974244559_2135.returns[f974244559_2135.inst++]; };
19132 f974244559_2135.returns = [];
19133 f974244559_2135.inst = 0;
19134 // 14832
19135 o213.$URIBase0 = "";
19136 // 14833
19137 o213.$URIBase1 = "";
19138 // 14834
19139 o213.$URIBase2 = "";
19140 // 14835
19141 o213.$URIBase3 = "/ajax/marketing/tour/privacy_dialog.php";
19142 // 14837
19143 o214 = {};
19144 // 14838
19145 o213.$URIBase5 = o214;
19146 // undefined
19147 o214 = null;
19148 // 14839
19149 o213.$URIBase4 = "";
19150 // 14840
19151 f974244559_2135.returns.push("/ajax/marketing/tour/privacy_dialog.php");
19152 // 14841
19153 f974244559_2133.returns.push("/ajax/marketing/tour/privacy_dialog.php");
19154 // 14843
19155 f974244559_12.returns.push(56);
19156 // 14847
19157 o214 = {};
19158 // 14848
19159 f974244559_478.returns.push(o214);
19160 // 14850
19161 f974244559_482.returns.push(o214);
19162 // undefined
19163 o214 = null;
19164 // 14851
19165 f974244559_2129.returns.push(undefined);
19166 // 14852
19167 f974244559_2124.returns.push(undefined);
19168 // 14855
19169 o212.asynchronous = true;
19170 // undefined
19171 o212 = null;
19172 // 14858
19173 f974244559_2125.returns.push(true);
19174 // 14859
19175 // 14860
19176 o212 = {};
19177 // 14864
19178 o214 = {};
19179 // 14868
19180 o215 = {};
19181 // 14873
19182 o2.getResponseHeader = f974244559_2123;
19183 // 14876
19184 f974244559_2123.returns.push("T67gpWC5IAYVP1Z5glZSxzp2ls3cEwqY7HXYCbjpiLQ=");
19185 // 14879
19186 f974244559_2123.returns.push("T67gpWC5IAYVP1Z5glZSxzp2ls3cEwqY7HXYCbjpiLQ=");
19187 // 14880
19188 // 14882
19189 o2.JSBNG__status = 200;
19190 // 14886
19191 f974244559_471.returns.push(1373491298636);
19192 // 14887
19193 o96._handleXHRResponse = f974244559_2124;
19194 // 14889
19195 o96.getOption = f974244559_2125;
19196 // 14890
19197 o216 = {};
19198 // 14891
19199 o96.option = o216;
19200 // 14892
19201 o216.suppressEvaluation = false;
19202 // 14895
19203 f974244559_2125.returns.push(false);
19204 // 14896
19205 o2.responseText = "for (;;);{\"__ar\":1,\"payload\":[],\"bootloadable\":{},\"ixData\":[]}";
19206 // 14897
19207 o96._unshieldResponseText = f974244559_2127;
19208 // 14898
19209 f974244559_2127.returns.push("{\"__ar\":1,\"payload\":[],\"bootloadable\":{},\"ixData\":[]}");
19210 // 14899
19211 o96._interpretResponse = f974244559_2128;
19212 // 14900
19213 f974244559_2128.returns.push({__JSBNG_unknown_object:true});
19214 // 14901
19215 o96.invokeResponseHandler = f974244559_2129;
19216 // 14902
19217 o96.handler = null;
19218 // 14903
19219 o96.errorHandler = f974244559_2130;
19220 // 14904
19221 o96._isRelevant = f974244559_2131;
19222 // 14905
19223 o96._allowCrossPageTransition = void 0;
19224 // 14906
19225 o96.id = 5;
19226 // 14908
19227 f974244559_2131.returns.push(true);
19228 // 14909
19229 o96._dispatchResponse = f974244559_2132;
19230 // 14911
19231 o96.preBootloadHandler = void 0;
19232 // 14912
19233 o96.getURI = f974244559_2133;
19234 // 14913
19235 o217 = {};
19236 // 14914
19237 o96.uri = o217;
19238 // 14916
19239 o217.$URIBase0 = "";
19240 // 14917
19241 o217.$URIBase1 = "";
19242 // 14918
19243 o217.$URIBase2 = "";
19244 // 14919
19245 o217.$URIBase3 = "/ajax/chat/imps_logging.php";
19246 // 14921
19247 o218 = {};
19248 // 14922
19249 o217.$URIBase5 = o218;
19250 // undefined
19251 o218 = null;
19252 // 14923
19253 o217.$URIBase4 = "";
19254 // 14924
19255 f974244559_2135.returns.push("/ajax/chat/imps_logging.php");
19256 // 14925
19257 f974244559_2133.returns.push("/ajax/chat/imps_logging.php");
19258 // 14927
19259 f974244559_12.returns.push(57);
19260 // 14931
19261 o218 = {};
19262 // 14932
19263 f974244559_478.returns.push(o218);
19264 // 14934
19265 f974244559_482.returns.push(o218);
19266 // undefined
19267 o218 = null;
19268 // 14935
19269 f974244559_2129.returns.push(undefined);
19270 // 14936
19271 f974244559_2124.returns.push(undefined);
19272 // 14939
19273 o216.asynchronous = true;
19274 // undefined
19275 o216 = null;
19276 // 14942
19277 f974244559_2125.returns.push(true);
19278 // 14943
19279 // 14944
19280 o216 = {};
19281 // 14945
19282 o218 = {};
19283 // undefined
19284 o218 = null;
19285 // 14946
19286 f974244559_2147 = function() { return f974244559_2147.returns[f974244559_2147.inst++]; };
19287 f974244559_2147.returns = [];
19288 f974244559_2147.inst = 0;
19289 // 14947
19290 o216._onReadyState = f974244559_2147;
19291 // 14949
19292 o216.xhr = o205;
19293 // 14951
19294 o205.readyState = 2;
19295 // 14952
19296 o216.JSBNG__status = null;
19297 // 14953
19298 f974244559_2148 = function() { return f974244559_2148.returns[f974244559_2148.inst++]; };
19299 f974244559_2148.returns = [];
19300 f974244559_2148.inst = 0;
19301 // 14954
19302 o216._parseStatus = f974244559_2148;
19303 // 14956
19304 o205.JSBNG__status = 404;
19305 // 14957
19306 // 14959
19307 o205.statusText = "Not Found";
19308 // 14969
19309 // 14970
19310 o216.errorText = void 0;
19311 // 14971
19312 // 14972
19313 f974244559_2148.returns.push(undefined);
19314 // 14974
19315 f974244559_471.returns.push(1373491298650);
19316 // 14975
19317 o216._sentAt = 1373491297587;
19318 // 14976
19319 // 14977
19320 f974244559_2149 = function() { return f974244559_2149.returns[f974244559_2149.inst++]; };
19321 f974244559_2149.returns = [];
19322 f974244559_2149.inst = 0;
19323 // 14978
19324 o216._call = f974244559_2149;
19325 // 14979
19326 f974244559_2150 = function() { return f974244559_2150.returns[f974244559_2150.inst++]; };
19327 f974244559_2150.returns = [];
19328 f974244559_2150.inst = 0;
19329 // 14980
19330 o216.onError = f974244559_2150;
19331 // 14982
19332 f974244559_2150.returns.push(undefined);
19333 // 14983
19334 f974244559_2149.returns.push(undefined);
19335 // 14984
19336 // 14985
19337 // 14986
19338 // 14987
19339 o216._timer = 33;
19340 // 14988
19341 f974244559_14.returns.push(undefined);
19342 // 14993
19343 f974244559_2151 = function() { return f974244559_2151.returns[f974244559_2151.inst++]; };
19344 f974244559_2151.returns = [];
19345 f974244559_2151.inst = 0;
19346 // 14994
19347 o205.abort = f974244559_2151;
19348 // undefined
19349 o205 = null;
19350 // 14995
19351 f974244559_2151.returns.push(undefined);
19352 // 14996
19353 // 14997
19354 f974244559_2147.returns.push(undefined);
19355 // 14998
19356 o205 = {};
19357 // undefined
19358 o205 = null;
19359 // 15003
19360 f974244559_471.returns.push(1373491298653);
19361 // 15005
19362 // 15007
19363 f974244559_2149.returns.push(undefined);
19364 // 15008
19365 // 15009
19366 // 15010
19367 // 15012
19368 f974244559_14.returns.push(undefined);
19369 // 15013
19370 f974244559_2147.returns.push(undefined);
19371 // 15014
19372 o205 = {};
19373 // 15018
19374 o218 = {};
19375 // 15022
19376 o219 = {};
19377 // 15027
19378 o1.getResponseHeader = f974244559_2123;
19379 // 15030
19380 f974244559_2123.returns.push("Q7JhPdiUZ/m8mUAM2lMAqlCXYkYHten/WqnLUu7jOOE=");
19381 // 15033
19382 f974244559_2123.returns.push("Q7JhPdiUZ/m8mUAM2lMAqlCXYkYHten/WqnLUu7jOOE=");
19383 // 15034
19384 // 15036
19385 o1.JSBNG__status = 200;
19386 // 15040
19387 f974244559_471.returns.push(1373491298661);
19388 // 15041
19389 o122._handleXHRResponse = f974244559_2124;
19390 // 15043
19391 o122.getOption = f974244559_2125;
19392 // 15044
19393 o220 = {};
19394 // 15045
19395 o122.option = o220;
19396 // 15046
19397 o220.suppressEvaluation = false;
19398 // 15049
19399 f974244559_2125.returns.push(false);
19400 // 15050
19401 o1.responseText = "for (;;);{\"__ar\":1,\"payload\":{\"keys\":[]},\"bootloadable\":{},\"ixData\":[]}";
19402 // 15051
19403 o122._unshieldResponseText = f974244559_2127;
19404 // 15052
19405 f974244559_2127.returns.push("{\"__ar\":1,\"payload\":{\"keys\":[]},\"bootloadable\":{},\"ixData\":[]}");
19406 // 15053
19407 o122._interpretResponse = f974244559_2128;
19408 // 15054
19409 f974244559_2128.returns.push({__JSBNG_unknown_object:true});
19410 // 15055
19411 o122.invokeResponseHandler = f974244559_2129;
19412 // 15056
19413 f974244559_2157 = function() { return f974244559_2157.returns[f974244559_2157.inst++]; };
19414 f974244559_2157.returns = [];
19415 f974244559_2157.inst = 0;
19416 // 15057
19417 o122.handler = f974244559_2157;
19418 // 15058
19419 o122._isRelevant = f974244559_2131;
19420 // 15059
19421 o122._allowCrossPageTransition = void 0;
19422 // 15060
19423 o122.id = 3;
19424 // 15062
19425 f974244559_2131.returns.push(true);
19426 // 15063
19427 o122._dispatchResponse = f974244559_2132;
19428 // 15065
19429 o122.preBootloadHandler = void 0;
19430 // 15066
19431 o122.getURI = f974244559_2133;
19432 // 15067
19433 o221 = {};
19434 // 15068
19435 o122.uri = o221;
19436 // 15070
19437 o221.$URIBase0 = "";
19438 // 15071
19439 o221.$URIBase1 = "";
19440 // 15072
19441 o221.$URIBase2 = "";
19442 // 15073
19443 o221.$URIBase3 = "/ajax/webstorage/process_keys.php";
19444 // 15075
19445 o222 = {};
19446 // 15076
19447 o221.$URIBase5 = o222;
19448 // undefined
19449 o222 = null;
19450 // 15077
19451 o221.$URIBase4 = "";
19452 // 15078
19453 f974244559_2135.returns.push("/ajax/webstorage/process_keys.php");
19454 // 15079
19455 f974244559_2133.returns.push("/ajax/webstorage/process_keys.php");
19456 // 15081
19457 f974244559_12.returns.push(58);
19458 // 15085
19459 o222 = {};
19460 // 15086
19461 f974244559_478.returns.push(o222);
19462 // 15088
19463 f974244559_482.returns.push(o222);
19464 // undefined
19465 o222 = null;
19466 // 15089
19467 f974244559_2129.returns.push(undefined);
19468 // 15090
19469 f974244559_2124.returns.push(undefined);
19470 // 15093
19471 o220.asynchronous = true;
19472 // undefined
19473 o220 = null;
19474 // 15096
19475 f974244559_2125.returns.push(true);
19476 // 15097
19477 // 15098
19478 f974244559_12.returns.push(59);
19479 // 15102
19480 f974244559_2161 = function() { return f974244559_2161.returns[f974244559_2161.inst++]; };
19481 f974244559_2161.returns = [];
19482 f974244559_2161.inst = 0;
19483 // 15103
19484 o200.clearStatusIndicator = f974244559_2161;
19485 // 15104
19486 f974244559_2162 = function() { return f974244559_2162.returns[f974244559_2162.inst++]; };
19487 f974244559_2162.returns = [];
19488 f974244559_2162.inst = 0;
19489 // 15105
19490 o200.getStatusElement = f974244559_2162;
19491 // 15106
19492 o200.statusElement = null;
19493 // 15107
19494 f974244559_2162.returns.push(null);
19495 // 15108
19496 f974244559_2161.returns.push(undefined);
19497 // 15113
19498 f974244559_2131.returns.push(true);
19499 // 15114
19500 o200.initialHandler = f974244559_2110;
19501 // 15115
19502 f974244559_2110.returns.push(undefined);
19503 // 15116
19504 o200.timer = null;
19505 // 15117
19506 f974244559_14.returns.push(undefined);
19507 // 15119
19508 f974244559_2163 = function() { return f974244559_2163.returns[f974244559_2163.inst++]; };
19509 f974244559_2163.returns = [];
19510 f974244559_2163.inst = 0;
19511 // 15120
19512 o200._handleJSResponse = f974244559_2163;
19513 // 15121
19514 f974244559_2164 = function() { return f974244559_2164.returns[f974244559_2164.inst++]; };
19515 f974244559_2164.returns = [];
19516 f974244559_2164.inst = 0;
19517 // 15122
19518 o200.getRelativeTo = f974244559_2164;
19519 // 15123
19520 o200.relativeTo = null;
19521 // 15124
19522 f974244559_2164.returns.push(null);
19523 // 15129
19524 o220 = {};
19525 // 15130
19526 f974244559_480.returns.push(o220);
19527 // 15131
19528 // 15132
19529 // 15133
19530 o220.getElementsByTagName = f974244559_514;
19531 // 15134
19532 o222 = {};
19533 // 15135
19534 f974244559_514.returns.push(o222);
19535 // 15136
19536 o222.length = 0;
19537 // undefined
19538 o222 = null;
19539 // 15138
19540 o222 = {};
19541 // 15139
19542 o220.childNodes = o222;
19543 // undefined
19544 o220 = null;
19545 // 15140
19546 o222.item = f974244559_517;
19547 // 15141
19548 o222.length = 1;
19549 // 15142
19550 o220 = {};
19551 // 15143
19552 o222["0"] = o220;
19553 // undefined
19554 o222 = null;
19555 // 15144
19556 o220.getElementsByTagName = f974244559_514;
19557 // 15146
19558 o220.querySelectorAll = f974244559_523;
19559 // 15147
19560 o222 = {};
19561 // 15148
19562 f974244559_523.returns.push(o222);
19563 // 15149
19564 o222.length = 1;
19565 // 15150
19566 o223 = {};
19567 // 15151
19568 o222["0"] = o223;
19569 // undefined
19570 o222 = null;
19571 // undefined
19572 o223 = null;
19573 // 15152
19574 o220.__html = void 0;
19575 // 15153
19576 o220.mountComponentIntoNode = void 0;
19577 // 15154
19578 o222 = {};
19579 // 15155
19580 o220.classList = o222;
19581 // 15157
19582 o222.add = f974244559_1110;
19583 // undefined
19584 o222 = null;
19585 // 15158
19586 f974244559_1110.returns.push(undefined);
19587 // 15160
19588 o222 = {};
19589 // 15161
19590 f974244559_480.returns.push(o222);
19591 // 15162
19592 // 15163
19593 o222.firstChild = null;
19594 // 15166
19595 o223 = {};
19596 // 15167
19597 f974244559_478.returns.push(o223);
19598 // 15169
19599 o222.appendChild = f974244559_482;
19600 // 15170
19601 f974244559_482.returns.push(o223);
19602 // undefined
19603 o223 = null;
19604 // 15172
19605 o223 = {};
19606 // 15173
19607 f974244559_480.returns.push(o223);
19608 // 15174
19609 // 15175
19610 o223.firstChild = null;
19611 // 15176
19612 o222.__html = void 0;
19613 // 15178
19614 o224 = {};
19615 // 15179
19616 f974244559_478.returns.push(o224);
19617 // 15181
19618 o223.appendChild = f974244559_482;
19619 // 15182
19620 f974244559_482.returns.push(o224);
19621 // undefined
19622 o224 = null;
19623 // 15183
19624 o224 = {};
19625 // 15184
19626 o223.classList = o224;
19627 // 15186
19628 o224.add = f974244559_1110;
19629 // 15187
19630 f974244559_1110.returns.push(undefined);
19631 // 15188
19632 o225 = {};
19633 // undefined
19634 fo974244559_2172_style = function() { return fo974244559_2172_style.returns[fo974244559_2172_style.inst++]; };
19635 fo974244559_2172_style.returns = [];
19636 fo974244559_2172_style.inst = 0;
19637 defineGetter(o222, "style", fo974244559_2172_style, undefined);
19638 // undefined
19639 fo974244559_2172_style.returns.push(o225);
19640 // 15190
19641 // undefined
19642 o225 = null;
19643 // 15194
19644 f974244559_1110.returns.push(undefined);
19645 // 15195
19646 o223.__FB_TOKEN = void 0;
19647 // 15196
19648 // 15197
19649 f974244559_2178 = function() { return f974244559_2178.returns[f974244559_2178.inst++]; };
19650 f974244559_2178.returns = [];
19651 f974244559_2178.inst = 0;
19652 // 15198
19653 f974244559_2110.thatReturnsArgument = f974244559_2178;
19654 // 15199
19655 f974244559_2178.returns.push("aftershow");
19656 // 15201
19657 f974244559_2178.returns.push("aftershow");
19658 // 15203
19659 f974244559_2178.returns.push("show");
19660 // 15204
19661 f974244559_2178.returns.push("hide");
19662 // 15205
19663 f974244559_2178.returns.push("reposition");
19664 // 15206
19665 o223.nodeName = "DIV";
19666 // 15207
19667 o223.getAttribute = f974244559_500;
19668 // 15208
19669 o223.hasAttribute = f974244559_527;
19670 // 15210
19671 f974244559_527.returns.push(false);
19672 // 15211
19673 o223.JSBNG__addEventListener = f974244559_472;
19674 // 15213
19675 f974244559_472.returns.push(undefined);
19676 // 15214
19677 o223.JSBNG__onclick = null;
19678 // 15219
19679 f974244559_472.returns.push(undefined);
19680 // 15220
19681 o223.JSBNG__onsubmit = null;
19682 // 15225
19683 f974244559_472.returns.push(undefined);
19684 // 15226
19685 o223.JSBNG__onsuccess = void 0;
19686 // 15231
19687 f974244559_472.returns.push(undefined);
19688 // 15232
19689 o223.JSBNG__onerror = null;
19690 // 15235
19691 f974244559_2178.returns.push("mouseenter");
19692 // 15237
19693 f974244559_2178.returns.push("mouseleave");
19694 // 15239
19695 f974244559_2178.returns.push("hide");
19696 // 15241
19697 f974244559_2178.returns.push("starthide");
19698 // 15243
19699 f974244559_2178.returns.push("hide");
19700 // 15245
19701 f974244559_2178.returns.push("hide");
19702 // 15246
19703 f974244559_12.returns.push(60);
19704 // 15248
19705 f974244559_2178.returns.push("beforeshow");
19706 // 15250
19707 f974244559_2178.returns.push("show");
19708 // 15252
19709 f974244559_2178.returns.push("adjust");
19710 // 15254
19711 f974244559_2178.returns.push("success");
19712 // 15256
19713 f974244559_2178.returns.push("adjust");
19714 // 15257
19715 f974244559_2178.returns.push("reposition");
19716 // 15260
19717 o225 = {};
19718 // undefined
19719 fo974244559_2174_style = function() { return fo974244559_2174_style.returns[fo974244559_2174_style.inst++]; };
19720 fo974244559_2174_style.returns = [];
19721 fo974244559_2174_style.inst = 0;
19722 defineGetter(o223, "style", fo974244559_2174_style, undefined);
19723 // undefined
19724 fo974244559_2174_style.returns.push(o225);
19725 // 15262
19726 // undefined
19727 fo974244559_2174_style.returns.push(o225);
19728 // 15264
19729 // undefined
19730 fo974244559_2174_style.returns.push(o225);
19731 // 15266
19732 // undefined
19733 o225 = null;
19734 // 15269
19735 o224.remove = f974244559_1244;
19736 // undefined
19737 o224 = null;
19738 // 15270
19739 f974244559_1244.returns.push(undefined);
19740 // 15272
19741 o0.getAttributeNode = void 0;
19742 // 15275
19743 o224 = {};
19744 // 15276
19745 f974244559_475.returns.push(o224);
19746 // 15277
19747 o224.length = 1806;
19748 // 15278
19749 o224["0"] = o8;
19750 // 15281
19751 o225 = {};
19752 // 15282
19753 f974244559_519.returns.push(o225);
19754 // 15283
19755 o225.value = "facebook";
19756 // undefined
19757 o225 = null;
19758 // 15285
19759 o224["1"] = o9;
19760 // 15286
19761 o9.getAttributeNode = f974244559_519;
19762 // undefined
19763 o9 = null;
19764 // 15288
19765 f974244559_519.returns.push(null);
19766 // 15290
19767 o9 = {};
19768 // 15291
19769 o224["2"] = o9;
19770 // 15292
19771 o9.getAttributeNode = f974244559_519;
19772 // undefined
19773 o9 = null;
19774 // 15294
19775 f974244559_519.returns.push(null);
19776 // 15296
19777 o9 = {};
19778 // 15297
19779 o224["3"] = o9;
19780 // 15298
19781 o9.getAttributeNode = f974244559_519;
19782 // undefined
19783 o9 = null;
19784 // 15300
19785 f974244559_519.returns.push(null);
19786 // 15302
19787 o9 = {};
19788 // 15303
19789 o224["4"] = o9;
19790 // 15304
19791 o9.getAttributeNode = f974244559_519;
19792 // undefined
19793 o9 = null;
19794 // 15306
19795 f974244559_519.returns.push(null);
19796 // 15308
19797 o9 = {};
19798 // 15309
19799 o224["5"] = o9;
19800 // 15310
19801 o9.getAttributeNode = f974244559_519;
19802 // undefined
19803 o9 = null;
19804 // 15312
19805 f974244559_519.returns.push(null);
19806 // 15314
19807 o9 = {};
19808 // 15315
19809 o224["6"] = o9;
19810 // 15316
19811 o9.getAttributeNode = f974244559_519;
19812 // undefined
19813 o9 = null;
19814 // 15318
19815 f974244559_519.returns.push(null);
19816 // 15320
19817 o9 = {};
19818 // 15321
19819 o224["7"] = o9;
19820 // 15322
19821 o9.getAttributeNode = f974244559_519;
19822 // undefined
19823 o9 = null;
19824 // 15324
19825 f974244559_519.returns.push(null);
19826 // 15326
19827 o9 = {};
19828 // 15327
19829 o224["8"] = o9;
19830 // 15328
19831 o9.getAttributeNode = f974244559_519;
19832 // undefined
19833 o9 = null;
19834 // 15330
19835 f974244559_519.returns.push(null);
19836 // 15332
19837 o9 = {};
19838 // 15333
19839 o224["9"] = o9;
19840 // 15334
19841 o9.getAttributeNode = f974244559_519;
19842 // undefined
19843 o9 = null;
19844 // 15336
19845 f974244559_519.returns.push(null);
19846 // 15338
19847 o9 = {};
19848 // 15339
19849 o224["10"] = o9;
19850 // 15340
19851 o9.getAttributeNode = f974244559_519;
19852 // undefined
19853 o9 = null;
19854 // 15342
19855 f974244559_519.returns.push(null);
19856 // 15344
19857 o9 = {};
19858 // 15345
19859 o224["11"] = o9;
19860 // 15346
19861 o9.getAttributeNode = f974244559_519;
19862 // undefined
19863 o9 = null;
19864 // 15348
19865 o9 = {};
19866 // 15349
19867 f974244559_519.returns.push(o9);
19868 // 15350
19869 o9.value = "meta_referrer";
19870 // undefined
19871 o9 = null;
19872 // 15352
19873 o224["12"] = o14;
19874 // 15353
19875 o14.getAttributeNode = f974244559_519;
19876 // undefined
19877 o14 = null;
19878 // 15355
19879 f974244559_519.returns.push(null);
19880 // 15357
19881 o224["13"] = o15;
19882 // 15358
19883 o15.getAttributeNode = f974244559_519;
19884 // undefined
19885 o15 = null;
19886 // 15360
19887 f974244559_519.returns.push(null);
19888 // 15362
19889 o224["14"] = o16;
19890 // 15363
19891 o16.getAttributeNode = f974244559_519;
19892 // undefined
19893 o16 = null;
19894 // 15365
19895 f974244559_519.returns.push(null);
19896 // 15367
19897 o224["15"] = o17;
19898 // 15368
19899 o17.getAttributeNode = f974244559_519;
19900 // undefined
19901 o17 = null;
19902 // 15370
19903 f974244559_519.returns.push(null);
19904 // 15372
19905 o224["16"] = o18;
19906 // 15373
19907 o18.getAttributeNode = f974244559_519;
19908 // undefined
19909 o18 = null;
19910 // 15375
19911 f974244559_519.returns.push(null);
19912 // 15377
19913 o224["17"] = o19;
19914 // 15378
19915 o19.getAttributeNode = f974244559_519;
19916 // undefined
19917 o19 = null;
19918 // 15380
19919 f974244559_519.returns.push(null);
19920 // 15382
19921 o9 = {};
19922 // 15383
19923 o224["18"] = o9;
19924 // 15384
19925 o9.getAttributeNode = f974244559_519;
19926 // undefined
19927 o9 = null;
19928 // 15386
19929 f974244559_519.returns.push(null);
19930 // 15388
19931 o9 = {};
19932 // 15389
19933 o224["19"] = o9;
19934 // 15390
19935 o9.getAttributeNode = f974244559_519;
19936 // undefined
19937 o9 = null;
19938 // 15392
19939 f974244559_519.returns.push(null);
19940 // 15394
19941 o9 = {};
19942 // 15395
19943 o224["20"] = o9;
19944 // 15396
19945 o9.getAttributeNode = f974244559_519;
19946 // undefined
19947 o9 = null;
19948 // 15398
19949 f974244559_519.returns.push(null);
19950 // 15400
19951 o224["21"] = o10;
19952 // 15401
19953 o10.getAttributeNode = f974244559_519;
19954 // undefined
19955 o10 = null;
19956 // 15403
19957 f974244559_519.returns.push(null);
19958 // 15405
19959 o224["22"] = o11;
19960 // 15406
19961 o11.getAttributeNode = f974244559_519;
19962 // undefined
19963 o11 = null;
19964 // 15408
19965 f974244559_519.returns.push(null);
19966 // 15410
19967 o224["23"] = o12;
19968 // 15411
19969 o12.getAttributeNode = f974244559_519;
19970 // undefined
19971 o12 = null;
19972 // 15413
19973 f974244559_519.returns.push(null);
19974 // 15415
19975 o9 = {};
19976 // 15416
19977 o224["24"] = o9;
19978 // 15417
19979 o9.getAttributeNode = f974244559_519;
19980 // undefined
19981 o9 = null;
19982 // 15419
19983 f974244559_519.returns.push(null);
19984 // 15421
19985 o9 = {};
19986 // 15422
19987 o224["25"] = o9;
19988 // 15423
19989 o9.getAttributeNode = f974244559_519;
19990 // undefined
19991 o9 = null;
19992 // 15425
19993 o9 = {};
19994 // 15426
19995 f974244559_519.returns.push(o9);
19996 // 15427
19997 o9.value = "pageTitle";
19998 // undefined
19999 o9 = null;
20000 // 15429
20001 o224["26"] = o20;
20002 // 15430
20003 o20.getAttributeNode = f974244559_519;
20004 // undefined
20005 o20 = null;
20006 // 15432
20007 f974244559_519.returns.push(null);
20008 // 15434
20009 o9 = {};
20010 // 15435
20011 o224["27"] = o9;
20012 // 15436
20013 o9.getAttributeNode = f974244559_519;
20014 // undefined
20015 o9 = null;
20016 // 15438
20017 f974244559_519.returns.push(null);
20018 // 15440
20019 o224["28"] = o21;
20020 // 15441
20021 o21.getAttributeNode = f974244559_519;
20022 // undefined
20023 o21 = null;
20024 // 15443
20025 f974244559_519.returns.push(null);
20026 // 15445
20027 o224["29"] = o22;
20028 // 15446
20029 o22.getAttributeNode = f974244559_519;
20030 // undefined
20031 o22 = null;
20032 // 15448
20033 f974244559_519.returns.push(null);
20034 // 15450
20035 o224["30"] = o23;
20036 // 15451
20037 o23.getAttributeNode = f974244559_519;
20038 // undefined
20039 o23 = null;
20040 // 15453
20041 f974244559_519.returns.push(null);
20042 // 15455
20043 o9 = {};
20044 // 15456
20045 o224["31"] = o9;
20046 // 15457
20047 o9.getAttributeNode = f974244559_519;
20048 // undefined
20049 o9 = null;
20050 // 15459
20051 f974244559_519.returns.push(null);
20052 // 15461
20053 o224["32"] = o26;
20054 // 15462
20055 o26.getAttributeNode = f974244559_519;
20056 // undefined
20057 o26 = null;
20058 // 15464
20059 f974244559_519.returns.push(null);
20060 // 15466
20061 o224["33"] = o49;
20062 // 15467
20063 o49.getAttributeNode = f974244559_519;
20064 // undefined
20065 o49 = null;
20066 // 15469
20067 f974244559_519.returns.push(null);
20068 // 15471
20069 o224["34"] = o58;
20070 // 15472
20071 o58.getAttributeNode = f974244559_519;
20072 // undefined
20073 o58 = null;
20074 // 15474
20075 f974244559_519.returns.push(null);
20076 // 15476
20077 o224["35"] = o63;
20078 // 15477
20079 o63.getAttributeNode = f974244559_519;
20080 // undefined
20081 o63 = null;
20082 // 15479
20083 f974244559_519.returns.push(null);
20084 // 15481
20085 o224["36"] = o123;
20086 // 15482
20087 o123.getAttributeNode = f974244559_519;
20088 // undefined
20089 o123 = null;
20090 // 15484
20091 f974244559_519.returns.push(null);
20092 // 15486
20093 o224["37"] = o124;
20094 // 15487
20095 o124.getAttributeNode = f974244559_519;
20096 // undefined
20097 o124 = null;
20098 // 15489
20099 f974244559_519.returns.push(null);
20100 // 15491
20101 o224["38"] = o125;
20102 // 15492
20103 o125.getAttributeNode = f974244559_519;
20104 // undefined
20105 o125 = null;
20106 // 15494
20107 f974244559_519.returns.push(null);
20108 // 15496
20109 o224["39"] = o126;
20110 // 15497
20111 o126.getAttributeNode = f974244559_519;
20112 // undefined
20113 o126 = null;
20114 // 15499
20115 f974244559_519.returns.push(null);
20116 // 15501
20117 o224["40"] = o127;
20118 // 15502
20119 o127.getAttributeNode = f974244559_519;
20120 // undefined
20121 o127 = null;
20122 // 15504
20123 f974244559_519.returns.push(null);
20124 // 15506
20125 o224["41"] = o128;
20126 // 15507
20127 o128.getAttributeNode = f974244559_519;
20128 // undefined
20129 o128 = null;
20130 // 15509
20131 f974244559_519.returns.push(null);
20132 // 15511
20133 o224["42"] = o129;
20134 // 15512
20135 o129.getAttributeNode = f974244559_519;
20136 // undefined
20137 o129 = null;
20138 // 15514
20139 f974244559_519.returns.push(null);
20140 // 15516
20141 o224["43"] = o130;
20142 // 15517
20143 o130.getAttributeNode = f974244559_519;
20144 // undefined
20145 o130 = null;
20146 // 15519
20147 f974244559_519.returns.push(null);
20148 // 15521
20149 o224["44"] = o131;
20150 // 15522
20151 o131.getAttributeNode = f974244559_519;
20152 // undefined
20153 o131 = null;
20154 // 15524
20155 f974244559_519.returns.push(null);
20156 // 15526
20157 o224["45"] = o132;
20158 // 15527
20159 o132.getAttributeNode = f974244559_519;
20160 // undefined
20161 o132 = null;
20162 // 15529
20163 f974244559_519.returns.push(null);
20164 // 15531
20165 o224["46"] = o133;
20166 // 15532
20167 o133.getAttributeNode = f974244559_519;
20168 // undefined
20169 o133 = null;
20170 // 15534
20171 f974244559_519.returns.push(null);
20172 // 15536
20173 o224["47"] = o134;
20174 // 15537
20175 o134.getAttributeNode = f974244559_519;
20176 // undefined
20177 o134 = null;
20178 // 15539
20179 f974244559_519.returns.push(null);
20180 // 15541
20181 o224["48"] = o135;
20182 // 15542
20183 o135.getAttributeNode = f974244559_519;
20184 // undefined
20185 o135 = null;
20186 // 15544
20187 f974244559_519.returns.push(null);
20188 // 15546
20189 o224["49"] = o25;
20190 // 15549
20191 f974244559_519.returns.push(null);
20192 // 15551
20193 o224["50"] = o76;
20194 // 15554
20195 f974244559_519.returns.push(null);
20196 // 15556
20197 o224["51"] = o195;
20198 // 15557
20199 o195.getAttributeNode = f974244559_519;
20200 // undefined
20201 o195 = null;
20202 // 15559
20203 o9 = {};
20204 // 15560
20205 f974244559_519.returns.push(o9);
20206 // 15561
20207 o9.value = "pagelet_bluebar";
20208 // undefined
20209 o9 = null;
20210 // 15563
20211 o224["52"] = o194;
20212 // 15564
20213 o194.getAttributeNode = f974244559_519;
20214 // 15566
20215 o9 = {};
20216 // 15567
20217 f974244559_519.returns.push(o9);
20218 // 15568
20219 o9.value = "blueBarHolder";
20220 // undefined
20221 o9 = null;
20222 // 15570
20223 o224["53"] = o193;
20224 // 15571
20225 o193.getAttributeNode = f974244559_519;
20226 // 15573
20227 o9 = {};
20228 // 15574
20229 f974244559_519.returns.push(o9);
20230 // 15575
20231 o9.value = "blueBar";
20232 // undefined
20233 o9 = null;
20234 // 15577
20235 o224["54"] = o192;
20236 // 15578
20237 o192.getAttributeNode = f974244559_519;
20238 // 15580
20239 o9 = {};
20240 // 15581
20241 f974244559_519.returns.push(o9);
20242 // 15582
20243 o9.value = "pageHead";
20244 // undefined
20245 o9 = null;
20246 // 15584
20247 o9 = {};
20248 // 15585
20249 o224["55"] = o9;
20250 // 15586
20251 o9.getAttributeNode = f974244559_519;
20252 // undefined
20253 o9 = null;
20254 // 15588
20255 o9 = {};
20256 // 15589
20257 f974244559_519.returns.push(o9);
20258 // 15590
20259 o9.value = "pageLogo";
20260 // undefined
20261 o9 = null;
20262 // 15592
20263 o9 = {};
20264 // 15593
20265 o224["56"] = o9;
20266 // 15594
20267 o9.getAttributeNode = f974244559_519;
20268 // undefined
20269 o9 = null;
20270 // 15596
20271 f974244559_519.returns.push(null);
20272 // 15598
20273 o224["57"] = o189;
20274 // 15599
20275 o189.getAttributeNode = f974244559_519;
20276 // undefined
20277 o189 = null;
20278 // 15601
20279 o9 = {};
20280 // 15602
20281 f974244559_519.returns.push(o9);
20282 // 15603
20283 o9.value = "jewelContainer";
20284 // undefined
20285 o9 = null;
20286 // 15605
20287 o224["58"] = o143;
20288 // 15606
20289 o143.getAttributeNode = f974244559_519;
20290 // undefined
20291 o143 = null;
20292 // 15608
20293 o9 = {};
20294 // 15609
20295 f974244559_519.returns.push(o9);
20296 // 15610
20297 o9.value = "fbRequestsJewel";
20298 // undefined
20299 o9 = null;
20300 // 15612
20301 o9 = {};
20302 // 15613
20303 o224["59"] = o9;
20304 // 15614
20305 o9.getAttributeNode = f974244559_519;
20306 // undefined
20307 o9 = null;
20308 // 15616
20309 f974244559_519.returns.push(null);
20310 // 15618
20311 o9 = {};
20312 // 15619
20313 o224["60"] = o9;
20314 // 15620
20315 o9.getAttributeNode = f974244559_519;
20316 // undefined
20317 o9 = null;
20318 // 15622
20319 o9 = {};
20320 // 15623
20321 f974244559_519.returns.push(o9);
20322 // 15624
20323 o9.value = "requestsCountWrapper";
20324 // undefined
20325 o9 = null;
20326 // 15626
20327 o9 = {};
20328 // 15627
20329 o224["61"] = o9;
20330 // 15628
20331 o9.getAttributeNode = f974244559_519;
20332 // undefined
20333 o9 = null;
20334 // 15630
20335 o9 = {};
20336 // 15631
20337 f974244559_519.returns.push(o9);
20338 // 15632
20339 o9.value = "requestsCountValue";
20340 // undefined
20341 o9 = null;
20342 // 15634
20343 o9 = {};
20344 // 15635
20345 o224["62"] = o9;
20346 // 15636
20347 o9.getAttributeNode = f974244559_519;
20348 // undefined
20349 o9 = null;
20350 // 15638
20351 f974244559_519.returns.push(null);
20352 // 15640
20353 o224["63"] = o146;
20354 // 15641
20355 o146.getAttributeNode = f974244559_519;
20356 // undefined
20357 o146 = null;
20358 // 15643
20359 o9 = {};
20360 // 15644
20361 f974244559_519.returns.push(o9);
20362 // 15645
20363 o9.value = "fbRequestsFlyout";
20364 // undefined
20365 o9 = null;
20366 // 15647
20367 o9 = {};
20368 // 15648
20369 o224["64"] = o9;
20370 // 15649
20371 o9.getAttributeNode = f974244559_519;
20372 // undefined
20373 o9 = null;
20374 // 15651
20375 f974244559_519.returns.push(null);
20376 // 15653
20377 o9 = {};
20378 // 15654
20379 o224["65"] = o9;
20380 // 15655
20381 o9.getAttributeNode = f974244559_519;
20382 // undefined
20383 o9 = null;
20384 // 15657
20385 f974244559_519.returns.push(null);
20386 // 15659
20387 o9 = {};
20388 // 15660
20389 o224["66"] = o9;
20390 // 15661
20391 o9.getAttributeNode = f974244559_519;
20392 // undefined
20393 o9 = null;
20394 // 15663
20395 f974244559_519.returns.push(null);
20396 // 15665
20397 o224["67"] = o108;
20398 // 15666
20399 o108.getAttributeNode = f974244559_519;
20400 // undefined
20401 o108 = null;
20402 // 15668
20403 o9 = {};
20404 // 15669
20405 f974244559_519.returns.push(o9);
20406 // 15670
20407 o9.value = "fbRequestsList";
20408 // undefined
20409 o9 = null;
20410 // 15672
20411 o9 = {};
20412 // 15673
20413 o224["68"] = o9;
20414 // 15674
20415 o9.getAttributeNode = f974244559_519;
20416 // undefined
20417 o9 = null;
20418 // 15676
20419 o9 = {};
20420 // 15677
20421 f974244559_519.returns.push(o9);
20422 // 15678
20423 o9.value = "fbRequestsJewelLoading";
20424 // undefined
20425 o9 = null;
20426 // 15680
20427 o9 = {};
20428 // 15681
20429 o224["69"] = o9;
20430 // 15682
20431 o9.getAttributeNode = f974244559_519;
20432 // undefined
20433 o9 = null;
20434 // 15684
20435 o9 = {};
20436 // 15685
20437 f974244559_519.returns.push(o9);
20438 // 15686
20439 o9.value = "fbRequestsJewelLoadingContent";
20440 // undefined
20441 o9 = null;
20442 // 15688
20443 o9 = {};
20444 // 15689
20445 o224["70"] = o9;
20446 // 15690
20447 o9.getAttributeNode = f974244559_519;
20448 // undefined
20449 o9 = null;
20450 // 15692
20451 f974244559_519.returns.push(null);
20452 // 15694
20453 o9 = {};
20454 // 15695
20455 o224["71"] = o9;
20456 // 15696
20457 o9.getAttributeNode = f974244559_519;
20458 // undefined
20459 o9 = null;
20460 // 15698
20461 f974244559_519.returns.push(null);
20462 // 15700
20463 o9 = {};
20464 // 15701
20465 o224["72"] = o9;
20466 // 15702
20467 o9.getAttributeNode = f974244559_519;
20468 // undefined
20469 o9 = null;
20470 // 15704
20471 f974244559_519.returns.push(null);
20472 // 15706
20473 o9 = {};
20474 // 15707
20475 o224["73"] = o9;
20476 // 15708
20477 o9.getAttributeNode = f974244559_519;
20478 // undefined
20479 o9 = null;
20480 // 15710
20481 f974244559_519.returns.push(null);
20482 // 15712
20483 o9 = {};
20484 // 15713
20485 o224["74"] = o9;
20486 // 15714
20487 o9.getAttributeNode = f974244559_519;
20488 // undefined
20489 o9 = null;
20490 // 15716
20491 f974244559_519.returns.push(null);
20492 // 15718
20493 o9 = {};
20494 // 15719
20495 o224["75"] = o9;
20496 // 15720
20497 o9.getAttributeNode = f974244559_519;
20498 // undefined
20499 o9 = null;
20500 // 15722
20501 f974244559_519.returns.push(null);
20502 // 15724
20503 o9 = {};
20504 // 15725
20505 o224["76"] = o9;
20506 // 15726
20507 o9.getAttributeNode = f974244559_519;
20508 // undefined
20509 o9 = null;
20510 // 15728
20511 f974244559_519.returns.push(null);
20512 // 15730
20513 o9 = {};
20514 // 15731
20515 o224["77"] = o9;
20516 // 15732
20517 o9.getAttributeNode = f974244559_519;
20518 // undefined
20519 o9 = null;
20520 // 15734
20521 f974244559_519.returns.push(null);
20522 // 15736
20523 o9 = {};
20524 // 15737
20525 o224["78"] = o9;
20526 // 15738
20527 o9.getAttributeNode = f974244559_519;
20528 // undefined
20529 o9 = null;
20530 // 15740
20531 f974244559_519.returns.push(null);
20532 // 15742
20533 o9 = {};
20534 // 15743
20535 o224["79"] = o9;
20536 // 15744
20537 o9.getAttributeNode = f974244559_519;
20538 // undefined
20539 o9 = null;
20540 // 15746
20541 f974244559_519.returns.push(null);
20542 // 15748
20543 o9 = {};
20544 // 15749
20545 o224["80"] = o9;
20546 // 15750
20547 o9.getAttributeNode = f974244559_519;
20548 // undefined
20549 o9 = null;
20550 // 15752
20551 f974244559_519.returns.push(null);
20552 // 15754
20553 o9 = {};
20554 // 15755
20555 o224["81"] = o9;
20556 // 15756
20557 o9.getAttributeNode = f974244559_519;
20558 // undefined
20559 o9 = null;
20560 // 15758
20561 f974244559_519.returns.push(null);
20562 // 15760
20563 o9 = {};
20564 // 15761
20565 o224["82"] = o9;
20566 // 15762
20567 o9.getAttributeNode = f974244559_519;
20568 // undefined
20569 o9 = null;
20570 // 15764
20571 f974244559_519.returns.push(null);
20572 // 15766
20573 o224["83"] = o142;
20574 // undefined
20575 o142 = null;
20576 // 15769
20577 o9 = {};
20578 // 15770
20579 f974244559_519.returns.push(o9);
20580 // 15771
20581 o9.value = "fbMessagesJewel";
20582 // undefined
20583 o9 = null;
20584 // 15773
20585 o224["84"] = o169;
20586 // undefined
20587 o169 = null;
20588 // 15776
20589 f974244559_519.returns.push(null);
20590 // 15778
20591 o224["85"] = o170;
20592 // undefined
20593 o170 = null;
20594 // 15781
20595 o9 = {};
20596 // 15782
20597 f974244559_519.returns.push(o9);
20598 // 15783
20599 o9.value = "mercurymessagesCountWrapper";
20600 // undefined
20601 o9 = null;
20602 // 15785
20603 o224["86"] = o171;
20604 // undefined
20605 o171 = null;
20606 // 15788
20607 o9 = {};
20608 // 15789
20609 f974244559_519.returns.push(o9);
20610 // 15790
20611 o9.value = "mercurymessagesCountValue";
20612 // undefined
20613 o9 = null;
20614 // 15792
20615 o9 = {};
20616 // 15793
20617 o224["87"] = o9;
20618 // 15794
20619 o9.getAttributeNode = f974244559_519;
20620 // undefined
20621 o9 = null;
20622 // 15796
20623 f974244559_519.returns.push(null);
20624 // 15798
20625 o224["88"] = o144;
20626 // undefined
20627 o144 = null;
20628 // 15801
20629 o9 = {};
20630 // 15802
20631 f974244559_519.returns.push(o9);
20632 // 15803
20633 o9.value = "fbMessagesFlyout";
20634 // undefined
20635 o9 = null;
20636 // 15805
20637 o224["89"] = o173;
20638 // undefined
20639 o173 = null;
20640 // 15808
20641 f974244559_519.returns.push(null);
20642 // 15810
20643 o224["90"] = o174;
20644 // undefined
20645 o174 = null;
20646 // 15813
20647 f974244559_519.returns.push(null);
20648 // 15815
20649 o224["91"] = o175;
20650 // undefined
20651 o175 = null;
20652 // 15818
20653 f974244559_519.returns.push(null);
20654 // 15820
20655 o224["92"] = o176;
20656 // undefined
20657 o176 = null;
20658 // 15823
20659 f974244559_519.returns.push(null);
20660 // 15825
20661 o224["93"] = o177;
20662 // undefined
20663 o177 = null;
20664 // 15828
20665 f974244559_519.returns.push(null);
20666 // 15830
20667 o224["94"] = o178;
20668 // undefined
20669 o178 = null;
20670 // 15833
20671 f974244559_519.returns.push(null);
20672 // 15835
20673 o224["95"] = o179;
20674 // undefined
20675 o179 = null;
20676 // 15838
20677 f974244559_519.returns.push(null);
20678 // 15840
20679 o224["96"] = o180;
20680 // undefined
20681 o180 = null;
20682 // 15843
20683 f974244559_519.returns.push(null);
20684 // 15845
20685 o224["97"] = o141;
20686 // undefined
20687 o141 = null;
20688 // 15848
20689 o9 = {};
20690 // 15849
20691 f974244559_519.returns.push(o9);
20692 // 15850
20693 o9.value = "u_0_4";
20694 // undefined
20695 o9 = null;
20696 // 15852
20697 o224["98"] = o181;
20698 // undefined
20699 o181 = null;
20700 // 15855
20701 f974244559_519.returns.push(null);
20702 // 15857
20703 o224["99"] = o182;
20704 // undefined
20705 o182 = null;
20706 // 15860
20707 f974244559_519.returns.push(null);
20708 // 15862
20709 o224["100"] = o183;
20710 // undefined
20711 o183 = null;
20712 // 15865
20713 f974244559_519.returns.push(null);
20714 // 15867
20715 o224["101"] = o184;
20716 // undefined
20717 o184 = null;
20718 // 15870
20719 f974244559_519.returns.push(null);
20720 // 15872
20721 o224["102"] = o185;
20722 // undefined
20723 o185 = null;
20724 // 15875
20725 f974244559_519.returns.push(null);
20726 // 15877
20727 o224["103"] = o186;
20728 // undefined
20729 o186 = null;
20730 // 15880
20731 f974244559_519.returns.push(null);
20732 // 15882
20733 o224["104"] = o187;
20734 // undefined
20735 o187 = null;
20736 // 15885
20737 f974244559_519.returns.push(null);
20738 // 15887
20739 o224["105"] = o79;
20740 // undefined
20741 o79 = null;
20742 // 15890
20743 o9 = {};
20744 // 15891
20745 f974244559_519.returns.push(o9);
20746 // 15892
20747 o9.value = "MercuryJewelThreadList";
20748 // undefined
20749 o9 = null;
20750 // 15894
20751 o224["106"] = o81;
20752 // 15895
20753 o81.getAttributeNode = f974244559_519;
20754 // undefined
20755 o81 = null;
20756 // 15897
20757 f974244559_519.returns.push(null);
20758 // 15899
20759 o224["107"] = o82;
20760 // 15900
20761 o82.getAttributeNode = f974244559_519;
20762 // undefined
20763 o82 = null;
20764 // 15902
20765 f974244559_519.returns.push(null);
20766 // 15904
20767 o224["108"] = o83;
20768 // 15905
20769 o83.getAttributeNode = f974244559_519;
20770 // undefined
20771 o83 = null;
20772 // 15907
20773 f974244559_519.returns.push(null);
20774 // 15909
20775 o9 = {};
20776 // 15910
20777 o224["109"] = o9;
20778 // 15911
20779 o9.getAttributeNode = f974244559_519;
20780 // undefined
20781 o9 = null;
20782 // 15913
20783 f974244559_519.returns.push(null);
20784 // 15915
20785 o9 = {};
20786 // 15916
20787 o224["110"] = o9;
20788 // 15917
20789 o9.getAttributeNode = f974244559_519;
20790 // undefined
20791 o9 = null;
20792 // 15919
20793 f974244559_519.returns.push(null);
20794 // 15921
20795 o9 = {};
20796 // 15922
20797 o224["111"] = o9;
20798 // 15923
20799 o9.getAttributeNode = f974244559_519;
20800 // undefined
20801 o9 = null;
20802 // 15925
20803 f974244559_519.returns.push(null);
20804 // 15927
20805 o9 = {};
20806 // 15928
20807 o224["112"] = o9;
20808 // 15929
20809 o9.getAttributeNode = f974244559_519;
20810 // undefined
20811 o9 = null;
20812 // 15931
20813 f974244559_519.returns.push(null);
20814 // 15933
20815 o9 = {};
20816 // 15934
20817 o224["113"] = o9;
20818 // 15935
20819 o9.getAttributeNode = f974244559_519;
20820 // undefined
20821 o9 = null;
20822 // 15937
20823 f974244559_519.returns.push(null);
20824 // 15939
20825 o9 = {};
20826 // 15940
20827 o224["114"] = o9;
20828 // 15941
20829 o9.getAttributeNode = f974244559_519;
20830 // undefined
20831 o9 = null;
20832 // 15943
20833 f974244559_519.returns.push(null);
20834 // 15945
20835 o9 = {};
20836 // 15946
20837 o224["115"] = o9;
20838 // 15947
20839 o9.getAttributeNode = f974244559_519;
20840 // undefined
20841 o9 = null;
20842 // 15949
20843 f974244559_519.returns.push(null);
20844 // 15951
20845 o9 = {};
20846 // 15952
20847 o224["116"] = o9;
20848 // 15953
20849 o9.getAttributeNode = f974244559_519;
20850 // undefined
20851 o9 = null;
20852 // 15955
20853 f974244559_519.returns.push(null);
20854 // 15957
20855 o9 = {};
20856 // 15958
20857 o224["117"] = o9;
20858 // 15959
20859 o9.getAttributeNode = f974244559_519;
20860 // undefined
20861 o9 = null;
20862 // 15961
20863 f974244559_519.returns.push(null);
20864 // 15963
20865 o9 = {};
20866 // 15964
20867 o224["118"] = o9;
20868 // 15965
20869 o9.getAttributeNode = f974244559_519;
20870 // undefined
20871 o9 = null;
20872 // 15967
20873 f974244559_519.returns.push(null);
20874 // 15969
20875 o224["119"] = o84;
20876 // 15970
20877 o84.getAttributeNode = f974244559_519;
20878 // undefined
20879 o84 = null;
20880 // 15972
20881 f974244559_519.returns.push(null);
20882 // 15974
20883 o224["120"] = o85;
20884 // 15975
20885 o85.getAttributeNode = f974244559_519;
20886 // undefined
20887 o85 = null;
20888 // 15977
20889 f974244559_519.returns.push(null);
20890 // 15979
20891 o9 = {};
20892 // 15980
20893 o224["121"] = o9;
20894 // 15981
20895 o9.getAttributeNode = f974244559_519;
20896 // undefined
20897 o9 = null;
20898 // 15983
20899 o9 = {};
20900 // 15984
20901 f974244559_519.returns.push(o9);
20902 // 15985
20903 o9.value = "MercuryJewelFooter";
20904 // undefined
20905 o9 = null;
20906 // 15987
20907 o9 = {};
20908 // 15988
20909 o224["122"] = o9;
20910 // 15989
20911 o9.getAttributeNode = f974244559_519;
20912 // undefined
20913 o9 = null;
20914 // 15991
20915 f974244559_519.returns.push(null);
20916 // 15993
20917 o9 = {};
20918 // 15994
20919 o224["123"] = o9;
20920 // 15995
20921 o9.getAttributeNode = f974244559_519;
20922 // undefined
20923 o9 = null;
20924 // 15997
20925 f974244559_519.returns.push(null);
20926 // 15999
20927 o9 = {};
20928 // 16000
20929 o224["124"] = o9;
20930 // 16001
20931 o9.getAttributeNode = f974244559_519;
20932 // undefined
20933 o9 = null;
20934 // 16003
20935 f974244559_519.returns.push(null);
20936 // 16005
20937 o224["125"] = o145;
20938 // 16006
20939 o145.getAttributeNode = f974244559_519;
20940 // undefined
20941 o145 = null;
20942 // 16008
20943 o9 = {};
20944 // 16009
20945 f974244559_519.returns.push(o9);
20946 // 16010
20947 o9.value = "fbNotificationsJewel";
20948 // undefined
20949 o9 = null;
20950 // 16012
20951 o9 = {};
20952 // 16013
20953 o224["126"] = o9;
20954 // 16014
20955 o9.getAttributeNode = f974244559_519;
20956 // undefined
20957 o9 = null;
20958 // 16016
20959 f974244559_519.returns.push(null);
20960 // 16018
20961 o9 = {};
20962 // 16019
20963 o224["127"] = o9;
20964 // 16020
20965 o9.getAttributeNode = f974244559_519;
20966 // undefined
20967 o9 = null;
20968 // 16022
20969 f974244559_519.returns.push(null);
20970 // 16024
20971 o224["128"] = o190;
20972 // 16025
20973 o190.getAttributeNode = f974244559_519;
20974 // undefined
20975 o190 = null;
20976 // 16027
20977 o9 = {};
20978 // 16028
20979 f974244559_519.returns.push(o9);
20980 // 16029
20981 o9.value = "notificationsCountWrapper";
20982 // undefined
20983 o9 = null;
20984 // 16031
20985 o224["129"] = o191;
20986 // 16032
20987 o191.getAttributeNode = f974244559_519;
20988 // undefined
20989 o191 = null;
20990 // 16034
20991 o9 = {};
20992 // 16035
20993 f974244559_519.returns.push(o9);
20994 // 16036
20995 o9.value = "notificationsCountValue";
20996 // undefined
20997 o9 = null;
20998 // 16038
20999 o9 = {};
21000 // 16039
21001 o224["130"] = o9;
21002 // 16040
21003 o9.getAttributeNode = f974244559_519;
21004 // undefined
21005 o9 = null;
21006 // 16042
21007 f974244559_519.returns.push(null);
21008 // 16044
21009 o224["131"] = o148;
21010 // 16045
21011 o148.getAttributeNode = f974244559_519;
21012 // undefined
21013 o148 = null;
21014 // 16047
21015 o9 = {};
21016 // 16048
21017 f974244559_519.returns.push(o9);
21018 // 16049
21019 o9.value = "fbNotificationsFlyout";
21020 // undefined
21021 o9 = null;
21022 // 16051
21023 o9 = {};
21024 // 16052
21025 o224["132"] = o9;
21026 // 16053
21027 o9.getAttributeNode = f974244559_519;
21028 // undefined
21029 o9 = null;
21030 // 16055
21031 f974244559_519.returns.push(null);
21032 // 16057
21033 o9 = {};
21034 // 16058
21035 o224["133"] = o9;
21036 // 16059
21037 o9.getAttributeNode = f974244559_519;
21038 // undefined
21039 o9 = null;
21040 // 16061
21041 f974244559_519.returns.push(null);
21042 // 16063
21043 o9 = {};
21044 // 16064
21045 o224["134"] = o9;
21046 // 16065
21047 o9.getAttributeNode = f974244559_519;
21048 // undefined
21049 o9 = null;
21050 // 16067
21051 f974244559_519.returns.push(null);
21052 // 16069
21053 o9 = {};
21054 // 16070
21055 o224["135"] = o9;
21056 // 16071
21057 o9.getAttributeNode = f974244559_519;
21058 // undefined
21059 o9 = null;
21060 // 16073
21061 f974244559_519.returns.push(null);
21062 // 16075
21063 o9 = {};
21064 // 16076
21065 o224["136"] = o9;
21066 // 16077
21067 o9.getAttributeNode = f974244559_519;
21068 // undefined
21069 o9 = null;
21070 // 16079
21071 f974244559_519.returns.push(null);
21072 // 16081
21073 o9 = {};
21074 // 16082
21075 o224["137"] = o9;
21076 // 16083
21077 o9.getAttributeNode = f974244559_519;
21078 // undefined
21079 o9 = null;
21080 // 16085
21081 f974244559_519.returns.push(null);
21082 // 16087
21083 o9 = {};
21084 // 16088
21085 o224["138"] = o9;
21086 // 16089
21087 o9.getAttributeNode = f974244559_519;
21088 // undefined
21089 o9 = null;
21090 // 16091
21091 f974244559_519.returns.push(null);
21092 // 16093
21093 o9 = {};
21094 // 16094
21095 o224["139"] = o9;
21096 // 16095
21097 o9.getAttributeNode = f974244559_519;
21098 // undefined
21099 o9 = null;
21100 // 16097
21101 f974244559_519.returns.push(null);
21102 // 16099
21103 o9 = {};
21104 // 16100
21105 o224["140"] = o9;
21106 // 16101
21107 o9.getAttributeNode = f974244559_519;
21108 // undefined
21109 o9 = null;
21110 // 16103
21111 f974244559_519.returns.push(null);
21112 // 16105
21113 o9 = {};
21114 // 16106
21115 o224["141"] = o9;
21116 // 16107
21117 o9.getAttributeNode = f974244559_519;
21118 // undefined
21119 o9 = null;
21120 // 16109
21121 f974244559_519.returns.push(null);
21122 // 16111
21123 o9 = {};
21124 // 16112
21125 o224["142"] = o9;
21126 // 16113
21127 o9.getAttributeNode = f974244559_519;
21128 // undefined
21129 o9 = null;
21130 // 16115
21131 f974244559_519.returns.push(null);
21132 // 16117
21133 o224["143"] = o86;
21134 // 16118
21135 o86.getAttributeNode = f974244559_519;
21136 // undefined
21137 o86 = null;
21138 // 16120
21139 o9 = {};
21140 // 16121
21141 f974244559_519.returns.push(o9);
21142 // 16122
21143 o9.value = "u_0_5";
21144 // undefined
21145 o9 = null;
21146 // 16124
21147 o224["144"] = o88;
21148 // 16125
21149 o88.getAttributeNode = f974244559_519;
21150 // undefined
21151 o88 = null;
21152 // 16127
21153 f974244559_519.returns.push(null);
21154 // 16129
21155 o224["145"] = o89;
21156 // 16130
21157 o89.getAttributeNode = f974244559_519;
21158 // undefined
21159 o89 = null;
21160 // 16132
21161 f974244559_519.returns.push(null);
21162 // 16134
21163 o224["146"] = o90;
21164 // 16135
21165 o90.getAttributeNode = f974244559_519;
21166 // undefined
21167 o90 = null;
21168 // 16137
21169 f974244559_519.returns.push(null);
21170 // 16139
21171 o224["147"] = o168;
21172 // 16140
21173 o168.getAttributeNode = f974244559_519;
21174 // undefined
21175 o168 = null;
21176 // 16142
21177 o9 = {};
21178 // 16143
21179 f974244559_519.returns.push(o9);
21180 // 16144
21181 o9.value = "fbNotificationsList";
21182 // undefined
21183 o9 = null;
21184 // 16146
21185 o224["148"] = o172;
21186 // 16147
21187 o172.getAttributeNode = f974244559_519;
21188 // undefined
21189 o172 = null;
21190 // 16149
21191 o9 = {};
21192 // 16150
21193 f974244559_519.returns.push(o9);
21194 // 16151
21195 o9.value = "fbNotificationsList_loading_indicator";
21196 // undefined
21197 o9 = null;
21198 // 16153
21199 o9 = {};
21200 // 16154
21201 o224["149"] = o9;
21202 // 16155
21203 o9.getAttributeNode = f974244559_519;
21204 // undefined
21205 o9 = null;
21206 // 16157
21207 f974244559_519.returns.push(null);
21208 // 16159
21209 o224["150"] = o198;
21210 // 16160
21211 o198.getAttributeNode = f974244559_519;
21212 // undefined
21213 o198 = null;
21214 // 16162
21215 f974244559_519.returns.push(null);
21216 // 16164
21217 o224["151"] = o197;
21218 // 16165
21219 o197.getAttributeNode = f974244559_519;
21220 // undefined
21221 o197 = null;
21222 // 16167
21223 f974244559_519.returns.push(null);
21224 // 16169
21225 o224["152"] = o199;
21226 // 16170
21227 o199.getAttributeNode = f974244559_519;
21228 // undefined
21229 o199 = null;
21230 // 16172
21231 f974244559_519.returns.push(null);
21232 // 16174
21233 o9 = {};
21234 // 16175
21235 o224["153"] = o9;
21236 // 16176
21237 o9.getAttributeNode = f974244559_519;
21238 // undefined
21239 o9 = null;
21240 // 16178
21241 f974244559_519.returns.push(null);
21242 // 16180
21243 o9 = {};
21244 // 16181
21245 o224["154"] = o9;
21246 // 16182
21247 o9.getAttributeNode = f974244559_519;
21248 // undefined
21249 o9 = null;
21250 // 16184
21251 f974244559_519.returns.push(null);
21252 // 16186
21253 o9 = {};
21254 // 16187
21255 o224["155"] = o9;
21256 // 16188
21257 o9.getAttributeNode = f974244559_519;
21258 // undefined
21259 o9 = null;
21260 // 16190
21261 f974244559_519.returns.push(null);
21262 // 16192
21263 o224["156"] = o91;
21264 // 16193
21265 o91.getAttributeNode = f974244559_519;
21266 // undefined
21267 o91 = null;
21268 // 16195
21269 f974244559_519.returns.push(null);
21270 // 16197
21271 o224["157"] = o92;
21272 // 16198
21273 o92.getAttributeNode = f974244559_519;
21274 // undefined
21275 o92 = null;
21276 // 16200
21277 f974244559_519.returns.push(null);
21278 // 16202
21279 o9 = {};
21280 // 16203
21281 o224["158"] = o9;
21282 // 16204
21283 o9.getAttributeNode = f974244559_519;
21284 // undefined
21285 o9 = null;
21286 // 16206
21287 o9 = {};
21288 // 16207
21289 f974244559_519.returns.push(o9);
21290 // 16208
21291 o9.value = "jewelNotice";
21292 // undefined
21293 o9 = null;
21294 // 16210
21295 o224["159"] = o188;
21296 // 16211
21297 o188.getAttributeNode = f974244559_519;
21298 // undefined
21299 o188 = null;
21300 // 16213
21301 f974244559_519.returns.push(null);
21302 // 16215
21303 o9 = {};
21304 // 16216
21305 o224["160"] = o9;
21306 // 16217
21307 o9.getAttributeNode = f974244559_519;
21308 // undefined
21309 o9 = null;
21310 // 16219
21311 f974244559_519.returns.push(null);
21312 // 16221
21313 o9 = {};
21314 // 16222
21315 o224["161"] = o9;
21316 // 16223
21317 o9.getAttributeNode = f974244559_519;
21318 // undefined
21319 o9 = null;
21320 // 16225
21321 f974244559_519.returns.push(null);
21322 // 16227
21323 o9 = {};
21324 // 16228
21325 o224["162"] = o9;
21326 // 16229
21327 o9.getAttributeNode = f974244559_519;
21328 // 16231
21329 o10 = {};
21330 // 16232
21331 f974244559_519.returns.push(o10);
21332 // 16233
21333 o10.value = "headNav";
21334 // undefined
21335 o10 = null;
21336 // 16235
21337 o10 = {};
21338 // 16236
21339 o224["163"] = o10;
21340 // 16237
21341 o10.getAttributeNode = f974244559_519;
21342 // undefined
21343 o10 = null;
21344 // 16239
21345 f974244559_519.returns.push(null);
21346 // 16241
21347 o10 = {};
21348 // 16242
21349 o224["164"] = o10;
21350 // 16243
21351 o10.getAttributeNode = f974244559_519;
21352 // undefined
21353 o10 = null;
21354 // 16245
21355 o10 = {};
21356 // 16246
21357 f974244559_519.returns.push(o10);
21358 // 16247
21359 o10.value = "navSearch";
21360 // undefined
21361 o10 = null;
21362 // 16249
21363 o224["165"] = o161;
21364 // 16250
21365 o161.getAttributeNode = f974244559_519;
21366 // undefined
21367 o161 = null;
21368 // 16252
21369 o10 = {};
21370 // 16253
21371 f974244559_519.returns.push(o10);
21372 // 16254
21373 o10.value = "u_0_2";
21374 // undefined
21375 o10 = null;
21376 // 16256
21377 o10 = {};
21378 // 16257
21379 o224["166"] = o10;
21380 // 16258
21381 o10.getAttributeNode = f974244559_519;
21382 // undefined
21383 o10 = null;
21384 // 16260
21385 f974244559_519.returns.push(null);
21386 // 16262
21387 o10 = {};
21388 // 16263
21389 o224["167"] = o10;
21390 // 16264
21391 o10.getAttributeNode = f974244559_519;
21392 // undefined
21393 o10 = null;
21394 // 16266
21395 f974244559_519.returns.push(null);
21396 // 16268
21397 o10 = {};
21398 // 16269
21399 o224["168"] = o10;
21400 // 16270
21401 o10.getAttributeNode = f974244559_519;
21402 // undefined
21403 o10 = null;
21404 // 16272
21405 f974244559_519.returns.push(null);
21406 // 16274
21407 o224["169"] = o159;
21408 // 16275
21409 o159.getAttributeNode = f974244559_519;
21410 // undefined
21411 o159 = null;
21412 // 16277
21413 o10 = {};
21414 // 16278
21415 f974244559_519.returns.push(o10);
21416 // 16279
21417 o10.value = "u_0_3";
21418 // undefined
21419 o10 = null;
21420 // 16281
21421 o10 = {};
21422 // 16282
21423 o224["170"] = o10;
21424 // 16283
21425 o10.getAttributeNode = f974244559_519;
21426 // undefined
21427 o10 = null;
21428 // 16285
21429 f974244559_519.returns.push(null);
21430 // 16287
21431 o10 = {};
21432 // 16288
21433 o224["171"] = o10;
21434 // 16289
21435 o10.getAttributeNode = f974244559_519;
21436 // undefined
21437 o10 = null;
21438 // 16291
21439 f974244559_519.returns.push(null);
21440 // 16293
21441 o10 = {};
21442 // 16294
21443 o224["172"] = o10;
21444 // 16295
21445 o10.getAttributeNode = f974244559_519;
21446 // undefined
21447 o10 = null;
21448 // 16297
21449 f974244559_519.returns.push(null);
21450 // 16299
21451 o224["173"] = o163;
21452 // 16300
21453 o163.getAttributeNode = f974244559_519;
21454 // undefined
21455 o163 = null;
21456 // 16302
21457 o10 = {};
21458 // 16303
21459 f974244559_519.returns.push(o10);
21460 // 16304
21461 o10.value = "q";
21462 // undefined
21463 o10 = null;
21464 // 16306
21465 o10 = {};
21466 // 16307
21467 o224["174"] = o10;
21468 // 16308
21469 o10.getAttributeNode = f974244559_519;
21470 // undefined
21471 o10 = null;
21472 // 16310
21473 f974244559_519.returns.push(null);
21474 // 16312
21475 o10 = {};
21476 // 16313
21477 o224["175"] = o10;
21478 // 16314
21479 o10.getAttributeNode = f974244559_519;
21480 // undefined
21481 o10 = null;
21482 // 16316
21483 f974244559_519.returns.push(null);
21484 // 16318
21485 o10 = {};
21486 // 16319
21487 o224["176"] = o10;
21488 // 16320
21489 o10.getAttributeNode = f974244559_519;
21490 // undefined
21491 o10 = null;
21492 // 16322
21493 f974244559_519.returns.push(null);
21494 // 16324
21495 o10 = {};
21496 // 16325
21497 o224["177"] = o10;
21498 // 16326
21499 o10.getAttributeNode = f974244559_519;
21500 // undefined
21501 o10 = null;
21502 // 16328
21503 o10 = {};
21504 // 16329
21505 f974244559_519.returns.push(o10);
21506 // 16330
21507 o10.value = "u_0_0";
21508 // undefined
21509 o10 = null;
21510 // 16332
21511 o10 = {};
21512 // 16333
21513 o224["178"] = o10;
21514 // 16334
21515 o10.getAttributeNode = f974244559_519;
21516 // undefined
21517 o10 = null;
21518 // 16336
21519 o10 = {};
21520 // 16337
21521 f974244559_519.returns.push(o10);
21522 // 16338
21523 o10.value = "init";
21524 // undefined
21525 o10 = null;
21526 // 16340
21527 o10 = {};
21528 // 16341
21529 o224["179"] = o10;
21530 // 16342
21531 o10.getAttributeNode = f974244559_519;
21532 // undefined
21533 o10 = null;
21534 // 16344
21535 f974244559_519.returns.push(null);
21536 // 16346
21537 o10 = {};
21538 // 16347
21539 o224["180"] = o10;
21540 // 16348
21541 o10.getAttributeNode = f974244559_519;
21542 // undefined
21543 o10 = null;
21544 // 16350
21545 o10 = {};
21546 // 16351
21547 f974244559_519.returns.push(o10);
21548 // 16352
21549 o10.value = "search_first_focus";
21550 // undefined
21551 o10 = null;
21552 // 16354
21553 o10 = {};
21554 // 16355
21555 o224["181"] = o10;
21556 // 16356
21557 o10.getAttributeNode = f974244559_519;
21558 // 16358
21559 f974244559_519.returns.push(null);
21560 // 16360
21561 o11 = {};
21562 // 16361
21563 o224["182"] = o11;
21564 // 16362
21565 o11.getAttributeNode = f974244559_519;
21566 // 16364
21567 o12 = {};
21568 // 16365
21569 f974244559_519.returns.push(o12);
21570 // 16366
21571 o12.value = "pageNav";
21572 // undefined
21573 o12 = null;
21574 // 16368
21575 o12 = {};
21576 // 16369
21577 o224["183"] = o12;
21578 // 16370
21579 o12.getAttributeNode = f974244559_519;
21580 // undefined
21581 o12 = null;
21582 // 16372
21583 f974244559_519.returns.push(null);
21584 // 16374
21585 o12 = {};
21586 // 16375
21587 o224["184"] = o12;
21588 // 16376
21589 o12.getAttributeNode = f974244559_519;
21590 // undefined
21591 o12 = null;
21592 // 16378
21593 f974244559_519.returns.push(null);
21594 // 16380
21595 o12 = {};
21596 // 16381
21597 o224["185"] = o12;
21598 // 16382
21599 o12.getAttributeNode = f974244559_519;
21600 // undefined
21601 o12 = null;
21602 // 16384
21603 o12 = {};
21604 // 16385
21605 f974244559_519.returns.push(o12);
21606 // 16386
21607 o12.value = "profile_pic_header_100006118350059";
21608 // undefined
21609 o12 = null;
21610 // 16388
21611 o12 = {};
21612 // 16389
21613 o224["186"] = o12;
21614 // 16390
21615 o12.getAttributeNode = f974244559_519;
21616 // undefined
21617 o12 = null;
21618 // 16392
21619 f974244559_519.returns.push(null);
21620 // 16394
21621 o12 = {};
21622 // 16395
21623 o224["187"] = o12;
21624 // 16396
21625 o12.getAttributeNode = f974244559_519;
21626 // undefined
21627 o12 = null;
21628 // 16398
21629 f974244559_519.returns.push(null);
21630 // 16400
21631 o12 = {};
21632 // 16401
21633 o224["188"] = o12;
21634 // 16402
21635 o12.getAttributeNode = f974244559_519;
21636 // undefined
21637 o12 = null;
21638 // 16404
21639 f974244559_519.returns.push(null);
21640 // 16406
21641 o12 = {};
21642 // 16407
21643 o224["189"] = o12;
21644 // 16408
21645 o12.getAttributeNode = f974244559_519;
21646 // undefined
21647 o12 = null;
21648 // 16410
21649 f974244559_519.returns.push(null);
21650 // 16412
21651 o12 = {};
21652 // 16413
21653 o224["190"] = o12;
21654 // 16414
21655 o12.getAttributeNode = f974244559_519;
21656 // undefined
21657 o12 = null;
21658 // 16416
21659 f974244559_519.returns.push(null);
21660 // 16418
21661 o12 = {};
21662 // 16419
21663 o224["191"] = o12;
21664 // 16420
21665 o12.getAttributeNode = f974244559_519;
21666 // undefined
21667 o12 = null;
21668 // 16422
21669 o12 = {};
21670 // 16423
21671 f974244559_519.returns.push(o12);
21672 // 16424
21673 o12.value = "navFindFriends";
21674 // undefined
21675 o12 = null;
21676 // 16426
21677 o12 = {};
21678 // 16427
21679 o224["192"] = o12;
21680 // 16428
21681 o12.getAttributeNode = f974244559_519;
21682 // undefined
21683 o12 = null;
21684 // 16430
21685 o12 = {};
21686 // 16431
21687 f974244559_519.returns.push(o12);
21688 // 16432
21689 o12.value = "findFriendsNav";
21690 // undefined
21691 o12 = null;
21692 // 16434
21693 o12 = {};
21694 // 16435
21695 o224["193"] = o12;
21696 // 16436
21697 o12.getAttributeNode = f974244559_519;
21698 // undefined
21699 o12 = null;
21700 // 16438
21701 o12 = {};
21702 // 16439
21703 f974244559_519.returns.push(o12);
21704 // 16440
21705 o12.value = "navHome";
21706 // undefined
21707 o12 = null;
21708 // 16442
21709 o12 = {};
21710 // 16443
21711 o224["194"] = o12;
21712 // 16444
21713 o12.getAttributeNode = f974244559_519;
21714 // undefined
21715 o12 = null;
21716 // 16446
21717 f974244559_519.returns.push(null);
21718 // 16448
21719 o12 = {};
21720 // 16449
21721 o224["195"] = o12;
21722 // 16450
21723 o12.getAttributeNode = f974244559_519;
21724 // undefined
21725 o12 = null;
21726 // 16452
21727 o12 = {};
21728 // 16453
21729 f974244559_519.returns.push(o12);
21730 // 16454
21731 o12.value = "navPrivacy";
21732 // undefined
21733 o12 = null;
21734 // 16456
21735 o224["196"] = o150;
21736 // 16457
21737 o150.getAttributeNode = f974244559_519;
21738 // undefined
21739 o150 = null;
21740 // 16459
21741 o12 = {};
21742 // 16460
21743 f974244559_519.returns.push(o12);
21744 // 16461
21745 o12.value = "u_0_8";
21746 // undefined
21747 o12 = null;
21748 // 16463
21749 o12 = {};
21750 // 16464
21751 o224["197"] = o12;
21752 // 16465
21753 o12.getAttributeNode = f974244559_519;
21754 // undefined
21755 o12 = null;
21756 // 16467
21757 o12 = {};
21758 // 16468
21759 f974244559_519.returns.push(o12);
21760 // 16469
21761 o12.value = "u_0_6";
21762 // undefined
21763 o12 = null;
21764 // 16471
21765 o12 = {};
21766 // 16472
21767 o224["198"] = o12;
21768 // 16473
21769 o12.getAttributeNode = f974244559_519;
21770 // undefined
21771 o12 = null;
21772 // 16475
21773 o12 = {};
21774 // 16476
21775 f974244559_519.returns.push(o12);
21776 // 16477
21777 o12.value = "privacyFlyoutLabel";
21778 // undefined
21779 o12 = null;
21780 // 16479
21781 o12 = {};
21782 // 16480
21783 o224["199"] = o12;
21784 // 16481
21785 o12.getAttributeNode = f974244559_519;
21786 // undefined
21787 o12 = null;
21788 // 16483
21789 f974244559_519.returns.push(null);
21790 // 16485
21791 o224["200"] = o149;
21792 // 16486
21793 o149.getAttributeNode = f974244559_519;
21794 // undefined
21795 o149 = null;
21796 // 16488
21797 o12 = {};
21798 // 16489
21799 f974244559_519.returns.push(o12);
21800 // 16490
21801 o12.value = "u_0_7";
21802 // undefined
21803 o12 = null;
21804 // 16492
21805 o12 = {};
21806 // 16493
21807 o224["201"] = o12;
21808 // 16494
21809 o12.getAttributeNode = f974244559_519;
21810 // undefined
21811 o12 = null;
21812 // 16496
21813 f974244559_519.returns.push(null);
21814 // 16498
21815 o12 = {};
21816 // 16499
21817 o224["202"] = o12;
21818 // 16500
21819 o12.getAttributeNode = f974244559_519;
21820 // undefined
21821 o12 = null;
21822 // 16502
21823 f974244559_519.returns.push(null);
21824 // 16504
21825 o12 = {};
21826 // 16505
21827 o224["203"] = o12;
21828 // 16506
21829 o12.getAttributeNode = f974244559_519;
21830 // undefined
21831 o12 = null;
21832 // 16508
21833 f974244559_519.returns.push(null);
21834 // 16510
21835 o12 = {};
21836 // 16511
21837 o224["204"] = o12;
21838 // 16512
21839 o12.getAttributeNode = f974244559_519;
21840 // undefined
21841 o12 = null;
21842 // 16514
21843 f974244559_519.returns.push(null);
21844 // 16516
21845 o12 = {};
21846 // 16517
21847 o224["205"] = o12;
21848 // 16518
21849 o12.getAttributeNode = f974244559_519;
21850 // undefined
21851 o12 = null;
21852 // 16520
21853 f974244559_519.returns.push(null);
21854 // 16522
21855 o12 = {};
21856 // 16523
21857 o224["206"] = o12;
21858 // 16524
21859 o12.getAttributeNode = f974244559_519;
21860 // undefined
21861 o12 = null;
21862 // 16526
21863 f974244559_519.returns.push(null);
21864 // 16528
21865 o12 = {};
21866 // 16529
21867 o224["207"] = o12;
21868 // 16530
21869 o12.getAttributeNode = f974244559_519;
21870 // undefined
21871 o12 = null;
21872 // 16532
21873 f974244559_519.returns.push(null);
21874 // 16534
21875 o224["208"] = o160;
21876 // 16535
21877 o160.getAttributeNode = f974244559_519;
21878 // undefined
21879 o160 = null;
21880 // 16537
21881 f974244559_519.returns.push(null);
21882 // 16539
21883 o12 = {};
21884 // 16540
21885 o224["209"] = o12;
21886 // 16541
21887 o12.getAttributeNode = f974244559_519;
21888 // undefined
21889 o12 = null;
21890 // 16543
21891 f974244559_519.returns.push(null);
21892 // 16545
21893 o12 = {};
21894 // 16546
21895 o224["210"] = o12;
21896 // 16547
21897 o12.getAttributeNode = f974244559_519;
21898 // undefined
21899 o12 = null;
21900 // 16549
21901 f974244559_519.returns.push(null);
21902 // 16551
21903 o12 = {};
21904 // 16552
21905 o224["211"] = o12;
21906 // 16553
21907 o12.getAttributeNode = f974244559_519;
21908 // undefined
21909 o12 = null;
21910 // 16555
21911 f974244559_519.returns.push(null);
21912 // 16557
21913 o12 = {};
21914 // 16558
21915 o224["212"] = o12;
21916 // 16559
21917 o12.getAttributeNode = f974244559_519;
21918 // undefined
21919 o12 = null;
21920 // 16561
21921 f974244559_519.returns.push(null);
21922 // 16563
21923 o12 = {};
21924 // 16564
21925 o224["213"] = o12;
21926 // 16565
21927 o12.getAttributeNode = f974244559_519;
21928 // undefined
21929 o12 = null;
21930 // 16567
21931 o12 = {};
21932 // 16568
21933 f974244559_519.returns.push(o12);
21934 // 16569
21935 o12.value = "fbPrivacyLiteFlyoutLoading";
21936 // undefined
21937 o12 = null;
21938 // 16571
21939 o12 = {};
21940 // 16572
21941 o224["214"] = o12;
21942 // 16573
21943 o12.getAttributeNode = f974244559_519;
21944 // undefined
21945 o12 = null;
21946 // 16575
21947 f974244559_519.returns.push(null);
21948 // 16577
21949 o12 = {};
21950 // 16578
21951 o224["215"] = o12;
21952 // 16579
21953 o12.getAttributeNode = f974244559_519;
21954 // undefined
21955 o12 = null;
21956 // 16581
21957 f974244559_519.returns.push(null);
21958 // 16583
21959 o224["216"] = o158;
21960 // 16584
21961 o158.getAttributeNode = f974244559_519;
21962 // undefined
21963 o158 = null;
21964 // 16586
21965 f974244559_519.returns.push(null);
21966 // 16588
21967 o224["217"] = o156;
21968 // 16589
21969 o156.getAttributeNode = f974244559_519;
21970 // undefined
21971 o156 = null;
21972 // 16591
21973 f974244559_519.returns.push(null);
21974 // 16593
21975 o224["218"] = o155;
21976 // 16594
21977 o155.getAttributeNode = f974244559_519;
21978 // undefined
21979 o155 = null;
21980 // 16596
21981 o12 = {};
21982 // 16597
21983 f974244559_519.returns.push(o12);
21984 // 16598
21985 o12.value = "u_0_9";
21986 // undefined
21987 o12 = null;
21988 // 16600
21989 o12 = {};
21990 // 16601
21991 o224["219"] = o12;
21992 // 16602
21993 o12.getAttributeNode = f974244559_519;
21994 // undefined
21995 o12 = null;
21996 // 16604
21997 f974244559_519.returns.push(null);
21998 // 16606
21999 o224["220"] = o152;
22000 // 16607
22001 o152.getAttributeNode = f974244559_519;
22002 // undefined
22003 o152 = null;
22004 // 16609
22005 o12 = {};
22006 // 16610
22007 f974244559_519.returns.push(o12);
22008 // 16611
22009 o12.value = "u_0_a";
22010 // undefined
22011 o12 = null;
22012 // 16613
22013 o12 = {};
22014 // 16614
22015 o224["221"] = o12;
22016 // 16615
22017 o12.getAttributeNode = f974244559_519;
22018 // undefined
22019 o12 = null;
22020 // 16617
22021 f974244559_519.returns.push(null);
22022 // 16619
22023 o224["222"] = o157;
22024 // 16620
22025 o157.getAttributeNode = f974244559_519;
22026 // undefined
22027 o157 = null;
22028 // 16622
22029 f974244559_519.returns.push(null);
22030 // 16624
22031 o12 = {};
22032 // 16625
22033 o224["223"] = o12;
22034 // 16626
22035 o12.getAttributeNode = f974244559_519;
22036 // undefined
22037 o12 = null;
22038 // 16628
22039 f974244559_519.returns.push(null);
22040 // 16630
22041 o12 = {};
22042 // 16631
22043 o224["224"] = o12;
22044 // 16632
22045 o12.getAttributeNode = f974244559_519;
22046 // undefined
22047 o12 = null;
22048 // 16634
22049 f974244559_519.returns.push(null);
22050 // 16636
22051 o224["225"] = o154;
22052 // 16637
22053 o154.getAttributeNode = f974244559_519;
22054 // undefined
22055 o154 = null;
22056 // 16639
22057 o12 = {};
22058 // 16640
22059 f974244559_519.returns.push(o12);
22060 // 16641
22061 o12.value = "u_0_b";
22062 // undefined
22063 o12 = null;
22064 // 16643
22065 o12 = {};
22066 // 16644
22067 o224["226"] = o12;
22068 // 16645
22069 o12.getAttributeNode = f974244559_519;
22070 // undefined
22071 o12 = null;
22072 // 16647
22073 f974244559_519.returns.push(null);
22074 // 16649
22075 o224["227"] = o153;
22076 // 16650
22077 o153.getAttributeNode = f974244559_519;
22078 // undefined
22079 o153 = null;
22080 // 16652
22081 o12 = {};
22082 // 16653
22083 f974244559_519.returns.push(o12);
22084 // 16654
22085 o12.value = "u_0_c";
22086 // undefined
22087 o12 = null;
22088 // 16656
22089 o224["228"] = o151;
22090 // 16657
22091 o151.getAttributeNode = f974244559_519;
22092 // undefined
22093 o151 = null;
22094 // 16659
22095 o12 = {};
22096 // 16660
22097 f974244559_519.returns.push(o12);
22098 // 16661
22099 o12.value = "u_0_d";
22100 // undefined
22101 o12 = null;
22102 // 16663
22103 o12 = {};
22104 // 16664
22105 o224["229"] = o12;
22106 // 16665
22107 o12.getAttributeNode = f974244559_519;
22108 // undefined
22109 o12 = null;
22110 // 16667
22111 f974244559_519.returns.push(null);
22112 // 16669
22113 o12 = {};
22114 // 16670
22115 o224["230"] = o12;
22116 // 16671
22117 o12.getAttributeNode = f974244559_519;
22118 // undefined
22119 o12 = null;
22120 // 16673
22121 f974244559_519.returns.push(null);
22122 // 16675
22123 o12 = {};
22124 // 16676
22125 o224["231"] = o12;
22126 // 16677
22127 o12.getAttributeNode = f974244559_519;
22128 // undefined
22129 o12 = null;
22130 // 16679
22131 f974244559_519.returns.push(null);
22132 // 16681
22133 o12 = {};
22134 // 16682
22135 o224["232"] = o12;
22136 // 16683
22137 o12.getAttributeNode = f974244559_519;
22138 // undefined
22139 o12 = null;
22140 // 16685
22141 f974244559_519.returns.push(null);
22142 // 16687
22143 o224["233"] = o147;
22144 // 16688
22145 o147.getAttributeNode = f974244559_519;
22146 // 16690
22147 o12 = {};
22148 // 16691
22149 f974244559_519.returns.push(o12);
22150 // 16692
22151 o12.value = "u_0_e";
22152 // undefined
22153 o12 = null;
22154 // 16694
22155 o12 = {};
22156 // 16695
22157 o224["234"] = o12;
22158 // 16696
22159 o12.getAttributeNode = f974244559_519;
22160 // 16698
22161 o14 = {};
22162 // 16699
22163 f974244559_519.returns.push(o14);
22164 // 16700
22165 o14.value = "navAccount";
22166 // undefined
22167 o14 = null;
22168 // 16702
22169 o14 = {};
22170 // 16703
22171 o224["235"] = o14;
22172 // 16704
22173 o14.getAttributeNode = f974244559_519;
22174 // 16706
22175 o15 = {};
22176 // 16707
22177 f974244559_519.returns.push(o15);
22178 // 16708
22179 o15.value = "navAccountLink";
22180 // undefined
22181 o15 = null;
22182 // 16710
22183 o15 = {};
22184 // 16711
22185 o224["236"] = o15;
22186 // undefined
22187 o224 = null;
22188 // 16712
22189 o15.getAttributeNode = f974244559_519;
22190 // 16714
22191 o16 = {};
22192 // 16715
22193 f974244559_519.returns.push(o16);
22194 // 16716
22195 o16.value = "userNavigationLabel";
22196 // undefined
22197 o16 = null;
22198 // 16718
22199 o16 = {};
22200 // 16719
22201 o15.classList = o16;
22202 // 16721
22203 o16.contains = f974244559_1617;
22204 // undefined
22205 o16 = null;
22206 // 16722
22207 f974244559_1617.returns.push(false);
22208 // 16723
22209 o15.parentNode = o14;
22210 // 16724
22211 o16 = {};
22212 // 16725
22213 o14.classList = o16;
22214 // 16727
22215 o16.contains = f974244559_1617;
22216 // undefined
22217 o16 = null;
22218 // 16728
22219 f974244559_1617.returns.push(false);
22220 // 16729
22221 o14.parentNode = o12;
22222 // undefined
22223 o14 = null;
22224 // 16730
22225 o14 = {};
22226 // 16731
22227 o12.classList = o14;
22228 // 16733
22229 o14.contains = f974244559_1617;
22230 // undefined
22231 o14 = null;
22232 // 16734
22233 f974244559_1617.returns.push(false);
22234 // 16735
22235 o12.parentNode = o147;
22236 // undefined
22237 o12 = null;
22238 // 16736
22239 o12 = {};
22240 // 16737
22241 o147.classList = o12;
22242 // 16739
22243 o12.contains = f974244559_1617;
22244 // undefined
22245 o12 = null;
22246 // 16740
22247 f974244559_1617.returns.push(false);
22248 // 16741
22249 o147.parentNode = o11;
22250 // undefined
22251 o147 = null;
22252 // 16742
22253 o12 = {};
22254 // 16743
22255 o11.classList = o12;
22256 // 16745
22257 o12.contains = f974244559_1617;
22258 // undefined
22259 o12 = null;
22260 // 16746
22261 f974244559_1617.returns.push(false);
22262 // 16747
22263 o11.parentNode = o10;
22264 // undefined
22265 o11 = null;
22266 // 16748
22267 o11 = {};
22268 // 16749
22269 o10.classList = o11;
22270 // 16751
22271 o11.contains = f974244559_1617;
22272 // undefined
22273 o11 = null;
22274 // 16752
22275 f974244559_1617.returns.push(false);
22276 // 16753
22277 o10.parentNode = o9;
22278 // undefined
22279 o10 = null;
22280 // 16754
22281 o10 = {};
22282 // 16755
22283 o9.classList = o10;
22284 // 16757
22285 o10.contains = f974244559_1617;
22286 // undefined
22287 o10 = null;
22288 // 16758
22289 f974244559_1617.returns.push(false);
22290 // 16759
22291 o9.parentNode = o192;
22292 // undefined
22293 o9 = null;
22294 // undefined
22295 o192 = null;
22296 // 16763
22297 f974244559_1617.returns.push(false);
22298 // 16768
22299 f974244559_1617.returns.push(false);
22300 // 16773
22301 f974244559_1617.returns.push(false);
22302 // 16778
22303 f974244559_1617.returns.push(false);
22304 // 16783
22305 f974244559_1617.returns.push(false);
22306 // 16788
22307 f974244559_1617.returns.push(false);
22308 // 16793
22309 f974244559_1617.returns.push(false);
22310 // 16799
22311 o223.__html = void 0;
22312 // 16801
22313 o9 = {};
22314 // 16802
22315 f974244559_478.returns.push(o9);
22316 // 16805
22317 f974244559_482.returns.push(o9);
22318 // undefined
22319 o9 = null;
22320 // 16809
22321 f974244559_702.returns.push(true);
22322 // 16810
22323 o9 = {};
22324 // 16811
22325 f974244559_4.returns.push(o9);
22326 // 16812
22327 o9.getPropertyValue = f974244559_1881;
22328 // undefined
22329 o9 = null;
22330 // 16813
22331 f974244559_1881.returns.push("static");
22332 // 16818
22333 f974244559_702.returns.push(true);
22334 // 16819
22335 o9 = {};
22336 // 16820
22337 f974244559_4.returns.push(o9);
22338 // 16821
22339 o9.getPropertyValue = f974244559_1881;
22340 // undefined
22341 o9 = null;
22342 // 16822
22343 f974244559_1881.returns.push("relative");
22344 // 16827
22345 f974244559_702.returns.push(true);
22346 // 16828
22347 o9 = {};
22348 // 16829
22349 f974244559_4.returns.push(o9);
22350 // 16830
22351 o9.getPropertyValue = f974244559_1881;
22352 // undefined
22353 o9 = null;
22354 // 16831
22355 f974244559_1881.returns.push("relative");
22356 // 16836
22357 f974244559_702.returns.push(true);
22358 // 16837
22359 o9 = {};
22360 // 16838
22361 f974244559_4.returns.push(o9);
22362 // 16839
22363 o9.getPropertyValue = f974244559_1881;
22364 // undefined
22365 o9 = null;
22366 // 16840
22367 f974244559_1881.returns.push("static");
22368 // 16845
22369 f974244559_702.returns.push(true);
22370 // 16846
22371 o9 = {};
22372 // 16847
22373 f974244559_4.returns.push(o9);
22374 // 16848
22375 o9.getPropertyValue = f974244559_1881;
22376 // undefined
22377 o9 = null;
22378 // 16849
22379 f974244559_1881.returns.push("static");
22380 // 16854
22381 f974244559_702.returns.push(true);
22382 // 16855
22383 o9 = {};
22384 // 16856
22385 f974244559_4.returns.push(o9);
22386 // 16857
22387 o9.getPropertyValue = f974244559_1881;
22388 // undefined
22389 o9 = null;
22390 // 16858
22391 f974244559_1881.returns.push("static");
22392 // 16863
22393 f974244559_702.returns.push(true);
22394 // 16864
22395 o9 = {};
22396 // 16865
22397 f974244559_4.returns.push(o9);
22398 // 16866
22399 o9.getPropertyValue = f974244559_1881;
22400 // undefined
22401 o9 = null;
22402 // 16867
22403 f974244559_1881.returns.push("static");
22404 // 16872
22405 f974244559_702.returns.push(true);
22406 // 16873
22407 o9 = {};
22408 // 16874
22409 f974244559_4.returns.push(o9);
22410 // 16875
22411 o9.getPropertyValue = f974244559_1881;
22412 // undefined
22413 o9 = null;
22414 // 16876
22415 f974244559_1881.returns.push("static");
22416 // 16881
22417 f974244559_702.returns.push(true);
22418 // 16882
22419 o9 = {};
22420 // 16883
22421 f974244559_4.returns.push(o9);
22422 // 16884
22423 o9.getPropertyValue = f974244559_1881;
22424 // undefined
22425 o9 = null;
22426 // 16885
22427 f974244559_1881.returns.push("fixed");
22428 // 16889
22429 f974244559_1617.returns.push(false);
22430 // 16894
22431 f974244559_1617.returns.push(false);
22432 // 16899
22433 f974244559_1617.returns.push(false);
22434 // 16904
22435 f974244559_1617.returns.push(false);
22436 // 16909
22437 f974244559_1617.returns.push(false);
22438 // 16914
22439 f974244559_1617.returns.push(false);
22440 // 16919
22441 f974244559_1617.returns.push(false);
22442 // 16924
22443 f974244559_1617.returns.push(false);
22444 // 16929
22445 f974244559_1617.returns.push(false);
22446 // 16934
22447 f974244559_1617.returns.push(false);
22448 // 16939
22449 f974244559_1617.returns.push(false);
22450 // 16944
22451 f974244559_1617.returns.push(false);
22452 // 16949
22453 f974244559_1617.returns.push(false);
22454 // 16954
22455 f974244559_1617.returns.push(false);
22456 // 16961
22457 o9 = {};
22458 // 16962
22459 f974244559_4.returns.push(o9);
22460 // 16963
22461 o9.getPropertyValue = f974244559_1881;
22462 // undefined
22463 o9 = null;
22464 // 16964
22465 f974244559_1881.returns.push("static");
22466 // 16969
22467 f974244559_702.returns.push(false);
22468 // 16972
22469 o9 = {};
22470 // undefined
22471 fo974244559_2174_style.returns.push(o9);
22472 // 16974
22473 // 16977
22474 o10 = {};
22475 // 16978
22476 f974244559_4.returns.push(o10);
22477 // 16979
22478 o10.getPropertyValue = f974244559_1881;
22479 // undefined
22480 o10 = null;
22481 // 16980
22482 f974244559_1881.returns.push("hidden");
22483 // 16981
22484 o10 = {};
22485 // 16982
22486 f974244559_4.returns.push(o10);
22487 // 16983
22488 o10.getPropertyValue = f974244559_1881;
22489 // undefined
22490 o10 = null;
22491 // 16984
22492 f974244559_1881.returns.push("hidden");
22493 // 16985
22494 o10 = {};
22495 // 16986
22496 f974244559_4.returns.push(o10);
22497 // 16987
22498 o10.getPropertyValue = f974244559_1881;
22499 // undefined
22500 o10 = null;
22501 // 16988
22502 f974244559_1881.returns.push("hidden");
22503 // 16991
22504 o10 = {};
22505 // 16992
22506 f974244559_4.returns.push(o10);
22507 // 16993
22508 o10.getPropertyValue = f974244559_1881;
22509 // undefined
22510 o10 = null;
22511 // 16994
22512 f974244559_1881.returns.push("visible");
22513 // 16995
22514 o10 = {};
22515 // 16996
22516 f974244559_4.returns.push(o10);
22517 // 16997
22518 o10.getPropertyValue = f974244559_1881;
22519 // undefined
22520 o10 = null;
22521 // 16998
22522 f974244559_1881.returns.push("visible");
22523 // 16999
22524 o10 = {};
22525 // 17000
22526 f974244559_4.returns.push(o10);
22527 // 17001
22528 o10.getPropertyValue = f974244559_1881;
22529 // undefined
22530 o10 = null;
22531 // 17002
22532 f974244559_1881.returns.push("visible");
22533 // 17005
22534 o10 = {};
22535 // 17006
22536 f974244559_4.returns.push(o10);
22537 // 17007
22538 o10.getPropertyValue = f974244559_1881;
22539 // undefined
22540 o10 = null;
22541 // 17008
22542 f974244559_1881.returns.push("visible");
22543 // 17009
22544 o10 = {};
22545 // 17010
22546 f974244559_4.returns.push(o10);
22547 // 17011
22548 o10.getPropertyValue = f974244559_1881;
22549 // undefined
22550 o10 = null;
22551 // 17012
22552 f974244559_1881.returns.push("visible");
22553 // 17013
22554 o10 = {};
22555 // 17014
22556 f974244559_4.returns.push(o10);
22557 // 17015
22558 o10.getPropertyValue = f974244559_1881;
22559 // undefined
22560 o10 = null;
22561 // 17016
22562 f974244559_1881.returns.push("visible");
22563 // 17019
22564 o10 = {};
22565 // 17020
22566 f974244559_4.returns.push(o10);
22567 // 17021
22568 o10.getPropertyValue = f974244559_1881;
22569 // undefined
22570 o10 = null;
22571 // 17022
22572 f974244559_1881.returns.push("visible");
22573 // 17023
22574 o10 = {};
22575 // 17024
22576 f974244559_4.returns.push(o10);
22577 // 17025
22578 o10.getPropertyValue = f974244559_1881;
22579 // undefined
22580 o10 = null;
22581 // 17026
22582 f974244559_1881.returns.push("visible");
22583 // 17027
22584 o10 = {};
22585 // 17028
22586 f974244559_4.returns.push(o10);
22587 // 17029
22588 o10.getPropertyValue = f974244559_1881;
22589 // undefined
22590 o10 = null;
22591 // 17030
22592 f974244559_1881.returns.push("visible");
22593 // 17033
22594 o10 = {};
22595 // 17034
22596 f974244559_4.returns.push(o10);
22597 // 17035
22598 o10.getPropertyValue = f974244559_1881;
22599 // undefined
22600 o10 = null;
22601 // 17036
22602 f974244559_1881.returns.push("visible");
22603 // 17037
22604 o10 = {};
22605 // 17038
22606 f974244559_4.returns.push(o10);
22607 // 17039
22608 o10.getPropertyValue = f974244559_1881;
22609 // undefined
22610 o10 = null;
22611 // 17040
22612 f974244559_1881.returns.push("visible");
22613 // 17041
22614 o10 = {};
22615 // 17042
22616 f974244559_4.returns.push(o10);
22617 // 17043
22618 o10.getPropertyValue = f974244559_1881;
22619 // undefined
22620 o10 = null;
22621 // 17044
22622 f974244559_1881.returns.push("visible");
22623 // 17047
22624 o10 = {};
22625 // 17048
22626 f974244559_4.returns.push(o10);
22627 // 17049
22628 o10.getPropertyValue = f974244559_1881;
22629 // undefined
22630 o10 = null;
22631 // 17050
22632 f974244559_1881.returns.push("visible");
22633 // 17051
22634 o10 = {};
22635 // 17052
22636 f974244559_4.returns.push(o10);
22637 // 17053
22638 o10.getPropertyValue = f974244559_1881;
22639 // undefined
22640 o10 = null;
22641 // 17054
22642 f974244559_1881.returns.push("visible");
22643 // 17055
22644 o10 = {};
22645 // 17056
22646 f974244559_4.returns.push(o10);
22647 // 17057
22648 o10.getPropertyValue = f974244559_1881;
22649 // undefined
22650 o10 = null;
22651 // 17058
22652 f974244559_1881.returns.push("visible");
22653 // 17061
22654 o10 = {};
22655 // 17062
22656 f974244559_4.returns.push(o10);
22657 // 17063
22658 o10.getPropertyValue = f974244559_1881;
22659 // undefined
22660 o10 = null;
22661 // 17064
22662 f974244559_1881.returns.push("visible");
22663 // 17065
22664 o10 = {};
22665 // 17066
22666 f974244559_4.returns.push(o10);
22667 // 17067
22668 o10.getPropertyValue = f974244559_1881;
22669 // undefined
22670 o10 = null;
22671 // 17068
22672 f974244559_1881.returns.push("visible");
22673 // 17069
22674 o10 = {};
22675 // 17070
22676 f974244559_4.returns.push(o10);
22677 // 17071
22678 o10.getPropertyValue = f974244559_1881;
22679 // undefined
22680 o10 = null;
22681 // 17072
22682 f974244559_1881.returns.push("visible");
22683 // 17075
22684 o10 = {};
22685 // 17076
22686 f974244559_4.returns.push(o10);
22687 // 17077
22688 o10.getPropertyValue = f974244559_1881;
22689 // undefined
22690 o10 = null;
22691 // 17078
22692 f974244559_1881.returns.push("visible");
22693 // 17079
22694 o10 = {};
22695 // 17080
22696 f974244559_4.returns.push(o10);
22697 // 17081
22698 o10.getPropertyValue = f974244559_1881;
22699 // undefined
22700 o10 = null;
22701 // 17082
22702 f974244559_1881.returns.push("visible");
22703 // 17083
22704 o10 = {};
22705 // 17084
22706 f974244559_4.returns.push(o10);
22707 // 17085
22708 o10.getPropertyValue = f974244559_1881;
22709 // undefined
22710 o10 = null;
22711 // 17086
22712 f974244559_1881.returns.push("visible");
22713 // 17089
22714 o10 = {};
22715 // 17090
22716 f974244559_4.returns.push(o10);
22717 // 17091
22718 o10.getPropertyValue = f974244559_1881;
22719 // undefined
22720 o10 = null;
22721 // 17092
22722 f974244559_1881.returns.push("visible");
22723 // 17093
22724 o10 = {};
22725 // 17094
22726 f974244559_4.returns.push(o10);
22727 // 17095
22728 o10.getPropertyValue = f974244559_1881;
22729 // undefined
22730 o10 = null;
22731 // 17096
22732 f974244559_1881.returns.push("visible");
22733 // 17097
22734 o10 = {};
22735 // 17098
22736 f974244559_4.returns.push(o10);
22737 // 17099
22738 o10.getPropertyValue = f974244559_1881;
22739 // undefined
22740 o10 = null;
22741 // 17100
22742 f974244559_1881.returns.push("visible");
22743 // 17103
22744 o10 = {};
22745 // 17104
22746 f974244559_4.returns.push(o10);
22747 // 17105
22748 o10.getPropertyValue = f974244559_1881;
22749 // undefined
22750 o10 = null;
22751 // 17106
22752 f974244559_1881.returns.push("visible");
22753 // 17107
22754 o10 = {};
22755 // 17108
22756 f974244559_4.returns.push(o10);
22757 // 17109
22758 o10.getPropertyValue = f974244559_1881;
22759 // undefined
22760 o10 = null;
22761 // 17110
22762 f974244559_1881.returns.push("visible");
22763 // 17111
22764 o10 = {};
22765 // 17112
22766 f974244559_4.returns.push(o10);
22767 // 17113
22768 o10.getPropertyValue = f974244559_1881;
22769 // undefined
22770 o10 = null;
22771 // 17114
22772 f974244559_1881.returns.push("visible");
22773 // 17117
22774 o10 = {};
22775 // 17118
22776 f974244559_4.returns.push(o10);
22777 // 17119
22778 o10.getPropertyValue = f974244559_1881;
22779 // undefined
22780 o10 = null;
22781 // 17120
22782 f974244559_1881.returns.push("visible");
22783 // 17121
22784 o10 = {};
22785 // 17122
22786 f974244559_4.returns.push(o10);
22787 // 17123
22788 o10.getPropertyValue = f974244559_1881;
22789 // undefined
22790 o10 = null;
22791 // 17124
22792 f974244559_1881.returns.push("visible");
22793 // 17125
22794 o10 = {};
22795 // 17126
22796 f974244559_4.returns.push(o10);
22797 // 17127
22798 o10.getPropertyValue = f974244559_1881;
22799 // undefined
22800 o10 = null;
22801 // 17128
22802 f974244559_1881.returns.push("visible");
22803 // 17131
22804 o10 = {};
22805 // 17132
22806 f974244559_4.returns.push(o10);
22807 // 17133
22808 o10.getPropertyValue = f974244559_1881;
22809 // undefined
22810 o10 = null;
22811 // 17134
22812 f974244559_1881.returns.push("visible");
22813 // 17135
22814 o10 = {};
22815 // 17136
22816 f974244559_4.returns.push(o10);
22817 // 17137
22818 o10.getPropertyValue = f974244559_1881;
22819 // undefined
22820 o10 = null;
22821 // 17138
22822 f974244559_1881.returns.push("visible");
22823 // 17139
22824 o10 = {};
22825 // 17140
22826 f974244559_4.returns.push(o10);
22827 // 17141
22828 o10.getPropertyValue = f974244559_1881;
22829 // undefined
22830 o10 = null;
22831 // 17142
22832 f974244559_1881.returns.push("visible");
22833 // 17146
22834 f974244559_502.returns.push(o75);
22835 // 17147
22836 o75.contains = f974244559_702;
22837 // 17149
22838 f974244559_702.returns.push(false);
22839 // 17163
22840 o10 = {};
22841 // 17164
22842 f974244559_4.returns.push(o10);
22843 // 17165
22844 o10.getPropertyValue = f974244559_1881;
22845 // undefined
22846 o10 = null;
22847 // 17166
22848 f974244559_1881.returns.push("static");
22849 // 17167
22850 o10 = {};
22851 // 17168
22852 f974244559_4.returns.push(o10);
22853 // 17169
22854 o10.getPropertyValue = f974244559_1881;
22855 // undefined
22856 o10 = null;
22857 // 17170
22858 f974244559_1881.returns.push("static");
22859 // 17171
22860 o10 = {};
22861 // 17172
22862 f974244559_4.returns.push(o10);
22863 // 17173
22864 o10.getPropertyValue = f974244559_1881;
22865 // undefined
22866 o10 = null;
22867 // 17174
22868 f974244559_1881.returns.push("static");
22869 // 17175
22870 o10 = {};
22871 // 17176
22872 f974244559_4.returns.push(o10);
22873 // 17177
22874 o10.getPropertyValue = f974244559_1881;
22875 // undefined
22876 o10 = null;
22877 // 17178
22878 f974244559_1881.returns.push("fixed");
22879 // 17179
22880 o10 = {};
22881 // 17180
22882 f974244559_4.returns.push(o10);
22883 // 17181
22884 o10.getPropertyValue = f974244559_1881;
22885 // undefined
22886 o10 = null;
22887 // 17182
22888 f974244559_1881.returns.push("300");
22889 // 17184
22890 o25.scrollLeft = 0;
22891 // 17185
22892 o25.scrollTop = 1239;
22893 // 17191
22894 f974244559_702.returns.push(true);
22895 // 17192
22896 o15.getBoundingClientRect = f974244559_1882;
22897 // 17193
22898 o10 = {};
22899 // 17194
22900 f974244559_1882.returns.push(o10);
22901 // 17195
22902 o10.left = 990.5;
22903 // 17197
22904 o10.JSBNG__top = 6;
22905 // undefined
22906 o10 = null;
22907 // 17199
22908 o15.offsetWidth = 24;
22909 // 17200
22910 o15.offsetHeight = 31;
22911 // 17201
22912 o10 = {};
22913 // 17202
22914 o222.classList = o10;
22915 // 17204
22916 o10.add = f974244559_1110;
22917 // 17205
22918 f974244559_1110.returns.push(undefined);
22919 // 17206
22920 o220.offsetWidth = 0;
22921 // 17207
22922 o220.offsetHeight = 0;
22923 // undefined
22924 o220 = null;
22925 // 17210
22926 o10.remove = f974244559_1244;
22927 // undefined
22928 o10 = null;
22929 // 17211
22930 f974244559_1244.returns.push(undefined);
22931 // 17213
22932 o10 = {};
22933 // 17214
22934 f974244559_4.returns.push(o10);
22935 // 17215
22936 o10.getPropertyValue = f974244559_1881;
22937 // undefined
22938 o10 = null;
22939 // 17216
22940 f974244559_1881.returns.push("ltr");
22941 // 17224
22942 f974244559_1110.returns.push(undefined);
22943 // 17228
22944 f974244559_1244.returns.push(undefined);
22945 // 17232
22946 f974244559_1244.returns.push(undefined);
22947 // 17236
22948 f974244559_1244.returns.push(undefined);
22949 // 17238
22950 o10 = {};
22951 // 17239
22952 f974244559_480.returns.push(o10);
22953 // 17240
22954 // 17241
22955 o10.__html = void 0;
22956 // 17243
22957 o11 = {};
22958 // 17244
22959 f974244559_478.returns.push(o11);
22960 // 17247
22961 f974244559_482.returns.push(o11);
22962 // undefined
22963 o11 = null;
22964 // 17251
22965 f974244559_1110.returns.push(undefined);
22966 // 17252
22967 o11 = {};
22968 // 17253
22969 o10.style = o11;
22970 // undefined
22971 o10 = null;
22972 // 17254
22973 // 17256
22974 // 17258
22975 // 17260
22976 // 17262
22977 // 17264
22978 // 17265
22979 o10 = {};
22980 // undefined
22981 fo974244559_2172_style.returns.push(o10);
22982 // 17267
22983 // undefined
22984 fo974244559_2172_style.returns.push(o10);
22985 // 17269
22986 // 17273
22987 f974244559_1110.returns.push(undefined);
22988 // 17277
22989 f974244559_1110.returns.push(undefined);
22990 // 17285
22991 f974244559_702.returns.push(true);
22992 // 17287
22993 o12 = {};
22994 // 17288
22995 f974244559_1882.returns.push(o12);
22996 // 17289
22997 o12.left = 990.5;
22998 // 17291
22999 o12.JSBNG__top = 6;
23000 // undefined
23001 o12 = null;
23002 // undefined
23003 fo974244559_2174_style.returns.push(o9);
23004 // 17296
23005 // undefined
23006 fo974244559_2174_style.returns.push(o9);
23007 // 17298
23008 // 17302
23009 f974244559_1617.returns.push(false);
23010 // 17307
23011 f974244559_1617.returns.push(false);
23012 // 17312
23013 f974244559_1617.returns.push(false);
23014 // 17317
23015 f974244559_1617.returns.push(false);
23016 // 17322
23017 f974244559_1617.returns.push(false);
23018 // 17327
23019 f974244559_1617.returns.push(false);
23020 // 17332
23021 f974244559_1617.returns.push(false);
23022 // 17337
23023 f974244559_1617.returns.push(false);
23024 // 17342
23025 f974244559_1617.returns.push(false);
23026 // 17347
23027 f974244559_1617.returns.push(false);
23028 // 17352
23029 f974244559_1617.returns.push(false);
23030 // 17357
23031 f974244559_1617.returns.push(false);
23032 // 17362
23033 f974244559_1617.returns.push(false);
23034 // 17367
23035 f974244559_1617.returns.push(false);
23036 // 17379
23037 f974244559_702.returns.push(false);
23038 // 17383
23039 o223.offsetWidth = 0;
23040 // undefined
23041 fo974244559_2174_style.returns.push(o9);
23042 // 17385
23043 // undefined
23044 fo974244559_2174_style.returns.push(o9);
23045 // 17387
23046 // 17391
23047 f974244559_1617.returns.push(false);
23048 // 17396
23049 f974244559_1617.returns.push(false);
23050 // 17401
23051 f974244559_1617.returns.push(false);
23052 // 17406
23053 f974244559_1617.returns.push(false);
23054 // 17411
23055 f974244559_1617.returns.push(false);
23056 // 17416
23057 f974244559_1617.returns.push(false);
23058 // 17421
23059 f974244559_1617.returns.push(false);
23060 // 17426
23061 f974244559_1617.returns.push(false);
23062 // 17431
23063 f974244559_1617.returns.push(false);
23064 // 17436
23065 f974244559_1617.returns.push(false);
23066 // 17441
23067 f974244559_1617.returns.push(false);
23068 // 17446
23069 f974244559_1617.returns.push(false);
23070 // 17451
23071 f974244559_1617.returns.push(false);
23072 // 17456
23073 f974244559_1617.returns.push(false);
23074 // 17474
23075 o12 = {};
23076 // 17475
23077 f974244559_4.returns.push(o12);
23078 // 17476
23079 o12.getPropertyValue = f974244559_1881;
23080 // undefined
23081 o12 = null;
23082 // 17477
23083 f974244559_1881.returns.push("static");
23084 // 17478
23085 o12 = {};
23086 // 17479
23087 f974244559_4.returns.push(o12);
23088 // 17480
23089 o12.getPropertyValue = f974244559_1881;
23090 // undefined
23091 o12 = null;
23092 // 17481
23093 f974244559_1881.returns.push("static");
23094 // 17482
23095 o12 = {};
23096 // 17483
23097 f974244559_4.returns.push(o12);
23098 // 17484
23099 o12.getPropertyValue = f974244559_1881;
23100 // undefined
23101 o12 = null;
23102 // 17485
23103 f974244559_1881.returns.push("static");
23104 // 17486
23105 o12 = {};
23106 // 17487
23107 f974244559_4.returns.push(o12);
23108 // 17488
23109 o12.getPropertyValue = f974244559_1881;
23110 // undefined
23111 o12 = null;
23112 // 17489
23113 f974244559_1881.returns.push("fixed");
23114 // 17490
23115 o12 = {};
23116 // 17491
23117 f974244559_4.returns.push(o12);
23118 // 17492
23119 o12.getPropertyValue = f974244559_1881;
23120 // undefined
23121 o12 = null;
23122 // 17493
23123 f974244559_1881.returns.push("300");
23124 // undefined
23125 fo974244559_2174_style.returns.push(o9);
23126 // 17495
23127 // 17500
23128 o12 = {};
23129 // 17501
23130 f974244559_4.returns.push(o12);
23131 // 17502
23132 o12.getPropertyValue = f974244559_1881;
23133 // undefined
23134 o12 = null;
23135 // 17503
23136 f974244559_1881.returns.push("");
23137 // undefined
23138 fo974244559_2174_style.returns.push(o9);
23139 // 17505
23140 // 17513
23141 f974244559_702.returns.push(true);
23142 // 17514
23143 o12 = {};
23144 // 17515
23145 f974244559_4.returns.push(o12);
23146 // 17516
23147 o12.getPropertyValue = f974244559_1881;
23148 // undefined
23149 o12 = null;
23150 // 17517
23151 f974244559_1881.returns.push("static");
23152 // 17522
23153 f974244559_702.returns.push(true);
23154 // 17523
23155 o12 = {};
23156 // 17524
23157 f974244559_4.returns.push(o12);
23158 // 17525
23159 o12.getPropertyValue = f974244559_1881;
23160 // undefined
23161 o12 = null;
23162 // 17526
23163 f974244559_1881.returns.push("relative");
23164 // 17531
23165 f974244559_702.returns.push(true);
23166 // 17532
23167 o12 = {};
23168 // 17533
23169 f974244559_4.returns.push(o12);
23170 // 17534
23171 o12.getPropertyValue = f974244559_1881;
23172 // undefined
23173 o12 = null;
23174 // 17535
23175 f974244559_1881.returns.push("relative");
23176 // 17540
23177 f974244559_702.returns.push(true);
23178 // 17541
23179 o12 = {};
23180 // 17542
23181 f974244559_4.returns.push(o12);
23182 // 17543
23183 o12.getPropertyValue = f974244559_1881;
23184 // undefined
23185 o12 = null;
23186 // 17544
23187 f974244559_1881.returns.push("static");
23188 // 17549
23189 f974244559_702.returns.push(true);
23190 // 17550
23191 o12 = {};
23192 // 17551
23193 f974244559_4.returns.push(o12);
23194 // 17552
23195 o12.getPropertyValue = f974244559_1881;
23196 // undefined
23197 o12 = null;
23198 // 17553
23199 f974244559_1881.returns.push("static");
23200 // 17558
23201 f974244559_702.returns.push(true);
23202 // 17559
23203 o12 = {};
23204 // 17560
23205 f974244559_4.returns.push(o12);
23206 // 17561
23207 o12.getPropertyValue = f974244559_1881;
23208 // undefined
23209 o12 = null;
23210 // 17562
23211 f974244559_1881.returns.push("static");
23212 // 17567
23213 f974244559_702.returns.push(true);
23214 // 17568
23215 o12 = {};
23216 // 17569
23217 f974244559_4.returns.push(o12);
23218 // 17570
23219 o12.getPropertyValue = f974244559_1881;
23220 // undefined
23221 o12 = null;
23222 // 17571
23223 f974244559_1881.returns.push("static");
23224 // 17576
23225 f974244559_702.returns.push(true);
23226 // 17577
23227 o12 = {};
23228 // 17578
23229 f974244559_4.returns.push(o12);
23230 // 17579
23231 o12.getPropertyValue = f974244559_1881;
23232 // undefined
23233 o12 = null;
23234 // 17580
23235 f974244559_1881.returns.push("static");
23236 // 17585
23237 f974244559_702.returns.push(true);
23238 // 17586
23239 o12 = {};
23240 // 17587
23241 f974244559_4.returns.push(o12);
23242 // 17588
23243 o12.getPropertyValue = f974244559_1881;
23244 // undefined
23245 o12 = null;
23246 // 17589
23247 f974244559_1881.returns.push("fixed");
23248 // 17593
23249 f974244559_1617.returns.push(false);
23250 // 17598
23251 f974244559_1617.returns.push(false);
23252 // 17603
23253 f974244559_1617.returns.push(false);
23254 // 17608
23255 f974244559_1617.returns.push(false);
23256 // 17613
23257 f974244559_1617.returns.push(false);
23258 // 17618
23259 f974244559_1617.returns.push(false);
23260 // 17623
23261 f974244559_1617.returns.push(false);
23262 // 17628
23263 f974244559_1617.returns.push(false);
23264 // 17633
23265 f974244559_1617.returns.push(false);
23266 // 17638
23267 f974244559_1617.returns.push(false);
23268 // 17643
23269 f974244559_1617.returns.push(false);
23270 // 17648
23271 f974244559_1617.returns.push(false);
23272 // 17653
23273 f974244559_1617.returns.push(false);
23274 // 17658
23275 f974244559_1617.returns.push(false);
23276 // 17665
23277 o12 = {};
23278 // 17666
23279 f974244559_4.returns.push(o12);
23280 // 17667
23281 o12.getPropertyValue = f974244559_1881;
23282 // undefined
23283 o12 = null;
23284 // 17668
23285 f974244559_1881.returns.push("static");
23286 // 17673
23287 f974244559_702.returns.push(false);
23288 // 17676
23289 f974244559_471.returns.push(1373491298985);
23290 // 17677
23291 f974244559_468.returns.push(5);
23292 // 17679
23293 f974244559_471.returns.push(1373491298986);
23294 // 17680
23295 f974244559_12.returns.push(61);
23296 // 17682
23297 f974244559_471.returns.push(1373491298986);
23298 // 17684
23299 f974244559_471.returns.push(1373491298986);
23300 // undefined
23301 fo974244559_2174_style.returns.push(o9);
23302 // 17686
23303 // 17690
23304 f974244559_527.returns.push(false);
23305 // 17694
23306 f974244559_527.returns.push(false);
23307 // 17698
23308 f974244559_527.returns.push(false);
23309 // 17702
23310 f974244559_527.returns.push(false);
23311 // 17706
23312 f974244559_527.returns.push(false);
23313 // 17710
23314 f974244559_527.returns.push(false);
23315 // 17714
23316 f974244559_527.returns.push(false);
23317 // 17718
23318 f974244559_527.returns.push(false);
23319 // 17722
23320 f974244559_527.returns.push(false);
23321 // 17723
23322 f974244559_468.returns.push(6);
23323 // 17725
23324 o222.nodeName = "DIV";
23325 // 17726
23326 o222.__FB_TOKEN = void 0;
23327 // 17727
23328 // 17728
23329 o222.getAttribute = f974244559_500;
23330 // 17729
23331 o222.hasAttribute = f974244559_527;
23332 // 17731
23333 f974244559_527.returns.push(false);
23334 // 17732
23335 o222.JSBNG__addEventListener = f974244559_472;
23336 // 17734
23337 f974244559_472.returns.push(undefined);
23338 // 17735
23339 o222.JSBNG__onmouseover = null;
23340 // 17740
23341 f974244559_472.returns.push(undefined);
23342 // 17741
23343 o222.JSBNG__onmouseout = null;
23344 // 17744
23345 f974244559_2178.returns.push("hide");
23346 // 17745
23347 f974244559_12.returns.push(62);
23348 // undefined
23349 fo974244559_2174_style.returns.push(o9);
23350 // 17747
23351 // undefined
23352 fo974244559_2174_style.returns.push(o9);
23353 // 17749
23354 // 17751
23355 o222.getElementsByTagName = f974244559_514;
23356 // 17753
23357 o222.querySelectorAll = f974244559_523;
23358 // undefined
23359 o222 = null;
23360 // 17754
23361 o12 = {};
23362 // 17755
23363 f974244559_523.returns.push(o12);
23364 // 17756
23365 o12.length = 0;
23366 // undefined
23367 o12 = null;
23368 // 17758
23369 o12 = {};
23370 // 17759
23371 f974244559_480.returns.push(o12);
23372 // 17760
23373 // 17761
23374 // 17762
23375 o12.firstChild = null;
23376 // 17764
23377 o14 = {};
23378 // 17765
23379 f974244559_478.returns.push(o14);
23380 // 17767
23381 o16 = {};
23382 // 17768
23383 f974244559_1659.returns.push(o16);
23384 // 17769
23385 o14.appendChild = f974244559_482;
23386 // 17770
23387 f974244559_482.returns.push(o16);
23388 // undefined
23389 o16 = null;
23390 // 17771
23391 o12.appendChild = f974244559_482;
23392 // 17772
23393 f974244559_482.returns.push(o14);
23394 // undefined
23395 o14 = null;
23396 // 17773
23397 o12.__html = void 0;
23398 // 17775
23399 o14 = {};
23400 // 17776
23401 f974244559_478.returns.push(o14);
23402 // 17779
23403 f974244559_482.returns.push(o14);
23404 // undefined
23405 o14 = null;
23406 // 17780
23407 o12.nodeName = "A";
23408 // 17781
23409 o12.__FB_TOKEN = void 0;
23410 // 17782
23411 // 17783
23412 o12.getAttribute = f974244559_500;
23413 // 17784
23414 o12.hasAttribute = f974244559_527;
23415 // 17786
23416 f974244559_527.returns.push(false);
23417 // 17787
23418 o12.JSBNG__addEventListener = f974244559_472;
23419 // 17789
23420 f974244559_472.returns.push(undefined);
23421 // 17790
23422 o12.JSBNG__onclick = null;
23423 // undefined
23424 o12 = null;
23425 // 17793
23426 o223.getElementsByTagName = f974244559_514;
23427 // 17795
23428 o223.querySelectorAll = f974244559_523;
23429 // 17796
23430 o12 = {};
23431 // 17797
23432 f974244559_523.returns.push(o12);
23433 // 17798
23434 o12.length = 0;
23435 // undefined
23436 o12 = null;
23437 // 17801
23438 o12 = {};
23439 // 17802
23440 f974244559_514.returns.push(o12);
23441 // 17803
23442 o12.tabIndex = void 0;
23443 // 17804
23444 o12.tagName = void 0;
23445 // undefined
23446 o12 = null;
23447 // 17805
23448 // 17809
23449 f974244559_1110.returns.push(undefined);
23450 // 17813
23451 f974244559_472.returns.push(undefined);
23452 // 17814
23453 o223.JSBNG__onJSBNG__blur = void 0;
23454 // 17816
23455 // 17817
23456 o223.JSBNG__focus = f974244559_1628;
23457 // 17818
23458 f974244559_1628.returns.push(undefined);
23459 // 17819
23460 o223.setAttribute = f974244559_643;
23461 // undefined
23462 o223 = null;
23463 // 17820
23464 o15.id = "userNavigationLabel";
23465 // undefined
23466 o15 = null;
23467 // 17821
23468 f974244559_643.returns.push(undefined);
23469 // 17822
23470 f974244559_2468 = function() { return f974244559_2468.returns[f974244559_2468.inst++]; };
23471 f974244559_2468.returns = [];
23472 f974244559_2468.inst = 0;
23473 // 17823
23474 o200._handleJSRegisters = f974244559_2468;
23475 // 17824
23476 f974244559_2468.returns.push(undefined);
23477 // 17825
23478 o200.lid = void 0;
23479 // 17827
23480 f974244559_2468.returns.push(undefined);
23481 // 17828
23482 f974244559_2163.returns.push(undefined);
23483 // 17829
23484 o200.finallyHandler = f974244559_2110;
23485 // 17830
23486 f974244559_2110.returns.push(undefined);
23487 // 17831
23488 f974244559_2132.returns.push(undefined);
23489 // 17834
23490 f974244559_471.returns.push(1373491299007);
23491 // undefined
23492 fo974244559_2174_style.returns.push(o9);
23493 // 17836
23494 // 17837
23495 f974244559_468.returns.push(7);
23496 // 17840
23497 f974244559_471.returns.push(1373491299007);
23498 // undefined
23499 fo974244559_2174_style.returns.push(o9);
23500 // 17842
23501 // 17843
23502 f974244559_468.returns.push(8);
23503 // 17844
23504 o12 = {};
23505 // 17847
23506 o12.cancelBubble = false;
23507 // 17850
23508 f974244559_471.returns.push(1373491299011);
23509 // 17852
23510 o12.returnValue = true;
23511 // undefined
23512 o12 = null;
23513 // 17854
23514 o96.clearStatusIndicator = f974244559_2161;
23515 // 17855
23516 o96.getStatusElement = f974244559_2162;
23517 // 17856
23518 o96.statusElement = null;
23519 // 17857
23520 f974244559_2162.returns.push(null);
23521 // 17858
23522 f974244559_2161.returns.push(undefined);
23523 // 17863
23524 f974244559_2131.returns.push(true);
23525 // 17864
23526 f974244559_2470 = function() { return f974244559_2470.returns[f974244559_2470.inst++]; };
23527 f974244559_2470.returns = [];
23528 f974244559_2470.inst = 0;
23529 // 17865
23530 o96.initialHandler = f974244559_2470;
23531 // 17866
23532 f974244559_2470.returns.push(true);
23533 // 17867
23534 o96.timer = null;
23535 // 17868
23536 f974244559_14.returns.push(undefined);
23537 // 17870
23538 o96._handleJSResponse = f974244559_2163;
23539 // 17871
23540 o96.getRelativeTo = f974244559_2164;
23541 // 17872
23542 o96.relativeTo = null;
23543 // 17873
23544 f974244559_2164.returns.push(null);
23545 // 17874
23546 o96._handleJSRegisters = f974244559_2468;
23547 // 17875
23548 f974244559_2468.returns.push(undefined);
23549 // 17876
23550 o96.lid = void 0;
23551 // 17878
23552 f974244559_2468.returns.push(undefined);
23553 // 17879
23554 f974244559_2163.returns.push(undefined);
23555 // 17880
23556 f974244559_2471 = function() { return f974244559_2471.returns[f974244559_2471.inst++]; };
23557 f974244559_2471.returns = [];
23558 f974244559_2471.inst = 0;
23559 // 17881
23560 o96.finallyHandler = f974244559_2471;
23561 // 17882
23562 f974244559_2471.returns.push(undefined);
23563 // 17883
23564 f974244559_2132.returns.push(undefined);
23565 // 17885
23566 o122.clearStatusIndicator = f974244559_2161;
23567 // 17886
23568 o122.getStatusElement = f974244559_2162;
23569 // 17887
23570 o122.statusElement = null;
23571 // 17888
23572 f974244559_2162.returns.push(null);
23573 // 17889
23574 f974244559_2161.returns.push(undefined);
23575 // 17894
23576 f974244559_2131.returns.push(true);
23577 // 17895
23578 o122.initialHandler = f974244559_2110;
23579 // 17896
23580 f974244559_2110.returns.push(undefined);
23581 // 17897
23582 o122.timer = null;
23583 // 17898
23584 f974244559_14.returns.push(undefined);
23585 // 17900
23586 f974244559_2472 = function() { return f974244559_2472.returns[f974244559_2472.inst++]; };
23587 f974244559_2472.returns = [];
23588 f974244559_2472.inst = 0;
23589 // 17901
23590 o122._shouldSuppressJS = f974244559_2472;
23591 // 17903
23592 f974244559_2157.returns.push(undefined);
23593 // 17904
23594 f974244559_2472.returns.push(false);
23595 // 17905
23596 o122._handleJSResponse = f974244559_2163;
23597 // 17906
23598 o122.getRelativeTo = f974244559_2164;
23599 // 17907
23600 o122.relativeTo = null;
23601 // 17908
23602 f974244559_2164.returns.push(null);
23603 // 17909
23604 o122._handleJSRegisters = f974244559_2468;
23605 // 17910
23606 f974244559_2468.returns.push(undefined);
23607 // 17911
23608 o122.lid = void 0;
23609 // 17913
23610 f974244559_2468.returns.push(undefined);
23611 // 17914
23612 f974244559_2163.returns.push(undefined);
23613 // 17915
23614 o122.finallyHandler = f974244559_2110;
23615 // 17916
23616 f974244559_2110.returns.push(undefined);
23617 // 17917
23618 f974244559_2132.returns.push(undefined);
23619 // 17918
23620 o12 = {};
23621 // 17920
23622 o14 = {};
23623 // 17921
23624 o14._shown = true;
23625 // undefined
23626 o14 = null;
23627 // 17927
23628 f974244559_2178.returns.push("FriendRequest/cancel");
23629 // 17928
23630 f974244559_2178.returns.push("FriendRequest/unfriend");
23631 // 17929
23632 f974244559_2178.returns.push("FriendRequest/sendFail");
23633 // 17931
23634 f974244559_2178.returns.push("FriendRequest/confirmFail");
23635 // 17933
23636 f974244559_2178.returns.push("FriendRequest/cancelFail");
23637 // 17934
23638 f974244559_2178.returns.push("FriendRequest/sent");
23639 // 17935
23640 f974244559_2178.returns.push("FriendRequest/sending");
23641 // 17937
23642 f974244559_2178.returns.push("FriendRequest/confirm");
23643 // 17938
23644 f974244559_2178.returns.push("FriendRequest/confirming");
23645 // 17943
23646 f974244559_2178.returns.push("UnfollowUser");
23647 // 17945
23648 f974244559_2178.returns.push("UpdateSubscriptionLevel");
23649 // 17947
23650 f974244559_2178.returns.push("FriendRequest/change");
23651 // 17949
23652 f974244559_2178.returns.push("select");
23653 // 17954
23654 f974244559_471.returns.push(1373491299104);
23655 // 17959
23656 f974244559_471.returns.push(1373491299105);
23657 // 17963
23658 f974244559_471.returns.push(1373491299105);
23659 // 17967
23660 o14 = {};
23661 // 17968
23662 f974244559_502.returns.push(o14);
23663 // 17969
23664 o14.id = "u_0_3n";
23665 // 17970
23666 o14.getElementsByTagName = f974244559_514;
23667 // 17972
23668 o14.querySelectorAll = f974244559_523;
23669 // undefined
23670 o14 = null;
23671 // 17973
23672 o14 = {};
23673 // 17974
23674 f974244559_523.returns.push(o14);
23675 // 17975
23676 o14.length = 1;
23677 // 17976
23678 o15 = {};
23679 // 17977
23680 o14["0"] = o15;
23681 // undefined
23682 o14 = null;
23683 // 17981
23684 o14 = {};
23685 // 17982
23686 f974244559_523.returns.push(o14);
23687 // 17983
23688 o14.length = 0;
23689 // undefined
23690 o14 = null;
23691 // 17987
23692 o14 = {};
23693 // 17988
23694 f974244559_523.returns.push(o14);
23695 // 17989
23696 o14.length = 1;
23697 // 17990
23698 o16 = {};
23699 // 17991
23700 o14["0"] = o16;
23701 // undefined
23702 o14 = null;
23703 // undefined
23704 o16 = null;
23705 // 17995
23706 o14 = {};
23707 // 17996
23708 f974244559_523.returns.push(o14);
23709 // 17997
23710 o14.length = 0;
23711 // undefined
23712 o14 = null;
23713 // 18001
23714 o14 = {};
23715 // 18002
23716 f974244559_523.returns.push(o14);
23717 // 18003
23718 o14.length = 0;
23719 // undefined
23720 o14 = null;
23721 // 18005
23722 f974244559_2178.returns.push("FriendRequest/change");
23723 // 18007
23724 f974244559_2178.returns.push("FriendRequest/confirm");
23725 // 18008
23726 o15.nodeName = "LABEL";
23727 // 18009
23728 o15.getElementsByTagName = f974244559_514;
23729 // undefined
23730 o15 = null;
23731 // 18010
23732 o14 = {};
23733 // 18011
23734 f974244559_514.returns.push(o14);
23735 // 18012
23736 o14.length = 1;
23737 // 18013
23738 o15 = {};
23739 // 18014
23740 o14["0"] = o15;
23741 // undefined
23742 o14 = null;
23743 // 18015
23744 o15.__FB_TOKEN = void 0;
23745 // 18016
23746 // 18017
23747 o15.getAttribute = f974244559_500;
23748 // 18018
23749 o15.hasAttribute = f974244559_527;
23750 // 18020
23751 f974244559_527.returns.push(false);
23752 // 18021
23753 o15.JSBNG__addEventListener = f974244559_472;
23754 // 18023
23755 f974244559_472.returns.push(undefined);
23756 // 18024
23757 o15.JSBNG__onclick = null;
23758 // 18025
23759 o15.nodeName = "INPUT";
23760 // undefined
23761 o15 = null;
23762 // 18028
23763 o14 = {};
23764 // 18029
23765 f974244559_502.returns.push(o14);
23766 // 18030
23767 o14.id = "u_0_q";
23768 // 18031
23769 o14.getElementsByTagName = f974244559_514;
23770 // 18033
23771 o14.querySelectorAll = f974244559_523;
23772 // undefined
23773 o14 = null;
23774 // 18034
23775 o14 = {};
23776 // 18035
23777 f974244559_523.returns.push(o14);
23778 // 18036
23779 o14.length = 1;
23780 // 18037
23781 o15 = {};
23782 // 18038
23783 o14["0"] = o15;
23784 // undefined
23785 o14 = null;
23786 // 18042
23787 o14 = {};
23788 // 18043
23789 f974244559_523.returns.push(o14);
23790 // 18044
23791 o14.length = 1;
23792 // 18045
23793 o16 = {};
23794 // 18046
23795 o14["0"] = o16;
23796 // undefined
23797 o14 = null;
23798 // undefined
23799 o16 = null;
23800 // 18050
23801 o14 = {};
23802 // 18051
23803 f974244559_523.returns.push(o14);
23804 // 18052
23805 o14.length = 1;
23806 // 18053
23807 o16 = {};
23808 // 18054
23809 o14["0"] = o16;
23810 // undefined
23811 o14 = null;
23812 // undefined
23813 o16 = null;
23814 // 18058
23815 o14 = {};
23816 // 18059
23817 f974244559_523.returns.push(o14);
23818 // 18060
23819 o14.length = 0;
23820 // undefined
23821 o14 = null;
23822 // 18064
23823 o14 = {};
23824 // 18065
23825 f974244559_523.returns.push(o14);
23826 // 18066
23827 o14.length = 0;
23828 // undefined
23829 o14 = null;
23830 // 18068
23831 f974244559_2178.returns.push("FriendRequest/change");
23832 // 18069
23833 o15.nodeName = "A";
23834 // 18070
23835 o15.__FB_TOKEN = void 0;
23836 // 18071
23837 // 18072
23838 o15.getAttribute = f974244559_500;
23839 // 18073
23840 o15.hasAttribute = f974244559_527;
23841 // 18075
23842 f974244559_527.returns.push(false);
23843 // 18076
23844 o15.JSBNG__addEventListener = f974244559_472;
23845 // 18078
23846 f974244559_472.returns.push(undefined);
23847 // 18079
23848 o15.JSBNG__onclick = null;
23849 // undefined
23850 o15 = null;
23851 // 18083
23852 o14 = {};
23853 // 18084
23854 f974244559_502.returns.push(o14);
23855 // 18085
23856 o14.id = "u_0_o";
23857 // 18086
23858 o14.getElementsByTagName = f974244559_514;
23859 // 18088
23860 o14.querySelectorAll = f974244559_523;
23861 // undefined
23862 o14 = null;
23863 // 18089
23864 o14 = {};
23865 // 18090
23866 f974244559_523.returns.push(o14);
23867 // 18091
23868 o14.length = 1;
23869 // 18092
23870 o15 = {};
23871 // 18093
23872 o14["0"] = o15;
23873 // undefined
23874 o14 = null;
23875 // 18097
23876 o14 = {};
23877 // 18098
23878 f974244559_523.returns.push(o14);
23879 // 18099
23880 o14.length = 0;
23881 // undefined
23882 o14 = null;
23883 // 18103
23884 o14 = {};
23885 // 18104
23886 f974244559_523.returns.push(o14);
23887 // 18105
23888 o14.length = 1;
23889 // 18106
23890 o16 = {};
23891 // 18107
23892 o14["0"] = o16;
23893 // undefined
23894 o14 = null;
23895 // undefined
23896 o16 = null;
23897 // 18111
23898 o14 = {};
23899 // 18112
23900 f974244559_523.returns.push(o14);
23901 // 18113
23902 o14.length = 0;
23903 // undefined
23904 o14 = null;
23905 // 18117
23906 o14 = {};
23907 // 18118
23908 f974244559_523.returns.push(o14);
23909 // 18119
23910 o14.length = 0;
23911 // undefined
23912 o14 = null;
23913 // 18121
23914 f974244559_2178.returns.push("FriendRequest/change");
23915 // 18123
23916 f974244559_2178.returns.push("FriendRequest/confirm");
23917 // 18124
23918 o15.nodeName = "LABEL";
23919 // 18125
23920 o15.getElementsByTagName = f974244559_514;
23921 // undefined
23922 o15 = null;
23923 // 18126
23924 o14 = {};
23925 // 18127
23926 f974244559_514.returns.push(o14);
23927 // 18128
23928 o14.length = 1;
23929 // 18129
23930 o15 = {};
23931 // 18130
23932 o14["0"] = o15;
23933 // undefined
23934 o14 = null;
23935 // 18131
23936 o15.__FB_TOKEN = void 0;
23937 // 18132
23938 // 18133
23939 o15.getAttribute = f974244559_500;
23940 // 18134
23941 o15.hasAttribute = f974244559_527;
23942 // 18136
23943 f974244559_527.returns.push(false);
23944 // 18137
23945 o15.JSBNG__addEventListener = f974244559_472;
23946 // 18139
23947 f974244559_472.returns.push(undefined);
23948 // 18140
23949 o15.JSBNG__onclick = null;
23950 // 18141
23951 o15.nodeName = "INPUT";
23952 // undefined
23953 o15 = null;
23954 // 18144
23955 o14 = {};
23956 // 18145
23957 f974244559_502.returns.push(o14);
23958 // 18146
23959 o14.id = "u_0_14";
23960 // 18147
23961 o14.getElementsByTagName = f974244559_514;
23962 // 18149
23963 o14.querySelectorAll = f974244559_523;
23964 // 18150
23965 o15 = {};
23966 // 18151
23967 f974244559_523.returns.push(o15);
23968 // 18152
23969 o15.length = 1;
23970 // 18153
23971 o16 = {};
23972 // 18154
23973 o15["0"] = o16;
23974 // undefined
23975 o15 = null;
23976 // 18158
23977 o15 = {};
23978 // 18159
23979 f974244559_523.returns.push(o15);
23980 // 18160
23981 o15.length = 0;
23982 // undefined
23983 o15 = null;
23984 // 18164
23985 o15 = {};
23986 // 18165
23987 f974244559_523.returns.push(o15);
23988 // 18166
23989 o15.length = 1;
23990 // 18167
23991 o17 = {};
23992 // 18168
23993 o15["0"] = o17;
23994 // undefined
23995 o15 = null;
23996 // undefined
23997 o17 = null;
23998 // 18172
23999 o15 = {};
24000 // 18173
24001 f974244559_523.returns.push(o15);
24002 // 18174
24003 o15.length = 0;
24004 // undefined
24005 o15 = null;
24006 // 18178
24007 o15 = {};
24008 // 18179
24009 f974244559_523.returns.push(o15);
24010 // 18180
24011 o15.length = 0;
24012 // undefined
24013 o15 = null;
24014 // 18182
24015 f974244559_2178.returns.push("FriendRequest/change");
24016 // 18184
24017 f974244559_2178.returns.push("FriendRequest/confirm");
24018 // 18185
24019 o16.nodeName = "LABEL";
24020 // 18186
24021 o16.getElementsByTagName = f974244559_514;
24022 // undefined
24023 o16 = null;
24024 // 18187
24025 o15 = {};
24026 // 18188
24027 f974244559_514.returns.push(o15);
24028 // 18189
24029 o15.length = 1;
24030 // 18190
24031 o16 = {};
24032 // 18191
24033 o15["0"] = o16;
24034 // undefined
24035 o15 = null;
24036 // 18192
24037 o16.__FB_TOKEN = void 0;
24038 // 18193
24039 // 18194
24040 o16.getAttribute = f974244559_500;
24041 // 18195
24042 o16.hasAttribute = f974244559_527;
24043 // 18197
24044 f974244559_527.returns.push(false);
24045 // 18198
24046 o16.JSBNG__addEventListener = f974244559_472;
24047 // 18200
24048 f974244559_472.returns.push(undefined);
24049 // 18201
24050 o16.JSBNG__onclick = null;
24051 // 18202
24052 o16.nodeName = "INPUT";
24053 // undefined
24054 o16 = null;
24055 // 18207
24056 f974244559_472.returns.push(undefined);
24057 // 18208
24058 o78.JSBNG__onmouseover = null;
24059 // 18211
24060 f974244559_2178.returns.push("init");
24061 // 18213
24062 f974244559_2178.returns.push("show");
24063 // 18215
24064 f974244559_2178.returns.push("hide");
24065 // 18221
24066 f974244559_472.returns.push(undefined);
24067 // 18222
24068 o78.JSBNG__onmouseout = null;
24069 // undefined
24070 o78 = null;
24071 // 18225
24072 f974244559_2178.returns.push("setMenu");
24073 // 18227
24074 o15 = {};
24075 // 18228
24076 o16 = {};
24077 // 18230
24078 o15.length = 1;
24079 // 18231
24080 o15["0"] = "3SGVa";
24081 // 18234
24082 f974244559_471.returns.push(1373491299155);
24083 // 18237
24084 f974244559_471.returns.push(1373491299155);
24085 // 18239
24086 f974244559_471.returns.push(1373491299156);
24087 // 18250
24088 f974244559_471.returns.push(1373491299266);
24089 // 18253
24090 f974244559_502.returns.push(o64);
24091 // 18254
24092 o64.getElementsByTagName = f974244559_514;
24093 // 18256
24094 o64.querySelectorAll = f974244559_523;
24095 // 18257
24096 o17 = {};
24097 // 18258
24098 f974244559_523.returns.push(o17);
24099 // 18259
24100 o17.length = 1;
24101 // 18260
24102 o18 = {};
24103 // 18261
24104 o17["0"] = o18;
24105 // undefined
24106 o17 = null;
24107 // 18265
24108 o17 = {};
24109 // 18266
24110 f974244559_523.returns.push(o17);
24111 // 18267
24112 o17.length = 5;
24113 // 18268
24114 o17["0"] = o18;
24115 // undefined
24116 o18 = null;
24117 // 18269
24118 o18 = {};
24119 // 18270
24120 o17["1"] = o18;
24121 // undefined
24122 o18 = null;
24123 // 18271
24124 o18 = {};
24125 // 18272
24126 o17["2"] = o18;
24127 // undefined
24128 o18 = null;
24129 // 18273
24130 o18 = {};
24131 // 18274
24132 o17["3"] = o18;
24133 // undefined
24134 o18 = null;
24135 // 18275
24136 o17["4"] = o77;
24137 // undefined
24138 o17 = null;
24139 // 18276
24140 o17 = {};
24141 // 18277
24142 o64.classList = o17;
24143 // undefined
24144 o64 = null;
24145 // 18279
24146 o17.contains = f974244559_1617;
24147 // undefined
24148 o17 = null;
24149 // 18280
24150 f974244559_1617.returns.push(false);
24151 // 18282
24152 o17 = {};
24153 // 18283
24154 o65.classList = o17;
24155 // 18285
24156 o17.contains = f974244559_1617;
24157 // undefined
24158 o17 = null;
24159 // 18286
24160 f974244559_1617.returns.push(true);
24161 // 18287
24162 o65.offsetWidth = 850;
24163 // undefined
24164 o65 = null;
24165 // 18288
24166 o77.offsetLeft = 536;
24167 // 18289
24168 o77.offsetWidth = 84;
24169 // undefined
24170 o77 = null;
24171 // 18295
24172 f974244559_1617.returns.push(false);
24173 // 18300
24174 f974244559_1617.returns.push(false);
24175 // 18302
24176 o17 = {};
24177 // 18303
24178 o66.classList = o17;
24179 // 18305
24180 o17.contains = f974244559_1617;
24181 // undefined
24182 o17 = null;
24183 // 18306
24184 f974244559_1617.returns.push(false);
24185 // 18308
24186 o17 = {};
24187 // 18309
24188 o67.classList = o17;
24189 // 18311
24190 o17.contains = f974244559_1617;
24191 // undefined
24192 o17 = null;
24193 // 18312
24194 f974244559_1617.returns.push(false);
24195 // 18314
24196 o17 = {};
24197 // 18315
24198 o68.classList = o17;
24199 // undefined
24200 o68 = null;
24201 // 18317
24202 o17.contains = f974244559_1617;
24203 // undefined
24204 o17 = null;
24205 // 18318
24206 f974244559_1617.returns.push(false);
24207 // 18320
24208 o17 = {};
24209 // 18321
24210 o69.classList = o17;
24211 // undefined
24212 o69 = null;
24213 // 18323
24214 o17.contains = f974244559_1617;
24215 // 18324
24216 f974244559_1617.returns.push(true);
24217 // 18327
24218 o17.remove = f974244559_1244;
24219 // undefined
24220 o17 = null;
24221 // 18328
24222 f974244559_1244.returns.push(undefined);
24223 // 18330
24224 f974244559_2178.returns.push("Medley/transitionToSection");
24225 // 18337
24226 f974244559_2178.returns.push("sidebar/initialized");
24227 // 18338
24228 f974244559_2178.returns.push("sidebar/show");
24229 // 18339
24230 f974244559_2178.returns.push("sidebar/hide");
24231 // 18344
24232 f974244559_2178.returns.push("TimelineCover/coverCollapsed");
24233 // 18347
24234 o17 = {};
24235 // 18348
24236 f974244559_502.returns.push(o17);
24237 // 18349
24238 o18 = {};
24239 // 18350
24240 o17.style = o18;
24241 // 18351
24242 // undefined
24243 o18 = null;
24244 // 18353
24245 f974244559_502.returns.push(o40);
24246 // 18354
24247 o40.firstChild = null;
24248 // undefined
24249 o40 = null;
24250 // 18358
24251 o8.scrollWidth = 1050;
24252 // 18366
24253 f974244559_702.returns.push(true);
24254 // 18367
24255 o18 = {};
24256 // 18368
24257 f974244559_4.returns.push(o18);
24258 // 18369
24259 o18.getPropertyValue = f974244559_1881;
24260 // undefined
24261 o18 = null;
24262 // 18370
24263 f974244559_1881.returns.push("static");
24264 // 18375
24265 f974244559_702.returns.push(true);
24266 // 18376
24267 o18 = {};
24268 // 18377
24269 f974244559_4.returns.push(o18);
24270 // 18378
24271 o18.getPropertyValue = f974244559_1881;
24272 // undefined
24273 o18 = null;
24274 // 18379
24275 f974244559_1881.returns.push("relative");
24276 // 18384
24277 f974244559_702.returns.push(true);
24278 // 18385
24279 o18 = {};
24280 // 18386
24281 f974244559_4.returns.push(o18);
24282 // 18387
24283 o18.getPropertyValue = f974244559_1881;
24284 // undefined
24285 o18 = null;
24286 // 18388
24287 f974244559_1881.returns.push("relative");
24288 // 18393
24289 f974244559_702.returns.push(true);
24290 // 18394
24291 o18 = {};
24292 // 18395
24293 f974244559_4.returns.push(o18);
24294 // 18396
24295 o18.getPropertyValue = f974244559_1881;
24296 // undefined
24297 o18 = null;
24298 // 18397
24299 f974244559_1881.returns.push("static");
24300 // 18402
24301 f974244559_702.returns.push(true);
24302 // 18403
24303 o18 = {};
24304 // 18404
24305 f974244559_4.returns.push(o18);
24306 // 18405
24307 o18.getPropertyValue = f974244559_1881;
24308 // undefined
24309 o18 = null;
24310 // 18406
24311 f974244559_1881.returns.push("static");
24312 // 18411
24313 f974244559_702.returns.push(true);
24314 // 18412
24315 o18 = {};
24316 // 18413
24317 f974244559_4.returns.push(o18);
24318 // 18414
24319 o18.getPropertyValue = f974244559_1881;
24320 // undefined
24321 o18 = null;
24322 // 18415
24323 f974244559_1881.returns.push("static");
24324 // 18420
24325 f974244559_702.returns.push(true);
24326 // 18421
24327 o18 = {};
24328 // 18422
24329 f974244559_4.returns.push(o18);
24330 // 18423
24331 o18.getPropertyValue = f974244559_1881;
24332 // undefined
24333 o18 = null;
24334 // 18424
24335 f974244559_1881.returns.push("static");
24336 // 18429
24337 f974244559_702.returns.push(true);
24338 // 18430
24339 o18 = {};
24340 // 18431
24341 f974244559_4.returns.push(o18);
24342 // 18432
24343 o18.getPropertyValue = f974244559_1881;
24344 // undefined
24345 o18 = null;
24346 // 18433
24347 f974244559_1881.returns.push("static");
24348 // 18438
24349 f974244559_702.returns.push(true);
24350 // 18439
24351 o18 = {};
24352 // 18440
24353 f974244559_4.returns.push(o18);
24354 // 18441
24355 o18.getPropertyValue = f974244559_1881;
24356 // undefined
24357 o18 = null;
24358 // 18442
24359 f974244559_1881.returns.push("fixed");
24360 // 18446
24361 f974244559_1617.returns.push(false);
24362 // 18451
24363 f974244559_1617.returns.push(false);
24364 // 18456
24365 f974244559_1617.returns.push(false);
24366 // 18461
24367 f974244559_1617.returns.push(false);
24368 // 18466
24369 f974244559_1617.returns.push(false);
24370 // 18471
24371 f974244559_1617.returns.push(false);
24372 // 18476
24373 f974244559_1617.returns.push(false);
24374 // 18481
24375 f974244559_1617.returns.push(false);
24376 // 18486
24377 f974244559_1617.returns.push(false);
24378 // 18491
24379 f974244559_1617.returns.push(false);
24380 // 18496
24381 f974244559_1617.returns.push(false);
24382 // 18501
24383 f974244559_1617.returns.push(false);
24384 // 18506
24385 f974244559_1617.returns.push(false);
24386 // 18511
24387 f974244559_1617.returns.push(false);
24388 // 18518
24389 o18 = {};
24390 // 18519
24391 f974244559_4.returns.push(o18);
24392 // 18520
24393 o18.getPropertyValue = f974244559_1881;
24394 // undefined
24395 o18 = null;
24396 // 18521
24397 f974244559_1881.returns.push("static");
24398 // 18526
24399 f974244559_702.returns.push(false);
24400 // undefined
24401 fo974244559_2174_style.returns.push(o9);
24402 // 18530
24403 // 18533
24404 f974244559_502.returns.push(o75);
24405 // 18536
24406 f974244559_702.returns.push(false);
24407 // 18550
24408 o18 = {};
24409 // 18551
24410 f974244559_4.returns.push(o18);
24411 // 18552
24412 o18.getPropertyValue = f974244559_1881;
24413 // undefined
24414 o18 = null;
24415 // 18553
24416 f974244559_1881.returns.push("static");
24417 // 18554
24418 o18 = {};
24419 // 18555
24420 f974244559_4.returns.push(o18);
24421 // 18556
24422 o18.getPropertyValue = f974244559_1881;
24423 // undefined
24424 o18 = null;
24425 // 18557
24426 f974244559_1881.returns.push("static");
24427 // 18558
24428 o18 = {};
24429 // 18559
24430 f974244559_4.returns.push(o18);
24431 // 18560
24432 o18.getPropertyValue = f974244559_1881;
24433 // undefined
24434 o18 = null;
24435 // 18561
24436 f974244559_1881.returns.push("static");
24437 // 18562
24438 o18 = {};
24439 // 18563
24440 f974244559_4.returns.push(o18);
24441 // 18564
24442 o18.getPropertyValue = f974244559_1881;
24443 // undefined
24444 o18 = null;
24445 // 18565
24446 f974244559_1881.returns.push("fixed");
24447 // 18566
24448 o18 = {};
24449 // 18567
24450 f974244559_4.returns.push(o18);
24451 // 18568
24452 o18.getPropertyValue = f974244559_1881;
24453 // undefined
24454 o18 = null;
24455 // 18569
24456 f974244559_1881.returns.push("300");
24457 // 18578
24458 f974244559_702.returns.push(true);
24459 // 18580
24460 o18 = {};
24461 // 18581
24462 f974244559_1882.returns.push(o18);
24463 // 18582
24464 o18.left = 990.5;
24465 // 18584
24466 o18.JSBNG__top = 6;
24467 // undefined
24468 o18 = null;
24469 // 18597
24470 f974244559_1110.returns.push(undefined);
24471 // 18601
24472 f974244559_1244.returns.push(undefined);
24473 // 18605
24474 f974244559_1244.returns.push(undefined);
24475 // 18609
24476 f974244559_1244.returns.push(undefined);
24477 // 18613
24478 f974244559_1110.returns.push(undefined);
24479 // 18615
24480 // 18617
24481 // 18619
24482 // 18621
24483 // 18623
24484 // 18625
24485 // undefined
24486 o11 = null;
24487 // undefined
24488 fo974244559_2172_style.returns.push(o10);
24489 // 18627
24490 // undefined
24491 fo974244559_2172_style.returns.push(o10);
24492 // 18629
24493 // undefined
24494 o10 = null;
24495 // 18633
24496 f974244559_1110.returns.push(undefined);
24497 // 18641
24498 f974244559_702.returns.push(true);
24499 // 18643
24500 o10 = {};
24501 // 18644
24502 f974244559_1882.returns.push(o10);
24503 // 18645
24504 o10.left = 990.5;
24505 // 18647
24506 o10.JSBNG__top = 6;
24507 // undefined
24508 o10 = null;
24509 // undefined
24510 fo974244559_2174_style.returns.push(o9);
24511 // 18652
24512 // undefined
24513 fo974244559_2174_style.returns.push(o9);
24514 // 18654
24515 // 18660
24516 f974244559_702.returns.push(false);
24517 // undefined
24518 fo974244559_2174_style.returns.push(o9);
24519 // 18666
24520 // undefined
24521 fo974244559_2174_style.returns.push(o9);
24522 // 18668
24523 // 18672
24524 f974244559_1617.returns.push(false);
24525 // 18677
24526 f974244559_1617.returns.push(false);
24527 // 18682
24528 f974244559_1617.returns.push(false);
24529 // 18687
24530 f974244559_1617.returns.push(false);
24531 // 18692
24532 f974244559_1617.returns.push(false);
24533 // 18697
24534 f974244559_1617.returns.push(false);
24535 // 18702
24536 f974244559_1617.returns.push(false);
24537 // 18707
24538 f974244559_1617.returns.push(false);
24539 // 18712
24540 f974244559_1617.returns.push(false);
24541 // 18717
24542 f974244559_1617.returns.push(false);
24543 // 18722
24544 f974244559_1617.returns.push(false);
24545 // 18727
24546 f974244559_1617.returns.push(false);
24547 // 18732
24548 f974244559_1617.returns.push(false);
24549 // 18737
24550 f974244559_1617.returns.push(false);
24551 // 18755
24552 o10 = {};
24553 // 18756
24554 f974244559_4.returns.push(o10);
24555 // 18757
24556 o10.getPropertyValue = f974244559_1881;
24557 // undefined
24558 o10 = null;
24559 // 18758
24560 f974244559_1881.returns.push("static");
24561 // 18759
24562 o10 = {};
24563 // 18760
24564 f974244559_4.returns.push(o10);
24565 // 18761
24566 o10.getPropertyValue = f974244559_1881;
24567 // undefined
24568 o10 = null;
24569 // 18762
24570 f974244559_1881.returns.push("static");
24571 // 18763
24572 o10 = {};
24573 // 18764
24574 f974244559_4.returns.push(o10);
24575 // 18765
24576 o10.getPropertyValue = f974244559_1881;
24577 // undefined
24578 o10 = null;
24579 // 18766
24580 f974244559_1881.returns.push("static");
24581 // 18767
24582 o10 = {};
24583 // 18768
24584 f974244559_4.returns.push(o10);
24585 // 18769
24586 o10.getPropertyValue = f974244559_1881;
24587 // undefined
24588 o10 = null;
24589 // 18770
24590 f974244559_1881.returns.push("fixed");
24591 // 18771
24592 o10 = {};
24593 // 18772
24594 f974244559_4.returns.push(o10);
24595 // 18773
24596 o10.getPropertyValue = f974244559_1881;
24597 // undefined
24598 o10 = null;
24599 // 18774
24600 f974244559_1881.returns.push("300");
24601 // undefined
24602 fo974244559_2174_style.returns.push(o9);
24603 // 18776
24604 // 18781
24605 o10 = {};
24606 // 18782
24607 f974244559_4.returns.push(o10);
24608 // 18783
24609 o10.getPropertyValue = f974244559_1881;
24610 // undefined
24611 o10 = null;
24612 // 18784
24613 f974244559_1881.returns.push("");
24614 // undefined
24615 fo974244559_2174_style.returns.push(o9);
24616 // 18786
24617 // 18792
24618 f974244559_502.returns.push(o67);
24619 // 18796
24620 f974244559_1617.returns.push(false);
24621 // 18801
24622 f974244559_1617.returns.push(true);
24623 // 18802
24624 o67.getElementsByTagName = f974244559_514;
24625 // 18804
24626 o67.querySelectorAll = f974244559_523;
24627 // 18805
24628 o10 = {};
24629 // 18806
24630 f974244559_523.returns.push(o10);
24631 // 18807
24632 o10.length = 1;
24633 // 18808
24634 o10["0"] = o38;
24635 // undefined
24636 o10 = null;
24637 // 18811
24638 o10 = {};
24639 // 18812
24640 f974244559_502.returns.push(o10);
24641 // 18813
24642 f974244559_468.returns.push(9);
24643 // 18816
24644 f974244559_502.returns.push(o10);
24645 // 18819
24646 f974244559_2178.returns.push("TimelineConstants/sectionFullyLoaded");
24647 // 18822
24648 o11 = {};
24649 // 18823
24650 f974244559_502.returns.push(o11);
24651 // 18824
24652 o11.nodeName = "A";
24653 // 18825
24654 o11.__FB_TOKEN = void 0;
24655 // 18826
24656 // 18827
24657 o11.getAttribute = f974244559_500;
24658 // 18828
24659 o11.hasAttribute = f974244559_527;
24660 // 18830
24661 f974244559_527.returns.push(false);
24662 // 18831
24663 o11.JSBNG__addEventListener = f974244559_472;
24664 // 18833
24665 f974244559_472.returns.push(undefined);
24666 // 18834
24667 o11.JSBNG__onclick = null;
24668 // undefined
24669 o11 = null;
24670 // 18838
24671 f974244559_502.returns.push(o113);
24672 // undefined
24673 o113 = null;
24674 // 18840
24675 o11 = {};
24676 // 18841
24677 f974244559_502.returns.push(o11);
24678 // 18843
24679 f974244559_471.returns.push(1373491299350);
24680 // 18848
24681 o18 = {};
24682 // 18849
24683 f974244559_502.returns.push(o18);
24684 // 18850
24685 o18.nodeName = "A";
24686 // 18851
24687 o18.__FB_TOKEN = void 0;
24688 // 18852
24689 // 18853
24690 o18.getAttribute = f974244559_500;
24691 // 18854
24692 o18.hasAttribute = f974244559_527;
24693 // 18856
24694 f974244559_527.returns.push(false);
24695 // 18857
24696 o18.JSBNG__addEventListener = f974244559_472;
24697 // 18859
24698 f974244559_472.returns.push(undefined);
24699 // 18860
24700 o18.JSBNG__onclick = null;
24701 // undefined
24702 o18 = null;
24703 // 18864
24704 f974244559_502.returns.push(o110);
24705 // undefined
24706 o110 = null;
24707 // 18868
24708 o18 = {};
24709 // 18869
24710 f974244559_502.returns.push(o18);
24711 // 18870
24712 o18.nodeName = "A";
24713 // 18871
24714 o18.__FB_TOKEN = void 0;
24715 // 18872
24716 // 18873
24717 o18.getAttribute = f974244559_500;
24718 // 18874
24719 o18.hasAttribute = f974244559_527;
24720 // 18876
24721 f974244559_527.returns.push(false);
24722 // 18877
24723 o18.JSBNG__addEventListener = f974244559_472;
24724 // 18879
24725 f974244559_472.returns.push(undefined);
24726 // 18880
24727 o18.JSBNG__onclick = null;
24728 // undefined
24729 o18 = null;
24730 // 18884
24731 f974244559_502.returns.push(o114);
24732 // undefined
24733 o114 = null;
24734 // 18888
24735 o18 = {};
24736 // 18889
24737 f974244559_502.returns.push(o18);
24738 // 18890
24739 o18.nodeName = "A";
24740 // 18891
24741 o18.__FB_TOKEN = void 0;
24742 // 18892
24743 // 18893
24744 o18.getAttribute = f974244559_500;
24745 // 18894
24746 o18.hasAttribute = f974244559_527;
24747 // 18896
24748 f974244559_527.returns.push(false);
24749 // 18897
24750 o18.JSBNG__addEventListener = f974244559_472;
24751 // 18899
24752 f974244559_472.returns.push(undefined);
24753 // 18900
24754 o18.JSBNG__onclick = null;
24755 // undefined
24756 o18 = null;
24757 // 18904
24758 f974244559_502.returns.push(o117);
24759 // undefined
24760 o117 = null;
24761 // 18908
24762 o18 = {};
24763 // 18909
24764 f974244559_502.returns.push(o18);
24765 // 18910
24766 o18.nodeName = "A";
24767 // 18911
24768 o18.__FB_TOKEN = void 0;
24769 // 18912
24770 // 18913
24771 o18.getAttribute = f974244559_500;
24772 // 18914
24773 o18.hasAttribute = f974244559_527;
24774 // 18916
24775 f974244559_527.returns.push(false);
24776 // 18917
24777 o18.JSBNG__addEventListener = f974244559_472;
24778 // 18919
24779 f974244559_472.returns.push(undefined);
24780 // 18920
24781 o18.JSBNG__onclick = null;
24782 // undefined
24783 o18 = null;
24784 // 18924
24785 f974244559_502.returns.push(o118);
24786 // undefined
24787 o118 = null;
24788 // 18927
24789 o18 = {};
24790 // 18928
24791 f974244559_502.returns.push(o18);
24792 // 18929
24793 o18.nodeName = "A";
24794 // 18930
24795 o18.__FB_TOKEN = void 0;
24796 // 18931
24797 // 18932
24798 o18.getAttribute = f974244559_500;
24799 // 18933
24800 o18.hasAttribute = f974244559_527;
24801 // 18935
24802 f974244559_527.returns.push(false);
24803 // 18936
24804 o18.JSBNG__addEventListener = f974244559_472;
24805 // 18938
24806 f974244559_472.returns.push(undefined);
24807 // 18939
24808 o18.JSBNG__onclick = null;
24809 // undefined
24810 o18 = null;
24811 // 18943
24812 f974244559_502.returns.push(o116);
24813 // undefined
24814 o116 = null;
24815 // 18947
24816 o18 = {};
24817 // 18948
24818 f974244559_502.returns.push(o18);
24819 // 18949
24820 o18.nodeName = "A";
24821 // 18950
24822 o18.__FB_TOKEN = void 0;
24823 // 18951
24824 // 18952
24825 o18.getAttribute = f974244559_500;
24826 // 18953
24827 o18.hasAttribute = f974244559_527;
24828 // 18955
24829 f974244559_527.returns.push(false);
24830 // 18956
24831 o18.JSBNG__addEventListener = f974244559_472;
24832 // 18958
24833 f974244559_472.returns.push(undefined);
24834 // 18959
24835 o18.JSBNG__onclick = null;
24836 // undefined
24837 o18 = null;
24838 // 18963
24839 f974244559_502.returns.push(o115);
24840 // undefined
24841 o115 = null;
24842 // 18967
24843 o18 = {};
24844 // 18968
24845 f974244559_502.returns.push(o18);
24846 // 18969
24847 o19 = {};
24848 // 18970
24849 o18.firstChild = o19;
24850 // 18971
24851 o19.id = "u_0_40";
24852 // 18975
24853 f974244559_2178.returns.push("ScrollingPager/registered");
24854 // 18979
24855 f974244559_502.returns.push(o43);
24856 // 18983
24857 o20 = {};
24858 // 18984
24859 f974244559_502.returns.push(o20);
24860 // 18985
24861 o20.nodeName = "DIV";
24862 // 18986
24863 o20.__FB_TOKEN = void 0;
24864 // 18987
24865 // 18988
24866 o20.getAttribute = f974244559_500;
24867 // 18989
24868 o20.hasAttribute = f974244559_527;
24869 // 18991
24870 f974244559_527.returns.push(false);
24871 // 18992
24872 o20.JSBNG__addEventListener = f974244559_472;
24873 // 18994
24874 f974244559_472.returns.push(undefined);
24875 // 18995
24876 o20.JSBNG__onclick = null;
24877 // undefined
24878 o20 = null;
24879 // 19000
24880 f974244559_502.returns.push(o119);
24881 // 19004
24882 f974244559_2178.returns.push("UFI/CommentAddedActive");
24883 // 19005
24884 f974244559_2178.returns.push("UFI/CommentDeletedActive");
24885 // 19006
24886 f974244559_2178.returns.push("UFI/LikeActive");
24887 // 19007
24888 f974244559_2178.returns.push("Curation/Action");
24889 // 19008
24890 f974244559_2178.returns.push("ProfileBrowser/LoadMoreContent");
24891 // 19009
24892 f974244559_2178.returns.push("Ads/NewContentDisplayed");
24893 // 19011
24894 f974244559_2178.returns.push("TimelineSideAds/refresh");
24895 // 19012
24896 f974244559_7.returns.push(undefined);
24897 // 19013
24898 f974244559_2566 = function() { return f974244559_2566.returns[f974244559_2566.inst++]; };
24899 f974244559_2566.returns = [];
24900 f974244559_2566.inst = 0;
24901 // 19014
24902 ow974244559.JSBNG__onmousemove = f974244559_2566;
24903 // 19020
24904 o119.getElementsByTagName = f974244559_514;
24905 // 19022
24906 o119.querySelectorAll = f974244559_523;
24907 // 19023
24908 o20 = {};
24909 // 19024
24910 f974244559_523.returns.push(o20);
24911 // 19025
24912 o20.length = 5;
24913 // 19026
24914 o21 = {};
24915 // 19027
24916 o20["0"] = o21;
24917 // 19028
24918 o22 = {};
24919 // 19029
24920 o20["1"] = o22;
24921 // 19030
24922 o23 = {};
24923 // 19031
24924 o20["2"] = o23;
24925 // 19032
24926 o26 = {};
24927 // 19033
24928 o20["3"] = o26;
24929 // 19034
24930 o40 = {};
24931 // 19035
24932 o20["4"] = o40;
24933 // undefined
24934 o20 = null;
24935 // 19036
24936 o21.getElementsByTagName = f974244559_514;
24937 // 19038
24938 o21.querySelectorAll = f974244559_523;
24939 // 19039
24940 o20 = {};
24941 // 19040
24942 f974244559_523.returns.push(o20);
24943 // 19041
24944 o20.length = 1;
24945 // 19042
24946 o49 = {};
24947 // 19043
24948 o20["0"] = o49;
24949 // undefined
24950 o20 = null;
24951 // 19044
24952 o49.getAttribute = f974244559_500;
24953 // 19045
24954 f974244559_500.returns.push("{\"adid\":6010069360965,\"segment\":\"market\"}");
24955 // 19046
24956 o22.getElementsByTagName = f974244559_514;
24957 // 19048
24958 o22.querySelectorAll = f974244559_523;
24959 // 19049
24960 o20 = {};
24961 // 19050
24962 f974244559_523.returns.push(o20);
24963 // 19051
24964 o20.length = 1;
24965 // 19052
24966 o58 = {};
24967 // 19053
24968 o20["0"] = o58;
24969 // undefined
24970 o20 = null;
24971 // 19054
24972 o58.getAttribute = f974244559_500;
24973 // 19055
24974 f974244559_500.returns.push("{\"adid\":6008291652839,\"segment\":\"market\"}");
24975 // 19056
24976 o23.getElementsByTagName = f974244559_514;
24977 // 19058
24978 o23.querySelectorAll = f974244559_523;
24979 // 19059
24980 o20 = {};
24981 // 19060
24982 f974244559_523.returns.push(o20);
24983 // 19061
24984 o20.length = 1;
24985 // 19062
24986 o63 = {};
24987 // 19063
24988 o20["0"] = o63;
24989 // undefined
24990 o20 = null;
24991 // 19064
24992 o63.getAttribute = f974244559_500;
24993 // 19065
24994 f974244559_500.returns.push("{\"adid\":6008916062318,\"segment\":\"market\"}");
24995 // 19066
24996 o26.getElementsByTagName = f974244559_514;
24997 // 19068
24998 o26.querySelectorAll = f974244559_523;
24999 // 19069
25000 o20 = {};
25001 // 19070
25002 f974244559_523.returns.push(o20);
25003 // 19071
25004 o20.length = 1;
25005 // 19072
25006 o64 = {};
25007 // 19073
25008 o20["0"] = o64;
25009 // undefined
25010 o20 = null;
25011 // 19074
25012 o64.getAttribute = f974244559_500;
25013 // 19075
25014 f974244559_500.returns.push("{\"adid\":6010037469977,\"segment\":\"market\"}");
25015 // 19076
25016 o40.getElementsByTagName = f974244559_514;
25017 // 19078
25018 o40.querySelectorAll = f974244559_523;
25019 // 19079
25020 o20 = {};
25021 // 19080
25022 f974244559_523.returns.push(o20);
25023 // 19081
25024 o20.length = 1;
25025 // 19082
25026 o65 = {};
25027 // 19083
25028 o20["0"] = o65;
25029 // undefined
25030 o20 = null;
25031 // 19084
25032 o65.getAttribute = f974244559_500;
25033 // 19085
25034 f974244559_500.returns.push("{\"adid\":6008948705864,\"segment\":\"market\"}");
25035 // 19086
25036 o20 = {};
25037 // 19087
25038 o21.classList = o20;
25039 // 19089
25040 o20.add = f974244559_1110;
25041 // 19090
25042 f974244559_1110.returns.push(undefined);
25043 // 19091
25044 o68 = {};
25045 // 19092
25046 o119.classList = o68;
25047 // 19094
25048 o68.remove = f974244559_1244;
25049 // undefined
25050 o68 = null;
25051 // 19095
25052 f974244559_1244.returns.push(undefined);
25053 // 19096
25054 o119.setAttribute = f974244559_643;
25055 // 19097
25056 f974244559_643.returns.push(undefined);
25057 // 19098
25058 o119.cloneNode = f974244559_1902;
25059 // 19099
25060 o68 = {};
25061 // 19100
25062 f974244559_1902.returns.push(o68);
25063 // 19101
25064 // 19102
25065 o68.getElementsByTagName = f974244559_514;
25066 // 19104
25067 o68.querySelectorAll = f974244559_523;
25068 // 19105
25069 o69 = {};
25070 // 19106
25071 f974244559_523.returns.push(o69);
25072 // 19107
25073 o69.length = 5;
25074 // 19108
25075 o77 = {};
25076 // 19109
25077 o69["0"] = o77;
25078 // 19110
25079 o78 = {};
25080 // 19111
25081 o69["1"] = o78;
25082 // 19112
25083 o79 = {};
25084 // 19113
25085 o69["2"] = o79;
25086 // 19114
25087 o81 = {};
25088 // 19115
25089 o69["3"] = o81;
25090 // 19116
25091 o82 = {};
25092 // 19117
25093 o69["4"] = o82;
25094 // undefined
25095 o69 = null;
25096 // 19118
25097 o77.getElementsByTagName = f974244559_514;
25098 // 19120
25099 o77.querySelectorAll = f974244559_523;
25100 // undefined
25101 o77 = null;
25102 // 19121
25103 o69 = {};
25104 // 19122
25105 f974244559_523.returns.push(o69);
25106 // 19123
25107 o69.length = 1;
25108 // 19124
25109 o77 = {};
25110 // 19125
25111 o69["0"] = o77;
25112 // undefined
25113 o69 = null;
25114 // 19126
25115 o77.getAttribute = f974244559_500;
25116 // undefined
25117 o77 = null;
25118 // 19127
25119 f974244559_500.returns.push("{\"adid\":6010069360965,\"segment\":\"market\"}");
25120 // 19128
25121 o78.getElementsByTagName = f974244559_514;
25122 // 19130
25123 o78.querySelectorAll = f974244559_523;
25124 // 19131
25125 o69 = {};
25126 // 19132
25127 f974244559_523.returns.push(o69);
25128 // 19133
25129 o69.length = 1;
25130 // 19134
25131 o77 = {};
25132 // 19135
25133 o69["0"] = o77;
25134 // undefined
25135 o69 = null;
25136 // 19136
25137 o77.getAttribute = f974244559_500;
25138 // undefined
25139 o77 = null;
25140 // 19137
25141 f974244559_500.returns.push("{\"adid\":6008291652839,\"segment\":\"market\"}");
25142 // 19138
25143 o79.getElementsByTagName = f974244559_514;
25144 // 19140
25145 o79.querySelectorAll = f974244559_523;
25146 // 19141
25147 o69 = {};
25148 // 19142
25149 f974244559_523.returns.push(o69);
25150 // 19143
25151 o69.length = 1;
25152 // 19144
25153 o77 = {};
25154 // 19145
25155 o69["0"] = o77;
25156 // undefined
25157 o69 = null;
25158 // 19146
25159 o77.getAttribute = f974244559_500;
25160 // undefined
25161 o77 = null;
25162 // 19147
25163 f974244559_500.returns.push("{\"adid\":6008916062318,\"segment\":\"market\"}");
25164 // 19148
25165 o81.getElementsByTagName = f974244559_514;
25166 // 19150
25167 o81.querySelectorAll = f974244559_523;
25168 // 19151
25169 o69 = {};
25170 // 19152
25171 f974244559_523.returns.push(o69);
25172 // 19153
25173 o69.length = 1;
25174 // 19154
25175 o77 = {};
25176 // 19155
25177 o69["0"] = o77;
25178 // undefined
25179 o69 = null;
25180 // 19156
25181 o77.getAttribute = f974244559_500;
25182 // undefined
25183 o77 = null;
25184 // 19157
25185 f974244559_500.returns.push("{\"adid\":6010037469977,\"segment\":\"market\"}");
25186 // 19158
25187 o82.getElementsByTagName = f974244559_514;
25188 // 19160
25189 o82.querySelectorAll = f974244559_523;
25190 // 19161
25191 o69 = {};
25192 // 19162
25193 f974244559_523.returns.push(o69);
25194 // 19163
25195 o69.length = 1;
25196 // 19164
25197 o77 = {};
25198 // 19165
25199 o69["0"] = o77;
25200 // undefined
25201 o69 = null;
25202 // 19166
25203 o77.getAttribute = f974244559_500;
25204 // undefined
25205 o77 = null;
25206 // 19167
25207 f974244559_500.returns.push("{\"adid\":6008948705864,\"segment\":\"market\"}");
25208 // 19168
25209 o69 = {};
25210 // 19169
25211 o78.parentNode = o69;
25212 // 19171
25213 o69.removeChild = f974244559_507;
25214 // 19172
25215 f974244559_507.returns.push(o78);
25216 // undefined
25217 o78 = null;
25218 // 19173
25219 o79.parentNode = o69;
25220 // 19176
25221 f974244559_507.returns.push(o79);
25222 // undefined
25223 o79 = null;
25224 // 19177
25225 o81.parentNode = o69;
25226 // 19180
25227 f974244559_507.returns.push(o81);
25228 // undefined
25229 o81 = null;
25230 // 19181
25231 o82.parentNode = o69;
25232 // undefined
25233 o69 = null;
25234 // 19184
25235 f974244559_507.returns.push(o82);
25236 // undefined
25237 o82 = null;
25238 // 19185
25239 o69 = {};
25240 // 19186
25241 o68.classList = o69;
25242 // 19188
25243 o69.add = f974244559_1110;
25244 // undefined
25245 o69 = null;
25246 // 19189
25247 f974244559_1110.returns.push(undefined);
25248 // 19192
25249 o20.remove = f974244559_1244;
25250 // undefined
25251 o20 = null;
25252 // 19193
25253 f974244559_1244.returns.push(undefined);
25254 // 19194
25255 o21.setAttribute = f974244559_643;
25256 // 19195
25257 f974244559_643.returns.push(undefined);
25258 // 19196
25259 o20 = {};
25260 // 19197
25261 o22.classList = o20;
25262 // 19199
25263 o20.remove = f974244559_1244;
25264 // undefined
25265 o20 = null;
25266 // 19200
25267 f974244559_1244.returns.push(undefined);
25268 // 19201
25269 o22.setAttribute = f974244559_643;
25270 // 19202
25271 f974244559_643.returns.push(undefined);
25272 // 19203
25273 o20 = {};
25274 // 19204
25275 o23.classList = o20;
25276 // 19206
25277 o20.remove = f974244559_1244;
25278 // undefined
25279 o20 = null;
25280 // 19207
25281 f974244559_1244.returns.push(undefined);
25282 // 19208
25283 o23.setAttribute = f974244559_643;
25284 // 19209
25285 f974244559_643.returns.push(undefined);
25286 // 19210
25287 o20 = {};
25288 // 19211
25289 o26.classList = o20;
25290 // 19213
25291 o20.add = f974244559_1110;
25292 // undefined
25293 o20 = null;
25294 // 19214
25295 f974244559_1110.returns.push(undefined);
25296 // 19215
25297 o26.setAttribute = f974244559_643;
25298 // 19216
25299 f974244559_643.returns.push(undefined);
25300 // 19217
25301 o20 = {};
25302 // 19218
25303 o40.classList = o20;
25304 // 19220
25305 o20.add = f974244559_1110;
25306 // undefined
25307 o20 = null;
25308 // 19221
25309 f974244559_1110.returns.push(undefined);
25310 // 19222
25311 o40.setAttribute = f974244559_643;
25312 // 19223
25313 f974244559_643.returns.push(undefined);
25314 // 19227
25315 f974244559_1244.returns.push(undefined);
25316 // 19229
25317 f974244559_643.returns.push(undefined);
25318 // 19233
25319 o20 = {};
25320 // 19234
25321 f974244559_523.returns.push(o20);
25322 // 19235
25323 o20.length = 1;
25324 // 19236
25325 o20["0"] = o63;
25326 // undefined
25327 o20 = null;
25328 // 19238
25329 f974244559_500.returns.push("{\"adid\":6008916062318,\"segment\":\"market\"}");
25330 // 19240
25331 o20 = {};
25332 // 19241
25333 f974244559_480.returns.push(o20);
25334 // 19242
25335 // 19243
25336 o20.setAttribute = f974244559_643;
25337 // 19245
25338 f974244559_643.returns.push(undefined);
25339 // 19248
25340 f974244559_643.returns.push(undefined);
25341 // 19251
25342 f974244559_643.returns.push(undefined);
25343 // 19254
25344 f974244559_643.returns.push(undefined);
25345 // 19257
25346 f974244559_643.returns.push(undefined);
25347 // 19259
25348 f974244559_643.returns.push(undefined);
25349 // 19260
25350 o20.__html = void 0;
25351 // undefined
25352 o20 = null;
25353 // 19262
25354 o20 = {};
25355 // 19263
25356 f974244559_478.returns.push(o20);
25357 // 19265
25358 o119.appendChild = f974244559_482;
25359 // 19266
25360 f974244559_482.returns.push(o20);
25361 // undefined
25362 o20 = null;
25363 // 19270
25364 o20 = {};
25365 // 19271
25366 f974244559_523.returns.push(o20);
25367 // 19272
25368 o20.length = 1;
25369 // 19273
25370 o20["0"] = o58;
25371 // undefined
25372 o20 = null;
25373 // 19275
25374 f974244559_500.returns.push("{\"adid\":6008291652839,\"segment\":\"market\"}");
25375 // 19277
25376 o20 = {};
25377 // 19278
25378 f974244559_480.returns.push(o20);
25379 // 19279
25380 // 19280
25381 o20.setAttribute = f974244559_643;
25382 // 19282
25383 f974244559_643.returns.push(undefined);
25384 // 19285
25385 f974244559_643.returns.push(undefined);
25386 // 19288
25387 f974244559_643.returns.push(undefined);
25388 // 19291
25389 f974244559_643.returns.push(undefined);
25390 // 19294
25391 f974244559_643.returns.push(undefined);
25392 // 19296
25393 f974244559_643.returns.push(undefined);
25394 // 19297
25395 o20.__html = void 0;
25396 // undefined
25397 o20 = null;
25398 // 19299
25399 o20 = {};
25400 // 19300
25401 f974244559_478.returns.push(o20);
25402 // 19303
25403 f974244559_482.returns.push(o20);
25404 // undefined
25405 o20 = null;
25406 // 19307
25407 o20 = {};
25408 // 19308
25409 f974244559_523.returns.push(o20);
25410 // 19309
25411 o20.length = 1;
25412 // 19310
25413 o20["0"] = o49;
25414 // undefined
25415 o20 = null;
25416 // 19312
25417 f974244559_500.returns.push("{\"adid\":6010069360965,\"segment\":\"market\"}");
25418 // 19314
25419 o20 = {};
25420 // 19315
25421 f974244559_480.returns.push(o20);
25422 // 19316
25423 // 19317
25424 o20.setAttribute = f974244559_643;
25425 // 19319
25426 f974244559_643.returns.push(undefined);
25427 // 19322
25428 f974244559_643.returns.push(undefined);
25429 // 19325
25430 f974244559_643.returns.push(undefined);
25431 // 19328
25432 f974244559_643.returns.push(undefined);
25433 // 19331
25434 f974244559_643.returns.push(undefined);
25435 // 19333
25436 f974244559_643.returns.push(undefined);
25437 // 19334
25438 o20.__html = void 0;
25439 // undefined
25440 o20 = null;
25441 // 19336
25442 o20 = {};
25443 // 19337
25444 f974244559_478.returns.push(o20);
25445 // 19340
25446 f974244559_482.returns.push(o20);
25447 // undefined
25448 o20 = null;
25449 // 19344
25450 o20 = {};
25451 // 19345
25452 f974244559_523.returns.push(o20);
25453 // 19346
25454 o20.length = 1;
25455 // 19347
25456 o20["0"] = o49;
25457 // undefined
25458 o20 = null;
25459 // 19349
25460 f974244559_500.returns.push("{\"adid\":6010069360965,\"segment\":\"market\"}");
25461 // 19353
25462 o20 = {};
25463 // 19354
25464 f974244559_523.returns.push(o20);
25465 // 19355
25466 o20.length = 1;
25467 // 19356
25468 o20["0"] = o58;
25469 // undefined
25470 o20 = null;
25471 // 19358
25472 f974244559_500.returns.push("{\"adid\":6008291652839,\"segment\":\"market\"}");
25473 // 19362
25474 o20 = {};
25475 // 19363
25476 f974244559_523.returns.push(o20);
25477 // 19364
25478 o20.length = 1;
25479 // 19365
25480 o20["0"] = o63;
25481 // undefined
25482 o20 = null;
25483 // 19367
25484 f974244559_500.returns.push("{\"adid\":6008916062318,\"segment\":\"market\"}");
25485 // 19371
25486 o20 = {};
25487 // 19372
25488 f974244559_523.returns.push(o20);
25489 // 19373
25490 o20.length = 1;
25491 // 19374
25492 o69 = {};
25493 // 19375
25494 o20["0"] = o69;
25495 // undefined
25496 o20 = null;
25497 // 19376
25498 o69.complete = true;
25499 // 19377
25500 f974244559_12.returns.push(63);
25501 // 19381
25502 o20 = {};
25503 // 19382
25504 f974244559_523.returns.push(o20);
25505 // 19383
25506 o20.length = 1;
25507 // 19384
25508 o77 = {};
25509 // 19385
25510 o20["0"] = o77;
25511 // undefined
25512 o20 = null;
25513 // 19386
25514 o77.complete = true;
25515 // undefined
25516 o77 = null;
25517 // 19387
25518 f974244559_12.returns.push(64);
25519 // 19391
25520 o20 = {};
25521 // 19392
25522 f974244559_523.returns.push(o20);
25523 // 19393
25524 o20.length = 1;
25525 // 19394
25526 o77 = {};
25527 // 19395
25528 o20["0"] = o77;
25529 // undefined
25530 o20 = null;
25531 // 19396
25532 o77.complete = true;
25533 // undefined
25534 o77 = null;
25535 // 19397
25536 f974244559_12.returns.push(65);
25537 // 19401
25538 o20 = {};
25539 // 19402
25540 f974244559_523.returns.push(o20);
25541 // 19403
25542 o20.length = 1;
25543 // 19404
25544 o77 = {};
25545 // 19405
25546 o20["0"] = o77;
25547 // undefined
25548 o20 = null;
25549 // 19406
25550 o77.complete = true;
25551 // undefined
25552 o77 = null;
25553 // 19407
25554 f974244559_12.returns.push(66);
25555 // 19411
25556 o20 = {};
25557 // 19412
25558 f974244559_523.returns.push(o20);
25559 // 19413
25560 o20.length = 1;
25561 // 19414
25562 o77 = {};
25563 // 19415
25564 o20["0"] = o77;
25565 // undefined
25566 o20 = null;
25567 // 19416
25568 o77.complete = true;
25569 // undefined
25570 o77 = null;
25571 // 19417
25572 f974244559_12.returns.push(67);
25573 // 19418
25574 o68.parentNode = null;
25575 // undefined
25576 o68 = null;
25577 // 19422
25578 f974244559_1244.returns.push(undefined);
25579 // 19425
25580 o20 = {};
25581 // 19426
25582 f974244559_502.returns.push(o20);
25583 // 19427
25584 o20.getElementsByTagName = f974244559_514;
25585 // 19429
25586 o20.querySelectorAll = f974244559_523;
25587 // 19430
25588 o68 = {};
25589 // 19431
25590 f974244559_523.returns.push(o68);
25591 // 19432
25592 o68.length = 0;
25593 // undefined
25594 o68 = null;
25595 // 19436
25596 o68 = {};
25597 // 19437
25598 f974244559_523.returns.push(o68);
25599 // 19438
25600 o68.length = 1;
25601 // 19439
25602 o77 = {};
25603 // 19440
25604 o68["0"] = o77;
25605 // undefined
25606 o68 = null;
25607 // undefined
25608 o77 = null;
25609 // 19441
25610 o68 = {};
25611 // 19442
25612 o20.classList = o68;
25613 // 19444
25614 o68.contains = f974244559_1617;
25615 // 19445
25616 f974244559_1617.returns.push(false);
25617 // 19447
25618 f974244559_502.returns.push(o193);
25619 // 19450
25620 o77 = {};
25621 // 19451
25622 f974244559_502.returns.push(o77);
25623 // 19452
25624 o78 = {};
25625 // 19453
25626 o77.classList = o78;
25627 // 19455
25628 o78.contains = f974244559_1617;
25629 // 19456
25630 f974244559_1617.returns.push(true);
25631 // 19457
25632 o77.__FB_TOKEN = void 0;
25633 // 19458
25634 // 19459
25635 o79 = {};
25636 // 19460
25637 o77.childNodes = o79;
25638 // undefined
25639 o77 = null;
25640 // 19461
25641 o79.item = f974244559_517;
25642 // 19462
25643 o79.length = 1;
25644 // 19463
25645 o77 = {};
25646 // 19464
25647 o79["0"] = o77;
25648 // undefined
25649 o79 = null;
25650 // 19465
25651 o79 = {};
25652 // 19466
25653 o77.classList = o79;
25654 // 19468
25655 o79.contains = f974244559_1617;
25656 // 19469
25657 f974244559_1617.returns.push(false);
25658 // 19470
25659 o81 = {};
25660 // 19471
25661 o77.childNodes = o81;
25662 // undefined
25663 o77 = null;
25664 // 19472
25665 o81.item = f974244559_517;
25666 // 19473
25667 o81.length = 1;
25668 // 19474
25669 o81["0"] = o14;
25670 // undefined
25671 o81 = null;
25672 // 19475
25673 o77 = {};
25674 // 19476
25675 o14.classList = o77;
25676 // undefined
25677 o14 = null;
25678 // 19478
25679 o77.contains = f974244559_1617;
25680 // undefined
25681 o77 = null;
25682 // 19479
25683 f974244559_1617.returns.push(false);
25684 // 19482
25685 o79.remove = f974244559_1244;
25686 // 19483
25687 f974244559_1244.returns.push(undefined);
25688 // 19487
25689 f974244559_1244.returns.push(undefined);
25690 // 19491
25691 f974244559_1244.returns.push(undefined);
25692 // 19494
25693 o79.add = f974244559_1110;
25694 // undefined
25695 o79 = null;
25696 // 19495
25697 f974244559_1110.returns.push(undefined);
25698 // 19499
25699 f974244559_1110.returns.push(undefined);
25700 // 19502
25701 o78.remove = f974244559_1244;
25702 // undefined
25703 o78 = null;
25704 // 19503
25705 f974244559_1244.returns.push(undefined);
25706 // 19506
25707 o14 = {};
25708 // 19507
25709 f974244559_502.returns.push(o14);
25710 // 19508
25711 o77 = {};
25712 // 19509
25713 o14.classList = o77;
25714 // 19511
25715 o77.contains = f974244559_1617;
25716 // 19512
25717 f974244559_1617.returns.push(true);
25718 // 19513
25719 o14.__FB_TOKEN = void 0;
25720 // 19514
25721 // 19515
25722 o78 = {};
25723 // 19516
25724 o14.childNodes = o78;
25725 // undefined
25726 o14 = null;
25727 // 19517
25728 o78.item = f974244559_517;
25729 // 19518
25730 o78.length = 1;
25731 // 19519
25732 o14 = {};
25733 // 19520
25734 o78["0"] = o14;
25735 // undefined
25736 o78 = null;
25737 // 19521
25738 o78 = {};
25739 // 19522
25740 o14.classList = o78;
25741 // 19524
25742 o78.contains = f974244559_1617;
25743 // 19525
25744 f974244559_1617.returns.push(false);
25745 // 19526
25746 o79 = {};
25747 // 19527
25748 o14.childNodes = o79;
25749 // undefined
25750 o14 = null;
25751 // 19528
25752 o79.item = f974244559_517;
25753 // 19529
25754 o79.length = 1;
25755 // 19530
25756 o14 = {};
25757 // 19531
25758 o79["0"] = o14;
25759 // undefined
25760 o79 = null;
25761 // 19532
25762 o79 = {};
25763 // 19533
25764 o14.classList = o79;
25765 // undefined
25766 o14 = null;
25767 // 19535
25768 o79.contains = f974244559_1617;
25769 // undefined
25770 o79 = null;
25771 // 19536
25772 f974244559_1617.returns.push(false);
25773 // 19539
25774 o78.remove = f974244559_1244;
25775 // 19540
25776 f974244559_1244.returns.push(undefined);
25777 // 19544
25778 f974244559_1244.returns.push(undefined);
25779 // 19548
25780 f974244559_1244.returns.push(undefined);
25781 // 19551
25782 o78.add = f974244559_1110;
25783 // undefined
25784 o78 = null;
25785 // 19552
25786 f974244559_1110.returns.push(undefined);
25787 // 19556
25788 f974244559_1110.returns.push(undefined);
25789 // 19559
25790 o77.remove = f974244559_1244;
25791 // undefined
25792 o77 = null;
25793 // 19560
25794 f974244559_1244.returns.push(undefined);
25795 // 19563
25796 o14 = {};
25797 // 19564
25798 f974244559_502.returns.push(o14);
25799 // 19565
25800 o14.getElementsByTagName = f974244559_514;
25801 // 19567
25802 o14.querySelectorAll = f974244559_523;
25803 // 19568
25804 o77 = {};
25805 // 19569
25806 f974244559_523.returns.push(o77);
25807 // 19570
25808 o77.length = 1;
25809 // 19571
25810 o78 = {};
25811 // 19572
25812 o77["0"] = o78;
25813 // undefined
25814 o77 = null;
25815 // 19576
25816 o77 = {};
25817 // 19577
25818 f974244559_523.returns.push(o77);
25819 // 19578
25820 o77.length = 1;
25821 // 19579
25822 o79 = {};
25823 // 19580
25824 o77["0"] = o79;
25825 // undefined
25826 o77 = null;
25827 // 19584
25828 o77 = {};
25829 // 19585
25830 f974244559_523.returns.push(o77);
25831 // 19586
25832 o77.length = 1;
25833 // 19587
25834 o81 = {};
25835 // 19588
25836 o77["0"] = o81;
25837 // undefined
25838 o77 = null;
25839 // undefined
25840 o81 = null;
25841 // 19589
25842 o78.getElementsByTagName = f974244559_514;
25843 // 19591
25844 o78.querySelectorAll = f974244559_523;
25845 // 19592
25846 o77 = {};
25847 // 19593
25848 f974244559_523.returns.push(o77);
25849 // 19594
25850 o77.length = 1;
25851 // 19595
25852 o81 = {};
25853 // 19596
25854 o77["0"] = o81;
25855 // undefined
25856 o77 = null;
25857 // undefined
25858 o81 = null;
25859 // 19597
25860 o77 = {};
25861 // 19598
25862 o78.classList = o77;
25863 // 19600
25864 o77.contains = f974244559_1617;
25865 // undefined
25866 o77 = null;
25867 // 19601
25868 f974244559_1617.returns.push(false);
25869 // 19602
25870 o77 = {};
25871 // 19603
25872 o78.parentNode = o77;
25873 // 19604
25874 o81 = {};
25875 // 19605
25876 o77.classList = o81;
25877 // 19607
25878 o81.contains = f974244559_1617;
25879 // 19608
25880 f974244559_1617.returns.push(false);
25881 // 19609
25882 o77.parentNode = o14;
25883 // 19610
25884 o82 = {};
25885 // 19611
25886 o14.classList = o82;
25887 // 19613
25888 o82.contains = f974244559_1617;
25889 // 19614
25890 f974244559_1617.returns.push(true);
25891 // 19615
25892 o14.__FB_TOKEN = void 0;
25893 // 19616
25894 // 19617
25895 o14.getAttribute = f974244559_500;
25896 // 19618
25897 o14.hasAttribute = f974244559_527;
25898 // 19620
25899 f974244559_527.returns.push(false);
25900 // 19624
25901 f974244559_1617.returns.push(true);
25902 // 19625
25903 o83 = {};
25904 // 19626
25905 o14.childNodes = o83;
25906 // undefined
25907 o14 = null;
25908 // 19627
25909 o83.item = f974244559_517;
25910 // 19628
25911 o83.length = 4;
25912 // 19629
25913 o14 = {};
25914 // 19630
25915 o83["3"] = o14;
25916 // 19631
25917 o84 = {};
25918 // 19632
25919 o83["2"] = o84;
25920 // 19633
25921 o83["1"] = o77;
25922 // 19634
25923 o85 = {};
25924 // 19635
25925 o83["0"] = o85;
25926 // undefined
25927 o83 = null;
25928 // 19636
25929 o83 = {};
25930 // 19637
25931 o85.classList = o83;
25932 // 19639
25933 o83.contains = f974244559_1617;
25934 // 19640
25935 f974244559_1617.returns.push(false);
25936 // 19641
25937 o86 = {};
25938 // 19642
25939 o85.childNodes = o86;
25940 // undefined
25941 o85 = null;
25942 // 19643
25943 o86.item = f974244559_517;
25944 // 19644
25945 o86.length = 1;
25946 // 19645
25947 o85 = {};
25948 // 19646
25949 o86["0"] = o85;
25950 // undefined
25951 o86 = null;
25952 // 19647
25953 o86 = {};
25954 // 19648
25955 o85.classList = o86;
25956 // undefined
25957 o85 = null;
25958 // 19650
25959 o86.contains = f974244559_1617;
25960 // undefined
25961 o86 = null;
25962 // 19651
25963 f974244559_1617.returns.push(false);
25964 // 19654
25965 o83.remove = f974244559_1244;
25966 // 19655
25967 f974244559_1244.returns.push(undefined);
25968 // 19659
25969 f974244559_1244.returns.push(undefined);
25970 // 19663
25971 f974244559_1244.returns.push(undefined);
25972 // 19667
25973 f974244559_1617.returns.push(false);
25974 // 19668
25975 o85 = {};
25976 // 19669
25977 o77.childNodes = o85;
25978 // undefined
25979 o77 = null;
25980 // 19670
25981 o85.item = f974244559_517;
25982 // 19671
25983 o85.length = 1;
25984 // 19672
25985 o85["0"] = o78;
25986 // undefined
25987 o85 = null;
25988 // undefined
25989 o78 = null;
25990 // 19676
25991 f974244559_1617.returns.push(false);
25992 // 19679
25993 o81.remove = f974244559_1244;
25994 // undefined
25995 o81 = null;
25996 // 19680
25997 f974244559_1244.returns.push(undefined);
25998 // 19684
25999 f974244559_1244.returns.push(undefined);
26000 // 19688
26001 f974244559_1244.returns.push(undefined);
26002 // 19689
26003 o77 = {};
26004 // 19690
26005 o84.classList = o77;
26006 // 19692
26007 o77.contains = f974244559_1617;
26008 // 19693
26009 f974244559_1617.returns.push(false);
26010 // 19694
26011 o78 = {};
26012 // 19695
26013 o84.childNodes = o78;
26014 // undefined
26015 o84 = null;
26016 // 19696
26017 o78.item = f974244559_517;
26018 // 19697
26019 o78.length = 1;
26020 // 19698
26021 o78["0"] = o79;
26022 // undefined
26023 o78 = null;
26024 // 19699
26025 o78 = {};
26026 // 19700
26027 o79.classList = o78;
26028 // 19702
26029 o78.contains = f974244559_1617;
26030 // undefined
26031 o78 = null;
26032 // 19703
26033 f974244559_1617.returns.push(false);
26034 // 19706
26035 o77.remove = f974244559_1244;
26036 // 19707
26037 f974244559_1244.returns.push(undefined);
26038 // 19711
26039 f974244559_1244.returns.push(undefined);
26040 // 19715
26041 f974244559_1244.returns.push(undefined);
26042 // 19716
26043 o78 = {};
26044 // 19717
26045 o14.classList = o78;
26046 // undefined
26047 o14 = null;
26048 // 19719
26049 o78.contains = f974244559_1617;
26050 // 19720
26051 f974244559_1617.returns.push(true);
26052 // 19723
26053 o78.remove = f974244559_1244;
26054 // 19724
26055 f974244559_1244.returns.push(undefined);
26056 // 19728
26057 f974244559_1244.returns.push(undefined);
26058 // 19731
26059 o78.add = f974244559_1110;
26060 // undefined
26061 o78 = null;
26062 // 19732
26063 f974244559_1110.returns.push(undefined);
26064 // 19735
26065 o83.add = f974244559_1110;
26066 // undefined
26067 o83 = null;
26068 // 19736
26069 f974244559_1110.returns.push(undefined);
26070 // 19739
26071 o77.add = f974244559_1110;
26072 // undefined
26073 o77 = null;
26074 // 19740
26075 f974244559_1110.returns.push(undefined);
26076 // 19743
26077 o82.remove = f974244559_1244;
26078 // undefined
26079 o82 = null;
26080 // 19744
26081 f974244559_1244.returns.push(undefined);
26082 // 19749
26083 f974244559_1617.returns.push(false);
26084 // 19753
26085 f974244559_502.returns.push(o193);
26086 // 19759
26087 o14 = {};
26088 // 19760
26089 f974244559_523.returns.push(o14);
26090 // 19761
26091 o14.length = 1;
26092 // 19762
26093 o77 = {};
26094 // 19763
26095 o14["0"] = o77;
26096 // undefined
26097 o14 = null;
26098 // 19764
26099 o14 = {};
26100 // 19765
26101 o77.style = o14;
26102 // undefined
26103 o77 = null;
26104 // 19766
26105 // undefined
26106 o14 = null;
26107 // 19771
26108 f974244559_1617.returns.push(false);
26109 // 19775
26110 f974244559_502.returns.push(o193);
26111 // 19778
26112 o79.getElementsByTagName = f974244559_514;
26113 // 19780
26114 o79.querySelectorAll = f974244559_523;
26115 // undefined
26116 o79 = null;
26117 // 19781
26118 o14 = {};
26119 // 19782
26120 f974244559_523.returns.push(o14);
26121 // 19783
26122 o14.length = 1;
26123 // 19784
26124 o77 = {};
26125 // 19785
26126 o14["0"] = o77;
26127 // undefined
26128 o14 = null;
26129 // 19786
26130 o14 = {};
26131 // 19787
26132 o77.style = o14;
26133 // undefined
26134 o77 = null;
26135 // 19788
26136 // undefined
26137 o14 = null;
26138 // 19792
26139 o14 = {};
26140 // 19793
26141 f974244559_523.returns.push(o14);
26142 // 19794
26143 o14.length = 1;
26144 // 19795
26145 o77 = {};
26146 // 19796
26147 o14["0"] = o77;
26148 // undefined
26149 o14 = null;
26150 // 19797
26151 o77.nodeName = "DIV";
26152 // 19798
26153 o77.__FB_TOKEN = void 0;
26154 // 19799
26155 // 19800
26156 o77.getAttribute = f974244559_500;
26157 // 19801
26158 o77.hasAttribute = f974244559_527;
26159 // 19803
26160 f974244559_527.returns.push(false);
26161 // 19804
26162 o77.JSBNG__addEventListener = f974244559_472;
26163 // 19806
26164 f974244559_472.returns.push(undefined);
26165 // 19807
26166 o77.JSBNG__onclick = null;
26167 // undefined
26168 o77 = null;
26169 // 19810
26170 f974244559_2178.returns.push("TimelineConstants/sectionLoaded");
26171 // 19817
26172 f974244559_2178.returns.push("hide");
26173 // 19818
26174 f974244559_2178.returns.push("show");
26175 // 19820
26176 f974244559_2178.returns.push("close");
26177 // 19821
26178 f974244559_2178.returns.push("open");
26179 // 19825
26180 o14 = {};
26181 // 19826
26182 f974244559_502.returns.push(o14);
26183 // undefined
26184 o14 = null;
26185 // 19827
26186 o14 = {};
26187 // 19828
26188 o77 = {};
26189 // 19830
26190 o14.length = 1;
26191 // 19831
26192 o14["0"] = "jsIYP";
26193 // 19834
26194 f974244559_471.returns.push(1373491299518);
26195 // 19837
26196 f974244559_471.returns.push(1373491299519);
26197 // 19839
26198 f974244559_471.returns.push(1373491299519);
26199 // 19842
26200 f974244559_471.returns.push(1373491299520);
26201 // 19845
26202 f974244559_471.returns.push(1373491299520);
26203 // 19847
26204 f974244559_471.returns.push(1373491299520);
26205 // 19850
26206 f974244559_471.returns.push(1373491299521);
26207 // 19853
26208 f974244559_471.returns.push(1373491299521);
26209 // 19856
26210 o78 = {};
26211 // 19857
26212 f974244559_502.returns.push(o78);
26213 // undefined
26214 o78 = null;
26215 // 19859
26216 o78 = {};
26217 // 19860
26218 f974244559_502.returns.push(o78);
26219 // undefined
26220 o78 = null;
26221 // 19862
26222 o78 = {};
26223 // 19863
26224 f974244559_502.returns.push(o78);
26225 // 19865
26226 o79 = {};
26227 // 19866
26228 f974244559_502.returns.push(o79);
26229 // 19868
26230 f974244559_2178.returns.push("SubMenu/Reset");
26231 // 19869
26232 o78.nodeName = "LI";
26233 // 19870
26234 o78.__FB_TOKEN = void 0;
26235 // 19871
26236 // 19872
26237 o78.getAttribute = f974244559_500;
26238 // 19873
26239 o78.hasAttribute = f974244559_527;
26240 // 19875
26241 f974244559_527.returns.push(false);
26242 // 19876
26243 o78.JSBNG__addEventListener = f974244559_472;
26244 // 19878
26245 f974244559_472.returns.push(undefined);
26246 // 19879
26247 o78.JSBNG__onclick = null;
26248 // undefined
26249 o78 = null;
26250 // 19881
26251 o79.nodeName = "LI";
26252 // 19882
26253 o79.__FB_TOKEN = void 0;
26254 // 19883
26255 // 19884
26256 o79.getAttribute = f974244559_500;
26257 // 19885
26258 o79.hasAttribute = f974244559_527;
26259 // 19887
26260 f974244559_527.returns.push(false);
26261 // 19888
26262 o79.JSBNG__addEventListener = f974244559_472;
26263 // 19890
26264 f974244559_472.returns.push(undefined);
26265 // 19891
26266 o79.JSBNG__onclick = null;
26267 // undefined
26268 o79 = null;
26269 // 19896
26270 f974244559_471.returns.push(1373491299530);
26271 // 19899
26272 f974244559_471.returns.push(1373491299531);
26273 // 19902
26274 f974244559_471.returns.push(1373491299532);
26275 // 19904
26276 f974244559_471.returns.push(1373491299532);
26277 // 19907
26278 f974244559_471.returns.push(1373491299533);
26279 // 19910
26280 f974244559_471.returns.push(1373491299533);
26281 // 19912
26282 f974244559_471.returns.push(1373491299533);
26283 // 19915
26284 f974244559_471.returns.push(1373491299534);
26285 // 19918
26286 f974244559_471.returns.push(1373491299535);
26287 // 19920
26288 f974244559_471.returns.push(1373491299535);
26289 // 19923
26290 f974244559_471.returns.push(1373491299536);
26291 // 19926
26292 f974244559_471.returns.push(1373491299536);
26293 // 19929
26294 f974244559_502.returns.push(o19);
26295 // 19934
26296 f974244559_2178.returns.push("dom-scroll");
26297 // 19945
26298 f974244559_2178.returns.push("TimelineConstants/sectionFullyLoaded");
26299 // 19949
26300 f974244559_2178.returns.push("TimelineConstants/sectionFullyLoaded");
26301 // 19951
26302 f974244559_471.returns.push(1373491299543);
26303 // 19954
26304 f974244559_471.returns.push(1373491299544);
26305 // 19957
26306 f974244559_471.returns.push(1373491299545);
26307 // 19960
26308 f974244559_502.returns.push(o121);
26309 // 19961
26310 o78 = {};
26311 // 19962
26312 o121.childNodes = o78;
26313 // 19963
26314 o79 = {};
26315 // 19964
26316 o78["0"] = o79;
26317 // 19965
26318 o78.length = 8;
26319 // 19967
26320 o79.getAttribute = f974244559_500;
26321 // 19968
26322 f974244559_500.returns.push("recent");
26323 // 19971
26324 o79.getElementsByTagName = f974244559_514;
26325 // 19973
26326 o79.querySelectorAll = f974244559_523;
26327 // undefined
26328 o79 = null;
26329 // 19974
26330 o79 = {};
26331 // 19975
26332 f974244559_523.returns.push(o79);
26333 // 19976
26334 o79.length = 0;
26335 // undefined
26336 o79 = null;
26337 // 19979
26338 f974244559_500.returns.push(null);
26339 // 19981
26340 o79 = {};
26341 // 19982
26342 o78["1"] = o79;
26343 // 19983
26344 o79.getAttribute = f974244559_500;
26345 // 19984
26346 f974244559_500.returns.push("year_2013");
26347 // 19987
26348 o79.getElementsByTagName = f974244559_514;
26349 // 19989
26350 o79.querySelectorAll = f974244559_523;
26351 // 19990
26352 o81 = {};
26353 // 19991
26354 f974244559_523.returns.push(o81);
26355 // 19992
26356 o81.length = 1;
26357 // 19993
26358 o82 = {};
26359 // 19994
26360 o81["0"] = o82;
26361 // undefined
26362 o81 = null;
26363 // 19995
26364 o81 = {};
26365 // 19996
26366 o82.childNodes = o81;
26367 // undefined
26368 o82 = null;
26369 // 19997
26370 o81.length = 1;
26371 // 19998
26372 o82 = {};
26373 // 19999
26374 o81["0"] = o82;
26375 // undefined
26376 o81 = null;
26377 // 20000
26378 o82.getAttribute = f974244559_500;
26379 // undefined
26380 o82 = null;
26381 // 20001
26382 f974244559_500.returns.push("month_2013_1");
26383 // 20006
26384 f974244559_500.returns.push("2010s");
26385 // 20009
26386 o81 = {};
26387 // 20010
26388 o78["2"] = o81;
26389 // 20011
26390 o81.getAttribute = f974244559_500;
26391 // 20012
26392 f974244559_500.returns.push("year_2012");
26393 // 20015
26394 o81.getElementsByTagName = f974244559_514;
26395 // 20017
26396 o81.querySelectorAll = f974244559_523;
26397 // undefined
26398 o81 = null;
26399 // 20018
26400 o81 = {};
26401 // 20019
26402 f974244559_523.returns.push(o81);
26403 // 20020
26404 o81.length = 1;
26405 // 20021
26406 o82 = {};
26407 // 20022
26408 o81["0"] = o82;
26409 // undefined
26410 o81 = null;
26411 // 20023
26412 o81 = {};
26413 // 20024
26414 o82.childNodes = o81;
26415 // undefined
26416 o82 = null;
26417 // 20025
26418 o81.length = 12;
26419 // 20026
26420 o82 = {};
26421 // 20027
26422 o81["0"] = o82;
26423 // 20028
26424 o82.getAttribute = f974244559_500;
26425 // undefined
26426 o82 = null;
26427 // 20029
26428 f974244559_500.returns.push("month_2012_12");
26429 // 20032
26430 o82 = {};
26431 // 20033
26432 o81["1"] = o82;
26433 // 20034
26434 o82.getAttribute = f974244559_500;
26435 // undefined
26436 o82 = null;
26437 // 20035
26438 f974244559_500.returns.push("month_2012_11");
26439 // 20038
26440 o82 = {};
26441 // 20039
26442 o81["2"] = o82;
26443 // 20040
26444 o82.getAttribute = f974244559_500;
26445 // undefined
26446 o82 = null;
26447 // 20041
26448 f974244559_500.returns.push("month_2012_10");
26449 // 20044
26450 o82 = {};
26451 // 20045
26452 o81["3"] = o82;
26453 // 20046
26454 o82.getAttribute = f974244559_500;
26455 // undefined
26456 o82 = null;
26457 // 20047
26458 f974244559_500.returns.push("month_2012_9");
26459 // 20050
26460 o82 = {};
26461 // 20051
26462 o81["4"] = o82;
26463 // 20052
26464 o82.getAttribute = f974244559_500;
26465 // undefined
26466 o82 = null;
26467 // 20053
26468 f974244559_500.returns.push("month_2012_8");
26469 // 20056
26470 o82 = {};
26471 // 20057
26472 o81["5"] = o82;
26473 // 20058
26474 o82.getAttribute = f974244559_500;
26475 // undefined
26476 o82 = null;
26477 // 20059
26478 f974244559_500.returns.push("month_2012_7");
26479 // 20062
26480 o82 = {};
26481 // 20063
26482 o81["6"] = o82;
26483 // 20064
26484 o82.getAttribute = f974244559_500;
26485 // undefined
26486 o82 = null;
26487 // 20065
26488 f974244559_500.returns.push("month_2012_6");
26489 // 20068
26490 o82 = {};
26491 // 20069
26492 o81["7"] = o82;
26493 // 20070
26494 o82.getAttribute = f974244559_500;
26495 // undefined
26496 o82 = null;
26497 // 20071
26498 f974244559_500.returns.push("month_2012_5");
26499 // 20074
26500 o82 = {};
26501 // 20075
26502 o81["8"] = o82;
26503 // 20076
26504 o82.getAttribute = f974244559_500;
26505 // undefined
26506 o82 = null;
26507 // 20077
26508 f974244559_500.returns.push("month_2012_4");
26509 // 20080
26510 o82 = {};
26511 // 20081
26512 o81["9"] = o82;
26513 // 20082
26514 o82.getAttribute = f974244559_500;
26515 // undefined
26516 o82 = null;
26517 // 20083
26518 f974244559_500.returns.push("month_2012_3");
26519 // 20086
26520 o82 = {};
26521 // 20087
26522 o81["10"] = o82;
26523 // 20088
26524 o82.getAttribute = f974244559_500;
26525 // undefined
26526 o82 = null;
26527 // 20089
26528 f974244559_500.returns.push("month_2012_2");
26529 // 20092
26530 o82 = {};
26531 // 20093
26532 o81["11"] = o82;
26533 // undefined
26534 o81 = null;
26535 // 20094
26536 o82.getAttribute = f974244559_500;
26537 // undefined
26538 o82 = null;
26539 // 20095
26540 f974244559_500.returns.push("month_2012_1");
26541 // 20100
26542 f974244559_500.returns.push("2010s");
26543 // 20103
26544 o81 = {};
26545 // 20104
26546 o78["3"] = o81;
26547 // 20105
26548 o81.getAttribute = f974244559_500;
26549 // 20106
26550 f974244559_500.returns.push("year_2011");
26551 // 20109
26552 o81.getElementsByTagName = f974244559_514;
26553 // 20111
26554 o81.querySelectorAll = f974244559_523;
26555 // 20112
26556 o82 = {};
26557 // 20113
26558 f974244559_523.returns.push(o82);
26559 // 20114
26560 o82.length = 1;
26561 // 20115
26562 o83 = {};
26563 // 20116
26564 o82["0"] = o83;
26565 // undefined
26566 o82 = null;
26567 // 20117
26568 o82 = {};
26569 // 20118
26570 o83.childNodes = o82;
26571 // undefined
26572 o83 = null;
26573 // 20119
26574 o82.length = 12;
26575 // 20120
26576 o83 = {};
26577 // 20121
26578 o82["0"] = o83;
26579 // 20122
26580 o83.getAttribute = f974244559_500;
26581 // undefined
26582 o83 = null;
26583 // 20123
26584 f974244559_500.returns.push("month_2011_12");
26585 // 20126
26586 o83 = {};
26587 // 20127
26588 o82["1"] = o83;
26589 // 20128
26590 o83.getAttribute = f974244559_500;
26591 // undefined
26592 o83 = null;
26593 // 20129
26594 f974244559_500.returns.push("month_2011_11");
26595 // 20132
26596 o83 = {};
26597 // 20133
26598 o82["2"] = o83;
26599 // 20134
26600 o83.getAttribute = f974244559_500;
26601 // undefined
26602 o83 = null;
26603 // 20135
26604 f974244559_500.returns.push("month_2011_10");
26605 // 20138
26606 o83 = {};
26607 // 20139
26608 o82["3"] = o83;
26609 // 20140
26610 o83.getAttribute = f974244559_500;
26611 // undefined
26612 o83 = null;
26613 // 20141
26614 f974244559_500.returns.push("month_2011_9");
26615 // 20144
26616 o83 = {};
26617 // 20145
26618 o82["4"] = o83;
26619 // 20146
26620 o83.getAttribute = f974244559_500;
26621 // undefined
26622 o83 = null;
26623 // 20147
26624 f974244559_500.returns.push("month_2011_8");
26625 // 20150
26626 o83 = {};
26627 // 20151
26628 o82["5"] = o83;
26629 // 20152
26630 o83.getAttribute = f974244559_500;
26631 // undefined
26632 o83 = null;
26633 // 20153
26634 f974244559_500.returns.push("month_2011_7");
26635 // 20156
26636 o83 = {};
26637 // 20157
26638 o82["6"] = o83;
26639 // 20158
26640 o83.getAttribute = f974244559_500;
26641 // undefined
26642 o83 = null;
26643 // 20159
26644 f974244559_500.returns.push("month_2011_6");
26645 // 20162
26646 o83 = {};
26647 // 20163
26648 o82["7"] = o83;
26649 // 20164
26650 o83.getAttribute = f974244559_500;
26651 // undefined
26652 o83 = null;
26653 // 20165
26654 f974244559_500.returns.push("month_2011_5");
26655 // 20168
26656 o83 = {};
26657 // 20169
26658 o82["8"] = o83;
26659 // 20170
26660 o83.getAttribute = f974244559_500;
26661 // undefined
26662 o83 = null;
26663 // 20171
26664 f974244559_500.returns.push("month_2011_4");
26665 // 20174
26666 o83 = {};
26667 // 20175
26668 o82["9"] = o83;
26669 // 20176
26670 o83.getAttribute = f974244559_500;
26671 // undefined
26672 o83 = null;
26673 // 20177
26674 f974244559_500.returns.push("month_2011_3");
26675 // 20180
26676 o83 = {};
26677 // 20181
26678 o82["10"] = o83;
26679 // 20182
26680 o83.getAttribute = f974244559_500;
26681 // undefined
26682 o83 = null;
26683 // 20183
26684 f974244559_500.returns.push("month_2011_2");
26685 // 20186
26686 o83 = {};
26687 // 20187
26688 o82["11"] = o83;
26689 // undefined
26690 o82 = null;
26691 // 20188
26692 o83.getAttribute = f974244559_500;
26693 // undefined
26694 o83 = null;
26695 // 20189
26696 f974244559_500.returns.push("month_2011_1");
26697 // 20194
26698 f974244559_500.returns.push("2010s");
26699 // 20197
26700 o82 = {};
26701 // 20198
26702 o78["4"] = o82;
26703 // 20199
26704 o82.getAttribute = f974244559_500;
26705 // 20200
26706 f974244559_500.returns.push("year_2010");
26707 // 20203
26708 o82.getElementsByTagName = f974244559_514;
26709 // 20205
26710 o82.querySelectorAll = f974244559_523;
26711 // undefined
26712 o82 = null;
26713 // 20206
26714 o82 = {};
26715 // 20207
26716 f974244559_523.returns.push(o82);
26717 // 20208
26718 o82.length = 1;
26719 // 20209
26720 o83 = {};
26721 // 20210
26722 o82["0"] = o83;
26723 // undefined
26724 o82 = null;
26725 // 20211
26726 o82 = {};
26727 // 20212
26728 o83.childNodes = o82;
26729 // undefined
26730 o83 = null;
26731 // 20213
26732 o82.length = 12;
26733 // 20214
26734 o83 = {};
26735 // 20215
26736 o82["0"] = o83;
26737 // 20216
26738 o83.getAttribute = f974244559_500;
26739 // undefined
26740 o83 = null;
26741 // 20217
26742 f974244559_500.returns.push("month_2010_12");
26743 // 20220
26744 o83 = {};
26745 // 20221
26746 o82["1"] = o83;
26747 // 20222
26748 o83.getAttribute = f974244559_500;
26749 // undefined
26750 o83 = null;
26751 // 20223
26752 f974244559_500.returns.push("month_2010_11");
26753 // 20226
26754 o83 = {};
26755 // 20227
26756 o82["2"] = o83;
26757 // 20228
26758 o83.getAttribute = f974244559_500;
26759 // undefined
26760 o83 = null;
26761 // 20229
26762 f974244559_500.returns.push("month_2010_10");
26763 // 20232
26764 o83 = {};
26765 // 20233
26766 o82["3"] = o83;
26767 // 20234
26768 o83.getAttribute = f974244559_500;
26769 // undefined
26770 o83 = null;
26771 // 20235
26772 f974244559_500.returns.push("month_2010_9");
26773 // 20238
26774 o83 = {};
26775 // 20239
26776 o82["4"] = o83;
26777 // 20240
26778 o83.getAttribute = f974244559_500;
26779 // undefined
26780 o83 = null;
26781 // 20241
26782 f974244559_500.returns.push("month_2010_8");
26783 // 20244
26784 o83 = {};
26785 // 20245
26786 o82["5"] = o83;
26787 // 20246
26788 o83.getAttribute = f974244559_500;
26789 // undefined
26790 o83 = null;
26791 // 20247
26792 f974244559_500.returns.push("month_2010_7");
26793 // 20250
26794 o83 = {};
26795 // 20251
26796 o82["6"] = o83;
26797 // 20252
26798 o83.getAttribute = f974244559_500;
26799 // undefined
26800 o83 = null;
26801 // 20253
26802 f974244559_500.returns.push("month_2010_6");
26803 // 20256
26804 o83 = {};
26805 // 20257
26806 o82["7"] = o83;
26807 // 20258
26808 o83.getAttribute = f974244559_500;
26809 // undefined
26810 o83 = null;
26811 // 20259
26812 f974244559_500.returns.push("month_2010_5");
26813 // 20262
26814 o83 = {};
26815 // 20263
26816 o82["8"] = o83;
26817 // 20264
26818 o83.getAttribute = f974244559_500;
26819 // undefined
26820 o83 = null;
26821 // 20265
26822 f974244559_500.returns.push("month_2010_4");
26823 // 20268
26824 o83 = {};
26825 // 20269
26826 o82["9"] = o83;
26827 // 20270
26828 o83.getAttribute = f974244559_500;
26829 // undefined
26830 o83 = null;
26831 // 20271
26832 f974244559_500.returns.push("month_2010_3");
26833 // 20274
26834 o83 = {};
26835 // 20275
26836 o82["10"] = o83;
26837 // 20276
26838 o83.getAttribute = f974244559_500;
26839 // undefined
26840 o83 = null;
26841 // 20277
26842 f974244559_500.returns.push("month_2010_2");
26843 // 20280
26844 o83 = {};
26845 // 20281
26846 o82["11"] = o83;
26847 // undefined
26848 o82 = null;
26849 // 20282
26850 o83.getAttribute = f974244559_500;
26851 // undefined
26852 o83 = null;
26853 // 20283
26854 f974244559_500.returns.push("month_2010_1");
26855 // 20288
26856 f974244559_500.returns.push("2010s");
26857 // 20291
26858 o82 = {};
26859 // 20292
26860 o78["5"] = o82;
26861 // 20293
26862 o82.getAttribute = f974244559_500;
26863 // 20294
26864 f974244559_500.returns.push("year_2009");
26865 // 20297
26866 o82.getElementsByTagName = f974244559_514;
26867 // 20299
26868 o82.querySelectorAll = f974244559_523;
26869 // undefined
26870 o82 = null;
26871 // 20300
26872 o82 = {};
26873 // 20301
26874 f974244559_523.returns.push(o82);
26875 // 20302
26876 o82.length = 1;
26877 // 20303
26878 o83 = {};
26879 // 20304
26880 o82["0"] = o83;
26881 // undefined
26882 o82 = null;
26883 // 20305
26884 o82 = {};
26885 // 20306
26886 o83.childNodes = o82;
26887 // undefined
26888 o83 = null;
26889 // 20307
26890 o82.length = 12;
26891 // 20308
26892 o83 = {};
26893 // 20309
26894 o82["0"] = o83;
26895 // 20310
26896 o83.getAttribute = f974244559_500;
26897 // undefined
26898 o83 = null;
26899 // 20311
26900 f974244559_500.returns.push("month_2009_12");
26901 // 20314
26902 o83 = {};
26903 // 20315
26904 o82["1"] = o83;
26905 // 20316
26906 o83.getAttribute = f974244559_500;
26907 // undefined
26908 o83 = null;
26909 // 20317
26910 f974244559_500.returns.push("month_2009_11");
26911 // 20320
26912 o83 = {};
26913 // 20321
26914 o82["2"] = o83;
26915 // 20322
26916 o83.getAttribute = f974244559_500;
26917 // undefined
26918 o83 = null;
26919 // 20323
26920 f974244559_500.returns.push("month_2009_10");
26921 // 20326
26922 o83 = {};
26923 // 20327
26924 o82["3"] = o83;
26925 // 20328
26926 o83.getAttribute = f974244559_500;
26927 // undefined
26928 o83 = null;
26929 // 20329
26930 f974244559_500.returns.push("month_2009_9");
26931 // 20332
26932 o83 = {};
26933 // 20333
26934 o82["4"] = o83;
26935 // 20334
26936 o83.getAttribute = f974244559_500;
26937 // undefined
26938 o83 = null;
26939 // 20335
26940 f974244559_500.returns.push("month_2009_8");
26941 // 20338
26942 o83 = {};
26943 // 20339
26944 o82["5"] = o83;
26945 // 20340
26946 o83.getAttribute = f974244559_500;
26947 // undefined
26948 o83 = null;
26949 // 20341
26950 f974244559_500.returns.push("month_2009_7");
26951 // 20344
26952 o83 = {};
26953 // 20345
26954 o82["6"] = o83;
26955 // 20346
26956 o83.getAttribute = f974244559_500;
26957 // undefined
26958 o83 = null;
26959 // 20347
26960 f974244559_500.returns.push("month_2009_6");
26961 // 20350
26962 o83 = {};
26963 // 20351
26964 o82["7"] = o83;
26965 // 20352
26966 o83.getAttribute = f974244559_500;
26967 // undefined
26968 o83 = null;
26969 // 20353
26970 f974244559_500.returns.push("month_2009_5");
26971 // 20356
26972 o83 = {};
26973 // 20357
26974 o82["8"] = o83;
26975 // 20358
26976 o83.getAttribute = f974244559_500;
26977 // undefined
26978 o83 = null;
26979 // 20359
26980 f974244559_500.returns.push("month_2009_4");
26981 // 20362
26982 o83 = {};
26983 // 20363
26984 o82["9"] = o83;
26985 // 20364
26986 o83.getAttribute = f974244559_500;
26987 // undefined
26988 o83 = null;
26989 // 20365
26990 f974244559_500.returns.push("month_2009_3");
26991 // 20368
26992 o83 = {};
26993 // 20369
26994 o82["10"] = o83;
26995 // 20370
26996 o83.getAttribute = f974244559_500;
26997 // undefined
26998 o83 = null;
26999 // 20371
27000 f974244559_500.returns.push("month_2009_2");
27001 // 20374
27002 o83 = {};
27003 // 20375
27004 o82["11"] = o83;
27005 // undefined
27006 o82 = null;
27007 // 20376
27008 o83.getAttribute = f974244559_500;
27009 // undefined
27010 o83 = null;
27011 // 20377
27012 f974244559_500.returns.push("month_2009_1");
27013 // 20382
27014 f974244559_500.returns.push("2000s");
27015 // 20385
27016 o82 = {};
27017 // 20386
27018 o78["6"] = o82;
27019 // 20387
27020 o82.getAttribute = f974244559_500;
27021 // 20388
27022 f974244559_500.returns.push("year_2008");
27023 // 20391
27024 o82.getElementsByTagName = f974244559_514;
27025 // 20393
27026 o82.querySelectorAll = f974244559_523;
27027 // undefined
27028 o82 = null;
27029 // 20394
27030 o82 = {};
27031 // 20395
27032 f974244559_523.returns.push(o82);
27033 // 20396
27034 o82.length = 1;
27035 // 20397
27036 o83 = {};
27037 // 20398
27038 o82["0"] = o83;
27039 // undefined
27040 o82 = null;
27041 // 20399
27042 o82 = {};
27043 // 20400
27044 o83.childNodes = o82;
27045 // undefined
27046 o83 = null;
27047 // 20401
27048 o82.length = 12;
27049 // 20402
27050 o83 = {};
27051 // 20403
27052 o82["0"] = o83;
27053 // 20404
27054 o83.getAttribute = f974244559_500;
27055 // undefined
27056 o83 = null;
27057 // 20405
27058 f974244559_500.returns.push("month_2008_12");
27059 // 20408
27060 o83 = {};
27061 // 20409
27062 o82["1"] = o83;
27063 // 20410
27064 o83.getAttribute = f974244559_500;
27065 // undefined
27066 o83 = null;
27067 // 20411
27068 f974244559_500.returns.push("month_2008_11");
27069 // 20414
27070 o83 = {};
27071 // 20415
27072 o82["2"] = o83;
27073 // 20416
27074 o83.getAttribute = f974244559_500;
27075 // undefined
27076 o83 = null;
27077 // 20417
27078 f974244559_500.returns.push("month_2008_10");
27079 // 20420
27080 o83 = {};
27081 // 20421
27082 o82["3"] = o83;
27083 // 20422
27084 o83.getAttribute = f974244559_500;
27085 // undefined
27086 o83 = null;
27087 // 20423
27088 f974244559_500.returns.push("month_2008_9");
27089 // 20426
27090 o83 = {};
27091 // 20427
27092 o82["4"] = o83;
27093 // 20428
27094 o83.getAttribute = f974244559_500;
27095 // undefined
27096 o83 = null;
27097 // 20429
27098 f974244559_500.returns.push("month_2008_8");
27099 // 20432
27100 o83 = {};
27101 // 20433
27102 o82["5"] = o83;
27103 // 20434
27104 o83.getAttribute = f974244559_500;
27105 // undefined
27106 o83 = null;
27107 // 20435
27108 f974244559_500.returns.push("month_2008_7");
27109 // 20438
27110 o83 = {};
27111 // 20439
27112 o82["6"] = o83;
27113 // 20440
27114 o83.getAttribute = f974244559_500;
27115 // undefined
27116 o83 = null;
27117 // 20441
27118 f974244559_500.returns.push("month_2008_6");
27119 // 20444
27120 o83 = {};
27121 // 20445
27122 o82["7"] = o83;
27123 // 20446
27124 o83.getAttribute = f974244559_500;
27125 // undefined
27126 o83 = null;
27127 // 20447
27128 f974244559_500.returns.push("month_2008_5");
27129 // 20450
27130 o83 = {};
27131 // 20451
27132 o82["8"] = o83;
27133 // 20452
27134 o83.getAttribute = f974244559_500;
27135 // undefined
27136 o83 = null;
27137 // 20453
27138 f974244559_500.returns.push("month_2008_4");
27139 // 20456
27140 o83 = {};
27141 // 20457
27142 o82["9"] = o83;
27143 // 20458
27144 o83.getAttribute = f974244559_500;
27145 // undefined
27146 o83 = null;
27147 // 20459
27148 f974244559_500.returns.push("month_2008_3");
27149 // 20462
27150 o83 = {};
27151 // 20463
27152 o82["10"] = o83;
27153 // 20464
27154 o83.getAttribute = f974244559_500;
27155 // undefined
27156 o83 = null;
27157 // 20465
27158 f974244559_500.returns.push("month_2008_2");
27159 // 20468
27160 o83 = {};
27161 // 20469
27162 o82["11"] = o83;
27163 // undefined
27164 o82 = null;
27165 // 20470
27166 o83.getAttribute = f974244559_500;
27167 // undefined
27168 o83 = null;
27169 // 20471
27170 f974244559_500.returns.push("month_2008_1");
27171 // 20476
27172 f974244559_500.returns.push("2000s");
27173 // 20479
27174 o82 = {};
27175 // 20480
27176 o78["7"] = o82;
27177 // undefined
27178 o78 = null;
27179 // 20481
27180 o82.getAttribute = f974244559_500;
27181 // 20482
27182 f974244559_500.returns.push("way_back");
27183 // 20485
27184 o82.getElementsByTagName = f974244559_514;
27185 // 20487
27186 o82.querySelectorAll = f974244559_523;
27187 // undefined
27188 o82 = null;
27189 // 20488
27190 o78 = {};
27191 // 20489
27192 f974244559_523.returns.push(o78);
27193 // 20490
27194 o78.length = 0;
27195 // undefined
27196 o78 = null;
27197 // 20493
27198 f974244559_500.returns.push(null);
27199 // 20495
27200 o121.nodeName = "UL";
27201 // 20496
27202 o121.__FB_TOKEN = void 0;
27203 // 20497
27204 // 20498
27205 o121.getAttribute = f974244559_500;
27206 // 20499
27207 o121.hasAttribute = f974244559_527;
27208 // 20501
27209 f974244559_527.returns.push(false);
27210 // 20502
27211 o121.JSBNG__addEventListener = f974244559_472;
27212 // 20504
27213 f974244559_472.returns.push(undefined);
27214 // 20505
27215 o121.JSBNG__onclick = null;
27216 // 20510
27217 f974244559_472.returns.push(undefined);
27218 // 20511
27219 o121.JSBNG__onkeydown = null;
27220 // 20513
27221 o121.getElementsByTagName = f974244559_514;
27222 // 20515
27223 o121.querySelectorAll = f974244559_523;
27224 // 20516
27225 o78 = {};
27226 // 20517
27227 f974244559_523.returns.push(o78);
27228 // 20518
27229 o78.length = 69;
27230 // 20519
27231 o82 = {};
27232 // 20520
27233 o78["0"] = o82;
27234 // undefined
27235 o82 = null;
27236 // 20521
27237 o82 = {};
27238 // 20522
27239 o78["1"] = o82;
27240 // 20523
27241 o83 = {};
27242 // 20524
27243 o78["2"] = o83;
27244 // undefined
27245 o83 = null;
27246 // 20525
27247 o83 = {};
27248 // 20526
27249 o78["3"] = o83;
27250 // undefined
27251 o83 = null;
27252 // 20527
27253 o83 = {};
27254 // 20528
27255 o78["4"] = o83;
27256 // undefined
27257 o83 = null;
27258 // 20529
27259 o83 = {};
27260 // 20530
27261 o78["5"] = o83;
27262 // undefined
27263 o83 = null;
27264 // 20531
27265 o83 = {};
27266 // 20532
27267 o78["6"] = o83;
27268 // undefined
27269 o83 = null;
27270 // 20533
27271 o83 = {};
27272 // 20534
27273 o78["7"] = o83;
27274 // undefined
27275 o83 = null;
27276 // 20535
27277 o83 = {};
27278 // 20536
27279 o78["8"] = o83;
27280 // undefined
27281 o83 = null;
27282 // 20537
27283 o83 = {};
27284 // 20538
27285 o78["9"] = o83;
27286 // undefined
27287 o83 = null;
27288 // 20539
27289 o83 = {};
27290 // 20540
27291 o78["10"] = o83;
27292 // undefined
27293 o83 = null;
27294 // 20541
27295 o83 = {};
27296 // 20542
27297 o78["11"] = o83;
27298 // undefined
27299 o83 = null;
27300 // 20543
27301 o83 = {};
27302 // 20544
27303 o78["12"] = o83;
27304 // undefined
27305 o83 = null;
27306 // 20545
27307 o83 = {};
27308 // 20546
27309 o78["13"] = o83;
27310 // undefined
27311 o83 = null;
27312 // 20547
27313 o83 = {};
27314 // 20548
27315 o78["14"] = o83;
27316 // undefined
27317 o83 = null;
27318 // 20549
27319 o83 = {};
27320 // 20550
27321 o78["15"] = o83;
27322 // undefined
27323 o83 = null;
27324 // 20551
27325 o83 = {};
27326 // 20552
27327 o78["16"] = o83;
27328 // 20553
27329 o84 = {};
27330 // 20554
27331 o78["17"] = o84;
27332 // undefined
27333 o84 = null;
27334 // 20555
27335 o84 = {};
27336 // 20556
27337 o78["18"] = o84;
27338 // undefined
27339 o84 = null;
27340 // 20557
27341 o84 = {};
27342 // 20558
27343 o78["19"] = o84;
27344 // undefined
27345 o84 = null;
27346 // 20559
27347 o84 = {};
27348 // 20560
27349 o78["20"] = o84;
27350 // undefined
27351 o84 = null;
27352 // 20561
27353 o84 = {};
27354 // 20562
27355 o78["21"] = o84;
27356 // undefined
27357 o84 = null;
27358 // 20563
27359 o84 = {};
27360 // 20564
27361 o78["22"] = o84;
27362 // undefined
27363 o84 = null;
27364 // 20565
27365 o84 = {};
27366 // 20566
27367 o78["23"] = o84;
27368 // undefined
27369 o84 = null;
27370 // 20567
27371 o84 = {};
27372 // 20568
27373 o78["24"] = o84;
27374 // undefined
27375 o84 = null;
27376 // 20569
27377 o84 = {};
27378 // 20570
27379 o78["25"] = o84;
27380 // undefined
27381 o84 = null;
27382 // 20571
27383 o84 = {};
27384 // 20572
27385 o78["26"] = o84;
27386 // undefined
27387 o84 = null;
27388 // 20573
27389 o84 = {};
27390 // 20574
27391 o78["27"] = o84;
27392 // undefined
27393 o84 = null;
27394 // 20575
27395 o84 = {};
27396 // 20576
27397 o78["28"] = o84;
27398 // undefined
27399 o84 = null;
27400 // 20577
27401 o84 = {};
27402 // 20578
27403 o78["29"] = o84;
27404 // undefined
27405 o84 = null;
27406 // 20579
27407 o84 = {};
27408 // 20580
27409 o78["30"] = o84;
27410 // undefined
27411 o84 = null;
27412 // 20581
27413 o84 = {};
27414 // 20582
27415 o78["31"] = o84;
27416 // undefined
27417 o84 = null;
27418 // 20583
27419 o84 = {};
27420 // 20584
27421 o78["32"] = o84;
27422 // undefined
27423 o84 = null;
27424 // 20585
27425 o84 = {};
27426 // 20586
27427 o78["33"] = o84;
27428 // undefined
27429 o84 = null;
27430 // 20587
27431 o84 = {};
27432 // 20588
27433 o78["34"] = o84;
27434 // undefined
27435 o84 = null;
27436 // 20589
27437 o84 = {};
27438 // 20590
27439 o78["35"] = o84;
27440 // undefined
27441 o84 = null;
27442 // 20591
27443 o84 = {};
27444 // 20592
27445 o78["36"] = o84;
27446 // undefined
27447 o84 = null;
27448 // 20593
27449 o84 = {};
27450 // 20594
27451 o78["37"] = o84;
27452 // undefined
27453 o84 = null;
27454 // 20595
27455 o84 = {};
27456 // 20596
27457 o78["38"] = o84;
27458 // undefined
27459 o84 = null;
27460 // 20597
27461 o84 = {};
27462 // 20598
27463 o78["39"] = o84;
27464 // undefined
27465 o84 = null;
27466 // 20599
27467 o84 = {};
27468 // 20600
27469 o78["40"] = o84;
27470 // undefined
27471 o84 = null;
27472 // 20601
27473 o84 = {};
27474 // 20602
27475 o78["41"] = o84;
27476 // undefined
27477 o84 = null;
27478 // 20603
27479 o84 = {};
27480 // 20604
27481 o78["42"] = o84;
27482 // undefined
27483 o84 = null;
27484 // 20605
27485 o84 = {};
27486 // 20606
27487 o78["43"] = o84;
27488 // undefined
27489 o84 = null;
27490 // 20607
27491 o84 = {};
27492 // 20608
27493 o78["44"] = o84;
27494 // undefined
27495 o84 = null;
27496 // 20609
27497 o84 = {};
27498 // 20610
27499 o78["45"] = o84;
27500 // undefined
27501 o84 = null;
27502 // 20611
27503 o84 = {};
27504 // 20612
27505 o78["46"] = o84;
27506 // undefined
27507 o84 = null;
27508 // 20613
27509 o84 = {};
27510 // 20614
27511 o78["47"] = o84;
27512 // undefined
27513 o84 = null;
27514 // 20615
27515 o84 = {};
27516 // 20616
27517 o78["48"] = o84;
27518 // undefined
27519 o84 = null;
27520 // 20617
27521 o84 = {};
27522 // 20618
27523 o78["49"] = o84;
27524 // undefined
27525 o84 = null;
27526 // 20619
27527 o84 = {};
27528 // 20620
27529 o78["50"] = o84;
27530 // undefined
27531 o84 = null;
27532 // 20621
27533 o84 = {};
27534 // 20622
27535 o78["51"] = o84;
27536 // undefined
27537 o84 = null;
27538 // 20623
27539 o84 = {};
27540 // 20624
27541 o78["52"] = o84;
27542 // undefined
27543 o84 = null;
27544 // 20625
27545 o84 = {};
27546 // 20626
27547 o78["53"] = o84;
27548 // undefined
27549 o84 = null;
27550 // 20627
27551 o84 = {};
27552 // 20628
27553 o78["54"] = o84;
27554 // undefined
27555 o84 = null;
27556 // 20629
27557 o84 = {};
27558 // 20630
27559 o78["55"] = o84;
27560 // undefined
27561 o84 = null;
27562 // 20631
27563 o84 = {};
27564 // 20632
27565 o78["56"] = o84;
27566 // undefined
27567 o84 = null;
27568 // 20633
27569 o84 = {};
27570 // 20634
27571 o78["57"] = o84;
27572 // undefined
27573 o84 = null;
27574 // 20635
27575 o84 = {};
27576 // 20636
27577 o78["58"] = o84;
27578 // undefined
27579 o84 = null;
27580 // 20637
27581 o84 = {};
27582 // 20638
27583 o78["59"] = o84;
27584 // undefined
27585 o84 = null;
27586 // 20639
27587 o84 = {};
27588 // 20640
27589 o78["60"] = o84;
27590 // undefined
27591 o84 = null;
27592 // 20641
27593 o84 = {};
27594 // 20642
27595 o78["61"] = o84;
27596 // undefined
27597 o84 = null;
27598 // 20643
27599 o84 = {};
27600 // 20644
27601 o78["62"] = o84;
27602 // undefined
27603 o84 = null;
27604 // 20645
27605 o84 = {};
27606 // 20646
27607 o78["63"] = o84;
27608 // undefined
27609 o84 = null;
27610 // 20647
27611 o84 = {};
27612 // 20648
27613 o78["64"] = o84;
27614 // undefined
27615 o84 = null;
27616 // 20649
27617 o84 = {};
27618 // 20650
27619 o78["65"] = o84;
27620 // undefined
27621 o84 = null;
27622 // 20651
27623 o84 = {};
27624 // 20652
27625 o78["66"] = o84;
27626 // undefined
27627 o84 = null;
27628 // 20653
27629 o84 = {};
27630 // 20654
27631 o78["67"] = o84;
27632 // undefined
27633 o84 = null;
27634 // 20655
27635 o84 = {};
27636 // 20656
27637 o78["68"] = o84;
27638 // undefined
27639 o78 = null;
27640 // undefined
27641 o84 = null;
27642 // 20657
27643 o78 = {};
27644 // 20658
27645 o121.classList = o78;
27646 // 20660
27647 o78.remove = f974244559_1244;
27648 // undefined
27649 o78 = null;
27650 // 20661
27651 f974244559_1244.returns.push(undefined);
27652 // 20664
27653 o121.offsetHeight = 200;
27654 // 20668
27655 f974244559_1244.returns.push(undefined);
27656 // 20673
27657 f974244559_1617.returns.push(false);
27658 // 20675
27659 f974244559_502.returns.push(o111);
27660 // 20676
27661 o78 = {};
27662 // 20677
27663 o111.classList = o78;
27664 // 20679
27665 o78.contains = f974244559_1617;
27666 // undefined
27667 o78 = null;
27668 // 20680
27669 f974244559_1617.returns.push(false);
27670 // 20681
27671 o121.parentNode = o111;
27672 // 20683
27673 f974244559_2178.returns.push("TimelineConstants/sectionLoaded");
27674 // 20685
27675 f974244559_471.returns.push(1373491299614);
27676 // 20688
27677 f974244559_471.returns.push(1373491299615);
27678 // 20691
27679 f974244559_471.returns.push(1373491299615);
27680 // 20694
27681 f974244559_502.returns.push(o49);
27682 // 20695
27683 o49.__FB_TOKEN = void 0;
27684 // 20696
27685 // 20699
27686 f974244559_502.returns.push(o58);
27687 // 20700
27688 o58.__FB_TOKEN = void 0;
27689 // 20701
27690 // undefined
27691 o58 = null;
27692 // 20704
27693 f974244559_502.returns.push(o63);
27694 // 20705
27695 o63.__FB_TOKEN = void 0;
27696 // 20706
27697 // 20709
27698 f974244559_502.returns.push(o64);
27699 // 20710
27700 o64.__FB_TOKEN = void 0;
27701 // 20711
27702 // undefined
27703 o64 = null;
27704 // 20714
27705 f974244559_502.returns.push(o65);
27706 // 20715
27707 o65.__FB_TOKEN = void 0;
27708 // 20716
27709 // undefined
27710 o65 = null;
27711 // 20718
27712 f974244559_471.returns.push(1373491299617);
27713 // 20721
27714 f974244559_471.returns.push(1373491299618);
27715 // 20724
27716 f974244559_471.returns.push(1373491299619);
27717 // 20726
27718 f974244559_471.returns.push(1373491299619);
27719 // 20735
27720 f974244559_472.returns.push(undefined);
27721 // 20736
27722 o0.JSBNG__onfullscreenchange = void 0;
27723 // 20741
27724 f974244559_472.returns.push(undefined);
27725 // 20742
27726 o0.JSBNG__onmozfullscreenchange = void 0;
27727 // 20747
27728 f974244559_472.returns.push(undefined);
27729 // 20748
27730 o0.JSBNG__onwebkitfullscreenchange = null;
27731 // 20751
27732 f974244559_2853 = function() { return f974244559_2853.returns[f974244559_2853.inst++]; };
27733 f974244559_2853.returns = [];
27734 f974244559_2853.inst = 0;
27735 // 20752
27736 f974244559_2110.thatReturnsNull = f974244559_2853;
27737 // 20759
27738 o58 = {};
27739 // 20760
27740 f974244559_480.returns.push(o58);
27741 // 20761
27742 // 20762
27743 // 20763
27744 o58.getElementsByTagName = f974244559_514;
27745 // 20764
27746 o64 = {};
27747 // 20765
27748 f974244559_514.returns.push(o64);
27749 // 20766
27750 o64.length = 0;
27751 // undefined
27752 o64 = null;
27753 // 20768
27754 o64 = {};
27755 // 20769
27756 o58.childNodes = o64;
27757 // undefined
27758 o58 = null;
27759 // 20770
27760 o64.item = f974244559_517;
27761 // 20771
27762 o64.length = 1;
27763 // 20772
27764 o58 = {};
27765 // 20773
27766 o64["0"] = o58;
27767 // undefined
27768 o64 = null;
27769 // undefined
27770 o58 = null;
27771 // 20779
27772 f974244559_2853.__prototyped = void 0;
27773 // 20788
27774 f974244559_471.returns.push(1373491299733);
27775 // 20793
27776 f974244559_471.returns.push(1373491299734);
27777 // 20797
27778 f974244559_471.returns.push(1373491299734);
27779 // 20800
27780 o37.__html = void 0;
27781 // 20801
27782 o37.mountComponentIntoNode = void 0;
27783 // undefined
27784 o37 = null;
27785 // 20803
27786 o37 = {};
27787 // 20804
27788 f974244559_480.returns.push(o37);
27789 // 20805
27790 // 20806
27791 o37.firstChild = null;
27792 // 20808
27793 o58 = {};
27794 // 20809
27795 f974244559_478.returns.push(o58);
27796 // 20811
27797 o37.appendChild = f974244559_482;
27798 // 20812
27799 f974244559_482.returns.push(o58);
27800 // undefined
27801 o58 = null;
27802 // 20814
27803 o58 = {};
27804 // 20815
27805 f974244559_480.returns.push(o58);
27806 // 20816
27807 // 20817
27808 o58.firstChild = null;
27809 // 20819
27810 o64 = {};
27811 // 20820
27812 f974244559_478.returns.push(o64);
27813 // 20821
27814 o37.__html = void 0;
27815 // undefined
27816 o37 = null;
27817 // 20822
27818 o58.appendChild = f974244559_482;
27819 // 20823
27820 f974244559_482.returns.push(o64);
27821 // undefined
27822 o64 = null;
27823 // 20824
27824 o58.setAttribute = f974244559_643;
27825 // 20826
27826 f974244559_643.returns.push(undefined);
27827 // 20829
27828 f974244559_643.returns.push(undefined);
27829 // 20830
27830 // 20833
27831 f974244559_643.returns.push(undefined);
27832 // 20836
27833 f974244559_643.returns.push(undefined);
27834 // 20837
27835 o37 = {};
27836 // 20838
27837 o58.classList = o37;
27838 // 20840
27839 o37.add = f974244559_1110;
27840 // undefined
27841 o37 = null;
27842 // 20841
27843 f974244559_1110.returns.push(undefined);
27844 // 20845
27845 f974244559_1110.returns.push(undefined);
27846 // 20849
27847 f974244559_1110.returns.push(undefined);
27848 // 20850
27849 o58.__FB_TOKEN = void 0;
27850 // 20851
27851 // 20853
27852 f974244559_2178.returns.push("show");
27853 // 20854
27854 f974244559_2178.returns.push("hide");
27855 // 20856
27856 f974244559_2178.returns.push("aftershow");
27857 // 20858
27858 f974244559_2178.returns.push("show");
27859 // 20860
27860 f974244559_2178.returns.push("hide");
27861 // 20865
27862 o37 = {};
27863 // 20866
27864 f974244559_523.returns.push(o37);
27865 // 20867
27866 o37.length = 1;
27867 // 20868
27868 o37["0"] = o76;
27869 // undefined
27870 o37 = null;
27871 // undefined
27872 o76 = null;
27873 // 20870
27874 f974244559_2178.returns.push("show");
27875 // 20871
27876 f974244559_2178.returns.push("hide");
27877 // 20873
27878 f974244559_2178.returns.push("show");
27879 // 20875
27880 f974244559_2178.returns.push("hide");
27881 // 20877
27882 f974244559_2178.returns.push("key");
27883 // 20878
27884 f974244559_2864 = function() { return f974244559_2864.returns[f974244559_2864.inst++]; };
27885 f974244559_2864.returns = [];
27886 f974244559_2864.inst = 0;
27887 // 20879
27888 o0.webkitCancelFullScreen = f974244559_2864;
27889 // 20881
27890 f974244559_2178.returns.push("JSBNG__blur");
27891 // 20883
27892 f974244559_2178.returns.push("hide");
27893 // 20885
27894 f974244559_2178.returns.push("key");
27895 // 20886
27896 o58.getElementsByTagName = f974244559_514;
27897 // 20888
27898 o58.querySelectorAll = f974244559_523;
27899 // undefined
27900 o58 = null;
27901 // 20889
27902 o37 = {};
27903 // 20890
27904 f974244559_523.returns.push(o37);
27905 // 20891
27906 o37.length = 0;
27907 // undefined
27908 o37 = null;
27909 // 20895
27910 o37 = {};
27911 // 20896
27912 f974244559_523.returns.push(o37);
27913 // 20897
27914 o37.length = 0;
27915 // undefined
27916 o37 = null;
27917 // 20901
27918 o37 = {};
27919 // 20902
27920 f974244559_523.returns.push(o37);
27921 // 20903
27922 o37.length = 0;
27923 // undefined
27924 o37 = null;
27925 // 20907
27926 f974244559_1110.returns.push(undefined);
27927 // 20909
27928 f974244559_471.returns.push(1373491299751);
27929 // 20911
27930 f974244559_471.returns.push(1373491299751);
27931 // 20913
27932 f974244559_2178.returns.push("PhotoSnowlift.GO");
27933 // 20915
27934 f974244559_2178.returns.push("PhotoTagApproval.HILITE_TAG");
27935 // 20917
27936 f974244559_2178.returns.push("PhotoTagApproval.UPDATE_TAG_BOX");
27937 // 20919
27938 f974244559_2178.returns.push("changed");
27939 // 20921
27940 o37 = {};
27941 // 20922
27942 o58 = {};
27943 // 20924
27944 o37.length = 1;
27945 // 20925
27946 o37["0"] = "+h1d2";
27947 // 20928
27948 f974244559_471.returns.push(1373491299754);
27949 // 20931
27950 f974244559_471.returns.push(1373491299759);
27951 // 20933
27952 f974244559_471.returns.push(1373491299759);
27953 // 20936
27954 f974244559_471.returns.push(1373491299760);
27955 // 20939
27956 f974244559_471.returns.push(1373491299761);
27957 // 20941
27958 f974244559_471.returns.push(1373491299761);
27959 // 20944
27960 f974244559_471.returns.push(1373491299762);
27961 // 20947
27962 f974244559_471.returns.push(1373491299762);
27963 // 20949
27964 f974244559_471.returns.push(1373491299762);
27965 // 20952
27966 f974244559_471.returns.push(1373491299764);
27967 // 20955
27968 f974244559_471.returns.push(1373491299764);
27969 // 20957
27970 f974244559_471.returns.push(1373491299764);
27971 // 20967
27972 f974244559_2178.returns.push("channel/message:live");
27973 // 20971
27974 o64 = {};
27975 // 20972
27976 f974244559_478.returns.push(o64);
27977 // 20974
27978 f974244559_482.returns.push(o64);
27979 // undefined
27980 o64 = null;
27981 // 20980
27982 o64 = {};
27983 // 20981
27984 f974244559_478.returns.push(o64);
27985 // 20983
27986 f974244559_482.returns.push(o64);
27987 // undefined
27988 o64 = null;
27989 // 20991
27990 o64 = {};
27991 // 20992
27992 f974244559_523.returns.push(o64);
27993 // 20993
27994 o64.length = 4;
27995 // 20994
27996 o64["0"] = o46;
27997 // undefined
27998 o46 = null;
27999 // 20995
28000 o64["1"] = o48;
28001 // undefined
28002 o48 = null;
28003 // 20996
28004 o46 = {};
28005 // 20997
28006 o64["2"] = o46;
28007 // undefined
28008 o46 = null;
28009 // 20998
28010 o64["3"] = o45;
28011 // undefined
28012 o64 = null;
28013 // undefined
28014 o45 = null;
28015 // 21002
28016 o45 = {};
28017 // 21003
28018 f974244559_478.returns.push(o45);
28019 // 21005
28020 f974244559_482.returns.push(o45);
28021 // undefined
28022 o45 = null;
28023 // 21009
28024 o45 = {};
28025 // 21010
28026 f974244559_478.returns.push(o45);
28027 // 21012
28028 f974244559_482.returns.push(o45);
28029 // undefined
28030 o45 = null;
28031 // 21018
28032 o45 = {};
28033 // 21019
28034 f974244559_478.returns.push(o45);
28035 // 21021
28036 f974244559_482.returns.push(o45);
28037 // undefined
28038 o45 = null;
28039 // 21027
28040 o45 = {};
28041 // 21028
28042 f974244559_478.returns.push(o45);
28043 // 21030
28044 f974244559_482.returns.push(o45);
28045 // undefined
28046 o45 = null;
28047 // 21036
28048 f974244559_471.returns.push(1373491299784);
28049 // undefined
28050 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
28051 // 21045
28052 o45 = {};
28053 // 21046
28054 f974244559_478.returns.push(o45);
28055 // 21048
28056 f974244559_482.returns.push(o45);
28057 // undefined
28058 o45 = null;
28059 // 21052
28060 // undefined
28061 o8 = null;
28062 // 21056
28063 o8 = {};
28064 // 21057
28065 f974244559_478.returns.push(o8);
28066 // 21059
28067 f974244559_482.returns.push(o8);
28068 // undefined
28069 o8 = null;
28070 // 21062
28071 f974244559_12.returns.push(68);
28072 // 21066
28073 o8 = {};
28074 // 21067
28075 f974244559_478.returns.push(o8);
28076 // 21069
28077 f974244559_482.returns.push(o8);
28078 // undefined
28079 o8 = null;
28080 // 21073
28081 o8 = {};
28082 // 21074
28083 f974244559_480.returns.push(o8);
28084 // 21076
28085 o8.__html = void 0;
28086 // 21078
28087 o45 = {};
28088 // 21079
28089 f974244559_478.returns.push(o45);
28090 // 21082
28091 f974244559_482.returns.push(o45);
28092 // undefined
28093 o45 = null;
28094 // 21083
28095 o45 = {};
28096 // 21084
28097 o8.style = o45;
28098 // 21085
28099 // undefined
28100 o45 = null;
28101 // 21086
28102 o45 = {};
28103 // 21087
28104 f974244559_4.returns.push(o45);
28105 // 21088
28106 o45.getPropertyValue = f974244559_1881;
28107 // undefined
28108 o45 = null;
28109 // 21089
28110 f974244559_1881.returns.push("");
28111 // 21090
28112 o45 = {};
28113 // 21091
28114 f974244559_4.returns.push(o45);
28115 // 21092
28116 o45.getPropertyValue = f974244559_1881;
28117 // undefined
28118 o45 = null;
28119 // 21093
28120 f974244559_1881.returns.push("");
28121 // 21094
28122 o45 = {};
28123 // 21095
28124 f974244559_4.returns.push(o45);
28125 // 21096
28126 o45.getPropertyValue = f974244559_1881;
28127 // undefined
28128 o45 = null;
28129 // 21097
28130 f974244559_1881.returns.push("");
28131 // 21098
28132 o8.parentNode = null;
28133 // undefined
28134 o8 = null;
28135 // 21102
28136 o8 = {};
28137 // 21103
28138 f974244559_478.returns.push(o8);
28139 // 21105
28140 f974244559_482.returns.push(o8);
28141 // undefined
28142 o8 = null;
28143 // 21125
28144 f974244559_471.returns.push(1373491299793);
28145 // undefined
28146 fo974244559_2174_style.returns.push(o9);
28147 // 21127
28148 // undefined
28149 fo974244559_2174_style.returns.push(o9);
28150 // 21129
28151 o9.cssText = "opacity: 1; width: 0px; right: 35px; top: 37px; z-index: 300;";
28152 // undefined
28153 fo974244559_2174_style.returns.push(o9);
28154 // 21131
28155 // undefined
28156 fo974244559_2174_style.returns.push(o9);
28157 // 21133
28158 // undefined
28159 o9 = null;
28160 // 21134
28161 f974244559_14.returns.push(undefined);
28162 // 21137
28163 f974244559_471.returns.push(1373491299800);
28164 // 21138
28165 o8 = {};
28166 // 21139
28167 o10.classList = o8;
28168 // 21141
28169 o8.contains = f974244559_1617;
28170 // undefined
28171 o8 = null;
28172 // 21142
28173 f974244559_1617.returns.push(false);
28174 // 21143
28175 o8 = {};
28176 // 21144
28177 o10.parentNode = o8;
28178 // 21145
28179 o9 = {};
28180 // 21146
28181 o8.classList = o9;
28182 // 21148
28183 o9.contains = f974244559_1617;
28184 // undefined
28185 o9 = null;
28186 // 21149
28187 f974244559_1617.returns.push(true);
28188 // 21150
28189 o10.getElementsByTagName = f974244559_514;
28190 // 21152
28191 o10.querySelectorAll = f974244559_523;
28192 // 21153
28193 o9 = {};
28194 // 21154
28195 f974244559_523.returns.push(o9);
28196 // 21155
28197 o9.length = 1;
28198 // 21156
28199 o9["0"] = o44;
28200 // undefined
28201 o9 = null;
28202 // 21160
28203 o9 = {};
28204 // 21161
28205 f974244559_523.returns.push(o9);
28206 // 21162
28207 o9.length = 1;
28208 // 21163
28209 o9["0"] = o100;
28210 // undefined
28211 o9 = null;
28212 // 21164
28213 o100.offsetHeight = 785;
28214 // 21165
28215 o44.offsetHeight = 1872;
28216 // 21166
28217 o8.id = "u_0_18";
28218 // 21170
28219 f974244559_1617.returns.push(false);
28220 // 21175
28221 f974244559_1617.returns.push(true);
28222 // 21179
28223 o9 = {};
28224 // 21180
28225 f974244559_523.returns.push(o9);
28226 // 21181
28227 o9.length = 1;
28228 // 21182
28229 o9["0"] = o44;
28230 // undefined
28231 o9 = null;
28232 // undefined
28233 o44 = null;
28234 // 21186
28235 o9 = {};
28236 // 21187
28237 f974244559_523.returns.push(o9);
28238 // 21188
28239 o9.length = 1;
28240 // 21189
28241 o9["0"] = o100;
28242 // undefined
28243 o9 = null;
28244 // undefined
28245 o100 = null;
28246 // 21193
28247 o193.offsetTop = 0;
28248 // 21200
28249 f974244559_502.returns.push(o193);
28250 // undefined
28251 o193 = null;
28252 // 21204
28253 f974244559_702.returns.push(true);
28254 // 21205
28255 o9 = {};
28256 // 21206
28257 f974244559_4.returns.push(o9);
28258 // 21207
28259 o9.getPropertyValue = f974244559_1881;
28260 // undefined
28261 o9 = null;
28262 // 21208
28263 f974244559_1881.returns.push("fixed");
28264 // 21210
28265 f974244559_502.returns.push(o194);
28266 // 21211
28267 o194.offsetHeight = 38;
28268 // undefined
28269 o194 = null;
28270 // 21212
28271 o19.offsetWidth = 157;
28272 // 21213
28273 o19.offsetHeight = 62;
28274 // 21217
28275 f974244559_702.returns.push(true);
28276 // 21218
28277 o19.getBoundingClientRect = f974244559_1882;
28278 // 21219
28279 o9 = {};
28280 // 21220
28281 f974244559_1882.returns.push(o9);
28282 // 21221
28283 o9.left = 373.5;
28284 // 21223
28285 o9.JSBNG__top = 10526;
28286 // undefined
28287 o9 = null;
28288 // 21228
28289 o9 = {};
28290 // 21229
28291 o19.classList = o9;
28292 // 21231
28293 o9.contains = f974244559_1617;
28294 // undefined
28295 o9 = null;
28296 // 21232
28297 f974244559_1617.returns.push(false);
28298 // 21233
28299 o19.parentNode = o18;
28300 // undefined
28301 o19 = null;
28302 // 21234
28303 o9 = {};
28304 // 21235
28305 o18.classList = o9;
28306 // 21237
28307 o9.contains = f974244559_1617;
28308 // undefined
28309 o9 = null;
28310 // 21238
28311 f974244559_1617.returns.push(false);
28312 // 21239
28313 o18.parentNode = o109;
28314 // undefined
28315 o18 = null;
28316 // 21240
28317 o9 = {};
28318 // 21241
28319 o109.classList = o9;
28320 // 21243
28321 o9.contains = f974244559_1617;
28322 // undefined
28323 o9 = null;
28324 // 21244
28325 f974244559_1617.returns.push(false);
28326 // 21245
28327 o9 = {};
28328 // 21246
28329 o109.parentNode = o9;
28330 // undefined
28331 o109 = null;
28332 // 21247
28333 o18 = {};
28334 // 21248
28335 o9.classList = o18;
28336 // 21250
28337 o18.contains = f974244559_1617;
28338 // undefined
28339 o18 = null;
28340 // 21251
28341 f974244559_1617.returns.push(false);
28342 // 21252
28343 o9.parentNode = o10;
28344 // undefined
28345 o9 = null;
28346 // 21256
28347 f974244559_1617.returns.push(false);
28348 // 21261
28349 f974244559_1617.returns.push(false);
28350 // 21262
28351 o8.parentNode = o43;
28352 // 21263
28353 o9 = {};
28354 // 21264
28355 o43.classList = o9;
28356 // 21266
28357 o9.contains = f974244559_1617;
28358 // undefined
28359 o9 = null;
28360 // 21267
28361 f974244559_1617.returns.push(false);
28362 // 21268
28363 o43.parentNode = o11;
28364 // 21269
28365 o9 = {};
28366 // 21270
28367 o11.classList = o9;
28368 // 21272
28369 o9.contains = f974244559_1617;
28370 // undefined
28371 o9 = null;
28372 // 21273
28373 f974244559_1617.returns.push(false);
28374 // 21274
28375 o11.parentNode = o27;
28376 // 21275
28377 o9 = {};
28378 // 21276
28379 o27.classList = o9;
28380 // undefined
28381 o27 = null;
28382 // 21278
28383 o9.contains = f974244559_1617;
28384 // undefined
28385 o9 = null;
28386 // 21279
28387 f974244559_1617.returns.push(false);
28388 // 21281
28389 o9 = {};
28390 // 21282
28391 o13.classList = o9;
28392 // undefined
28393 o13 = null;
28394 // 21284
28395 o9.contains = f974244559_1617;
28396 // undefined
28397 o9 = null;
28398 // 21285
28399 f974244559_1617.returns.push(false);
28400 // 21287
28401 o9 = {};
28402 // 21288
28403 o70.classList = o9;
28404 // undefined
28405 o70 = null;
28406 // 21290
28407 o9.contains = f974244559_1617;
28408 // undefined
28409 o9 = null;
28410 // 21291
28411 f974244559_1617.returns.push(false);
28412 // 21293
28413 o9 = {};
28414 // 21294
28415 o71.classList = o9;
28416 // 21296
28417 o9.contains = f974244559_1617;
28418 // undefined
28419 o9 = null;
28420 // 21297
28421 f974244559_1617.returns.push(false);
28422 // 21299
28423 o9 = {};
28424 // 21300
28425 o72.classList = o9;
28426 // undefined
28427 o72 = null;
28428 // 21302
28429 o9.contains = f974244559_1617;
28430 // undefined
28431 o9 = null;
28432 // 21303
28433 f974244559_1617.returns.push(false);
28434 // 21305
28435 o9 = {};
28436 // 21306
28437 o73.classList = o9;
28438 // undefined
28439 o73 = null;
28440 // 21308
28441 o9.contains = f974244559_1617;
28442 // undefined
28443 o9 = null;
28444 // 21309
28445 f974244559_1617.returns.push(false);
28446 // 21311
28447 o9 = {};
28448 // 21312
28449 o74.classList = o9;
28450 // undefined
28451 o74 = null;
28452 // 21314
28453 o9.contains = f974244559_1617;
28454 // undefined
28455 o9 = null;
28456 // 21315
28457 f974244559_1617.returns.push(false);
28458 // 21317
28459 o9 = {};
28460 // 21318
28461 o75.classList = o9;
28462 // undefined
28463 o75 = null;
28464 // 21320
28465 o9.contains = f974244559_1617;
28466 // undefined
28467 o9 = null;
28468 // 21321
28469 f974244559_1617.returns.push(false);
28470 // 21326
28471 f974244559_1617.returns.push(false);
28472 // 21331
28473 f974244559_1617.returns.push(false);
28474 // 21336
28475 f974244559_1617.returns.push(false);
28476 // 21344
28477 o9 = {};
28478 // 21345
28479 f974244559_523.returns.push(o9);
28480 // 21346
28481 o9.length = 1;
28482 // 21347
28483 o9["0"] = o101;
28484 // undefined
28485 o9 = null;
28486 // 21348
28487 o101.getAttribute = f974244559_500;
28488 // 21349
28489 f974244559_500.returns.push("recent");
28490 // 21351
28491 f974244559_500.returns.push("0");
28492 // 21353
28493 f974244559_2178.returns.push("TimelineConstants/sectionRegistered");
28494 // 21357
28495 o9 = {};
28496 // 21358
28497 f974244559_523.returns.push(o9);
28498 // 21359
28499 o9.length = 1;
28500 // 21360
28501 o9["0"] = o101;
28502 // undefined
28503 o9 = null;
28504 // undefined
28505 o101 = null;
28506 // 21362
28507 f974244559_500.returns.push("recent");
28508 // 21364
28509 f974244559_500.returns.push("0");
28510 // 21366
28511 f974244559_2178.returns.push("TimelineConstants/sectionRegistered");
28512 // 21369
28513 o68.add = f974244559_1110;
28514 // undefined
28515 o68 = null;
28516 // 21370
28517 f974244559_1110.returns.push(undefined);
28518 // 21371
28519 f974244559_468.returns.push(10);
28520 // 21372
28521 o20.offsetTop = 38;
28522 // 21373
28523 o20.scrollHeight = 48;
28524 // undefined
28525 o20 = null;
28526 // 21374
28527 f974244559_2914 = function() { return f974244559_2914.returns[f974244559_2914.inst++]; };
28528 f974244559_2914.returns = [];
28529 f974244559_2914.inst = 0;
28530 // 21375
28531 f974244559_2110.thatReturns = f974244559_2914;
28532 // 21376
28533 f974244559_2914.returns.push({__JSBNG_unknown_function:true});
28534 // 21377
28535 o9 = {};
28536 // 21381
28537 f974244559_471.returns.push(1373491299840);
28538 // 21382
28539 o9.cancelBubble = false;
28540 // 21383
28541 o9.returnValue = true;
28542 // 21386
28543 o9.srcElement = o71;
28544 // 21388
28545 o9.target = o71;
28546 // 21395
28547 f974244559_519.returns.push(null);
28548 // 21401
28549 f974244559_519.returns.push(null);
28550 // 21407
28551 f974244559_519.returns.push(null);
28552 // 21413
28553 f974244559_519.returns.push(null);
28554 // 21419
28555 f974244559_519.returns.push(null);
28556 // 21425
28557 f974244559_519.returns.push(null);
28558 // 21431
28559 f974244559_519.returns.push(null);
28560 // 21437
28561 f974244559_519.returns.push(null);
28562 // 21442
28563 o9.JSBNG__screenX = 997;
28564 // 21443
28565 o9.JSBNG__screenY = 323;
28566 // 21444
28567 o9.altKey = false;
28568 // 21445
28569 o9.bubbles = true;
28570 // 21446
28571 o9.button = 0;
28572 // 21447
28573 o9.buttons = void 0;
28574 // 21448
28575 o9.cancelable = false;
28576 // 21449
28577 o9.clientX = 980;
28578 // 21450
28579 o9.clientY = 219;
28580 // 21451
28581 o9.ctrlKey = false;
28582 // 21452
28583 o9.currentTarget = o0;
28584 // 21453
28585 o9.defaultPrevented = false;
28586 // 21454
28587 o9.detail = 0;
28588 // 21455
28589 o9.eventPhase = 3;
28590 // 21456
28591 o9.isTrusted = void 0;
28592 // 21457
28593 o9.metaKey = false;
28594 // 21458
28595 o9.pageX = 980;
28596 // 21459
28597 o9.pageY = 1698;
28598 // 21460
28599 o9.relatedTarget = null;
28600 // 21461
28601 o9.fromElement = null;
28602 // 21464
28603 o9.shiftKey = false;
28604 // 21467
28605 o9.timeStamp = 1373491299840;
28606 // 21468
28607 o9.type = "mousemove";
28608 // 21469
28609 o9.view = ow974244559;
28610 // undefined
28611 o9 = null;
28612 // 21472
28613 f974244559_2916 = function() { return f974244559_2916.returns[f974244559_2916.inst++]; };
28614 f974244559_2916.returns = [];
28615 f974244559_2916.inst = 0;
28616 // 21473
28617 f974244559_2110.thatReturnsFalse = f974244559_2916;
28618 // 21479
28619 f974244559_2566.returns.push(undefined);
28620 // 21482
28621 f974244559_14.returns.push(undefined);
28622 // 21487
28623 f974244559_471.returns.push(1373491299854);
28624 // 21488
28625 f974244559_12.returns.push(69);
28626 // 21491
28627 o9 = {};
28628 // 21494
28629 o9.cancelBubble = false;
28630 // 21497
28631 f974244559_471.returns.push(1373491299867);
28632 // 21499
28633 o9.returnValue = true;
28634 // undefined
28635 o9 = null;
28636 // 21500
28637 f974244559_12.returns.push(70);
28638 // 21504
28639 o23.offsetHeight = 240;
28640 // 21505
28641 f974244559_643.returns.push(undefined);
28642 // undefined
28643 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
28644 // 21509
28645 f974244559_471.returns.push(1373491299880);
28646 // 21511
28647 o21.offsetHeight = 187;
28648 // 21512
28649 f974244559_643.returns.push(undefined);
28650 // 21514
28651 o22.offsetHeight = 175;
28652 // undefined
28653 o22 = null;
28654 // 21515
28655 f974244559_643.returns.push(undefined);
28656 // 21517
28657 o26.offsetHeight = 227;
28658 // undefined
28659 o26 = null;
28660 // 21518
28661 f974244559_643.returns.push(undefined);
28662 // 21520
28663 o40.offsetHeight = 136;
28664 // undefined
28665 o40 = null;
28666 // 21521
28667 f974244559_643.returns.push(undefined);
28668 // 21523
28669 f974244559_471.returns.push(1373491299881);
28670 // undefined
28671 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
28672 // 21528
28673 // 21529
28674 o9 = {};
28675 // 21533
28676 f974244559_471.returns.push(1373491299957);
28677 // 21534
28678 o9.cancelBubble = false;
28679 // 21535
28680 o9.returnValue = true;
28681 // 21538
28682 o9.srcElement = o71;
28683 // 21540
28684 o9.target = o71;
28685 // 21547
28686 f974244559_519.returns.push(null);
28687 // 21553
28688 f974244559_519.returns.push(null);
28689 // 21559
28690 f974244559_519.returns.push(null);
28691 // 21565
28692 f974244559_519.returns.push(null);
28693 // 21571
28694 f974244559_519.returns.push(null);
28695 // 21577
28696 f974244559_519.returns.push(null);
28697 // 21583
28698 f974244559_519.returns.push(null);
28699 // 21589
28700 f974244559_519.returns.push(null);
28701 // 21594
28702 o9.JSBNG__screenX = 997;
28703 // 21595
28704 o9.JSBNG__screenY = 323;
28705 // 21596
28706 o9.altKey = false;
28707 // 21597
28708 o9.bubbles = true;
28709 // 21598
28710 o9.button = 0;
28711 // 21599
28712 o9.buttons = void 0;
28713 // 21600
28714 o9.cancelable = false;
28715 // 21601
28716 o9.clientX = 980;
28717 // 21602
28718 o9.clientY = 219;
28719 // 21603
28720 o9.ctrlKey = false;
28721 // 21604
28722 o9.currentTarget = o0;
28723 // 21605
28724 o9.defaultPrevented = false;
28725 // 21606
28726 o9.detail = 0;
28727 // 21607
28728 o9.eventPhase = 3;
28729 // 21608
28730 o9.isTrusted = void 0;
28731 // 21609
28732 o9.metaKey = false;
28733 // 21610
28734 o9.pageX = 980;
28735 // 21611
28736 o9.pageY = 1858;
28737 // 21612
28738 o9.relatedTarget = null;
28739 // 21613
28740 o9.fromElement = null;
28741 // 21616
28742 o9.shiftKey = false;
28743 // 21619
28744 o9.timeStamp = 1373491299957;
28745 // 21620
28746 o9.type = "mousemove";
28747 // 21621
28748 o9.view = ow974244559;
28749 // undefined
28750 o9 = null;
28751 // 21630
28752 f974244559_2566.returns.push(undefined);
28753 // 21633
28754 f974244559_14.returns.push(undefined);
28755 // 21634
28756 f974244559_12.returns.push(71);
28757 // 21639
28758 f974244559_471.returns.push(1373491300072);
28759 // 21641
28760 f974244559_471.returns.push(1373491300074);
28761 // 21643
28762 f974244559_471.returns.push(1373491300074);
28763 // 21644
28764 f974244559_14.returns.push(undefined);
28765 // 21645
28766 f974244559_12.returns.push(72);
28767 // 21646
28768 f974244559_14.returns.push(undefined);
28769 // 21647
28770 o9 = {};
28771 // 21650
28772 o9.cancelBubble = false;
28773 // 21653
28774 f974244559_471.returns.push(1373491300228);
28775 // 21655
28776 o9.returnValue = true;
28777 // undefined
28778 o9 = null;
28779 // 21656
28780 o9 = {};
28781 // 21659
28782 o9.cancelBubble = false;
28783 // 21662
28784 f974244559_471.returns.push(1373491300239);
28785 // 21664
28786 f974244559_12.returns.push(73);
28787 // 21668
28788 f974244559_471.returns.push(1373491300240);
28789 // 21672
28790 f974244559_471.returns.push(1373491300240);
28791 // 21675
28792 o9.returnValue = true;
28793 // undefined
28794 o9 = null;
28795 // 21676
28796 o9 = {};
28797 // 21679
28798 o9.cancelBubble = false;
28799 // 21682
28800 f974244559_471.returns.push(1373491300258);
28801 // 21684
28802 o9.returnValue = true;
28803 // undefined
28804 o9 = null;
28805 // 21685
28806 o9 = {};
28807 // 21688
28808 o9.cancelBubble = false;
28809 // 21691
28810 f974244559_471.returns.push(1373491300311);
28811 // 21693
28812 o9.returnValue = true;
28813 // undefined
28814 o9 = null;
28815 // 21694
28816 o9 = {};
28817 // 21697
28818 o9.cancelBubble = false;
28819 // 21700
28820 f974244559_471.returns.push(1373491300320);
28821 // 21702
28822 o9.returnValue = true;
28823 // undefined
28824 o9 = null;
28825 // 21703
28826 o9 = {};
28827 // 21707
28828 f974244559_471.returns.push(1373491300331);
28829 // 21708
28830 o9.cancelBubble = false;
28831 // 21709
28832 o9.returnValue = true;
28833 // 21712
28834 o9.srcElement = o71;
28835 // 21714
28836 o9.target = o71;
28837 // 21721
28838 f974244559_519.returns.push(null);
28839 // 21727
28840 f974244559_519.returns.push(null);
28841 // 21733
28842 f974244559_519.returns.push(null);
28843 // 21739
28844 f974244559_519.returns.push(null);
28845 // 21745
28846 f974244559_519.returns.push(null);
28847 // 21751
28848 f974244559_519.returns.push(null);
28849 // 21757
28850 f974244559_519.returns.push(null);
28851 // 21763
28852 f974244559_519.returns.push(null);
28853 // 21768
28854 o9.JSBNG__screenX = 997;
28855 // 21769
28856 o9.JSBNG__screenY = 323;
28857 // 21770
28858 o9.altKey = false;
28859 // 21771
28860 o9.bubbles = true;
28861 // 21772
28862 o9.button = 0;
28863 // 21773
28864 o9.buttons = void 0;
28865 // 21774
28866 o9.cancelable = false;
28867 // 21775
28868 o9.clientX = 980;
28869 // 21776
28870 o9.clientY = 219;
28871 // 21777
28872 o9.ctrlKey = false;
28873 // 21778
28874 o9.currentTarget = o0;
28875 // 21779
28876 o9.defaultPrevented = false;
28877 // 21780
28878 o9.detail = 0;
28879 // 21781
28880 o9.eventPhase = 3;
28881 // 21782
28882 o9.isTrusted = void 0;
28883 // 21783
28884 o9.metaKey = false;
28885 // 21784
28886 o9.pageX = 980;
28887 // 21785
28888 o9.pageY = 2058;
28889 // 21786
28890 o9.relatedTarget = null;
28891 // 21787
28892 o9.fromElement = null;
28893 // 21790
28894 o9.shiftKey = false;
28895 // 21793
28896 o9.timeStamp = 1373491300330;
28897 // 21794
28898 o9.type = "mousemove";
28899 // 21795
28900 o9.view = ow974244559;
28901 // undefined
28902 o9 = null;
28903 // 21804
28904 f974244559_2566.returns.push(undefined);
28905 // 21807
28906 f974244559_14.returns.push(undefined);
28907 // 21812
28908 f974244559_471.returns.push(1373491300339);
28909 // 21813
28910 f974244559_12.returns.push(74);
28911 // undefined
28912 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456; wd=1050x588");
28913 // 21817
28914 o9 = {};
28915 // 21821
28916 f974244559_471.returns.push(1373491300442);
28917 // 21822
28918 o9.cancelBubble = false;
28919 // 21823
28920 o9.returnValue = true;
28921 // 21826
28922 o9.srcElement = o71;
28923 // 21828
28924 o9.target = o71;
28925 // 21835
28926 f974244559_519.returns.push(null);
28927 // 21841
28928 f974244559_519.returns.push(null);
28929 // 21847
28930 f974244559_519.returns.push(null);
28931 // 21853
28932 f974244559_519.returns.push(null);
28933 // 21859
28934 f974244559_519.returns.push(null);
28935 // 21865
28936 f974244559_519.returns.push(null);
28937 // 21871
28938 f974244559_519.returns.push(null);
28939 // 21877
28940 f974244559_519.returns.push(null);
28941 // 21882
28942 o9.JSBNG__screenX = 997;
28943 // 21883
28944 o9.JSBNG__screenY = 323;
28945 // 21884
28946 o9.altKey = false;
28947 // 21885
28948 o9.bubbles = true;
28949 // 21886
28950 o9.button = 0;
28951 // 21887
28952 o9.buttons = void 0;
28953 // 21888
28954 o9.cancelable = false;
28955 // 21889
28956 o9.clientX = 980;
28957 // 21890
28958 o9.clientY = 219;
28959 // 21891
28960 o9.ctrlKey = false;
28961 // 21892
28962 o9.currentTarget = o0;
28963 // 21893
28964 o9.defaultPrevented = false;
28965 // 21894
28966 o9.detail = 0;
28967 // 21895
28968 o9.eventPhase = 3;
28969 // 21896
28970 o9.isTrusted = void 0;
28971 // 21897
28972 o9.metaKey = false;
28973 // 21898
28974 o9.pageX = 980;
28975 // 21899
28976 o9.pageY = 2098;
28977 // 21900
28978 o9.relatedTarget = null;
28979 // 21901
28980 o9.fromElement = null;
28981 // 21904
28982 o9.shiftKey = false;
28983 // 21907
28984 o9.timeStamp = 1373491300441;
28985 // 21908
28986 o9.type = "mousemove";
28987 // 21909
28988 o9.view = ow974244559;
28989 // undefined
28990 o9 = null;
28991 // 21918
28992 f974244559_2566.returns.push(undefined);
28993 // 21921
28994 f974244559_14.returns.push(undefined);
28995 // 21922
28996 f974244559_12.returns.push(75);
28997 // 21925
28998 o9 = {};
28999 // 21928
29000 o9.cancelBubble = false;
29001 // 21931
29002 f974244559_471.returns.push(1373491300727);
29003 // 21933
29004 o9.returnValue = true;
29005 // undefined
29006 o9 = null;
29007 // 21934
29008 o9 = {};
29009 // 21937
29010 o9.cancelBubble = false;
29011 // 21940
29012 f974244559_471.returns.push(1373491300744);
29013 // 21945
29014 f974244559_471.returns.push(1373491300746);
29015 // 21949
29016 f974244559_471.returns.push(1373491300746);
29017 // 21952
29018 o9.returnValue = true;
29019 // undefined
29020 o9 = null;
29021 // 21953
29022 o9 = {};
29023 // 21956
29024 o9.cancelBubble = false;
29025 // 21959
29026 f974244559_471.returns.push(1373491300763);
29027 // 21961
29028 o9.returnValue = true;
29029 // undefined
29030 o9 = null;
29031 // 21962
29032 o9 = {};
29033 // 21965
29034 o9.cancelBubble = false;
29035 // 21968
29036 f974244559_471.returns.push(1373491300780);
29037 // 21970
29038 o9.returnValue = true;
29039 // undefined
29040 o9 = null;
29041 // 21971
29042 o9 = {};
29043 // 21974
29044 o9.cancelBubble = false;
29045 // 21977
29046 f974244559_471.returns.push(1373491300823);
29047 // 21979
29048 o9.returnValue = true;
29049 // undefined
29050 o9 = null;
29051 // 21980
29052 o9 = {};
29053 // 21984
29054 f974244559_471.returns.push(1373491300830);
29055 // 21985
29056 o9.cancelBubble = false;
29057 // 21986
29058 o9.returnValue = true;
29059 // 21989
29060 o9.srcElement = o71;
29061 // 21991
29062 o9.target = o71;
29063 // 21998
29064 f974244559_519.returns.push(null);
29065 // 22004
29066 f974244559_519.returns.push(null);
29067 // 22010
29068 f974244559_519.returns.push(null);
29069 // 22016
29070 f974244559_519.returns.push(null);
29071 // 22022
29072 f974244559_519.returns.push(null);
29073 // 22028
29074 f974244559_519.returns.push(null);
29075 // 22034
29076 f974244559_519.returns.push(null);
29077 // 22040
29078 f974244559_519.returns.push(null);
29079 // 22045
29080 o9.JSBNG__screenX = 997;
29081 // 22046
29082 o9.JSBNG__screenY = 323;
29083 // 22047
29084 o9.altKey = false;
29085 // 22048
29086 o9.bubbles = true;
29087 // 22049
29088 o9.button = 0;
29089 // 22050
29090 o9.buttons = void 0;
29091 // 22051
29092 o9.cancelable = false;
29093 // 22052
29094 o9.clientX = 980;
29095 // 22053
29096 o9.clientY = 219;
29097 // 22054
29098 o9.ctrlKey = false;
29099 // 22055
29100 o9.currentTarget = o0;
29101 // 22056
29102 o9.defaultPrevented = false;
29103 // 22057
29104 o9.detail = 0;
29105 // 22058
29106 o9.eventPhase = 3;
29107 // 22059
29108 o9.isTrusted = void 0;
29109 // 22060
29110 o9.metaKey = false;
29111 // 22061
29112 o9.pageX = 980;
29113 // 22062
29114 o9.pageY = 2116;
29115 // 22063
29116 o9.relatedTarget = null;
29117 // 22064
29118 o9.fromElement = null;
29119 // 22067
29120 o9.shiftKey = false;
29121 // 22070
29122 o9.timeStamp = 1373491300829;
29123 // 22071
29124 o9.type = "mousemove";
29125 // 22072
29126 o9.view = ow974244559;
29127 // undefined
29128 o9 = null;
29129 // 22081
29130 f974244559_2566.returns.push(undefined);
29131 // 22084
29132 f974244559_14.returns.push(undefined);
29133 // 22089
29134 f974244559_471.returns.push(1373491300839);
29135 // 22090
29136 f974244559_12.returns.push(76);
29137 // 22094
29138 f974244559_12.returns.push(77);
29139 // undefined
29140 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456; wd=1050x588");
29141 // 22099
29142 f974244559_471.returns.push(1373491300886);
29143 // undefined
29144 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456; wd=1050x588");
29145 // 22103
29146 f974244559_471.returns.push(1373491301083);
29147 // 22104
29148 f974244559_14.returns.push(undefined);
29149 // 22105
29150 f974244559_12.returns.push(78);
29151 // 22109
29152 f974244559_471.returns.push(1373491301084);
29153 // 22111
29154 f974244559_471.returns.push(1373491301085);
29155 // 22112
29156 f974244559_14.returns.push(undefined);
29157 // 22113
29158 f974244559_12.returns.push(79);
29159 // 22115
29160 f974244559_471.returns.push(1373491301085);
29161 // 22116
29162 o9 = {};
29163 // 22117
29164 f974244559_70.returns.push(o9);
29165 // 22118
29166 o9.open = f974244559_1564;
29167 // 22119
29168 f974244559_1564.returns.push(undefined);
29169 // 22120
29170 o9.setRequestHeader = f974244559_1565;
29171 // 22121
29172 f974244559_1565.returns.push(undefined);
29173 // 22122
29174 // 22123
29175 f974244559_12.returns.push(80);
29176 // 22125
29177 f974244559_471.returns.push(1373491301088);
29178 // 22127
29179 f974244559_471.returns.push(1373491301088);
29180 // 22128
29181 o9.send = f974244559_1566;
29182 // 22129
29183 f974244559_1566.returns.push(undefined);
29184 // 22130
29185 o13 = {};
29186 // 22134
29187 f974244559_471.returns.push(1373491301122);
29188 // 22135
29189 o13.cancelBubble = false;
29190 // 22136
29191 o13.returnValue = true;
29192 // 22139
29193 o13.srcElement = o71;
29194 // 22141
29195 o13.target = o71;
29196 // 22148
29197 f974244559_519.returns.push(null);
29198 // 22154
29199 f974244559_519.returns.push(null);
29200 // 22160
29201 f974244559_519.returns.push(null);
29202 // 22166
29203 f974244559_519.returns.push(null);
29204 // 22172
29205 f974244559_519.returns.push(null);
29206 // 22178
29207 f974244559_519.returns.push(null);
29208 // 22184
29209 f974244559_519.returns.push(null);
29210 // 22190
29211 f974244559_519.returns.push(null);
29212 // 22195
29213 o13.JSBNG__screenX = 991;
29214 // 22196
29215 o13.JSBNG__screenY = 442;
29216 // 22197
29217 o13.altKey = false;
29218 // 22198
29219 o13.bubbles = true;
29220 // 22199
29221 o13.button = 0;
29222 // 22200
29223 o13.buttons = void 0;
29224 // 22201
29225 o13.cancelable = false;
29226 // 22202
29227 o13.clientX = 974;
29228 // 22203
29229 o13.clientY = 338;
29230 // 22204
29231 o13.ctrlKey = false;
29232 // 22205
29233 o13.currentTarget = o0;
29234 // 22206
29235 o13.defaultPrevented = false;
29236 // 22207
29237 o13.detail = 0;
29238 // 22208
29239 o13.eventPhase = 3;
29240 // 22209
29241 o13.isTrusted = void 0;
29242 // 22210
29243 o13.metaKey = false;
29244 // 22211
29245 o13.pageX = 974;
29246 // 22212
29247 o13.pageY = 2235;
29248 // 22213
29249 o13.relatedTarget = null;
29250 // 22214
29251 o13.fromElement = null;
29252 // 22217
29253 o13.shiftKey = false;
29254 // 22220
29255 o13.timeStamp = 1373491301121;
29256 // 22221
29257 o13.type = "mousemove";
29258 // 22222
29259 o13.view = ow974244559;
29260 // undefined
29261 o13 = null;
29262 // 22231
29263 f974244559_2566.returns.push(undefined);
29264 // 22234
29265 f974244559_14.returns.push(undefined);
29266 // 22235
29267 f974244559_12.returns.push(81);
29268 // 22238
29269 o13 = {};
29270 // 22241
29271 o13.cancelBubble = false;
29272 // 22244
29273 f974244559_471.returns.push(1373491301182);
29274 // 22246
29275 o13.returnValue = true;
29276 // undefined
29277 o13 = null;
29278 // 22247
29279 o13 = {};
29280 // 22250
29281 o13.cancelBubble = false;
29282 // 22253
29283 f974244559_471.returns.push(1373491301208);
29284 // 22255
29285 o13.returnValue = true;
29286 // undefined
29287 o13 = null;
29288 // 22256
29289 o13 = {};
29290 // 22259
29291 o13.cancelBubble = false;
29292 // 22262
29293 f974244559_471.returns.push(1373491301229);
29294 // 22264
29295 o13.returnValue = true;
29296 // undefined
29297 o13 = null;
29298 // 22265
29299 o13 = {};
29300 // 22268
29301 o13.cancelBubble = false;
29302 // 22271
29303 f974244559_471.returns.push(1373491301243);
29304 // 22273
29305 o13.returnValue = true;
29306 // undefined
29307 o13 = null;
29308 // 22274
29309 o13 = {};
29310 // 22277
29311 o13.cancelBubble = false;
29312 // 22280
29313 f974244559_471.returns.push(1373491301253);
29314 // 22285
29315 f974244559_471.returns.push(1373491301255);
29316 // 22289
29317 f974244559_471.returns.push(1373491301255);
29318 // 22292
29319 o13.returnValue = true;
29320 // undefined
29321 o13 = null;
29322 // 22293
29323 o13 = {};
29324 // 22296
29325 o13.cancelBubble = false;
29326 // 22299
29327 f974244559_471.returns.push(1373491301271);
29328 // 22301
29329 o13.returnValue = true;
29330 // undefined
29331 o13 = null;
29332 // undefined
29333 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456; wd=1050x588");
29334 // 22303
29335 o13 = {};
29336 // undefined
29337 o13 = null;
29338 // undefined
29339 fo974244559_2932_readyState = function() { return fo974244559_2932_readyState.returns[fo974244559_2932_readyState.inst++]; };
29340 fo974244559_2932_readyState.returns = [];
29341 fo974244559_2932_readyState.inst = 0;
29342 defineGetter(o9, "readyState", fo974244559_2932_readyState, undefined);
29343 // undefined
29344 fo974244559_2932_readyState.returns.push(2);
29345 // 22305
29346 o13 = {};
29347 // undefined
29348 o13 = null;
29349 // undefined
29350 fo974244559_2932_readyState.returns.push(3);
29351 // 22307
29352 o13 = {};
29353 // undefined
29354 o13 = null;
29355 // undefined
29356 fo974244559_2932_readyState.returns.push(4);
29357 // 22309
29358 o9.JSBNG__status = 200;
29359 // undefined
29360 fo974244559_2932_readyState.returns.push(4);
29361 // 22311
29362 // undefined
29363 o9 = null;
29364 // 22313
29365 f974244559_12.returns.push(82);
29366 // undefined
29367 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29368 // 22318
29369 f974244559_471.returns.push(1373491301894);
29370 // undefined
29371 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29372 // 22320
29373 o9 = {};
29374 // 22323
29375 o9.cancelBubble = false;
29376 // 22326
29377 f974244559_471.returns.push(1373491302144);
29378 // 22331
29379 f974244559_471.returns.push(1373491302145);
29380 // 22335
29381 f974244559_471.returns.push(1373491302145);
29382 // 22338
29383 o9.returnValue = true;
29384 // undefined
29385 o9 = null;
29386 // 22339
29387 o9 = {};
29388 // 22342
29389 o9.cancelBubble = false;
29390 // 22345
29391 f974244559_471.returns.push(1373491302166);
29392 // 22347
29393 o9.returnValue = true;
29394 // undefined
29395 o9 = null;
29396 // 22348
29397 o9 = {};
29398 // 22351
29399 o9.cancelBubble = false;
29400 // 22354
29401 f974244559_471.returns.push(1373491302169);
29402 // 22356
29403 o9.returnValue = true;
29404 // undefined
29405 o9 = null;
29406 // 22357
29407 o9 = {};
29408 // 22360
29409 o9.cancelBubble = false;
29410 // 22363
29411 f974244559_471.returns.push(1373491302173);
29412 // 22365
29413 o9.returnValue = true;
29414 // undefined
29415 o9 = null;
29416 // 22366
29417 o9 = {};
29418 // 22369
29419 o9.cancelBubble = false;
29420 // 22372
29421 f974244559_471.returns.push(1373491302195);
29422 // 22374
29423 o9.returnValue = true;
29424 // undefined
29425 o9 = null;
29426 // 22375
29427 o9 = {};
29428 // 22378
29429 o9.cancelBubble = false;
29430 // 22381
29431 f974244559_471.returns.push(1373491302222);
29432 // 22383
29433 o9.returnValue = true;
29434 // undefined
29435 o9 = null;
29436 // undefined
29437 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29438 // 22386
29439 f974244559_12.returns.push(83);
29440 // undefined
29441 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29442 // 22391
29443 f974244559_471.returns.push(1373491302892);
29444 // undefined
29445 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29446 // 22394
29447 f974244559_471.returns.push(1373491303237);
29448 // undefined
29449 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29450 // 22397
29451 f974244559_12.returns.push(84);
29452 // undefined
29453 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29454 // 22402
29455 f974244559_471.returns.push(1373491303893);
29456 // undefined
29457 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29458 // 22404
29459 o9 = {};
29460 // 22408
29461 f974244559_471.returns.push(1373491304318);
29462 // 22413
29463 f974244559_471.returns.push(1373491304318);
29464 // 22417
29465 f974244559_471.returns.push(1373491304318);
29466 // 22419
29467 o9.cancelBubble = false;
29468 // 22420
29469 o9.returnValue = true;
29470 // 22423
29471 o9.srcElement = o71;
29472 // 22425
29473 o9.target = o71;
29474 // 22432
29475 f974244559_519.returns.push(null);
29476 // 22438
29477 f974244559_519.returns.push(null);
29478 // 22444
29479 f974244559_519.returns.push(null);
29480 // 22450
29481 f974244559_519.returns.push(null);
29482 // 22456
29483 f974244559_519.returns.push(null);
29484 // 22462
29485 f974244559_519.returns.push(null);
29486 // 22468
29487 f974244559_519.returns.push(null);
29488 // 22474
29489 f974244559_519.returns.push(null);
29490 // 22479
29491 o9.JSBNG__screenX = 990;
29492 // 22480
29493 o9.JSBNG__screenY = 442;
29494 // 22481
29495 o9.altKey = false;
29496 // 22482
29497 o9.bubbles = true;
29498 // 22483
29499 o9.button = 0;
29500 // 22484
29501 o9.buttons = void 0;
29502 // 22485
29503 o9.cancelable = false;
29504 // 22486
29505 o9.clientX = 973;
29506 // 22487
29507 o9.clientY = 338;
29508 // 22488
29509 o9.ctrlKey = false;
29510 // 22489
29511 o9.currentTarget = o0;
29512 // 22490
29513 o9.defaultPrevented = false;
29514 // 22491
29515 o9.detail = 0;
29516 // 22492
29517 o9.eventPhase = 3;
29518 // 22493
29519 o9.isTrusted = void 0;
29520 // 22494
29521 o9.metaKey = false;
29522 // 22495
29523 o9.pageX = 973;
29524 // 22496
29525 o9.pageY = 2235;
29526 // 22497
29527 o9.relatedTarget = null;
29528 // 22498
29529 o9.fromElement = null;
29530 // 22501
29531 o9.shiftKey = false;
29532 // 22504
29533 o9.timeStamp = 1373491304317;
29534 // 22505
29535 o9.type = "mousemove";
29536 // 22506
29537 o9.view = ow974244559;
29538 // undefined
29539 o9 = null;
29540 // 22515
29541 f974244559_2566.returns.push(undefined);
29542 // 22518
29543 f974244559_14.returns.push(undefined);
29544 // 22519
29545 f974244559_12.returns.push(85);
29546 // undefined
29547 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29548 // 22523
29549 o9 = {};
29550 // 22526
29551 o9.cancelBubble = false;
29552 // 22529
29553 f974244559_471.returns.push(1373491304514);
29554 // 22531
29555 o9.returnValue = true;
29556 // undefined
29557 o9 = null;
29558 // 22532
29559 o9 = {};
29560 // 22535
29561 o9.cancelBubble = false;
29562 // 22538
29563 f974244559_471.returns.push(1373491304532);
29564 // 22540
29565 o9.returnValue = true;
29566 // undefined
29567 o9 = null;
29568 // 22541
29569 o9 = {};
29570 // 22544
29571 o9.cancelBubble = false;
29572 // 22547
29573 f974244559_471.returns.push(1373491304545);
29574 // 22549
29575 o9.returnValue = true;
29576 // undefined
29577 o9 = null;
29578 // 22550
29579 o9 = {};
29580 // 22553
29581 o9.cancelBubble = false;
29582 // 22556
29583 f974244559_471.returns.push(1373491304562);
29584 // 22558
29585 o9.returnValue = true;
29586 // undefined
29587 o9 = null;
29588 // 22559
29589 o9 = {};
29590 // 22562
29591 o9.cancelBubble = false;
29592 // 22565
29593 f974244559_471.returns.push(1373491304611);
29594 // 22567
29595 o9.returnValue = true;
29596 // undefined
29597 o9 = null;
29598 // 22568
29599 o9 = {};
29600 // 22571
29601 o9.cancelBubble = false;
29602 // 22574
29603 f974244559_471.returns.push(1373491304620);
29604 // 22576
29605 o9.returnValue = true;
29606 // undefined
29607 o9 = null;
29608 // 22577
29609 o9 = {};
29610 // 22581
29611 f974244559_471.returns.push(1373491304628);
29612 // 22582
29613 o9.cancelBubble = false;
29614 // 22583
29615 o9.returnValue = true;
29616 // 22586
29617 o9.srcElement = o71;
29618 // 22588
29619 o9.target = o71;
29620 // 22595
29621 f974244559_519.returns.push(null);
29622 // 22601
29623 f974244559_519.returns.push(null);
29624 // 22607
29625 f974244559_519.returns.push(null);
29626 // 22613
29627 f974244559_519.returns.push(null);
29628 // 22619
29629 f974244559_519.returns.push(null);
29630 // 22625
29631 f974244559_519.returns.push(null);
29632 // 22631
29633 f974244559_519.returns.push(null);
29634 // 22637
29635 f974244559_519.returns.push(null);
29636 // 22642
29637 o9.JSBNG__screenX = 990;
29638 // 22643
29639 o9.JSBNG__screenY = 442;
29640 // 22644
29641 o9.altKey = false;
29642 // 22645
29643 o9.bubbles = true;
29644 // 22646
29645 o9.button = 0;
29646 // 22647
29647 o9.buttons = void 0;
29648 // 22648
29649 o9.cancelable = false;
29650 // 22649
29651 o9.clientX = 973;
29652 // 22650
29653 o9.clientY = 338;
29654 // 22651
29655 o9.ctrlKey = false;
29656 // 22652
29657 o9.currentTarget = o0;
29658 // 22653
29659 o9.defaultPrevented = false;
29660 // 22654
29661 o9.detail = 0;
29662 // 22655
29663 o9.eventPhase = 3;
29664 // 22656
29665 o9.isTrusted = void 0;
29666 // 22657
29667 o9.metaKey = false;
29668 // 22658
29669 o9.pageX = 973;
29670 // 22659
29671 o9.pageY = 1995;
29672 // 22660
29673 o9.relatedTarget = null;
29674 // 22661
29675 o9.fromElement = null;
29676 // 22664
29677 o9.shiftKey = false;
29678 // 22667
29679 o9.timeStamp = 1373491304627;
29680 // 22668
29681 o9.type = "mousemove";
29682 // 22669
29683 o9.view = ow974244559;
29684 // undefined
29685 o9 = null;
29686 // 22678
29687 f974244559_2566.returns.push(undefined);
29688 // 22681
29689 f974244559_14.returns.push(undefined);
29690 // 22682
29691 f974244559_12.returns.push(86);
29692 // 22685
29693 o9 = {};
29694 // 22688
29695 o9.cancelBubble = false;
29696 // 22691
29697 f974244559_471.returns.push(1373491304657);
29698 // 22693
29699 o9.returnValue = true;
29700 // undefined
29701 o9 = null;
29702 // 22694
29703 o9 = {};
29704 // 22698
29705 f974244559_471.returns.push(1373491304759);
29706 // 22699
29707 o9.cancelBubble = false;
29708 // 22700
29709 o9.returnValue = true;
29710 // 22703
29711 o9.srcElement = o71;
29712 // 22705
29713 o9.target = o71;
29714 // 22712
29715 f974244559_519.returns.push(null);
29716 // 22718
29717 f974244559_519.returns.push(null);
29718 // 22724
29719 f974244559_519.returns.push(null);
29720 // 22730
29721 f974244559_519.returns.push(null);
29722 // 22736
29723 f974244559_519.returns.push(null);
29724 // 22742
29725 f974244559_519.returns.push(null);
29726 // 22748
29727 f974244559_519.returns.push(null);
29728 // 22754
29729 f974244559_519.returns.push(null);
29730 // 22759
29731 o9.JSBNG__screenX = 990;
29732 // 22760
29733 o9.JSBNG__screenY = 442;
29734 // 22761
29735 o9.altKey = false;
29736 // 22762
29737 o9.bubbles = true;
29738 // 22763
29739 o9.button = 0;
29740 // 22764
29741 o9.buttons = void 0;
29742 // 22765
29743 o9.cancelable = false;
29744 // 22766
29745 o9.clientX = 973;
29746 // 22767
29747 o9.clientY = 338;
29748 // 22768
29749 o9.ctrlKey = false;
29750 // 22769
29751 o9.currentTarget = o0;
29752 // 22770
29753 o9.defaultPrevented = false;
29754 // 22771
29755 o9.detail = 0;
29756 // 22772
29757 o9.eventPhase = 3;
29758 // 22773
29759 o9.isTrusted = void 0;
29760 // 22774
29761 o9.metaKey = false;
29762 // 22775
29763 o9.pageX = 973;
29764 // 22776
29765 o9.pageY = 1955;
29766 // 22777
29767 o9.relatedTarget = null;
29768 // 22778
29769 o9.fromElement = null;
29770 // 22781
29771 o9.shiftKey = false;
29772 // 22784
29773 o9.timeStamp = 1373491304759;
29774 // 22785
29775 o9.type = "mousemove";
29776 // 22786
29777 o9.view = ow974244559;
29778 // undefined
29779 o9 = null;
29780 // 22795
29781 f974244559_2566.returns.push(undefined);
29782 // 22798
29783 f974244559_14.returns.push(undefined);
29784 // 22799
29785 f974244559_12.returns.push(87);
29786 // 22803
29787 f974244559_12.returns.push(88);
29788 // undefined
29789 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29790 // 22808
29791 f974244559_471.returns.push(1373491304900);
29792 // undefined
29793 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
29794 // 22810
29795 o9 = {};
29796 // 22813
29797 o9.cancelBubble = false;
29798 // 22816
29799 f974244559_471.returns.push(1373491304937);
29800 // 22821
29801 f974244559_471.returns.push(1373491304938);
29802 // 22825
29803 f974244559_471.returns.push(1373491304938);
29804 // 22828
29805 o9.returnValue = true;
29806 // undefined
29807 o9 = null;
29808 // 22829
29809 o9 = {};
29810 // 22832
29811 o9.cancelBubble = false;
29812 // 22835
29813 f974244559_471.returns.push(1373491304959);
29814 // 22837
29815 o9.returnValue = true;
29816 // undefined
29817 o9 = null;
29818 // 22838
29819 o9 = {};
29820 // 22841
29821 o9.cancelBubble = false;
29822 // 22844
29823 f974244559_471.returns.push(1373491304968);
29824 // 22846
29825 o9.returnValue = true;
29826 // undefined
29827 o9 = null;
29828 // 22847
29829 o9 = {};
29830 // 22850
29831 o9.cancelBubble = false;
29832 // 22853
29833 f974244559_471.returns.push(1373491304976);
29834 // 22855
29835 o9.returnValue = true;
29836 // undefined
29837 o9 = null;
29838 // 22856
29839 o9 = {};
29840 // 22859
29841 o9.cancelBubble = false;
29842 // 22862
29843 f974244559_471.returns.push(1373491304985);
29844 // 22864
29845 o9.returnValue = true;
29846 // undefined
29847 o9 = null;
29848 // 22865
29849 o9 = {};
29850 // 22868
29851 o9.cancelBubble = false;
29852 // 22871
29853 f974244559_471.returns.push(1373491305013);
29854 // 22873
29855 o9.returnValue = true;
29856 // undefined
29857 o9 = null;
29858 // 22874
29859 o9 = {};
29860 // 22878
29861 f974244559_471.returns.push(1373491305041);
29862 // 22879
29863 o9.cancelBubble = false;
29864 // 22880
29865 o9.returnValue = true;
29866 // 22883
29867 o9.srcElement = o71;
29868 // 22885
29869 o9.target = o71;
29870 // 22892
29871 f974244559_519.returns.push(null);
29872 // 22898
29873 f974244559_519.returns.push(null);
29874 // 22904
29875 f974244559_519.returns.push(null);
29876 // 22910
29877 f974244559_519.returns.push(null);
29878 // 22916
29879 f974244559_519.returns.push(null);
29880 // 22922
29881 f974244559_519.returns.push(null);
29882 // 22928
29883 f974244559_519.returns.push(null);
29884 // 22934
29885 f974244559_519.returns.push(null);
29886 // 22939
29887 o9.JSBNG__screenX = 990;
29888 // 22940
29889 o9.JSBNG__screenY = 442;
29890 // 22941
29891 o9.altKey = false;
29892 // 22942
29893 o9.bubbles = true;
29894 // 22943
29895 o9.button = 0;
29896 // 22944
29897 o9.buttons = void 0;
29898 // 22945
29899 o9.cancelable = false;
29900 // 22946
29901 o9.clientX = 973;
29902 // 22947
29903 o9.clientY = 338;
29904 // 22948
29905 o9.ctrlKey = false;
29906 // 22949
29907 o9.currentTarget = o0;
29908 // 22950
29909 o9.defaultPrevented = false;
29910 // 22951
29911 o9.detail = 0;
29912 // 22952
29913 o9.eventPhase = 3;
29914 // 22953
29915 o9.isTrusted = void 0;
29916 // 22954
29917 o9.metaKey = false;
29918 // 22955
29919 o9.pageX = 973;
29920 // 22956
29921 o9.pageY = 1715;
29922 // 22957
29923 o9.relatedTarget = null;
29924 // 22958
29925 o9.fromElement = null;
29926 // 22961
29927 o9.shiftKey = false;
29928 // 22964
29929 o9.timeStamp = 1373491305040;
29930 // 22965
29931 o9.type = "mousemove";
29932 // 22966
29933 o9.view = ow974244559;
29934 // undefined
29935 o9 = null;
29936 // 22975
29937 f974244559_2566.returns.push(undefined);
29938 // 22978
29939 f974244559_14.returns.push(undefined);
29940 // 22979
29941 f974244559_12.returns.push(89);
29942 // 22982
29943 o9 = {};
29944 // 22985
29945 o9.cancelBubble = false;
29946 // 22988
29947 f974244559_471.returns.push(1373491305275);
29948 // 22990
29949 o9.returnValue = true;
29950 // undefined
29951 o9 = null;
29952 // 22991
29953 o9 = {};
29954 // 22994
29955 o9.cancelBubble = false;
29956 // 22997
29957 f974244559_471.returns.push(1373491305282);
29958 // 22999
29959 o9.returnValue = true;
29960 // undefined
29961 o9 = null;
29962 // 23000
29963 o9 = {};
29964 // 23003
29965 o9.cancelBubble = false;
29966 // 23006
29967 f974244559_471.returns.push(1373491305307);
29968 // 23008
29969 o9.returnValue = true;
29970 // undefined
29971 o9 = null;
29972 // 23009
29973 o9 = {};
29974 // 23012
29975 o9.cancelBubble = false;
29976 // 23015
29977 f974244559_471.returns.push(1373491305316);
29978 // 23017
29979 o9.returnValue = true;
29980 // undefined
29981 o9 = null;
29982 // 23018
29983 o9 = {};
29984 // 23021
29985 o9.cancelBubble = false;
29986 // 23024
29987 f974244559_471.returns.push(1373491305326);
29988 // 23026
29989 o9.returnValue = true;
29990 // undefined
29991 o9 = null;
29992 // 23027
29993 o9 = {};
29994 // 23030
29995 o9.cancelBubble = false;
29996 // 23033
29997 f974244559_471.returns.push(1373491305353);
29998 // 23035
29999 o9.returnValue = true;
30000 // undefined
30001 o9 = null;
30002 // 23036
30003 o9 = {};
30004 // 23040
30005 f974244559_471.returns.push(1373491305378);
30006 // 23041
30007 o9.cancelBubble = false;
30008 // 23042
30009 o9.returnValue = true;
30010 // 23045
30011 o9.srcElement = o71;
30012 // 23047
30013 o9.target = o71;
30014 // 23054
30015 f974244559_519.returns.push(null);
30016 // 23060
30017 f974244559_519.returns.push(null);
30018 // 23066
30019 f974244559_519.returns.push(null);
30020 // 23072
30021 f974244559_519.returns.push(null);
30022 // 23078
30023 f974244559_519.returns.push(null);
30024 // 23084
30025 f974244559_519.returns.push(null);
30026 // 23090
30027 f974244559_519.returns.push(null);
30028 // 23096
30029 f974244559_519.returns.push(null);
30030 // 23101
30031 o9.JSBNG__screenX = 990;
30032 // 23102
30033 o9.JSBNG__screenY = 442;
30034 // 23103
30035 o9.altKey = false;
30036 // 23104
30037 o9.bubbles = true;
30038 // 23105
30039 o9.button = 0;
30040 // 23106
30041 o9.buttons = void 0;
30042 // 23107
30043 o9.cancelable = false;
30044 // 23108
30045 o9.clientX = 973;
30046 // 23109
30047 o9.clientY = 338;
30048 // 23110
30049 o9.ctrlKey = false;
30050 // 23111
30051 o9.currentTarget = o0;
30052 // 23112
30053 o9.defaultPrevented = false;
30054 // 23113
30055 o9.detail = 0;
30056 // 23114
30057 o9.eventPhase = 3;
30058 // 23115
30059 o9.isTrusted = void 0;
30060 // 23116
30061 o9.metaKey = false;
30062 // 23117
30063 o9.pageX = 973;
30064 // 23118
30065 o9.pageY = 1475;
30066 // 23119
30067 o9.relatedTarget = null;
30068 // 23120
30069 o9.fromElement = null;
30070 // 23123
30071 o9.shiftKey = false;
30072 // 23126
30073 o9.timeStamp = 1373491305378;
30074 // 23127
30075 o9.type = "mousemove";
30076 // 23128
30077 o9.view = ow974244559;
30078 // undefined
30079 o9 = null;
30080 // 23137
30081 f974244559_2566.returns.push(undefined);
30082 // 23140
30083 f974244559_14.returns.push(undefined);
30084 // 23141
30085 f974244559_12.returns.push(90);
30086 // undefined
30087 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
30088 // 23145
30089 o9 = {};
30090 // 23148
30091 o9.cancelBubble = false;
30092 // 23151
30093 f974244559_471.returns.push(1373491305605);
30094 // 23156
30095 f974244559_471.returns.push(1373491305606);
30096 // 23160
30097 f974244559_471.returns.push(1373491305606);
30098 // 23163
30099 o9.returnValue = true;
30100 // undefined
30101 o9 = null;
30102 // 23164
30103 o9 = {};
30104 // 23167
30105 o9.cancelBubble = false;
30106 // 23170
30107 f974244559_471.returns.push(1373491305629);
30108 // 23172
30109 o9.returnValue = true;
30110 // undefined
30111 o9 = null;
30112 // 23173
30113 o9 = {};
30114 // 23176
30115 o9.cancelBubble = false;
30116 // 23179
30117 f974244559_471.returns.push(1373491305638);
30118 // 23181
30119 o9.returnValue = true;
30120 // undefined
30121 o9 = null;
30122 // 23182
30123 o9 = {};
30124 // 23185
30125 o9.cancelBubble = false;
30126 // 23188
30127 f974244559_471.returns.push(1373491305649);
30128 // 23190
30129 o9.returnValue = true;
30130 // undefined
30131 o9 = null;
30132 // 23191
30133 o9 = {};
30134 // 23194
30135 o9.cancelBubble = false;
30136 // 23197
30137 f974244559_471.returns.push(1373491305660);
30138 // 23199
30139 o9.returnValue = true;
30140 // undefined
30141 o9 = null;
30142 // 23200
30143 o9 = {};
30144 // 23203
30145 o9.cancelBubble = false;
30146 // 23206
30147 f974244559_471.returns.push(1373491305676);
30148 // 23208
30149 o9.returnValue = true;
30150 // undefined
30151 o9 = null;
30152 // 23209
30153 o9 = {};
30154 // 23213
30155 f974244559_471.returns.push(1373491305708);
30156 // 23214
30157 o9.cancelBubble = false;
30158 // 23215
30159 o9.returnValue = true;
30160 // 23218
30161 o9.srcElement = o71;
30162 // 23220
30163 o9.target = o71;
30164 // 23227
30165 f974244559_519.returns.push(null);
30166 // 23233
30167 f974244559_519.returns.push(null);
30168 // 23239
30169 f974244559_519.returns.push(null);
30170 // 23245
30171 f974244559_519.returns.push(null);
30172 // 23251
30173 f974244559_519.returns.push(null);
30174 // 23257
30175 f974244559_519.returns.push(null);
30176 // 23263
30177 f974244559_519.returns.push(null);
30178 // 23269
30179 f974244559_519.returns.push(null);
30180 // 23274
30181 o9.JSBNG__screenX = 990;
30182 // 23275
30183 o9.JSBNG__screenY = 442;
30184 // 23276
30185 o9.altKey = false;
30186 // 23277
30187 o9.bubbles = true;
30188 // 23278
30189 o9.button = 0;
30190 // 23279
30191 o9.buttons = void 0;
30192 // 23280
30193 o9.cancelable = false;
30194 // 23281
30195 o9.clientX = 973;
30196 // 23282
30197 o9.clientY = 338;
30198 // 23283
30199 o9.ctrlKey = false;
30200 // 23284
30201 o9.currentTarget = o0;
30202 // 23285
30203 o9.defaultPrevented = false;
30204 // 23286
30205 o9.detail = 0;
30206 // 23287
30207 o9.eventPhase = 3;
30208 // 23288
30209 o9.isTrusted = void 0;
30210 // 23289
30211 o9.metaKey = false;
30212 // 23290
30213 o9.pageX = 973;
30214 // 23291
30215 o9.pageY = 1235;
30216 // 23292
30217 o9.relatedTarget = null;
30218 // 23293
30219 o9.fromElement = null;
30220 // 23296
30221 o9.shiftKey = false;
30222 // 23299
30223 o9.timeStamp = 1373491305708;
30224 // 23300
30225 o9.type = "mousemove";
30226 // 23301
30227 o9.view = ow974244559;
30228 // undefined
30229 o9 = null;
30230 // 23310
30231 f974244559_2566.returns.push(undefined);
30232 // 23313
30233 f974244559_14.returns.push(undefined);
30234 // 23318
30235 f974244559_471.returns.push(1373491305717);
30236 // 23319
30237 f974244559_12.returns.push(91);
30238 // 23322
30239 o9 = {};
30240 // 23326
30241 f974244559_471.returns.push(1373491305819);
30242 // 23327
30243 o9.cancelBubble = false;
30244 // 23328
30245 o9.returnValue = true;
30246 // 23331
30247 o9.srcElement = o71;
30248 // 23333
30249 o9.target = o71;
30250 // 23340
30251 f974244559_519.returns.push(null);
30252 // 23346
30253 f974244559_519.returns.push(null);
30254 // 23352
30255 f974244559_519.returns.push(null);
30256 // 23358
30257 f974244559_519.returns.push(null);
30258 // 23364
30259 f974244559_519.returns.push(null);
30260 // 23370
30261 f974244559_519.returns.push(null);
30262 // 23376
30263 f974244559_519.returns.push(null);
30264 // 23382
30265 f974244559_519.returns.push(null);
30266 // 23387
30267 o9.JSBNG__screenX = 990;
30268 // 23388
30269 o9.JSBNG__screenY = 442;
30270 // 23389
30271 o9.altKey = false;
30272 // 23390
30273 o9.bubbles = true;
30274 // 23391
30275 o9.button = 0;
30276 // 23392
30277 o9.buttons = void 0;
30278 // 23393
30279 o9.cancelable = false;
30280 // 23394
30281 o9.clientX = 973;
30282 // 23395
30283 o9.clientY = 338;
30284 // 23396
30285 o9.ctrlKey = false;
30286 // 23397
30287 o9.currentTarget = o0;
30288 // 23398
30289 o9.defaultPrevented = false;
30290 // 23399
30291 o9.detail = 0;
30292 // 23400
30293 o9.eventPhase = 3;
30294 // 23401
30295 o9.isTrusted = void 0;
30296 // 23402
30297 o9.metaKey = false;
30298 // 23403
30299 o9.pageX = 973;
30300 // 23404
30301 o9.pageY = 1195;
30302 // 23405
30303 o9.relatedTarget = null;
30304 // 23406
30305 o9.fromElement = null;
30306 // 23409
30307 o9.shiftKey = false;
30308 // 23412
30309 o9.timeStamp = 1373491305818;
30310 // 23413
30311 o9.type = "mousemove";
30312 // 23414
30313 o9.view = ow974244559;
30314 // undefined
30315 o9 = null;
30316 // 23423
30317 f974244559_2566.returns.push(undefined);
30318 // 23426
30319 f974244559_14.returns.push(undefined);
30320 // 23427
30321 f974244559_12.returns.push(92);
30322 // 23431
30323 f974244559_12.returns.push(93);
30324 // undefined
30325 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
30326 // 23436
30327 f974244559_471.returns.push(1373491305903);
30328 // undefined
30329 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
30330 // 23438
30331 o9 = {};
30332 // 23441
30333 o9.cancelBubble = false;
30334 // 23444
30335 f974244559_471.returns.push(1373491305964);
30336 // 23446
30337 o9.returnValue = true;
30338 // undefined
30339 o9 = null;
30340 // 23447
30341 o9 = {};
30342 // 23450
30343 o9.cancelBubble = false;
30344 // 23453
30345 f974244559_471.returns.push(1373491305974);
30346 // 23455
30347 o9.returnValue = true;
30348 // undefined
30349 o9 = null;
30350 // 23456
30351 o9 = {};
30352 // 23459
30353 o9.cancelBubble = false;
30354 // 23462
30355 f974244559_471.returns.push(1373491305986);
30356 // 23464
30357 o9.returnValue = true;
30358 // undefined
30359 o9 = null;
30360 // 23465
30361 o9 = {};
30362 // 23468
30363 o9.cancelBubble = false;
30364 // 23471
30365 f974244559_471.returns.push(1373491305998);
30366 // 23473
30367 o9.returnValue = true;
30368 // undefined
30369 o9 = null;
30370 // 23474
30371 o9 = {};
30372 // 23477
30373 o9.cancelBubble = false;
30374 // 23480
30375 f974244559_471.returns.push(1373491306018);
30376 // 23482
30377 o9.returnValue = true;
30378 // undefined
30379 o9 = null;
30380 // 23483
30381 o9 = {};
30382 // 23486
30383 o9.cancelBubble = false;
30384 // 23489
30385 f974244559_471.returns.push(1373491306058);
30386 // 23491
30387 o9.returnValue = true;
30388 // undefined
30389 o9 = null;
30390 // 23492
30391 o9 = {};
30392 // 23495
30393 o9.srcElement = o71;
30394 // 23497
30395 o9.target = o71;
30396 // 23504
30397 f974244559_519.returns.push(null);
30398 // 23510
30399 f974244559_519.returns.push(null);
30400 // 23516
30401 f974244559_519.returns.push(null);
30402 // 23522
30403 f974244559_519.returns.push(null);
30404 // 23528
30405 f974244559_519.returns.push(null);
30406 // 23534
30407 f974244559_519.returns.push(null);
30408 // 23540
30409 f974244559_519.returns.push(null);
30410 // 23546
30411 f974244559_519.returns.push(null);
30412 // 23551
30413 o9.relatedTarget = o83;
30414 // 23552
30415 o83.parentNode = o81;
30416 // 23553
30417 o83.nodeType = 1;
30418 // 23554
30419 o83.getAttributeNode = f974244559_519;
30420 // 23556
30421 f974244559_519.returns.push(null);
30422 // 23558
30423 o81.parentNode = o121;
30424 // 23559
30425 o81.nodeType = 1;
30426 // 23560
30427 o81.getAttributeNode = f974244559_519;
30428 // undefined
30429 o81 = null;
30430 // 23562
30431 f974244559_519.returns.push(null);
30432 // 23565
30433 o121.nodeType = 1;
30434 // 23566
30435 o121.getAttributeNode = f974244559_519;
30436 // 23568
30437 f974244559_519.returns.push(null);
30438 // 23570
30439 o13 = {};
30440 // 23571
30441 o111.parentNode = o13;
30442 // 23572
30443 o111.nodeType = 1;
30444 // 23573
30445 o111.getAttributeNode = f974244559_519;
30446 // undefined
30447 o111 = null;
30448 // 23575
30449 f974244559_519.returns.push(null);
30450 // 23577
30451 o13.parentNode = o17;
30452 // 23578
30453 o13.nodeType = 1;
30454 // 23579
30455 o13.getAttributeNode = f974244559_519;
30456 // 23581
30457 f974244559_519.returns.push(null);
30458 // 23583
30459 o17.parentNode = o71;
30460 // 23584
30461 o17.nodeType = 1;
30462 // 23585
30463 o17.getAttributeNode = f974244559_519;
30464 // 23587
30465 f974244559_519.returns.push(null);
30466 // 23593
30467 f974244559_519.returns.push(null);
30468 // 23599
30469 f974244559_519.returns.push(null);
30470 // 23605
30471 f974244559_519.returns.push(null);
30472 // 23611
30473 f974244559_519.returns.push(null);
30474 // 23617
30475 f974244559_519.returns.push(null);
30476 // 23623
30477 f974244559_519.returns.push(null);
30478 // 23629
30479 f974244559_519.returns.push(null);
30480 // 23635
30481 f974244559_519.returns.push(null);
30482 // 23640
30483 o9.cancelBubble = false;
30484 // 23641
30485 o9.returnValue = true;
30486 // undefined
30487 o9 = null;
30488 // 23642
30489 o9 = {};
30490 // 23645
30491 o9.cancelBubble = false;
30492 // 23648
30493 f974244559_471.returns.push(1373491306081);
30494 // 23651
30495 f974244559_1202.returns.push(undefined);
30496 // 23653
30497 o9.returnValue = true;
30498 // 23656
30499 o9.srcElement = o83;
30500 // 23658
30501 o9.target = o83;
30502 // 23665
30503 f974244559_519.returns.push(null);
30504 // 23671
30505 f974244559_519.returns.push(null);
30506 // 23677
30507 f974244559_519.returns.push(null);
30508 // 23683
30509 f974244559_519.returns.push(null);
30510 // 23689
30511 f974244559_519.returns.push(null);
30512 // 23695
30513 f974244559_519.returns.push(null);
30514 // 23701
30515 f974244559_519.returns.push(null);
30516 // 23707
30517 f974244559_519.returns.push(null);
30518 // 23713
30519 f974244559_519.returns.push(null);
30520 // 23719
30521 f974244559_519.returns.push(null);
30522 // 23725
30523 f974244559_519.returns.push(null);
30524 // 23731
30525 f974244559_519.returns.push(null);
30526 // 23737
30527 f974244559_519.returns.push(null);
30528 // 23743
30529 f974244559_519.returns.push(null);
30530 // 23748
30531 o9.relatedTarget = o71;
30532 // undefined
30533 o9 = null;
30534 // undefined
30535 o71 = null;
30536 // 23751
30537 o9 = {};
30538 // 23755
30539 f974244559_471.returns.push(1373491306089);
30540 // 23756
30541 o9.cancelBubble = false;
30542 // 23757
30543 o9.returnValue = true;
30544 // 23760
30545 o9.srcElement = o83;
30546 // 23762
30547 o9.target = o83;
30548 // 23769
30549 f974244559_519.returns.push(null);
30550 // 23775
30551 f974244559_519.returns.push(null);
30552 // 23781
30553 f974244559_519.returns.push(null);
30554 // 23787
30555 f974244559_519.returns.push(null);
30556 // 23793
30557 f974244559_519.returns.push(null);
30558 // 23799
30559 f974244559_519.returns.push(null);
30560 // 23805
30561 f974244559_519.returns.push(null);
30562 // 23811
30563 f974244559_519.returns.push(null);
30564 // 23817
30565 f974244559_519.returns.push(null);
30566 // 23823
30567 f974244559_519.returns.push(null);
30568 // 23829
30569 f974244559_519.returns.push(null);
30570 // 23835
30571 f974244559_519.returns.push(null);
30572 // 23841
30573 f974244559_519.returns.push(null);
30574 // 23847
30575 f974244559_519.returns.push(null);
30576 // 23852
30577 o9.JSBNG__screenX = 990;
30578 // 23853
30579 o9.JSBNG__screenY = 442;
30580 // 23854
30581 o9.altKey = false;
30582 // 23855
30583 o9.bubbles = true;
30584 // 23856
30585 o9.button = 0;
30586 // 23857
30587 o9.buttons = void 0;
30588 // 23858
30589 o9.cancelable = false;
30590 // 23859
30591 o9.clientX = 973;
30592 // 23860
30593 o9.clientY = 338;
30594 // 23861
30595 o9.ctrlKey = false;
30596 // 23862
30597 o9.currentTarget = o0;
30598 // 23863
30599 o9.defaultPrevented = false;
30600 // 23864
30601 o9.detail = 0;
30602 // 23865
30603 o9.eventPhase = 3;
30604 // 23866
30605 o9.isTrusted = void 0;
30606 // 23867
30607 o9.metaKey = false;
30608 // 23868
30609 o9.pageX = 973;
30610 // 23869
30611 o9.pageY = 955;
30612 // 23870
30613 o9.relatedTarget = null;
30614 // 23871
30615 o9.fromElement = null;
30616 // 23874
30617 o9.shiftKey = false;
30618 // 23877
30619 o9.timeStamp = 1373491306089;
30620 // 23878
30621 o9.type = "mousemove";
30622 // 23879
30623 o9.view = ow974244559;
30624 // undefined
30625 o9 = null;
30626 // 23888
30627 f974244559_2566.returns.push(undefined);
30628 // 23891
30629 f974244559_14.returns.push(undefined);
30630 // 23892
30631 f974244559_12.returns.push(94);
30632 // 23895
30633 o9 = {};
30634 // 23898
30635 o9.cancelBubble = false;
30636 // 23901
30637 f974244559_471.returns.push(1373491306120);
30638 // 23906
30639 f974244559_471.returns.push(1373491306129);
30640 // 23910
30641 f974244559_471.returns.push(1373491306129);
30642 // 23913
30643 o9.returnValue = true;
30644 // undefined
30645 o9 = null;
30646 // 23914
30647 o9 = {};
30648 // 23917
30649 o9.srcElement = o83;
30650 // 23919
30651 o9.target = o83;
30652 // 23926
30653 f974244559_519.returns.push(null);
30654 // 23932
30655 f974244559_519.returns.push(null);
30656 // 23938
30657 f974244559_519.returns.push(null);
30658 // 23944
30659 f974244559_519.returns.push(null);
30660 // 23950
30661 f974244559_519.returns.push(null);
30662 // 23956
30663 f974244559_519.returns.push(null);
30664 // 23962
30665 f974244559_519.returns.push(null);
30666 // 23968
30667 f974244559_519.returns.push(null);
30668 // 23974
30669 f974244559_519.returns.push(null);
30670 // 23980
30671 f974244559_519.returns.push(null);
30672 // 23986
30673 f974244559_519.returns.push(null);
30674 // 23992
30675 f974244559_519.returns.push(null);
30676 // 23998
30677 f974244559_519.returns.push(null);
30678 // 24004
30679 f974244559_519.returns.push(null);
30680 // 24009
30681 o9.relatedTarget = o82;
30682 // 24010
30683 o82.parentNode = o79;
30684 // 24011
30685 o82.nodeType = 1;
30686 // 24012
30687 o82.getAttributeNode = f974244559_519;
30688 // 24014
30689 f974244559_519.returns.push(null);
30690 // 24016
30691 o79.parentNode = o121;
30692 // undefined
30693 o121 = null;
30694 // 24017
30695 o79.nodeType = 1;
30696 // 24018
30697 o79.getAttributeNode = f974244559_519;
30698 // undefined
30699 o79 = null;
30700 // 24020
30701 f974244559_519.returns.push(null);
30702 // 24026
30703 f974244559_519.returns.push(null);
30704 // 24032
30705 f974244559_519.returns.push(null);
30706 // 24038
30707 f974244559_519.returns.push(null);
30708 // 24044
30709 f974244559_519.returns.push(null);
30710 // 24050
30711 f974244559_519.returns.push(null);
30712 // 24056
30713 f974244559_519.returns.push(null);
30714 // 24062
30715 f974244559_519.returns.push(null);
30716 // 24068
30717 f974244559_519.returns.push(null);
30718 // 24074
30719 f974244559_519.returns.push(null);
30720 // 24080
30721 f974244559_519.returns.push(null);
30722 // 24086
30723 f974244559_519.returns.push(null);
30724 // 24092
30725 f974244559_519.returns.push(null);
30726 // 24097
30727 o9.cancelBubble = false;
30728 // 24098
30729 o9.returnValue = true;
30730 // undefined
30731 o9 = null;
30732 // 24099
30733 o9 = {};
30734 // 24102
30735 o9.cancelBubble = false;
30736 // 24105
30737 f974244559_471.returns.push(1373491306241);
30738 // 24108
30739 f974244559_1202.returns.push(undefined);
30740 // 24110
30741 o9.returnValue = true;
30742 // 24113
30743 o9.srcElement = o82;
30744 // 24115
30745 o9.target = o82;
30746 // 24122
30747 f974244559_519.returns.push(null);
30748 // 24128
30749 f974244559_519.returns.push(null);
30750 // 24134
30751 f974244559_519.returns.push(null);
30752 // 24140
30753 f974244559_519.returns.push(null);
30754 // 24146
30755 f974244559_519.returns.push(null);
30756 // 24152
30757 f974244559_519.returns.push(null);
30758 // 24158
30759 f974244559_519.returns.push(null);
30760 // 24164
30761 f974244559_519.returns.push(null);
30762 // 24170
30763 f974244559_519.returns.push(null);
30764 // 24176
30765 f974244559_519.returns.push(null);
30766 // 24182
30767 f974244559_519.returns.push(null);
30768 // 24188
30769 f974244559_519.returns.push(null);
30770 // 24194
30771 f974244559_519.returns.push(null);
30772 // 24200
30773 f974244559_519.returns.push(null);
30774 // 24205
30775 o9.relatedTarget = o83;
30776 // undefined
30777 o9 = null;
30778 // undefined
30779 o83 = null;
30780 // 24208
30781 o9 = {};
30782 // 24212
30783 f974244559_471.returns.push(1373491306252);
30784 // 24213
30785 o9.cancelBubble = false;
30786 // 24214
30787 o9.returnValue = true;
30788 // 24217
30789 o9.srcElement = o82;
30790 // 24219
30791 o9.target = o82;
30792 // 24226
30793 f974244559_519.returns.push(null);
30794 // 24232
30795 f974244559_519.returns.push(null);
30796 // 24238
30797 f974244559_519.returns.push(null);
30798 // 24244
30799 f974244559_519.returns.push(null);
30800 // 24250
30801 f974244559_519.returns.push(null);
30802 // 24256
30803 f974244559_519.returns.push(null);
30804 // 24262
30805 f974244559_519.returns.push(null);
30806 // 24268
30807 f974244559_519.returns.push(null);
30808 // 24274
30809 f974244559_519.returns.push(null);
30810 // 24280
30811 f974244559_519.returns.push(null);
30812 // 24286
30813 f974244559_519.returns.push(null);
30814 // 24292
30815 f974244559_519.returns.push(null);
30816 // 24298
30817 f974244559_519.returns.push(null);
30818 // 24304
30819 f974244559_519.returns.push(null);
30820 // 24309
30821 o9.JSBNG__screenX = 990;
30822 // 24310
30823 o9.JSBNG__screenY = 442;
30824 // 24311
30825 o9.altKey = false;
30826 // 24312
30827 o9.bubbles = true;
30828 // 24313
30829 o9.button = 0;
30830 // 24314
30831 o9.buttons = void 0;
30832 // 24315
30833 o9.cancelable = false;
30834 // 24316
30835 o9.clientX = 973;
30836 // 24317
30837 o9.clientY = 338;
30838 // 24318
30839 o9.ctrlKey = false;
30840 // 24319
30841 o9.currentTarget = o0;
30842 // 24320
30843 o9.defaultPrevented = false;
30844 // 24321
30845 o9.detail = 0;
30846 // 24322
30847 o9.eventPhase = 3;
30848 // 24323
30849 o9.isTrusted = void 0;
30850 // 24324
30851 o9.metaKey = false;
30852 // 24325
30853 o9.pageX = 973;
30854 // 24326
30855 o9.pageY = 915;
30856 // 24327
30857 o9.relatedTarget = null;
30858 // 24328
30859 o9.fromElement = null;
30860 // 24331
30861 o9.shiftKey = false;
30862 // 24334
30863 o9.timeStamp = 1373491306252;
30864 // 24335
30865 o9.type = "mousemove";
30866 // 24336
30867 o9.view = ow974244559;
30868 // undefined
30869 o9 = null;
30870 // 24345
30871 f974244559_2566.returns.push(undefined);
30872 // 24348
30873 f974244559_14.returns.push(undefined);
30874 // 24349
30875 f974244559_12.returns.push(95);
30876 // 24352
30877 o9 = {};
30878 // 24355
30879 o9.cancelBubble = false;
30880 // 24358
30881 f974244559_471.returns.push(1373491306328);
30882 // 24360
30883 o9.returnValue = true;
30884 // undefined
30885 o9 = null;
30886 // 24361
30887 o9 = {};
30888 // 24364
30889 o9.cancelBubble = false;
30890 // 24367
30891 f974244559_471.returns.push(1373491306345);
30892 // 24369
30893 o9.returnValue = true;
30894 // undefined
30895 o9 = null;
30896 // 24370
30897 o9 = {};
30898 // 24373
30899 o9.cancelBubble = false;
30900 // 24376
30901 f974244559_471.returns.push(1373491306364);
30902 // 24378
30903 o9.returnValue = true;
30904 // undefined
30905 o9 = null;
30906 // 24379
30907 o9 = {};
30908 // 24382
30909 o9.cancelBubble = false;
30910 // 24385
30911 f974244559_471.returns.push(1373491306379);
30912 // 24387
30913 o9.returnValue = true;
30914 // undefined
30915 o9 = null;
30916 // 24388
30917 o9 = {};
30918 // 24391
30919 o9.cancelBubble = false;
30920 // 24394
30921 f974244559_471.returns.push(1373491306391);
30922 // 24396
30923 o9.returnValue = true;
30924 // undefined
30925 o9 = null;
30926 // 24397
30927 o9 = {};
30928 // 24400
30929 o9.cancelBubble = false;
30930 // 24403
30931 f974244559_471.returns.push(1373491306410);
30932 // 24405
30933 o9.returnValue = true;
30934 // undefined
30935 o9 = null;
30936 // undefined
30937 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
30938 // 24407
30939 o9 = {};
30940 // 24410
30941 o9.cancelBubble = false;
30942 // 24413
30943 f974244559_471.returns.push(1373491306427);
30944 // 24415
30945 o9.returnValue = true;
30946 // undefined
30947 o9 = null;
30948 // 24416
30949 o9 = {};
30950 // 24419
30951 o9.srcElement = o82;
30952 // 24421
30953 o9.target = o82;
30954 // 24428
30955 f974244559_519.returns.push(null);
30956 // 24434
30957 f974244559_519.returns.push(null);
30958 // 24440
30959 f974244559_519.returns.push(null);
30960 // 24446
30961 f974244559_519.returns.push(null);
30962 // 24452
30963 f974244559_519.returns.push(null);
30964 // 24458
30965 f974244559_519.returns.push(null);
30966 // 24464
30967 f974244559_519.returns.push(null);
30968 // 24470
30969 f974244559_519.returns.push(null);
30970 // 24476
30971 f974244559_519.returns.push(null);
30972 // 24482
30973 f974244559_519.returns.push(null);
30974 // 24488
30975 f974244559_519.returns.push(null);
30976 // 24494
30977 f974244559_519.returns.push(null);
30978 // 24500
30979 f974244559_519.returns.push(null);
30980 // 24506
30981 f974244559_519.returns.push(null);
30982 // 24511
30983 o18 = {};
30984 // 24512
30985 o9.relatedTarget = o18;
30986 // 24513
30987 o19 = {};
30988 // 24514
30989 o18.parentNode = o19;
30990 // 24515
30991 o18.nodeType = 1;
30992 // 24516
30993 o18.getAttributeNode = f974244559_519;
30994 // 24518
30995 f974244559_519.returns.push(null);
30996 // 24520
30997 o20 = {};
30998 // 24521
30999 o19.parentNode = o20;
31000 // 24522
31001 o19.nodeType = 1;
31002 // 24523
31003 o19.getAttributeNode = f974244559_519;
31004 // undefined
31005 o19 = null;
31006 // 24525
31007 f974244559_519.returns.push(null);
31008 // 24527
31009 o20.parentNode = o63;
31010 // 24528
31011 o20.nodeType = 1;
31012 // 24529
31013 o20.getAttributeNode = f974244559_519;
31014 // undefined
31015 o20 = null;
31016 // 24531
31017 f974244559_519.returns.push(null);
31018 // 24533
31019 o63.parentNode = o23;
31020 // 24534
31021 o63.nodeType = 1;
31022 // 24535
31023 o63.getAttributeNode = f974244559_519;
31024 // undefined
31025 o63 = null;
31026 // 24537
31027 f974244559_519.returns.push(null);
31028 // 24539
31029 o19 = {};
31030 // 24540
31031 o23.parentNode = o19;
31032 // 24541
31033 o23.nodeType = 1;
31034 // 24542
31035 o23.getAttributeNode = f974244559_519;
31036 // undefined
31037 o23 = null;
31038 // 24544
31039 f974244559_519.returns.push(null);
31040 // 24546
31041 o19.parentNode = o120;
31042 // 24547
31043 o19.nodeType = 1;
31044 // 24548
31045 o19.getAttributeNode = f974244559_519;
31046 // 24550
31047 f974244559_519.returns.push(null);
31048 // 24552
31049 o20 = {};
31050 // 24553
31051 o120.parentNode = o20;
31052 // 24554
31053 o120.nodeType = 1;
31054 // 24555
31055 o120.getAttributeNode = f974244559_519;
31056 // undefined
31057 o120 = null;
31058 // 24557
31059 f974244559_519.returns.push(null);
31060 // 24559
31061 o20.parentNode = o119;
31062 // 24560
31063 o20.nodeType = 1;
31064 // 24561
31065 o20.getAttributeNode = f974244559_519;
31066 // undefined
31067 o20 = null;
31068 // 24563
31069 f974244559_519.returns.push(null);
31070 // 24565
31071 o119.parentNode = o105;
31072 // 24566
31073 o119.nodeType = 1;
31074 // 24567
31075 o119.getAttributeNode = f974244559_519;
31076 // undefined
31077 o119 = null;
31078 // 24569
31079 f974244559_519.returns.push(null);
31080 // 24571
31081 o105.parentNode = o13;
31082 // undefined
31083 o13 = null;
31084 // 24572
31085 o105.nodeType = 1;
31086 // 24573
31087 o105.getAttributeNode = f974244559_519;
31088 // undefined
31089 o105 = null;
31090 // 24575
31091 f974244559_519.returns.push(null);
31092 // 24581
31093 f974244559_519.returns.push(null);
31094 // 24587
31095 f974244559_519.returns.push(null);
31096 // 24593
31097 f974244559_519.returns.push(null);
31098 // 24599
31099 f974244559_519.returns.push(null);
31100 // 24605
31101 f974244559_519.returns.push(null);
31102 // 24611
31103 f974244559_519.returns.push(null);
31104 // 24617
31105 f974244559_519.returns.push(null);
31106 // 24623
31107 f974244559_519.returns.push(null);
31108 // 24629
31109 f974244559_519.returns.push(null);
31110 // 24635
31111 f974244559_519.returns.push(null);
31112 // 24640
31113 o9.cancelBubble = false;
31114 // 24641
31115 o9.returnValue = true;
31116 // undefined
31117 o9 = null;
31118 // 24642
31119 o9 = {};
31120 // 24645
31121 o9.cancelBubble = false;
31122 // 24648
31123 f974244559_471.returns.push(1373491306460);
31124 // 24651
31125 f974244559_1202.returns.push(undefined);
31126 // 24653
31127 o9.returnValue = true;
31128 // 24656
31129 o9.srcElement = o18;
31130 // 24658
31131 o9.target = o18;
31132 // 24665
31133 f974244559_519.returns.push(null);
31134 // 24671
31135 f974244559_519.returns.push(null);
31136 // 24677
31137 f974244559_519.returns.push(null);
31138 // 24683
31139 f974244559_519.returns.push(null);
31140 // 24689
31141 f974244559_519.returns.push(null);
31142 // 24695
31143 f974244559_519.returns.push(null);
31144 // 24701
31145 f974244559_519.returns.push(null);
31146 // 24707
31147 f974244559_519.returns.push(null);
31148 // 24713
31149 f974244559_519.returns.push(null);
31150 // 24719
31151 f974244559_519.returns.push(null);
31152 // 24725
31153 f974244559_519.returns.push(null);
31154 // 24731
31155 f974244559_519.returns.push(null);
31156 // 24737
31157 f974244559_519.returns.push(null);
31158 // 24743
31159 f974244559_519.returns.push(null);
31160 // 24749
31161 f974244559_519.returns.push(null);
31162 // 24755
31163 f974244559_519.returns.push(null);
31164 // 24761
31165 f974244559_519.returns.push(null);
31166 // 24767
31167 f974244559_519.returns.push(null);
31168 // 24773
31169 f974244559_519.returns.push(null);
31170 // 24779
31171 f974244559_519.returns.push(null);
31172 // 24784
31173 o9.relatedTarget = o82;
31174 // undefined
31175 o9 = null;
31176 // undefined
31177 o82 = null;
31178 // 24787
31179 o9 = {};
31180 // 24791
31181 f974244559_471.returns.push(1373491306469);
31182 // 24792
31183 o9.cancelBubble = false;
31184 // 24793
31185 o9.returnValue = true;
31186 // 24796
31187 o9.srcElement = o18;
31188 // 24798
31189 o9.target = o18;
31190 // 24805
31191 f974244559_519.returns.push(null);
31192 // 24811
31193 f974244559_519.returns.push(null);
31194 // 24817
31195 f974244559_519.returns.push(null);
31196 // 24823
31197 f974244559_519.returns.push(null);
31198 // 24829
31199 f974244559_519.returns.push(null);
31200 // 24835
31201 f974244559_519.returns.push(null);
31202 // 24841
31203 f974244559_519.returns.push(null);
31204 // 24847
31205 f974244559_519.returns.push(null);
31206 // 24853
31207 f974244559_519.returns.push(null);
31208 // 24859
31209 f974244559_519.returns.push(null);
31210 // 24865
31211 f974244559_519.returns.push(null);
31212 // 24871
31213 f974244559_519.returns.push(null);
31214 // 24877
31215 f974244559_519.returns.push(null);
31216 // 24883
31217 f974244559_519.returns.push(null);
31218 // 24889
31219 f974244559_519.returns.push(null);
31220 // 24895
31221 f974244559_519.returns.push(null);
31222 // 24901
31223 f974244559_519.returns.push(null);
31224 // 24907
31225 f974244559_519.returns.push(null);
31226 // 24913
31227 f974244559_519.returns.push(null);
31228 // 24919
31229 f974244559_519.returns.push(null);
31230 // 24924
31231 o9.JSBNG__screenX = 990;
31232 // 24925
31233 o9.JSBNG__screenY = 442;
31234 // 24926
31235 o9.altKey = false;
31236 // 24927
31237 o9.bubbles = true;
31238 // 24928
31239 o9.button = 0;
31240 // 24929
31241 o9.buttons = void 0;
31242 // 24930
31243 o9.cancelable = false;
31244 // 24931
31245 o9.clientX = 973;
31246 // 24932
31247 o9.clientY = 338;
31248 // 24933
31249 o9.ctrlKey = false;
31250 // 24934
31251 o9.currentTarget = o0;
31252 // 24935
31253 o9.defaultPrevented = false;
31254 // 24936
31255 o9.detail = 0;
31256 // 24937
31257 o9.eventPhase = 3;
31258 // 24938
31259 o9.isTrusted = void 0;
31260 // 24939
31261 o9.metaKey = false;
31262 // 24940
31263 o9.pageX = 973;
31264 // 24941
31265 o9.pageY = 635;
31266 // 24942
31267 o9.relatedTarget = null;
31268 // 24943
31269 o9.fromElement = null;
31270 // 24946
31271 o9.shiftKey = false;
31272 // 24949
31273 o9.timeStamp = 1373491306469;
31274 // 24950
31275 o9.type = "mousemove";
31276 // 24951
31277 o9.view = ow974244559;
31278 // undefined
31279 o9 = null;
31280 // 24960
31281 f974244559_2566.returns.push(undefined);
31282 // 24963
31283 f974244559_14.returns.push(undefined);
31284 // 24964
31285 f974244559_12.returns.push(96);
31286 // 24967
31287 o9 = {};
31288 // 24970
31289 o9.cancelBubble = false;
31290 // 24973
31291 f974244559_471.returns.push(1373491306718);
31292 // 24978
31293 f974244559_471.returns.push(1373491306719);
31294 // 24982
31295 f974244559_471.returns.push(1373491306719);
31296 // 24985
31297 o9.returnValue = true;
31298 // undefined
31299 o9 = null;
31300 // 24986
31301 o9 = {};
31302 // 24989
31303 o9.cancelBubble = false;
31304 // 24992
31305 f974244559_471.returns.push(1373491306733);
31306 // 24994
31307 o9.returnValue = true;
31308 // undefined
31309 o9 = null;
31310 // 24995
31311 o9 = {};
31312 // 24998
31313 o9.cancelBubble = false;
31314 // 25001
31315 f974244559_471.returns.push(1373491306747);
31316 // 25003
31317 o9.returnValue = true;
31318 // undefined
31319 o9 = null;
31320 // 25004
31321 o9 = {};
31322 // 25007
31323 o9.cancelBubble = false;
31324 // 25010
31325 f974244559_471.returns.push(1373491306762);
31326 // 25012
31327 o9.returnValue = true;
31328 // undefined
31329 o9 = null;
31330 // 25013
31331 o9 = {};
31332 // 25016
31333 o9.cancelBubble = false;
31334 // 25019
31335 f974244559_471.returns.push(1373491306776);
31336 // 25021
31337 o9.returnValue = true;
31338 // undefined
31339 o9 = null;
31340 // 25022
31341 o9 = {};
31342 // 25025
31343 o9.cancelBubble = false;
31344 // 25028
31345 f974244559_471.returns.push(1373491306791);
31346 // 25030
31347 o9.returnValue = true;
31348 // undefined
31349 o9 = null;
31350 // 25031
31351 o9 = {};
31352 // 25034
31353 o9.srcElement = o18;
31354 // 25036
31355 o9.target = o18;
31356 // 25043
31357 f974244559_519.returns.push(null);
31358 // 25049
31359 f974244559_519.returns.push(null);
31360 // 25055
31361 f974244559_519.returns.push(null);
31362 // 25061
31363 f974244559_519.returns.push(null);
31364 // 25067
31365 f974244559_519.returns.push(null);
31366 // 25073
31367 f974244559_519.returns.push(null);
31368 // 25079
31369 f974244559_519.returns.push(null);
31370 // 25085
31371 f974244559_519.returns.push(null);
31372 // 25091
31373 f974244559_519.returns.push(null);
31374 // 25097
31375 f974244559_519.returns.push(null);
31376 // 25103
31377 f974244559_519.returns.push(null);
31378 // 25109
31379 f974244559_519.returns.push(null);
31380 // 25115
31381 f974244559_519.returns.push(null);
31382 // 25121
31383 f974244559_519.returns.push(null);
31384 // 25127
31385 f974244559_519.returns.push(null);
31386 // 25133
31387 f974244559_519.returns.push(null);
31388 // 25139
31389 f974244559_519.returns.push(null);
31390 // 25145
31391 f974244559_519.returns.push(null);
31392 // 25151
31393 f974244559_519.returns.push(null);
31394 // 25157
31395 f974244559_519.returns.push(null);
31396 // 25162
31397 o13 = {};
31398 // 25163
31399 o9.relatedTarget = o13;
31400 // 25164
31401 o20 = {};
31402 // 25165
31403 o13.parentNode = o20;
31404 // 25166
31405 o13.nodeType = 1;
31406 // 25167
31407 o13.getAttributeNode = f974244559_519;
31408 // 25169
31409 f974244559_519.returns.push(null);
31410 // 25171
31411 o22 = {};
31412 // 25172
31413 o20.parentNode = o22;
31414 // 25173
31415 o20.nodeType = 1;
31416 // 25174
31417 o20.getAttributeNode = f974244559_519;
31418 // undefined
31419 o20 = null;
31420 // 25176
31421 f974244559_519.returns.push(null);
31422 // 25178
31423 o20 = {};
31424 // 25179
31425 o22.parentNode = o20;
31426 // 25180
31427 o22.nodeType = 1;
31428 // 25181
31429 o22.getAttributeNode = f974244559_519;
31430 // undefined
31431 o22 = null;
31432 // 25183
31433 f974244559_519.returns.push(null);
31434 // 25185
31435 o22 = {};
31436 // 25186
31437 o20.parentNode = o22;
31438 // 25187
31439 o20.nodeType = 1;
31440 // 25188
31441 o20.getAttributeNode = f974244559_519;
31442 // 25190
31443 f974244559_519.returns.push(null);
31444 // 25192
31445 o22.parentNode = o49;
31446 // 25193
31447 o22.nodeType = 1;
31448 // 25194
31449 o22.getAttributeNode = f974244559_519;
31450 // undefined
31451 o22 = null;
31452 // 25196
31453 f974244559_519.returns.push(null);
31454 // 25198
31455 o49.parentNode = o21;
31456 // 25199
31457 o49.nodeType = 1;
31458 // 25200
31459 o49.getAttributeNode = f974244559_519;
31460 // undefined
31461 o49 = null;
31462 // 25202
31463 f974244559_519.returns.push(null);
31464 // 25204
31465 o21.parentNode = o19;
31466 // undefined
31467 o19 = null;
31468 // 25205
31469 o21.nodeType = 1;
31470 // 25206
31471 o21.getAttributeNode = f974244559_519;
31472 // undefined
31473 o21 = null;
31474 // 25208
31475 f974244559_519.returns.push(null);
31476 // 25214
31477 f974244559_519.returns.push(null);
31478 // 25220
31479 f974244559_519.returns.push(null);
31480 // 25226
31481 f974244559_519.returns.push(null);
31482 // 25232
31483 f974244559_519.returns.push(null);
31484 // 25238
31485 f974244559_519.returns.push(null);
31486 // 25244
31487 f974244559_519.returns.push(null);
31488 // 25250
31489 f974244559_519.returns.push(null);
31490 // 25256
31491 f974244559_519.returns.push(null);
31492 // 25262
31493 f974244559_519.returns.push(null);
31494 // 25268
31495 f974244559_519.returns.push(null);
31496 // 25274
31497 f974244559_519.returns.push(null);
31498 // 25280
31499 f974244559_519.returns.push(null);
31500 // 25286
31501 f974244559_519.returns.push(null);
31502 // 25292
31503 f974244559_519.returns.push(null);
31504 // 25298
31505 f974244559_519.returns.push(null);
31506 // 25303
31507 o9.cancelBubble = false;
31508 // 25304
31509 o9.returnValue = true;
31510 // undefined
31511 o9 = null;
31512 // 25305
31513 o9 = {};
31514 // 25308
31515 o9.cancelBubble = false;
31516 // 25311
31517 f974244559_471.returns.push(1373491306844);
31518 // 25314
31519 f974244559_1202.returns.push(undefined);
31520 // 25316
31521 o9.returnValue = true;
31522 // 25319
31523 o9.srcElement = o13;
31524 // 25321
31525 o9.target = o13;
31526 // 25328
31527 f974244559_519.returns.push(null);
31528 // 25334
31529 f974244559_519.returns.push(null);
31530 // 25340
31531 f974244559_519.returns.push(null);
31532 // 25346
31533 f974244559_519.returns.push(null);
31534 // 25352
31535 f974244559_519.returns.push(null);
31536 // 25358
31537 f974244559_519.returns.push(null);
31538 // 25364
31539 f974244559_519.returns.push(null);
31540 // 25370
31541 f974244559_519.returns.push(null);
31542 // 25376
31543 f974244559_519.returns.push(null);
31544 // 25382
31545 f974244559_519.returns.push(null);
31546 // 25388
31547 f974244559_519.returns.push(null);
31548 // 25394
31549 f974244559_519.returns.push(null);
31550 // 25400
31551 f974244559_519.returns.push(null);
31552 // 25406
31553 f974244559_519.returns.push(null);
31554 // 25412
31555 f974244559_519.returns.push(null);
31556 // 25418
31557 f974244559_519.returns.push(null);
31558 // 25424
31559 f974244559_519.returns.push(null);
31560 // 25430
31561 f974244559_519.returns.push(null);
31562 // 25436
31563 f974244559_519.returns.push(null);
31564 // 25442
31565 f974244559_519.returns.push(null);
31566 // 25448
31567 f974244559_519.returns.push(null);
31568 // 25454
31569 f974244559_519.returns.push(null);
31570 // 25459
31571 o9.relatedTarget = o18;
31572 // undefined
31573 o9 = null;
31574 // undefined
31575 o18 = null;
31576 // 25462
31577 o9 = {};
31578 // 25466
31579 f974244559_471.returns.push(1373491306853);
31580 // 25467
31581 o9.cancelBubble = false;
31582 // 25468
31583 o9.returnValue = true;
31584 // 25471
31585 o9.srcElement = o13;
31586 // 25473
31587 o9.target = o13;
31588 // 25480
31589 f974244559_519.returns.push(null);
31590 // 25486
31591 f974244559_519.returns.push(null);
31592 // 25492
31593 f974244559_519.returns.push(null);
31594 // 25498
31595 f974244559_519.returns.push(null);
31596 // 25504
31597 f974244559_519.returns.push(null);
31598 // 25510
31599 f974244559_519.returns.push(null);
31600 // 25516
31601 f974244559_519.returns.push(null);
31602 // 25522
31603 f974244559_519.returns.push(null);
31604 // 25528
31605 f974244559_519.returns.push(null);
31606 // 25534
31607 f974244559_519.returns.push(null);
31608 // 25540
31609 f974244559_519.returns.push(null);
31610 // 25546
31611 f974244559_519.returns.push(null);
31612 // 25552
31613 f974244559_519.returns.push(null);
31614 // 25558
31615 f974244559_519.returns.push(null);
31616 // 25564
31617 f974244559_519.returns.push(null);
31618 // 25570
31619 f974244559_519.returns.push(null);
31620 // 25576
31621 f974244559_519.returns.push(null);
31622 // 25582
31623 f974244559_519.returns.push(null);
31624 // 25588
31625 f974244559_519.returns.push(null);
31626 // 25594
31627 f974244559_519.returns.push(null);
31628 // 25600
31629 f974244559_519.returns.push(null);
31630 // 25606
31631 f974244559_519.returns.push(null);
31632 // 25611
31633 o9.JSBNG__screenX = 990;
31634 // 25612
31635 o9.JSBNG__screenY = 442;
31636 // 25613
31637 o9.altKey = false;
31638 // 25614
31639 o9.bubbles = true;
31640 // 25615
31641 o9.button = 0;
31642 // 25616
31643 o9.buttons = void 0;
31644 // 25617
31645 o9.cancelable = false;
31646 // 25618
31647 o9.clientX = 973;
31648 // 25619
31649 o9.clientY = 338;
31650 // 25620
31651 o9.ctrlKey = false;
31652 // 25621
31653 o9.currentTarget = o0;
31654 // 25622
31655 o9.defaultPrevented = false;
31656 // 25623
31657 o9.detail = 0;
31658 // 25624
31659 o9.eventPhase = 3;
31660 // 25625
31661 o9.isTrusted = void 0;
31662 // 25626
31663 o9.metaKey = false;
31664 // 25627
31665 o9.pageX = 973;
31666 // 25628
31667 o9.pageY = 355;
31668 // 25629
31669 o9.relatedTarget = null;
31670 // 25630
31671 o9.fromElement = null;
31672 // 25633
31673 o9.shiftKey = false;
31674 // 25636
31675 o9.timeStamp = 1373491306852;
31676 // 25637
31677 o9.type = "mousemove";
31678 // 25638
31679 o9.view = ow974244559;
31680 // undefined
31681 o9 = null;
31682 // 25647
31683 f974244559_2566.returns.push(undefined);
31684 // 25650
31685 f974244559_14.returns.push(undefined);
31686 // 25651
31687 f974244559_12.returns.push(97);
31688 // 25655
31689 f974244559_12.returns.push(98);
31690 // undefined
31691 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
31692 // 25660
31693 f974244559_471.returns.push(1373491306919);
31694 // undefined
31695 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
31696 // 25662
31697 o9 = {};
31698 // 25665
31699 o9.cancelBubble = false;
31700 // 25668
31701 f974244559_471.returns.push(1373491307005);
31702 // 25670
31703 o9.returnValue = true;
31704 // undefined
31705 o9 = null;
31706 // 25671
31707 o9 = {};
31708 // 25674
31709 o9.cancelBubble = false;
31710 // 25677
31711 f974244559_471.returns.push(1373491307014);
31712 // 25679
31713 o9.returnValue = true;
31714 // undefined
31715 o9 = null;
31716 // 25680
31717 o9 = {};
31718 // 25683
31719 o9.cancelBubble = false;
31720 // 25686
31721 f974244559_471.returns.push(1373491307018);
31722 // 25688
31723 o9.returnValue = true;
31724 // undefined
31725 o9 = null;
31726 // 25689
31727 o9 = {};
31728 // 25692
31729 o9.cancelBubble = false;
31730 // 25695
31731 f974244559_471.returns.push(1373491307025);
31732 // 25697
31733 o9.returnValue = true;
31734 // undefined
31735 o9 = null;
31736 // 25698
31737 o9 = {};
31738 // 25701
31739 o9.cancelBubble = false;
31740 // 25704
31741 f974244559_471.returns.push(1373491307032);
31742 // 25706
31743 o9.returnValue = true;
31744 // undefined
31745 o9 = null;
31746 // 25707
31747 o9 = {};
31748 // 25710
31749 o9.cancelBubble = false;
31750 // 25713
31751 f974244559_471.returns.push(1373491307053);
31752 // 25715
31753 o9.returnValue = true;
31754 // undefined
31755 o9 = null;
31756 // 25716
31757 o9 = {};
31758 // 25720
31759 f974244559_471.returns.push(1373491307108);
31760 // 25721
31761 o9.cancelBubble = false;
31762 // 25722
31763 o9.returnValue = true;
31764 // 25725
31765 o9.srcElement = o13;
31766 // 25727
31767 o9.target = o13;
31768 // 25734
31769 f974244559_519.returns.push(null);
31770 // 25740
31771 f974244559_519.returns.push(null);
31772 // 25746
31773 f974244559_519.returns.push(null);
31774 // 25752
31775 f974244559_519.returns.push(null);
31776 // 25758
31777 f974244559_519.returns.push(null);
31778 // 25764
31779 f974244559_519.returns.push(null);
31780 // 25770
31781 f974244559_519.returns.push(null);
31782 // 25776
31783 f974244559_519.returns.push(null);
31784 // 25782
31785 f974244559_519.returns.push(null);
31786 // 25788
31787 f974244559_519.returns.push(null);
31788 // 25794
31789 f974244559_519.returns.push(null);
31790 // 25800
31791 f974244559_519.returns.push(null);
31792 // 25806
31793 f974244559_519.returns.push(null);
31794 // 25812
31795 f974244559_519.returns.push(null);
31796 // 25818
31797 f974244559_519.returns.push(null);
31798 // 25824
31799 f974244559_519.returns.push(null);
31800 // 25830
31801 f974244559_519.returns.push(null);
31802 // 25836
31803 f974244559_519.returns.push(null);
31804 // 25842
31805 f974244559_519.returns.push(null);
31806 // 25848
31807 f974244559_519.returns.push(null);
31808 // 25854
31809 f974244559_519.returns.push(null);
31810 // 25860
31811 f974244559_519.returns.push(null);
31812 // 25865
31813 o9.JSBNG__screenX = 990;
31814 // 25866
31815 o9.JSBNG__screenY = 442;
31816 // 25867
31817 o9.altKey = false;
31818 // 25868
31819 o9.bubbles = true;
31820 // 25869
31821 o9.button = 0;
31822 // 25870
31823 o9.buttons = void 0;
31824 // 25871
31825 o9.cancelable = false;
31826 // 25872
31827 o9.clientX = 973;
31828 // 25873
31829 o9.clientY = 338;
31830 // 25874
31831 o9.ctrlKey = false;
31832 // 25875
31833 o9.currentTarget = o0;
31834 // 25876
31835 o9.defaultPrevented = false;
31836 // 25877
31837 o9.detail = 0;
31838 // 25878
31839 o9.eventPhase = 3;
31840 // 25879
31841 o9.isTrusted = void 0;
31842 // 25880
31843 o9.metaKey = false;
31844 // 25881
31845 o9.pageX = 973;
31846 // 25882
31847 o9.pageY = 338;
31848 // 25883
31849 o9.relatedTarget = null;
31850 // 25884
31851 o9.fromElement = null;
31852 // 25887
31853 o9.shiftKey = false;
31854 // 25890
31855 o9.timeStamp = 1373491307108;
31856 // 25891
31857 o9.type = "mousemove";
31858 // 25892
31859 o9.view = ow974244559;
31860 // undefined
31861 o9 = null;
31862 // 25901
31863 f974244559_2566.returns.push(undefined);
31864 // 25904
31865 f974244559_14.returns.push(undefined);
31866 // 25905
31867 f974244559_12.returns.push(99);
31868 // 25908
31869 o9 = {};
31870 // 25911
31871 o9.cancelBubble = false;
31872 // 25914
31873 f974244559_471.returns.push(1373491307333);
31874 // 25919
31875 f974244559_471.returns.push(1373491307334);
31876 // 25923
31877 f974244559_471.returns.push(1373491307335);
31878 // 25926
31879 o9.returnValue = true;
31880 // undefined
31881 o9 = null;
31882 // 25927
31883 o9 = {};
31884 // 25930
31885 o9.cancelBubble = false;
31886 // 25933
31887 f974244559_471.returns.push(1373491307342);
31888 // 25935
31889 o9.returnValue = true;
31890 // undefined
31891 o9 = null;
31892 // 25936
31893 o9 = {};
31894 // 25939
31895 o9.cancelBubble = false;
31896 // 25942
31897 f974244559_471.returns.push(1373491307356);
31898 // 25944
31899 o9.returnValue = true;
31900 // undefined
31901 o9 = null;
31902 // 25945
31903 o9 = {};
31904 // 25948
31905 o9.cancelBubble = false;
31906 // 25951
31907 f974244559_471.returns.push(1373491307357);
31908 // 25953
31909 o9.returnValue = true;
31910 // undefined
31911 o9 = null;
31912 // 25954
31913 o9 = {};
31914 // 25957
31915 o9.cancelBubble = false;
31916 // 25960
31917 f974244559_471.returns.push(1373491307361);
31918 // 25962
31919 o9.returnValue = true;
31920 // undefined
31921 o9 = null;
31922 // 25963
31923 o9 = {};
31924 // 25966
31925 o9.cancelBubble = false;
31926 // 25969
31927 f974244559_471.returns.push(1373491307374);
31928 // 25971
31929 o9.returnValue = true;
31930 // undefined
31931 o9 = null;
31932 // 25972
31933 o9 = {};
31934 // 25975
31935 o9.cancelBubble = false;
31936 // 25978
31937 f974244559_471.returns.push(1373491307393);
31938 // 25980
31939 o9.returnValue = true;
31940 // undefined
31941 o9 = null;
31942 // undefined
31943 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
31944 // 25982
31945 o9 = {};
31946 // 25985
31947 o9.cancelBubble = false;
31948 // 25988
31949 f974244559_471.returns.push(1373491307637);
31950 // 25990
31951 o9.returnValue = true;
31952 // undefined
31953 o9 = null;
31954 // 25991
31955 o9 = {};
31956 // 25994
31957 o9.cancelBubble = false;
31958 // 25997
31959 f974244559_471.returns.push(1373491307655);
31960 // 25999
31961 o9.returnValue = true;
31962 // undefined
31963 o9 = null;
31964 // 26000
31965 o9 = {};
31966 // 26003
31967 o9.cancelBubble = false;
31968 // 26006
31969 f974244559_471.returns.push(1373491307670);
31970 // 26008
31971 o9.returnValue = true;
31972 // undefined
31973 o9 = null;
31974 // 26009
31975 o9 = {};
31976 // 26012
31977 o9.cancelBubble = false;
31978 // 26015
31979 f974244559_471.returns.push(1373491307679);
31980 // 26017
31981 o9.returnValue = true;
31982 // undefined
31983 o9 = null;
31984 // 26018
31985 o9 = {};
31986 // 26021
31987 o9.cancelBubble = false;
31988 // 26024
31989 f974244559_471.returns.push(1373491307729);
31990 // 26026
31991 o9.returnValue = true;
31992 // undefined
31993 o9 = null;
31994 // undefined
31995 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
31996 // 26029
31997 f974244559_471.returns.push(1373491307741);
31998 // 26031
31999 f974244559_471.returns.push(1373491307741);
32000 // 26033
32001 f974244559_471.returns.push(1373491307741);
32002 // 26034
32003 o9 = {};
32004 // 26037
32005 o9.cancelBubble = false;
32006 // 26040
32007 f974244559_471.returns.push(1373491307756);
32008 // 26042
32009 o9.returnValue = true;
32010 // undefined
32011 o9 = null;
32012 // 26044
32013 f974244559_12.returns.push(100);
32014 // undefined
32015 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
32016 // 26049
32017 f974244559_471.returns.push(1373491307922);
32018 // undefined
32019 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
32020 // 26051
32021 o9 = {};
32022 // 26054
32023 o9.srcElement = o13;
32024 // 26056
32025 o9.target = o13;
32026 // 26063
32027 f974244559_519.returns.push(null);
32028 // 26069
32029 f974244559_519.returns.push(null);
32030 // 26075
32031 f974244559_519.returns.push(null);
32032 // 26081
32033 f974244559_519.returns.push(null);
32034 // 26087
32035 f974244559_519.returns.push(null);
32036 // 26093
32037 f974244559_519.returns.push(null);
32038 // 26099
32039 f974244559_519.returns.push(null);
32040 // 26105
32041 f974244559_519.returns.push(null);
32042 // 26111
32043 f974244559_519.returns.push(null);
32044 // 26117
32045 f974244559_519.returns.push(null);
32046 // 26123
32047 f974244559_519.returns.push(null);
32048 // 26129
32049 f974244559_519.returns.push(null);
32050 // 26135
32051 f974244559_519.returns.push(null);
32052 // 26141
32053 f974244559_519.returns.push(null);
32054 // 26147
32055 f974244559_519.returns.push(null);
32056 // 26153
32057 f974244559_519.returns.push(null);
32058 // 26159
32059 f974244559_519.returns.push(null);
32060 // 26165
32061 f974244559_519.returns.push(null);
32062 // 26171
32063 f974244559_519.returns.push(null);
32064 // 26177
32065 f974244559_519.returns.push(null);
32066 // 26183
32067 f974244559_519.returns.push(null);
32068 // 26189
32069 f974244559_519.returns.push(null);
32070 // 26194
32071 o9.relatedTarget = o69;
32072 // 26195
32073 o18 = {};
32074 // 26196
32075 o69.parentNode = o18;
32076 // 26197
32077 o69.nodeType = 1;
32078 // 26198
32079 o69.getAttributeNode = f974244559_519;
32080 // 26200
32081 f974244559_519.returns.push(null);
32082 // 26202
32083 o18.parentNode = o20;
32084 // undefined
32085 o20 = null;
32086 // 26203
32087 o18.nodeType = 1;
32088 // 26204
32089 o18.getAttributeNode = f974244559_519;
32090 // undefined
32091 o18 = null;
32092 // 26206
32093 f974244559_519.returns.push(null);
32094 // 26212
32095 f974244559_519.returns.push(null);
32096 // 26218
32097 f974244559_519.returns.push(null);
32098 // 26224
32099 f974244559_519.returns.push(null);
32100 // 26230
32101 f974244559_519.returns.push(null);
32102 // 26236
32103 f974244559_519.returns.push(null);
32104 // 26242
32105 f974244559_519.returns.push(null);
32106 // 26248
32107 f974244559_519.returns.push(null);
32108 // 26254
32109 f974244559_519.returns.push(null);
32110 // 26260
32111 f974244559_519.returns.push(null);
32112 // 26266
32113 f974244559_519.returns.push(null);
32114 // 26272
32115 f974244559_519.returns.push(null);
32116 // 26278
32117 f974244559_519.returns.push(null);
32118 // 26284
32119 f974244559_519.returns.push(null);
32120 // 26290
32121 f974244559_519.returns.push(null);
32122 // 26296
32123 f974244559_519.returns.push(null);
32124 // 26302
32125 f974244559_519.returns.push(null);
32126 // 26308
32127 f974244559_519.returns.push(null);
32128 // 26314
32129 f974244559_519.returns.push(null);
32130 // 26320
32131 f974244559_519.returns.push(null);
32132 // 26325
32133 o9.cancelBubble = false;
32134 // 26326
32135 o9.returnValue = true;
32136 // undefined
32137 o9 = null;
32138 // 26327
32139 o9 = {};
32140 // 26330
32141 o9.cancelBubble = false;
32142 // 26333
32143 f974244559_471.returns.push(1373491307978);
32144 // 26338
32145 f974244559_471.returns.push(1373491307979);
32146 // 26342
32147 f974244559_471.returns.push(1373491307979);
32148 // 26346
32149 f974244559_1202.returns.push(undefined);
32150 // 26348
32151 o9.returnValue = true;
32152 // 26351
32153 o9.srcElement = o69;
32154 // 26353
32155 o9.target = o69;
32156 // 26360
32157 f974244559_519.returns.push(null);
32158 // 26366
32159 f974244559_519.returns.push(null);
32160 // 26372
32161 f974244559_519.returns.push(null);
32162 // 26378
32163 f974244559_519.returns.push(null);
32164 // 26384
32165 f974244559_519.returns.push(null);
32166 // 26390
32167 f974244559_519.returns.push(null);
32168 // 26396
32169 f974244559_519.returns.push(null);
32170 // 26402
32171 f974244559_519.returns.push(null);
32172 // 26408
32173 f974244559_519.returns.push(null);
32174 // 26414
32175 f974244559_519.returns.push(null);
32176 // 26420
32177 f974244559_519.returns.push(null);
32178 // 26426
32179 f974244559_519.returns.push(null);
32180 // 26432
32181 f974244559_519.returns.push(null);
32182 // 26438
32183 f974244559_519.returns.push(null);
32184 // 26444
32185 f974244559_519.returns.push(null);
32186 // 26450
32187 f974244559_519.returns.push(null);
32188 // 26456
32189 f974244559_519.returns.push(null);
32190 // 26462
32191 f974244559_519.returns.push(null);
32192 // 26468
32193 f974244559_519.returns.push(null);
32194 // 26474
32195 f974244559_519.returns.push(null);
32196 // 26480
32197 f974244559_519.returns.push(null);
32198 // 26485
32199 o9.relatedTarget = o13;
32200 // undefined
32201 o9 = null;
32202 // undefined
32203 o13 = null;
32204 // 26488
32205 o9 = {};
32206 // 26492
32207 f974244559_471.returns.push(1373491307988);
32208 // 26493
32209 o9.cancelBubble = false;
32210 // 26494
32211 o9.returnValue = true;
32212 // 26497
32213 o9.srcElement = o69;
32214 // 26499
32215 o9.target = o69;
32216 // 26506
32217 f974244559_519.returns.push(null);
32218 // 26512
32219 f974244559_519.returns.push(null);
32220 // 26518
32221 f974244559_519.returns.push(null);
32222 // 26524
32223 f974244559_519.returns.push(null);
32224 // 26530
32225 f974244559_519.returns.push(null);
32226 // 26536
32227 f974244559_519.returns.push(null);
32228 // 26542
32229 f974244559_519.returns.push(null);
32230 // 26548
32231 f974244559_519.returns.push(null);
32232 // 26554
32233 f974244559_519.returns.push(null);
32234 // 26560
32235 f974244559_519.returns.push(null);
32236 // 26566
32237 f974244559_519.returns.push(null);
32238 // 26572
32239 f974244559_519.returns.push(null);
32240 // 26578
32241 f974244559_519.returns.push(null);
32242 // 26584
32243 f974244559_519.returns.push(null);
32244 // 26590
32245 f974244559_519.returns.push(null);
32246 // 26596
32247 f974244559_519.returns.push(null);
32248 // 26602
32249 f974244559_519.returns.push(null);
32250 // 26608
32251 f974244559_519.returns.push(null);
32252 // 26614
32253 f974244559_519.returns.push(null);
32254 // 26620
32255 f974244559_519.returns.push(null);
32256 // 26626
32257 f974244559_519.returns.push(null);
32258 // 26631
32259 o9.JSBNG__screenX = 991;
32260 // 26632
32261 o9.JSBNG__screenY = 434;
32262 // 26633
32263 o9.altKey = false;
32264 // 26634
32265 o9.bubbles = true;
32266 // 26635
32267 o9.button = 0;
32268 // 26636
32269 o9.buttons = void 0;
32270 // 26637
32271 o9.cancelable = false;
32272 // 26638
32273 o9.clientX = 974;
32274 // 26639
32275 o9.clientY = 330;
32276 // 26640
32277 o9.ctrlKey = false;
32278 // 26641
32279 o9.currentTarget = o0;
32280 // 26642
32281 o9.defaultPrevented = false;
32282 // 26643
32283 o9.detail = 0;
32284 // 26644
32285 o9.eventPhase = 3;
32286 // 26645
32287 o9.isTrusted = void 0;
32288 // 26646
32289 o9.metaKey = false;
32290 // 26647
32291 o9.pageX = 974;
32292 // 26648
32293 o9.pageY = 330;
32294 // 26649
32295 o9.relatedTarget = null;
32296 // 26650
32297 o9.fromElement = null;
32298 // 26653
32299 o9.shiftKey = false;
32300 // 26656
32301 o9.timeStamp = 1373491307988;
32302 // 26657
32303 o9.type = "mousemove";
32304 // 26658
32305 o9.view = ow974244559;
32306 // undefined
32307 o9 = null;
32308 // 26667
32309 f974244559_2566.returns.push(undefined);
32310 // 26670
32311 f974244559_14.returns.push(undefined);
32312 // 26671
32313 f974244559_12.returns.push(101);
32314 // 26674
32315 o9 = {};
32316 // 26677
32317 o9.srcElement = o69;
32318 // 26679
32319 o9.target = o69;
32320 // 26686
32321 f974244559_519.returns.push(null);
32322 // 26692
32323 f974244559_519.returns.push(null);
32324 // 26698
32325 f974244559_519.returns.push(null);
32326 // 26704
32327 f974244559_519.returns.push(null);
32328 // 26710
32329 f974244559_519.returns.push(null);
32330 // 26716
32331 f974244559_519.returns.push(null);
32332 // 26722
32333 f974244559_519.returns.push(null);
32334 // 26728
32335 f974244559_519.returns.push(null);
32336 // 26734
32337 f974244559_519.returns.push(null);
32338 // 26740
32339 f974244559_519.returns.push(null);
32340 // 26746
32341 f974244559_519.returns.push(null);
32342 // 26752
32343 f974244559_519.returns.push(null);
32344 // 26758
32345 f974244559_519.returns.push(null);
32346 // 26764
32347 f974244559_519.returns.push(null);
32348 // 26770
32349 f974244559_519.returns.push(null);
32350 // 26776
32351 f974244559_519.returns.push(null);
32352 // 26782
32353 f974244559_519.returns.push(null);
32354 // 26788
32355 f974244559_519.returns.push(null);
32356 // 26794
32357 f974244559_519.returns.push(null);
32358 // 26800
32359 f974244559_519.returns.push(null);
32360 // 26806
32361 f974244559_519.returns.push(null);
32362 // 26811
32363 o9.relatedTarget = o17;
32364 // 26816
32365 f974244559_519.returns.push(null);
32366 // 26822
32367 f974244559_519.returns.push(null);
32368 // 26828
32369 f974244559_519.returns.push(null);
32370 // 26834
32371 f974244559_519.returns.push(null);
32372 // 26840
32373 f974244559_519.returns.push(null);
32374 // 26846
32375 f974244559_519.returns.push(null);
32376 // 26852
32377 f974244559_519.returns.push(null);
32378 // 26858
32379 f974244559_519.returns.push(null);
32380 // 26864
32381 f974244559_519.returns.push(null);
32382 // 26869
32383 o9.cancelBubble = false;
32384 // 26870
32385 o9.returnValue = true;
32386 // undefined
32387 o9 = null;
32388 // 26871
32389 o9 = {};
32390 // 26874
32391 o9.cancelBubble = false;
32392 // 26877
32393 f974244559_471.returns.push(1373491308046);
32394 // 26880
32395 f974244559_1202.returns.push(undefined);
32396 // 26882
32397 o9.returnValue = true;
32398 // 26885
32399 o9.srcElement = o17;
32400 // 26887
32401 o9.target = o17;
32402 // 26894
32403 f974244559_519.returns.push(null);
32404 // 26900
32405 f974244559_519.returns.push(null);
32406 // 26906
32407 f974244559_519.returns.push(null);
32408 // 26912
32409 f974244559_519.returns.push(null);
32410 // 26918
32411 f974244559_519.returns.push(null);
32412 // 26924
32413 f974244559_519.returns.push(null);
32414 // 26930
32415 f974244559_519.returns.push(null);
32416 // 26936
32417 f974244559_519.returns.push(null);
32418 // 26942
32419 f974244559_519.returns.push(null);
32420 // 26947
32421 o9.relatedTarget = o69;
32422 // undefined
32423 o9 = null;
32424 // undefined
32425 o69 = null;
32426 // 26950
32427 o9 = {};
32428 // 26954
32429 f974244559_471.returns.push(1373491308052);
32430 // 26955
32431 o9.cancelBubble = false;
32432 // 26956
32433 o9.returnValue = true;
32434 // 26959
32435 o9.srcElement = o17;
32436 // 26961
32437 o9.target = o17;
32438 // 26968
32439 f974244559_519.returns.push(null);
32440 // 26974
32441 f974244559_519.returns.push(null);
32442 // 26980
32443 f974244559_519.returns.push(null);
32444 // 26986
32445 f974244559_519.returns.push(null);
32446 // 26992
32447 f974244559_519.returns.push(null);
32448 // 26998
32449 f974244559_519.returns.push(null);
32450 // 27004
32451 f974244559_519.returns.push(null);
32452 // 27010
32453 f974244559_519.returns.push(null);
32454 // 27016
32455 f974244559_519.returns.push(null);
32456 // 27021
32457 o9.JSBNG__screenX = 1009;
32458 // 27022
32459 o9.JSBNG__screenY = 292;
32460 // 27023
32461 o9.altKey = false;
32462 // 27024
32463 o9.bubbles = true;
32464 // 27025
32465 o9.button = 0;
32466 // 27026
32467 o9.buttons = void 0;
32468 // 27027
32469 o9.cancelable = false;
32470 // 27028
32471 o9.clientX = 992;
32472 // 27029
32473 o9.clientY = 188;
32474 // 27030
32475 o9.ctrlKey = false;
32476 // 27031
32477 o9.currentTarget = o0;
32478 // 27032
32479 o9.defaultPrevented = false;
32480 // 27033
32481 o9.detail = 0;
32482 // 27034
32483 o9.eventPhase = 3;
32484 // 27035
32485 o9.isTrusted = void 0;
32486 // 27036
32487 o9.metaKey = false;
32488 // 27037
32489 o9.pageX = 992;
32490 // 27038
32491 o9.pageY = 188;
32492 // 27039
32493 o9.relatedTarget = null;
32494 // 27040
32495 o9.fromElement = null;
32496 // 27043
32497 o9.shiftKey = false;
32498 // 27046
32499 o9.timeStamp = 1373491308052;
32500 // 27047
32501 o9.type = "mousemove";
32502 // 27048
32503 o9.view = ow974244559;
32504 // undefined
32505 o9 = null;
32506 // 27057
32507 f974244559_2566.returns.push(undefined);
32508 // 27060
32509 f974244559_14.returns.push(undefined);
32510 // 27061
32511 f974244559_12.returns.push(102);
32512 // 27064
32513 o9 = {};
32514 // 27068
32515 f974244559_471.returns.push(1373491308066);
32516 // 27069
32517 o9.cancelBubble = false;
32518 // 27070
32519 o9.returnValue = true;
32520 // 27073
32521 o9.srcElement = o17;
32522 // 27075
32523 o9.target = o17;
32524 // 27082
32525 f974244559_519.returns.push(null);
32526 // 27088
32527 f974244559_519.returns.push(null);
32528 // 27094
32529 f974244559_519.returns.push(null);
32530 // 27100
32531 f974244559_519.returns.push(null);
32532 // 27106
32533 f974244559_519.returns.push(null);
32534 // 27112
32535 f974244559_519.returns.push(null);
32536 // 27118
32537 f974244559_519.returns.push(null);
32538 // 27124
32539 f974244559_519.returns.push(null);
32540 // 27130
32541 f974244559_519.returns.push(null);
32542 // 27135
32543 o9.JSBNG__screenX = 1015;
32544 // 27136
32545 o9.JSBNG__screenY = 245;
32546 // 27137
32547 o9.altKey = false;
32548 // 27138
32549 o9.bubbles = true;
32550 // 27139
32551 o9.button = 0;
32552 // 27140
32553 o9.buttons = void 0;
32554 // 27141
32555 o9.cancelable = false;
32556 // 27142
32557 o9.clientX = 998;
32558 // 27143
32559 o9.clientY = 141;
32560 // 27144
32561 o9.ctrlKey = false;
32562 // 27145
32563 o9.currentTarget = o0;
32564 // 27146
32565 o9.defaultPrevented = false;
32566 // 27147
32567 o9.detail = 0;
32568 // 27148
32569 o9.eventPhase = 3;
32570 // 27149
32571 o9.isTrusted = void 0;
32572 // 27150
32573 o9.metaKey = false;
32574 // 27151
32575 o9.pageX = 998;
32576 // 27152
32577 o9.pageY = 141;
32578 // 27153
32579 o9.relatedTarget = null;
32580 // 27154
32581 o9.fromElement = null;
32582 // 27157
32583 o9.shiftKey = false;
32584 // 27160
32585 o9.timeStamp = 1373491308065;
32586 // 27161
32587 o9.type = "mousemove";
32588 // 27162
32589 o9.view = ow974244559;
32590 // undefined
32591 o9 = null;
32592 // 27171
32593 f974244559_2566.returns.push(undefined);
32594 // 27174
32595 f974244559_14.returns.push(undefined);
32596 // 27175
32597 f974244559_12.returns.push(103);
32598 // 27178
32599 o9 = {};
32600 // 27182
32601 f974244559_471.returns.push(1373491308080);
32602 // 27183
32603 o9.cancelBubble = false;
32604 // 27184
32605 o9.returnValue = true;
32606 // 27187
32607 o9.srcElement = o17;
32608 // 27189
32609 o9.target = o17;
32610 // 27196
32611 f974244559_519.returns.push(null);
32612 // 27202
32613 f974244559_519.returns.push(null);
32614 // 27208
32615 f974244559_519.returns.push(null);
32616 // 27214
32617 f974244559_519.returns.push(null);
32618 // 27220
32619 f974244559_519.returns.push(null);
32620 // 27226
32621 f974244559_519.returns.push(null);
32622 // 27232
32623 f974244559_519.returns.push(null);
32624 // 27238
32625 f974244559_519.returns.push(null);
32626 // 27244
32627 f974244559_519.returns.push(null);
32628 // 27249
32629 o9.JSBNG__screenX = 1017;
32630 // 27250
32631 o9.JSBNG__screenY = 232;
32632 // 27251
32633 o9.altKey = false;
32634 // 27252
32635 o9.bubbles = true;
32636 // 27253
32637 o9.button = 0;
32638 // 27254
32639 o9.buttons = void 0;
32640 // 27255
32641 o9.cancelable = false;
32642 // 27256
32643 o9.clientX = 1000;
32644 // 27257
32645 o9.clientY = 128;
32646 // 27258
32647 o9.ctrlKey = false;
32648 // 27259
32649 o9.currentTarget = o0;
32650 // 27260
32651 o9.defaultPrevented = false;
32652 // 27261
32653 o9.detail = 0;
32654 // 27262
32655 o9.eventPhase = 3;
32656 // 27263
32657 o9.isTrusted = void 0;
32658 // 27264
32659 o9.metaKey = false;
32660 // 27265
32661 o9.pageX = 1000;
32662 // 27266
32663 o9.pageY = 128;
32664 // 27267
32665 o9.relatedTarget = null;
32666 // 27268
32667 o9.fromElement = null;
32668 // 27271
32669 o9.shiftKey = false;
32670 // 27274
32671 o9.timeStamp = 1373491308080;
32672 // 27275
32673 o9.type = "mousemove";
32674 // 27276
32675 o9.view = ow974244559;
32676 // undefined
32677 o9 = null;
32678 // 27285
32679 f974244559_2566.returns.push(undefined);
32680 // 27288
32681 f974244559_14.returns.push(undefined);
32682 // 27289
32683 f974244559_12.returns.push(104);
32684 // 27292
32685 o9 = {};
32686 // 27296
32687 f974244559_471.returns.push(1373491308112);
32688 // 27297
32689 o9.cancelBubble = false;
32690 // 27298
32691 o9.returnValue = true;
32692 // 27301
32693 o9.srcElement = o17;
32694 // 27303
32695 o9.target = o17;
32696 // 27310
32697 f974244559_519.returns.push(null);
32698 // 27316
32699 f974244559_519.returns.push(null);
32700 // 27322
32701 f974244559_519.returns.push(null);
32702 // 27328
32703 f974244559_519.returns.push(null);
32704 // 27334
32705 f974244559_519.returns.push(null);
32706 // 27340
32707 f974244559_519.returns.push(null);
32708 // 27346
32709 f974244559_519.returns.push(null);
32710 // 27352
32711 f974244559_519.returns.push(null);
32712 // 27358
32713 f974244559_519.returns.push(null);
32714 // 27363
32715 o9.JSBNG__screenX = 1017;
32716 // 27364
32717 o9.JSBNG__screenY = 213;
32718 // 27365
32719 o9.altKey = false;
32720 // 27366
32721 o9.bubbles = true;
32722 // 27367
32723 o9.button = 0;
32724 // 27368
32725 o9.buttons = void 0;
32726 // 27369
32727 o9.cancelable = false;
32728 // 27370
32729 o9.clientX = 1000;
32730 // 27371
32731 o9.clientY = 109;
32732 // 27372
32733 o9.ctrlKey = false;
32734 // 27373
32735 o9.currentTarget = o0;
32736 // 27374
32737 o9.defaultPrevented = false;
32738 // 27375
32739 o9.detail = 0;
32740 // 27376
32741 o9.eventPhase = 3;
32742 // 27377
32743 o9.isTrusted = void 0;
32744 // 27378
32745 o9.metaKey = false;
32746 // 27379
32747 o9.pageX = 1000;
32748 // 27380
32749 o9.pageY = 109;
32750 // 27381
32751 o9.relatedTarget = null;
32752 // 27382
32753 o9.fromElement = null;
32754 // 27385
32755 o9.shiftKey = false;
32756 // 27388
32757 o9.timeStamp = 1373491308111;
32758 // 27389
32759 o9.type = "mousemove";
32760 // 27390
32761 o9.view = ow974244559;
32762 // undefined
32763 o9 = null;
32764 // 27399
32765 f974244559_2566.returns.push(undefined);
32766 // 27402
32767 f974244559_14.returns.push(undefined);
32768 // 27403
32769 f974244559_12.returns.push(105);
32770 // 27406
32771 o9 = {};
32772 // 27410
32773 f974244559_471.returns.push(1373491308133);
32774 // 27411
32775 o9.cancelBubble = false;
32776 // 27412
32777 o9.returnValue = true;
32778 // 27415
32779 o9.srcElement = o17;
32780 // 27417
32781 o9.target = o17;
32782 // 27424
32783 f974244559_519.returns.push(null);
32784 // 27430
32785 f974244559_519.returns.push(null);
32786 // 27436
32787 f974244559_519.returns.push(null);
32788 // 27442
32789 f974244559_519.returns.push(null);
32790 // 27448
32791 f974244559_519.returns.push(null);
32792 // 27454
32793 f974244559_519.returns.push(null);
32794 // 27460
32795 f974244559_519.returns.push(null);
32796 // 27466
32797 f974244559_519.returns.push(null);
32798 // 27472
32799 f974244559_519.returns.push(null);
32800 // 27477
32801 o9.JSBNG__screenX = 1017;
32802 // 27478
32803 o9.JSBNG__screenY = 196;
32804 // 27479
32805 o9.altKey = false;
32806 // 27480
32807 o9.bubbles = true;
32808 // 27481
32809 o9.button = 0;
32810 // 27482
32811 o9.buttons = void 0;
32812 // 27483
32813 o9.cancelable = false;
32814 // 27484
32815 o9.clientX = 1000;
32816 // 27485
32817 o9.clientY = 92;
32818 // 27486
32819 o9.ctrlKey = false;
32820 // 27487
32821 o9.currentTarget = o0;
32822 // 27488
32823 o9.defaultPrevented = false;
32824 // 27489
32825 o9.detail = 0;
32826 // 27490
32827 o9.eventPhase = 3;
32828 // 27491
32829 o9.isTrusted = void 0;
32830 // 27492
32831 o9.metaKey = false;
32832 // 27493
32833 o9.pageX = 1000;
32834 // 27494
32835 o9.pageY = 92;
32836 // 27495
32837 o9.relatedTarget = null;
32838 // 27496
32839 o9.fromElement = null;
32840 // 27499
32841 o9.shiftKey = false;
32842 // 27502
32843 o9.timeStamp = 1373491308126;
32844 // 27503
32845 o9.type = "mousemove";
32846 // 27504
32847 o9.view = ow974244559;
32848 // undefined
32849 o9 = null;
32850 // 27513
32851 f974244559_2566.returns.push(undefined);
32852 // 27516
32853 f974244559_14.returns.push(undefined);
32854 // 27517
32855 f974244559_12.returns.push(106);
32856 // 27520
32857 o9 = {};
32858 // 27524
32859 f974244559_471.returns.push(1373491308145);
32860 // 27525
32861 o9.cancelBubble = false;
32862 // 27526
32863 o9.returnValue = true;
32864 // 27529
32865 o9.srcElement = o17;
32866 // 27531
32867 o9.target = o17;
32868 // 27538
32869 f974244559_519.returns.push(null);
32870 // 27544
32871 f974244559_519.returns.push(null);
32872 // 27550
32873 f974244559_519.returns.push(null);
32874 // 27556
32875 f974244559_519.returns.push(null);
32876 // 27562
32877 f974244559_519.returns.push(null);
32878 // 27568
32879 f974244559_519.returns.push(null);
32880 // 27574
32881 f974244559_519.returns.push(null);
32882 // 27580
32883 f974244559_519.returns.push(null);
32884 // 27586
32885 f974244559_519.returns.push(null);
32886 // 27591
32887 o9.JSBNG__screenX = 1017;
32888 // 27592
32889 o9.JSBNG__screenY = 187;
32890 // 27593
32891 o9.altKey = false;
32892 // 27594
32893 o9.bubbles = true;
32894 // 27595
32895 o9.button = 0;
32896 // 27596
32897 o9.buttons = void 0;
32898 // 27597
32899 o9.cancelable = false;
32900 // 27598
32901 o9.clientX = 1000;
32902 // 27599
32903 o9.clientY = 83;
32904 // 27600
32905 o9.ctrlKey = false;
32906 // 27601
32907 o9.currentTarget = o0;
32908 // 27602
32909 o9.defaultPrevented = false;
32910 // 27603
32911 o9.detail = 0;
32912 // 27604
32913 o9.eventPhase = 3;
32914 // 27605
32915 o9.isTrusted = void 0;
32916 // 27606
32917 o9.metaKey = false;
32918 // 27607
32919 o9.pageX = 1000;
32920 // 27608
32921 o9.pageY = 83;
32922 // 27609
32923 o9.relatedTarget = null;
32924 // 27610
32925 o9.fromElement = null;
32926 // 27613
32927 o9.shiftKey = false;
32928 // 27616
32929 o9.timeStamp = 1373491308145;
32930 // 27617
32931 o9.type = "mousemove";
32932 // 27618
32933 o9.view = ow974244559;
32934 // undefined
32935 o9 = null;
32936 // 27627
32937 f974244559_2566.returns.push(undefined);
32938 // 27630
32939 f974244559_14.returns.push(undefined);
32940 // 27631
32941 f974244559_12.returns.push(107);
32942 // 27634
32943 o9 = {};
32944 // 27638
32945 f974244559_471.returns.push(1373491308152);
32946 // 27639
32947 o9.cancelBubble = false;
32948 // 27640
32949 o9.returnValue = true;
32950 // 27643
32951 o9.srcElement = o17;
32952 // 27645
32953 o9.target = o17;
32954 // 27652
32955 f974244559_519.returns.push(null);
32956 // 27658
32957 f974244559_519.returns.push(null);
32958 // 27664
32959 f974244559_519.returns.push(null);
32960 // 27670
32961 f974244559_519.returns.push(null);
32962 // 27676
32963 f974244559_519.returns.push(null);
32964 // 27682
32965 f974244559_519.returns.push(null);
32966 // 27688
32967 f974244559_519.returns.push(null);
32968 // 27694
32969 f974244559_519.returns.push(null);
32970 // 27700
32971 f974244559_519.returns.push(null);
32972 // 27705
32973 o9.JSBNG__screenX = 1017;
32974 // 27706
32975 o9.JSBNG__screenY = 186;
32976 // 27707
32977 o9.altKey = false;
32978 // 27708
32979 o9.bubbles = true;
32980 // 27709
32981 o9.button = 0;
32982 // 27710
32983 o9.buttons = void 0;
32984 // 27711
32985 o9.cancelable = false;
32986 // 27712
32987 o9.clientX = 1000;
32988 // 27713
32989 o9.clientY = 82;
32990 // 27714
32991 o9.ctrlKey = false;
32992 // 27715
32993 o9.currentTarget = o0;
32994 // 27716
32995 o9.defaultPrevented = false;
32996 // 27717
32997 o9.detail = 0;
32998 // 27718
32999 o9.eventPhase = 3;
33000 // 27719
33001 o9.isTrusted = void 0;
33002 // 27720
33003 o9.metaKey = false;
33004 // 27721
33005 o9.pageX = 1000;
33006 // 27722
33007 o9.pageY = 82;
33008 // 27723
33009 o9.relatedTarget = null;
33010 // 27724
33011 o9.fromElement = null;
33012 // 27727
33013 o9.shiftKey = false;
33014 // 27730
33015 o9.timeStamp = 1373491308152;
33016 // 27731
33017 o9.type = "mousemove";
33018 // 27732
33019 o9.view = ow974244559;
33020 // undefined
33021 o9 = null;
33022 // 27741
33023 f974244559_2566.returns.push(undefined);
33024 // 27744
33025 f974244559_14.returns.push(undefined);
33026 // 27745
33027 f974244559_12.returns.push(108);
33028 // 27748
33029 o9 = {};
33030 // 27752
33031 f974244559_471.returns.push(1373491308160);
33032 // 27753
33033 o9.cancelBubble = false;
33034 // 27754
33035 o9.returnValue = true;
33036 // 27757
33037 o9.srcElement = o17;
33038 // 27759
33039 o9.target = o17;
33040 // 27766
33041 f974244559_519.returns.push(null);
33042 // 27772
33043 f974244559_519.returns.push(null);
33044 // 27778
33045 f974244559_519.returns.push(null);
33046 // 27784
33047 f974244559_519.returns.push(null);
33048 // 27790
33049 f974244559_519.returns.push(null);
33050 // 27796
33051 f974244559_519.returns.push(null);
33052 // 27802
33053 f974244559_519.returns.push(null);
33054 // 27808
33055 f974244559_519.returns.push(null);
33056 // 27814
33057 f974244559_519.returns.push(null);
33058 // 27819
33059 o9.JSBNG__screenX = 1017;
33060 // 27820
33061 o9.JSBNG__screenY = 185;
33062 // 27821
33063 o9.altKey = false;
33064 // 27822
33065 o9.bubbles = true;
33066 // 27823
33067 o9.button = 0;
33068 // 27824
33069 o9.buttons = void 0;
33070 // 27825
33071 o9.cancelable = false;
33072 // 27826
33073 o9.clientX = 1000;
33074 // 27827
33075 o9.clientY = 81;
33076 // 27828
33077 o9.ctrlKey = false;
33078 // 27829
33079 o9.currentTarget = o0;
33080 // 27830
33081 o9.defaultPrevented = false;
33082 // 27831
33083 o9.detail = 0;
33084 // 27832
33085 o9.eventPhase = 3;
33086 // 27833
33087 o9.isTrusted = void 0;
33088 // 27834
33089 o9.metaKey = false;
33090 // 27835
33091 o9.pageX = 1000;
33092 // 27836
33093 o9.pageY = 81;
33094 // 27837
33095 o9.relatedTarget = null;
33096 // 27838
33097 o9.fromElement = null;
33098 // 27841
33099 o9.shiftKey = false;
33100 // 27844
33101 o9.timeStamp = 1373491308160;
33102 // 27845
33103 o9.type = "mousemove";
33104 // 27846
33105 o9.view = ow974244559;
33106 // undefined
33107 o9 = null;
33108 // 27855
33109 f974244559_2566.returns.push(undefined);
33110 // 27858
33111 f974244559_14.returns.push(undefined);
33112 // 27859
33113 f974244559_12.returns.push(109);
33114 // 27863
33115 f974244559_471.returns.push(1373491308283);
33116 // 27864
33117 o9 = {};
33118 // 27868
33119 f974244559_471.returns.push(1373491308324);
33120 // 27869
33121 o9.cancelBubble = false;
33122 // 27870
33123 o9.returnValue = true;
33124 // 27873
33125 o9.srcElement = o17;
33126 // 27875
33127 o9.target = o17;
33128 // 27882
33129 f974244559_519.returns.push(null);
33130 // 27888
33131 f974244559_519.returns.push(null);
33132 // 27894
33133 f974244559_519.returns.push(null);
33134 // 27900
33135 f974244559_519.returns.push(null);
33136 // 27906
33137 f974244559_519.returns.push(null);
33138 // 27912
33139 f974244559_519.returns.push(null);
33140 // 27918
33141 f974244559_519.returns.push(null);
33142 // 27924
33143 f974244559_519.returns.push(null);
33144 // 27930
33145 f974244559_519.returns.push(null);
33146 // 27935
33147 o9.JSBNG__screenX = 1017;
33148 // 27936
33149 o9.JSBNG__screenY = 186;
33150 // 27937
33151 o9.altKey = false;
33152 // 27938
33153 o9.bubbles = true;
33154 // 27939
33155 o9.button = 0;
33156 // 27940
33157 o9.buttons = void 0;
33158 // 27941
33159 o9.cancelable = false;
33160 // 27942
33161 o9.clientX = 1000;
33162 // 27943
33163 o9.clientY = 82;
33164 // 27944
33165 o9.ctrlKey = false;
33166 // 27945
33167 o9.currentTarget = o0;
33168 // 27946
33169 o9.defaultPrevented = false;
33170 // 27947
33171 o9.detail = 0;
33172 // 27948
33173 o9.eventPhase = 3;
33174 // 27949
33175 o9.isTrusted = void 0;
33176 // 27950
33177 o9.metaKey = false;
33178 // 27951
33179 o9.pageX = 1000;
33180 // 27952
33181 o9.pageY = 82;
33182 // 27953
33183 o9.relatedTarget = null;
33184 // 27954
33185 o9.fromElement = null;
33186 // 27957
33187 o9.shiftKey = false;
33188 // 27960
33189 o9.timeStamp = 1373491308324;
33190 // 27961
33191 o9.type = "mousemove";
33192 // 27962
33193 o9.view = ow974244559;
33194 // undefined
33195 o9 = null;
33196 // 27971
33197 f974244559_2566.returns.push(undefined);
33198 // 27974
33199 f974244559_14.returns.push(undefined);
33200 // 27975
33201 f974244559_12.returns.push(110);
33202 // 27978
33203 o9 = {};
33204 // 27982
33205 f974244559_471.returns.push(1373491308333);
33206 // 27983
33207 o9.cancelBubble = false;
33208 // 27984
33209 o9.returnValue = true;
33210 // 27987
33211 o9.srcElement = o17;
33212 // 27989
33213 o9.target = o17;
33214 // 27996
33215 f974244559_519.returns.push(null);
33216 // 28002
33217 f974244559_519.returns.push(null);
33218 // 28008
33219 f974244559_519.returns.push(null);
33220 // 28014
33221 f974244559_519.returns.push(null);
33222 // 28020
33223 f974244559_519.returns.push(null);
33224 // 28026
33225 f974244559_519.returns.push(null);
33226 // 28032
33227 f974244559_519.returns.push(null);
33228 // 28038
33229 f974244559_519.returns.push(null);
33230 // 28044
33231 f974244559_519.returns.push(null);
33232 // 28049
33233 o9.JSBNG__screenX = 1017;
33234 // 28050
33235 o9.JSBNG__screenY = 187;
33236 // 28051
33237 o9.altKey = false;
33238 // 28052
33239 o9.bubbles = true;
33240 // 28053
33241 o9.button = 0;
33242 // 28054
33243 o9.buttons = void 0;
33244 // 28055
33245 o9.cancelable = false;
33246 // 28056
33247 o9.clientX = 1000;
33248 // 28057
33249 o9.clientY = 83;
33250 // 28058
33251 o9.ctrlKey = false;
33252 // 28059
33253 o9.currentTarget = o0;
33254 // 28060
33255 o9.defaultPrevented = false;
33256 // 28061
33257 o9.detail = 0;
33258 // 28062
33259 o9.eventPhase = 3;
33260 // 28063
33261 o9.isTrusted = void 0;
33262 // 28064
33263 o9.metaKey = false;
33264 // 28065
33265 o9.pageX = 1000;
33266 // 28066
33267 o9.pageY = 83;
33268 // 28067
33269 o9.relatedTarget = null;
33270 // 28068
33271 o9.fromElement = null;
33272 // 28071
33273 o9.shiftKey = false;
33274 // 28074
33275 o9.timeStamp = 1373491308332;
33276 // 28075
33277 o9.type = "mousemove";
33278 // 28076
33279 o9.view = ow974244559;
33280 // undefined
33281 o9 = null;
33282 // 28085
33283 f974244559_2566.returns.push(undefined);
33284 // 28088
33285 f974244559_14.returns.push(undefined);
33286 // 28089
33287 f974244559_12.returns.push(111);
33288 // 28092
33289 o9 = {};
33290 // 28096
33291 f974244559_471.returns.push(1373491308340);
33292 // 28097
33293 o9.cancelBubble = false;
33294 // 28098
33295 o9.returnValue = true;
33296 // 28101
33297 o9.srcElement = o17;
33298 // 28103
33299 o9.target = o17;
33300 // 28110
33301 f974244559_519.returns.push(null);
33302 // 28116
33303 f974244559_519.returns.push(null);
33304 // 28122
33305 f974244559_519.returns.push(null);
33306 // 28128
33307 f974244559_519.returns.push(null);
33308 // 28134
33309 f974244559_519.returns.push(null);
33310 // 28140
33311 f974244559_519.returns.push(null);
33312 // 28146
33313 f974244559_519.returns.push(null);
33314 // 28152
33315 f974244559_519.returns.push(null);
33316 // 28158
33317 f974244559_519.returns.push(null);
33318 // 28163
33319 o9.JSBNG__screenX = 1017;
33320 // 28164
33321 o9.JSBNG__screenY = 188;
33322 // 28165
33323 o9.altKey = false;
33324 // 28166
33325 o9.bubbles = true;
33326 // 28167
33327 o9.button = 0;
33328 // 28168
33329 o9.buttons = void 0;
33330 // 28169
33331 o9.cancelable = false;
33332 // 28170
33333 o9.clientX = 1000;
33334 // 28171
33335 o9.clientY = 84;
33336 // 28172
33337 o9.ctrlKey = false;
33338 // 28173
33339 o9.currentTarget = o0;
33340 // 28174
33341 o9.defaultPrevented = false;
33342 // 28175
33343 o9.detail = 0;
33344 // 28176
33345 o9.eventPhase = 3;
33346 // 28177
33347 o9.isTrusted = void 0;
33348 // 28178
33349 o9.metaKey = false;
33350 // 28179
33351 o9.pageX = 1000;
33352 // 28180
33353 o9.pageY = 84;
33354 // 28181
33355 o9.relatedTarget = null;
33356 // 28182
33357 o9.fromElement = null;
33358 // 28185
33359 o9.shiftKey = false;
33360 // 28188
33361 o9.timeStamp = 1373491308340;
33362 // 28189
33363 o9.type = "mousemove";
33364 // 28190
33365 o9.view = ow974244559;
33366 // undefined
33367 o9 = null;
33368 // 28199
33369 f974244559_2566.returns.push(undefined);
33370 // 28202
33371 f974244559_14.returns.push(undefined);
33372 // 28203
33373 f974244559_12.returns.push(112);
33374 // 28206
33375 o9 = {};
33376 // 28210
33377 f974244559_471.returns.push(1373491308351);
33378 // 28211
33379 o9.cancelBubble = false;
33380 // 28212
33381 o9.returnValue = true;
33382 // 28215
33383 o9.srcElement = o17;
33384 // 28217
33385 o9.target = o17;
33386 // 28224
33387 f974244559_519.returns.push(null);
33388 // 28230
33389 f974244559_519.returns.push(null);
33390 // 28236
33391 f974244559_519.returns.push(null);
33392 // 28242
33393 f974244559_519.returns.push(null);
33394 // 28248
33395 f974244559_519.returns.push(null);
33396 // 28254
33397 f974244559_519.returns.push(null);
33398 // 28260
33399 f974244559_519.returns.push(null);
33400 // 28266
33401 f974244559_519.returns.push(null);
33402 // 28272
33403 f974244559_519.returns.push(null);
33404 // 28277
33405 o9.JSBNG__screenX = 1017;
33406 // 28278
33407 o9.JSBNG__screenY = 189;
33408 // 28279
33409 o9.altKey = false;
33410 // 28280
33411 o9.bubbles = true;
33412 // 28281
33413 o9.button = 0;
33414 // 28282
33415 o9.buttons = void 0;
33416 // 28283
33417 o9.cancelable = false;
33418 // 28284
33419 o9.clientX = 1000;
33420 // 28285
33421 o9.clientY = 85;
33422 // 28286
33423 o9.ctrlKey = false;
33424 // 28287
33425 o9.currentTarget = o0;
33426 // 28288
33427 o9.defaultPrevented = false;
33428 // 28289
33429 o9.detail = 0;
33430 // 28290
33431 o9.eventPhase = 3;
33432 // 28291
33433 o9.isTrusted = void 0;
33434 // 28292
33435 o9.metaKey = false;
33436 // 28293
33437 o9.pageX = 1000;
33438 // 28294
33439 o9.pageY = 85;
33440 // 28295
33441 o9.relatedTarget = null;
33442 // 28296
33443 o9.fromElement = null;
33444 // 28299
33445 o9.shiftKey = false;
33446 // 28302
33447 o9.timeStamp = 1373491308350;
33448 // 28303
33449 o9.type = "mousemove";
33450 // 28304
33451 o9.view = ow974244559;
33452 // undefined
33453 o9 = null;
33454 // 28313
33455 f974244559_2566.returns.push(undefined);
33456 // 28316
33457 f974244559_14.returns.push(undefined);
33458 // 28317
33459 f974244559_12.returns.push(113);
33460 // 28320
33461 o9 = {};
33462 // 28324
33463 f974244559_471.returns.push(1373491308383);
33464 // 28325
33465 o9.cancelBubble = false;
33466 // 28326
33467 o9.returnValue = true;
33468 // 28329
33469 o9.srcElement = o17;
33470 // 28331
33471 o9.target = o17;
33472 // 28338
33473 f974244559_519.returns.push(null);
33474 // 28344
33475 f974244559_519.returns.push(null);
33476 // 28350
33477 f974244559_519.returns.push(null);
33478 // 28356
33479 f974244559_519.returns.push(null);
33480 // 28362
33481 f974244559_519.returns.push(null);
33482 // 28368
33483 f974244559_519.returns.push(null);
33484 // 28374
33485 f974244559_519.returns.push(null);
33486 // 28380
33487 f974244559_519.returns.push(null);
33488 // 28386
33489 f974244559_519.returns.push(null);
33490 // 28391
33491 o9.JSBNG__screenX = 1017;
33492 // 28392
33493 o9.JSBNG__screenY = 190;
33494 // 28393
33495 o9.altKey = false;
33496 // 28394
33497 o9.bubbles = true;
33498 // 28395
33499 o9.button = 0;
33500 // 28396
33501 o9.buttons = void 0;
33502 // 28397
33503 o9.cancelable = false;
33504 // 28398
33505 o9.clientX = 1000;
33506 // 28399
33507 o9.clientY = 86;
33508 // 28400
33509 o9.ctrlKey = false;
33510 // 28401
33511 o9.currentTarget = o0;
33512 // 28402
33513 o9.defaultPrevented = false;
33514 // 28403
33515 o9.detail = 0;
33516 // 28404
33517 o9.eventPhase = 3;
33518 // 28405
33519 o9.isTrusted = void 0;
33520 // 28406
33521 o9.metaKey = false;
33522 // 28407
33523 o9.pageX = 1000;
33524 // 28408
33525 o9.pageY = 86;
33526 // 28409
33527 o9.relatedTarget = null;
33528 // 28410
33529 o9.fromElement = null;
33530 // 28413
33531 o9.shiftKey = false;
33532 // 28416
33533 o9.timeStamp = 1373491308378;
33534 // 28417
33535 o9.type = "mousemove";
33536 // 28418
33537 o9.view = ow974244559;
33538 // undefined
33539 o9 = null;
33540 // 28427
33541 f974244559_2566.returns.push(undefined);
33542 // 28430
33543 f974244559_14.returns.push(undefined);
33544 // 28431
33545 f974244559_12.returns.push(114);
33546 // 28434
33547 o9 = {};
33548 // 28438
33549 f974244559_471.returns.push(1373491308432);
33550 // 28439
33551 o9.cancelBubble = false;
33552 // 28440
33553 o9.returnValue = true;
33554 // 28443
33555 o9.srcElement = o17;
33556 // 28445
33557 o9.target = o17;
33558 // 28452
33559 f974244559_519.returns.push(null);
33560 // 28458
33561 f974244559_519.returns.push(null);
33562 // 28464
33563 f974244559_519.returns.push(null);
33564 // 28470
33565 f974244559_519.returns.push(null);
33566 // 28476
33567 f974244559_519.returns.push(null);
33568 // 28482
33569 f974244559_519.returns.push(null);
33570 // 28488
33571 f974244559_519.returns.push(null);
33572 // 28494
33573 f974244559_519.returns.push(null);
33574 // 28500
33575 f974244559_519.returns.push(null);
33576 // 28505
33577 o9.JSBNG__screenX = 1013;
33578 // 28506
33579 o9.JSBNG__screenY = 194;
33580 // 28507
33581 o9.altKey = false;
33582 // 28508
33583 o9.bubbles = true;
33584 // 28509
33585 o9.button = 0;
33586 // 28510
33587 o9.buttons = void 0;
33588 // 28511
33589 o9.cancelable = false;
33590 // 28512
33591 o9.clientX = 996;
33592 // 28513
33593 o9.clientY = 90;
33594 // 28514
33595 o9.ctrlKey = false;
33596 // 28515
33597 o9.currentTarget = o0;
33598 // 28516
33599 o9.defaultPrevented = false;
33600 // 28517
33601 o9.detail = 0;
33602 // 28518
33603 o9.eventPhase = 3;
33604 // 28519
33605 o9.isTrusted = void 0;
33606 // 28520
33607 o9.metaKey = false;
33608 // 28521
33609 o9.pageX = 996;
33610 // 28522
33611 o9.pageY = 90;
33612 // 28523
33613 o9.relatedTarget = null;
33614 // 28524
33615 o9.fromElement = null;
33616 // 28527
33617 o9.shiftKey = false;
33618 // 28530
33619 o9.timeStamp = 1373491308431;
33620 // 28531
33621 o9.type = "mousemove";
33622 // 28532
33623 o9.view = ow974244559;
33624 // undefined
33625 o9 = null;
33626 // 28541
33627 f974244559_2566.returns.push(undefined);
33628 // 28544
33629 f974244559_14.returns.push(undefined);
33630 // 28545
33631 f974244559_12.returns.push(115);
33632 // undefined
33633 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
33634 // 28549
33635 o9 = {};
33636 // 28553
33637 f974244559_471.returns.push(1373491308467);
33638 // 28554
33639 o9.cancelBubble = false;
33640 // 28555
33641 o9.returnValue = true;
33642 // 28558
33643 o9.srcElement = o17;
33644 // 28560
33645 o9.target = o17;
33646 // 28567
33647 f974244559_519.returns.push(null);
33648 // 28573
33649 f974244559_519.returns.push(null);
33650 // 28579
33651 f974244559_519.returns.push(null);
33652 // 28585
33653 f974244559_519.returns.push(null);
33654 // 28591
33655 f974244559_519.returns.push(null);
33656 // 28597
33657 f974244559_519.returns.push(null);
33658 // 28603
33659 f974244559_519.returns.push(null);
33660 // 28609
33661 f974244559_519.returns.push(null);
33662 // 28615
33663 f974244559_519.returns.push(null);
33664 // 28620
33665 o9.JSBNG__screenX = 1009;
33666 // 28621
33667 o9.JSBNG__screenY = 195;
33668 // 28622
33669 o9.altKey = false;
33670 // 28623
33671 o9.bubbles = true;
33672 // 28624
33673 o9.button = 0;
33674 // 28625
33675 o9.buttons = void 0;
33676 // 28626
33677 o9.cancelable = false;
33678 // 28627
33679 o9.clientX = 992;
33680 // 28628
33681 o9.clientY = 91;
33682 // 28629
33683 o9.ctrlKey = false;
33684 // 28630
33685 o9.currentTarget = o0;
33686 // 28631
33687 o9.defaultPrevented = false;
33688 // 28632
33689 o9.detail = 0;
33690 // 28633
33691 o9.eventPhase = 3;
33692 // 28634
33693 o9.isTrusted = void 0;
33694 // 28635
33695 o9.metaKey = false;
33696 // 28636
33697 o9.pageX = 992;
33698 // 28637
33699 o9.pageY = 91;
33700 // 28638
33701 o9.relatedTarget = null;
33702 // 28639
33703 o9.fromElement = null;
33704 // 28642
33705 o9.shiftKey = false;
33706 // 28645
33707 o9.timeStamp = 1373491308467;
33708 // 28646
33709 o9.type = "mousemove";
33710 // 28647
33711 o9.view = ow974244559;
33712 // undefined
33713 o9 = null;
33714 // 28656
33715 f974244559_2566.returns.push(undefined);
33716 // 28659
33717 f974244559_14.returns.push(undefined);
33718 // 28660
33719 f974244559_12.returns.push(116);
33720 // 28663
33721 o9 = {};
33722 // 28667
33723 f974244559_471.returns.push(1373491308480);
33724 // 28672
33725 f974244559_471.returns.push(1373491308481);
33726 // 28676
33727 f974244559_471.returns.push(1373491308481);
33728 // 28678
33729 o9.cancelBubble = false;
33730 // 28679
33731 o9.returnValue = true;
33732 // 28682
33733 o9.srcElement = o17;
33734 // 28684
33735 o9.target = o17;
33736 // 28691
33737 f974244559_519.returns.push(null);
33738 // 28697
33739 f974244559_519.returns.push(null);
33740 // 28703
33741 f974244559_519.returns.push(null);
33742 // 28709
33743 f974244559_519.returns.push(null);
33744 // 28715
33745 f974244559_519.returns.push(null);
33746 // 28721
33747 f974244559_519.returns.push(null);
33748 // 28727
33749 f974244559_519.returns.push(null);
33750 // 28733
33751 f974244559_519.returns.push(null);
33752 // 28739
33753 f974244559_519.returns.push(null);
33754 // 28744
33755 o9.JSBNG__screenX = 1005;
33756 // 28745
33757 o9.JSBNG__screenY = 199;
33758 // 28746
33759 o9.altKey = false;
33760 // 28747
33761 o9.bubbles = true;
33762 // 28748
33763 o9.button = 0;
33764 // 28749
33765 o9.buttons = void 0;
33766 // 28750
33767 o9.cancelable = false;
33768 // 28751
33769 o9.clientX = 988;
33770 // 28752
33771 o9.clientY = 95;
33772 // 28753
33773 o9.ctrlKey = false;
33774 // 28754
33775 o9.currentTarget = o0;
33776 // 28755
33777 o9.defaultPrevented = false;
33778 // 28756
33779 o9.detail = 0;
33780 // 28757
33781 o9.eventPhase = 3;
33782 // 28758
33783 o9.isTrusted = void 0;
33784 // 28759
33785 o9.metaKey = false;
33786 // 28760
33787 o9.pageX = 988;
33788 // 28761
33789 o9.pageY = 95;
33790 // 28762
33791 o9.relatedTarget = null;
33792 // 28763
33793 o9.fromElement = null;
33794 // 28766
33795 o9.shiftKey = false;
33796 // 28769
33797 o9.timeStamp = 1373491308480;
33798 // 28770
33799 o9.type = "mousemove";
33800 // 28771
33801 o9.view = ow974244559;
33802 // undefined
33803 o9 = null;
33804 // 28780
33805 f974244559_2566.returns.push(undefined);
33806 // 28783
33807 f974244559_14.returns.push(undefined);
33808 // 28784
33809 f974244559_12.returns.push(117);
33810 // 28787
33811 o9 = {};
33812 // 28791
33813 f974244559_471.returns.push(1373491308490);
33814 // 28792
33815 o9.cancelBubble = false;
33816 // 28793
33817 o9.returnValue = true;
33818 // 28796
33819 o9.srcElement = o17;
33820 // 28798
33821 o9.target = o17;
33822 // 28805
33823 f974244559_519.returns.push(null);
33824 // 28811
33825 f974244559_519.returns.push(null);
33826 // 28817
33827 f974244559_519.returns.push(null);
33828 // 28823
33829 f974244559_519.returns.push(null);
33830 // 28829
33831 f974244559_519.returns.push(null);
33832 // 28835
33833 f974244559_519.returns.push(null);
33834 // 28841
33835 f974244559_519.returns.push(null);
33836 // 28847
33837 f974244559_519.returns.push(null);
33838 // 28853
33839 f974244559_519.returns.push(null);
33840 // 28858
33841 o9.JSBNG__screenX = 999;
33842 // 28859
33843 o9.JSBNG__screenY = 203;
33844 // 28860
33845 o9.altKey = false;
33846 // 28861
33847 o9.bubbles = true;
33848 // 28862
33849 o9.button = 0;
33850 // 28863
33851 o9.buttons = void 0;
33852 // 28864
33853 o9.cancelable = false;
33854 // 28865
33855 o9.clientX = 982;
33856 // 28866
33857 o9.clientY = 99;
33858 // 28867
33859 o9.ctrlKey = false;
33860 // 28868
33861 o9.currentTarget = o0;
33862 // 28869
33863 o9.defaultPrevented = false;
33864 // 28870
33865 o9.detail = 0;
33866 // 28871
33867 o9.eventPhase = 3;
33868 // 28872
33869 o9.isTrusted = void 0;
33870 // 28873
33871 o9.metaKey = false;
33872 // 28874
33873 o9.pageX = 982;
33874 // 28875
33875 o9.pageY = 99;
33876 // 28876
33877 o9.relatedTarget = null;
33878 // 28877
33879 o9.fromElement = null;
33880 // 28880
33881 o9.shiftKey = false;
33882 // 28883
33883 o9.timeStamp = 1373491308490;
33884 // 28884
33885 o9.type = "mousemove";
33886 // 28885
33887 o9.view = ow974244559;
33888 // undefined
33889 o9 = null;
33890 // 28894
33891 f974244559_2566.returns.push(undefined);
33892 // 28897
33893 f974244559_14.returns.push(undefined);
33894 // 28898
33895 f974244559_12.returns.push(118);
33896 // 28901
33897 o9 = {};
33898 // 28905
33899 f974244559_471.returns.push(1373491308510);
33900 // 28906
33901 o9.cancelBubble = false;
33902 // 28907
33903 o9.returnValue = true;
33904 // 28910
33905 o9.srcElement = o17;
33906 // 28912
33907 o9.target = o17;
33908 // 28919
33909 f974244559_519.returns.push(null);
33910 // 28925
33911 f974244559_519.returns.push(null);
33912 // 28931
33913 f974244559_519.returns.push(null);
33914 // 28937
33915 f974244559_519.returns.push(null);
33916 // 28943
33917 f974244559_519.returns.push(null);
33918 // 28949
33919 f974244559_519.returns.push(null);
33920 // 28955
33921 f974244559_519.returns.push(null);
33922 // 28961
33923 f974244559_519.returns.push(null);
33924 // 28967
33925 f974244559_519.returns.push(null);
33926 // 28972
33927 o9.JSBNG__screenX = 946;
33928 // 28973
33929 o9.JSBNG__screenY = 239;
33930 // 28974
33931 o9.altKey = false;
33932 // 28975
33933 o9.bubbles = true;
33934 // 28976
33935 o9.button = 0;
33936 // 28977
33937 o9.buttons = void 0;
33938 // 28978
33939 o9.cancelable = false;
33940 // 28979
33941 o9.clientX = 929;
33942 // 28980
33943 o9.clientY = 135;
33944 // 28981
33945 o9.ctrlKey = false;
33946 // 28982
33947 o9.currentTarget = o0;
33948 // 28983
33949 o9.defaultPrevented = false;
33950 // 28984
33951 o9.detail = 0;
33952 // 28985
33953 o9.eventPhase = 3;
33954 // 28986
33955 o9.isTrusted = void 0;
33956 // 28987
33957 o9.metaKey = false;
33958 // 28988
33959 o9.pageX = 929;
33960 // 28989
33961 o9.pageY = 135;
33962 // 28990
33963 o9.relatedTarget = null;
33964 // 28991
33965 o9.fromElement = null;
33966 // 28994
33967 o9.shiftKey = false;
33968 // 28997
33969 o9.timeStamp = 1373491308509;
33970 // 28998
33971 o9.type = "mousemove";
33972 // 28999
33973 o9.view = ow974244559;
33974 // undefined
33975 o9 = null;
33976 // 29008
33977 f974244559_2566.returns.push(undefined);
33978 // 29011
33979 f974244559_14.returns.push(undefined);
33980 // 29012
33981 f974244559_12.returns.push(119);
33982 // 29015
33983 o9 = {};
33984 // 29018
33985 o9.srcElement = o17;
33986 // 29020
33987 o9.target = o17;
33988 // 29027
33989 f974244559_519.returns.push(null);
33990 // 29033
33991 f974244559_519.returns.push(null);
33992 // 29039
33993 f974244559_519.returns.push(null);
33994 // 29045
33995 f974244559_519.returns.push(null);
33996 // 29051
33997 f974244559_519.returns.push(null);
33998 // 29057
33999 f974244559_519.returns.push(null);
34000 // 29063
34001 f974244559_519.returns.push(null);
34002 // 29069
34003 f974244559_519.returns.push(null);
34004 // 29075
34005 f974244559_519.returns.push(null);
34006 // 29080
34007 o13 = {};
34008 // 29081
34009 o9.relatedTarget = o13;
34010 // 29082
34011 o18 = {};
34012 // 29083
34013 o13.parentNode = o18;
34014 // 29084
34015 o13.nodeType = 1;
34016 // 29085
34017 o13.getAttributeNode = f974244559_519;
34018 // 29087
34019 f974244559_519.returns.push(null);
34020 // 29089
34021 o18.parentNode = o38;
34022 // 29090
34023 o18.nodeType = 1;
34024 // 29091
34025 o18.getAttributeNode = f974244559_519;
34026 // undefined
34027 o18 = null;
34028 // 29093
34029 f974244559_519.returns.push(null);
34030 // 29095
34031 o38.parentNode = o67;
34032 // undefined
34033 o67 = null;
34034 // 29096
34035 o38.nodeType = 1;
34036 // 29097
34037 o38.getAttributeNode = f974244559_519;
34038 // undefined
34039 o38 = null;
34040 // 29099
34041 f974244559_519.returns.push(null);
34042 // 29105
34043 f974244559_519.returns.push(null);
34044 // 29111
34045 f974244559_519.returns.push(null);
34046 // 29117
34047 f974244559_519.returns.push(null);
34048 // 29123
34049 f974244559_519.returns.push(null);
34050 // 29129
34051 f974244559_519.returns.push(null);
34052 // 29135
34053 f974244559_519.returns.push(null);
34054 // 29141
34055 f974244559_519.returns.push(null);
34056 // 29147
34057 f974244559_519.returns.push(null);
34058 // 29153
34059 f974244559_519.returns.push(null);
34060 // 29159
34061 f974244559_519.returns.push(null);
34062 // 29165
34063 f974244559_519.returns.push(null);
34064 // 29171
34065 f974244559_519.returns.push(null);
34066 // 29177
34067 f974244559_519.returns.push(null);
34068 // 29183
34069 f974244559_519.returns.push(null);
34070 // 29188
34071 o9.cancelBubble = false;
34072 // 29189
34073 o9.returnValue = true;
34074 // undefined
34075 o9 = null;
34076 // 29190
34077 o9 = {};
34078 // 29193
34079 o9.cancelBubble = false;
34080 // 29196
34081 f974244559_471.returns.push(1373491308557);
34082 // 29199
34083 f974244559_1202.returns.push(undefined);
34084 // 29201
34085 o9.returnValue = true;
34086 // 29204
34087 o9.srcElement = o13;
34088 // 29206
34089 o9.target = o13;
34090 // 29213
34091 f974244559_519.returns.push(null);
34092 // 29219
34093 f974244559_519.returns.push(null);
34094 // 29225
34095 f974244559_519.returns.push(null);
34096 // 29231
34097 f974244559_519.returns.push(null);
34098 // 29237
34099 f974244559_519.returns.push(null);
34100 // 29243
34101 f974244559_519.returns.push(null);
34102 // 29249
34103 f974244559_519.returns.push(null);
34104 // 29255
34105 f974244559_519.returns.push(null);
34106 // 29261
34107 f974244559_519.returns.push(null);
34108 // 29267
34109 f974244559_519.returns.push(null);
34110 // 29273
34111 f974244559_519.returns.push(null);
34112 // 29279
34113 f974244559_519.returns.push(null);
34114 // 29285
34115 f974244559_519.returns.push(null);
34116 // 29291
34117 f974244559_519.returns.push(null);
34118 // 29297
34119 f974244559_519.returns.push(null);
34120 // 29303
34121 f974244559_519.returns.push(null);
34122 // 29309
34123 f974244559_519.returns.push(null);
34124 // 29314
34125 o9.relatedTarget = o17;
34126 // undefined
34127 o9 = null;
34128 // undefined
34129 o17 = null;
34130 // 29317
34131 o9 = {};
34132 // 29321
34133 f974244559_471.returns.push(1373491308565);
34134 // 29322
34135 o9.cancelBubble = false;
34136 // 29323
34137 o9.returnValue = true;
34138 // 29326
34139 o9.srcElement = o13;
34140 // 29328
34141 o9.target = o13;
34142 // 29335
34143 f974244559_519.returns.push(null);
34144 // 29341
34145 f974244559_519.returns.push(null);
34146 // 29347
34147 f974244559_519.returns.push(null);
34148 // 29353
34149 f974244559_519.returns.push(null);
34150 // 29359
34151 f974244559_519.returns.push(null);
34152 // 29365
34153 f974244559_519.returns.push(null);
34154 // 29371
34155 f974244559_519.returns.push(null);
34156 // 29377
34157 f974244559_519.returns.push(null);
34158 // 29383
34159 f974244559_519.returns.push(null);
34160 // 29389
34161 f974244559_519.returns.push(null);
34162 // 29395
34163 f974244559_519.returns.push(null);
34164 // 29401
34165 f974244559_519.returns.push(null);
34166 // 29407
34167 f974244559_519.returns.push(null);
34168 // 29413
34169 f974244559_519.returns.push(null);
34170 // 29419
34171 f974244559_519.returns.push(null);
34172 // 29425
34173 f974244559_519.returns.push(null);
34174 // 29431
34175 f974244559_519.returns.push(null);
34176 // 29436
34177 o9.JSBNG__screenX = 859;
34178 // 29437
34179 o9.JSBNG__screenY = 266;
34180 // 29438
34181 o9.altKey = false;
34182 // 29439
34183 o9.bubbles = true;
34184 // 29440
34185 o9.button = 0;
34186 // 29441
34187 o9.buttons = void 0;
34188 // 29442
34189 o9.cancelable = false;
34190 // 29443
34191 o9.clientX = 842;
34192 // 29444
34193 o9.clientY = 162;
34194 // 29445
34195 o9.ctrlKey = false;
34196 // 29446
34197 o9.currentTarget = o0;
34198 // 29447
34199 o9.defaultPrevented = false;
34200 // 29448
34201 o9.detail = 0;
34202 // 29449
34203 o9.eventPhase = 3;
34204 // 29450
34205 o9.isTrusted = void 0;
34206 // 29451
34207 o9.metaKey = false;
34208 // 29452
34209 o9.pageX = 842;
34210 // 29453
34211 o9.pageY = 162;
34212 // 29454
34213 o9.relatedTarget = null;
34214 // 29455
34215 o9.fromElement = null;
34216 // 29458
34217 o9.shiftKey = false;
34218 // 29461
34219 o9.timeStamp = 1373491308565;
34220 // 29462
34221 o9.type = "mousemove";
34222 // 29463
34223 o9.view = ow974244559;
34224 // undefined
34225 o9 = null;
34226 // 29472
34227 f974244559_2566.returns.push(undefined);
34228 // 29475
34229 f974244559_14.returns.push(undefined);
34230 // 29476
34231 f974244559_12.returns.push(120);
34232 // 29479
34233 o9 = {};
34234 // 29483
34235 f974244559_471.returns.push(1373491308599);
34236 // 29484
34237 o9.cancelBubble = false;
34238 // 29485
34239 o9.returnValue = true;
34240 // 29488
34241 o9.srcElement = o13;
34242 // 29490
34243 o9.target = o13;
34244 // 29497
34245 f974244559_519.returns.push(null);
34246 // 29503
34247 f974244559_519.returns.push(null);
34248 // 29509
34249 f974244559_519.returns.push(null);
34250 // 29515
34251 f974244559_519.returns.push(null);
34252 // 29521
34253 f974244559_519.returns.push(null);
34254 // 29527
34255 f974244559_519.returns.push(null);
34256 // 29533
34257 f974244559_519.returns.push(null);
34258 // 29539
34259 f974244559_519.returns.push(null);
34260 // 29545
34261 f974244559_519.returns.push(null);
34262 // 29551
34263 f974244559_519.returns.push(null);
34264 // 29557
34265 f974244559_519.returns.push(null);
34266 // 29563
34267 f974244559_519.returns.push(null);
34268 // 29569
34269 f974244559_519.returns.push(null);
34270 // 29575
34271 f974244559_519.returns.push(null);
34272 // 29581
34273 f974244559_519.returns.push(null);
34274 // 29587
34275 f974244559_519.returns.push(null);
34276 // 29593
34277 f974244559_519.returns.push(null);
34278 // 29598
34279 o9.JSBNG__screenX = 728;
34280 // 29599
34281 o9.JSBNG__screenY = 353;
34282 // 29600
34283 o9.altKey = false;
34284 // 29601
34285 o9.bubbles = true;
34286 // 29602
34287 o9.button = 0;
34288 // 29603
34289 o9.buttons = void 0;
34290 // 29604
34291 o9.cancelable = false;
34292 // 29605
34293 o9.clientX = 711;
34294 // 29606
34295 o9.clientY = 249;
34296 // 29607
34297 o9.ctrlKey = false;
34298 // 29608
34299 o9.currentTarget = o0;
34300 // 29609
34301 o9.defaultPrevented = false;
34302 // 29610
34303 o9.detail = 0;
34304 // 29611
34305 o9.eventPhase = 3;
34306 // 29612
34307 o9.isTrusted = void 0;
34308 // 29613
34309 o9.metaKey = false;
34310 // 29614
34311 o9.pageX = 711;
34312 // 29615
34313 o9.pageY = 249;
34314 // 29616
34315 o9.relatedTarget = null;
34316 // 29617
34317 o9.fromElement = null;
34318 // 29620
34319 o9.shiftKey = false;
34320 // 29623
34321 o9.timeStamp = 1373491308599;
34322 // 29624
34323 o9.type = "mousemove";
34324 // 29625
34325 o9.view = ow974244559;
34326 // undefined
34327 o9 = null;
34328 // 29634
34329 f974244559_2566.returns.push(undefined);
34330 // 29637
34331 f974244559_14.returns.push(undefined);
34332 // 29638
34333 f974244559_12.returns.push(121);
34334 // 29641
34335 o9 = {};
34336 // 29644
34337 o9.srcElement = o13;
34338 // 29646
34339 o9.target = o13;
34340 // 29653
34341 f974244559_519.returns.push(null);
34342 // 29659
34343 f974244559_519.returns.push(null);
34344 // 29665
34345 f974244559_519.returns.push(null);
34346 // 29671
34347 f974244559_519.returns.push(null);
34348 // 29677
34349 f974244559_519.returns.push(null);
34350 // 29683
34351 f974244559_519.returns.push(null);
34352 // 29689
34353 f974244559_519.returns.push(null);
34354 // 29695
34355 f974244559_519.returns.push(null);
34356 // 29701
34357 f974244559_519.returns.push(null);
34358 // 29707
34359 f974244559_519.returns.push(null);
34360 // 29713
34361 f974244559_519.returns.push(null);
34362 // 29719
34363 f974244559_519.returns.push(null);
34364 // 29725
34365 f974244559_519.returns.push(null);
34366 // 29731
34367 f974244559_519.returns.push(null);
34368 // 29737
34369 f974244559_519.returns.push(null);
34370 // 29743
34371 f974244559_519.returns.push(null);
34372 // 29749
34373 f974244559_519.returns.push(null);
34374 // 29754
34375 o9.relatedTarget = o41;
34376 // 29755
34377 o17 = {};
34378 // 29756
34379 o41.parentNode = o17;
34380 // 29757
34381 o41.nodeType = 1;
34382 // 29758
34383 o41.getAttributeNode = f974244559_519;
34384 // 29760
34385 f974244559_519.returns.push(null);
34386 // 29762
34387 o18 = {};
34388 // 29763
34389 o17.parentNode = o18;
34390 // 29764
34391 o17.nodeType = 1;
34392 // 29765
34393 o17.getAttributeNode = f974244559_519;
34394 // undefined
34395 o17 = null;
34396 // 29767
34397 f974244559_519.returns.push(null);
34398 // 29769
34399 o18.parentNode = o66;
34400 // undefined
34401 o66 = null;
34402 // 29770
34403 o18.nodeType = 1;
34404 // 29771
34405 o18.getAttributeNode = f974244559_519;
34406 // undefined
34407 o18 = null;
34408 // 29773
34409 f974244559_519.returns.push(null);
34410 // 29779
34411 f974244559_519.returns.push(null);
34412 // 29785
34413 f974244559_519.returns.push(null);
34414 // 29791
34415 f974244559_519.returns.push(null);
34416 // 29797
34417 f974244559_519.returns.push(null);
34418 // 29803
34419 f974244559_519.returns.push(null);
34420 // 29809
34421 f974244559_519.returns.push(null);
34422 // 29815
34423 f974244559_519.returns.push(null);
34424 // 29821
34425 f974244559_519.returns.push(null);
34426 // 29827
34427 f974244559_519.returns.push(null);
34428 // 29833
34429 f974244559_519.returns.push(null);
34430 // 29839
34431 f974244559_519.returns.push(null);
34432 // 29845
34433 f974244559_519.returns.push(null);
34434 // 29851
34435 f974244559_519.returns.push(null);
34436 // 29857
34437 f974244559_519.returns.push(null);
34438 // 29863
34439 f974244559_519.returns.push(null);
34440 // 29868
34441 o9.cancelBubble = false;
34442 // 29869
34443 o9.returnValue = true;
34444 // undefined
34445 o9 = null;
34446 // 29870
34447 o9 = {};
34448 // 29873
34449 o9.cancelBubble = false;
34450 // 29876
34451 f974244559_471.returns.push(1373491308647);
34452 // 29879
34453 f974244559_1202.returns.push(undefined);
34454 // 29881
34455 o9.returnValue = true;
34456 // 29884
34457 o9.srcElement = o41;
34458 // 29886
34459 o9.target = o41;
34460 // 29893
34461 f974244559_519.returns.push(null);
34462 // 29899
34463 f974244559_519.returns.push(null);
34464 // 29905
34465 f974244559_519.returns.push(null);
34466 // 29911
34467 f974244559_519.returns.push(null);
34468 // 29917
34469 f974244559_519.returns.push(null);
34470 // 29923
34471 f974244559_519.returns.push(null);
34472 // 29929
34473 f974244559_519.returns.push(null);
34474 // 29935
34475 f974244559_519.returns.push(null);
34476 // 29941
34477 f974244559_519.returns.push(null);
34478 // 29947
34479 f974244559_519.returns.push(null);
34480 // 29953
34481 f974244559_519.returns.push(null);
34482 // 29959
34483 f974244559_519.returns.push(null);
34484 // 29965
34485 f974244559_519.returns.push(null);
34486 // 29971
34487 f974244559_519.returns.push(null);
34488 // 29977
34489 f974244559_519.returns.push(null);
34490 // 29983
34491 f974244559_519.returns.push(null);
34492 // 29989
34493 f974244559_519.returns.push(null);
34494 // 29995
34495 f974244559_519.returns.push(null);
34496 // 30000
34497 o9.relatedTarget = o13;
34498 // undefined
34499 o9 = null;
34500 // undefined
34501 o13 = null;
34502 // 30003
34503 o9 = {};
34504 // 30007
34505 f974244559_471.returns.push(1373491308670);
34506 // 30008
34507 o9.cancelBubble = false;
34508 // 30009
34509 o9.returnValue = true;
34510 // 30012
34511 o9.srcElement = o41;
34512 // 30014
34513 o9.target = o41;
34514 // 30021
34515 f974244559_519.returns.push(null);
34516 // 30027
34517 f974244559_519.returns.push(null);
34518 // 30033
34519 f974244559_519.returns.push(null);
34520 // 30039
34521 f974244559_519.returns.push(null);
34522 // 30045
34523 f974244559_519.returns.push(null);
34524 // 30051
34525 f974244559_519.returns.push(null);
34526 // 30057
34527 f974244559_519.returns.push(null);
34528 // 30063
34529 f974244559_519.returns.push(null);
34530 // 30069
34531 f974244559_519.returns.push(null);
34532 // 30075
34533 f974244559_519.returns.push(null);
34534 // 30081
34535 f974244559_519.returns.push(null);
34536 // 30087
34537 f974244559_519.returns.push(null);
34538 // 30093
34539 f974244559_519.returns.push(null);
34540 // 30099
34541 f974244559_519.returns.push(null);
34542 // 30105
34543 f974244559_519.returns.push(null);
34544 // 30111
34545 f974244559_519.returns.push(null);
34546 // 30117
34547 f974244559_519.returns.push(null);
34548 // 30123
34549 f974244559_519.returns.push(null);
34550 // 30128
34551 o9.JSBNG__screenX = 711;
34552 // 30129
34553 o9.JSBNG__screenY = 372;
34554 // 30130
34555 o9.altKey = false;
34556 // 30131
34557 o9.bubbles = true;
34558 // 30132
34559 o9.button = 0;
34560 // 30133
34561 o9.buttons = void 0;
34562 // 30134
34563 o9.cancelable = false;
34564 // 30135
34565 o9.clientX = 694;
34566 // 30136
34567 o9.clientY = 268;
34568 // 30137
34569 o9.ctrlKey = false;
34570 // 30138
34571 o9.currentTarget = o0;
34572 // 30139
34573 o9.defaultPrevented = false;
34574 // 30140
34575 o9.detail = 0;
34576 // 30141
34577 o9.eventPhase = 3;
34578 // 30142
34579 o9.isTrusted = void 0;
34580 // 30143
34581 o9.metaKey = false;
34582 // 30144
34583 o9.pageX = 694;
34584 // 30145
34585 o9.pageY = 268;
34586 // 30146
34587 o9.relatedTarget = null;
34588 // 30147
34589 o9.fromElement = null;
34590 // 30150
34591 o9.shiftKey = false;
34592 // 30153
34593 o9.timeStamp = 1373491308669;
34594 // 30154
34595 o9.type = "mousemove";
34596 // 30155
34597 o9.view = ow974244559;
34598 // undefined
34599 o9 = null;
34600 // 30164
34601 f974244559_2566.returns.push(undefined);
34602 // 30167
34603 f974244559_14.returns.push(undefined);
34604 // 30168
34605 f974244559_12.returns.push(122);
34606 // 30171
34607 o9 = {};
34608 // 30174
34609 o9.srcElement = o41;
34610 // 30176
34611 o9.target = o41;
34612 // 30183
34613 f974244559_519.returns.push(null);
34614 // 30189
34615 f974244559_519.returns.push(null);
34616 // 30195
34617 f974244559_519.returns.push(null);
34618 // 30201
34619 f974244559_519.returns.push(null);
34620 // 30207
34621 f974244559_519.returns.push(null);
34622 // 30213
34623 f974244559_519.returns.push(null);
34624 // 30219
34625 f974244559_519.returns.push(null);
34626 // 30225
34627 f974244559_519.returns.push(null);
34628 // 30231
34629 f974244559_519.returns.push(null);
34630 // 30237
34631 f974244559_519.returns.push(null);
34632 // 30243
34633 f974244559_519.returns.push(null);
34634 // 30249
34635 f974244559_519.returns.push(null);
34636 // 30255
34637 f974244559_519.returns.push(null);
34638 // 30261
34639 f974244559_519.returns.push(null);
34640 // 30267
34641 f974244559_519.returns.push(null);
34642 // 30273
34643 f974244559_519.returns.push(null);
34644 // 30279
34645 f974244559_519.returns.push(null);
34646 // 30285
34647 f974244559_519.returns.push(null);
34648 // 30290
34649 o9.relatedTarget = o103;
34650 // 30295
34651 f974244559_519.returns.push(null);
34652 // 30301
34653 f974244559_519.returns.push(null);
34654 // 30307
34655 f974244559_519.returns.push(null);
34656 // 30313
34657 f974244559_519.returns.push(null);
34658 // 30319
34659 f974244559_519.returns.push(null);
34660 // 30325
34661 f974244559_519.returns.push(null);
34662 // 30331
34663 f974244559_519.returns.push(null);
34664 // 30337
34665 f974244559_519.returns.push(null);
34666 // 30343
34667 f974244559_519.returns.push(null);
34668 // 30349
34669 f974244559_519.returns.push(null);
34670 // 30355
34671 f974244559_519.returns.push(null);
34672 // 30361
34673 f974244559_519.returns.push(null);
34674 // 30367
34675 f974244559_519.returns.push(null);
34676 // 30373
34677 f974244559_519.returns.push(null);
34678 // 30379
34679 f974244559_519.returns.push(null);
34680 // 30385
34681 f974244559_519.returns.push(null);
34682 // 30391
34683 f974244559_519.returns.push(null);
34684 // 30396
34685 o9.cancelBubble = false;
34686 // 30397
34687 o9.returnValue = true;
34688 // undefined
34689 o9 = null;
34690 // 30398
34691 o9 = {};
34692 // 30401
34693 o9.cancelBubble = false;
34694 // 30404
34695 f974244559_471.returns.push(1373491308707);
34696 // 30407
34697 f974244559_1202.returns.push(undefined);
34698 // 30409
34699 o9.returnValue = true;
34700 // 30412
34701 o9.srcElement = o103;
34702 // 30414
34703 o9.target = o103;
34704 // 30421
34705 f974244559_519.returns.push(null);
34706 // 30427
34707 f974244559_519.returns.push(null);
34708 // 30433
34709 f974244559_519.returns.push(null);
34710 // 30439
34711 f974244559_519.returns.push(null);
34712 // 30445
34713 f974244559_519.returns.push(null);
34714 // 30451
34715 f974244559_519.returns.push(null);
34716 // 30457
34717 f974244559_519.returns.push(null);
34718 // 30463
34719 f974244559_519.returns.push(null);
34720 // 30469
34721 f974244559_519.returns.push(null);
34722 // 30475
34723 f974244559_519.returns.push(null);
34724 // 30481
34725 f974244559_519.returns.push(null);
34726 // 30487
34727 f974244559_519.returns.push(null);
34728 // 30493
34729 f974244559_519.returns.push(null);
34730 // 30499
34731 f974244559_519.returns.push(null);
34732 // 30505
34733 f974244559_519.returns.push(null);
34734 // 30511
34735 f974244559_519.returns.push(null);
34736 // 30517
34737 f974244559_519.returns.push(null);
34738 // 30522
34739 o9.relatedTarget = o41;
34740 // undefined
34741 o9 = null;
34742 // undefined
34743 o41 = null;
34744 // 30525
34745 o9 = {};
34746 // 30529
34747 f974244559_471.returns.push(1373491308714);
34748 // 30530
34749 o9.cancelBubble = false;
34750 // 30531
34751 o9.returnValue = true;
34752 // 30534
34753 o9.srcElement = o103;
34754 // 30536
34755 o9.target = o103;
34756 // 30543
34757 f974244559_519.returns.push(null);
34758 // 30549
34759 f974244559_519.returns.push(null);
34760 // 30555
34761 f974244559_519.returns.push(null);
34762 // 30561
34763 f974244559_519.returns.push(null);
34764 // 30567
34765 f974244559_519.returns.push(null);
34766 // 30573
34767 f974244559_519.returns.push(null);
34768 // 30579
34769 f974244559_519.returns.push(null);
34770 // 30585
34771 f974244559_519.returns.push(null);
34772 // 30591
34773 f974244559_519.returns.push(null);
34774 // 30597
34775 f974244559_519.returns.push(null);
34776 // 30603
34777 f974244559_519.returns.push(null);
34778 // 30609
34779 f974244559_519.returns.push(null);
34780 // 30615
34781 f974244559_519.returns.push(null);
34782 // 30621
34783 f974244559_519.returns.push(null);
34784 // 30627
34785 f974244559_519.returns.push(null);
34786 // 30633
34787 f974244559_519.returns.push(null);
34788 // 30639
34789 f974244559_519.returns.push(null);
34790 // 30644
34791 o9.JSBNG__screenX = 610;
34792 // 30645
34793 o9.JSBNG__screenY = 521;
34794 // 30646
34795 o9.altKey = false;
34796 // 30647
34797 o9.bubbles = true;
34798 // 30648
34799 o9.button = 0;
34800 // 30649
34801 o9.buttons = void 0;
34802 // 30650
34803 o9.cancelable = false;
34804 // 30651
34805 o9.clientX = 593;
34806 // 30652
34807 o9.clientY = 417;
34808 // 30653
34809 o9.ctrlKey = false;
34810 // 30654
34811 o9.currentTarget = o0;
34812 // 30655
34813 o9.defaultPrevented = false;
34814 // 30656
34815 o9.detail = 0;
34816 // 30657
34817 o9.eventPhase = 3;
34818 // 30658
34819 o9.isTrusted = void 0;
34820 // 30659
34821 o9.metaKey = false;
34822 // 30660
34823 o9.pageX = 593;
34824 // 30661
34825 o9.pageY = 417;
34826 // 30662
34827 o9.relatedTarget = null;
34828 // 30663
34829 o9.fromElement = null;
34830 // 30666
34831 o9.shiftKey = false;
34832 // 30669
34833 o9.timeStamp = 1373491308714;
34834 // 30670
34835 o9.type = "mousemove";
34836 // 30671
34837 o9.view = ow974244559;
34838 // undefined
34839 o9 = null;
34840 // 30680
34841 f974244559_2566.returns.push(undefined);
34842 // 30683
34843 f974244559_14.returns.push(undefined);
34844 // 30684
34845 f974244559_12.returns.push(123);
34846 // 30687
34847 o9 = {};
34848 // 30690
34849 o9.srcElement = o103;
34850 // 30692
34851 o9.target = o103;
34852 // 30699
34853 f974244559_519.returns.push(null);
34854 // 30705
34855 f974244559_519.returns.push(null);
34856 // 30711
34857 f974244559_519.returns.push(null);
34858 // 30717
34859 f974244559_519.returns.push(null);
34860 // 30723
34861 f974244559_519.returns.push(null);
34862 // 30729
34863 f974244559_519.returns.push(null);
34864 // 30735
34865 f974244559_519.returns.push(null);
34866 // 30741
34867 f974244559_519.returns.push(null);
34868 // 30747
34869 f974244559_519.returns.push(null);
34870 // 30753
34871 f974244559_519.returns.push(null);
34872 // 30759
34873 f974244559_519.returns.push(null);
34874 // 30765
34875 f974244559_519.returns.push(null);
34876 // 30771
34877 f974244559_519.returns.push(null);
34878 // 30777
34879 f974244559_519.returns.push(null);
34880 // 30783
34881 f974244559_519.returns.push(null);
34882 // 30789
34883 f974244559_519.returns.push(null);
34884 // 30795
34885 f974244559_519.returns.push(null);
34886 // 30800
34887 o9.relatedTarget = o10;
34888 // 30802
34889 o10.nodeType = 1;
34890 // 30803
34891 o10.getAttributeNode = f974244559_519;
34892 // 30805
34893 f974244559_519.returns.push(null);
34894 // 30808
34895 o8.nodeType = 1;
34896 // 30809
34897 o8.getAttributeNode = f974244559_519;
34898 // undefined
34899 o8 = null;
34900 // 30811
34901 f974244559_519.returns.push(null);
34902 // 30814
34903 o43.nodeType = 1;
34904 // 30815
34905 o43.getAttributeNode = f974244559_519;
34906 // undefined
34907 o43 = null;
34908 // 30817
34909 f974244559_519.returns.push(null);
34910 // 30820
34911 o11.nodeType = 1;
34912 // 30821
34913 o11.getAttributeNode = f974244559_519;
34914 // undefined
34915 o11 = null;
34916 // 30823
34917 f974244559_519.returns.push(null);
34918 // 30829
34919 f974244559_519.returns.push(null);
34920 // 30835
34921 f974244559_519.returns.push(null);
34922 // 30841
34923 f974244559_519.returns.push(null);
34924 // 30847
34925 f974244559_519.returns.push(null);
34926 // 30853
34927 f974244559_519.returns.push(null);
34928 // 30859
34929 f974244559_519.returns.push(null);
34930 // 30865
34931 f974244559_519.returns.push(null);
34932 // 30871
34933 f974244559_519.returns.push(null);
34934 // 30877
34935 f974244559_519.returns.push(null);
34936 // 30883
34937 f974244559_519.returns.push(null);
34938 // 30889
34939 f974244559_519.returns.push(null);
34940 // 30894
34941 o9.cancelBubble = false;
34942 // 30895
34943 o9.returnValue = true;
34944 // undefined
34945 o9 = null;
34946 // 30896
34947 o8 = {};
34948 // 30899
34949 o8.cancelBubble = false;
34950 // 30902
34951 f974244559_471.returns.push(1373491308777);
34952 // 30905
34953 f974244559_1202.returns.push(undefined);
34954 // 30907
34955 o8.returnValue = true;
34956 // 30910
34957 o8.srcElement = o10;
34958 // 30912
34959 o8.target = o10;
34960 // 30919
34961 f974244559_519.returns.push(null);
34962 // 30925
34963 f974244559_519.returns.push(null);
34964 // 30931
34965 f974244559_519.returns.push(null);
34966 // 30937
34967 f974244559_519.returns.push(null);
34968 // 30943
34969 f974244559_519.returns.push(null);
34970 // 30949
34971 f974244559_519.returns.push(null);
34972 // 30955
34973 f974244559_519.returns.push(null);
34974 // 30961
34975 f974244559_519.returns.push(null);
34976 // 30967
34977 f974244559_519.returns.push(null);
34978 // 30973
34979 f974244559_519.returns.push(null);
34980 // 30979
34981 f974244559_519.returns.push(null);
34982 // 30985
34983 f974244559_519.returns.push(null);
34984 // 30991
34985 f974244559_519.returns.push(null);
34986 // 30997
34987 f974244559_519.returns.push(null);
34988 // 31003
34989 f974244559_519.returns.push(null);
34990 // 31008
34991 o8.relatedTarget = o103;
34992 // undefined
34993 o8 = null;
34994 // 31011
34995 o8 = {};
34996 // 31015
34997 f974244559_471.returns.push(1373491308789);
34998 // 31016
34999 o8.cancelBubble = false;
35000 // 31017
35001 o8.returnValue = true;
35002 // 31020
35003 o8.srcElement = o10;
35004 // 31022
35005 o8.target = o10;
35006 // 31029
35007 f974244559_519.returns.push(null);
35008 // 31035
35009 f974244559_519.returns.push(null);
35010 // 31041
35011 f974244559_519.returns.push(null);
35012 // 31047
35013 f974244559_519.returns.push(null);
35014 // 31053
35015 f974244559_519.returns.push(null);
35016 // 31059
35017 f974244559_519.returns.push(null);
35018 // 31065
35019 f974244559_519.returns.push(null);
35020 // 31071
35021 f974244559_519.returns.push(null);
35022 // 31077
35023 f974244559_519.returns.push(null);
35024 // 31083
35025 f974244559_519.returns.push(null);
35026 // 31089
35027 f974244559_519.returns.push(null);
35028 // 31095
35029 f974244559_519.returns.push(null);
35030 // 31101
35031 f974244559_519.returns.push(null);
35032 // 31107
35033 f974244559_519.returns.push(null);
35034 // 31113
35035 f974244559_519.returns.push(null);
35036 // 31118
35037 o8.JSBNG__screenX = 541;
35038 // 31119
35039 o8.JSBNG__screenY = 620;
35040 // 31120
35041 o8.altKey = false;
35042 // 31121
35043 o8.bubbles = true;
35044 // 31122
35045 o8.button = 0;
35046 // 31123
35047 o8.buttons = void 0;
35048 // 31124
35049 o8.cancelable = false;
35050 // 31125
35051 o8.clientX = 524;
35052 // 31126
35053 o8.clientY = 516;
35054 // 31127
35055 o8.ctrlKey = false;
35056 // 31128
35057 o8.currentTarget = o0;
35058 // 31129
35059 o8.defaultPrevented = false;
35060 // 31130
35061 o8.detail = 0;
35062 // 31131
35063 o8.eventPhase = 3;
35064 // 31132
35065 o8.isTrusted = void 0;
35066 // 31133
35067 o8.metaKey = false;
35068 // 31134
35069 o8.pageX = 524;
35070 // 31135
35071 o8.pageY = 516;
35072 // 31136
35073 o8.relatedTarget = null;
35074 // 31137
35075 o8.fromElement = null;
35076 // 31140
35077 o8.shiftKey = false;
35078 // 31143
35079 o8.timeStamp = 1373491308789;
35080 // 31144
35081 o8.type = "mousemove";
35082 // 31145
35083 o8.view = ow974244559;
35084 // undefined
35085 o8 = null;
35086 // 31154
35087 f974244559_2566.returns.push(undefined);
35088 // 31157
35089 f974244559_14.returns.push(undefined);
35090 // 31158
35091 f974244559_12.returns.push(124);
35092 // 31161
35093 o8 = {};
35094 // 31165
35095 f974244559_471.returns.push(1373491308810);
35096 // 31166
35097 o8.cancelBubble = false;
35098 // 31167
35099 o8.returnValue = true;
35100 // 31170
35101 o8.srcElement = o10;
35102 // 31172
35103 o8.target = o10;
35104 // 31179
35105 f974244559_519.returns.push(null);
35106 // 31185
35107 f974244559_519.returns.push(null);
35108 // 31191
35109 f974244559_519.returns.push(null);
35110 // 31197
35111 f974244559_519.returns.push(null);
35112 // 31203
35113 f974244559_519.returns.push(null);
35114 // 31209
35115 f974244559_519.returns.push(null);
35116 // 31215
35117 f974244559_519.returns.push(null);
35118 // 31221
35119 f974244559_519.returns.push(null);
35120 // 31227
35121 f974244559_519.returns.push(null);
35122 // 31233
35123 f974244559_519.returns.push(null);
35124 // 31239
35125 f974244559_519.returns.push(null);
35126 // 31245
35127 f974244559_519.returns.push(null);
35128 // 31251
35129 f974244559_519.returns.push(null);
35130 // 31257
35131 f974244559_519.returns.push(null);
35132 // 31263
35133 f974244559_519.returns.push(null);
35134 // 31268
35135 o8.JSBNG__screenX = 540;
35136 // 31269
35137 o8.JSBNG__screenY = 621;
35138 // 31270
35139 o8.altKey = false;
35140 // 31271
35141 o8.bubbles = true;
35142 // 31272
35143 o8.button = 0;
35144 // 31273
35145 o8.buttons = void 0;
35146 // 31274
35147 o8.cancelable = false;
35148 // 31275
35149 o8.clientX = 523;
35150 // 31276
35151 o8.clientY = 517;
35152 // 31277
35153 o8.ctrlKey = false;
35154 // 31278
35155 o8.currentTarget = o0;
35156 // 31279
35157 o8.defaultPrevented = false;
35158 // 31280
35159 o8.detail = 0;
35160 // 31281
35161 o8.eventPhase = 3;
35162 // 31282
35163 o8.isTrusted = void 0;
35164 // 31283
35165 o8.metaKey = false;
35166 // 31284
35167 o8.pageX = 523;
35168 // 31285
35169 o8.pageY = 517;
35170 // 31286
35171 o8.relatedTarget = null;
35172 // 31287
35173 o8.fromElement = null;
35174 // 31290
35175 o8.shiftKey = false;
35176 // 31293
35177 o8.timeStamp = 1373491308810;
35178 // 31294
35179 o8.type = "mousemove";
35180 // 31295
35181 o8.view = ow974244559;
35182 // undefined
35183 o8 = null;
35184 // 31304
35185 f974244559_2566.returns.push(undefined);
35186 // 31307
35187 f974244559_14.returns.push(undefined);
35188 // 31308
35189 f974244559_12.returns.push(125);
35190 // 31311
35191 o8 = {};
35192 // 31315
35193 f974244559_471.returns.push(1373491308923);
35194 // 31316
35195 o8.cancelBubble = false;
35196 // 31317
35197 o8.returnValue = true;
35198 // 31320
35199 o8.srcElement = o10;
35200 // 31322
35201 o8.target = o10;
35202 // 31329
35203 f974244559_519.returns.push(null);
35204 // 31335
35205 f974244559_519.returns.push(null);
35206 // 31341
35207 f974244559_519.returns.push(null);
35208 // 31347
35209 f974244559_519.returns.push(null);
35210 // 31353
35211 f974244559_519.returns.push(null);
35212 // 31359
35213 f974244559_519.returns.push(null);
35214 // 31365
35215 f974244559_519.returns.push(null);
35216 // 31371
35217 f974244559_519.returns.push(null);
35218 // 31377
35219 f974244559_519.returns.push(null);
35220 // 31383
35221 f974244559_519.returns.push(null);
35222 // 31389
35223 f974244559_519.returns.push(null);
35224 // 31395
35225 f974244559_519.returns.push(null);
35226 // 31401
35227 f974244559_519.returns.push(null);
35228 // 31407
35229 f974244559_519.returns.push(null);
35230 // 31413
35231 f974244559_519.returns.push(null);
35232 // 31418
35233 o8.JSBNG__screenX = 540;
35234 // 31419
35235 o8.JSBNG__screenY = 615;
35236 // 31420
35237 o8.altKey = false;
35238 // 31421
35239 o8.bubbles = true;
35240 // 31422
35241 o8.button = 0;
35242 // 31423
35243 o8.buttons = void 0;
35244 // 31424
35245 o8.cancelable = false;
35246 // 31425
35247 o8.clientX = 523;
35248 // 31426
35249 o8.clientY = 511;
35250 // 31427
35251 o8.ctrlKey = false;
35252 // 31428
35253 o8.currentTarget = o0;
35254 // 31429
35255 o8.defaultPrevented = false;
35256 // 31430
35257 o8.detail = 0;
35258 // 31431
35259 o8.eventPhase = 3;
35260 // 31432
35261 o8.isTrusted = void 0;
35262 // 31433
35263 o8.metaKey = false;
35264 // 31434
35265 o8.pageX = 523;
35266 // 31435
35267 o8.pageY = 511;
35268 // 31436
35269 o8.relatedTarget = null;
35270 // 31437
35271 o8.fromElement = null;
35272 // 31440
35273 o8.shiftKey = false;
35274 // 31443
35275 o8.timeStamp = 1373491308923;
35276 // 31444
35277 o8.type = "mousemove";
35278 // 31445
35279 o8.view = ow974244559;
35280 // undefined
35281 o8 = null;
35282 // 31454
35283 f974244559_2566.returns.push(undefined);
35284 // 31457
35285 f974244559_14.returns.push(undefined);
35286 // 31458
35287 f974244559_12.returns.push(126);
35288 // 31462
35289 f974244559_12.returns.push(127);
35290 // undefined
35291 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
35292 // 31467
35293 f974244559_471.returns.push(1373491308968);
35294 // 31468
35295 o8 = {};
35296 // 31471
35297 o8.srcElement = o10;
35298 // 31473
35299 o8.target = o10;
35300 // 31480
35301 f974244559_519.returns.push(null);
35302 // 31486
35303 f974244559_519.returns.push(null);
35304 // 31492
35305 f974244559_519.returns.push(null);
35306 // 31498
35307 f974244559_519.returns.push(null);
35308 // 31504
35309 f974244559_519.returns.push(null);
35310 // 31510
35311 f974244559_519.returns.push(null);
35312 // 31516
35313 f974244559_519.returns.push(null);
35314 // 31522
35315 f974244559_519.returns.push(null);
35316 // 31528
35317 f974244559_519.returns.push(null);
35318 // 31534
35319 f974244559_519.returns.push(null);
35320 // 31540
35321 f974244559_519.returns.push(null);
35322 // 31546
35323 f974244559_519.returns.push(null);
35324 // 31552
35325 f974244559_519.returns.push(null);
35326 // 31558
35327 f974244559_519.returns.push(null);
35328 // 31564
35329 f974244559_519.returns.push(null);
35330 // 31569
35331 o9 = {};
35332 // 31570
35333 o8.relatedTarget = o9;
35334 // 31571
35335 o9.parentNode = o104;
35336 // undefined
35337 o104 = null;
35338 // 31572
35339 o9.nodeType = 1;
35340 // 31573
35341 o9.getAttributeNode = f974244559_519;
35342 // 31575
35343 f974244559_519.returns.push(null);
35344 // 31581
35345 f974244559_519.returns.push(null);
35346 // 31587
35347 f974244559_519.returns.push(null);
35348 // 31593
35349 f974244559_519.returns.push(null);
35350 // 31599
35351 f974244559_519.returns.push(null);
35352 // 31605
35353 f974244559_519.returns.push(null);
35354 // 31611
35355 f974244559_519.returns.push(null);
35356 // 31617
35357 f974244559_519.returns.push(null);
35358 // 31623
35359 f974244559_519.returns.push(null);
35360 // 31629
35361 f974244559_519.returns.push(null);
35362 // 31635
35363 f974244559_519.returns.push(null);
35364 // 31641
35365 f974244559_519.returns.push(null);
35366 // 31647
35367 f974244559_519.returns.push(null);
35368 // 31653
35369 f974244559_519.returns.push(null);
35370 // 31659
35371 f974244559_519.returns.push(null);
35372 // 31664
35373 o8.cancelBubble = false;
35374 // 31665
35375 o8.returnValue = true;
35376 // undefined
35377 o8 = null;
35378 // 31666
35379 o8 = {};
35380 // 31669
35381 o8.cancelBubble = false;
35382 // 31672
35383 f974244559_471.returns.push(1373491308998);
35384 // 31677
35385 f974244559_471.returns.push(1373491308999);
35386 // 31681
35387 f974244559_471.returns.push(1373491308999);
35388 // 31685
35389 f974244559_1202.returns.push(undefined);
35390 // 31687
35391 o8.returnValue = true;
35392 // 31690
35393 o8.srcElement = o9;
35394 // 31692
35395 o8.target = o9;
35396 // 31699
35397 f974244559_519.returns.push(null);
35398 // 31705
35399 f974244559_519.returns.push(null);
35400 // 31711
35401 f974244559_519.returns.push(null);
35402 // 31717
35403 f974244559_519.returns.push(null);
35404 // 31723
35405 f974244559_519.returns.push(null);
35406 // 31729
35407 f974244559_519.returns.push(null);
35408 // 31735
35409 f974244559_519.returns.push(null);
35410 // 31741
35411 f974244559_519.returns.push(null);
35412 // 31747
35413 f974244559_519.returns.push(null);
35414 // 31753
35415 f974244559_519.returns.push(null);
35416 // 31759
35417 f974244559_519.returns.push(null);
35418 // 31765
35419 f974244559_519.returns.push(null);
35420 // 31771
35421 f974244559_519.returns.push(null);
35422 // 31777
35423 f974244559_519.returns.push(null);
35424 // 31783
35425 f974244559_519.returns.push(null);
35426 // 31788
35427 o8.relatedTarget = o10;
35428 // undefined
35429 o8 = null;
35430 // undefined
35431 o10 = null;
35432 // 31791
35433 o8 = {};
35434 // 31795
35435 f974244559_471.returns.push(1373491309006);
35436 // 31796
35437 o8.cancelBubble = false;
35438 // 31797
35439 o8.returnValue = true;
35440 // 31800
35441 o8.srcElement = o9;
35442 // 31802
35443 o8.target = o9;
35444 // 31809
35445 f974244559_519.returns.push(null);
35446 // 31815
35447 f974244559_519.returns.push(null);
35448 // 31821
35449 f974244559_519.returns.push(null);
35450 // 31827
35451 f974244559_519.returns.push(null);
35452 // 31833
35453 f974244559_519.returns.push(null);
35454 // 31839
35455 f974244559_519.returns.push(null);
35456 // 31845
35457 f974244559_519.returns.push(null);
35458 // 31851
35459 f974244559_519.returns.push(null);
35460 // 31857
35461 f974244559_519.returns.push(null);
35462 // 31863
35463 f974244559_519.returns.push(null);
35464 // 31869
35465 f974244559_519.returns.push(null);
35466 // 31875
35467 f974244559_519.returns.push(null);
35468 // 31881
35469 f974244559_519.returns.push(null);
35470 // 31887
35471 f974244559_519.returns.push(null);
35472 // 31893
35473 f974244559_519.returns.push(null);
35474 // 31898
35475 o8.JSBNG__screenX = 540;
35476 // 31899
35477 o8.JSBNG__screenY = 606;
35478 // 31900
35479 o8.altKey = false;
35480 // 31901
35481 o8.bubbles = true;
35482 // 31902
35483 o8.button = 0;
35484 // 31903
35485 o8.buttons = void 0;
35486 // 31904
35487 o8.cancelable = false;
35488 // 31905
35489 o8.clientX = 523;
35490 // 31906
35491 o8.clientY = 502;
35492 // 31907
35493 o8.ctrlKey = false;
35494 // 31908
35495 o8.currentTarget = o0;
35496 // 31909
35497 o8.defaultPrevented = false;
35498 // 31910
35499 o8.detail = 0;
35500 // 31911
35501 o8.eventPhase = 3;
35502 // 31912
35503 o8.isTrusted = void 0;
35504 // 31913
35505 o8.metaKey = false;
35506 // 31914
35507 o8.pageX = 523;
35508 // 31915
35509 o8.pageY = 502;
35510 // 31916
35511 o8.relatedTarget = null;
35512 // 31917
35513 o8.fromElement = null;
35514 // 31920
35515 o8.shiftKey = false;
35516 // 31923
35517 o8.timeStamp = 1373491309006;
35518 // 31924
35519 o8.type = "mousemove";
35520 // 31925
35521 o8.view = ow974244559;
35522 // undefined
35523 o8 = null;
35524 // 31934
35525 f974244559_2566.returns.push(undefined);
35526 // 31937
35527 f974244559_14.returns.push(undefined);
35528 // 31938
35529 f974244559_12.returns.push(128);
35530 // undefined
35531 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
35532 // 31942
35533 o8 = {};
35534 // 31945
35535 o8.srcElement = o9;
35536 // 31947
35537 o8.target = o9;
35538 // 31954
35539 f974244559_519.returns.push(null);
35540 // 31960
35541 f974244559_519.returns.push(null);
35542 // 31966
35543 f974244559_519.returns.push(null);
35544 // 31972
35545 f974244559_519.returns.push(null);
35546 // 31978
35547 f974244559_519.returns.push(null);
35548 // 31984
35549 f974244559_519.returns.push(null);
35550 // 31990
35551 f974244559_519.returns.push(null);
35552 // 31996
35553 f974244559_519.returns.push(null);
35554 // 32002
35555 f974244559_519.returns.push(null);
35556 // 32008
35557 f974244559_519.returns.push(null);
35558 // 32014
35559 f974244559_519.returns.push(null);
35560 // 32020
35561 f974244559_519.returns.push(null);
35562 // 32026
35563 f974244559_519.returns.push(null);
35564 // 32032
35565 f974244559_519.returns.push(null);
35566 // 32038
35567 f974244559_519.returns.push(null);
35568 // 32043
35569 o10 = {};
35570 // 32044
35571 o8.relatedTarget = o10;
35572 // 32045
35573 o11 = {};
35574 // 32046
35575 o10.parentNode = o11;
35576 // 32047
35577 o10.nodeType = 1;
35578 // 32048
35579 o10.getAttributeNode = f974244559_519;
35580 // 32050
35581 f974244559_519.returns.push(null);
35582 // 32052
35583 o11.parentNode = o9;
35584 // 32053
35585 o11.nodeType = 1;
35586 // 32054
35587 o11.getAttributeNode = f974244559_519;
35588 // undefined
35589 o11 = null;
35590 // 32056
35591 f974244559_519.returns.push(null);
35592 // 32062
35593 f974244559_519.returns.push(null);
35594 // 32068
35595 f974244559_519.returns.push(null);
35596 // 32074
35597 f974244559_519.returns.push(null);
35598 // 32080
35599 f974244559_519.returns.push(null);
35600 // 32086
35601 f974244559_519.returns.push(null);
35602 // 32092
35603 f974244559_519.returns.push(null);
35604 // 32098
35605 f974244559_519.returns.push(null);
35606 // 32104
35607 f974244559_519.returns.push(null);
35608 // 32110
35609 f974244559_519.returns.push(null);
35610 // 32116
35611 f974244559_519.returns.push(null);
35612 // 32122
35613 f974244559_519.returns.push(null);
35614 // 32128
35615 f974244559_519.returns.push(null);
35616 // 32134
35617 f974244559_519.returns.push(null);
35618 // 32140
35619 f974244559_519.returns.push(null);
35620 // 32146
35621 f974244559_519.returns.push(null);
35622 // 32151
35623 o8.cancelBubble = false;
35624 // 32152
35625 o8.returnValue = true;
35626 // undefined
35627 o8 = null;
35628 // 32153
35629 o8 = {};
35630 // 32156
35631 o8.cancelBubble = false;
35632 // 32159
35633 f974244559_471.returns.push(1373491309039);
35634 // 32162
35635 f974244559_1202.returns.push(undefined);
35636 // 32164
35637 o8.returnValue = true;
35638 // 32167
35639 o8.srcElement = o10;
35640 // 32169
35641 o8.target = o10;
35642 // 32176
35643 f974244559_519.returns.push(null);
35644 // 32182
35645 f974244559_519.returns.push(null);
35646 // 32188
35647 f974244559_519.returns.push(null);
35648 // 32194
35649 f974244559_519.returns.push(null);
35650 // 32200
35651 f974244559_519.returns.push(null);
35652 // 32206
35653 f974244559_519.returns.push(null);
35654 // 32212
35655 f974244559_519.returns.push(null);
35656 // 32218
35657 f974244559_519.returns.push(null);
35658 // 32224
35659 f974244559_519.returns.push(null);
35660 // 32230
35661 f974244559_519.returns.push(null);
35662 // 32236
35663 f974244559_519.returns.push(null);
35664 // 32242
35665 f974244559_519.returns.push(null);
35666 // 32248
35667 f974244559_519.returns.push(null);
35668 // 32254
35669 f974244559_519.returns.push(null);
35670 // 32260
35671 f974244559_519.returns.push(null);
35672 // 32266
35673 f974244559_519.returns.push(null);
35674 // 32272
35675 f974244559_519.returns.push(null);
35676 // 32277
35677 o8.relatedTarget = o9;
35678 // undefined
35679 o8 = null;
35680 // undefined
35681 o9 = null;
35682 // 32280
35683 o8 = {};
35684 // 32284
35685 f974244559_471.returns.push(1373491309047);
35686 // 32285
35687 o8.cancelBubble = false;
35688 // 32286
35689 o8.returnValue = true;
35690 // 32289
35691 o8.srcElement = o10;
35692 // 32291
35693 o8.target = o10;
35694 // 32298
35695 f974244559_519.returns.push(null);
35696 // 32304
35697 f974244559_519.returns.push(null);
35698 // 32310
35699 f974244559_519.returns.push(null);
35700 // 32316
35701 f974244559_519.returns.push(null);
35702 // 32322
35703 f974244559_519.returns.push(null);
35704 // 32328
35705 f974244559_519.returns.push(null);
35706 // 32334
35707 f974244559_519.returns.push(null);
35708 // 32340
35709 f974244559_519.returns.push(null);
35710 // 32346
35711 f974244559_519.returns.push(null);
35712 // 32352
35713 f974244559_519.returns.push(null);
35714 // 32358
35715 f974244559_519.returns.push(null);
35716 // 32364
35717 f974244559_519.returns.push(null);
35718 // 32370
35719 f974244559_519.returns.push(null);
35720 // 32376
35721 f974244559_519.returns.push(null);
35722 // 32382
35723 f974244559_519.returns.push(null);
35724 // 32388
35725 f974244559_519.returns.push(null);
35726 // 32394
35727 f974244559_519.returns.push(null);
35728 // 32399
35729 o8.JSBNG__screenX = 540;
35730 // 32400
35731 o8.JSBNG__screenY = 592;
35732 // 32401
35733 o8.altKey = false;
35734 // 32402
35735 o8.bubbles = true;
35736 // 32403
35737 o8.button = 0;
35738 // 32404
35739 o8.buttons = void 0;
35740 // 32405
35741 o8.cancelable = false;
35742 // 32406
35743 o8.clientX = 523;
35744 // 32407
35745 o8.clientY = 488;
35746 // 32408
35747 o8.ctrlKey = false;
35748 // 32409
35749 o8.currentTarget = o0;
35750 // 32410
35751 o8.defaultPrevented = false;
35752 // 32411
35753 o8.detail = 0;
35754 // 32412
35755 o8.eventPhase = 3;
35756 // 32413
35757 o8.isTrusted = void 0;
35758 // 32414
35759 o8.metaKey = false;
35760 // 32415
35761 o8.pageX = 523;
35762 // 32416
35763 o8.pageY = 488;
35764 // 32417
35765 o8.relatedTarget = null;
35766 // 32418
35767 o8.fromElement = null;
35768 // 32421
35769 o8.shiftKey = false;
35770 // 32424
35771 o8.timeStamp = 1373491309047;
35772 // 32425
35773 o8.type = "mousemove";
35774 // 32426
35775 o8.view = ow974244559;
35776 // undefined
35777 o8 = null;
35778 // 32435
35779 f974244559_2566.returns.push(undefined);
35780 // 32438
35781 f974244559_14.returns.push(undefined);
35782 // 32439
35783 f974244559_12.returns.push(129);
35784 // 32442
35785 o8 = {};
35786 // 32445
35787 o8.srcElement = o10;
35788 // 32447
35789 o8.target = o10;
35790 // 32454
35791 f974244559_519.returns.push(null);
35792 // 32460
35793 f974244559_519.returns.push(null);
35794 // 32466
35795 f974244559_519.returns.push(null);
35796 // 32472
35797 f974244559_519.returns.push(null);
35798 // 32478
35799 f974244559_519.returns.push(null);
35800 // 32484
35801 f974244559_519.returns.push(null);
35802 // 32490
35803 f974244559_519.returns.push(null);
35804 // 32496
35805 f974244559_519.returns.push(null);
35806 // 32502
35807 f974244559_519.returns.push(null);
35808 // 32508
35809 f974244559_519.returns.push(null);
35810 // 32514
35811 f974244559_519.returns.push(null);
35812 // 32520
35813 f974244559_519.returns.push(null);
35814 // 32526
35815 f974244559_519.returns.push(null);
35816 // 32532
35817 f974244559_519.returns.push(null);
35818 // 32538
35819 f974244559_519.returns.push(null);
35820 // 32544
35821 f974244559_519.returns.push(null);
35822 // 32550
35823 f974244559_519.returns.push(null);
35824 // 32555
35825 o8.relatedTarget = o103;
35826 // 32560
35827 f974244559_519.returns.push(null);
35828 // 32566
35829 f974244559_519.returns.push(null);
35830 // 32572
35831 f974244559_519.returns.push(null);
35832 // 32578
35833 f974244559_519.returns.push(null);
35834 // 32584
35835 f974244559_519.returns.push(null);
35836 // 32590
35837 f974244559_519.returns.push(null);
35838 // 32596
35839 f974244559_519.returns.push(null);
35840 // 32602
35841 f974244559_519.returns.push(null);
35842 // 32608
35843 f974244559_519.returns.push(null);
35844 // 32614
35845 f974244559_519.returns.push(null);
35846 // 32620
35847 f974244559_519.returns.push(null);
35848 // 32626
35849 f974244559_519.returns.push(null);
35850 // 32632
35851 f974244559_519.returns.push(null);
35852 // 32638
35853 f974244559_519.returns.push(null);
35854 // 32644
35855 f974244559_519.returns.push(null);
35856 // 32650
35857 f974244559_519.returns.push(null);
35858 // 32656
35859 f974244559_519.returns.push(null);
35860 // 32661
35861 o8.cancelBubble = false;
35862 // 32662
35863 o8.returnValue = true;
35864 // undefined
35865 o8 = null;
35866 // 32663
35867 o8 = {};
35868 // 32666
35869 o8.cancelBubble = false;
35870 // 32669
35871 f974244559_471.returns.push(1373491309090);
35872 // 32672
35873 f974244559_1202.returns.push(undefined);
35874 // 32674
35875 o8.returnValue = true;
35876 // 32677
35877 o8.srcElement = o103;
35878 // 32679
35879 o8.target = o103;
35880 // 32686
35881 f974244559_519.returns.push(null);
35882 // 32692
35883 f974244559_519.returns.push(null);
35884 // 32698
35885 f974244559_519.returns.push(null);
35886 // 32704
35887 f974244559_519.returns.push(null);
35888 // 32710
35889 f974244559_519.returns.push(null);
35890 // 32716
35891 f974244559_519.returns.push(null);
35892 // 32722
35893 f974244559_519.returns.push(null);
35894 // 32728
35895 f974244559_519.returns.push(null);
35896 // 32734
35897 f974244559_519.returns.push(null);
35898 // 32740
35899 f974244559_519.returns.push(null);
35900 // 32746
35901 f974244559_519.returns.push(null);
35902 // 32752
35903 f974244559_519.returns.push(null);
35904 // 32758
35905 f974244559_519.returns.push(null);
35906 // 32764
35907 f974244559_519.returns.push(null);
35908 // 32770
35909 f974244559_519.returns.push(null);
35910 // 32776
35911 f974244559_519.returns.push(null);
35912 // 32782
35913 f974244559_519.returns.push(null);
35914 // 32787
35915 o8.relatedTarget = o10;
35916 // undefined
35917 o8 = null;
35918 // undefined
35919 o10 = null;
35920 // 32790
35921 o8 = {};
35922 // 32794
35923 f974244559_471.returns.push(1373491309099);
35924 // 32795
35925 o8.cancelBubble = false;
35926 // 32796
35927 o8.returnValue = true;
35928 // 32799
35929 o8.srcElement = o103;
35930 // 32801
35931 o8.target = o103;
35932 // undefined
35933 o103 = null;
35934 // 32808
35935 f974244559_519.returns.push(null);
35936 // 32814
35937 f974244559_519.returns.push(null);
35938 // 32820
35939 f974244559_519.returns.push(null);
35940 // 32826
35941 f974244559_519.returns.push(null);
35942 // 32832
35943 f974244559_519.returns.push(null);
35944 // 32838
35945 f974244559_519.returns.push(null);
35946 // 32844
35947 f974244559_519.returns.push(null);
35948 // 32850
35949 f974244559_519.returns.push(null);
35950 // 32856
35951 f974244559_519.returns.push(null);
35952 // 32862
35953 f974244559_519.returns.push(null);
35954 // 32868
35955 f974244559_519.returns.push(null);
35956 // 32874
35957 f974244559_519.returns.push(null);
35958 // 32880
35959 f974244559_519.returns.push(null);
35960 // 32886
35961 f974244559_519.returns.push(null);
35962 // 32892
35963 f974244559_519.returns.push(null);
35964 // 32898
35965 f974244559_519.returns.push(null);
35966 // 32904
35967 f974244559_519.returns.push(null);
35968 // 32909
35969 o8.JSBNG__screenX = 540;
35970 // 32910
35971 o8.JSBNG__screenY = 531;
35972 // 32911
35973 o8.altKey = false;
35974 // 32912
35975 o8.bubbles = true;
35976 // 32913
35977 o8.button = 0;
35978 // 32914
35979 o8.buttons = void 0;
35980 // 32915
35981 o8.cancelable = false;
35982 // 32916
35983 o8.clientX = 523;
35984 // 32917
35985 o8.clientY = 427;
35986 // 32918
35987 o8.ctrlKey = false;
35988 // 32919
35989 o8.currentTarget = o0;
35990 // 32920
35991 o8.defaultPrevented = false;
35992 // 32921
35993 o8.detail = 0;
35994 // 32922
35995 o8.eventPhase = 3;
35996 // 32923
35997 o8.isTrusted = void 0;
35998 // 32924
35999 o8.metaKey = false;
36000 // 32925
36001 o8.pageX = 523;
36002 // 32926
36003 o8.pageY = 427;
36004 // 32927
36005 o8.relatedTarget = null;
36006 // 32928
36007 o8.fromElement = null;
36008 // 32931
36009 o8.shiftKey = false;
36010 // 32934
36011 o8.timeStamp = 1373491309099;
36012 // 32935
36013 o8.type = "mousemove";
36014 // 32936
36015 o8.view = ow974244559;
36016 // undefined
36017 o8 = null;
36018 // 32945
36019 f974244559_2566.returns.push(undefined);
36020 // 32948
36021 f974244559_14.returns.push(undefined);
36022 // 32949
36023 f974244559_12.returns.push(130);
36024 // 32953
36025 f974244559_471.returns.push(1373491309144);
36026 // 32954
36027 o47.getAttribute = f974244559_500;
36028 // undefined
36029 o47 = null;
36030 // 32955
36031 f974244559_500.returns.push("1373168110");
36032 // 32957
36033 f974244559_500.returns.push(null);
36034 // 32958
36035 o55.getAttribute = f974244559_500;
36036 // undefined
36037 o55 = null;
36038 // 32959
36039 f974244559_500.returns.push("1373214256");
36040 // 32961
36041 f974244559_500.returns.push(null);
36042 // 32962
36043 o56.getAttribute = f974244559_500;
36044 // undefined
36045 o56 = null;
36046 // 32963
36047 f974244559_500.returns.push("1373214355");
36048 // 32965
36049 f974244559_500.returns.push(null);
36050 // 32966
36051 o57.getAttribute = f974244559_500;
36052 // undefined
36053 o57 = null;
36054 // 32967
36055 f974244559_500.returns.push("1373214375");
36056 // 32969
36057 f974244559_500.returns.push(null);
36058 // 32970
36059 o59.getAttribute = f974244559_500;
36060 // undefined
36061 o59 = null;
36062 // 32971
36063 f974244559_500.returns.push("1372985540");
36064 // 32973
36065 f974244559_500.returns.push(null);
36066 // 32974
36067 o60.getAttribute = f974244559_500;
36068 // undefined
36069 o60 = null;
36070 // 32975
36071 f974244559_500.returns.push("1373002430");
36072 // 32977
36073 f974244559_500.returns.push(null);
36074 // 32978
36075 o61.getAttribute = f974244559_500;
36076 // undefined
36077 o61 = null;
36078 // 32979
36079 f974244559_500.returns.push("1373066508");
36080 // 32981
36081 f974244559_500.returns.push(null);
36082 // 32982
36083 o62.getAttribute = f974244559_500;
36084 // undefined
36085 o62 = null;
36086 // 32983
36087 f974244559_500.returns.push("1373066594");
36088 // 32985
36089 f974244559_500.returns.push(null);
36090 // 32986
36091 o51.getAttribute = f974244559_500;
36092 // undefined
36093 o51 = null;
36094 // 32987
36095 f974244559_500.returns.push("1372275695");
36096 // 32989
36097 f974244559_500.returns.push(null);
36098 // 32990
36099 o52.getAttribute = f974244559_500;
36100 // undefined
36101 o52 = null;
36102 // 32991
36103 f974244559_500.returns.push("1372275736");
36104 // 32993
36105 f974244559_500.returns.push(null);
36106 // 32994
36107 o53.getAttribute = f974244559_500;
36108 // undefined
36109 o53 = null;
36110 // 32995
36111 f974244559_500.returns.push("1372275825");
36112 // 32997
36113 f974244559_500.returns.push(null);
36114 // 32998
36115 o54.getAttribute = f974244559_500;
36116 // undefined
36117 o54 = null;
36118 // 32999
36119 f974244559_500.returns.push("1372275890");
36120 // 33001
36121 f974244559_500.returns.push(null);
36122 // undefined
36123 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
36124 // 33003
36125 o8 = {};
36126 // 33009
36127 // 33011
36128 o9 = {};
36129 // 33014
36130 f974244559_1728.returns.push(undefined);
36131 // 33015
36132 o9.cancelBubble = false;
36133 // undefined
36134 fo974244559_1_cookie.returns.push("c_user=100006118350059; csm=2; sub=268435456");
36135 // 33019
36136 // 33021
36137 o9.returnValue = true;
36138 // undefined
36139 o9 = null;
36140 // 33022
36141 // 0
36142 JSBNG_Replay$ = function(real, cb) { if (!real) return;
36143 // 987
36144 geval("function envFlush(a) {\n    function b(c) {\n        {\n            var fin0keys = ((window.top.JSBNG_Replay.forInKeys)((a))), fin0i = (0);\n            var d;\n            for (; (fin0i < fin0keys.length); (fin0i++)) {\n                ((d) = (fin0keys[fin0i]));\n                {\n                    c[d] = a[d];\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    if (window.requireLazy) {\n        requireLazy([\"Env\",], b);\n    }\n     else {\n        Env = ((window.Env || {\n        }));\n        b(Env);\n    }\n;\n;\n};\n;\nenvFlush({\n    user: \"100006118350059\",\n    locale: \"en_US\",\n    method: \"GET\",\n    svn_rev: 871405,\n    tier: \"\",\n    push_phase: \"V3\",\n    pkg_cohort: \"EXP1:DEFAULT\",\n    vip: \"69.171.242.27\",\n    www_base: \"http://jsbngssl.www.facebook.com/\",\n    fb_dtsg: \"AQCttlPQ\",\n    ajaxpipe_token: \"AXg1MJsj67jxFeGx\",\n    lhsh: \"AAQGnORMT\",\n    tracking_domain: \"http://jsbngssl.pixel.facebook.com\",\n    retry_ajax_on_network_error: \"1\",\n    fbid_emoticons: \"1\"\n});");
36145 // 988
36146 geval("envFlush({\n    eagleEyeConfig: {\n        seed: \"0KqC\",\n        JSBNG__sessionStorage: true\n    }\n});\nCavalryLogger = false;");
36147 // 989
36148 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"FHcQn\",]);\n}\n;\n;\nJSBNG__self.__DEV__ = ((JSBNG__self.__DEV__ || 0));\nif (((JSON.stringify([\"\\u2028\\u2029\",]) === \"[\\\"\\u2028\\u2029\\\"]\"))) {\n    JSON.stringify = function(a) {\n        var b = /\\u2028/g, c = /\\u2029/g;\n        return ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1), function(d, e, f) {\n            var g = a.call(this, d, e, f);\n            if (g) {\n                if (((-1 < g.indexOf(\"\\u2028\")))) {\n                    g = g.replace(b, \"\\\\u2028\");\n                }\n            ;\n            ;\n                if (((-1 < g.indexOf(\"\\u2029\")))) {\n                    g = g.replace(c, \"\\\\u2029\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return g;\n        }));\n    }(JSON.stringify);\n}\n;\n;\nvar __t = function(a) {\n    return a[0];\n}, __w = function(a) {\n    return a;\n};\n(function(a) {\n    if (a.require) {\n        return;\n    }\n;\n;\n    var b = Object.prototype.toString, c = {\n    }, d = {\n    }, e = {\n    }, f = 0, g = 1, h = 2, i = Object.prototype.hasOwnProperty;\n    function j(s) {\n        if (((a.ErrorUtils && !a.ErrorUtils.inGuard()))) {\n            return ErrorUtils.applyWithGuard(j, this, arguments);\n        }\n    ;\n    ;\n        var t = c[s], u, v, w;\n        if (!c[s]) {\n            w = ((((\"Requiring unknown module \\\"\" + s)) + \"\\\"\"));\n            throw new Error(w);\n        }\n    ;\n    ;\n        if (t.hasError) {\n            throw new Error(((((\"Requiring module \\\"\" + s)) + \"\\\" which threw an exception\")));\n        }\n    ;\n    ;\n        if (t.waiting) {\n            w = ((((\"Requiring module \\\"\" + s)) + \"\\\" with unresolved dependencies\"));\n            throw new Error(w);\n        }\n    ;\n    ;\n        if (!t.exports) {\n            var x = t.exports = {\n            }, y = t.factory;\n            if (((b.call(y) === \"[object Function]\"))) {\n                var z = [], aa = t.dependencies, ba = aa.length, ca;\n                if (((t.special & h))) {\n                    ba = Math.min(ba, y.length);\n                }\n            ;\n            ;\n                try {\n                    for (v = 0; ((v < ba)); v++) {\n                        u = aa[v];\n                        z.push(((((u === \"module\")) ? t : ((((u === \"exports\")) ? x : j(u))))));\n                    };\n                ;\n                    ca = y.apply(((t.context || a)), z);\n                } catch (da) {\n                    t.hasError = true;\n                    throw da;\n                };\n            ;\n                if (ca) {\n                    t.exports = ca;\n                }\n            ;\n            ;\n            }\n             else t.exports = y;\n        ;\n        ;\n        }\n    ;\n    ;\n        if (((t.refcount-- === 1))) {\n            delete c[s];\n        }\n    ;\n    ;\n        return t.exports;\n    };\n;\n    function k(s, t, u, v, w, x) {\n        if (((t === undefined))) {\n            t = [];\n            u = s;\n            s = n();\n        }\n         else if (((u === undefined))) {\n            u = t;\n            if (((b.call(s) === \"[object Array]\"))) {\n                t = s;\n                s = n();\n            }\n             else t = [];\n        ;\n        ;\n        }\n        \n    ;\n    ;\n        var y = {\n            cancel: l.bind(this, s)\n        }, z = c[s];\n        if (z) {\n            if (x) {\n                z.refcount += x;\n            }\n        ;\n        ;\n            return y;\n        }\n         else if (((((!t && !u)) && x))) {\n            e[s] = ((((e[s] || 0)) + x));\n            return y;\n        }\n         else {\n            z = {\n                id: s\n            };\n            z.refcount = ((((e[s] || 0)) + ((x || 0))));\n            delete e[s];\n        }\n        \n    ;\n    ;\n        z.factory = u;\n        z.dependencies = t;\n        z.context = w;\n        z.special = v;\n        z.waitingMap = {\n        };\n        z.waiting = 0;\n        z.hasError = false;\n        c[s] = z;\n        p(s);\n        return y;\n    };\n;\n    function l(s) {\n        if (!c[s]) {\n            return;\n        }\n    ;\n    ;\n        var t = c[s];\n        delete c[s];\n        {\n            var fin1keys = ((window.top.JSBNG_Replay.forInKeys)((t.waitingMap))), fin1i = (0);\n            var u;\n            for (; (fin1i < fin1keys.length); (fin1i++)) {\n                ((u) = (fin1keys[fin1i]));\n                {\n                    if (t.waitingMap[u]) {\n                        delete d[u][s];\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        for (var v = 0; ((v < t.dependencies.length)); v++) {\n            u = t.dependencies[v];\n            if (c[u]) {\n                if (((c[u].refcount-- === 1))) {\n                    l(u);\n                }\n            ;\n            ;\n            }\n             else if (e[u]) {\n                e[u]--;\n            }\n            \n        ;\n        ;\n        };\n    ;\n    };\n;\n    function m(s, t, u) {\n        return k(s, t, undefined, g, u, 1);\n    };\n;\n    function n() {\n        return ((\"__mod__\" + f++));\n    };\n;\n    function o(s, t) {\n        if (((!s.waitingMap[t] && ((s.id !== t))))) {\n            s.waiting++;\n            s.waitingMap[t] = 1;\n            ((d[t] || (d[t] = {\n            })));\n            d[t][s.id] = 1;\n        }\n    ;\n    ;\n    };\n;\n    function p(s) {\n        var t = [], u = c[s], v, w, x;\n        for (w = 0; ((w < u.dependencies.length)); w++) {\n            v = u.dependencies[w];\n            if (!c[v]) {\n                o(u, v);\n            }\n             else if (c[v].waiting) {\n                {\n                    var fin2keys = ((window.top.JSBNG_Replay.forInKeys)((c[v].waitingMap))), fin2i = (0);\n                    (0);\n                    for (; (fin2i < fin2keys.length); (fin2i++)) {\n                        ((x) = (fin2keys[fin2i]));\n                        {\n                            if (c[v].waitingMap[x]) {\n                                o(u, x);\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            }\n            \n        ;\n        ;\n        };\n    ;\n        if (((((u.waiting === 0)) && ((u.special & g))))) {\n            t.push(s);\n        }\n    ;\n    ;\n        if (d[s]) {\n            var y = d[s], z;\n            d[s] = undefined;\n            {\n                var fin3keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin3i = (0);\n                (0);\n                for (; (fin3i < fin3keys.length); (fin3i++)) {\n                    ((v) = (fin3keys[fin3i]));\n                    {\n                        z = c[v];\n                        {\n                            var fin4keys = ((window.top.JSBNG_Replay.forInKeys)((u.waitingMap))), fin4i = (0);\n                            (0);\n                            for (; (fin4i < fin4keys.length); (fin4i++)) {\n                                ((x) = (fin4keys[fin4i]));\n                                {\n                                    if (u.waitingMap[x]) {\n                                        o(z, x);\n                                    }\n                                ;\n                                ;\n                                };\n                            };\n                        };\n                    ;\n                        if (z.waitingMap[s]) {\n                            z.waitingMap[s] = undefined;\n                            z.waiting--;\n                        }\n                    ;\n                    ;\n                        if (((((z.waiting === 0)) && ((z.special & g))))) {\n                            t.push(v);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n        for (w = 0; ((w < t.length)); w++) {\n            j(t[w]);\n        ;\n        };\n    ;\n    };\n;\n    function q(s, t) {\n        c[s] = {\n            id: s\n        };\n        c[s].exports = t;\n    };\n;\n    q(\"module\", 0);\n    q(\"exports\", 0);\n    q(\"define\", k);\n    q(\"global\", a);\n    q(\"require\", j);\n    q(\"requireDynamic\", j);\n    q(\"requireLazy\", m);\n    k.amd = {\n    };\n    a.define = k;\n    a.require = j;\n    a.requireDynamic = j;\n    a.requireLazy = m;\n    j.__debug = {\n        modules: c,\n        deps: d\n    };\n    var r = function(s, t, u, v) {\n        k(s, t, u, ((v || h)));\n    };\n    a.__d = function(s, t, u, v) {\n        t = [\"global\",\"require\",\"requireDynamic\",\"requireLazy\",\"module\",\"exports\",].concat(t);\n        r(s, t, u, v);\n    };\n})(this);\n__d(\"SidebarPrelude\", [], function(a, b, c, d, e, f) {\n    var g = {\n        addSidebarMode: function(h) {\n            var i = JSBNG__document.documentElement;\n            if (((i.clientWidth > h))) {\n                i.className = ((i.className + \" sidebarMode\"));\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = g;\n});\n__d(\"eprintf\", [], function(a, b, c, d, e, f) {\n    var g = function(h) {\n        var i = Array.prototype.slice.call(arguments).map(function(l) {\n            return String(l);\n        }), j = ((h.split(\"%s\").length - 1));\n        if (((j !== ((i.length - 1))))) {\n            return g(\"eprintf args number mismatch: %s\", JSON.stringify(i));\n        }\n    ;\n    ;\n        var k = 1;\n        return h.replace(/%s/g, function(l) {\n            return String(i[k++]);\n        });\n    };\n    e.exports = g;\n});\n__d(\"ex\", [], function(a, b, c, d, e, f) {\n    var g = function(h) {\n        var i = Array.prototype.slice.call(arguments).map(function(k) {\n            return String(k);\n        }), j = ((h.split(\"%s\").length - 1));\n        if (((j !== ((i.length - 1))))) {\n            return g(\"ex args number mismatch: %s\", JSON.stringify(i));\n        }\n    ;\n    ;\n        return ((((g._prefix + JSON.stringify(i))) + g._suffix));\n    };\n    g._prefix = \"\\u003C![EX[\";\n    g._suffix = \"]]\\u003E\";\n    e.exports = g;\n});\n__d(\"erx\", [\"ex\",], function(a, b, c, d, e, f) {\n    var g = b(\"ex\"), h = function(i) {\n        if (((typeof i !== \"string\"))) {\n            return i;\n        }\n    ;\n    ;\n        var j = i.indexOf(g._prefix), k = i.lastIndexOf(g._suffix);\n        if (((((j < 0)) || ((k < 0))))) {\n            return [i,];\n        }\n    ;\n    ;\n        var l = ((j + g._prefix.length)), m = ((k + g._suffix.length));\n        if (((l >= k))) {\n            return [\"erx slice failure: %s\",i,];\n        }\n    ;\n    ;\n        var n = i.substring(0, j), o = i.substring(m);\n        i = i.substring(l, k);\n        var p;\n        try {\n            p = JSON.parse(i);\n            p[0] = ((((n + p[0])) + o));\n        } catch (q) {\n            return [\"erx parse failure: %s\",i,];\n        };\n    ;\n        return p;\n    };\n    e.exports = h;\n});\n__d(\"copyProperties\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j, k, l, m, n) {\n        h = ((h || {\n        }));\n        var o = [i,j,k,l,m,], p = 0, q;\n        while (o[p]) {\n            q = o[p++];\n            {\n                var fin5keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin5i = (0);\n                var r;\n                for (; (fin5i < fin5keys.length); (fin5i++)) {\n                    ((r) = (fin5keys[fin5i]));\n                    {\n                        h[r] = q[r];\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((((((q.hasOwnProperty && q.hasOwnProperty(\"toString\"))) && ((typeof q.toString != \"undefined\")))) && ((h.toString !== q.toString))))) {\n                h.toString = q.toString;\n            }\n        ;\n        ;\n        };\n    ;\n        return h;\n    };\n;\n    e.exports = g;\n});\n__d(\"Env\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = {\n        start: JSBNG__Date.now()\n    };\n    if (a.Env) {\n        g(h, a.Env);\n        a.Env = undefined;\n    }\n;\n;\n    e.exports = h;\n});\n__d(\"ErrorUtils\", [\"eprintf\",\"erx\",\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"eprintf\"), h = b(\"erx\"), i = b(\"Env\"), j = \"\\u003Canonymous guard\\u003E\", k = \"\\u003Cgenerated guard\\u003E\", l = \"\\u003Cwindow.onerror\\u003E\", m = [], n = [], o = 50, p = ((window.chrome && ((\"type\" in new Error())))), q = false;\n    function r(da) {\n        if (!da) {\n            return;\n        }\n    ;\n    ;\n        var ea = da.split(/\\n\\n/)[0].replace(/[\\(\\)]|\\[.*?\\]|^\\w+:\\s.*?\\n/g, \"\").split(\"\\u000a\").map(function(fa) {\n            var ga, ha, ia;\n            fa = fa.trim();\n            if (/(:(\\d+)(:(\\d+))?)$/.test(fa)) {\n                ha = RegExp.$2;\n                ia = RegExp.$4;\n                fa = fa.slice(0, -RegExp.$1.length);\n            }\n        ;\n        ;\n            if (/(.*)(@|\\s)[^\\s]+$/.test(fa)) {\n                fa = fa.substring(((RegExp.$1.length + 1)));\n                ga = ((/(at)?\\s*(.*)([^\\s]+|$)/.test(RegExp.$1) ? RegExp.$2 : \"\"));\n            }\n        ;\n        ;\n            return ((((((((((\"    at\" + ((ga ? ((((\" \" + ga)) + \" (\")) : \" \")))) + fa.replace(/^@/, \"\"))) + ((ha ? ((\":\" + ha)) : \"\")))) + ((ia ? ((\":\" + ia)) : \"\")))) + ((ga ? \")\" : \"\"))));\n        });\n        return ea.join(\"\\u000a\");\n    };\n;\n    function s(da) {\n        if (!da) {\n            return {\n            };\n        }\n         else if (da._originalError) {\n            return da;\n        }\n        \n    ;\n    ;\n        var ea = {\n            line: ((da.lineNumber || da.line)),\n            column: ((da.columnNumber || da.column)),\n            JSBNG__name: da.JSBNG__name,\n            message: da.message,\n            script: ((((da.fileName || da.sourceURL)) || da.script)),\n            stack: r(((da.stackTrace || da.stack))),\n            guard: da.guard\n        };\n        if (((typeof ea.message === \"string\"))) {\n            ea.messageWithParams = h(ea.message);\n            ea.message = g.apply(a, ea.messageWithParams);\n        }\n         else {\n            ea.messageObject = ea.message;\n            ea.message = String(ea.message);\n        }\n    ;\n    ;\n        ea._originalError = da;\n        if (((da.framesToPop && ea.stack))) {\n            var fa = ea.stack.split(\"\\u000a\");\n            fa.shift();\n            if (((da.framesToPop === 2))) {\n                da.message += ((\" \" + fa.shift().trim()));\n            }\n        ;\n        ;\n            ea.stack = fa.join(\"\\u000a\");\n            if (/(\\w{3,5}:\\/\\/[^:]+):(\\d+)/.test(fa[0])) {\n                ea.script = RegExp.$1;\n                ea.line = parseInt(RegExp.$2, 10);\n            }\n        ;\n        ;\n            delete da.framesToPop;\n        }\n    ;\n    ;\n        if (((p && /(\\w{3,5}:\\/\\/[^:]+):(\\d+)/.test(da.stack)))) {\n            ea.script = RegExp.$1;\n            ea.line = parseInt(RegExp.$2, 10);\n        }\n    ;\n    ;\n        {\n            var fin6keys = ((window.top.JSBNG_Replay.forInKeys)((ea))), fin6i = (0);\n            var ga;\n            for (; (fin6i < fin6keys.length); (fin6i++)) {\n                ((ga) = (fin6keys[fin6i]));\n                {\n                    ((((ea[ga] == null)) && delete ea[ga]));\n                ;\n                };\n            };\n        };\n    ;\n        return ea;\n    };\n;\n    function t() {\n        try {\n            throw new Error();\n        } catch (da) {\n            var ea = s(da).stack;\n            return ((ea && ea.replace(/[\\s\\S]*__getTrace__.*\\n/, \"\")));\n        };\n    ;\n    };\n;\n    function u(da, ea) {\n        if (q) {\n            return;\n        }\n    ;\n    ;\n        da = s(da);\n        !ea;\n        if (((n.length > o))) {\n            n.splice(((o / 2)), 1);\n        }\n    ;\n    ;\n        n.push(da);\n        q = true;\n        for (var fa = 0; ((fa < m.length)); fa++) {\n            try {\n                m[fa](da);\n            } catch (ga) {\n            \n            };\n        ;\n        };\n    ;\n        q = false;\n    };\n;\n    var v = false;\n    function w() {\n        return v;\n    };\n;\n    function x() {\n        v = false;\n    };\n;\n    function y(da, ea, fa, ga, ha) {\n        var ia = !v;\n        if (ia) {\n            v = true;\n        }\n    ;\n    ;\n        var ja, ka = ((i.nocatch || (/nocatch/).test(JSBNG__location.search)));\n        if (ka) {\n            ja = da.apply(ea, ((fa || [])));\n            if (ia) {\n                x();\n            }\n        ;\n        ;\n            return ja;\n        }\n    ;\n    ;\n        try {\n            ja = da.apply(ea, ((fa || [])));\n            if (ia) {\n                x();\n            }\n        ;\n        ;\n            return ja;\n        } catch (la) {\n            if (ia) {\n                x();\n            }\n        ;\n        ;\n            var ma = s(la);\n            if (ga) {\n                ga(ma);\n            }\n        ;\n        ;\n            if (da) {\n                ma.callee = da.toString().substring(0, 100);\n            }\n        ;\n        ;\n            if (fa) {\n                ma.args = String(fa).substring(0, 100);\n            }\n        ;\n        ;\n            ma.guard = ((ha || j));\n            u(ma);\n        };\n    ;\n    };\n;\n    function z(da, ea) {\n        ea = ((((ea || da.JSBNG__name)) || k));\n        function fa() {\n            return y(da, this, arguments, null, ea);\n        };\n    ;\n        return fa;\n    };\n;\n    function aa(da, ea, fa, ga) {\n        u({\n            message: da,\n            script: ea,\n            line: fa,\n            column: ga,\n            guard: l\n        }, true);\n    };\n;\n    window.JSBNG__onerror = aa;\n    function ba(da, ea) {\n        m.push(da);\n        if (!ea) {\n            n.forEach(da);\n        }\n    ;\n    ;\n    };\n;\n    var ca = {\n        ANONYMOUS_GUARD_TAG: j,\n        GENERATED_GUARD_TAG: k,\n        GLOBAL_ERROR_HANDLER_TAG: l,\n        addListener: ba,\n        applyWithGuard: y,\n        getTrace: t,\n        guard: z,\n        JSBNG__history: n,\n        inGuard: w,\n        normalizeError: s,\n        JSBNG__onerror: aa,\n        reportError: u\n    };\n    e.exports = a.ErrorUtils = ca;\n    if (((((typeof __t === \"function\")) && __t.setHandler))) {\n        __t.setHandler(u);\n    }\n;\n;\n});\n__d(\"CallbackDependencyManager\", [\"ErrorUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\");\n    function h() {\n        this.$CallbackDependencyManager0 = {\n        };\n        this.$CallbackDependencyManager1 = {\n        };\n        this.$CallbackDependencyManager2 = 1;\n        this.$CallbackDependencyManager3 = {\n        };\n    };\n;\n    h.prototype.$CallbackDependencyManager4 = function(i, j) {\n        var k = 0, l = {\n        };\n        for (var m = 0, n = j.length; ((m < n)); m++) {\n            l[j[m]] = 1;\n        ;\n        };\n    ;\n        {\n            var fin7keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin7i = (0);\n            var o;\n            for (; (fin7i < fin7keys.length); (fin7i++)) {\n                ((o) = (fin7keys[fin7i]));\n                {\n                    if (this.$CallbackDependencyManager3[o]) {\n                        continue;\n                    }\n                ;\n                ;\n                    k++;\n                    if (((this.$CallbackDependencyManager0[o] === undefined))) {\n                        this.$CallbackDependencyManager0[o] = {\n                        };\n                    }\n                ;\n                ;\n                    this.$CallbackDependencyManager0[o][i] = ((((this.$CallbackDependencyManager0[o][i] || 0)) + 1));\n                };\n            };\n        };\n    ;\n        return k;\n    };\n    h.prototype.$CallbackDependencyManager5 = function(i) {\n        if (!this.$CallbackDependencyManager0[i]) {\n            return;\n        }\n    ;\n    ;\n        {\n            var fin8keys = ((window.top.JSBNG_Replay.forInKeys)((this.$CallbackDependencyManager0[i]))), fin8i = (0);\n            var j;\n            for (; (fin8i < fin8keys.length); (fin8i++)) {\n                ((j) = (fin8keys[fin8i]));\n                {\n                    this.$CallbackDependencyManager0[i][j]--;\n                    if (((this.$CallbackDependencyManager0[i][j] <= 0))) {\n                        delete this.$CallbackDependencyManager0[i][j];\n                    }\n                ;\n                ;\n                    this.$CallbackDependencyManager1[j].$CallbackDependencyManager6--;\n                    if (((this.$CallbackDependencyManager1[j].$CallbackDependencyManager6 <= 0))) {\n                        var k = this.$CallbackDependencyManager1[j].$CallbackDependencyManager7;\n                        delete this.$CallbackDependencyManager1[j];\n                        g.applyWithGuard(k);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n    h.prototype.addDependenciesToExistingCallback = function(i, j) {\n        if (!this.$CallbackDependencyManager1[i]) {\n            return null;\n        }\n    ;\n    ;\n        var k = this.$CallbackDependencyManager4(i, j);\n        this.$CallbackDependencyManager1[i].$CallbackDependencyManager6 += k;\n        return i;\n    };\n    h.prototype.isPersistentDependencySatisfied = function(i) {\n        return !!this.$CallbackDependencyManager3[i];\n    };\n    h.prototype.satisfyPersistentDependency = function(i) {\n        this.$CallbackDependencyManager3[i] = 1;\n        this.$CallbackDependencyManager5(i);\n    };\n    h.prototype.satisfyNonPersistentDependency = function(i) {\n        var j = ((this.$CallbackDependencyManager3[i] === 1));\n        if (!j) {\n            this.$CallbackDependencyManager3[i] = 1;\n        }\n    ;\n    ;\n        this.$CallbackDependencyManager5(i);\n        if (!j) {\n            delete this.$CallbackDependencyManager3[i];\n        }\n    ;\n    ;\n    };\n    h.prototype.registerCallback = function(i, j) {\n        var k = this.$CallbackDependencyManager2;\n        this.$CallbackDependencyManager2++;\n        var l = this.$CallbackDependencyManager4(k, j);\n        if (((l === 0))) {\n            g.applyWithGuard(i);\n            return null;\n        }\n    ;\n    ;\n        this.$CallbackDependencyManager1[k] = {\n            $CallbackDependencyManager7: i,\n            $CallbackDependencyManager6: l\n        };\n        return k;\n    };\n    h.prototype.unsatisfyPersistentDependency = function(i) {\n        delete this.$CallbackDependencyManager3[i];\n    };\n    e.exports = h;\n});\n__d(\"hasArrayNature\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return ((((((((!!h && ((((typeof h == \"object\")) || ((typeof h == \"function\")))))) && ((\"length\" in h)))) && !((\"JSBNG__setInterval\" in h)))) && ((((((Object.prototype.toString.call(h) === \"[object Array]\")) || ((\"callee\" in h)))) || ((\"item\" in h))))));\n    };\n;\n    e.exports = g;\n});\n__d(\"createArrayFrom\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\");\n    function h(i) {\n        if (!g(i)) {\n            return [i,];\n        }\n    ;\n    ;\n        if (i.item) {\n            var j = i.length, k = new Array(j);\n            while (j--) {\n                k[j] = i[j];\n            ;\n            };\n        ;\n            return k;\n        }\n    ;\n    ;\n        return Array.prototype.slice.call(i);\n    };\n;\n    e.exports = h;\n});\n__d(\"invariant\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if (!h) {\n            throw new Error(\"Invariant Violation\");\n        }\n    ;\n    ;\n    };\n;\n    e.exports = g;\n});\n__d(\"EventEmitter\", [\"createArrayFrom\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"createArrayFrom\"), h = b(\"invariant\");\n    function i() {\n        this.$EventEmitter0 = {\n        };\n        this.$EventEmitter1 = {\n        };\n        this.$EventEmitter2 = {\n        };\n    };\n;\n    i.prototype.addListener = function(k, l, m) {\n        if (!this.$EventEmitter0[k]) {\n            this.$EventEmitter0[k] = [];\n        }\n    ;\n    ;\n        var n = this.$EventEmitter0[k].length;\n        this.$EventEmitter0[k].push(l);\n        if (((m !== undefined))) {\n            if (!this.$EventEmitter1[k]) {\n                this.$EventEmitter1[k] = [];\n            }\n        ;\n        ;\n            this.$EventEmitter1[k][n] = m;\n        }\n    ;\n    ;\n        return new j(this, k, n);\n    };\n    i.prototype.once = function(k, l, m) {\n        var n = this;\n        return this.addListener(k, function() {\n            n.removeCurrentListener();\n            l.apply(m, arguments);\n        });\n    };\n    i.prototype.removeAllListeners = function(k) {\n        if (((k === undefined))) {\n            this.$EventEmitter0 = {\n            };\n            this.$EventEmitter1 = {\n            };\n        }\n         else {\n            delete this.$EventEmitter0[k];\n            delete this.$EventEmitter1[k];\n        }\n    ;\n    ;\n    };\n    i.prototype.removeCurrentListener = function() {\n        h(((this.$EventEmitter2.key !== undefined)));\n        this.removeSubscription(this.$EventEmitter2);\n    };\n    i.prototype.removeSubscription = function(k) {\n        var l = k.eventType, m = k.key, n = this.$EventEmitter0[l];\n        if (n) {\n            delete n[m];\n        }\n    ;\n    ;\n        var o = this.$EventEmitter1[l];\n        if (o) {\n            delete o[m];\n        }\n    ;\n    ;\n    };\n    i.prototype.listeners = function(k) {\n        var l = this.$EventEmitter0[k];\n        return ((l ? g(l) : []));\n    };\n    i.prototype.emit = function(k, l, m, n, o, p, q) {\n        h(((q === undefined)));\n        var r = this.$EventEmitter0[k];\n        if (r) {\n            var s = this.$EventEmitter1[k];\n            this.$EventEmitter2.eventType = k;\n            var t = Object.keys(r);\n            for (var u = 0; ((u < t.length)); u++) {\n                var v = t[u], w = r[v];\n                if (w) {\n                    var x = ((s ? s[v] : undefined));\n                    this.$EventEmitter2.key = v;\n                    if (((x === undefined))) {\n                        w(l, m, n, o, p);\n                    }\n                     else w.call(x, l, m, n, o, p);\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            this.$EventEmitter2.eventType = undefined;\n            this.$EventEmitter2.key = undefined;\n        }\n    ;\n    ;\n    };\n    function j(k, l, m) {\n        this.$ListenerSubscription0 = k;\n        this.eventType = l;\n        this.key = m;\n    };\n;\n    j.prototype.remove = function() {\n        this.$ListenerSubscription0.removeSubscription(this);\n    };\n    e.exports = i;\n});\n__d(\"EventEmitterWithHolding\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        this.$EventEmitterWithHolding0 = h;\n        this.$EventEmitterWithHolding1 = i;\n        this.$EventEmitterWithHolding2 = null;\n        this.$EventEmitterWithHolding3 = false;\n    };\n;\n    g.prototype.addListener = function(h, i, j) {\n        return this.$EventEmitterWithHolding0.addListener(h, i, j);\n    };\n    g.prototype.once = function(h, i, j) {\n        return this.$EventEmitterWithHolding0.once(h, i, j);\n    };\n    g.prototype.addRetroactiveListener = function(h, i, j) {\n        var k = this.$EventEmitterWithHolding0.addListener(h, i, j);\n        this.$EventEmitterWithHolding3 = true;\n        this.$EventEmitterWithHolding1.emitToListener(h, i, j);\n        this.$EventEmitterWithHolding3 = false;\n        return k;\n    };\n    g.prototype.removeAllListeners = function(h) {\n        this.$EventEmitterWithHolding0.removeAllListeners(h);\n    };\n    g.prototype.removeCurrentListener = function() {\n        this.$EventEmitterWithHolding0.removeCurrentListener();\n    };\n    g.prototype.removeSubscription = function(h) {\n        this.$EventEmitterWithHolding0.removeSubscription(h);\n    };\n    g.prototype.listeners = function(h) {\n        return this.$EventEmitterWithHolding0.listeners(h);\n    };\n    g.prototype.emit = function(h, i, j, k, l, m, n) {\n        this.$EventEmitterWithHolding0.emit(h, i, j, k, l, m, n);\n    };\n    g.prototype.emitAndHold = function(h, i, j, k, l, m, n) {\n        this.$EventEmitterWithHolding2 = this.$EventEmitterWithHolding1.holdEvent(h, i, j, k, l, m, n);\n        this.$EventEmitterWithHolding0.emit(h, i, j, k, l, m, n);\n        this.$EventEmitterWithHolding2 = null;\n    };\n    g.prototype.releaseCurrentEvent = function() {\n        if (((this.$EventEmitterWithHolding2 !== null))) {\n            this.$EventEmitterWithHolding1.releaseEvent(this.$EventEmitterWithHolding2);\n        }\n         else if (this.$EventEmitterWithHolding3) {\n            this.$EventEmitterWithHolding1.releaseCurrentEvent();\n        }\n        \n    ;\n    ;\n    };\n    e.exports = g;\n});\n__d(\"EventHolder\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\");\n    function h() {\n        this.$EventHolder0 = [];\n        this.$EventHolder1 = [];\n        this.$EventHolder2 = null;\n    };\n;\n    h.prototype.holdEvent = function(i, j, k, l, m, n, o) {\n        var p = this.$EventHolder0.length, JSBNG__event = [i,j,k,l,m,n,o,];\n        this.$EventHolder0.push(JSBNG__event);\n        return p;\n    };\n    h.prototype.emitToListener = function(i, j, k) {\n        this.forEachHeldEvent(function(l, m, n, o, p, q, r) {\n            if (((l === i))) {\n                j.call(k, m, n, o, p, q, r);\n            }\n        ;\n        ;\n        });\n    };\n    h.prototype.forEachHeldEvent = function(i, j) {\n        this.$EventHolder0.forEach(function(JSBNG__event, k) {\n            this.$EventHolder2 = k;\n            i.apply(j, JSBNG__event);\n        }, this);\n        this.$EventHolder2 = null;\n    };\n    h.prototype.releaseCurrentEvent = function() {\n        g(((this.$EventHolder2 !== null)));\n        delete this.$EventHolder0[this.$EventHolder2];\n    };\n    h.prototype.releaseEvent = function(i) {\n        delete this.$EventHolder0[i];\n    };\n    e.exports = h;\n});\n__d(\"asyncCallback\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        if (a.ArbiterMonitor) {\n            return a.ArbiterMonitor.asyncCallback(h, i);\n        }\n    ;\n    ;\n        return h;\n    };\n;\n    e.exports = g;\n});\n__d(\"emptyFunction\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(j) {\n        return function() {\n            return j;\n        };\n    };\n;\n    {\n        function i() {\n        \n        };\n        ((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_96.push)((i)));\n    };\n;\n    g(i, {\n        thatReturns: h,\n        thatReturnsFalse: h(false),\n        thatReturnsTrue: h(true),\n        thatReturnsNull: h(null),\n        thatReturnsThis: function() {\n            return this;\n        },\n        thatReturnsArgument: function(j) {\n            return j;\n        }\n    });\n    e.exports = i;\n});\n__d(\"Arbiter\", [\"CallbackDependencyManager\",\"ErrorUtils\",\"EventEmitter\",\"EventEmitterWithHolding\",\"EventHolder\",\"asyncCallback\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"hasArrayNature\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackDependencyManager\"), h = b(\"ErrorUtils\"), i = b(\"EventEmitter\"), j = b(\"EventEmitterWithHolding\"), k = b(\"EventHolder\"), l = b(\"asyncCallback\"), m = b(\"copyProperties\"), n = b(\"createArrayFrom\"), o = b(\"emptyFunction\"), p = b(\"hasArrayNature\"), q = b(\"invariant\");\n    function r() {\n        var v = new i();\n        this.$Arbiter0 = new t();\n        this.$Arbiter1 = new j(v, this.$Arbiter0);\n        this.$Arbiter2 = new g();\n        this.$Arbiter3 = [];\n    };\n;\n    r.prototype.subscribe = function(v, w, x) {\n        v = n(v);\n        q(v.every(o.thatReturnsArgument));\n        x = ((x || r.SUBSCRIBE_ALL));\n        q(((((x === r.SUBSCRIBE_NEW)) || ((x === r.SUBSCRIBE_ALL)))));\n        var y = v.map(function(z) {\n            var aa = this.$Arbiter4.bind(this, w, z);\n            if (((x === r.SUBSCRIBE_NEW))) {\n                return this.$Arbiter1.addListener(z, aa);\n            }\n        ;\n        ;\n            this.$Arbiter3.push({\n            });\n            var ba = this.$Arbiter1.addRetroactiveListener(z, aa);\n            this.$Arbiter3.pop();\n            return ba;\n        }, this);\n        return new u(this, y);\n    };\n    r.prototype.$Arbiter4 = function(v, w, x) {\n        var y = this.$Arbiter3[((this.$Arbiter3.length - 1))];\n        if (((y[w] === false))) {\n            return;\n        }\n    ;\n    ;\n        var z = h.applyWithGuard(v, null, [w,x,]);\n        if (((z === false))) {\n            this.$Arbiter1.releaseCurrentEvent();\n        }\n    ;\n    ;\n        y[w] = z;\n    };\n    r.prototype.subscribeOnce = function(v, w, x) {\n        var y = this.subscribe(v, function(z, aa) {\n            ((y && y.unsubscribe()));\n            return w(z, aa);\n        }, x);\n        return y;\n    };\n    r.prototype.unsubscribe = function(v) {\n        q(v.isForArbiterInstance(this));\n        v.unsubscribe();\n    };\n    r.prototype.inform = function(v, w, x) {\n        var y = p(v);\n        v = n(v);\n        x = ((x || r.BEHAVIOR_EVENT));\n        var z = ((((x === r.BEHAVIOR_STATE)) || ((x === r.BEHAVIOR_PERSISTENT)))), aa = a.ArbiterMonitor;\n        this.$Arbiter3.push({\n        });\n        for (var ba = 0; ((ba < v.length)); ba++) {\n            var ca = v[ba];\n            q(ca);\n            this.$Arbiter0.setHoldingBehavior(ca, x);\n            ((aa && aa.record(\"JSBNG__event\", ca, w, this)));\n            this.$Arbiter1.emitAndHold(ca, w);\n            this.$Arbiter5(ca, w, z);\n            ((aa && aa.record(\"done\", ca, w, this)));\n        };\n    ;\n        var da = this.$Arbiter3.pop();\n        return ((y ? da : da[v[0]]));\n    };\n    r.prototype.query = function(v) {\n        var w = this.$Arbiter0.getHoldingBehavior(v);\n        q(((!w || ((w === r.BEHAVIOR_STATE)))));\n        var x = null;\n        this.$Arbiter0.emitToListener(v, function(y) {\n            x = y;\n        });\n        return x;\n    };\n    r.prototype.registerCallback = function(v, w) {\n        if (((typeof v === \"function\"))) {\n            return this.$Arbiter2.registerCallback(l(v, \"arbiter\"), w);\n        }\n         else return this.$Arbiter2.addDependenciesToExistingCallback(v, w)\n    ;\n    };\n    r.prototype.$Arbiter5 = function(v, w, x) {\n        if (((w === null))) {\n            return;\n        }\n    ;\n    ;\n        if (x) {\n            this.$Arbiter2.satisfyPersistentDependency(v);\n        }\n         else this.$Arbiter2.satisfyNonPersistentDependency(v);\n    ;\n    ;\n    };\n    var s = ((((k === null)) ? null : k.prototype));\n    t.prototype = Object.create(s);\n    t.prototype.constructor = t;\n    t.__superConstructor__ = k;\n    function t() {\n        k.call(this);\n        this.$ArbiterEventHolder0 = {\n        };\n    };\n;\n    t.prototype.setHoldingBehavior = function(v, w) {\n        this.$ArbiterEventHolder0[v] = w;\n    };\n    t.prototype.getHoldingBehavior = function(v) {\n        return this.$ArbiterEventHolder0[v];\n    };\n    t.prototype.holdEvent = function(v, w, x, y, z) {\n        var aa = this.$ArbiterEventHolder0[v];\n        if (((aa !== r.BEHAVIOR_PERSISTENT))) {\n            this.$ArbiterEventHolder2(v);\n        }\n    ;\n    ;\n        if (((aa !== r.BEHAVIOR_EVENT))) {\n            return s.holdEvent.call(this, v, w, x, y, z);\n        }\n    ;\n    ;\n    };\n    t.prototype.$ArbiterEventHolder2 = function(v) {\n        this.emitToListener(v, this.releaseCurrentEvent, this);\n    };\n    m(r, {\n        SUBSCRIBE_NEW: \"new\",\n        SUBSCRIBE_ALL: \"all\",\n        BEHAVIOR_EVENT: \"JSBNG__event\",\n        BEHAVIOR_STATE: \"state\",\n        BEHAVIOR_PERSISTENT: \"persistent\"\n    });\n    function u(v, w) {\n        this.$ArbiterToken0 = v;\n        this.$ArbiterToken1 = w;\n    };\n;\n    u.prototype.unsubscribe = function() {\n        for (var v = 0; ((v < this.$ArbiterToken1.length)); v++) {\n            this.$ArbiterToken1[v].remove();\n        ;\n        };\n    ;\n        this.$ArbiterToken1.length = 0;\n    };\n    u.prototype.isForArbiterInstance = function(v) {\n        q(this.$ArbiterToken0);\n        return ((this.$ArbiterToken0 === v));\n    };\n    Object.keys(r.prototype).forEach(function(v) {\n        r[v] = function() {\n            var w = ((((this instanceof r)) ? this : r));\n            return r.prototype[v].apply(w, arguments);\n        };\n    });\n    r.call(r);\n    e.exports = r;\n});\n__d(\"ArbiterMixin\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = {\n        _getArbiterInstance: function() {\n            return ((this._arbiter || (this._arbiter = new g())));\n        },\n        inform: function(i, j, k) {\n            return this._getArbiterInstance().inform(i, j, k);\n        },\n        subscribe: function(i, j, k) {\n            return this._getArbiterInstance().subscribe(i, j, k);\n        },\n        subscribeOnce: function(i, j, k) {\n            return this._getArbiterInstance().subscribeOnce(i, j, k);\n        },\n        unsubscribe: function(i) {\n            this._getArbiterInstance().unsubscribe(i);\n        },\n        registerCallback: function(i, j) {\n            this._getArbiterInstance().registerCallback(i, j);\n        },\n        query: function(i) {\n            return this._getArbiterInstance().query(i);\n        }\n    };\n    e.exports = h;\n});\n__d(\"legacy:ArbiterMixin\", [\"ArbiterMixin\",], function(a, b, c, d) {\n    a.ArbiterMixin = b(\"ArbiterMixin\");\n}, 3);\n__d(\"ge\", [], function(a, b, c, d, e, f) {\n    function g(j, k, l) {\n        return ((((typeof j != \"string\")) ? j : ((!k ? JSBNG__document.getElementById(j) : h(j, k, l)))));\n    };\n;\n    function h(j, k, l) {\n        var m, n, o;\n        if (((i(k) == j))) {\n            return k;\n        }\n         else if (k.getElementsByTagName) {\n            n = k.getElementsByTagName(((l || \"*\")));\n            for (o = 0; ((o < n.length)); o++) {\n                if (((i(n[o]) == j))) {\n                    return n[o];\n                }\n            ;\n            ;\n            };\n        ;\n        }\n         else {\n            n = k.childNodes;\n            for (o = 0; ((o < n.length)); o++) {\n                m = h(j, n[o]);\n                if (m) {\n                    return m;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n        \n    ;\n    ;\n        return null;\n    };\n;\n    function i(j) {\n        var k = ((j.getAttributeNode && j.getAttributeNode(\"id\")));\n        return ((k ? k.value : null));\n    };\n;\n    e.exports = g;\n});\n__d(\"$\", [\"ge\",\"ex\",], function(a, b, c, d, e, f) {\n    var g = b(\"ge\"), h = b(\"ex\");\n    function i(j) {\n        var k = g(j);\n        if (!k) {\n            throw new Error(h(\"Tried to get element with id of \\\"%s\\\" but it is not present on the page.\", j));\n        }\n    ;\n    ;\n        return k;\n    };\n;\n    e.exports = i;\n});\n__d(\"CSSCore\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\");\n    function h(j, k) {\n        if (j.classList) {\n            return ((!!k && j.classList.contains(k)));\n        }\n    ;\n    ;\n        return ((((((\" \" + j.className)) + \" \")).indexOf(((((\" \" + k)) + \" \"))) > -1));\n    };\n;\n    var i = {\n        addClass: function(j, k) {\n            g(!/\\s/.test(k));\n            if (k) {\n                if (j.classList) {\n                    j.classList.add(k);\n                }\n                 else if (!h(j, k)) {\n                    j.className = ((((j.className + \" \")) + k));\n                }\n                \n            ;\n            }\n        ;\n        ;\n            return j;\n        },\n        removeClass: function(j, k) {\n            g(!/\\s/.test(k));\n            if (k) {\n                if (j.classList) {\n                    j.classList.remove(k);\n                }\n                 else if (h(j, k)) {\n                    j.className = j.className.replace(new RegExp(((((\"(^|\\\\s)\" + k)) + \"(?:\\\\s|$)\")), \"g\"), \"$1\").replace(/\\s+/g, \" \").replace(/^\\s*|\\s*$/g, \"\");\n                }\n                \n            ;\n            }\n        ;\n        ;\n            return j;\n        },\n        conditionClass: function(j, k, l) {\n            return ((l ? i.addClass : i.removeClass))(j, k);\n        }\n    };\n    e.exports = i;\n});\n__d(\"CSS\", [\"$\",\"CSSCore\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"CSSCore\"), i = \"hidden_elem\", j = {\n        setClass: function(k, l) {\n            g(k).className = ((l || \"\"));\n            return k;\n        },\n        hasClass: function(k, l) {\n            k = g(k);\n            if (k.classList) {\n                return ((!!l && k.classList.contains(l)));\n            }\n        ;\n        ;\n            return ((((((\" \" + k.className)) + \" \")).indexOf(((((\" \" + l)) + \" \"))) > -1));\n        },\n        addClass: function(k, l) {\n            return h.addClass(g(k), l);\n        },\n        removeClass: function(k, l) {\n            return h.removeClass(g(k), l);\n        },\n        conditionClass: function(k, l, m) {\n            return h.conditionClass(g(k), l, m);\n        },\n        toggleClass: function(k, l) {\n            return j.conditionClass(k, l, !j.hasClass(k, l));\n        },\n        shown: function(k) {\n            return !j.hasClass(k, i);\n        },\n        hide: function(k) {\n            return j.addClass(k, i);\n        },\n        show: function(k) {\n            return j.removeClass(k, i);\n        },\n        toggle: function(k) {\n            return j.toggleClass(k, i);\n        },\n        conditionShow: function(k, l) {\n            return j.conditionClass(k, i, !l);\n        }\n    };\n    e.exports = j;\n});\n__d(\"legacy:css-core\", [\"CSS\",], function(a, b, c, d) {\n    a.CSS = b(\"CSS\");\n}, 3);\n__d(\"legacy:dom-core\", [\"$\",\"ge\",], function(a, b, c, d) {\n    a.$ = b(\"$\");\n    a.ge = b(\"ge\");\n}, 3);\n__d(\"Parent\", [\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = {\n        byTag: function(i, j) {\n            j = j.toUpperCase();\n            while (((i && ((i.nodeName != j))))) {\n                i = i.parentNode;\n            ;\n            };\n        ;\n            return i;\n        },\n        byClass: function(i, j) {\n            while (((i && !g.hasClass(i, j)))) {\n                i = i.parentNode;\n            ;\n            };\n        ;\n            return i;\n        },\n        byAttribute: function(i, j) {\n            while (((i && ((!i.getAttribute || !i.getAttribute(j)))))) {\n                i = i.parentNode;\n            ;\n            };\n        ;\n            return i;\n        }\n    };\n    e.exports = h;\n});\n__d(\"legacy:parent\", [\"Parent\",], function(a, b, c, d) {\n    a.Parent = b(\"Parent\");\n}, 3);\n__d(\"legacy:emptyFunction\", [\"emptyFunction\",], function(a, b, c, d) {\n    a.emptyFunction = b(\"emptyFunction\");\n}, 3);\n__d(\"isEmpty\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if (Array.isArray(h)) {\n            return ((h.length === 0));\n        }\n         else if (((typeof h === \"object\"))) {\n            {\n                var fin9keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin9i = (0);\n                var i;\n                for (; (fin9i < fin9keys.length); (fin9i++)) {\n                    ((i) = (fin9keys[fin9i]));\n                    {\n                        return false;\n                    };\n                };\n            };\n        ;\n            return true;\n        }\n         else return !h\n        \n    ;\n    };\n;\n    e.exports = g;\n});\n__d(\"CSSLoader\", [\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"isEmpty\"), h = 20, i = 5000, j, k, l = {\n    }, m = [], n, o = {\n    };\n    function p(t) {\n        if (k) {\n            return;\n        }\n    ;\n    ;\n        k = true;\n        var u = JSBNG__document.createElement(\"link\");\n        u.JSBNG__onload = ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_166), function() {\n            j = true;\n            u.parentNode.removeChild(u);\n        }));\n        u.rel = \"stylesheet\";\n        u.href = \"data:text/css;base64,\";\n        t.appendChild(u);\n    };\n;\n    function q() {\n        var t, u = [], v = [];\n        if (((JSBNG__Date.now() >= n))) {\n            {\n                var fin10keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin10i = (0);\n                (0);\n                for (; (fin10i < fin10keys.length); (fin10i++)) {\n                    ((t) = (fin10keys[fin10i]));\n                    {\n                        v.push(o[t].signal);\n                        u.push(o[t].error);\n                    };\n                };\n            };\n        ;\n            o = {\n            };\n        }\n         else {\n            var fin11keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin11i = (0);\n            (0);\n            for (; (fin11i < fin11keys.length); (fin11i++)) {\n                ((t) = (fin11keys[fin11i]));\n                {\n                    var w = o[t].signal, x = ((window.JSBNG__getComputedStyle ? JSBNG__getComputedStyle(w, null) : w.currentStyle));\n                    if (((x && ((parseInt(x.height, 10) > 1))))) {\n                        u.push(o[t].load);\n                        v.push(w);\n                        delete o[t];\n                    }\n                ;\n                ;\n                };\n            };\n        }\n    ;\n    ;\n        for (var y = 0; ((y < v.length)); y++) {\n            v[y].parentNode.removeChild(v[y]);\n        ;\n        };\n    ;\n        if (!g(u)) {\n            for (y = 0; ((y < u.length)); y++) {\n                u[y]();\n            ;\n            };\n        ;\n            n = ((JSBNG__Date.now() + i));\n        }\n    ;\n    ;\n        return g(o);\n    };\n;\n    function r(t, u, v, w) {\n        var x = JSBNG__document.createElement(\"meta\");\n        x.id = ((\"bootloader_\" + t.replace(/[^a-z0-9]/gi, \"_\")));\n        u.appendChild(x);\n        var y = !g(o);\n        n = ((JSBNG__Date.now() + i));\n        o[t] = {\n            signal: x,\n            load: v,\n            error: w\n        };\n        if (!y) {\n            var z = JSBNG__setInterval(((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_169), function aa() {\n                if (q()) {\n                    JSBNG__clearInterval(z);\n                }\n            ;\n            ;\n            })), h, false);\n        }\n    ;\n    ;\n    };\n;\n    var s = {\n        loadStyleSheet: function(t, u, v, w, x) {\n            if (l[t]) {\n                throw new Error(((((\"CSS component \" + t)) + \" has already been requested.\")));\n            }\n        ;\n        ;\n            if (JSBNG__document.createStyleSheet) {\n                var y;\n                for (var z = 0; ((z < m.length)); z++) {\n                    if (((m[z].imports.length < 31))) {\n                        y = z;\n                        break;\n                    }\n                ;\n                ;\n                };\n            ;\n                if (((y === undefined))) {\n                    m.push(JSBNG__document.createStyleSheet());\n                    y = ((m.length - 1));\n                }\n            ;\n            ;\n                m[y].addImport(u);\n                l[t] = {\n                    styleSheet: m[y],\n                    uri: u\n                };\n                r(t, v, w, x);\n                return;\n            }\n        ;\n        ;\n            var aa = JSBNG__document.createElement(\"link\");\n            aa.rel = \"stylesheet\";\n            aa.type = \"text/css\";\n            aa.href = u;\n            l[t] = {\n                link: aa\n            };\n            if (j) {\n                aa.JSBNG__onload = function() {\n                    aa.JSBNG__onload = aa.JSBNG__onerror = null;\n                    w();\n                };\n                aa.JSBNG__onerror = function() {\n                    aa.JSBNG__onload = aa.JSBNG__onerror = null;\n                    x();\n                };\n            }\n             else {\n                r(t, v, w, x);\n                if (((j === undefined))) {\n                    p(v);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            v.appendChild(aa);\n        },\n        registerLoadedStyleSheet: function(t, u) {\n            if (l[t]) {\n                throw new Error(((((((\"CSS component \" + t)) + \" has been requested and should not be \")) + \"loaded more than once.\")));\n            }\n        ;\n        ;\n            l[t] = {\n                link: u\n            };\n        },\n        unloadStyleSheet: function(t) {\n            if (((!t in l))) {\n                return;\n            }\n        ;\n        ;\n            var u = l[t], v = u.link;\n            if (v) {\n                v.JSBNG__onload = v.JSBNG__onerror = null;\n                v.parentNode.removeChild(v);\n            }\n             else {\n                var w = u.styleSheet;\n                for (var x = 0; ((x < w.imports.length)); x++) {\n                    if (((w.imports[x].href == u.uri))) {\n                        w.removeImport(x);\n                        break;\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            delete o[t];\n            delete l[t];\n        }\n    };\n    e.exports = s;\n});\n__d(\"Bootloader\", [\"CSSLoader\",\"CallbackDependencyManager\",\"createArrayFrom\",\"ErrorUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSLoader\"), h = b(\"CallbackDependencyManager\"), i = b(\"createArrayFrom\"), j = b(\"ErrorUtils\"), k = {\n    }, l = {\n    }, m = {\n    }, n = null, o = {\n    }, p = {\n    }, q = {\n    }, r = {\n    }, s = false, t = [], u = new h(), v = [];\n    j.addListener(function(ca) {\n        ca.loadingUrls = Object.keys(p);\n    }, true);\n    function w(ca, da, ea, fa) {\n        var ga = ba.done.bind(null, [ea,], ((ca === \"css\")), da);\n        p[da] = JSBNG__Date.now();\n        if (((ca == \"js\"))) {\n            var ha = JSBNG__document.createElement(\"script\");\n            ha.src = da;\n            ha.async = true;\n            var ia = o[ea];\n            if (((ia && ia.crossOrigin))) {\n                ha.crossOrigin = \"anonymous\";\n            }\n        ;\n        ;\n            ha.JSBNG__onload = ga;\n            ha.JSBNG__onerror = function() {\n                q[da] = true;\n                ga();\n            };\n            ha.onreadystatechange = function() {\n                if (((this.readyState in {\n                    loaded: 1,\n                    complete: 1\n                }))) {\n                    ga();\n                }\n            ;\n            ;\n            };\n            fa.appendChild(ha);\n        }\n         else if (((ca == \"css\"))) {\n            g.loadStyleSheet(ea, da, fa, ga, function() {\n                q[da] = true;\n                ga();\n            });\n        }\n        \n    ;\n    ;\n    };\n;\n    function x(ca) {\n        if (!o[ca]) {\n            return;\n        }\n    ;\n    ;\n        if (((o[ca].type == \"css\"))) {\n            g.unloadStyleSheet(ca);\n            delete k[ca];\n            u.unsatisfyPersistentDependency(ca);\n        }\n    ;\n    ;\n    };\n;\n    function y(ca, da) {\n        if (!s) {\n            t.push([ca,da,]);\n            return;\n        }\n    ;\n    ;\n        ca = i(ca);\n        var ea = [];\n        for (var fa = 0; ((fa < ca.length)); ++fa) {\n            if (!ca[fa]) {\n                continue;\n            }\n        ;\n        ;\n            var ga = m[ca[fa]];\n            if (ga) {\n                var ha = ga.resources;\n                for (var ia = 0; ((ia < ha.length)); ++ia) {\n                    ea.push(ha[ia]);\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n        };\n    ;\n        ba.loadResources(ea, da);\n    };\n;\n    function z(ca) {\n        ca = i(ca);\n        for (var da = 0; ((da < ca.length)); ++da) {\n            if (((ca[da] !== undefined))) {\n                k[ca[da]] = true;\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function aa(ca) {\n        if (!ca) {\n            return [];\n        }\n    ;\n    ;\n        var da = [];\n        for (var ea = 0; ((ea < ca.length)); ++ea) {\n            if (((typeof ca[ea] == \"string\"))) {\n                if (((ca[ea] in o))) {\n                    da.push(o[ca[ea]]);\n                }\n            ;\n            ;\n            }\n             else da.push(ca[ea]);\n        ;\n        ;\n        };\n    ;\n        return da;\n    };\n;\n    var ba = {\n        configurePage: function(ca) {\n            var da = {\n            }, ea = aa(ca), fa;\n            for (fa = 0; ((fa < ea.length)); fa++) {\n                da[ea[fa].src] = ea[fa];\n                z(ea[fa].JSBNG__name);\n            };\n        ;\n            var ga = JSBNG__document.getElementsByTagName(\"link\");\n            for (fa = 0; ((fa < ga.length)); ++fa) {\n                if (((ga[fa].rel != \"stylesheet\"))) {\n                    continue;\n                }\n            ;\n            ;\n                {\n                    var fin12keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin12i = (0);\n                    var ha;\n                    for (; (fin12i < fin12keys.length); (fin12i++)) {\n                        ((ha) = (fin12keys[fin12i]));\n                        {\n                            if (((ga[fa].href.indexOf(ha) !== -1))) {\n                                var ia = da[ha].JSBNG__name;\n                                if (da[ha].permanent) {\n                                    l[ia] = true;\n                                }\n                            ;\n                            ;\n                                delete da[ha];\n                                g.registerLoadedStyleSheet(ia, ga[fa]);\n                                ba.done([ia,], true);\n                                break;\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            };\n        ;\n        },\n        loadComponents: function(ca, da) {\n            ca = i(ca);\n            var ea = [], fa = [];\n            for (var ga = 0; ((ga < ca.length)); ga++) {\n                var ha = m[ca[ga]];\n                if (((ha && !ha.module))) {\n                    continue;\n                }\n            ;\n            ;\n                var ia = ((\"legacy:\" + ca[ga]));\n                if (m[ia]) {\n                    ca[ga] = ia;\n                    ea.push(ia);\n                }\n                 else if (((ha && ha.module))) {\n                    ea.push(ca[ga]);\n                    if (!ha.runWhenReady) {\n                        fa.push(ca[ga]);\n                    }\n                ;\n                ;\n                }\n                \n            ;\n            ;\n            };\n        ;\n            y(ca, ((ea.length ? d.bind(null, ea, da) : da)));\n        },\n        loadModules: function(ca, da) {\n            var ea = [], fa = [];\n            for (var ga = 0; ((ga < ca.length)); ga++) {\n                var ha = m[ca[ga]];\n                if (((!ha || ha.module))) {\n                    ea.push(ca[ga]);\n                }\n            ;\n            ;\n            };\n        ;\n            y(ca, d.bind(null, ea, da));\n        },\n        loadResources: function(ca, da, ea, fa) {\n            var ga;\n            ca = aa(i(ca));\n            if (ea) {\n                var ha = {\n                };\n                for (ga = 0; ((ga < ca.length)); ++ga) {\n                    ha[ca[ga].JSBNG__name] = true;\n                ;\n                };\n            ;\n                {\n                    var fin13keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin13i = (0);\n                    var ia;\n                    for (; (fin13i < fin13keys.length); (fin13i++)) {\n                        ((ia) = (fin13keys[fin13i]));\n                        {\n                            if (((((!((ia in l)) && !((ia in ha)))) && !((ia in r))))) {\n                                x(ia);\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n                r = {\n                };\n            }\n        ;\n        ;\n            var ja = [], ka = [];\n            for (ga = 0; ((ga < ca.length)); ++ga) {\n                var la = ca[ga];\n                if (la.permanent) {\n                    l[la.JSBNG__name] = true;\n                }\n            ;\n            ;\n                if (u.isPersistentDependencySatisfied(la.JSBNG__name)) {\n                    continue;\n                }\n            ;\n            ;\n                if (!la.nonblocking) {\n                    ka.push(la.JSBNG__name);\n                }\n            ;\n            ;\n                if (!k[la.JSBNG__name]) {\n                    z(la.JSBNG__name);\n                    ja.push(la);\n                    ((window.CavalryLogger && window.CavalryLogger.getInstance().measureResources(la, fa)));\n                }\n            ;\n            ;\n            };\n        ;\n            var ma;\n            if (da) {\n                if (((typeof da === \"function\"))) {\n                    ma = u.registerCallback(da, ka);\n                }\n                 else ma = u.addDependenciesToExistingCallback(da, ka);\n            ;\n            }\n        ;\n        ;\n            var na = ((JSBNG__document.documentMode || +((/MSIE.(\\d+)/.exec(JSBNG__navigator.userAgent) || []))[1])), oa = ba.getHardpoint(), pa = ((na ? oa : JSBNG__document.createDocumentFragment()));\n            for (ga = 0; ((ga < ja.length)); ++ga) {\n                w(ja[ga].type, ja[ga].src, ja[ga].JSBNG__name, pa);\n            ;\n            };\n        ;\n            if (((oa !== pa))) {\n                oa.appendChild(pa);\n            }\n        ;\n        ;\n            return ma;\n        },\n        requestJSResource: function(ca) {\n            var da = ba.getHardpoint();\n            w(\"js\", ca, null, da);\n        },\n        done: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190), function(ca, da, ea) {\n            if (ea) {\n                delete p[ea];\n            }\n        ;\n        ;\n            z(ca);\n            if (!da) {\n                for (var fa = 0, ga = v.length; ((fa < ga)); fa++) {\n                    v[fa]();\n                ;\n                };\n            }\n        ;\n        ;\n            for (var ha = 0; ((ha < ca.length)); ++ha) {\n                var ia = ca[ha];\n                if (((ia !== undefined))) {\n                    u.satisfyPersistentDependency(ia);\n                }\n            ;\n            ;\n            };\n        ;\n        })),\n        subscribeToLoadedResources_DEPRECATED: function(ca) {\n            v.push(ca);\n        },\n        enableBootload: function(ca) {\n            {\n                var fin14keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin14i = (0);\n                var da;\n                for (; (fin14i < fin14keys.length); (fin14i++)) {\n                    ((da) = (fin14keys[fin14i]));\n                    {\n                        if (!m[da]) {\n                            m[da] = ca[da];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (!s) {\n                s = true;\n                for (var ea = 0; ((ea < t.length)); ea++) {\n                    y.apply(null, t[ea]);\n                ;\n                };\n            ;\n                t = [];\n            }\n        ;\n        ;\n        },\n        getHardpoint: function() {\n            if (!n) {\n                var ca = JSBNG__document.getElementsByTagName(\"head\");\n                n = ((((ca.length && ca[0])) || JSBNG__document.body));\n            }\n        ;\n        ;\n            return n;\n        },\n        setResourceMap: function(ca) {\n            {\n                var fin15keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin15i = (0);\n                var da;\n                for (; (fin15i < fin15keys.length); (fin15i++)) {\n                    ((da) = (fin15keys[fin15i]));\n                    {\n                        if (!o[da]) {\n                            ca[da].JSBNG__name = da;\n                            o[da] = ca[da];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        loadEarlyResources: function(ca) {\n            ba.setResourceMap(ca);\n            var da = [];\n            {\n                var fin16keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin16i = (0);\n                var ea;\n                for (; (fin16i < fin16keys.length); (fin16i++)) {\n                    ((ea) = (fin16keys[fin16i]));\n                    {\n                        var fa = o[ea];\n                        da.push(fa);\n                        if (!fa.permanent) {\n                            r[fa.JSBNG__name] = fa;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            ba.loadResources(da);\n        },\n        getLoadingUrls: function() {\n            var ca = {\n            }, da = JSBNG__Date.now();\n            {\n                var fin17keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin17i = (0);\n                var ea;\n                for (; (fin17i < fin17keys.length); (fin17i++)) {\n                    ((ea) = (fin17keys[fin17i]));\n                    {\n                        ca[ea] = ((da - p[ea]));\n                    ;\n                    };\n                };\n            };\n        ;\n            return ca;\n        },\n        getErrorUrls: function() {\n            return Object.keys(q);\n        }\n    };\n    e.exports = ba;\n});\n__d(\"BlueBarController\", [\"Bootloader\",\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CSS\");\n    f.init = function(i) {\n        if (((\"getBoundingClientRect\" in i))) {\n            var j = function() {\n                var k = i.getBoundingClientRect(), l = ((Math.round(k.JSBNG__top) - JSBNG__document.documentElement.clientTop));\n                h.conditionClass(i.firstChild, \"fixed_elem\", ((l <= 0)));\n            };\n            j();\n            g.loadModules([\"JSBNG__Event\",], function(k) {\n                k.listen(window, \"JSBNG__scroll\", j);\n            });\n        }\n    ;\n    ;\n    };\n});\n__d(\"legacy:arbiter\", [\"Arbiter\",], function(a, b, c, d) {\n    a.Arbiter = b(\"Arbiter\");\n}, 3);\n__d(\"event-form-bubbling\", [], function(a, b, c, d, e, f) {\n    a.JSBNG__Event = ((a.JSBNG__Event || function() {\n    \n    }));\n    a.JSBNG__Event.__inlineSubmit = function(g, JSBNG__event) {\n        var h = ((a.JSBNG__Event.__getHandler && a.JSBNG__Event.__getHandler(g, \"submit\")));\n        return ((h ? null : a.JSBNG__Event.__bubbleSubmit(g, JSBNG__event)));\n    };\n    a.JSBNG__Event.__bubbleSubmit = function(g, JSBNG__event) {\n        if (JSBNG__document.documentElement.JSBNG__attachEvent) {\n            var h;\n            while (((((h !== false)) && (g = g.parentNode)))) {\n                h = ((g.JSBNG__onsubmit ? g.JSBNG__onsubmit(JSBNG__event) : ((a.JSBNG__Event.__fire && a.JSBNG__Event.__fire(g, \"submit\", JSBNG__event)))));\n            ;\n            };\n        ;\n            return h;\n        }\n    ;\n    ;\n    };\n}, 3);\n__d(\"OnloadEvent\", [], function(a, b, c, d, e, f) {\n    var g = {\n        ONLOAD: \"onload/onload\",\n        ONLOAD_CALLBACK: \"onload/onload_callback\",\n        ONLOAD_DOMCONTENT: \"onload/dom_content_ready\",\n        ONLOAD_DOMCONTENT_CALLBACK: \"onload/domcontent_callback\",\n        ONBEFOREUNLOAD: \"onload/beforeunload\",\n        ONUNLOAD: \"onload/unload\"\n    };\n    e.exports = g;\n});\n__d(\"Run\", [\"Arbiter\",\"OnloadEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"OnloadEvent\"), i = \"onunloadhooks\", j = \"onafterunloadhooks\", k = g.BEHAVIOR_STATE;\n    function l(ba) {\n        var ca = a.CavalryLogger;\n        ((ca && ca.getInstance().setTimeStamp(ba)));\n    };\n;\n    function m() {\n        return !window.loading_page_chrome;\n    };\n;\n    function n(ba) {\n        var ca = a.OnloadHooks;\n        if (((window.loaded && ca))) {\n            ca.runHook(ba, \"onlateloadhooks\");\n        }\n         else u(\"onloadhooks\", ba);\n    ;\n    ;\n    };\n;\n    function o(ba) {\n        var ca = a.OnloadHooks;\n        if (((window.afterloaded && ca))) {\n            JSBNG__setTimeout(function() {\n                ca.runHook(ba, \"onlateafterloadhooks\");\n            }, 0);\n        }\n         else u(\"onafterloadhooks\", ba);\n    ;\n    ;\n    };\n;\n    function p(ba, ca) {\n        if (((ca === undefined))) {\n            ca = m();\n        }\n    ;\n    ;\n        ((ca ? u(\"onbeforeleavehooks\", ba) : u(\"onbeforeunloadhooks\", ba)));\n    };\n;\n    function q(ba, ca) {\n        if (!window.JSBNG__onunload) {\n            window.JSBNG__onunload = function() {\n                g.inform(h.ONUNLOAD, true, k);\n            };\n        }\n    ;\n    ;\n        u(ba, ca);\n    };\n;\n    function r(ba) {\n        q(i, ba);\n    };\n;\n    function s(ba) {\n        q(j, ba);\n    };\n;\n    function t(ba) {\n        u(\"onleavehooks\", ba);\n    };\n;\n    function u(ba, ca) {\n        window[ba] = ((window[ba] || [])).concat(ca);\n    };\n;\n    function v(ba) {\n        window[ba] = [];\n    };\n;\n    {\n        function w() {\n            g.inform(h.ONLOAD_DOMCONTENT, true, k);\n        };\n        ((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_222.push)((w)));\n    };\n;\n    a._domcontentready = w;\n    function x() {\n        var ba = JSBNG__document, ca = window;\n        if (ba.JSBNG__addEventListener) {\n            var da = /AppleWebKit.(\\d+)/.exec(JSBNG__navigator.userAgent);\n            if (((da && ((da[1] < 525))))) {\n                var ea = JSBNG__setInterval(function() {\n                    if (/loaded|complete/.test(ba.readyState)) {\n                        w();\n                        JSBNG__clearInterval(ea);\n                    }\n                ;\n                ;\n                }, 10);\n            }\n             else ba.JSBNG__addEventListener(\"DOMContentLoaded\", w, true);\n        ;\n        ;\n        }\n         else {\n            var fa = \"javascript:void(0)\";\n            if (((ca.JSBNG__location.protocol == \"https:\"))) {\n                fa = \"//:\";\n            }\n        ;\n        ;\n            ba.write(((((((((\"\\u003Cscript onreadystatechange=\\\"if (this.readyState=='complete') {\" + \"this.parentNode.removeChild(this);_domcontentready();}\\\" \")) + \"defer=\\\"defer\\\" src=\\\"\")) + fa)) + \"\\\"\\u003E\\u003C/script\\u003E\")));\n        }\n    ;\n    ;\n        var ga = ca.JSBNG__onload;\n        ca.JSBNG__onload = ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_225), function() {\n            l(\"t_layout\");\n            ((ga && ga()));\n            g.inform(h.ONLOAD, true, k);\n        }));\n        ca.JSBNG__onbeforeunload = ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_226), function() {\n            var ha = {\n            };\n            g.inform(h.ONBEFOREUNLOAD, ha, k);\n            if (!ha.warn) {\n                g.inform(\"onload/exit\", true);\n            }\n        ;\n        ;\n            return ha.warn;\n        }));\n    };\n;\n    var y = g.registerCallback(function() {\n        l(\"t_onload\");\n        g.inform(h.ONLOAD_CALLBACK, true, k);\n    }, [h.ONLOAD,]), z = g.registerCallback(function() {\n        l(\"t_domcontent\");\n        var ba = {\n            timeTriggered: JSBNG__Date.now()\n        };\n        g.inform(h.ONLOAD_DOMCONTENT_CALLBACK, ba, k);\n    }, [h.ONLOAD_DOMCONTENT,]);\n    x();\n    var aa = {\n        onLoad: n,\n        onAfterLoad: o,\n        onLeave: t,\n        onBeforeUnload: p,\n        onUnload: r,\n        onAfterUnload: s,\n        __domContentCallback: z,\n        __onloadCallback: y,\n        __removeHook: v\n    };\n    e.exports = aa;\n});\n__d(\"legacy:onload\", [\"Run\",\"OnloadEvent\",], function(a, b, c, d) {\n    var e = b(\"Run\");\n    a.OnloadEvent = b(\"OnloadEvent\");\n    a.onloadRegister_DEPRECATED = e.onLoad;\n    a.onloadRegister = function() {\n        return e.onLoad.apply(this, arguments);\n    };\n    a.onafterloadRegister_DEPRECATED = e.onAfterLoad;\n    a.onafterloadRegister = function() {\n        return e.onAfterLoad.apply(this, arguments);\n    };\n    a.onleaveRegister = e.onLeave;\n    a.onbeforeunloadRegister = e.onBeforeUnload;\n    a.onunloadRegister = e.onUnload;\n}, 3);\n__d(\"wait_for_load\", [\"Bootloader\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Run\");\n    function i(l, m) {\n        return ((window.loaded && m.call(l)));\n    };\n;\n    function j(l, m, n) {\n        g.loadComponents.call(g, m, n.bind(l));\n        return false;\n    };\n;\n    function k(l, m, n) {\n        n = n.bind(l, m);\n        if (window.loaded) {\n            return n();\n        }\n    ;\n    ;\n        switch (((m || JSBNG__event)).type) {\n          case \"load\":\n        \n          case \"JSBNG__focus\":\n            h.onAfterLoad(n);\n            return;\n          case \"click\":\n            var o = l.style, p = JSBNG__document.body.style;\n            o.cursor = p.cursor = \"progress\";\n            h.onAfterLoad(function() {\n                o.cursor = p.cursor = \"\";\n                if (((l.tagName.toLowerCase() == \"a\"))) {\n                    if (((((false !== n())) && l.href))) {\n                        window.JSBNG__location.href = l.href;\n                    }\n                ;\n                ;\n                }\n                 else if (l.click) {\n                    l.click();\n                }\n                \n            ;\n            ;\n            });\n            break;\n        };\n    ;\n        return false;\n    };\n;\n    a.run_if_loaded = i;\n    a.run_with = j;\n    a.wait_for_load = k;\n}, 3);\n__d(\"markJSEnabled\", [], function(a, b, c, d, e, f) {\n    var g = JSBNG__document.documentElement;\n    g.className = g.className.replace(\"no_js\", \"\");\n});\n__d(\"JSCC\", [], function(a, b, c, d, e, f) {\n    var g = {\n    };\n    function h(j) {\n        var k, l = false;\n        return function() {\n            if (!l) {\n                k = j();\n                l = true;\n            }\n        ;\n        ;\n            return k;\n        };\n    };\n;\n    var i = {\n        get: function(j) {\n            if (!g[j]) {\n                throw new Error(\"JSCC entry is missing\");\n            }\n        ;\n        ;\n            return g[j]();\n        },\n        init: function(j) {\n            {\n                var fin18keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin18i = (0);\n                var k;\n                for (; (fin18i < fin18keys.length); (fin18i++)) {\n                    ((k) = (fin18keys[fin18i]));\n                    {\n                        g[k] = h(j[k]);\n                    ;\n                    };\n                };\n            };\n        ;\n            return function l() {\n                {\n                    var fin19keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin19i = (0);\n                    var m;\n                    for (; (fin19i < fin19keys.length); (fin19i++)) {\n                        ((m) = (fin19keys[fin19i]));\n                        {\n                            delete g[m];\n                        ;\n                        };\n                    };\n                };\n            ;\n            };\n        }\n    };\n    e.exports = i;\n});\n__d(\"PageletSet\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = {\n    }, j = {\n        hasPagelet: function(m) {\n            return i.hasOwnProperty(m);\n        },\n        getPagelet: function(m) {\n            return i[m];\n        },\n        getOrCreatePagelet: function(m) {\n            if (!j.hasPagelet(m)) {\n                var n = new l(m);\n                i[m] = n;\n            }\n        ;\n        ;\n            return j.getPagelet(m);\n        },\n        getPageletIDs: function() {\n            return Object.keys(i);\n        },\n        removePagelet: function(m) {\n            if (j.hasPagelet(m)) {\n                i[m].destroy();\n                delete i[m];\n            }\n        ;\n        ;\n        }\n    };\n    function k(m, n) {\n        return ((m.contains ? m.contains(n) : ((m.compareDocumentPosition(n) & 16))));\n    };\n;\n    function l(m) {\n        this.id = m;\n        this._root = null;\n        this._destructors = [];\n        this.addDestructor(function n() {\n            g.inform(\"pagelet/destroy\", {\n                id: this.id,\n                root: this._root\n            });\n        }.bind(this));\n    };\n;\n    h(l.prototype, {\n        setRoot: function(m) {\n            this._root = m;\n        },\n        _getDescendantPagelets: function() {\n            var m = [];\n            if (!this._root) {\n                return m;\n            }\n        ;\n        ;\n            var n = j.getPageletIDs();\n            for (var o = 0; ((o < n.length)); o++) {\n                var p = n[o];\n                if (((p === this.id))) {\n                    continue;\n                }\n            ;\n            ;\n                var q = i[p];\n                if (((q._root && k(this._root, q._root)))) {\n                    m.push(q);\n                }\n            ;\n            ;\n            };\n        ;\n            return m;\n        },\n        addDestructor: function(m) {\n            this._destructors.push(m);\n        },\n        destroy: function() {\n            var m = this._getDescendantPagelets();\n            for (var n = 0; ((n < m.length)); n++) {\n                var o = m[n];\n                if (j.hasPagelet(o.id)) {\n                    j.removePagelet(o.id);\n                }\n            ;\n            ;\n            };\n        ;\n            for (n = 0; ((n < this._destructors.length)); n++) {\n                this._destructors[n]();\n            ;\n            };\n        ;\n            if (this._root) {\n                while (this._root.firstChild) {\n                    this._root.removeChild(this._root.firstChild);\n                ;\n                };\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"repeatString\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\");\n    function h(i, j) {\n        if (((j === 1))) {\n            return i;\n        }\n    ;\n    ;\n        g(((j >= 0)));\n        var k = \"\";\n        while (j) {\n            if (((j & 1))) {\n                k += i;\n            }\n        ;\n        ;\n            if ((j >>= 1)) {\n                i += i;\n            }\n        ;\n        ;\n        };\n    ;\n        return k;\n    };\n;\n    e.exports = h;\n});\n__d(\"BitMap\", [\"copyProperties\",\"repeatString\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"repeatString\"), i = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\";\n    function j() {\n        this._bits = [];\n    };\n;\n    g(j.prototype, {\n        set: function(m) {\n            this._bits[m] = 1;\n            return this;\n        },\n        toString: function() {\n            var m = [];\n            for (var n = 0; ((n < this._bits.length)); n++) {\n                m.push(((this._bits[n] ? 1 : 0)));\n            ;\n            };\n        ;\n            return ((m.length ? l(m.join(\"\")) : \"\"));\n        },\n        toCompressedString: function() {\n            if (((this._bits.length === 0))) {\n                return \"\";\n            }\n        ;\n        ;\n            var m = [], n = 1, o = ((this._bits[0] || 0)), p = o.toString(2);\n            for (var q = 1; ((q < this._bits.length)); q++) {\n                var r = ((this._bits[q] || 0));\n                if (((r === o))) {\n                    n++;\n                }\n                 else {\n                    m.push(k(n));\n                    o = r;\n                    n = 1;\n                }\n            ;\n            ;\n            };\n        ;\n            if (n) {\n                m.push(k(n));\n            }\n        ;\n        ;\n            return l(((p + m.join(\"\"))));\n        }\n    });\n    function k(m) {\n        var n = m.toString(2), o = h(\"0\", ((n.length - 1)));\n        return ((o + n));\n    };\n;\n    function l(m) {\n        var n = ((m + \"00000\")).match(/[01]{6}/g), o = \"\";\n        for (var p = 0; ((p < n.length)); p++) {\n            o += i[parseInt(n[p], 2)];\n        ;\n        };\n    ;\n        return o;\n    };\n;\n    e.exports = j;\n});\n__d(\"ServerJS\", [\"BitMap\",\"ErrorUtils\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"BitMap\"), h = b(\"ErrorUtils\"), i = b(\"copyProperties\"), j = b(\"ge\"), k = 0, l = new g();\n    function m() {\n        this._moduleMap = {\n        };\n        this._relativeTo = null;\n        this._moduleIDsToCleanup = {\n        };\n    };\n;\n    m.getLoadedModuleHash = function() {\n        return l.toCompressedString();\n    };\n    i(m.prototype, {\n        handle: function(q) {\n            if (q.__guard) {\n                throw new Error(\"ServerJS.handle called on data that has already been handled\");\n            }\n        ;\n        ;\n            q.__guard = true;\n            n(((q.define || [])), this._handleDefine, this);\n            n(((q.markup || [])), this._handleMarkup, this);\n            n(((q.elements || [])), this._handleElement, this);\n            n(((q.instances || [])), this._handleInstance, this);\n            var r = n(((q.require || [])), this._handleRequire, this);\n            return {\n                cancel: function() {\n                    for (var s = 0; ((s < r.length)); s++) {\n                        if (r[s]) {\n                            r[s].cancel();\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                }\n            };\n        },\n        handlePartial: function(q) {\n            ((q.instances || [])).forEach(o.bind(null, this._moduleMap, 3));\n            ((q.markup || [])).forEach(o.bind(null, this._moduleMap, 2));\n            return this.handle(q);\n        },\n        setRelativeTo: function(q) {\n            this._relativeTo = q;\n            return this;\n        },\n        cleanup: function() {\n            var q = [];\n            {\n                var fin20keys = ((window.top.JSBNG_Replay.forInKeys)((this._moduleMap))), fin20i = (0);\n                var r;\n                for (; (fin20i < fin20keys.length); (fin20i++)) {\n                    ((r) = (fin20keys[fin20i]));\n                    {\n                        q.push(r);\n                    ;\n                    };\n                };\n            };\n        ;\n            d.call(null, q, p);\n            this._moduleMap = {\n            };\n            function s(u) {\n                var v = this._moduleIDsToCleanup[u], w = v[0], x = v[1];\n                delete this._moduleIDsToCleanup[u];\n                var y = ((x ? ((((((((\"JS::call(\\\"\" + w)) + \"\\\", \\\"\")) + x)) + \"\\\", ...)\")) : ((((\"JS::requireModule(\\\"\" + w)) + \"\\\")\")))), z = ((y + \" did not fire because it has missing dependencies.\"));\n                throw new Error(z);\n            };\n        ;\n            {\n                var fin21keys = ((window.top.JSBNG_Replay.forInKeys)((this._moduleIDsToCleanup))), fin21i = (0);\n                var t;\n                for (; (fin21i < fin21keys.length); (fin21i++)) {\n                    ((t) = (fin21keys[fin21i]));\n                    {\n                        h.applyWithGuard(s, this, [t,]);\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        _handleDefine: function(q, r, s, t) {\n            if (((t >= 0))) {\n                l.set(t);\n            }\n        ;\n        ;\n            define(q, r, function() {\n                this._replaceTransportMarkers(s);\n                return s;\n            }.bind(this));\n        },\n        _handleRequire: function(q, r, s, t) {\n            var u = [q,].concat(((s || []))), v = ((((r ? \"__call__\" : \"__requireModule__\")) + k++));\n            this._moduleIDsToCleanup[v] = [q,r,];\n            return define(v, u, function(w) {\n                delete this._moduleIDsToCleanup[v];\n                ((t && this._replaceTransportMarkers(t)));\n                if (r) {\n                    if (!w[r]) {\n                        throw new TypeError(((((((\"Module \" + q)) + \" has no method \")) + r)));\n                    }\n                ;\n                ;\n                    w[r].apply(w, ((t || [])));\n                }\n            ;\n            ;\n            }, 1, this, 1);\n        },\n        _handleInstance: function(q, r, s, t) {\n            var u = null;\n            if (r) {\n                u = function(v) {\n                    this._replaceTransportMarkers(s);\n                    var w = Object.create(v.prototype);\n                    v.apply(w, s);\n                    return w;\n                }.bind(this);\n            }\n        ;\n        ;\n            define(q, r, u, 0, null, t);\n        },\n        _handleMarkup: function(q, r, s) {\n            define(q, [\"HTML\",], function(t) {\n                return t.replaceJSONWrapper(r).getRootNode();\n            }, 0, null, s);\n        },\n        _handleElement: function(q, r, s, t) {\n            var u = [], v = 0;\n            if (t) {\n                u.push(t);\n                v = 1;\n                s++;\n            }\n        ;\n        ;\n            define(q, u, function(w) {\n                var x = j(r, w);\n                if (!x) {\n                    var y = ((\"Could not find element \" + r));\n                    throw new Error(y);\n                }\n            ;\n            ;\n                return x;\n            }, v, null, s);\n        },\n        _replaceTransportMarkers: function(q, r) {\n            var s = ((((typeof r !== \"undefined\")) ? q[r] : q)), t;\n            if (Array.isArray(s)) {\n                for (t = 0; ((t < s.length)); t++) {\n                    this._replaceTransportMarkers(s, t);\n                ;\n                };\n            ;\n            }\n             else if (((s && ((typeof s == \"object\"))))) {\n                if (s.__m) {\n                    q[r] = b.call(null, s.__m);\n                }\n                 else if (s.__e) {\n                    q[r] = j(s.__e);\n                }\n                 else if (s.__rel) {\n                    q[r] = this._relativeTo;\n                }\n                 else {\n                    var fin22keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin22i = (0);\n                    var u;\n                    for (; (fin22i < fin22keys.length); (fin22i++)) {\n                        ((u) = (fin22keys[fin22i]));\n                        {\n                            this._replaceTransportMarkers(s, u);\n                        ;\n                        };\n                    };\n                }\n                \n                \n            ;\n            }\n            \n        ;\n        ;\n        }\n    });\n    function n(q, r, s) {\n        return q.map(function(t) {\n            return h.applyWithGuard(r, s, t);\n        });\n    };\n;\n    function o(q, r, s) {\n        var t = s[0];\n        if (!((t in q))) {\n            s[r] = ((((s[r] || 0)) + 1));\n        }\n    ;\n    ;\n        q[t] = true;\n    };\n;\n    function p() {\n        return {\n        };\n    };\n;\n    e.exports = m;\n});\n__d(\"invokeCallbacks\", [\"ErrorUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\");\n    function h(i, j) {\n        if (i) {\n            for (var k = 0; ((k < i.length)); k++) {\n                g.applyWithGuard(new Function(i[k]), j);\n            ;\n            };\n        }\n    ;\n    ;\n    };\n;\n    e.exports = h;\n});\n__d(\"ix\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = {\n    };\n    function i(j) {\n        return h[j];\n    };\n;\n    i.add = g.bind(null, h);\n    e.exports = i;\n});\n__d(\"BigPipe\", [\"Arbiter\",\"Bootloader\",\"Env\",\"ErrorUtils\",\"JSCC\",\"OnloadEvent\",\"PageletSet\",\"Run\",\"ServerJS\",\"$\",\"copyProperties\",\"ge\",\"invokeCallbacks\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"Env\"), j = b(\"ErrorUtils\"), k = b(\"JSCC\"), l = b(\"OnloadEvent\"), m = b(\"PageletSet\"), n = b(\"Run\"), o = b(\"ServerJS\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = b(\"invokeCallbacks\"), t = b(\"ix\"), u = ((JSBNG__document.documentMode || +((/MSIE.(\\d+)/.exec(JSBNG__navigator.userAgent) || []))[1])), v = g.BEHAVIOR_STATE, w = g.BEHAVIOR_PERSISTENT;\n    function x(ba) {\n        q(this, {\n            arbiter: g,\n            rootNodeID: \"JSBNG__content\",\n            lid: 0,\n            isAjax: false,\n            domContentCallback: n.__domContentCallback,\n            onloadCallback: n.__onloadCallback,\n            domContentEvt: l.ONLOAD_DOMCONTENT_CALLBACK,\n            onloadEvt: l.ONLOAD_CALLBACK,\n            forceFinish: false,\n            _phaseDoneCallbacks: [],\n            _currentPhase: 0,\n            _lastPhase: -1,\n            _livePagelets: {\n            }\n        });\n        q(this, ba);\n        if (this.automatic) {\n            this._relevant_instance = x._current_instance;\n        }\n         else x._current_instance = this;\n    ;\n    ;\n        this._serverJS = new o();\n        g.inform(\"BigPipe/init\", {\n            lid: this.lid,\n            arbiter: this.arbiter\n        }, w);\n        this.arbiter.registerCallback(this.domContentCallback, [\"pagelet_displayed_all\",]);\n        this._informEventExternal(\"phase_begin\", {\n            phase: 0\n        });\n        this.arbiter.inform(\"phase_begin_0\", true, v);\n        this.onloadCallback = this.arbiter.registerCallback(this.onloadCallback, [\"pagelet_displayed_all\",]);\n        this.arbiter.registerCallback(this._serverJS.cleanup.bind(this._serverJS), [this.onloadEvt,]);\n    };\n;\n    x.getCurrentInstance = function() {\n        return x._current_instance;\n    };\n    q(x.prototype, {\n        onPageletArrive: j.guard(function(ba) {\n            this._informPageletEvent(\"arrive\", ba.id, ba.phase);\n            ba.JSBNG__content = ((ba.JSBNG__content || {\n            }));\n            var ca = ba.phase;\n            if (!this._phaseDoneCallbacks[ca]) {\n                this._phaseDoneCallbacks[ca] = this.arbiter.registerCallback(this._onPhaseDone.bind(this), [((\"phase_complete_\" + ca)),]);\n            }\n        ;\n        ;\n            this.arbiter.registerCallback(this._phaseDoneCallbacks[ca], [((ba.id + \"_displayed\")),]);\n            var da = this._getPageletRootID(ba), ea = m.getOrCreatePagelet(da);\n            if (ba.the_end) {\n                this._lastPhase = ca;\n            }\n        ;\n        ;\n            if (((ba.tti_phase !== undefined))) {\n                this._ttiPhase = ba.tti_phase;\n            }\n        ;\n        ;\n            if (ba.is_second_to_last_phase) {\n                this._secondToLastPhase = ca;\n            }\n        ;\n        ;\n            this._livePagelets[ea.id] = true;\n            ea.addDestructor(function() {\n                delete this._livePagelets[ea.id];\n            }.bind(this));\n            if (ba.jscc_map) {\n                var fa = (eval)(ba.jscc_map), ga = k.init(fa);\n                ea.addDestructor(ga);\n            }\n        ;\n        ;\n            if (ba.resource_map) {\n                h.setResourceMap(ba.resource_map);\n            }\n        ;\n        ;\n            if (ba.bootloadable) {\n                h.enableBootload(ba.bootloadable);\n            }\n        ;\n        ;\n            t.add(ba.ixData);\n            this._informPageletEvent(\"setup\", ba.id);\n            var ha = new g();\n            ha.registerCallback(this._displayPageletHandler.bind(this, ba), [\"preceding_pagelets_displayed\",\"display_resources_downloaded\",]);\n            var ia = ((ba.display_dependency || [])), ja = ia.map(function(la) {\n                return ((la + \"_displayed\"));\n            });\n            this.arbiter.registerCallback(function() {\n                ha.inform(\"preceding_pagelets_displayed\");\n            }, ja);\n            this.arbiter.registerCallback(function() {\n                this._informPageletEvent(\"css\", ba.id);\n                var la = ((ba.css || [])).concat(((ba.displayJS || [])));\n                h.loadResources(la, function() {\n                    this._informPageletEvent(\"css_load\", ba.id);\n                    ha.inform(\"display_resources_downloaded\");\n                }.bind(this), false, ba.id);\n            }.bind(this), [((\"phase_begin_\" + ca)),]);\n            this.arbiter.registerCallback(this.onloadCallback, [\"pagelet_onload\",]);\n            var ka = [((ba.id + \"_displayed\")),];\n            if (!this.jsNonBlock) {\n                ka.push(this.domContentEvt);\n            }\n        ;\n        ;\n            this.arbiter.registerCallback(this._downloadJsForPagelet.bind(this, ba), ka);\n            if (ba.is_last) {\n                this._endPhase(ca);\n            }\n        ;\n        ;\n        }),\n        _beginPhase: function(ba) {\n            this._informEventExternal(\"phase_begin\", {\n                phase: ba\n            });\n            this.arbiter.inform(((\"phase_begin_\" + ba)), true, v);\n        },\n        _endPhase: function(ba) {\n            this.arbiter.inform(((\"phase_complete_\" + ba)), true, v);\n        },\n        _displayPageletHandler: function(ba) {\n            if (this.displayCallback) {\n                this.displayCallback(this._displayPagelet.bind(this, ba));\n            }\n             else this._displayPagelet(ba);\n        ;\n        ;\n        },\n        _displayPagelet: function(ba) {\n            this._informPageletEvent(\"display_start\", ba.id);\n            var ca = this._getPagelet(ba);\n            {\n                var fin23keys = ((window.top.JSBNG_Replay.forInKeys)((ba.JSBNG__content))), fin23i = (0);\n                var da;\n                for (; (fin23i < fin23keys.length); (fin23i++)) {\n                    ((da) = (fin23keys[fin23i]));\n                    {\n                        var ea = ba.JSBNG__content[da];\n                        if (ba.append) {\n                            da = this._getPageletRootID(ba);\n                        }\n                    ;\n                    ;\n                        var fa = r(da);\n                        if (!fa) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        if (((da === ca.id))) {\n                            ca.setRoot(fa);\n                        }\n                    ;\n                    ;\n                        ea = y(ea);\n                        if (ea) {\n                            if (((ba.append || ((u < 8))))) {\n                                if (!ba.append) {\n                                    while (fa.firstChild) {\n                                        fa.removeChild(fa.firstChild);\n                                    ;\n                                    };\n                                }\n                            ;\n                            ;\n                                aa(fa, ea);\n                            }\n                             else fa.innerHTML = ea;\n                        ;\n                        }\n                    ;\n                    ;\n                        var ga = fa.getAttribute(\"data-referrer\");\n                        if (!ga) {\n                            fa.setAttribute(\"data-referrer\", da);\n                        }\n                    ;\n                    ;\n                        if (((ba.cache_hit && i.pc_debug))) {\n                            fa.style.border = \"1px red solid\";\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (ba.jsmods) {\n                var ha = JSON.parse(JSON.stringify(ba.jsmods)), ia = this._serverJS.handlePartial(ha);\n                ca.addDestructor(ia.cancel.bind(ia));\n            }\n        ;\n        ;\n            this._informPageletEvent(\"display\", ba.id);\n            this.arbiter.inform(((ba.id + \"_displayed\")), true, v);\n        },\n        _onPhaseDone: function() {\n            if (((this._currentPhase === this._ttiPhase))) {\n                this._informEventExternal(\"tti_bigpipe\", {\n                    phase: this._ttiPhase\n                });\n            }\n        ;\n        ;\n            if (((((this._currentPhase === this._lastPhase)) && this._isRelevant()))) {\n                this.arbiter.inform(\"pagelet_displayed_all\", true, v);\n            }\n        ;\n        ;\n            this._currentPhase++;\n            if (((u <= 8))) {\n                JSBNG__setTimeout(this._beginPhase.bind(this, this._currentPhase), 20);\n            }\n             else this._beginPhase(this._currentPhase);\n        ;\n        ;\n        },\n        _downloadJsForPagelet: function(ba) {\n            this._informPageletEvent(\"jsstart\", ba.id);\n            h.loadResources(((ba.js || [])), function() {\n                this._informPageletEvent(\"jsdone\", ba.id);\n                ba.requires = ((ba.requires || []));\n                if (((!this.isAjax || ((ba.phase >= 1))))) {\n                    ba.requires.push(\"uipage_onload\");\n                }\n            ;\n            ;\n                var ca = function() {\n                    this._informPageletEvent(\"preonload\", ba.id);\n                    if (this._isRelevantPagelet(ba)) {\n                        s(ba.JSBNG__onload);\n                    }\n                ;\n                ;\n                    this._informPageletEvent(\"JSBNG__onload\", ba.id);\n                    this.arbiter.inform(\"pagelet_onload\", true, g.BEHAVIOR_EVENT);\n                    ((ba.provides && this.arbiter.inform(ba.provides, true, v)));\n                }.bind(this), da = function() {\n                    ((this._isRelevantPagelet(ba) && s(ba.onafterload)));\n                }.bind(this);\n                this.arbiter.registerCallback(ca, ba.requires);\n                this.arbiter.registerCallback(da, [this.onloadEvt,]);\n            }.bind(this), false, ba.id);\n        },\n        _getPagelet: function(ba) {\n            var ca = this._getPageletRootID(ba);\n            return m.getPagelet(ca);\n        },\n        _getPageletRootID: function(ba) {\n            var ca = ba.append;\n            if (ca) {\n                return ((((ca === \"bigpipe_root\")) ? this.rootNodeID : ca));\n            }\n        ;\n        ;\n            return ((Object.keys(ba.JSBNG__content)[0] || null));\n        },\n        _isRelevant: function() {\n            return ((((((((this == x._current_instance)) || ((this.automatic && ((this._relevant_instance == x._current_instance)))))) || this.jsNonBlock)) || this.forceFinish));\n        },\n        _isRelevantPagelet: function(ba) {\n            if (!this._isRelevant()) {\n                return false;\n            }\n        ;\n        ;\n            var ca = this._getPageletRootID(ba);\n            return !!this._livePagelets[ca];\n        },\n        _informEventExternal: function(ba, ca) {\n            ca = ((ca || {\n            }));\n            ca.ts = JSBNG__Date.now();\n            ca.lid = this.lid;\n            this.arbiter.inform(ba, ca, w);\n        },\n        _informPageletEvent: function(ba, ca, da) {\n            var ea = {\n                JSBNG__event: ba,\n                id: ca\n            };\n            if (da) {\n                ea.phase = da;\n            }\n        ;\n        ;\n            this._informEventExternal(\"pagelet_event\", ea);\n        }\n    });\n    function y(ba) {\n        if (((!ba || ((typeof ba === \"string\"))))) {\n            return ba;\n        }\n    ;\n    ;\n        if (ba.container_id) {\n            var ca = p(ba.container_id);\n            ba = ((z(ca) || \"\"));\n            ca.parentNode.removeChild(ca);\n            return ba;\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function z(ba) {\n        if (!ba.firstChild) {\n            h.loadModules([\"ErrorSignal\",], function(da) {\n                da.sendErrorSignal(\"bigpipe\", \"Pagelet markup container is empty.\");\n            });\n            return null;\n        }\n    ;\n    ;\n        if (((ba.firstChild.nodeType !== 8))) {\n            return null;\n        }\n    ;\n    ;\n        var ca = ba.firstChild.nodeValue;\n        ca = ca.substring(1, ((ca.length - 1)));\n        return ca.replace(/\\\\([\\s\\S]|$)/g, \"$1\");\n    };\n;\n    function aa(ba, ca) {\n        var da = JSBNG__document.createElement(\"div\"), ea = ((u < 7));\n        if (ea) {\n            ba.appendChild(da);\n        }\n    ;\n    ;\n        da.innerHTML = ca;\n        var fa = JSBNG__document.createDocumentFragment();\n        while (da.firstChild) {\n            fa.appendChild(da.firstChild);\n        ;\n        };\n    ;\n        ba.appendChild(fa);\n        if (ea) {\n            ba.removeChild(da);\n        }\n    ;\n    ;\n    };\n;\n    e.exports = x;\n});\n__d(\"legacy:bootloader\", [\"Bootloader\",], function(a, b, c, d) {\n    a.Bootloader = b(\"Bootloader\");\n}, 3);\n__d(\"Class\", [\"CallbackDependencyManager\",\"Bootloader\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackDependencyManager\"), h = b(\"Bootloader\"), i = \"bootload_done\", j = false, k = new g(), l = {\n    }, m = {\n        extend: function(u, v) {\n            if (!j) {\n                h.subscribeToLoadedResources_DEPRECATED(o);\n                j = true;\n            }\n        ;\n        ;\n            if (((typeof v == \"string\"))) {\n                n(u, v);\n            }\n             else p(u, v);\n        ;\n        ;\n        }\n    };\n    function n(u, v) {\n        u.__class_extending = true;\n        var w = k.registerCallback(p.bind(null, u, v), [v,i,]);\n        if (((w !== null))) {\n            l[v] = true;\n        }\n    ;\n    ;\n    };\n;\n    function o() {\n        k.satisfyNonPersistentDependency(i);\n        {\n            var fin24keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin24i = (0);\n            var u;\n            for (; (fin24i < fin24keys.length); (fin24i++)) {\n                ((u) = (fin24keys[fin24i]));\n                {\n                    if (!!a[u]) {\n                        delete l[u];\n                        if (!a[u].__class_extending) {\n                            k.satisfyNonPersistentDependency(u);\n                        }\n                         else a[u].__class_name = u;\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function p(u, v) {\n        delete u.__class_extending;\n        v = ((((typeof v == \"string\")) ? a[v] : v));\n        var w = q(v, 0), x = q(u, ((w.prototype.__level + 1)));\n        x.parent = w;\n        if (!!u.__class_name) {\n            k.satisfyNonPersistentDependency(u.__class_name);\n        }\n    ;\n    ;\n    };\n;\n    function q(u, v) {\n        if (u._metaprototype) {\n            return u._metaprototype;\n        }\n    ;\n    ;\n        var w = new Function();\n        w.construct = r;\n        w.prototype.construct = t(u, v, true);\n        w.prototype.__level = v;\n        w.base = u;\n        u.prototype.parent = w;\n        u._metaprototype = w;\n        return w;\n    };\n;\n    function r(u) {\n        s(u.parent);\n        var v = [], w = u;\n        while (w.parent) {\n            var x = new w.parent();\n            v.push(x);\n            x.__instance = u;\n            w = w.parent;\n        };\n    ;\n        u.parent = v[1];\n        v.reverse();\n        v.pop();\n        u.__parents = v;\n        u.__instance = u;\n        return u.parent.construct.apply(u.parent, arguments);\n    };\n;\n    function s(u) {\n        if (u.initialized) {\n            return;\n        }\n    ;\n    ;\n        var v = u.base.prototype;\n        if (u.parent) {\n            s(u.parent);\n            var w = u.parent.prototype;\n            {\n                var fin25keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin25i = (0);\n                var x;\n                for (; (fin25i < fin25keys.length); (fin25i++)) {\n                    ((x) = (fin25keys[fin25i]));\n                    {\n                        if (((((((x != \"__level\")) && ((x != \"construct\")))) && ((v[x] === undefined))))) {\n                            v[x] = u.prototype[x] = w[x];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n        u.initialized = true;\n        var y = u.prototype.__level;\n        {\n            var fin26keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin26i = (0);\n            var x;\n            for (; (fin26i < fin26keys.length); (fin26i++)) {\n                ((x) = (fin26keys[fin26i]));\n                {\n                    if (((x != \"parent\"))) {\n                        v[x] = u.prototype[x] = t(v[x], y);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function t(u, v, w) {\n        if (((((typeof u != \"function\")) || u.__prototyped))) {\n            return u;\n        }\n    ;\n    ;\n        var x = function() {\n            var y = this.__instance;\n            if (y) {\n                var z = y.parent;\n                y.parent = ((v ? y.__parents[((v - 1))] : null));\n                var aa = arguments;\n                if (w) {\n                    aa = [];\n                    for (var ba = 1; ((ba < arguments.length)); ba++) {\n                        aa.push(arguments[ba]);\n                    ;\n                    };\n                ;\n                }\n            ;\n            ;\n                var ca = u.apply(y, aa);\n                y.parent = z;\n                return ca;\n            }\n             else return u.apply(this, arguments)\n        ;\n        };\n        x.__prototyped = true;\n        return x;\n    };\n;\n    e.exports = m;\n});\n__d(\"legacy:Class\", [\"Class\",], function(a, b, c, d) {\n    a.Class = b(\"Class\");\n}, 3);\n__d(\"legacy:constructor-cache\", [\"JSCC\",], function(a, b, c, d) {\n    a.JSCC = b(\"JSCC\");\n}, 3);\n__d(\"function-extensions\", [\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"createArrayFrom\");\n    Function.prototype.curry = function() {\n        var h = g(arguments);\n        return this.bind.apply(this, [null,].concat(h));\n    };\n    Function.prototype.defer = function(h, i) {\n        if (((typeof this != \"function\"))) {\n            throw new TypeError();\n        }\n    ;\n    ;\n        h = ((h || 0));\n        return JSBNG__setTimeout(this, h, i);\n    };\n}, 3);\n__d(\"goURI\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        h = h.toString();\n        if (((((!i && a.PageTransitions)) && PageTransitions.isInitialized()))) {\n            PageTransitions.go(h, j);\n        }\n         else if (((window.JSBNG__location.href == h))) {\n            window.JSBNG__location.reload();\n        }\n         else window.JSBNG__location.href = h;\n        \n    ;\n    ;\n    };\n;\n    e.exports = g;\n});\n__d(\"legacy:goURI\", [\"goURI\",], function(a, b, c, d) {\n    a.goURI = b(\"goURI\");\n}, 3);\n__d(\"InitialJSLoader\", [\"Arbiter\",\"Bootloader\",\"OnloadEvent\",\"Run\",\"ServerJS\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"OnloadEvent\"), j = b(\"Run\"), k = b(\"ServerJS\"), l = {\n        INITIAL_JS_READY: \"BOOTLOAD/JSREADY\",\n        loadOnDOMContentReady: function(m, n) {\n            g.subscribe(i.ONLOAD_DOMCONTENT_CALLBACK, function() {\n                function o() {\n                    h.loadResources(m, function() {\n                        g.inform(l.INITIAL_JS_READY, true, g.BEHAVIOR_STATE);\n                    });\n                };\n            ;\n                if (n) {\n                    JSBNG__setTimeout(o, n);\n                }\n                 else o();\n            ;\n            ;\n            });\n        },\n        handleServerJS: function(m) {\n            var n = new k();\n            n.handle(m);\n            j.onAfterLoad(n.cleanup.bind(n));\n        }\n    };\n    e.exports = l;\n});\n__d(\"lowerDomain\", [], function(a, b, c, d, e, f) {\n    if (JSBNG__document.domain.toLowerCase().match(/(^|\\.)facebook\\..*/)) {\n        JSBNG__document.domain = \"facebook.com\";\n    }\n;\n;\n});\n__d(\"legacy:object-core-utils\", [\"isEmpty\",\"copyProperties\",], function(a, b, c, d) {\n    a.is_empty = b(\"isEmpty\");\n    a.copyProperties = b(\"copyProperties\");\n}, 3);\n__d(\"PlaceholderListener\", [\"Arbiter\",\"CSS\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"Parent\"), j = JSBNG__document.documentElement, k = function(m) {\n        m = ((m || window.JSBNG__event));\n        var n = ((m.target || m.srcElement));\n        if (n.getAttribute(\"data-silentPlaceholderListener\")) {\n            return;\n        }\n    ;\n    ;\n        var o = n.getAttribute(\"placeholder\");\n        if (o) {\n            var p = i.byClass(n, \"focus_target\");\n            if (((((\"JSBNG__focus\" == m.type)) || ((\"focusin\" == m.type))))) {\n                var q = n.value.replace(/\\r\\n/g, \"\\u000a\"), r = o.replace(/\\r\\n/g, \"\\u000a\");\n                if (((((q == r)) && h.hasClass(n, \"DOMControl_placeholder\")))) {\n                    n.value = \"\";\n                    h.removeClass(n, \"DOMControl_placeholder\");\n                }\n            ;\n            ;\n                if (p) {\n                    l.expandInput(p);\n                }\n            ;\n            ;\n            }\n             else {\n                if (((n.value === \"\"))) {\n                    h.addClass(n, \"DOMControl_placeholder\");\n                    n.value = o;\n                    ((p && h.removeClass(p, \"child_is_active\")));\n                    n.style.direction = \"\";\n                }\n            ;\n            ;\n                ((p && h.removeClass(p, \"child_is_focused\")));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n    if (j.JSBNG__addEventListener) {\n        j.JSBNG__addEventListener(\"JSBNG__focus\", k, true);\n        j.JSBNG__addEventListener(\"JSBNG__blur\", k, true);\n    }\n     else {\n        j.JSBNG__attachEvent(\"onfocusin\", k);\n        j.JSBNG__attachEvent(\"onfocusout\", k);\n    }\n;\n;\n    var l = {\n        expandInput: function(m) {\n            h.addClass(m, \"child_is_active\");\n            h.addClass(m, \"child_is_focused\");\n            h.addClass(m, \"child_was_focused\");\n            g.inform(\"reflow\");\n        }\n    };\n    e.exports = l;\n});\n__d(\"clickRefAction\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\");\n    function h(l, m, n, o, p) {\n        var q = ((((l + \"/\")) + m));\n        this.ue = q;\n        this._ue_ts = l;\n        this._ue_count = m;\n        this._context = n;\n        this._ns = null;\n        this._node = o;\n        this._type = p;\n    };\n;\n    h.prototype.set_namespace = function(l) {\n        this._ns = l;\n        return this;\n    };\n    h.prototype.coalesce_namespace = function(l) {\n        if (((this._ns === null))) {\n            this._ns = l;\n        }\n    ;\n    ;\n        return this;\n    };\n    h.prototype.add_event = function() {\n        return this;\n    };\n    var i = 0, j = [];\n    function k(l, m, JSBNG__event, n, o) {\n        var p = JSBNG__Date.now(), q = ((JSBNG__event && JSBNG__event.type));\n        o = ((o || {\n        }));\n        if (((!m && JSBNG__event))) {\n            m = JSBNG__event.getTarget();\n        }\n    ;\n    ;\n        var r = 50;\n        if (((m && ((n != \"FORCE\"))))) {\n            for (var s = ((j.length - 1)); ((((s >= 0)) && ((((p - j[s]._ue_ts)) < r)))); --s) {\n                if (((((j[s]._node == m)) && ((j[s]._type == q))))) {\n                    return j[s];\n                }\n            ;\n            ;\n            };\n        }\n    ;\n    ;\n        var t = new h(p, i, l, m, q);\n        j.push(t);\n        while (((j.length > 10))) {\n            j.shift();\n        ;\n        };\n    ;\n        g.inform(\"ClickRefAction/new\", {\n            cfa: t,\n            node: m,\n            mode: n,\n            JSBNG__event: JSBNG__event,\n            extra_data: o\n        }, g.BEHAVIOR_PERSISTENT);\n        i++;\n        return t;\n    };\n;\n    e.exports = a.clickRefAction = k;\n});\n__d(\"trackReferrer\", [\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Parent\");\n    function h(i, j) {\n        i = g.byAttribute(i, \"data-referrer\");\n        if (i) {\n            var k = ((/^(?:(?:[^:\\/?#]+):)?(?:\\/\\/(?:[^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/.exec(j)[1] || \"\"));\n            if (!k) {\n                return;\n            }\n        ;\n        ;\n            var l = ((((k + \"|\")) + i.getAttribute(\"data-referrer\"))), m = new JSBNG__Date();\n            m.setTime(((JSBNG__Date.now() + 1000)));\n            JSBNG__document.cookie = ((((((((((((\"x-src=\" + encodeURIComponent(l))) + \"; \")) + \"expires=\")) + m.toGMTString())) + \";path=/; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n        }\n    ;\n    ;\n        return i;\n    };\n;\n    e.exports = h;\n});\n__d(\"Miny\", [], function(a, b, c, d, e, f) {\n    var g = \"Miny1\", h = {\n        encode: [],\n        decode: {\n        }\n    }, i = \"wxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\".split(\"\");\n    function j(n) {\n        for (var o = h.encode.length; ((o < n)); o++) {\n            var p = o.toString(32).split(\"\");\n            p[((p.length - 1))] = i[parseInt(p[((p.length - 1))], 32)];\n            p = p.join(\"\");\n            h.encode[o] = p;\n            h.decode[p] = o;\n        };\n    ;\n        return h;\n    };\n;\n    function k(n) {\n        var o = n.match(/\\w+|\\W+/g), p = {\n        };\n        for (var q = 0; ((q < o.length)); q++) {\n            p[o[q]] = ((((p[o[q]] || 0)) + 1));\n        ;\n        };\n    ;\n        var r = Object.keys(p);\n        r.sort(function(u, v) {\n            return ((((p[u] < p[v])) ? 1 : ((((p[v] < p[u])) ? -1 : 0))));\n        });\n        var s = j(r.length).encode;\n        for (q = 0; ((q < r.length)); q++) {\n            p[r[q]] = s[q];\n        ;\n        };\n    ;\n        var t = [];\n        for (q = 0; ((q < o.length)); q++) {\n            t[q] = p[o[q]];\n        ;\n        };\n    ;\n        for (q = 0; ((q < r.length)); q++) {\n            r[q] = r[q].replace(/'~'/g, \"\\\\~\");\n        ;\n        };\n    ;\n        return [g,r.length,].concat(r).concat(t.join(\"\")).join(\"~\");\n    };\n;\n    function l(n) {\n        var o = n.split(\"~\");\n        if (((o.shift() != g))) {\n            throw new Error(\"Not a Miny stream\");\n        }\n    ;\n    ;\n        var p = parseInt(o.shift(), 10), q = o.pop();\n        q = q.match(/[0-9a-v]*[\\-w-zA-Z_]/g);\n        var r = o, s = j(p).decode, t = [];\n        for (var u = 0; ((u < q.length)); u++) {\n            t[u] = r[s[q[u]]];\n        ;\n        };\n    ;\n        return t.join(\"\");\n    };\n;\n    var m = {\n        encode: k,\n        decode: l\n    };\n    e.exports = m;\n});\n__d(\"QueryString\", [], function(a, b, c, d, e, f) {\n    function g(k) {\n        var l = [];\n        Object.keys(k).forEach(function(m) {\n            var n = k[m];\n            if (((typeof n === \"undefined\"))) {\n                return;\n            }\n        ;\n        ;\n            if (((n === null))) {\n                l.push(m);\n                return;\n            }\n        ;\n        ;\n            l.push(((((encodeURIComponent(m) + \"=\")) + encodeURIComponent(n))));\n        });\n        return l.join(\"&\");\n    };\n;\n    function h(k, l) {\n        var m = {\n        };\n        if (((k === \"\"))) {\n            return m;\n        }\n    ;\n    ;\n        var n = k.split(\"&\");\n        for (var o = 0; ((o < n.length)); o++) {\n            var p = n[o].split(\"=\", 2), q = decodeURIComponent(p[0]);\n            if (((l && m.hasOwnProperty(q)))) {\n                throw new URIError(((\"Duplicate key: \" + q)));\n            }\n        ;\n        ;\n            m[q] = ((((p.length === 2)) ? decodeURIComponent(p[1]) : null));\n        };\n    ;\n        return m;\n    };\n;\n    function i(k, l) {\n        return ((((k + ((~k.indexOf(\"?\") ? \"&\" : \"?\")))) + ((((typeof l === \"string\")) ? l : j.encode(l)))));\n    };\n;\n    var j = {\n        encode: g,\n        decode: h,\n        appendToUrl: i\n    };\n    e.exports = j;\n});\n__d(\"UserAgent\", [], function(a, b, c, d, e, f) {\n    var g = false, h, i, j, k, l, m, n, o, p, q, r, s, t, u;\n    function v() {\n        if (g) {\n            return;\n        }\n    ;\n    ;\n        g = true;\n        var x = JSBNG__navigator.userAgent, y = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))/.exec(x), z = /(Mac OS X)|(Windows)|(Linux)/.exec(x);\n        r = /\\b(iPhone|iP[ao]d)/.exec(x);\n        s = /\\b(iP[ao]d)/.exec(x);\n        p = /Android/i.exec(x);\n        t = /FBAN\\/\\w+;/i.exec(x);\n        u = /Mobile/i.exec(x);\n        q = !!(/Win64/.exec(x));\n        if (y) {\n            h = ((y[1] ? parseFloat(y[1]) : NaN));\n            if (((h && JSBNG__document.documentMode))) {\n                h = JSBNG__document.documentMode;\n            }\n        ;\n        ;\n            i = ((y[2] ? parseFloat(y[2]) : NaN));\n            j = ((y[3] ? parseFloat(y[3]) : NaN));\n            k = ((y[4] ? parseFloat(y[4]) : NaN));\n            if (k) {\n                y = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(x);\n                l = ((((y && y[1])) ? parseFloat(y[1]) : NaN));\n            }\n             else l = NaN;\n        ;\n        ;\n        }\n         else h = i = j = l = k = NaN;\n    ;\n    ;\n        if (z) {\n            if (z[1]) {\n                var aa = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(x);\n                m = ((aa ? parseFloat(aa[1].replace(\"_\", \".\")) : true));\n            }\n             else m = false;\n        ;\n        ;\n            n = !!z[2];\n            o = !!z[3];\n        }\n         else m = n = o = false;\n    ;\n    ;\n    };\n;\n    var w = {\n        ie: function() {\n            return ((v() || h));\n        },\n        ie64: function() {\n            return ((w.ie() && q));\n        },\n        firefox: function() {\n            return ((v() || i));\n        },\n        JSBNG__opera: function() {\n            return ((v() || j));\n        },\n        webkit: function() {\n            return ((v() || k));\n        },\n        safari: function() {\n            return w.webkit();\n        },\n        chrome: function() {\n            return ((v() || l));\n        },\n        windows: function() {\n            return ((v() || n));\n        },\n        osx: function() {\n            return ((v() || m));\n        },\n        linux: function() {\n            return ((v() || o));\n        },\n        iphone: function() {\n            return ((v() || r));\n        },\n        mobile: function() {\n            return ((v() || ((((((r || s)) || p)) || u))));\n        },\n        nativeApp: function() {\n            return ((v() || t));\n        },\n        android: function() {\n            return ((v() || p));\n        },\n        ipad: function() {\n            return ((v() || s));\n        }\n    };\n    e.exports = w;\n});\n__d(\"XHR\", [\"Env\",\"ServerJS\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"ServerJS\"), i = 1, j = {\n        create: function() {\n            try {\n                return ((a.JSBNG__XMLHttpRequest ? new a.JSBNG__XMLHttpRequest() : new ActiveXObject(\"MSXML2.XMLHTTP.3.0\")));\n            } catch (k) {\n            \n            };\n        ;\n        },\n        getAsyncParams: function(k) {\n            var l = {\n                __user: g.user,\n                __a: 1,\n                __dyn: h.getLoadedModuleHash(),\n                __req: (i++).toString(36)\n            };\n            if (((((k == \"POST\")) && g.fb_dtsg))) {\n                l.fb_dtsg = g.fb_dtsg;\n            }\n        ;\n        ;\n            if (g.fb_isb) {\n                l.fb_isb = g.fb_isb;\n            }\n        ;\n        ;\n            return l;\n        }\n    };\n    e.exports = j;\n});\n__d(\"BanzaiAdapter\", [\"Arbiter\",\"Env\",\"Miny\",\"QueryString\",\"Run\",\"UserAgent\",\"XHR\",\"BanzaiConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"Miny\"), j = b(\"QueryString\"), k = b(\"Run\"), l = b(\"UserAgent\"), m = b(\"XHR\"), n = null, o = new g(), p = b(\"BanzaiConfig\"), q = \"/ajax/bz\", r = {\n    }, s = r.adapter = {\n        config: p,\n        getUserID: function() {\n            return h.user;\n        },\n        inform: function(t) {\n            o.inform(t);\n        },\n        subscribe: function(t, u) {\n            o.subscribe(t, u);\n        },\n        cleanup: function() {\n            if (((n && ((n.readyState < 4))))) {\n                n.abort();\n            }\n        ;\n        ;\n            if (n) {\n                delete n.onreadystatechange;\n                n = null;\n            }\n        ;\n        ;\n        },\n        readyToSend: function() {\n            var t = ((((l.ie() <= 8)) ? true : JSBNG__navigator.onLine));\n            return ((!n && t));\n        },\n        send: function(t, u, v) {\n            var w = \"POST\";\n            n = m.create();\n            n.open(w, q, true);\n            n.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n            n.onreadystatechange = function() {\n                if (((n.readyState >= 4))) {\n                    var aa = n.JSBNG__status;\n                    s.cleanup();\n                    if (((aa == 200))) {\n                        if (u) {\n                            u();\n                        }\n                    ;\n                    ;\n                        s.inform(r.OK);\n                    }\n                     else {\n                        if (v) {\n                            v(aa);\n                        }\n                    ;\n                    ;\n                        s.inform(r.ERROR);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n            JSBNG__setTimeout(s.cleanup, r.SEND_TIMEOUT, false);\n            var x = m.getAsyncParams(w);\n            x.q = JSON.stringify(t);\n            x.ts = JSBNG__Date.now();\n            x.ph = h.push_phase;\n            if (r.FBTRACE) {\n                x.fbtrace = r.FBTRACE;\n            }\n        ;\n        ;\n            if (r.isEnabled(\"miny_compression\")) {\n                var y = JSBNG__Date.now(), z = i.encode(x.q);\n                if (((z.length < x.q.length))) {\n                    x.q = z;\n                    x.miny_encode_ms = ((JSBNG__Date.now() - y));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            n.send(j.encode(x));\n        },\n        onUnload: function(t) {\n            k.onAfterUnload(t);\n        }\n    };\n    e.exports = r;\n});\n__d(\"pageID\", [], function(a, b, c, d, e, f) {\n    e.exports = Math.floor(((2147483648 * Math.JSBNG__random()))).toString(36);\n});\n__d(\"Banzai\", [\"BanzaiAdapter\",\"pageID\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"BanzaiAdapter\"), h = g.adapter, i = b(\"pageID\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\"), l = \"Banzai\", m = \"sequencer\", n, o, p, q = [], r = {\n    }, s = ((a != a.JSBNG__top));\n    function t() {\n        if (((p && ((p.posts.length > 0))))) {\n            q.push(p);\n        }\n    ;\n    ;\n        p = {\n            user: h.getUserID(),\n            page_id: i,\n            trigger: null,\n            time: JSBNG__Date.now(),\n            posts: []\n        };\n        if (g.isEnabled(m)) {\n            p.sequence = [];\n        }\n    ;\n    ;\n    };\n;\n    function u(z) {\n        var aa = ((JSBNG__Date.now() + z));\n        if (((!o || ((aa < o))))) {\n            o = aa;\n            JSBNG__clearTimeout(n);\n            n = JSBNG__setTimeout(v, z, false);\n            return true;\n        }\n    ;\n    ;\n    };\n;\n    function v() {\n        o = null;\n        u(g.BASIC.delay);\n        if (!h.readyToSend()) {\n            return;\n        }\n    ;\n    ;\n        h.inform(g.SEND);\n        if (((((q.length <= 0)) && ((p.posts.length <= 0))))) {\n            h.inform(g.OK);\n            return;\n        }\n    ;\n    ;\n        t();\n        var z = q;\n        q = [];\n        h.send(z, null, function(aa) {\n            var ba = ((JSBNG__Date.now() - ((h.config.EXPIRY || g.EXPIRY)))), ca = ((((aa >= 400)) && ((aa < 600)))), da = z.map(function(ea) {\n                ea.posts = ea.posts.filter(function(fa) {\n                    var ga = ((ca || fa.__meta.options.retry));\n                    fa.__meta.retryCount = ((((fa.__meta.retryCount || 0)) + 1));\n                    fa[3] = fa.__meta.retryCount;\n                    return ((ga && ((fa.__meta.timestamp > ba))));\n                });\n                return ea;\n            });\n            da = da.filter(function(ea) {\n                return ((ea.posts.length > 0));\n            });\n            q = da.concat(q);\n        });\n    };\n;\n    var w, x;\n    try {\n        x = a.JSBNG__sessionStorage;\n    } catch (y) {\n    \n    };\n;\n    if (((x && !s))) {\n        w = {\n            store: function z() {\n                try {\n                    t();\n                    var ba = h.getUserID(), ca = q.filter(function(ea) {\n                        return ((ea.user == ba));\n                    }).map(function(ea) {\n                        ea = j({\n                        }, ea);\n                        ea.posts = ea.posts.map(function(fa) {\n                            return [fa[0],fa[1],fa[2],fa.__meta,];\n                        });\n                        return ea;\n                    }), da = JSON.stringify(ca);\n                    x.setItem(l, da);\n                } catch (aa) {\n                \n                };\n            ;\n            },\n            restore: function z() {\n                try {\n                    var ba = x.getItem(l);\n                    if (ba) {\n                        x.removeItem(l);\n                        var ca = h.getUserID(), da = JSON.parse(ba);\n                        da = da.filter(function(ea) {\n                            ea.posts.forEach(function(fa) {\n                                fa.__meta = fa.pop();\n                                if (((\"retryCount\" in fa.__meta))) {\n                                    fa[3] = fa.__meta.retryCount;\n                                }\n                            ;\n                            ;\n                            });\n                            return ((ea.user == ca));\n                        });\n                        q = q.concat(da);\n                    }\n                ;\n                ;\n                } catch (aa) {\n                \n                };\n            ;\n            }\n        };\n    }\n     else w = {\n        store: k,\n        restore: k\n    };\n;\n;\n    g.SEND = \"Banzai:SEND\";\n    g.OK = \"Banzai:OK\";\n    g.ERROR = \"Banzai:ERROR\";\n    g.SHUTDOWN = \"Banzai:SHUTDOWN\";\n    g.SEND_TIMEOUT = 15000;\n    g.VITAL_WAIT = 1000;\n    g.BASIC_WAIT = 60000;\n    g.EXPIRY = ((30 * 60000));\n    g.VITAL = {\n        delay: ((h.config.MIN_WAIT || g.VITAL_WAIT))\n    };\n    g.BASIC = {\n        delay: ((h.config.MAX_WAIT || g.BASIC_WAIT))\n    };\n    g.FBTRACE = h.config.fbtrace, g.isEnabled = function(z) {\n        return ((h.config.gks && h.config.gks[z]));\n    };\n    g.post = function(z, aa, ba) {\n        ba = ((ba || {\n        }));\n        if (s) {\n            if (((JSBNG__document.domain == \"facebook.com\"))) {\n                try {\n                    var da = a.JSBNG__top.require(\"Banzai\");\n                    da.post.apply(da, arguments);\n                } catch (ca) {\n                \n                };\n            }\n        ;\n        ;\n            return;\n        }\n    ;\n    ;\n        if (h.config.disabled) {\n            return;\n        }\n    ;\n    ;\n        var ea = h.config.blacklist;\n        if (ea) {\n            if (((((ea && ea.join)) && !ea._regex))) {\n                ea._regex = new RegExp(((((\"^(?:\" + ea.join(\"|\"))) + \")\")));\n            }\n        ;\n        ;\n            if (((ea._regex && ea._regex.test(z)))) {\n                return;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        if (((p.user != h.getUserID()))) {\n            t();\n        }\n    ;\n    ;\n        var fa = JSBNG__Date.now(), ga = [z,aa,((fa - p.time)),];\n        ga.__meta = {\n            options: ba,\n            timestamp: fa\n        };\n        p.posts.push(ga);\n        var ha = ba.delay;\n        if (((ha == null))) {\n            ha = g.BASIC_WAIT;\n        }\n    ;\n    ;\n        if (g.isEnabled(m)) {\n            if (!((z in r))) {\n                r[z] = 0;\n            }\n             else r[z]++;\n        ;\n        ;\n            p.sequence.push([z,r[z],]);\n        }\n    ;\n    ;\n        if (((u(ha) || !p.trigger))) {\n            p.trigger = z;\n        }\n    ;\n    ;\n    };\n    g.subscribe = h.subscribe;\n    g._testState = function() {\n        return {\n            wad: p,\n            wads: q\n        };\n    };\n    h.onUnload(function() {\n        h.cleanup();\n        h.inform(g.SHUTDOWN);\n        w.store();\n    });\n    t();\n    w.restore();\n    u(g.BASIC.delay);\n    e.exports = g;\n});\n__d(\"userAction\", [\"Arbiter\",\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"copyProperties\"), j = 50, k = [], l = {\n    }, m = {\n    };\n    function n(v, w, x, y, JSBNG__event) {\n        var z = ((((v + \"/\")) + w)), aa = u(y);\n        i(this, {\n            ue: z,\n            _uai_logged: false,\n            _uai_timeout: null,\n            _primary: {\n            },\n            _fallback: {\n            },\n            _default_ua_id: ((aa || \"-\")),\n            _default_action_type: ((JSBNG__event ? JSBNG__event.type : \"-\")),\n            _ts: v,\n            _ns: x,\n            _start_ts: v,\n            _prev_event: \"s\",\n            _ue_ts: v,\n            _ue_count: w,\n            _data_version: 1,\n            _event_version: 2,\n            _info_version: 2\n        });\n        this._log(\"ua:n\", [1,z,]);\n    };\n;\n    function o(v, w, x, y) {\n        var z = ((((v in m)) ? m[v] : {\n        })), aa = ((((w in z)) ? z[w] : {\n        })), ba;\n        if (((x in aa))) {\n            if (((\"*\" in aa[x]))) {\n                ba = aa[x][\"*\"];\n            }\n             else if (((y in aa[x]))) {\n                ba = aa[x][y];\n            }\n            \n        ;\n        }\n    ;\n    ;\n        return ba;\n    };\n;\n    var p = {\n        store: true,\n        delay: 3000,\n        retry: true\n    };\n    i(n.prototype, {\n        _log: function(v, w) {\n            var x = ((l[v] === true)), y = o(v, this._ns, \"ua_id\", this._get_ua_id()), z = o(v, this._ns, \"action\", this._get_action_type()), aa = ((((y !== undefined)) || ((z !== undefined)))), ba = ((aa ? ((y || z)) : x));\n            if (((h.isEnabled(\"useraction\") && ba))) {\n                h.post(v, w, p);\n            }\n        ;\n        ;\n        },\n        _get_action_type: function() {\n            return ((((this._primary._action_type || this._fallback._action_type)) || this._default_action_type));\n        },\n        _get_ua_id: function() {\n            return ((((this._primary._ua_id || this._fallback._ua_id)) || this._default_ua_id));\n        },\n        _log_uai: function() {\n            var v = [this._info_version,this.ue,this._ns,this._get_ua_id(),this._get_action_type(),];\n            this._log(\"ua:i\", v);\n            this._uai_logged = true;\n            this._uai_timeout = null;\n        },\n        uai: function(v, w, x) {\n            if (!this._uai_logged) {\n                ((this._uai_timeout && JSBNG__clearTimeout(this._uai_timeout)));\n                this._primary._ua_id = w;\n                this._primary._action_type = v;\n                if (((x === undefined))) {\n                    this._log_uai();\n                }\n                 else if (((x === false))) {\n                    this._uai_logged = true;\n                }\n                 else {\n                    var y = this;\n                    x = ((x || 0));\n                    this._uai_timeout = JSBNG__setTimeout(function() {\n                        y._log_uai.apply(y);\n                    }, x);\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            return this;\n        },\n        uai_fallback: function(v, w, x) {\n            if (!this._uai_logged) {\n                var y = this;\n                ((this._uai_timeout && JSBNG__clearTimeout(this._uai_timeout)));\n                this._fallback._ua_id = w;\n                this._fallback._action_type = v;\n                x = ((((x === undefined)) ? j : x));\n                this._uai_timeout = JSBNG__setTimeout(function() {\n                    y._log_uai.apply(y);\n                }, x);\n            }\n        ;\n        ;\n            return this;\n        },\n        add_event: function(v, w, x) {\n            w = ((w || 0));\n            var y = ((JSBNG__Date.now() - w)), z = ((y - this._ts)), aa = ((y - ((x ? x : this._ue_ts)))), ba = [this._event_version,this.ue,this._ns,this._get_ua_id(),this._prev_event,v,z,aa,];\n            if (this._get_ua_id()) {\n                this._log(\"ua:e\", ba);\n                this._ts = y;\n                this._prev_event = v;\n            }\n        ;\n        ;\n            return this;\n        },\n        add_data: function(v) {\n            var w = [this._data_version,this.ue,v,];\n            this._log(\"ua:d\", w);\n            return this;\n        }\n    });\n    var q = 0, r = 0, s = null;\n    function t(v, w, JSBNG__event, x) {\n        x = ((x || {\n        }));\n        var y = JSBNG__Date.now();\n        if (((!w && JSBNG__event))) {\n            w = JSBNG__event.getTarget();\n        }\n    ;\n    ;\n        if (((w && s))) {\n            if (((((((((y - r)) < j)) && ((w == s)))) && ((x.mode == \"DEDUP\"))))) {\n                return k[((k.length - 1))];\n            }\n        ;\n        }\n    ;\n    ;\n        var z = new n(y, q, v, w, JSBNG__event);\n        s = w;\n        k.push(z);\n        while (((k.length > 10))) {\n            k.shift();\n        ;\n        };\n    ;\n        g.inform(\"UserAction/new\", {\n            ua: z,\n            node: w,\n            mode: x.mode,\n            JSBNG__event: JSBNG__event\n        });\n        r = y;\n        q++;\n        return z;\n    };\n;\n    function u(v) {\n        if (((!v || !v.nodeName))) {\n            return null;\n        }\n    ;\n    ;\n        return v.nodeName.toLowerCase();\n    };\n;\n    t.setUATypeConfig = function(v) {\n        i(l, v);\n    };\n    t.setCustomSampleConfig = function(v) {\n        i(m, v);\n    };\n    t.getCurrentUECount = function() {\n        return q;\n    };\n    e.exports = a.userAction = t;\n});\n__d(\"Primer\", [\"function-extensions\",\"Bootloader\",\"CSS\",\"ErrorUtils\",\"Parent\",\"clickRefAction\",\"trackReferrer\",\"userAction\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Bootloader\"), h = b(\"CSS\"), i = b(\"ErrorUtils\"), j = b(\"Parent\"), k = b(\"clickRefAction\"), l = b(\"trackReferrer\"), m = b(\"userAction\"), n = null, o = /async(?:-post)?|dialog(?:-post)?|theater|toggle/, p = JSBNG__document.documentElement;\n    function q(t, u) {\n        t = j.byAttribute(t, u);\n        if (!t) {\n            return;\n        }\n    ;\n    ;\n        do {\n            var v = t.getAttribute(u);\n            JSON.parse(v).forEach(function(w) {\n                var x = t;\n                g.loadModules.call(g, [w[0],], function(y) {\n                    y[w[1]](x);\n                });\n            });\n        } while (t = j.byAttribute(t.parentNode, u));\n        return false;\n    };\n;\n    p.JSBNG__onclick = i.guard(function(t) {\n        t = ((t || window.JSBNG__event));\n        n = ((t.target || t.srcElement));\n        var u = q(n, \"data-onclick\"), v = j.byTag(n, \"A\");\n        if (!v) {\n            return u;\n        }\n    ;\n    ;\n        var w = v.getAttribute(\"ajaxify\"), x = v.href, y = ((w || x));\n        if (y) {\n            k(\"a\", v, t).coalesce_namespace(\"primer\");\n            var z = m(\"primer\", v, t, {\n                mode: \"DEDUP\"\n            }).uai_fallback(\"click\");\n            if (a.ArbiterMonitor) {\n                a.ArbiterMonitor.initUA(z, [v,]);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        if (((((w && x)) && !(/#$/).test(x)))) {\n            var aa = ((t.which && ((t.which === 2)))), ba = ((((((t.altKey || t.ctrlKey)) || t.metaKey)) || t.shiftKey));\n            if (((aa || ba))) {\n                return;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        l(v, y);\n        var ca = ((v.rel && v.rel.match(o)));\n        ca = ((ca && ca[0]));\n        switch (ca) {\n          case \"dialog\":\n        \n          case \"dialog-post\":\n            g.loadModules([\"AsyncDialog\",], function(da) {\n                da.bootstrap(y, v, ca);\n            });\n            break;\n          case \"async\":\n        \n          case \"async-post\":\n            g.loadModules([\"AsyncRequest\",], function(da) {\n                da.bootstrap(y, v);\n            });\n            break;\n          case \"theater\":\n            g.loadModules([\"PhotoSnowlift\",], function(da) {\n                da.bootstrap(y, v);\n            });\n            break;\n          case \"toggle\":\n            h.toggleClass(v.parentNode, \"openToggler\");\n            g.loadModules([\"Toggler\",], function(da) {\n                da.bootstrap(v);\n            });\n            break;\n          default:\n            return u;\n        };\n    ;\n        return false;\n    });\n    p.JSBNG__onsubmit = i.guard(function(t) {\n        t = ((t || window.JSBNG__event));\n        var u = ((t.target || t.srcElement));\n        if (((((u && ((u.nodeName == \"FORM\")))) && ((u.getAttribute(\"rel\") == \"async\"))))) {\n            k(\"f\", u, t).coalesce_namespace(\"primer\");\n            var v = m(\"primer\", u, t, {\n                mode: \"DEDUP\"\n            }).uai_fallback(\"submit\");\n            if (a.ArbiterMonitor) {\n                a.ArbiterMonitor.initUA(v, [u,]);\n            }\n        ;\n        ;\n            var w = n;\n            g.loadModules([\"Form\",], function(x) {\n                x.bootstrap(u, w);\n            });\n            return false;\n        }\n    ;\n    ;\n    });\n    var r = null, s = i.guard(function(t, u) {\n        u = ((u || window.JSBNG__event));\n        r = ((u.target || u.srcElement));\n        q(r, ((\"data-on\" + t)));\n        var v = j.byAttribute(r, \"data-hover\");\n        if (!v) {\n            return;\n        }\n    ;\n    ;\n        switch (v.getAttribute(\"data-hover\")) {\n          case \"tooltip\":\n            g.loadModules([\"Tooltip\",], function(w) {\n                w.process(v, r);\n            });\n            break;\n        };\n    ;\n    });\n    p.JSBNG__onmouseover = s.curry(\"mouseover\");\n    if (p.JSBNG__addEventListener) {\n        p.JSBNG__addEventListener(\"JSBNG__focus\", s.curry(\"JSBNG__focus\"), true);\n    }\n     else p.JSBNG__attachEvent(\"onfocusin\", s.curry(\"JSBNG__focus\"));\n;\n;\n});\n__d(\"ScriptPath\", [\"Banzai\",\"ErrorUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"ErrorUtils\"), i = \"script_path_change\", j = {\n        scriptPath: null,\n        categoryToken: null\n    }, k = {\n        PAGE_LOAD: \"load\",\n        PAGE_UNLOAD: \"unload\",\n        TRANSITION: \"transition\"\n    }, l = null, m = null, n = {\n    }, o = 0, p = false, q = null;\n    function r(z) {\n        var aa = ++o;\n        n[aa] = z;\n        return aa;\n    };\n;\n    function s(z) {\n        if (n[z]) {\n            delete n[z];\n        }\n    ;\n    ;\n    };\n;\n    function t() {\n        Object.keys(n).forEach(function(z) {\n            h.applyWithGuard(n[z], null, [{\n                source: l,\n                dest: m\n            },]);\n        });\n    };\n;\n    function u(z, aa, ba) {\n        if (!p) {\n            return;\n        }\n    ;\n    ;\n        var ca = {\n            source_path: z.scriptPath,\n            source_token: z.categoryToken,\n            dest_path: aa.scriptPath,\n            dest_token: aa.categoryToken,\n            navigation: q,\n            cause: ba\n        };\n        g.post(i, ca);\n    };\n;\n    function v() {\n        u(j, m, k.PAGE_LOAD);\n    };\n;\n    function w(z, aa) {\n        u(z, aa, k.TRANSITION);\n    };\n;\n    function x() {\n        u(m, j, k.PAGE_UNLOAD);\n    };\n;\n    g.subscribe(g.SHUTDOWN, x);\n    var y = {\n        set: function(z, aa) {\n            var ba = m;\n            m = {\n                scriptPath: z,\n                categoryToken: aa\n            };\n            window._script_path = z;\n            t();\n            if (p) {\n                if (ba) {\n                    w(ba, m);\n                }\n                 else v();\n            ;\n            }\n        ;\n        ;\n        },\n        setNavigation: function(z) {\n            q = z;\n        },\n        startLogging: function() {\n            p = true;\n            if (m) {\n                v();\n            }\n        ;\n        ;\n        },\n        stopLogging: function() {\n            p = false;\n        },\n        getScriptPath: function() {\n            return ((m ? m.scriptPath : undefined));\n        },\n        getCategoryToken: function() {\n            return ((m ? m.categoryToken : undefined));\n        },\n        subscribe: function(z) {\n            return r(z);\n        },\n        unsubscribe: function(z) {\n            s(z);\n        }\n    };\n    y.CAUSE = k;\n    y.BANZAI_LOGGING_ROUTE = i;\n    e.exports = y;\n});\n__d(\"URLFragmentPrelude\", [\"ScriptPath\",\"URLFragmentPreludeConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"ScriptPath\"), h = b(\"URLFragmentPreludeConfig\"), i = /^(?:(?:[^:\\/?#]+):)?(?:\\/\\/(?:[^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/, j = \"\", k = /^[^\\/\\\\#!\\.\\?\\*\\&\\^]+$/;\n    window.JSBNG__location.href.replace(i, function(l, m, n, o) {\n        var p, q, r, s;\n        p = q = ((m + ((n ? ((\"?\" + n)) : \"\"))));\n        if (o) {\n            if (h.incorporateQuicklingFragment) {\n                var t = o.replace(/^(!|%21)/, \"\");\n                r = t.charAt(0);\n                if (((((r == \"/\")) || ((r == \"\\\\\"))))) {\n                    p = t.replace(/^[\\\\\\/]+/, \"/\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (h.hashtagRedirect) {\n                if (((q == p))) {\n                    var u = o.match(k);\n                    if (((((u && !n)) && ((m == \"/\"))))) {\n                        p = ((\"/hashtag/\" + o));\n                    }\n                ;\n                ;\n                }\n            ;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        if (((p != q))) {\n            s = g.getScriptPath();\n            if (s) {\n                JSBNG__document.cookie = ((((((\"rdir=\" + s)) + \"; path=/; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n            }\n        ;\n        ;\n            window.JSBNG__location.replace(((j + p)));\n        }\n    ;\n    ;\n    });\n});\n__d(\"removeArrayReduce\", [], function(a, b, c, d, e, f) {\n    Array.prototype.reduce = undefined;\n    Array.prototype.reduceRight = undefined;\n});\n__d(\"cx\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        throw new Error(((\"cx\" + \"(...): Unexpected class transformation.\")));\n    };\n;\n    e.exports = g;\n});\n__d(\"LitestandSidebarPrelude\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    e.exports = {\n        init: function(i, j, k) {\n            var l = JSBNG__document.documentElement;\n            l.className = ((l.className + \" sidebarMode\"));\n            if (((j || ((l.clientWidth <= k))))) {\n                l.className = ((((l.className + \" \")) + \"_4kdq\"));\n            }\n        ;\n        ;\n            g.show(i);\n        }\n    };\n});\n__d(\"SubmitOnEnterListener\", [\"Bootloader\",\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CSS\");\n    JSBNG__document.documentElement.JSBNG__onkeydown = function(i) {\n        i = ((i || window.JSBNG__event));\n        var j = ((i.target || i.srcElement)), k = ((((((((((((i.keyCode == 13)) && !i.altKey)) && !i.ctrlKey)) && !i.metaKey)) && !i.shiftKey)) && h.hasClass(j, \"enter_submit\")));\n        if (k) {\n            g.loadModules([\"DOM\",\"Input\",\"trackReferrer\",\"Form\",], function(l, m, n, o) {\n                if (!m.isEmpty(j)) {\n                    var p = j.form, q = ((l.scry(p, \".enter_submit_target\")[0] || l.scry(p, \"[type=\\\"submit\\\"]\")[0]));\n                    if (q) {\n                        var r = ((o.getAttribute(p, \"ajaxify\") || o.getAttribute(p, \"action\")));\n                        if (r) {\n                            n(p, r);\n                        }\n                    ;\n                    ;\n                        q.click();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n            return false;\n        }\n    ;\n    ;\n    };\n});\n__d(\"CommentPrelude\", [\"CSS\",\"Parent\",\"clickRefAction\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"Parent\"), i = b(\"clickRefAction\"), j = b(\"userAction\");\n    function k(o, p) {\n        j(\"ufi\", o).uai(\"click\");\n        i(\"ufi\", o, null, \"FORCE\");\n        return l(o, p);\n    };\n;\n    function l(o, p) {\n        var q = h.byTag(o, \"form\");\n        m(q);\n        var r = g.removeClass.curry(q, \"hidden_add_comment\");\n        if (window.ScrollAwareDOM) {\n            window.ScrollAwareDOM.monitor(q, r);\n        }\n         else r();\n    ;\n    ;\n        if (((p !== false))) {\n            var s = ((q.add_comment_text_text || q.add_comment_text)), t = s.length;\n            if (t) {\n                if (!h.byClass(s[((t - 1))], \"UFIReplyList\")) {\n                    s[((t - 1))].JSBNG__focus();\n                }\n                 else if (!h.byClass(s[0], \"UFIReplyList\")) {\n                    s[0].JSBNG__focus();\n                }\n                \n            ;\n            ;\n            }\n             else s.JSBNG__focus();\n        ;\n        ;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function m(o) {\n        var p = g.removeClass.curry(o, \"collapsed_comments\");\n        if (window.ScrollAwareDOM) {\n            window.ScrollAwareDOM.monitor(o, p);\n        }\n         else p();\n    ;\n    ;\n    };\n;\n    var n = {\n        click: k,\n        expand: l,\n        uncollapse: m\n    };\n    e.exports = n;\n});\n__d(\"legacy:ufi-comment-prelude-js\", [\"CommentPrelude\",], function(a, b, c, d) {\n    var e = b(\"CommentPrelude\");\n    a.fc_click = e.click;\n    a.fc_expand = e.expand;\n}, 3);\n__d(\"ScriptMonitor\", [], function(a, b, c, d, e, f) {\n    var g, h = [], i = ((((window.JSBNG__MutationObserver || window.JSBNG__WebKitMutationObserver)) || window.MozMutationObserver));\n    e.exports = {\n        activate: function() {\n            if (!i) {\n                return;\n            }\n        ;\n        ;\n            g = new i(function(j) {\n                for (var k = 0; ((k < j.length)); k++) {\n                    var l = j[k];\n                    if (((l.type == \"childList\"))) {\n                        for (var m = 0; ((m < l.addedNodes.length)); m++) {\n                            var n = l.addedNodes[m];\n                            if (((((((n.tagName == \"SCRIPT\")) || ((n.tagName == \"div\")))) && n.src))) {\n                                h.push(n.src);\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    }\n                     else if (((((l.type == \"attributes\")) && ((l.attributeName == \"src\"))))) {\n                        h.push(l.target.src);\n                    }\n                    \n                ;\n                ;\n                };\n            ;\n            });\n            g.observe(JSBNG__document, {\n                attributes: true,\n                childList: true,\n                subtree: true\n            });\n        },\n        JSBNG__stop: function() {\n            ((g && g.disconnect()));\n            return h;\n        }\n    };\n});");
36149 // 1027
36150 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"(window.Bootloader && Bootloader.done([\"FHcQn\",]));");
36151 // 1028
36152 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s1ec9de22962c463704debb06fba6d985fa278804");
36153 // 1029
36154 geval("((window.Bootloader && Bootloader.done([\"FHcQn\",])));");
36155 // 1030
36156 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"Bootloader.loadEarlyResources({\n    OJTM4: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n    },\n    KPZ5T: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/lUdBiFiT5WF.js\"\n    },\n    AyUu6: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n    }\n});");
36157 // 1031
36158 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sd09f96795fe3d45f3ee8b15c8b39018f5cc6971d");
36159 // 1032
36160 geval("Bootloader.loadEarlyResources({\n    OJTM4: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n    },\n    KPZ5T: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/lUdBiFiT5WF.js\"\n    },\n    AyUu6: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n    }\n});");
36161 // 1089
36162 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"");
36163 // 1090
36164 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sda39a3ee5e6b4b0d3255bfef95601890afd80709");
36165 // 1091
36166 geval("");
36167 // 1092
36168 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"new (require(\"ServerJS\"))().handle({\n    require: [[\"removeArrayReduce\",],[\"markJSEnabled\",],[\"lowerDomain\",],[\"URLFragmentPrelude\",],],\n    define: [[\"BanzaiConfig\",[],{\n        MAX_WAIT: 150000,\n        MAX_SIZE: 10000,\n        COMPRESSION_THRESHOLD: 800,\n        gks: {\n            jslogger: true,\n            miny_compression: true,\n            boosted_posts: true,\n            time_spent: true,\n            time_spent_bit_array: true,\n            time_spent_debug: true,\n            useraction: true,\n            videos: true\n        }\n    },7,],[\"URLFragmentPreludeConfig\",[],{\n        hashtagRedirect: true,\n        incorporateQuicklingFragment: true\n    },137,],]\n});");
36169 // 1093
36170 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sbc7df7f6bb75d7e29414a7bf76d7afea4393a8e7");
36171 // 1094
36172 geval("new (require(\"ServerJS\"))().handle({\n    require: [[\"removeArrayReduce\",],[\"markJSEnabled\",],[\"lowerDomain\",],[\"URLFragmentPrelude\",],],\n    define: [[\"BanzaiConfig\",[],{\n        MAX_WAIT: 150000,\n        MAX_SIZE: 10000,\n        COMPRESSION_THRESHOLD: 800,\n        gks: {\n            jslogger: true,\n            miny_compression: true,\n            boosted_posts: true,\n            time_spent: true,\n            time_spent_bit_array: true,\n            time_spent_debug: true,\n            useraction: true,\n            videos: true\n        }\n    },7,],[\"URLFragmentPreludeConfig\",[],{\n        hashtagRedirect: true,\n        incorporateQuicklingFragment: true\n    },137,],]\n});");
36173 // 1121
36174 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function ea75eb5ad8aaea24ab24ebf43517fa9f8f28a5e83(event) {\n    (window.Toggler && Toggler.hide());\n};");
36175 // 1122
36176 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s2d2f3176d7753da10c34c3bb177bec59b83cb469");
36177 // 1123
36178 geval("function ea75eb5ad8aaea24ab24ebf43517fa9f8f28a5e83(JSBNG__event) {\n    ((window.Toggler && Toggler.hide()));\n};\n;");
36179 // 1124
36180 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function e830f288e6a8cbf22e8abb986c6e089c5659271c8(event) {\n    return run_with(this, [\"min-notifications-jewel\",], function() {\n        MinNotifications.bootstrap(this);\n    });\n};");
36181 // 1125
36182 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s228e7ad8d8b34d9189383f1ee1f8ebc5e264b2c7");
36183 // 1126
36184 geval("function e830f288e6a8cbf22e8abb986c6e089c5659271c8(JSBNG__event) {\n    return run_with(this, [\"min-notifications-jewel\",], function() {\n        MinNotifications.bootstrap(this);\n    });\n};\n;");
36185 // 1127
36186 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function ef343163437e1e36e64320973e11ec4fd294199b8(event) {\n    return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\n};");
36187 // 1128
36188 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sf00410e00f99092f4a1d19a9b07b9e421c5c3098");
36189 // 1129
36190 geval("function ef343163437e1e36e64320973e11ec4fd294199b8(JSBNG__event) {\n    return ((((window.JSBNG__Event && JSBNG__Event.__inlineSubmit)) && JSBNG__Event.__inlineSubmit(this, JSBNG__event)));\n};\n;");
36191 // 1130
36192 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function e6b9ee6e4c720411e5cc90c2e8a27e3f011d2ca03(event) {\n    var q = $(\"q\");\n    if ((q.value == q.getAttribute(\"placeholder\"))) {\n        q.focus();\n        return false;\n    }\n;\n};");
36193 // 1131
36194 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s79e165899c0a8b35dcda3e0eed5a77113507cc2a");
36195 // 1132
36196 geval("function e6b9ee6e4c720411e5cc90c2e8a27e3f011d2ca03(JSBNG__event) {\n    var q = $(\"q\");\n    if (((q.value == q.getAttribute(\"placeholder\")))) {\n        q.JSBNG__focus();\n        return false;\n    }\n;\n;\n};\n;");
36197 // 1133
36198 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function e1763d39821c50954838c23c263a833cf3c220233(event) {\n    $(\"search_first_focus\").value = ($(\"search_first_focus\").value || +new Date());\n;\n    Bootloader.loadComponents(\"SearchBootloader\", emptyFunction);\n};");
36199 // 1134
36200 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sb457412c7c4a82cfb7d83a81e772662d119d7357");
36201 // 1135
36202 geval("function e1763d39821c50954838c23c263a833cf3c220233(JSBNG__event) {\n    $(\"search_first_focus\").value = (($(\"search_first_focus\").value || +new JSBNG__Date()));\n;\n    Bootloader.loadComponents(\"SearchBootloader\", emptyFunction);\n};\n;");
36203 // 1136
36204 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function e48ad00ab516f01e319fbed724390d12b75b18f19(event) {\n    var q = $(\"q\");\n    if ((q.value == q.getAttribute(\"placeholder\"))) {\n        q.focus();\n        return false;\n    }\n;\n};");
36205 // 1137
36206 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sad3e60e6ef313246af33ee4c857063d0e186372c");
36207 // 1138
36208 geval("function e48ad00ab516f01e319fbed724390d12b75b18f19(JSBNG__event) {\n    var q = $(\"q\");\n    if (((q.value == q.getAttribute(\"placeholder\")))) {\n        q.JSBNG__focus();\n        return false;\n    }\n;\n;\n};\n;");
36209 // 1139
36210 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function ed96a7469491d024c399c3c2140634dee18c29dbb(event) {\n    Arbiter.inform(\"PagesVoiceBar/toggle\");\n};");
36211 // 1140
36212 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sccff236b67446ab7470d818242ee08d410ef28af");
36213 // 1141
36214 geval("function ed96a7469491d024c399c3c2140634dee18c29dbb(JSBNG__event) {\n    Arbiter.inform(\"PagesVoiceBar/toggle\");\n};\n;");
36215 // 1142
36216 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function ed5b9a1e17754cdecbed0d4ced66ccc11999b694d(event) {\n    return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\n};");
36217 // 1143
36218 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s790f8f81fa1c06d1398ea01a4fd11cfcc38d38ed");
36219 // 1144
36220 geval("function ed5b9a1e17754cdecbed0d4ced66ccc11999b694d(JSBNG__event) {\n    return ((((window.JSBNG__Event && JSBNG__Event.__inlineSubmit)) && JSBNG__Event.__inlineSubmit(this, JSBNG__event)));\n};\n;");
36221 // 1145
36222 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"function si_cj(m) {\n    setTimeout(function() {\n        new Image().src = ((\"http://jsbngssl.error.facebook.com/common/scribe_endpoint.php?c=si_clickjacking&t=8127\" + \"&m=\") + m);\n    }, 5000);\n};\nif (((top != self) && !false)) {\n    try {\n        if ((parent != top)) {\n            throw 1;\n        }\n    ;\n        var si_cj_d = [\"apps.facebook.com\",\"/pages/\",\"apps.beta.facebook.com\",];\n        var href = top.location.href.toLowerCase();\n        for (var i = 0; (i < si_cj_d.length); i++) {\n            if ((href.indexOf(si_cj_d[i]) >= 0)) {\n                throw 1;\n            }\n        ;\n        };\n        si_cj(\"3 \");\n    } catch (e) {\n        si_cj(\"1 \\u0009\");\n        window.document.write(\"\\u003Cstyle\\u003Ebody * {display:none !important;}\\u003C/style\\u003E\\u003Ca href=\\\"#\\\" onclick=\\\"top.location.href=window.location.href\\\" style=\\\"display:block !important;padding:10px\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_aac1e3\\\" style=\\\"display:block !important\\\"\\u003E\\u003C/i\\u003EGo to Facebook.com\\u003C/a\\u003E\");\n    };\n}\n;");
36223 // 1146
36224 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s02f69967dd897bcff2d1e3395259ebba55e85d4d");
36225 // 1147
36226 geval("function si_cj(m) {\n    JSBNG__setTimeout(function() {\n        new JSBNG__Image().src = ((((\"http://jsbngssl.error.facebook.com/common/scribe_endpoint.php?c=si_clickjacking&t=8127\" + \"&m=\")) + m));\n    }, 5000);\n};\n;\nif (((((JSBNG__top != JSBNG__self)) && !false))) {\n    try {\n        if (((parent != JSBNG__top))) {\n            throw 1;\n        }\n    ;\n    ;\n        var si_cj_d = [\"apps.facebook.com\",\"/pages/\",\"apps.beta.facebook.com\",];\n        var href = JSBNG__top.JSBNG__location.href.toLowerCase();\n        for (var i = 0; ((i < si_cj_d.length)); i++) {\n            if (((href.indexOf(si_cj_d[i]) >= 0))) {\n                throw 1;\n            }\n        ;\n        ;\n        };\n    ;\n        si_cj(\"3 \");\n    } catch (e) {\n        si_cj(\"1 \\u0009\");\n        window.JSBNG__document.write(\"\\u003Cstyle\\u003Ebody * {display:none !important;}\\u003C/style\\u003E\\u003Ca href=\\\"#\\\" onclick=\\\"top.JSBNG__location.href=window.JSBNG__location.href\\\" style=\\\"display:block !important;padding:10px\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_aac1e3\\\" style=\\\"display:block !important\\\"\\u003E\\u003C/i\\u003EGo to Facebook.com\\u003C/a\\u003E\");\n    };\n;\n}\n;\n;");
36227 // 1148
36228 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"Bootloader.setResourceMap({\n    VDymv: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y5/r/vs3UafVWckq.css\"\n    },\n    \"X/Fq6\": {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y6/r/YlbIHaln_Rk.css\"\n    },\n    \"0duP3\": {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yr/r/18Su5nrioMP.css\"\n    },\n    ZtiRu: {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yR/r/CXfPMMHwvvH.css\"\n    },\n    aQ3gA: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yi/r/4f32cuKS2xy.css\"\n    },\n    ynBUm: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/OWwnO_yMqhK.css\"\n    },\n    vFtag: {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/AXbdtQOFsWr.css\"\n    },\n    cy4a0: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y5/r/WlCdxJgZUKg.css\"\n    },\n    xqZGj: {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/tOU0wFcLVo_.css\"\n    },\n    W3Ky6: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/TvSvrZCKhi2.css\"\n    },\n    yagwf: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/M-qAxLB_sZh.css\"\n    }\n});\nBootloader.setResourceMap({\n    cNca2: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/OHUUx9tXXmr.js\"\n    },\n    oE4Do: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/MDwOqV08JHh.js\"\n    },\n    C3MER: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/hnJRUTuHHeP.js\"\n    },\n    AyUu6: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n    },\n    \"+h1d2\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yo/r/0gMMCDzw75A.js\"\n    },\n    h9fqQ: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/FmIXX_SfTzh.js\"\n    },\n    \"63VzN\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js\"\n    },\n    \"wxq+C\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/HXOT2PHhPzY.js\"\n    },\n    MqSmz: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yH/r/ghlEJgSKAee.js\"\n    },\n    tIw4R: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/ztXltT1LKGv.js\"\n    },\n    pR9EP: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yE/r/jKneATMaMne.js\"\n    },\n    AtxWD: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yU/r/RXieOTwv9ZN.js\"\n    },\n    qu1rX: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ym/r/5vdmAFTChHH.js\"\n    },\n    \"4vv8/\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/VctjjLR0rnO.js\"\n    },\n    KPZ5T: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/lUdBiFiT5WF.js\"\n    },\n    C6rJk: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/mvmvxDKTeL4.js\"\n    },\n    \"xO/k5\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yB/r/fQIoBRZLBHX.js\"\n    },\n    H42Jh: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y3/r/ppwOo4BAmlb.js\"\n    },\n    bwsMw: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y_/r/hwOyT9fmfZV.js\"\n    },\n    Pc0ie: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yu/r/aUem8WpGyly.js\"\n    },\n    hfrQl: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/MX9CLuapN6V.js\"\n    },\n    OJTM4: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n    },\n    AsDOA: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/4CJ_klaVGHP.js\"\n    },\n    zyFOp: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yA/r/HAFtXNlDnG9.js\"\n    },\n    \"u//Ut\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yn/r/-5WtOV0lZ_r.js\"\n    },\n    bUzfU: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/CVXUroaYxOH.js\"\n    },\n    hofTc: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/EKA5EzGo0o5.js\"\n    },\n    Rs18G: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ys/r/t80qJDlUD7e.js\"\n    },\n    EzMPG: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yr/r/r-aTsS_RKim.js\"\n    },\n    \"LpC/l\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/3O1MmhNwV3-.js\"\n    },\n    brbS1: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y1/r/-lwVuunZG1z.js\"\n    },\n    \"/vuZw\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/yXqVwx5GyZ4.js\"\n    }\n});\nBootloader.enableBootload({\n    PhotoTagger: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"+h1d2\",\"h9fqQ\",],\n        \"module\": true\n    },\n    AsyncDOM: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    HighContrastMode: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    SearchBootloader: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"u//Ut\",\"hfrQl\",\"OJTM4\",\"AsDOA\",\"0duP3\",\"63VzN\",]\n    },\n    Toggler: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n        \"module\": true\n    },\n    TagTokenizer: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"LpC/l\",\"h9fqQ\",\"AsDOA\",],\n        \"module\": true\n    },\n    PhotoTagApproval: {\n        resources: [\"AyUu6\",\"+h1d2\",\"h9fqQ\",],\n        \"module\": true\n    },\n    ErrorSignal: {\n        resources: [\"AyUu6\",\"cNca2\",],\n        \"module\": true\n    },\n    DesktopNotifications: {\n        resources: [\"C3MER\",],\n        \"module\": true\n    },\n    VideoRotate: {\n        resources: [\"AyUu6\",\"H42Jh\",],\n        \"module\": true\n    },\n    PhotoSnowlift: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",\"+h1d2\",],\n        \"module\": true\n    },\n    FbdDialogProvider: {\n        resources: [\"/vuZw\",\"AyUu6\",\"bwsMw\",],\n        \"module\": true\n    },\n    AsyncResponse: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    trackReferrer: {\n        resources: [],\n        \"module\": true\n    },\n    Event: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    AsyncDialog: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",],\n        \"module\": true\n    },\n    AjaxPipeRequest: {\n        resources: [\"AyUu6\",\"AsDOA\",],\n        \"module\": true\n    },\n    DOM: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    SpotlightShareViewer: {\n        resources: [\"AyUu6\",\"AsDOA\",\"X/Fq6\",\"zyFOp\",],\n        \"module\": true\n    },\n    ChatTabModel: {\n        resources: [\"AyUu6\",\"u//Ut\",\"OJTM4\",\"AsDOA\",\"EzMPG\",\"brbS1\",],\n        \"module\": true\n    },\n    Input: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    Music: {\n        resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"63VzN\",\"qu1rX\",\"pR9EP\",\"brbS1\",\"cy4a0\",],\n        \"module\": true\n    },\n    ConfirmationDialog: {\n        resources: [\"AyUu6\",\"AsDOA\",\"oE4Do\",],\n        \"module\": true\n    },\n    Dialog: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n        \"module\": true\n    },\n    IframeShim: {\n        resources: [\"AyUu6\",\"AsDOA\",\"MqSmz\",],\n        \"module\": true\n    },\n    PhotosButtonTooltips: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"Rs18G\",],\n        \"module\": true\n    },\n    SnowliftPicCropper: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"+h1d2\",\"Pc0ie\",\"0duP3\",\"wxq+C\",],\n        \"module\": true\n    },\n    SpotifyJSONPRequest: {\n        resources: [\"AyUu6\",\"xO/k5\",],\n        \"module\": true\n    },\n    Live: {\n        resources: [\"AyUu6\",\"OJTM4\",],\n        \"module\": true\n    },\n    \"legacy:link-rel-preload\": {\n        resources: [\"AyUu6\",]\n    },\n    DimensionTracking: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    PrivacyLiteNUXController: {\n        resources: [\"AyUu6\",\"AsDOA\",\"hfrQl\",\"0duP3\",\"u//Ut\",\"W3Ky6\",\"OJTM4\",],\n        \"module\": true\n    },\n    Tooltip: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n        \"module\": true\n    },\n    \"legacy:detect-broken-proxy-cache\": {\n        resources: [\"AyUu6\",]\n    },\n    PhotoInlineEditor: {\n        resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"AsDOA\",\"h9fqQ\",\"AtxWD\",],\n        \"module\": true\n    },\n    LiveTimer: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    \"legacy:min-notifications-jewel\": {\n        resources: [\"AyUu6\",\"AsDOA\",\"tIw4R\",\"hofTc\",]\n    },\n    AsyncRequest: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    React: {\n        resources: [\"OJTM4\",\"AyUu6\",],\n        \"module\": true\n    },\n    PhotoTags: {\n        resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"h9fqQ\",],\n        \"module\": true\n    },\n    \"fb-photos-snowlift-fullscreen-css\": {\n        resources: [\"VDymv\",]\n    },\n    PrivacyLiteFlyout: {\n        resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"0duP3\",\"hfrQl\",],\n        \"module\": true\n    },\n    Form: {\n        resources: [\"AyUu6\",\"AsDOA\",],\n        \"module\": true\n    }\n});");
36229 // 1149
36230 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s4ad4029b5e856b7e9e2bf9caa5692c3f880512f5");
36231 // 1150
36232 geval("Bootloader.setResourceMap({\n    VDymv: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y5/r/vs3UafVWckq.css\"\n    },\n    \"X/Fq6\": {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y6/r/YlbIHaln_Rk.css\"\n    },\n    \"0duP3\": {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yr/r/18Su5nrioMP.css\"\n    },\n    ZtiRu: {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yR/r/CXfPMMHwvvH.css\"\n    },\n    aQ3gA: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yi/r/4f32cuKS2xy.css\"\n    },\n    ynBUm: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/OWwnO_yMqhK.css\"\n    },\n    vFtag: {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/AXbdtQOFsWr.css\"\n    },\n    cy4a0: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y5/r/WlCdxJgZUKg.css\"\n    },\n    xqZGj: {\n        type: \"css\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/tOU0wFcLVo_.css\"\n    },\n    W3Ky6: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/TvSvrZCKhi2.css\"\n    },\n    yagwf: {\n        type: \"css\",\n        permanent: 1,\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/M-qAxLB_sZh.css\"\n    }\n});\nBootloader.setResourceMap({\n    cNca2: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/OHUUx9tXXmr.js\"\n    },\n    oE4Do: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/MDwOqV08JHh.js\"\n    },\n    C3MER: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/hnJRUTuHHeP.js\"\n    },\n    AyUu6: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n    },\n    \"+h1d2\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yo/r/0gMMCDzw75A.js\"\n    },\n    h9fqQ: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/FmIXX_SfTzh.js\"\n    },\n    \"63VzN\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js\"\n    },\n    \"wxq+C\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/HXOT2PHhPzY.js\"\n    },\n    MqSmz: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yH/r/ghlEJgSKAee.js\"\n    },\n    tIw4R: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/ztXltT1LKGv.js\"\n    },\n    pR9EP: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yE/r/jKneATMaMne.js\"\n    },\n    AtxWD: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yU/r/RXieOTwv9ZN.js\"\n    },\n    qu1rX: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ym/r/5vdmAFTChHH.js\"\n    },\n    \"4vv8/\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/VctjjLR0rnO.js\"\n    },\n    KPZ5T: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/lUdBiFiT5WF.js\"\n    },\n    C6rJk: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/mvmvxDKTeL4.js\"\n    },\n    \"xO/k5\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yB/r/fQIoBRZLBHX.js\"\n    },\n    H42Jh: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y3/r/ppwOo4BAmlb.js\"\n    },\n    bwsMw: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y_/r/hwOyT9fmfZV.js\"\n    },\n    Pc0ie: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yu/r/aUem8WpGyly.js\"\n    },\n    hfrQl: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/MX9CLuapN6V.js\"\n    },\n    OJTM4: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n    },\n    AsDOA: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/4CJ_klaVGHP.js\"\n    },\n    zyFOp: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yA/r/HAFtXNlDnG9.js\"\n    },\n    \"u//Ut\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yn/r/-5WtOV0lZ_r.js\"\n    },\n    bUzfU: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/CVXUroaYxOH.js\"\n    },\n    hofTc: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/EKA5EzGo0o5.js\"\n    },\n    Rs18G: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ys/r/t80qJDlUD7e.js\"\n    },\n    EzMPG: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yr/r/r-aTsS_RKim.js\"\n    },\n    \"LpC/l\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/3O1MmhNwV3-.js\"\n    },\n    brbS1: {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y1/r/-lwVuunZG1z.js\"\n    },\n    \"/vuZw\": {\n        type: \"js\",\n        crossOrigin: 1,\n        src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/yXqVwx5GyZ4.js\"\n    }\n});\nBootloader.enableBootload({\n    PhotoTagger: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"+h1d2\",\"h9fqQ\",],\n        \"module\": true\n    },\n    AsyncDOM: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    HighContrastMode: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    SearchBootloader: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"u//Ut\",\"hfrQl\",\"OJTM4\",\"AsDOA\",\"0duP3\",\"63VzN\",]\n    },\n    Toggler: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n        \"module\": true\n    },\n    TagTokenizer: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"LpC/l\",\"h9fqQ\",\"AsDOA\",],\n        \"module\": true\n    },\n    PhotoTagApproval: {\n        resources: [\"AyUu6\",\"+h1d2\",\"h9fqQ\",],\n        \"module\": true\n    },\n    ErrorSignal: {\n        resources: [\"AyUu6\",\"cNca2\",],\n        \"module\": true\n    },\n    DesktopNotifications: {\n        resources: [\"C3MER\",],\n        \"module\": true\n    },\n    VideoRotate: {\n        resources: [\"AyUu6\",\"H42Jh\",],\n        \"module\": true\n    },\n    PhotoSnowlift: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",\"+h1d2\",],\n        \"module\": true\n    },\n    FbdDialogProvider: {\n        resources: [\"/vuZw\",\"AyUu6\",\"bwsMw\",],\n        \"module\": true\n    },\n    AsyncResponse: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    trackReferrer: {\n        resources: [],\n        \"module\": true\n    },\n    JSBNG__Event: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    AsyncDialog: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",],\n        \"module\": true\n    },\n    AjaxPipeRequest: {\n        resources: [\"AyUu6\",\"AsDOA\",],\n        \"module\": true\n    },\n    DOM: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    SpotlightShareViewer: {\n        resources: [\"AyUu6\",\"AsDOA\",\"X/Fq6\",\"zyFOp\",],\n        \"module\": true\n    },\n    ChatTabModel: {\n        resources: [\"AyUu6\",\"u//Ut\",\"OJTM4\",\"AsDOA\",\"EzMPG\",\"brbS1\",],\n        \"module\": true\n    },\n    Input: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    Music: {\n        resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"63VzN\",\"qu1rX\",\"pR9EP\",\"brbS1\",\"cy4a0\",],\n        \"module\": true\n    },\n    ConfirmationDialog: {\n        resources: [\"AyUu6\",\"AsDOA\",\"oE4Do\",],\n        \"module\": true\n    },\n    Dialog: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n        \"module\": true\n    },\n    IframeShim: {\n        resources: [\"AyUu6\",\"AsDOA\",\"MqSmz\",],\n        \"module\": true\n    },\n    PhotosButtonTooltips: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"Rs18G\",],\n        \"module\": true\n    },\n    SnowliftPicCropper: {\n        resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"+h1d2\",\"Pc0ie\",\"0duP3\",\"wxq+C\",],\n        \"module\": true\n    },\n    SpotifyJSONPRequest: {\n        resources: [\"AyUu6\",\"xO/k5\",],\n        \"module\": true\n    },\n    Live: {\n        resources: [\"AyUu6\",\"OJTM4\",],\n        \"module\": true\n    },\n    \"legacy:link-rel-preload\": {\n        resources: [\"AyUu6\",]\n    },\n    DimensionTracking: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    PrivacyLiteNUXController: {\n        resources: [\"AyUu6\",\"AsDOA\",\"hfrQl\",\"0duP3\",\"u//Ut\",\"W3Ky6\",\"OJTM4\",],\n        \"module\": true\n    },\n    Tooltip: {\n        resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n        \"module\": true\n    },\n    \"legacy:detect-broken-proxy-cache\": {\n        resources: [\"AyUu6\",]\n    },\n    PhotoInlineEditor: {\n        resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"AsDOA\",\"h9fqQ\",\"AtxWD\",],\n        \"module\": true\n    },\n    LiveTimer: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    \"legacy:min-notifications-jewel\": {\n        resources: [\"AyUu6\",\"AsDOA\",\"tIw4R\",\"hofTc\",]\n    },\n    AsyncRequest: {\n        resources: [\"AyUu6\",],\n        \"module\": true\n    },\n    React: {\n        resources: [\"OJTM4\",\"AyUu6\",],\n        \"module\": true\n    },\n    PhotoTags: {\n        resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"h9fqQ\",],\n        \"module\": true\n    },\n    \"fb-photos-snowlift-fullscreen-css\": {\n        resources: [\"VDymv\",]\n    },\n    PrivacyLiteFlyout: {\n        resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"0duP3\",\"hfrQl\",],\n        \"module\": true\n    },\n    Form: {\n        resources: [\"AyUu6\",\"AsDOA\",],\n        \"module\": true\n    }\n});");
36233 // 1151
36234 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"require(\"InitialJSLoader\").loadOnDOMContentReady([\"AyUu6\",\"OJTM4\",\"KPZ5T\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"hfrQl\",\"C6rJk\",]);");
36235 // 1152
36236 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s64e75ee044a462ca968ff449d6732ef3a2cbafdb");
36237 // 1153
36238 geval("require(\"InitialJSLoader\").loadOnDOMContentReady([\"AyUu6\",\"OJTM4\",\"KPZ5T\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"hfrQl\",\"C6rJk\",]);");
36239 // 1155
36240 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"Bootloader.configurePage([\"W3Ky6\",\"0duP3\",\"ZtiRu\",\"aQ3gA\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",]);\nBootloader.done([\"jDr+c\",]);\nJSCC.init(({\n    j1QNRR7i8ax0yUao4H0: function() {\n        return new RequestsJewel();\n    }\n}));\nrequire(\"InitialJSLoader\").handleServerJS({\n    require: [[\"Intl\",\"setPhonologicalRules\",[],[{\n        meta: {\n            \"/_B/\": \"([.,!?\\\\s]|^)\",\n            \"/_E/\": \"([.,!?\\\\s]|$)\"\n        },\n        patterns: {\n            \"/\\u0001(.*)('|&#039;)s\\u0001(?:'|&#039;)s(.*)/\": \"\\u0001$1$2s\\u0001$3\",\n            \"/_\\u0001([^\\u0001]*)\\u0001/e\": \"mb_strtolower(\\\"\\u0001$1\\u0001\\\")\",\n            \"/\\\\^\\\\x01([^\\\\x01])(?=[^\\\\x01]*\\\\x01)/e\": \"mb_strtoupper(\\\"\\u0001$1\\\")\",\n            \"/_\\u0001([^\\u0001]*)\\u0001/\": \"javascript\"\n        }\n    },],],[\"PostLoadJS\",\"loadAndRequire\",[],[\"DimensionTracking\",],],[\"PostLoadJS\",\"loadAndCall\",[],[\"HighContrastMode\",\"init\",[{\n        currentState: \"1\",\n        spacerImage: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\"\n    },],],],[\"ScriptPath\",\"set\",[],[\"/profile_book.php\",\"98f03730\",],],[\"ClickRefLogger\",],[\"userAction\",\"setUATypeConfig\",[],[{\n        \"ua:n\": false,\n        \"ua:i\": false,\n        \"ua:d\": false,\n        \"ua:e\": false\n    },],],[\"ScriptPathState\",\"setUserURISampleRate\",[],[1077,],],[\"userAction\",\"setCustomSampleConfig\",[],[{\n        \"ua:n\": {\n            test: {\n                ua_id: {\n                    test: true\n                }\n            }\n        },\n        \"ua:i\": {\n            snowlift: {\n                action: {\n                    open: true,\n                    close: true\n                }\n            },\n            canvas: {\n                action: {\n                    mouseover: true,\n                    mouseout: true\n                }\n            }\n        }\n    },],],[\"UserActionHistory\",],[\"ScriptPath\",\"startLogging\",[],[],],[\"TimeSpentBitArrayLogger\",\"init\",[],[],],[\"PixelRatio\",\"startDetecting\",[],[1,],],[\"LiveTimer\",\"restart\",[],[1373491278,],],[\"MessagingReliabilityLogger\",],[\"SidebarPrelude\",\"addSidebarMode\",[],[1225,],],[\"Quickling\",],[\"TinyViewport\",],[\"WebStorageMonster\",\"schedule\",[],[false,],],[\"AsyncRequestNectarLogging\",],[\"ViewasChromeBar\",\"initChromeBar\",[\"m_0_0\",],[{\n        __m: \"m_0_0\"\n    },],],[\"PagesVoiceBar\",\"initVoiceBar\",[],[],],[\"TypeaheadSearchBrowseUpsell\",\"registerForm\",[\"m_0_1\",],[{\n        __m: \"m_0_1\"\n    },],],[\"TypeaheadSearchSponsored\",\"setAuctionOptions\",[],[{\n        maxNumberAds: 3,\n        maxNumberRemovedResults: 2,\n        maxNumberResultsAndAds: 8,\n        v1: 1000000,\n        v2: 0,\n        v0: 100000,\n        v3: 1000000,\n        v4: 1000000,\n        bootstrap: false,\n        rerankingStrategy: 5\n    },],],[\"AccessibleMenu\",\"init\",[\"m_0_3\",],[{\n        __m: \"m_0_3\"\n    },],],[\"MercuryJewel\",],[\"TitanLeftNav\",\"initialize\",[],[],],[\"m_0_6\",],[\"Typeahead\",\"init\",[\"m_0_7\",\"m_0_6\",\"TypeaheadExcludeBootstrapFromQueryCache\",\"TypeaheadSearchBrowseUpsell\",\"TypeaheadDetectQueryLocale\",],[{\n        __m: \"m_0_7\"\n    },{\n        __m: \"m_0_6\"\n    },[{\n        __m: \"TypeaheadExcludeBootstrapFromQueryCache\"\n    },{\n        __m: \"TypeaheadSearchBrowseUpsell\"\n    },{\n        __m: \"TypeaheadDetectQueryLocale\"\n    },\"searchSponsored\",\"searchRecorderBasic\",\"regulateMemorializedUsers\",\"showLoadingIndicator\",\"initFilters\",],null,],],[\"PlaceholderListener\",],[\"PlaceholderOnsubmitFormListener\",],[\"FlipDirectionOnKeypress\",],[\"enforceMaxLength\",],[\"m_0_4\",],[\"ChatOpenTab\",\"listenOpenEmptyTab\",[\"m_0_c\",],[{\n        __m: \"m_0_c\"\n    },],],[\"Scrollable\",],[\"m_0_e\",],[\"m_0_b\",],[\"WebStorageMonster\",\"registerLogoutForm\",[\"m_0_g\",],[{\n        __m: \"m_0_g\"\n    },[\"^Banzai$\",\"^\\\\:userchooser\\\\:osessusers$\",\"^[0-9]+:powereditor:\",\"^[0-9]+:page_insights:\",\"^_SocialFoxExternal_machineid$\",\"^_SocialFoxExternal_LoggedInBefore$\",\"^_socialfox_worker_enabled$\",],],],[\"m_0_j\",],[\"m_0_l\",],[\"m_0_m\",],[\"PrivacyLiteNUXController\",\"init\",[\"m_0_m\",],[{\n        dialog: {\n            __m: \"m_0_m\"\n        },\n        sectionID: \"who_can_see\",\n        subsectionID: \"plite_activity_log\",\n        showOnExpand: true\n    },],],[\"m_0_o\",],[\"PrivacyLiteFlyout\",\"registerFinalReminderFlyout\",[\"m_0_o\",],[{\n        __m: \"m_0_o\"\n    },],],[\"PrivacyLiteFlyout\",\"registerFlyoutToggler\",[\"m_0_q\",\"m_0_r\",],[{\n        __m: \"m_0_q\"\n    },{\n        __m: \"m_0_r\"\n    },],],[\"Primer\",],[\"m_0_x\",],],\n    instances: [[\"m_0_6\",[\"Typeahead\",\"m_0_9\",\"SearchTypeaheadView\",\"SearchTypeaheadRenderer\",\"m_0_7\",\"SearchTypeaheadCore\",\"m_0_8\",],[{\n        __m: \"m_0_9\"\n    },{\n        node_id: \"u_0_0\",\n        node: null,\n        ctor: {\n            __m: \"SearchTypeaheadView\"\n        },\n        options: {\n            autoSelect: true,\n            renderer: {\n                __m: \"SearchTypeaheadRenderer\"\n            },\n            causalElement: {\n                __m: \"m_0_7\"\n            },\n            maxResults: 8,\n            minWidth: 0,\n            alignment: \"left\",\n            showBadges: 1,\n            typeObjects: {\n                app: {\n                    uid: \"app\",\n                    text: \"app\",\n                    type: \"header\",\n                    markup: \"Apps\"\n                },\n                event: {\n                    uid: \"event\",\n                    text: \"event\",\n                    type: \"header\",\n                    markup: \"Events\"\n                },\n                group: {\n                    uid: \"group\",\n                    text: \"group\",\n                    type: \"header\",\n                    markup: \"Groups\"\n                },\n                page: {\n                    uid: \"page\",\n                    text: \"page\",\n                    type: \"header\",\n                    markup: \"Pages\"\n                },\n                place: {\n                    uid: \"place\",\n                    text: \"place\",\n                    type: \"header\",\n                    markup: \"Places\"\n                },\n                shortcut: {\n                    uid: \"shortcut\",\n                    text: \"shortcut\",\n                    type: \"header\",\n                    markup: \"Facebook\"\n                },\n                user: {\n                    uid: \"user\",\n                    text: \"user\",\n                    type: \"header\",\n                    markup: \"People\"\n                },\n                song: {\n                    uid: \"song\",\n                    text: \"song\",\n                    type: \"header\",\n                    markup: \"Music\"\n                },\n                friendlist: {\n                    uid: \"friendlist\",\n                    text: \"friendlist\",\n                    type: \"header\",\n                    markup: \"Lists\"\n                },\n                hashtag_exact: {\n                    uid: \"hashtag_exact\",\n                    text: \"hashtag_exact\",\n                    type: \"header\",\n                    markup: \"Hashtag\"\n                },\n                websuggestion: {\n                    uid: \"websuggestion\",\n                    text: \"websuggestion\",\n                    type: \"header\",\n                    markup: \"Search the Web\"\n                },\n                ownsection: {\n                    uid: \"ownsection\",\n                    text: \"ownsection\",\n                    type: \"header\",\n                    markup: \"Sponsored\"\n                },\n                tophit: {\n                    uid: \"tophit\",\n                    text: \"tophit\",\n                    type: \"header\",\n                    markup: \"Top Hit\"\n                }\n            },\n            seeMoreEndpoint: \"http://jsbngssl.www.facebook.com/search/results.php?init=quick\",\n            showKeywordResultsPage: false,\n            showFilterResults: false\n        }\n    },{\n        ctor: {\n            __m: \"SearchTypeaheadCore\"\n        },\n        options: {\n            keepFocused: false,\n            resetOnSelect: true\n        }\n    },{\n        __m: \"m_0_8\"\n    },],4,],[\"m_0_4\",[\"JewelX\",\"m_0_a\",],[{\n        __m: \"m_0_a\"\n    },{\n        name: \"mercurymessages\"\n    },],2,],[\"m_0_e\",[\"ScrollableArea\",\"m_0_d\",],[{\n        __m: \"m_0_d\"\n    },{\n        persistent: true\n    },],1,],[\"m_0_b\",[\"JewelX\",\"m_0_f\",],[{\n        __m: \"m_0_f\"\n    },{\n        name: \"requests\"\n    },],2,],[\"m_0_j\",[\"JewelX\",\"m_0_i\",],[{\n        __m: \"m_0_i\"\n    },{\n        name: \"notifications\"\n    },],1,],[\"m_0_l\",[\"ScrollableArea\",\"m_0_k\",],[{\n        __m: \"m_0_k\"\n    },{\n        persistent: true\n    },],1,],[\"m_0_m\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_n\",],[{\n        width: 300,\n        context: null,\n        contextID: null,\n        contextSelector: null,\n        position: \"left\",\n        alignment: \"left\",\n        offsetX: 0,\n        offsetY: 0,\n        arrowBehavior: {\n            __m: \"ContextualDialogArrow\"\n        },\n        theme: {\n            __m: \"ContextualDialogDefaultTheme\"\n        },\n        addedBehaviors: [{\n            __m: \"LayerRemoveOnHide\"\n        },{\n            __m: \"LayerHideOnTransition\"\n        },{\n            __m: \"LayerFadeOnShow\"\n        },]\n    },{\n        __m: \"m_0_n\"\n    },],3,],[\"m_0_o\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_p\",],[{\n        width: 300,\n        context: null,\n        contextID: \"u_0_6\",\n        contextSelector: null,\n        position: \"below\",\n        alignment: \"right\",\n        offsetX: 0,\n        offsetY: 0,\n        arrowBehavior: {\n            __m: \"ContextualDialogArrow\"\n        },\n        theme: {\n            __m: \"ContextualDialogDefaultTheme\"\n        },\n        addedBehaviors: [{\n            __m: \"LayerRemoveOnHide\"\n        },{\n            __m: \"LayerDestroyOnHide\"\n        },{\n            __m: \"LayerHideOnTransition\"\n        },{\n            __m: \"LayerFadeOnShow\"\n        },{\n            __m: \"ContextualLayerAutoFlip\"\n        },{\n            __m: \"DialogHideOnSuccess\"\n        },],\n        classNames: [\"_57bl\",]\n    },{\n        __m: \"m_0_p\"\n    },],3,],[\"m_0_x\",[\"PrivacyLiteFlyoutHelp\",\"m_0_s\",\"m_0_t\",\"m_0_u\",\"m_0_v\",\"m_0_w\",],[{\n        __m: \"m_0_s\"\n    },{\n        __m: \"m_0_t\"\n    },{\n        __m: \"m_0_u\"\n    },{\n        __m: \"m_0_v\"\n    },{\n        __m: \"m_0_w\"\n    },],1,],[\"m_0_9\",[\"SearchDataSource\",],[{\n        minWebSugg: 3,\n        minQueryLength: 2,\n        maxWebSuggToCountFetchMore: 2,\n        maxResults: 8,\n        indexedFields: [\"text\",\"tokens\",\"alias\",\"non_title_tokens\",],\n        titleFields: [\"text\",\"alias\",\"tokens\",],\n        queryData: {\n            viewer: 100006118350059,\n            rsp: \"search\",\n            context: \"search\"\n        },\n        queryEndpoint: \"/ajax/typeahead/search.php\",\n        bootstrapData: {\n            viewer: 100006118350059,\n            token: \"v7\"\n        },\n        bootstrapEndpoint: \"/ajax/typeahead/search/bootstrap.php\",\n        token: \"1372173655-7\",\n        genTime: 1373491278,\n        enabledQueryCache: true,\n        queryExactMatch: false,\n        enabledHashtag: true\n    },],2,],[\"m_0_y\",[\"XHPTemplate\",\"m_0_14\",],[{\n        __m: \"m_0_14\"\n    },],2,],[\"m_0_z\",[\"XHPTemplate\",\"m_0_15\",],[{\n        __m: \"m_0_15\"\n    },],2,],[\"m_0_10\",[\"XHPTemplate\",\"m_0_16\",],[{\n        __m: \"m_0_16\"\n    },],2,],[\"m_0_11\",[\"XHPTemplate\",\"m_0_17\",],[{\n        __m: \"m_0_17\"\n    },],2,],[\"m_0_12\",[\"XHPTemplate\",\"m_0_18\",],[{\n        __m: \"m_0_18\"\n    },],2,],[\"m_0_13\",[\"XHPTemplate\",\"m_0_19\",],[{\n        __m: \"m_0_19\"\n    },],2,],],\n    define: [[\"TimeSpentConfig\",[],{\n        delay: 200000,\n        initial_timeout: 8,\n        initial_delay: 1000\n    },142,],[\"MessagingReliabilityLoggerInitialData\",[],{\n        enabled: false,\n        app: \"mercury\"\n    },44,],[\"QuicklingConfig\",[],{\n        version: \"871405;0;0;0\",\n        inactivePageRegex: \"^/(fr/u\\\\.php|ads/|advertising|ac\\\\.php|ae\\\\.php|ajax/emu/(end|f|h)\\\\.php|badges/|comments\\\\.php|connect/uiserver\\\\.php|editalbum\\\\.php.+add=1|ext/|feeds/|help([/?]|$)|identity_switch\\\\.php|intern/|login\\\\.php|logout\\\\.php|sitetour/homepage_tour\\\\.php|sorry\\\\.php|syndication\\\\.php|webmessenger|/plugins/subscribe|\\\\.pdf$|brandpermissions|gameday|pxlcld)\",\n        sessionLength: 30\n    },60,],[\"MercuryThreadlistIconTemplates\",[\"m_0_y\",\"m_0_z\",],{\n        \":fb:mercury:attachment-indicator\": {\n            __m: \"m_0_y\"\n        },\n        \":fb:mercury:attachment-icon-text\": {\n            __m: \"m_0_z\"\n        }\n    },42,],[\"MercuryThreadlistConstants\",[],{\n        SEARCH_TAB: \"searchtab\",\n        JEWEL_MORE_COUNT: 10,\n        WEBMESSENGER_SEARCH_SNIPPET_COUNT: 5,\n        WEBMESSENGER_SEARCH_SNIPPET_MORE: 5,\n        RECENT_MESSAGES_LIMIT: 10,\n        WEBMESSENGER_SEARCH_SNIPPET_LIMIT: 5,\n        WEBMESSENGER_MORE_MESSAGES_COUNT: 20,\n        WEBMESSENGER_MORE_COUNT: 20,\n        JEWEL_THREAD_COUNT: 5,\n        RECENT_THREAD_OFFSET: 0,\n        MAX_CHARS_BEFORE_BREAK: 280,\n        MESSAGE_TIMESTAMP_THRESHOLD: 1209600000,\n        GROUPING_THRESHOLD: 300000,\n        MAX_UNSEEN_COUNT: 99,\n        MAX_UNREAD_COUNT: 99,\n        WEBMESSENGER_THREAD_COUNT: 20\n    },96,],[\"MessagingConfig\",[],{\n        SEND_BATCH_LIMIT: 5,\n        IDLE_CUTOFF: 30000,\n        SEND_CONNECTION_RETRIES: 2\n    },97,],[\"MercuryParticipantsConstants\",[],{\n        EMAIL_IMAGE: \"/images/messaging/threadlist/envelope.png\",\n        BIG_IMAGE_SIZE: 50,\n        IMAGE_SIZE: 32,\n        UNKNOWN_GENDER: 0\n    },109,],[\"MercuryConfig\",[],{\n        \"24h_times\": false,\n        activity_limit: 60000,\n        idle_poll_interval: 300000,\n        WebMessengerThreadSearchGK: 1,\n        ChatSaveDraftsGK: 0,\n        VideoCallingNoJavaGK: 0,\n        MessagesJewelToggleReadGK: 1,\n        SocialContextGK: 0,\n        ChatMultiTypGK: 0,\n        ChatMultiTypSendGK: 1,\n        NewVCGK: 0,\n        local_storage_crypto: null,\n        MessagesDisableForwardingGK: 1,\n        MessagesJewelOpenInChat: 0,\n        filtering_active: true,\n        idle_limit: 1800000,\n        MessagingDisplayEmojiGK: 1,\n        \"roger.seen_delay\": 15000\n    },35,],[\"DateFormatConfig\",[],{\n        weekStart: 6,\n        ordinalSuffixes: {\n            1: \"st\",\n            2: \"nd\",\n            3: \"rd\",\n            4: \"th\",\n            5: \"th\",\n            6: \"th\",\n            7: \"th\",\n            8: \"th\",\n            9: \"th\",\n            10: \"th\",\n            11: \"th\",\n            12: \"th\",\n            13: \"th\",\n            14: \"th\",\n            15: \"th\",\n            16: \"th\",\n            17: \"th\",\n            18: \"th\",\n            19: \"th\",\n            20: \"th\",\n            21: \"st\",\n            22: \"nd\",\n            23: \"rd\",\n            24: \"th\",\n            25: \"th\",\n            26: \"th\",\n            27: \"th\",\n            28: \"th\",\n            29: \"th\",\n            30: \"th\",\n            31: \"st\"\n        },\n        numericDateSeparator: \"/\",\n        numericDateOrder: [\"m\",\"d\",\"y\",],\n        shortDayNames: [\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\",],\n        formats: []\n    },165,],[\"MercuryJewelTemplates\",[\"m_0_10\",],{\n        \":fb:mercury:jewel:threadlist-row\": {\n            __m: \"m_0_10\"\n        }\n    },39,],[\"MercuryStatusTemplates\",[\"m_0_11\",\"m_0_12\",\"m_0_13\",],{\n        \":fb:mercury:resend-indicator\": {\n            __m: \"m_0_11\"\n        },\n        \":fb:mercury:filtered-message\": {\n            __m: \"m_0_12\"\n        },\n        \":fb:mercury:error-indicator\": {\n            __m: \"m_0_13\"\n        }\n    },41,],[\"MercuryServerRequestsConfig\",[],{\n        sendMessageTimeout: 45000\n    },107,],[\"PresencePrivacyInitialData\",[],{\n        visibility: 1,\n        privacyData: {\n        },\n        onlinePolicy: 1\n    },58,],[\"HashtagSearchResultConfig\",[],{\n        boost_result: 1,\n        hashtag_cost: 10848,\n        image_url: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/irmqzCEvUpb.png\"\n    },146,],],\n    elements: [[\"m_0_2\",\"u_0_1\",2,\"m_0_1\",],[\"m_0_8\",\"u_0_2\",2,],[\"m_0_7\",\"u_0_3\",4,],[\"m_0_a\",\"fbMessagesJewel\",2,],[\"m_0_c\",\"u_0_4\",2,],[\"m_0_d\",\"MercuryJewelThreadList\",2,],[\"m_0_f\",\"fbRequestsJewel\",2,],[\"m_0_g\",\"logout_form\",2,],[\"m_0_i\",\"fbNotificationsJewel\",2,],[\"m_0_k\",\"u_0_5\",2,],[\"m_0_r\",\"u_0_8\",2,],[\"m_0_w\",\"u_0_9\",2,],[\"m_0_t\",\"u_0_a\",2,],[\"m_0_v\",\"u_0_b\",2,],[\"m_0_5\",\"navSearch\",2,],[\"m_0_q\",\"u_0_7\",2,],[\"m_0_u\",\"u_0_c\",2,],[\"m_0_s\",\"u_0_d\",2,],[\"m_0_3\",\"u_0_e\",2,],[\"m_0_h\",\"logout_form\",2,],[\"m_0_0\",\"u_0_f\",2,],],\n    markup: [[\"m_0_1\",{\n        __html: \"\\u003Cform rel=\\\"async\\\" action=\\\"/ajax/marketing/optin\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"project\\\" value=\\\"320951738012113\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"product\\\" value=\\\"Graph Search\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"source\\\" value=\\\"search_taui\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"mtm mlm rfloat\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu browseSignup selected _42gz\\\" type=\\\"submit\\\"\\u003EGet Graph Search\\u003C/button\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fr _42fu browseJoined selected _42gz\\\" disabled=\\\"1\\\" type=\\\"submit\\\"\\u003EYou&#039;re on the List!\\u003C/button\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fwb\\\"\\u003ENew! Try Graph Search\\u003C/div\\u003EFind more of what you&#039;re looking for through friends and connections. \\u003Ca href=\\\"/about/graphsearch?source=search_tau\\\"\\u003ELearn More\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n    },3,],[\"m_0_n\",{\n        __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"_1luv _1lvq\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" alt=\\\"Close\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y0/r/K4K8h0mqOQN.png\\\" width=\\\"11\\\" height=\\\"13\\\" /\\u003E\\u003C/a\\u003E\\u003Cspan class=\\\"fsl\\\"\\u003E\\u003Cspan class=\\\"_3oyf\\\"\\u003ETry your new Privacy Shortcuts.\\u003C/span\\u003E Visit your Activity Log to review photos you&#039;re tagged in and things you&#039;ve hidden from your timeline.\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n    },2,],[\"m_0_p\",{\n        __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Cstrong\\u003ETip\\u003C/strong\\u003E: Graph Search is rolling out now, so it&#039;s getting easier for people to find photos and other things you&#039;ve shared with them. To check who can see your stuff, just click \\u003Cimg class=\\\"img\\\" alt=\\\"Privacy Shortcuts\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/eYJycDMyJiy.png\\\" width=\\\"12\\\" height=\\\"9\\\" /\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm _57bk uiOverlayButton selected _42g-\\\" type=\\\"submit\\\"\\u003EOkay\\u003C/button\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n    },2,],[\"m_0_14\",{\n        __html: \"\\u003Ci class=\\\"mrs MercuryThreadlistIcon img sp_2gr8ms sx_22d5af\\\"\\u003E\\u003C/i\\u003E\"\n    },2,],[\"m_0_15\",{\n        __html: \"\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\"\n    },2,],[\"m_0_16\",{\n        __html: \"\\u003Cli\\u003E\\u003Ca class=\\\"messagesContent\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage _8o _8s lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.fbexternal-a.akamaihd.net/safe_image.php?d=AQD8Nn8D0yyraIdI&amp;url=https%3A%2F%2Ffbstatic-a.akamaihd.net%2Frsrc.php%2Fv2%2Fyw%2Fr%2FdrP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"clearfix _42ef\\\"\\u003E\\u003Cdiv class=\\\"snippetThumbnail rfloat\\\"\\u003E\\u003Cspan class=\\\"_56hv hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-single\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-multiple\\\"\\u003E\\u003Cspan class=\\\"_56hy\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_56hv\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"content fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"author\\\"\\u003E\\u003Cstrong data-jsid=\\\"name\\\"\\u003E\\u003C/strong\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"snippet preview fsm fwn fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"snippet\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"time\\\"\\u003E\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n    },2,],[\"m_0_17\",{\n        __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/O7ihJIPh_G0.gif\\\" alt=\\\"\\\" width=\\\"15\\\" height=\\\"15\\\" /\\u003E\\u003Cspan class=\\\"_55r6\\\"\\u003ESending...\\u003C/span\\u003E\\u003C/div\\u003E\"\n    },2,],[\"m_0_18\",{\n        __html: \"\\u003Cdiv class=\\\"mas pam uiBoxYellow\\\"\\u003E\\u003Cstrong\\u003EThis message is no longer available\\u003C/strong\\u003E because it was identified as abusive or marked as spam.\\u003C/div\\u003E\"\n    },2,],[\"m_0_19\",{\n        __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/NNg0bu4GBuz.png\\\" alt=\\\"\\\" width=\\\"13\\\" height=\\\"11\\\" /\\u003E\\u003Cspan class=\\\"_55r7\\\"\\u003EFailed to send\\u003C/span\\u003E\\u003C/div\\u003E\"\n    },2,],]\n});\nonloadRegister_DEPRECATED(function() {\n    new AsyncRequest().setURI(\"/ajax/marketing/tour/privacy_dialog.php\").send();\n});\nonloadRegister_DEPRECATED(function() {\n    requireLazy([\"MercuryJewel\",], function(MercuryJewel) {\n        new MercuryJewel($(\"fbMessagesFlyout\"), $(\"fbMessagesJewel\"), require(\"m_0_4\"), {\n            message_counts: [{\n                unread_count: 0,\n                unseen_count: 0,\n                seen_timestamp: 0,\n                last_action_id: 0,\n                folder: \"inbox\"\n            },{\n                unread_count: 0,\n                unseen_count: 0,\n                seen_timestamp: 0,\n                last_action_id: null,\n                folder: \"other\"\n            },],\n            payload_source: \"server_initial_data\"\n        });\n    });\n});\nonloadRegister_DEPRECATED(function() {\n    require(\"m_0_6\").getData().onLoad(false, true);\n});\nonloadRegister_DEPRECATED(function() {\n    window.presenceRequests = JSCC.get(\"j1QNRR7i8ax0yUao4H0\").init(require(\"m_0_b\"), \"[fb]requests\", false);\n});\nonloadRegister_DEPRECATED(function() {\n    window.presenceNotifications = new Notifications({\n        updateTime: 1373491278000,\n        latestNotif: null,\n        latestReadNotif: null,\n        updatePeriod: 480000,\n        cacheVersion: 2,\n        allowDesktopNotifications: false,\n        notifReceivedType: \"notification\",\n        wrapperID: \"fbNotificationsJewel\",\n        contentID: \"fbNotificationsList\",\n        shouldLogImpressions: 0,\n        useInfiniteScroll: 1,\n        persistUnreadColor: true,\n        unseenVsUnread: 0\n    });\n});\nonloadRegister_DEPRECATED(function() {\n    Arbiter.inform(\"jewel/count-initial\", {\n        jewel: \"notifications\",\n        count: 0\n    }, Arbiter.BEHAVIOR_STATE);\n});\nonafterloadRegister_DEPRECATED(function() {\n    Bootloader.loadComponents([\"legacy:detect-broken-proxy-cache\",], function() {\n        detect_broken_proxy_cache(\"100006118350059\", \"c_user\");\n    });\n});\nonafterloadRegister_DEPRECATED(function() {\n    Bootloader.loadComponents([\"legacy:link-rel-preload\",], function() {\n        link_rel_preload();\n    });\n});");
36241 // 1156
36242 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s7d69d1300480c076a19d2cade30894fd648724a1");
36243 // 1157
36244 geval("Bootloader.configurePage([\"W3Ky6\",\"0duP3\",\"ZtiRu\",\"aQ3gA\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",]);\nBootloader.done([\"jDr+c\",]);\nJSCC.init(({\n    j1QNRR7i8ax0yUao4H0: function() {\n        return new RequestsJewel();\n    }\n}));\nrequire(\"InitialJSLoader\").handleServerJS({\n    require: [[\"JSBNG__Intl\",\"setPhonologicalRules\",[],[{\n        meta: {\n            \"/_B/\": \"([.,!?\\\\s]|^)\",\n            \"/_E/\": \"([.,!?\\\\s]|$)\"\n        },\n        patterns: {\n            \"/\\u0001(.*)('|&#039;)s\\u0001(?:'|&#039;)s(.*)/\": \"\\u0001$1$2s\\u0001$3\",\n            \"/_\\u0001([^\\u0001]*)\\u0001/e\": \"mb_strtolower(\\\"\\u0001$1\\u0001\\\")\",\n            \"/\\\\^\\\\x01([^\\\\x01])(?=[^\\\\x01]*\\\\x01)/e\": \"mb_strtoupper(\\\"\\u0001$1\\\")\",\n            \"/_\\u0001([^\\u0001]*)\\u0001/\": \"javascript\"\n        }\n    },],],[\"PostLoadJS\",\"loadAndRequire\",[],[\"DimensionTracking\",],],[\"PostLoadJS\",\"loadAndCall\",[],[\"HighContrastMode\",\"init\",[{\n        currentState: \"1\",\n        spacerImage: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\"\n    },],],],[\"ScriptPath\",\"set\",[],[\"/profile_book.php\",\"98f03730\",],],[\"ClickRefLogger\",],[\"userAction\",\"setUATypeConfig\",[],[{\n        \"ua:n\": false,\n        \"ua:i\": false,\n        \"ua:d\": false,\n        \"ua:e\": false\n    },],],[\"ScriptPathState\",\"setUserURISampleRate\",[],[1077,],],[\"userAction\",\"setCustomSampleConfig\",[],[{\n        \"ua:n\": {\n            test: {\n                ua_id: {\n                    test: true\n                }\n            }\n        },\n        \"ua:i\": {\n            snowlift: {\n                action: {\n                    open: true,\n                    close: true\n                }\n            },\n            canvas: {\n                action: {\n                    mouseover: true,\n                    mouseout: true\n                }\n            }\n        }\n    },],],[\"UserActionHistory\",],[\"ScriptPath\",\"startLogging\",[],[],],[\"TimeSpentBitArrayLogger\",\"init\",[],[],],[\"PixelRatio\",\"startDetecting\",[],[1,],],[\"LiveTimer\",\"restart\",[],[1373491278,],],[\"MessagingReliabilityLogger\",],[\"SidebarPrelude\",\"addSidebarMode\",[],[1225,],],[\"Quickling\",],[\"TinyViewport\",],[\"WebStorageMonster\",\"schedule\",[],[false,],],[\"AsyncRequestNectarLogging\",],[\"ViewasChromeBar\",\"initChromeBar\",[\"m_0_0\",],[{\n        __m: \"m_0_0\"\n    },],],[\"PagesVoiceBar\",\"initVoiceBar\",[],[],],[\"TypeaheadSearchBrowseUpsell\",\"registerForm\",[\"m_0_1\",],[{\n        __m: \"m_0_1\"\n    },],],[\"TypeaheadSearchSponsored\",\"setAuctionOptions\",[],[{\n        maxNumberAds: 3,\n        maxNumberRemovedResults: 2,\n        maxNumberResultsAndAds: 8,\n        v1: 1000000,\n        v2: 0,\n        v0: 100000,\n        v3: 1000000,\n        v4: 1000000,\n        bootstrap: false,\n        rerankingStrategy: 5\n    },],],[\"AccessibleMenu\",\"init\",[\"m_0_3\",],[{\n        __m: \"m_0_3\"\n    },],],[\"MercuryJewel\",],[\"TitanLeftNav\",\"initialize\",[],[],],[\"m_0_6\",],[\"Typeahead\",\"init\",[\"m_0_7\",\"m_0_6\",\"TypeaheadExcludeBootstrapFromQueryCache\",\"TypeaheadSearchBrowseUpsell\",\"TypeaheadDetectQueryLocale\",],[{\n        __m: \"m_0_7\"\n    },{\n        __m: \"m_0_6\"\n    },[{\n        __m: \"TypeaheadExcludeBootstrapFromQueryCache\"\n    },{\n        __m: \"TypeaheadSearchBrowseUpsell\"\n    },{\n        __m: \"TypeaheadDetectQueryLocale\"\n    },\"searchSponsored\",\"searchRecorderBasic\",\"regulateMemorializedUsers\",\"showLoadingIndicator\",\"initFilters\",],null,],],[\"PlaceholderListener\",],[\"PlaceholderOnsubmitFormListener\",],[\"FlipDirectionOnKeypress\",],[\"enforceMaxLength\",],[\"m_0_4\",],[\"ChatOpenTab\",\"listenOpenEmptyTab\",[\"m_0_c\",],[{\n        __m: \"m_0_c\"\n    },],],[\"Scrollable\",],[\"m_0_e\",],[\"m_0_b\",],[\"WebStorageMonster\",\"registerLogoutForm\",[\"m_0_g\",],[{\n        __m: \"m_0_g\"\n    },[\"^Banzai$\",\"^\\\\:userchooser\\\\:osessusers$\",\"^[0-9]+:powereditor:\",\"^[0-9]+:page_insights:\",\"^_SocialFoxExternal_machineid$\",\"^_SocialFoxExternal_LoggedInBefore$\",\"^_socialfox_worker_enabled$\",],],],[\"m_0_j\",],[\"m_0_l\",],[\"m_0_m\",],[\"PrivacyLiteNUXController\",\"init\",[\"m_0_m\",],[{\n        dialog: {\n            __m: \"m_0_m\"\n        },\n        sectionID: \"who_can_see\",\n        subsectionID: \"plite_activity_log\",\n        showOnExpand: true\n    },],],[\"m_0_o\",],[\"PrivacyLiteFlyout\",\"registerFinalReminderFlyout\",[\"m_0_o\",],[{\n        __m: \"m_0_o\"\n    },],],[\"PrivacyLiteFlyout\",\"registerFlyoutToggler\",[\"m_0_q\",\"m_0_r\",],[{\n        __m: \"m_0_q\"\n    },{\n        __m: \"m_0_r\"\n    },],],[\"Primer\",],[\"m_0_x\",],],\n    instances: [[\"m_0_6\",[\"Typeahead\",\"m_0_9\",\"SearchTypeaheadView\",\"SearchTypeaheadRenderer\",\"m_0_7\",\"SearchTypeaheadCore\",\"m_0_8\",],[{\n        __m: \"m_0_9\"\n    },{\n        node_id: \"u_0_0\",\n        node: null,\n        ctor: {\n            __m: \"SearchTypeaheadView\"\n        },\n        options: {\n            autoSelect: true,\n            renderer: {\n                __m: \"SearchTypeaheadRenderer\"\n            },\n            causalElement: {\n                __m: \"m_0_7\"\n            },\n            maxResults: 8,\n            minWidth: 0,\n            alignment: \"left\",\n            showBadges: 1,\n            typeObjects: {\n                app: {\n                    uid: \"app\",\n                    text: \"app\",\n                    type: \"header\",\n                    markup: \"Apps\"\n                },\n                JSBNG__event: {\n                    uid: \"JSBNG__event\",\n                    text: \"JSBNG__event\",\n                    type: \"header\",\n                    markup: \"Events\"\n                },\n                group: {\n                    uid: \"group\",\n                    text: \"group\",\n                    type: \"header\",\n                    markup: \"Groups\"\n                },\n                page: {\n                    uid: \"page\",\n                    text: \"page\",\n                    type: \"header\",\n                    markup: \"Pages\"\n                },\n                place: {\n                    uid: \"place\",\n                    text: \"place\",\n                    type: \"header\",\n                    markup: \"Places\"\n                },\n                shortcut: {\n                    uid: \"shortcut\",\n                    text: \"shortcut\",\n                    type: \"header\",\n                    markup: \"Facebook\"\n                },\n                user: {\n                    uid: \"user\",\n                    text: \"user\",\n                    type: \"header\",\n                    markup: \"People\"\n                },\n                song: {\n                    uid: \"song\",\n                    text: \"song\",\n                    type: \"header\",\n                    markup: \"Music\"\n                },\n                friendlist: {\n                    uid: \"friendlist\",\n                    text: \"friendlist\",\n                    type: \"header\",\n                    markup: \"Lists\"\n                },\n                hashtag_exact: {\n                    uid: \"hashtag_exact\",\n                    text: \"hashtag_exact\",\n                    type: \"header\",\n                    markup: \"Hashtag\"\n                },\n                websuggestion: {\n                    uid: \"websuggestion\",\n                    text: \"websuggestion\",\n                    type: \"header\",\n                    markup: \"Search the Web\"\n                },\n                ownsection: {\n                    uid: \"ownsection\",\n                    text: \"ownsection\",\n                    type: \"header\",\n                    markup: \"Sponsored\"\n                },\n                tophit: {\n                    uid: \"tophit\",\n                    text: \"tophit\",\n                    type: \"header\",\n                    markup: \"Top Hit\"\n                }\n            },\n            seeMoreEndpoint: \"http://jsbngssl.www.facebook.com/search/results.php?init=quick\",\n            showKeywordResultsPage: false,\n            showFilterResults: false\n        }\n    },{\n        ctor: {\n            __m: \"SearchTypeaheadCore\"\n        },\n        options: {\n            keepFocused: false,\n            resetOnSelect: true\n        }\n    },{\n        __m: \"m_0_8\"\n    },],4,],[\"m_0_4\",[\"JewelX\",\"m_0_a\",],[{\n        __m: \"m_0_a\"\n    },{\n        JSBNG__name: \"mercurymessages\"\n    },],2,],[\"m_0_e\",[\"ScrollableArea\",\"m_0_d\",],[{\n        __m: \"m_0_d\"\n    },{\n        persistent: true\n    },],1,],[\"m_0_b\",[\"JewelX\",\"m_0_f\",],[{\n        __m: \"m_0_f\"\n    },{\n        JSBNG__name: \"requests\"\n    },],2,],[\"m_0_j\",[\"JewelX\",\"m_0_i\",],[{\n        __m: \"m_0_i\"\n    },{\n        JSBNG__name: \"notifications\"\n    },],1,],[\"m_0_l\",[\"ScrollableArea\",\"m_0_k\",],[{\n        __m: \"m_0_k\"\n    },{\n        persistent: true\n    },],1,],[\"m_0_m\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_n\",],[{\n        width: 300,\n        context: null,\n        contextID: null,\n        contextSelector: null,\n        position: \"left\",\n        alignment: \"left\",\n        offsetX: 0,\n        offsetY: 0,\n        arrowBehavior: {\n            __m: \"ContextualDialogArrow\"\n        },\n        theme: {\n            __m: \"ContextualDialogDefaultTheme\"\n        },\n        addedBehaviors: [{\n            __m: \"LayerRemoveOnHide\"\n        },{\n            __m: \"LayerHideOnTransition\"\n        },{\n            __m: \"LayerFadeOnShow\"\n        },]\n    },{\n        __m: \"m_0_n\"\n    },],3,],[\"m_0_o\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_p\",],[{\n        width: 300,\n        context: null,\n        contextID: \"u_0_6\",\n        contextSelector: null,\n        position: \"below\",\n        alignment: \"right\",\n        offsetX: 0,\n        offsetY: 0,\n        arrowBehavior: {\n            __m: \"ContextualDialogArrow\"\n        },\n        theme: {\n            __m: \"ContextualDialogDefaultTheme\"\n        },\n        addedBehaviors: [{\n            __m: \"LayerRemoveOnHide\"\n        },{\n            __m: \"LayerDestroyOnHide\"\n        },{\n            __m: \"LayerHideOnTransition\"\n        },{\n            __m: \"LayerFadeOnShow\"\n        },{\n            __m: \"ContextualLayerAutoFlip\"\n        },{\n            __m: \"DialogHideOnSuccess\"\n        },],\n        classNames: [\"_57bl\",]\n    },{\n        __m: \"m_0_p\"\n    },],3,],[\"m_0_x\",[\"PrivacyLiteFlyoutHelp\",\"m_0_s\",\"m_0_t\",\"m_0_u\",\"m_0_v\",\"m_0_w\",],[{\n        __m: \"m_0_s\"\n    },{\n        __m: \"m_0_t\"\n    },{\n        __m: \"m_0_u\"\n    },{\n        __m: \"m_0_v\"\n    },{\n        __m: \"m_0_w\"\n    },],1,],[\"m_0_9\",[\"SearchDataSource\",],[{\n        minWebSugg: 3,\n        minQueryLength: 2,\n        maxWebSuggToCountFetchMore: 2,\n        maxResults: 8,\n        indexedFields: [\"text\",\"tokens\",\"alias\",\"non_title_tokens\",],\n        titleFields: [\"text\",\"alias\",\"tokens\",],\n        queryData: {\n            viewer: 100006118350059,\n            rsp: \"search\",\n            context: \"search\"\n        },\n        queryEndpoint: \"/ajax/typeahead/search.php\",\n        bootstrapData: {\n            viewer: 100006118350059,\n            token: \"v7\"\n        },\n        bootstrapEndpoint: \"/ajax/typeahead/search/bootstrap.php\",\n        token: \"1372173655-7\",\n        genTime: 1373491278,\n        enabledQueryCache: true,\n        queryExactMatch: false,\n        enabledHashtag: true\n    },],2,],[\"m_0_y\",[\"XHPTemplate\",\"m_0_14\",],[{\n        __m: \"m_0_14\"\n    },],2,],[\"m_0_z\",[\"XHPTemplate\",\"m_0_15\",],[{\n        __m: \"m_0_15\"\n    },],2,],[\"m_0_10\",[\"XHPTemplate\",\"m_0_16\",],[{\n        __m: \"m_0_16\"\n    },],2,],[\"m_0_11\",[\"XHPTemplate\",\"m_0_17\",],[{\n        __m: \"m_0_17\"\n    },],2,],[\"m_0_12\",[\"XHPTemplate\",\"m_0_18\",],[{\n        __m: \"m_0_18\"\n    },],2,],[\"m_0_13\",[\"XHPTemplate\",\"m_0_19\",],[{\n        __m: \"m_0_19\"\n    },],2,],],\n    define: [[\"TimeSpentConfig\",[],{\n        delay: 200000,\n        initial_timeout: 8,\n        initial_delay: 1000\n    },142,],[\"MessagingReliabilityLoggerInitialData\",[],{\n        enabled: false,\n        app: \"mercury\"\n    },44,],[\"QuicklingConfig\",[],{\n        version: \"871405;0;0;0\",\n        inactivePageRegex: \"^/(fr/u\\\\.php|ads/|advertising|ac\\\\.php|ae\\\\.php|ajax/emu/(end|f|h)\\\\.php|badges/|comments\\\\.php|connect/uiserver\\\\.php|editalbum\\\\.php.+add=1|ext/|feeds/|help([/?]|$)|identity_switch\\\\.php|intern/|login\\\\.php|logout\\\\.php|sitetour/homepage_tour\\\\.php|sorry\\\\.php|syndication\\\\.php|webmessenger|/plugins/subscribe|\\\\.pdf$|brandpermissions|gameday|pxlcld)\",\n        sessionLength: 30\n    },60,],[\"MercuryThreadlistIconTemplates\",[\"m_0_y\",\"m_0_z\",],{\n        \":fb:mercury:attachment-indicator\": {\n            __m: \"m_0_y\"\n        },\n        \":fb:mercury:attachment-icon-text\": {\n            __m: \"m_0_z\"\n        }\n    },42,],[\"MercuryThreadlistConstants\",[],{\n        SEARCH_TAB: \"searchtab\",\n        JEWEL_MORE_COUNT: 10,\n        WEBMESSENGER_SEARCH_SNIPPET_COUNT: 5,\n        WEBMESSENGER_SEARCH_SNIPPET_MORE: 5,\n        RECENT_MESSAGES_LIMIT: 10,\n        WEBMESSENGER_SEARCH_SNIPPET_LIMIT: 5,\n        WEBMESSENGER_MORE_MESSAGES_COUNT: 20,\n        WEBMESSENGER_MORE_COUNT: 20,\n        JEWEL_THREAD_COUNT: 5,\n        RECENT_THREAD_OFFSET: 0,\n        MAX_CHARS_BEFORE_BREAK: 280,\n        MESSAGE_TIMESTAMP_THRESHOLD: 1209600000,\n        GROUPING_THRESHOLD: 300000,\n        MAX_UNSEEN_COUNT: 99,\n        MAX_UNREAD_COUNT: 99,\n        WEBMESSENGER_THREAD_COUNT: 20\n    },96,],[\"MessagingConfig\",[],{\n        SEND_BATCH_LIMIT: 5,\n        IDLE_CUTOFF: 30000,\n        SEND_CONNECTION_RETRIES: 2\n    },97,],[\"MercuryParticipantsConstants\",[],{\n        EMAIL_IMAGE: \"/images/messaging/threadlist/envelope.png\",\n        BIG_IMAGE_SIZE: 50,\n        IMAGE_SIZE: 32,\n        UNKNOWN_GENDER: 0\n    },109,],[\"MercuryConfig\",[],{\n        \"24h_times\": false,\n        activity_limit: 60000,\n        idle_poll_interval: 300000,\n        WebMessengerThreadSearchGK: 1,\n        ChatSaveDraftsGK: 0,\n        VideoCallingNoJavaGK: 0,\n        MessagesJewelToggleReadGK: 1,\n        SocialContextGK: 0,\n        ChatMultiTypGK: 0,\n        ChatMultiTypSendGK: 1,\n        NewVCGK: 0,\n        local_storage_crypto: null,\n        MessagesDisableForwardingGK: 1,\n        MessagesJewelOpenInChat: 0,\n        filtering_active: true,\n        idle_limit: 1800000,\n        MessagingDisplayEmojiGK: 1,\n        \"roger.seen_delay\": 15000\n    },35,],[\"DateFormatConfig\",[],{\n        weekStart: 6,\n        ordinalSuffixes: {\n            1: \"st\",\n            2: \"nd\",\n            3: \"rd\",\n            4: \"th\",\n            5: \"th\",\n            6: \"th\",\n            7: \"th\",\n            8: \"th\",\n            9: \"th\",\n            10: \"th\",\n            11: \"th\",\n            12: \"th\",\n            13: \"th\",\n            14: \"th\",\n            15: \"th\",\n            16: \"th\",\n            17: \"th\",\n            18: \"th\",\n            19: \"th\",\n            20: \"th\",\n            21: \"st\",\n            22: \"nd\",\n            23: \"rd\",\n            24: \"th\",\n            25: \"th\",\n            26: \"th\",\n            27: \"th\",\n            28: \"th\",\n            29: \"th\",\n            30: \"th\",\n            31: \"st\"\n        },\n        numericDateSeparator: \"/\",\n        numericDateOrder: [\"m\",\"d\",\"y\",],\n        shortDayNames: [\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\",],\n        formats: []\n    },165,],[\"MercuryJewelTemplates\",[\"m_0_10\",],{\n        \":fb:mercury:jewel:threadlist-row\": {\n            __m: \"m_0_10\"\n        }\n    },39,],[\"MercuryStatusTemplates\",[\"m_0_11\",\"m_0_12\",\"m_0_13\",],{\n        \":fb:mercury:resend-indicator\": {\n            __m: \"m_0_11\"\n        },\n        \":fb:mercury:filtered-message\": {\n            __m: \"m_0_12\"\n        },\n        \":fb:mercury:error-indicator\": {\n            __m: \"m_0_13\"\n        }\n    },41,],[\"MercuryServerRequestsConfig\",[],{\n        sendMessageTimeout: 45000\n    },107,],[\"PresencePrivacyInitialData\",[],{\n        visibility: 1,\n        privacyData: {\n        },\n        onlinePolicy: 1\n    },58,],[\"HashtagSearchResultConfig\",[],{\n        boost_result: 1,\n        hashtag_cost: 10848,\n        image_url: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/irmqzCEvUpb.png\"\n    },146,],],\n    elements: [[\"m_0_2\",\"u_0_1\",2,\"m_0_1\",],[\"m_0_8\",\"u_0_2\",2,],[\"m_0_7\",\"u_0_3\",4,],[\"m_0_a\",\"fbMessagesJewel\",2,],[\"m_0_c\",\"u_0_4\",2,],[\"m_0_d\",\"MercuryJewelThreadList\",2,],[\"m_0_f\",\"fbRequestsJewel\",2,],[\"m_0_g\",\"logout_form\",2,],[\"m_0_i\",\"fbNotificationsJewel\",2,],[\"m_0_k\",\"u_0_5\",2,],[\"m_0_r\",\"u_0_8\",2,],[\"m_0_w\",\"u_0_9\",2,],[\"m_0_t\",\"u_0_a\",2,],[\"m_0_v\",\"u_0_b\",2,],[\"m_0_5\",\"navSearch\",2,],[\"m_0_q\",\"u_0_7\",2,],[\"m_0_u\",\"u_0_c\",2,],[\"m_0_s\",\"u_0_d\",2,],[\"m_0_3\",\"u_0_e\",2,],[\"m_0_h\",\"logout_form\",2,],[\"m_0_0\",\"u_0_f\",2,],],\n    markup: [[\"m_0_1\",{\n        __html: \"\\u003Cform rel=\\\"async\\\" action=\\\"/ajax/marketing/optin\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"project\\\" value=\\\"320951738012113\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"product\\\" value=\\\"Graph Search\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"source\\\" value=\\\"search_taui\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"mtm mlm rfloat\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu browseSignup selected _42gz\\\" type=\\\"submit\\\"\\u003EGet Graph Search\\u003C/button\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fr _42fu browseJoined selected _42gz\\\" disabled=\\\"1\\\" type=\\\"submit\\\"\\u003EYou&#039;re on the List!\\u003C/button\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fwb\\\"\\u003ENew! Try Graph Search\\u003C/div\\u003EFind more of what you&#039;re looking for through friends and connections. \\u003Ca href=\\\"/about/graphsearch?source=search_tau\\\"\\u003ELearn More\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n    },3,],[\"m_0_n\",{\n        __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"_1luv _1lvq\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" alt=\\\"Close\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y0/r/K4K8h0mqOQN.png\\\" width=\\\"11\\\" height=\\\"13\\\" /\\u003E\\u003C/a\\u003E\\u003Cspan class=\\\"fsl\\\"\\u003E\\u003Cspan class=\\\"_3oyf\\\"\\u003ETry your new Privacy Shortcuts.\\u003C/span\\u003E Visit your Activity Log to review photos you&#039;re tagged in and things you&#039;ve hidden from your timeline.\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n    },2,],[\"m_0_p\",{\n        __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Cstrong\\u003ETip\\u003C/strong\\u003E: Graph Search is rolling out now, so it&#039;s getting easier for people to find photos and other things you&#039;ve shared with them. To check who can see your stuff, just click \\u003Cimg class=\\\"img\\\" alt=\\\"Privacy Shortcuts\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/eYJycDMyJiy.png\\\" width=\\\"12\\\" height=\\\"9\\\" /\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm _57bk uiOverlayButton selected _42g-\\\" type=\\\"submit\\\"\\u003EOkay\\u003C/button\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n    },2,],[\"m_0_14\",{\n        __html: \"\\u003Ci class=\\\"mrs MercuryThreadlistIcon img sp_2gr8ms sx_22d5af\\\"\\u003E\\u003C/i\\u003E\"\n    },2,],[\"m_0_15\",{\n        __html: \"\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\"\n    },2,],[\"m_0_16\",{\n        __html: \"\\u003Cli\\u003E\\u003Ca class=\\\"messagesContent\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage _8o _8s lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.fbexternal-a.akamaihd.net/safe_image.php?d=AQD8Nn8D0yyraIdI&amp;url=https%3A%2F%2Ffbstatic-a.akamaihd.net%2Frsrc.php%2Fv2%2Fyw%2Fr%2FdrP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"clearfix _42ef\\\"\\u003E\\u003Cdiv class=\\\"snippetThumbnail rfloat\\\"\\u003E\\u003Cspan class=\\\"_56hv hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-single\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-multiple\\\"\\u003E\\u003Cspan class=\\\"_56hy\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_56hv\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"content fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"author\\\"\\u003E\\u003Cstrong data-jsid=\\\"name\\\"\\u003E\\u003C/strong\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"snippet preview fsm fwn fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"snippet\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"time\\\"\\u003E\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n    },2,],[\"m_0_17\",{\n        __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/O7ihJIPh_G0.gif\\\" alt=\\\"\\\" width=\\\"15\\\" height=\\\"15\\\" /\\u003E\\u003Cspan class=\\\"_55r6\\\"\\u003ESending...\\u003C/span\\u003E\\u003C/div\\u003E\"\n    },2,],[\"m_0_18\",{\n        __html: \"\\u003Cdiv class=\\\"mas pam uiBoxYellow\\\"\\u003E\\u003Cstrong\\u003EThis message is no longer available\\u003C/strong\\u003E because it was identified as abusive or marked as spam.\\u003C/div\\u003E\"\n    },2,],[\"m_0_19\",{\n        __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/NNg0bu4GBuz.png\\\" alt=\\\"\\\" width=\\\"13\\\" height=\\\"11\\\" /\\u003E\\u003Cspan class=\\\"_55r7\\\"\\u003EFailed to send\\u003C/span\\u003E\\u003C/div\\u003E\"\n    },2,],]\n});\nonloadRegister_DEPRECATED(function() {\n    new AsyncRequest().setURI(\"/ajax/marketing/tour/privacy_dialog.php\").send();\n});\nonloadRegister_DEPRECATED(function() {\n    requireLazy([\"MercuryJewel\",], function(MercuryJewel) {\n        new MercuryJewel($(\"fbMessagesFlyout\"), $(\"fbMessagesJewel\"), require(\"m_0_4\"), {\n            message_counts: [{\n                unread_count: 0,\n                unseen_count: 0,\n                seen_timestamp: 0,\n                last_action_id: 0,\n                folder: \"inbox\"\n            },{\n                unread_count: 0,\n                unseen_count: 0,\n                seen_timestamp: 0,\n                last_action_id: null,\n                folder: \"other\"\n            },],\n            payload_source: \"server_initial_data\"\n        });\n    });\n});\nonloadRegister_DEPRECATED(function() {\n    require(\"m_0_6\").getData().onLoad(false, true);\n});\nonloadRegister_DEPRECATED(function() {\n    window.presenceRequests = JSCC.get(\"j1QNRR7i8ax0yUao4H0\").init(require(\"m_0_b\"), \"[fb]requests\", false);\n});\nonloadRegister_DEPRECATED(function() {\n    window.presenceNotifications = new Notifications({\n        updateTime: 1373491278000,\n        latestNotif: null,\n        latestReadNotif: null,\n        updatePeriod: 480000,\n        cacheVersion: 2,\n        allowDesktopNotifications: false,\n        notifReceivedType: \"notification\",\n        wrapperID: \"fbNotificationsJewel\",\n        contentID: \"fbNotificationsList\",\n        shouldLogImpressions: 0,\n        useInfiniteScroll: 1,\n        persistUnreadColor: true,\n        unseenVsUnread: 0\n    });\n});\nonloadRegister_DEPRECATED(function() {\n    Arbiter.inform(\"jewel/count-initial\", {\n        jewel: \"notifications\",\n        count: 0\n    }, Arbiter.BEHAVIOR_STATE);\n});\nonafterloadRegister_DEPRECATED(function() {\n    Bootloader.loadComponents([\"legacy:detect-broken-proxy-cache\",], function() {\n        detect_broken_proxy_cache(\"100006118350059\", \"c_user\");\n    });\n});\nonafterloadRegister_DEPRECATED(function() {\n    Bootloader.loadComponents([\"legacy:link-rel-preload\",], function() {\n        link_rel_preload();\n    });\n});");
36245 // 1413
36246 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"var bigPipe = new (require(\"BigPipe\"))({\n    lid: 0,\n    forceFinish: true\n});");
36247 // 1414
36248 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"se151abf45cd37f530e5c8a27b753d912bd1be56a");
36249 // 1415
36250 geval("var bigPipe = new (require(\"BigPipe\"))({\n    lid: 0,\n    forceFinish: true\n});");
36251 // 1421
36252 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    id: \"first_response\",\n    phase: 0,\n    jsmods: {\n    },\n    is_last: true,\n    css: [\"W3Ky6\",\"0duP3\",\"ZtiRu\",\"aQ3gA\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"OJTM4\",\"KPZ5T\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"hfrQl\",\"C6rJk\",]\n});");
36253 // 1422
36254 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s1ad89e51a19ecbfc25aaa045a400340da242a983");
36255 // 1423
36256 geval("bigPipe.onPageletArrive({\n    id: \"first_response\",\n    phase: 0,\n    jsmods: {\n    },\n    is_last: true,\n    css: [\"W3Ky6\",\"0duP3\",\"ZtiRu\",\"aQ3gA\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"OJTM4\",\"KPZ5T\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"hfrQl\",\"C6rJk\",]\n});");
36257 // 1451
36258 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        pagelet_timeline_main_column: {\n            container_id: \"u_0_g\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineController\",\"init\",[],[\"1055580469\",\"timeline\",{\n            has_fixed_ads: false,\n            one_column_minimal: true\n        },],],]\n    },\n    bootloadable: {\n    },\n    resource_map: {\n        jsIYP: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yJ/r/QYljgrU-Eo8.js\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    id: \"pagelet_timeline_main_column\",\n    phase: 1\n});");
36259 // 1452
36260 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s7a57a026e0294fc8f995c6d150d1e11aba9f190c");
36261 // 1453
36262 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        pagelet_timeline_main_column: {\n            container_id: \"u_0_g\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineController\",\"init\",[],[\"1055580469\",\"timeline\",{\n            has_fixed_ads: false,\n            one_column_minimal: true\n        },],],]\n    },\n    bootloadable: {\n    },\n    resource_map: {\n        jsIYP: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yJ/r/QYljgrU-Eo8.js\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    id: \"pagelet_timeline_main_column\",\n    phase: 1\n});");
36263 // 1500
36264 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_timeline_main_column\",],\n    content: {\n        pagelet_main_column_personal: {\n            container_id: \"u_0_n\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_1a\",],[{\n            __m: \"m_0_1a\"\n        },\"recent\",{\n            profile_id: 1055580469,\n            start: 0,\n            end: 1375340399,\n            query_type: 39,\n            section_pagelet_id: \"pagelet_timeline_recent\",\n            load_immediately: true\n        },true,null,0,-1,],],[\"TimelineCoverCollapse\",\"collapse\",[\"m_0_1b\",],[{\n            __m: \"m_0_1b\"\n        },160,],],[\"m_0_1c\",],[\"m_0_1e\",],[\"m_0_1f\",],[\"m_0_1h\",],[\"m_0_1i\",],[\"m_0_1l\",],[\"PhotoSnowlift\",\"initWithSpotlight\",[\"m_0_1l\",],[{\n            __m: \"m_0_1l\"\n        },{\n            refresh_fast: true,\n            refresh_rate: 20000,\n            hw_rendering: false,\n            pivot_hover: false,\n            pivot_end_metric: false,\n            pagers_on_keyboard_nav: false,\n            og_videos: false,\n            snowlift_profile_pic_cropper: false,\n            product_collections_visible: false,\n            snowlift_hover_shows_all_tags_and_faces: true,\n            resize_comments_for_ads: false,\n            snowlift_redesign: false,\n            min_ads: 2\n        },],],[\"PhotoSnowlift\",\"touch\",[\"m_0_1k\",],[{\n            __m: \"m_0_1k\"\n        },],],],\n        instances: [[\"m_0_1c\",[\"TimelineCover\",\"m_0_1b\",],[{\n            __m: \"m_0_1b\"\n        },{\n            cover_height: 315,\n            cover_width: 851\n        },],1,],[\"m_0_1e\",[\"TimelineNavLight\",\"m_0_1d\",],[{\n            __m: \"m_0_1d\"\n        },],1,],[\"m_0_1f\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_1h\",[\"PopoverAsyncMenu\",\"m_0_1i\",\"m_0_1g\",\"m_0_1f\",\"PopoverMenuShowOnHover\",],[{\n            __m: \"m_0_1i\"\n        },{\n            __m: \"m_0_1g\"\n        },{\n            __m: \"m_0_1f\"\n        },\"/ajax/timeline/collections/nav_light_dropdown_menu/?profileid=1055580469&offset=3\",[{\n            __m: \"PopoverMenuShowOnHover\"\n        },],],1,],[\"m_0_1i\",[\"Popover\",\"m_0_1j\",\"m_0_1g\",],[{\n            __m: \"m_0_1j\"\n        },{\n            __m: \"m_0_1g\"\n        },[],{\n            alignh: \"left\"\n        },],3,],[\"m_0_1l\",[\"Spotlight\",\"LayerHideOnBlur\",\"LayerHideOnEscape\",\"m_0_1m\",],[{\n            addedBehaviors: [{\n                __m: \"LayerHideOnBlur\"\n            },{\n                __m: \"LayerHideOnEscape\"\n            },],\n            attributes: {\n                id: \"photos_snowlift\",\n                tabindex: \"0\",\n                role: \"region\",\n                \"aria-label\": \"Facebook Photo Theater\",\n                \"aria-busy\": \"true\"\n            },\n            classNames: [\"fbPhotoSnowlift\",\"fbxPhoto\",]\n        },{\n            __m: \"m_0_1m\"\n        },],3,],],\n        elements: [[\"m_0_1a\",\"pagelet_timeline_recent\",2,],[\"m_0_1b\",\"u_0_h\",4,],[\"m_0_1d\",\"u_0_i\",2,],[\"m_0_1j\",\"u_0_j\",2,],[\"m_0_1g\",\"u_0_k\",4,],[\"m_0_1n\",\"u_0_m\",2,\"m_0_1m\",],],\n        markup: [[\"m_0_1m\",{\n            __html: \"\\u003Cdiv class=\\\"_n3\\\"\\u003E\\u003Cdiv class=\\\"fbPhotoSnowliftContainer uiContextualLayerParent\\\" data-ft=\\\"&#123;&quot;type&quot;:44&#125;\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbPhotoSnowliftPopup\\\"\\u003E\\u003Cdiv class=\\\"stageWrapper lfloat\\\"\\u003E\\u003Cdiv class=\\\"fbPhotoSnowliftFullScreen fullScreenSwitch\\\" id=\\\"fullScreenSwitch\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Enter Fullscreen\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" href=\\\"#\\\" id=\\\"fbPhotoSnowliftFullScreenSwitch\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Press Esc to exit fullscreen\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" href=\\\"#\\\" id=\\\"fbPhotoSnowliftFullScreenClose\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"stage\\\"\\u003E\\u003Cdiv class=\\\"fbPhotosCornerWantButton\\\" id=\\\"fbPhotoSnowliftWantButton\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"spotlight spotlight\\\" src=\\\"/images/spacer.gif\\\" /\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoTagboxes tagContainer\\\" id=\\\"fbPhotoSnowliftTagBoxes\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotoTagApproval\\\" id=\\\"fbPhotoSnowliftTagApproval\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5bai\\\" id=\\\"fbPhotoSnowliftComputerVisionInfo\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"videoStage\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"stageActions\\\" id=\\\"snowliftStageActions\\\"\\u003E\\u003Cdiv class=\\\"clearfix snowliftOverlay snowliftOverlayBar rightButtons\\\"\\u003E\\u003Cdiv class=\\\"overlayBarButtons rfloat\\\"\\u003E\\u003Cdiv class=\\\"_6a _6b fbPhotosPhotoActions\\\" id=\\\"fbPhotoSnowliftActions\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoButtons\\\" id=\\\"fbPhotoSnowliftButtons\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"mediaTitleInfo\\\"\\u003E\\u003Cdiv class=\\\"mediaTitleBoxFlex\\\"\\u003E\\u003Cdiv id=\\\"fbPhotoSnowliftMediaTitle\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"mlm hidden_elem\\\" id=\\\"fbPhotoSnowliftPositionAndCount\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"mediaTitleInfoSpacer\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoTagboxBase newTagBox hidden_elem\\\" style=\\\"\\\"\\u003E\\u003Cdiv class=\\\"borderTagBox\\\"\\u003E\\u003Cdiv class=\\\"innerTagBox\\\"\\u003E\\u003Cdiv class=\\\"ieContentFix\\\"\\u003E\\u00a0\\u00a0\\u00a0\\u00a0\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"tag\\\" style=\\\"\\\"\\u003E\\u003Cdiv class=\\\"tagPointer\\\"\\u003E\\u003Ci class=\\\"tagArrow img sp_9kaae3 sx_883a69\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"tagName\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"snowliftPager prev\\\" title=\\\"Previous\\\"\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003Ca class=\\\"snowliftPager next\\\" title=\\\"Next\\\"\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"photoError stageError\\\" id=\\\"fbPhotoSnowliftError\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"rhc photoUfiContainer\\\"\\u003E\\u003Cdiv class=\\\"rhcHeader\\\"\\u003E\\u003Cdiv class=\\\"fbPhotoSnowliftControls\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Press Esc to close\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" class=\\\"closeTheater\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Press Esc to exit fullscreen\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" class=\\\"closeTheater fullscreenCommentClose\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv id=\\\"fbPhotoSnowliftInlineEditor\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cform rel=\\\"async\\\" class=\\\"fbPhotosSnowliftFeedbackForm rhcBody commentable_item autoexpand_mode\\\" method=\\\"post\\\" action=\\\"/ajax/ufi/modify.php\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_m\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"charset_test\\\" value=\\\"&euro;,&acute;,\\u20ac,\\u00b4,\\u6c34,\\u0414,\\u0404\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cdiv class=\\\"uiScrollableArea rhcScroller native\\\" style=\\\"width:285px;\\\"\\u003E\\u003Cdiv class=\\\"uiScrollableAreaWrap scrollable\\\" aria-label=\\\"Scrollable region\\\" tabindex=\\\"0\\\"\\u003E\\u003Cdiv class=\\\"uiScrollableAreaBody\\\"\\u003E\\u003Cdiv class=\\\"uiScrollableAreaContent\\\"\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftSpecificAudience\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"clearfix fbPhotoSnowliftAuthorInfo\\\"\\u003E\\u003Cdiv class=\\\"lfloat\\\" id=\\\"fbPhotoSnowliftAuthorPic\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fbPhotoContributorName\\\" id=\\\"fbPhotoSnowliftAuthorName\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"mrs fsm fwn fcg\\\"\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftSubscribe\\\"\\u003E\\u003C/span\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftTimestamp\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"mls\\\" id=\\\"fbPhotoSnowliftAudienceSelector\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"fbPhotosOnProfile\\\" id=\\\"fbPhotoSnowliftOnProfile\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftViewOnApp\\\"\\u003E\\u003C/span\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftUseApp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"fbPhotosPhotoCaption\\\" tabindex=\\\"0\\\" aria-live=\\\"polite\\\" data-ft=\\\"&#123;&quot;type&quot;:45&#125;\\\" id=\\\"fbPhotoSnowliftCaption\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"fbPhotoTagList\\\" id=\\\"fbPhotoSnowliftTagList\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"fbPhotoPagesTagList\\\" id=\\\"fbPhotoSnowliftPagesTagList\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pts fbPhotoLegacyTagList\\\" id=\\\"fbPhotoSnowliftLegacyTagList\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoOwnerButtons stat_elem\\\" id=\\\"fbPhotoSnowliftOwnerButtons\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosSnowliftFeedback\\\" id=\\\"fbPhotoSnowliftFeedback\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosSnowboxFeedbackInput\\\" id=\\\"fbPhotoSnowliftFeedbackInput\\\"\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"fbPhotosSnowliftProductMetadata\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5ciw rhcFooter\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv id=\\\"pagelet_photo_viewer_init\\\" class=\\\"hidden_elem\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },3,],[\"m_0_1k\",{\n            __html: \"\\u003Cdiv\\u003E\\u003C/div\\u003E\"\n        },2,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",\"OoPZI\",\"0duP3\",],\n    bootloadable: {\n        PhotoCropper: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"+h1d2\",\"Pc0ie\",\"0duP3\",\"h9fqQ\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        \"3SGVa\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/5QLY1f97RlL.js\"\n        },\n        OoPZI: {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y3/r/brsbz78y8Q6.css\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"3SGVa\",\"OJTM4\",\"+h1d2\",],\n    displayJS: [\"AyUu6\",],\n    id: \"pagelet_main_column_personal\",\n    phase: 1\n});");
36265 // 1501
36266 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"scfbf12eed6ea85773331aa9d172f6e2f76f3b6a3");
36267 // 1502
36268 geval("bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_timeline_main_column\",],\n    JSBNG__content: {\n        pagelet_main_column_personal: {\n            container_id: \"u_0_n\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_1a\",],[{\n            __m: \"m_0_1a\"\n        },\"recent\",{\n            profile_id: 1055580469,\n            start: 0,\n            end: 1375340399,\n            query_type: 39,\n            section_pagelet_id: \"pagelet_timeline_recent\",\n            load_immediately: true\n        },true,null,0,-1,],],[\"TimelineCoverCollapse\",\"collapse\",[\"m_0_1b\",],[{\n            __m: \"m_0_1b\"\n        },160,],],[\"m_0_1c\",],[\"m_0_1e\",],[\"m_0_1f\",],[\"m_0_1h\",],[\"m_0_1i\",],[\"m_0_1l\",],[\"PhotoSnowlift\",\"initWithSpotlight\",[\"m_0_1l\",],[{\n            __m: \"m_0_1l\"\n        },{\n            refresh_fast: true,\n            refresh_rate: 20000,\n            hw_rendering: false,\n            pivot_hover: false,\n            pivot_end_metric: false,\n            pagers_on_keyboard_nav: false,\n            og_videos: false,\n            snowlift_profile_pic_cropper: false,\n            product_collections_visible: false,\n            snowlift_hover_shows_all_tags_and_faces: true,\n            resize_comments_for_ads: false,\n            snowlift_redesign: false,\n            min_ads: 2\n        },],],[\"PhotoSnowlift\",\"touch\",[\"m_0_1k\",],[{\n            __m: \"m_0_1k\"\n        },],],],\n        instances: [[\"m_0_1c\",[\"TimelineCover\",\"m_0_1b\",],[{\n            __m: \"m_0_1b\"\n        },{\n            cover_height: 315,\n            cover_width: 851\n        },],1,],[\"m_0_1e\",[\"TimelineNavLight\",\"m_0_1d\",],[{\n            __m: \"m_0_1d\"\n        },],1,],[\"m_0_1f\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_1h\",[\"PopoverAsyncMenu\",\"m_0_1i\",\"m_0_1g\",\"m_0_1f\",\"PopoverMenuShowOnHover\",],[{\n            __m: \"m_0_1i\"\n        },{\n            __m: \"m_0_1g\"\n        },{\n            __m: \"m_0_1f\"\n        },\"/ajax/timeline/collections/nav_light_dropdown_menu/?profileid=1055580469&offset=3\",[{\n            __m: \"PopoverMenuShowOnHover\"\n        },],],1,],[\"m_0_1i\",[\"Popover\",\"m_0_1j\",\"m_0_1g\",],[{\n            __m: \"m_0_1j\"\n        },{\n            __m: \"m_0_1g\"\n        },[],{\n            alignh: \"left\"\n        },],3,],[\"m_0_1l\",[\"Spotlight\",\"LayerHideOnBlur\",\"LayerHideOnEscape\",\"m_0_1m\",],[{\n            addedBehaviors: [{\n                __m: \"LayerHideOnBlur\"\n            },{\n                __m: \"LayerHideOnEscape\"\n            },],\n            attributes: {\n                id: \"photos_snowlift\",\n                tabindex: \"0\",\n                role: \"region\",\n                \"aria-label\": \"Facebook Photo Theater\",\n                \"aria-busy\": \"true\"\n            },\n            classNames: [\"fbPhotoSnowlift\",\"fbxPhoto\",]\n        },{\n            __m: \"m_0_1m\"\n        },],3,],],\n        elements: [[\"m_0_1a\",\"pagelet_timeline_recent\",2,],[\"m_0_1b\",\"u_0_h\",4,],[\"m_0_1d\",\"u_0_i\",2,],[\"m_0_1j\",\"u_0_j\",2,],[\"m_0_1g\",\"u_0_k\",4,],[\"m_0_1n\",\"u_0_m\",2,\"m_0_1m\",],],\n        markup: [[\"m_0_1m\",{\n            __html: \"\\u003Cdiv class=\\\"_n3\\\"\\u003E\\u003Cdiv class=\\\"fbPhotoSnowliftContainer uiContextualLayerParent\\\" data-ft=\\\"&#123;&quot;type&quot;:44&#125;\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbPhotoSnowliftPopup\\\"\\u003E\\u003Cdiv class=\\\"stageWrapper lfloat\\\"\\u003E\\u003Cdiv class=\\\"fbPhotoSnowliftFullScreen fullScreenSwitch\\\" id=\\\"fullScreenSwitch\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Enter Fullscreen\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" href=\\\"#\\\" id=\\\"fbPhotoSnowliftFullScreenSwitch\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Press Esc to exit fullscreen\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" href=\\\"#\\\" id=\\\"fbPhotoSnowliftFullScreenClose\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"stage\\\"\\u003E\\u003Cdiv class=\\\"fbPhotosCornerWantButton\\\" id=\\\"fbPhotoSnowliftWantButton\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"spotlight spotlight\\\" src=\\\"/images/spacer.gif\\\" /\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoTagboxes tagContainer\\\" id=\\\"fbPhotoSnowliftTagBoxes\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotoTagApproval\\\" id=\\\"fbPhotoSnowliftTagApproval\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5bai\\\" id=\\\"fbPhotoSnowliftComputerVisionInfo\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"videoStage\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"stageActions\\\" id=\\\"snowliftStageActions\\\"\\u003E\\u003Cdiv class=\\\"clearfix snowliftOverlay snowliftOverlayBar rightButtons\\\"\\u003E\\u003Cdiv class=\\\"overlayBarButtons rfloat\\\"\\u003E\\u003Cdiv class=\\\"_6a _6b fbPhotosPhotoActions\\\" id=\\\"fbPhotoSnowliftActions\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoButtons\\\" id=\\\"fbPhotoSnowliftButtons\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"mediaTitleInfo\\\"\\u003E\\u003Cdiv class=\\\"mediaTitleBoxFlex\\\"\\u003E\\u003Cdiv id=\\\"fbPhotoSnowliftMediaTitle\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"mlm hidden_elem\\\" id=\\\"fbPhotoSnowliftPositionAndCount\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"mediaTitleInfoSpacer\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoTagboxBase newTagBox hidden_elem\\\" style=\\\"\\\"\\u003E\\u003Cdiv class=\\\"borderTagBox\\\"\\u003E\\u003Cdiv class=\\\"innerTagBox\\\"\\u003E\\u003Cdiv class=\\\"ieContentFix\\\"\\u003E\\u00a0\\u00a0\\u00a0\\u00a0\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"tag\\\" style=\\\"\\\"\\u003E\\u003Cdiv class=\\\"tagPointer\\\"\\u003E\\u003Ci class=\\\"tagArrow img sp_9kaae3 sx_883a69\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"tagName\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"snowliftPager prev\\\" title=\\\"Previous\\\"\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003Ca class=\\\"snowliftPager next\\\" title=\\\"Next\\\"\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"photoError stageError\\\" id=\\\"fbPhotoSnowliftError\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"rhc photoUfiContainer\\\"\\u003E\\u003Cdiv class=\\\"rhcHeader\\\"\\u003E\\u003Cdiv class=\\\"fbPhotoSnowliftControls\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Press Esc to close\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" class=\\\"closeTheater\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Press Esc to exit fullscreen\\\" data-tooltip-position=\\\"below\\\" data-tooltip-alignh=\\\"right\\\" class=\\\"closeTheater fullscreenCommentClose\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv id=\\\"fbPhotoSnowliftInlineEditor\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cform rel=\\\"async\\\" class=\\\"fbPhotosSnowliftFeedbackForm rhcBody commentable_item autoexpand_mode\\\" method=\\\"post\\\" action=\\\"/ajax/ufi/modify.php\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_m\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"charset_test\\\" value=\\\"&euro;,&acute;,\\u20ac,\\u00b4,\\u6c34,\\u0414,\\u0404\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cdiv class=\\\"uiScrollableArea rhcScroller native\\\" style=\\\"width:285px;\\\"\\u003E\\u003Cdiv class=\\\"uiScrollableAreaWrap scrollable\\\" aria-label=\\\"Scrollable region\\\" tabindex=\\\"0\\\"\\u003E\\u003Cdiv class=\\\"uiScrollableAreaBody\\\"\\u003E\\u003Cdiv class=\\\"uiScrollableAreaContent\\\"\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftSpecificAudience\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"clearfix fbPhotoSnowliftAuthorInfo\\\"\\u003E\\u003Cdiv class=\\\"lfloat\\\" id=\\\"fbPhotoSnowliftAuthorPic\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fbPhotoContributorName\\\" id=\\\"fbPhotoSnowliftAuthorName\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"mrs fsm fwn fcg\\\"\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftSubscribe\\\"\\u003E\\u003C/span\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftTimestamp\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"mls\\\" id=\\\"fbPhotoSnowliftAudienceSelector\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"fbPhotosOnProfile\\\" id=\\\"fbPhotoSnowliftOnProfile\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftViewOnApp\\\"\\u003E\\u003C/span\\u003E\\u003Cspan id=\\\"fbPhotoSnowliftUseApp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"fbPhotosPhotoCaption\\\" tabindex=\\\"0\\\" aria-live=\\\"polite\\\" data-ft=\\\"&#123;&quot;type&quot;:45&#125;\\\" id=\\\"fbPhotoSnowliftCaption\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"fbPhotoTagList\\\" id=\\\"fbPhotoSnowliftTagList\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"fbPhotoPagesTagList\\\" id=\\\"fbPhotoSnowliftPagesTagList\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pts fbPhotoLegacyTagList\\\" id=\\\"fbPhotoSnowliftLegacyTagList\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosPhotoOwnerButtons stat_elem\\\" id=\\\"fbPhotoSnowliftOwnerButtons\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosSnowliftFeedback\\\" id=\\\"fbPhotoSnowliftFeedback\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbPhotosSnowboxFeedbackInput\\\" id=\\\"fbPhotoSnowliftFeedbackInput\\\"\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"fbPhotosSnowliftProductMetadata\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5ciw rhcFooter\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv id=\\\"pagelet_photo_viewer_init\\\" class=\\\"hidden_elem\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },3,],[\"m_0_1k\",{\n            __html: \"\\u003Cdiv\\u003E\\u003C/div\\u003E\"\n        },2,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",\"OoPZI\",\"0duP3\",],\n    bootloadable: {\n        PhotoCropper: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"+h1d2\",\"Pc0ie\",\"0duP3\",\"h9fqQ\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        \"3SGVa\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/5QLY1f97RlL.js\"\n        },\n        OoPZI: {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y3/r/brsbz78y8Q6.css\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"3SGVa\",\"OJTM4\",\"+h1d2\",],\n    displayJS: [\"AyUu6\",],\n    id: \"pagelet_main_column_personal\",\n    phase: 1\n});");
36269 // 1547
36270 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"AyUu6\",]);\n}\n;\n__d(\"XdArbiterBuffer\", [], function(a, b, c, d, e, f) {\n    if (!a.XdArbiter) {\n        a.XdArbiter = {\n            _m: [],\n            _p: [],\n            register: function(g, h, i) {\n                h = (h || (((/^apps\\./).test(location.hostname) ? \"canvas\" : \"tab\")));\n                this._p.push([g,h,i,]);\n                return h;\n            },\n            handleMessage: function(g, h) {\n                this._m.push([g,h,]);\n            }\n        };\n    };\n});\n__d(\"CanvasIFrameLoader\", [\"XdArbiterBuffer\",\"$\",], function(a, b, c, d, e, f) {\n    b(\"XdArbiterBuffer\");\n    var g = b(\"$\"), h = {\n        loadFromForm: function(i) {\n            i.submit();\n        }\n    };\n    e.exports = h;\n});\n__d(\"PHPQuerySerializer\", [], function(a, b, c, d, e, f) {\n    function g(n) {\n        return h(n, null);\n    };\n    function h(n, o) {\n        o = (o || \"\");\n        var p = [];\n        if (((n === null) || (n === undefined))) {\n            p.push(i(o));\n        }\n         else if ((typeof (n) == \"object\")) {\n            for (var q in n) {\n                if ((n.hasOwnProperty(q) && (n[q] !== undefined))) {\n                    p.push(h(n[q], (o ? ((((o + \"[\") + q) + \"]\")) : q)));\n                };\n            };\n        }\n         else p.push(((i(o) + \"=\") + i(n)));\n        \n    ;\n        return p.join(\"&\");\n    };\n    function i(n) {\n        return encodeURIComponent(n).replace(/%5D/g, \"]\").replace(/%5B/g, \"[\");\n    };\n    var j = /^(\\w+)((?:\\[\\w*\\])+)=?(.*)/;\n    function k(n) {\n        if (!n) {\n            return {\n            }\n        };\n        var o = {\n        };\n        n = n.replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n        n = n.split(\"&\");\n        var p = Object.prototype.hasOwnProperty;\n        for (var q = 0, r = n.length; (q < r); q++) {\n            var s = n[q].match(j);\n            if (!s) {\n                var t = n[q].split(\"=\");\n                o[l(t[0])] = ((t[1] === undefined) ? null : l(t[1]));\n            }\n             else {\n                var u = s[2].split(/\\]\\[|\\[|\\]/).slice(0, -1), v = s[1], w = l((s[3] || \"\"));\n                u[0] = v;\n                var x = o;\n                for (var y = 0; (y < (u.length - 1)); y++) {\n                    if (u[y]) {\n                        if (!p.call(x, u[y])) {\n                            var z = ((u[(y + 1)] && !u[(y + 1)].match(/^\\d{1,3}$/)) ? {\n                            } : []);\n                            x[u[y]] = z;\n                            if ((x[u[y]] !== z)) {\n                                return o\n                            };\n                        }\n                    ;\n                        x = x[u[y]];\n                    }\n                     else {\n                        if ((u[(y + 1)] && !u[(y + 1)].match(/^\\d{1,3}$/))) {\n                            x.push({\n                            });\n                        }\n                         else x.push([]);\n                    ;\n                        x = x[(x.length - 1)];\n                    }\n                ;\n                };\n                if (((x instanceof Array) && (u[(u.length - 1)] === \"\"))) {\n                    x.push(w);\n                }\n                 else x[u[(u.length - 1)]] = w;\n            ;\n            }\n        ;\n        };\n        return o;\n    };\n    function l(n) {\n        return decodeURIComponent(n.replace(/\\+/g, \" \"));\n    };\n    var m = {\n        serialize: g,\n        encodeComponent: i,\n        deserialize: k,\n        decodeComponent: l\n    };\n    e.exports = m;\n});\n__d(\"URIBase\", [\"PHPQuerySerializer\",\"copyProperties\",\"ex\",], function(a, b, c, d, e, f) {\n    var g = b(\"PHPQuerySerializer\"), h = b(\"copyProperties\"), i = b(\"ex\"), j = /((([\\-\\w]+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/, k = new RegExp(((\"[\\\\x00-\\\\x2c\\\\x2f\\\\x3b-\\\\x40\\\\x5c\\\\x5e\\\\x60\\\\x7b-\\\\x7f\" + \"\\\\uFDD0-\\\\uFDEF\\\\uFFF0-\\\\uFFFF\") + \"\\\\u2047\\\\u2048\\\\uFE56\\\\uFE5F\\\\uFF03\\\\uFF0F\\\\uFF1F]\")), l = new RegExp((\"^(?:[^/]*:|\" + \"[\\\\x00-\\\\x1f]*/[\\\\x00-\\\\x1f]*/)\"));\n    function m(o, p, q) {\n        if (!p) {\n            return true\n        };\n        if ((p instanceof n)) {\n            o.setProtocol(p.getProtocol());\n            o.setDomain(p.getDomain());\n            o.setPort(p.getPort());\n            o.setPath(p.getPath());\n            o.setQueryData(JSON.parse(JSON.stringify(p.getQueryData())));\n            o.setFragment(p.getFragment());\n            return true;\n        }\n    ;\n        p = p.toString();\n        var r = p.match(j);\n        o.setProtocol((r[3] || \"\"));\n        if ((k.test((r[4] || \"\")) && !q)) {\n            return false\n        };\n        o.setDomain((r[4] || \"\"));\n        o.setPort((r[6] || \"\"));\n        o.setPath((r[7] || \"\"));\n        if (q) {\n            o.setQueryData((g.deserialize(r[9]) || {\n            }));\n        }\n         else try {\n            o.setQueryData((g.deserialize(r[9]) || {\n            }));\n        } catch (s) {\n            return false;\n        }\n    ;\n        o.setFragment((r[11] || \"\"));\n        if ((!o.getDomain() && (o.getPath().indexOf(\"\\\\\") !== -1))) {\n            if (q) {\n                throw new Error(i(\"URI.parse: invalid URI (no domain but multiple back-slashes): %s\", o.toString()));\n            }\n             else return false\n        \n        };\n        if ((!o.getProtocol() && l.test(p))) {\n            if (q) {\n                throw new Error(i(\"URI.parse: invalid URI (unsafe protocol-relative URLs): %s\", o.toString()));\n            }\n             else return false\n        \n        };\n        return true;\n    };\n    function n(o) {\n        this.$URIBase0 = \"\";\n        this.$URIBase1 = \"\";\n        this.$URIBase2 = \"\";\n        this.$URIBase3 = \"\";\n        this.$URIBase4 = \"\";\n        this.$URIBase5 = {\n        };\n        m(this, o, true);\n    };\n    n.prototype.setProtocol = function(o) {\n        this.$URIBase0 = o;\n        return this;\n    };\n    n.prototype.getProtocol = function(o) {\n        return this.$URIBase0;\n    };\n    n.prototype.setSecure = function(o) {\n        return this.setProtocol((o ? \"https\" : \"http\"));\n    };\n    n.prototype.isSecure = function() {\n        return (this.getProtocol() === \"https\");\n    };\n    n.prototype.setDomain = function(o) {\n        if (k.test(o)) {\n            throw new Error(i(\"URI.setDomain: unsafe domain specified: %s for url %s\", o, this.toString()))\n        };\n        this.$URIBase1 = o;\n        return this;\n    };\n    n.prototype.getDomain = function() {\n        return this.$URIBase1;\n    };\n    n.prototype.setPort = function(o) {\n        this.$URIBase2 = o;\n        return this;\n    };\n    n.prototype.getPort = function() {\n        return this.$URIBase2;\n    };\n    n.prototype.setPath = function(o) {\n        this.$URIBase3 = o;\n        return this;\n    };\n    n.prototype.getPath = function() {\n        return this.$URIBase3;\n    };\n    n.prototype.addQueryData = function(o, p) {\n        if ((o instanceof Object)) {\n            h(this.$URIBase5, o);\n        }\n         else this.$URIBase5[o] = p;\n    ;\n        return this;\n    };\n    n.prototype.setQueryData = function(o) {\n        this.$URIBase5 = o;\n        return this;\n    };\n    n.prototype.getQueryData = function() {\n        return this.$URIBase5;\n    };\n    n.prototype.removeQueryData = function(o) {\n        if (!Array.isArray(o)) {\n            o = [o,];\n        };\n        for (var p = 0, q = o.length; (p < q); ++p) {\n            delete this.$URIBase5[o[p]];;\n        };\n        return this;\n    };\n    n.prototype.setFragment = function(o) {\n        this.$URIBase4 = o;\n        return this;\n    };\n    n.prototype.getFragment = function() {\n        return this.$URIBase4;\n    };\n    n.prototype.toString = function() {\n        var o = \"\";\n        if (this.$URIBase0) {\n            o += (this.$URIBase0 + \"://\");\n        };\n        if (this.$URIBase1) {\n            o += this.$URIBase1;\n        };\n        if (this.$URIBase2) {\n            o += (\":\" + this.$URIBase2);\n        };\n        if (this.$URIBase3) {\n            o += this.$URIBase3;\n        }\n         else if (o) {\n            o += \"/\";\n        }\n    ;\n        var p = g.serialize(this.$URIBase5);\n        if (p) {\n            o += (\"?\" + p);\n        };\n        if (this.$URIBase4) {\n            o += (\"#\" + this.$URIBase4);\n        };\n        return o;\n    };\n    n.prototype.getOrigin = function() {\n        return (((this.$URIBase0 + \"://\") + this.$URIBase1) + ((this.$URIBase2 ? (\":\" + this.$URIBase2) : \"\")));\n    };\n    n.isValidURI = function(o) {\n        return m(new n(), o, false);\n    };\n    e.exports = n;\n});\n__d(\"URI\", [\"URIBase\",\"copyProperties\",\"goURI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URIBase\"), h = b(\"copyProperties\"), i = b(\"goURI\"), j = ((g === null) ? null : g.prototype);\n    k.prototype = Object.create(j);\n    k.prototype.constructor = k;\n    k.__superConstructor__ = g;\n    function k(l) {\n        if (!((this instanceof k))) {\n            return new k((l || window.location.href))\n        };\n        g.call(this, (l || \"\"));\n    };\n    k.prototype.setPath = function(l) {\n        this.path = l;\n        return j.setPath.call(this, l);\n    };\n    k.prototype.getPath = function() {\n        var l = j.getPath.call(this);\n        if (l) {\n            return l.replace(/^\\/+/, \"/\")\n        };\n        return l;\n    };\n    k.prototype.setProtocol = function(l) {\n        this.protocol = l;\n        return j.setProtocol.call(this, l);\n    };\n    k.prototype.setDomain = function(l) {\n        this.domain = l;\n        return j.setDomain.call(this, l);\n    };\n    k.prototype.setPort = function(l) {\n        this.port = l;\n        return j.setPort.call(this, l);\n    };\n    k.prototype.setFragment = function(l) {\n        this.fragment = l;\n        return j.setFragment.call(this, l);\n    };\n    k.prototype.isEmpty = function() {\n        return !((((((this.getPath() || this.getProtocol()) || this.getDomain()) || this.getPort()) || (Object.keys(this.getQueryData()).length > 0)) || this.getFragment()));\n    };\n    k.prototype.valueOf = function() {\n        return this.toString();\n    };\n    k.prototype.isFacebookURI = function() {\n        if (!k.$URI5) {\n            k.$URI5 = new RegExp(\"(^|\\\\.)facebook\\\\.com$\", \"i\");\n        };\n        if (this.isEmpty()) {\n            return false\n        };\n        if ((!this.getDomain() && !this.getProtocol())) {\n            return true\n        };\n        return ((([\"http\",\"https\",].indexOf(this.getProtocol()) !== -1) && k.$URI5.test(this.getDomain())));\n    };\n    k.prototype.getRegisteredDomain = function() {\n        if (!this.getDomain()) {\n            return \"\"\n        };\n        if (!this.isFacebookURI()) {\n            return null\n        };\n        var l = this.getDomain().split(\".\"), m = l.indexOf(\"facebook\");\n        return l.slice(m).join(\".\");\n    };\n    k.prototype.getUnqualifiedURI = function() {\n        return new k(this).setProtocol(null).setDomain(null).setPort(null);\n    };\n    k.prototype.getQualifiedURI = function() {\n        return new k(this).$URI6();\n    };\n    k.prototype.$URI6 = function() {\n        if (!this.getDomain()) {\n            var l = k();\n            this.setProtocol(l.getProtocol()).setDomain(l.getDomain()).setPort(l.getPort());\n        }\n    ;\n        return this;\n    };\n    k.prototype.isSameOrigin = function(l) {\n        var m = (l || window.location.href);\n        if (!((m instanceof k))) {\n            m = new k(m.toString());\n        };\n        if ((this.isEmpty() || m.isEmpty())) {\n            return false\n        };\n        if ((this.getProtocol() && (this.getProtocol() != m.getProtocol()))) {\n            return false\n        };\n        if ((this.getDomain() && (this.getDomain() != m.getDomain()))) {\n            return false\n        };\n        if ((this.getPort() && (this.getPort() != m.getPort()))) {\n            return false\n        };\n        return true;\n    };\n    k.prototype.go = function(l) {\n        i(this, l);\n    };\n    k.prototype.setSubdomain = function(l) {\n        var m = this.$URI6().getDomain().split(\".\");\n        if ((m.length <= 2)) {\n            m.unshift(l);\n        }\n         else m[0] = l;\n    ;\n        return this.setDomain(m.join(\".\"));\n    };\n    k.prototype.getSubdomain = function() {\n        if (!this.getDomain()) {\n            return \"\"\n        };\n        var l = this.getDomain().split(\".\");\n        if ((l.length <= 2)) {\n            return \"\";\n        }\n         else return l[0]\n    ;\n    };\n    k.isValidURI = g.isValidURI;\n    h(k, {\n        getRequestURI: function(l, m) {\n            l = ((l === undefined) || l);\n            var n = a.PageTransitions;\n            if (((l && n) && n.isInitialized())) {\n                return n.getCurrentURI(!!m).getQualifiedURI();\n            }\n             else return new k(window.location.href)\n        ;\n        },\n        getMostRecentURI: function() {\n            var l = a.PageTransitions;\n            if ((l && l.isInitialized())) {\n                return l.getMostRecentURI().getQualifiedURI();\n            }\n             else return new k(window.location.href)\n        ;\n        },\n        getNextURI: function() {\n            var l = a.PageTransitions;\n            if ((l && l.isInitialized())) {\n                return l.getNextURI().getQualifiedURI();\n            }\n             else return new k(window.location.href)\n        ;\n        },\n        expression: /(((\\w+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/,\n        arrayQueryExpression: /^(\\w+)((?:\\[\\w*\\])+)=?(.*)/,\n        explodeQuery: function(l) {\n            if (!l) {\n                return {\n                }\n            };\n            var m = {\n            };\n            l = l.replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n            l = l.split(\"&\");\n            var n = Object.prototype.hasOwnProperty;\n            for (var o = 0, p = l.length; (o < p); o++) {\n                var q = l[o].match(k.arrayQueryExpression);\n                if (!q) {\n                    var r = l[o].split(\"=\");\n                    m[k.decodeComponent(r[0])] = ((r[1] === undefined) ? null : k.decodeComponent(r[1]));\n                }\n                 else {\n                    var s = q[2].split(/\\]\\[|\\[|\\]/).slice(0, -1), t = q[1], u = k.decodeComponent((q[3] || \"\"));\n                    s[0] = t;\n                    var v = m;\n                    for (var w = 0; (w < (s.length - 1)); w++) {\n                        if (s[w]) {\n                            if (!n.call(v, s[w])) {\n                                var x = ((s[(w + 1)] && !s[(w + 1)].match(/^\\d{1,3}$/)) ? {\n                                } : []);\n                                v[s[w]] = x;\n                                if ((v[s[w]] !== x)) {\n                                    return m\n                                };\n                            }\n                        ;\n                            v = v[s[w]];\n                        }\n                         else {\n                            if ((s[(w + 1)] && !s[(w + 1)].match(/^\\d{1,3}$/))) {\n                                v.push({\n                                });\n                            }\n                             else v.push([]);\n                        ;\n                            v = v[(v.length - 1)];\n                        }\n                    ;\n                    };\n                    if (((v instanceof Array) && (s[(s.length - 1)] === \"\"))) {\n                        v.push(u);\n                    }\n                     else v[s[(s.length - 1)]] = u;\n                ;\n                }\n            ;\n            };\n            return m;\n        },\n        implodeQuery: function(l, m, n) {\n            m = (m || \"\");\n            if ((n === undefined)) {\n                n = true;\n            };\n            var o = [];\n            if (((l === null) || (l === undefined))) {\n                o.push((n ? k.encodeComponent(m) : m));\n            }\n             else if ((l instanceof Array)) {\n                for (var p = 0; (p < l.length); ++p) {\n                    try {\n                        if ((l[p] !== undefined)) {\n                            o.push(k.implodeQuery(l[p], (m ? ((((m + \"[\") + p) + \"]\")) : p), n));\n                        };\n                    } catch (q) {\n                    \n                    };\n                };\n            }\n             else if ((typeof (l) == \"object\")) {\n                if ((((\"nodeName\" in l)) && ((\"nodeType\" in l)))) {\n                    o.push(\"{node}\");\n                }\n                 else for (var r in l) {\n                    try {\n                        if ((l[r] !== undefined)) {\n                            o.push(k.implodeQuery(l[r], (m ? ((((m + \"[\") + r) + \"]\")) : r), n));\n                        };\n                    } catch (q) {\n                    \n                    };\n                }\n            ;\n            }\n             else if (n) {\n                o.push(((k.encodeComponent(m) + \"=\") + k.encodeComponent(l)));\n            }\n             else o.push(((m + \"=\") + l));\n            \n            \n            \n        ;\n            return o.join(\"&\");\n        },\n        encodeComponent: function(l) {\n            return encodeURIComponent(l).replace(/%5D/g, \"]\").replace(/%5B/g, \"[\");\n        },\n        decodeComponent: function(l) {\n            return decodeURIComponent(l.replace(/\\+/g, \" \"));\n        }\n    });\n    e.exports = k;\n});\n__d(\"AsyncSignal\", [\"Env\",\"ErrorUtils\",\"QueryString\",\"URI\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"ErrorUtils\"), i = b(\"QueryString\"), j = b(\"URI\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n    function m(n, o) {\n        this.data = (o || {\n        });\n        if ((g.tracking_domain && (n.charAt(0) == \"/\"))) {\n            n = (g.tracking_domain + n);\n        };\n        this.uri = n;\n    };\n    m.prototype.setHandler = function(n) {\n        this.handler = n;\n        return this;\n    };\n    m.prototype.send = function() {\n        var n = this.handler, o = this.data, p = new Image();\n        if (n) {\n            p.onload = p.onerror = function() {\n                h.applyWithGuard(n, null, [(p.height == 1),]);\n            };\n        };\n        o.asyncSignal = ((((Math.random() * 10000) | 0)) + 1);\n        var q = new j(this.uri).isFacebookURI();\n        l(o, k.getAsyncParams((q ? \"POST\" : \"GET\")));\n        p.src = i.appendToUrl(this.uri, o);\n        return this;\n    };\n    e.exports = m;\n});\n__d(\"createObjectFrom\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\");\n    function h(i, j) {\n        var k = {\n        }, l = g(j);\n        if ((typeof j == \"undefined\")) {\n            j = true;\n        };\n        for (var m = i.length; m--; ) {\n            k[i[m]] = (l ? j[m] : j);;\n        };\n        return k;\n    };\n    e.exports = h;\n});\n__d(\"DOMQuery\", [\"CSS\",\"UserAgent\",\"createArrayFrom\",\"createObjectFrom\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"UserAgent\"), i = b(\"createArrayFrom\"), j = b(\"createObjectFrom\"), k = b(\"ge\"), l = null;\n    function m(o, p) {\n        return (o.hasAttribute ? o.hasAttribute(p) : (o.getAttribute(p) !== null));\n    };\n    var n = {\n        find: function(o, p) {\n            var q = n.scry(o, p);\n            return q[0];\n        },\n        scry: function(o, p) {\n            if ((!o || !o.getElementsByTagName)) {\n                return []\n            };\n            var q = p.split(\" \"), r = [o,];\n            for (var s = 0; (s < q.length); s++) {\n                if ((r.length === 0)) {\n                    break;\n                };\n                if ((q[s] === \"\")) {\n                    continue;\n                };\n                var t = q[s], u = q[s], v = [], w = false;\n                if ((t.charAt(0) == \"^\")) {\n                    if ((s === 0)) {\n                        w = true;\n                        t = t.slice(1);\n                    }\n                     else return []\n                \n                };\n                t = t.replace(/\\[(?:[^=\\]]*=(?:\"[^\"]*\"|'[^']*'))?|[.#]/g, \" $&\");\n                var x = t.split(\" \"), y = (x[0] || \"*\"), z = (y == \"*\"), aa = (x[1] && (x[1].charAt(0) == \"#\"));\n                if (aa) {\n                    var ba = k(x[1].slice(1), o, y);\n                    if ((ba && ((z || (ba.tagName.toLowerCase() == y))))) {\n                        for (var ca = 0; (ca < r.length); ca++) {\n                            if ((w && n.contains(ba, r[ca]))) {\n                                v = [ba,];\n                                break;\n                            }\n                             else if (((document == r[ca]) || n.contains(r[ca], ba))) {\n                                v = [ba,];\n                                break;\n                            }\n                            \n                        ;\n                        }\n                    };\n                }\n                 else {\n                    var da = [], ea = r.length, fa, ga = ((!w && (u.indexOf(\"[\") < 0)) && document.querySelectorAll);\n                    for (var ha = 0; (ha < ea); ha++) {\n                        if (w) {\n                            fa = [];\n                            var ia = r[ha].parentNode;\n                            while (n.isElementNode(ia)) {\n                                if ((z || (ia.tagName.toLowerCase() == y))) {\n                                    fa.push(ia);\n                                };\n                                ia = ia.parentNode;\n                            };\n                        }\n                         else if (ga) {\n                            fa = r[ha].querySelectorAll(u);\n                        }\n                         else fa = r[ha].getElementsByTagName(y);\n                        \n                    ;\n                        var ja = fa.length;\n                        for (var ka = 0; (ka < ja); ka++) {\n                            da.push(fa[ka]);;\n                        };\n                    };\n                    if (!ga) {\n                        for (var la = 1; (la < x.length); la++) {\n                            var ma = x[la], na = (ma.charAt(0) == \".\"), oa = ma.substring(1);\n                            for (ha = 0; (ha < da.length); ha++) {\n                                var pa = da[ha];\n                                if ((!pa || (pa.nodeType !== 1))) {\n                                    continue;\n                                };\n                                if (na) {\n                                    if (!g.hasClass(pa, oa)) {\n                                        delete da[ha];\n                                    };\n                                    continue;\n                                }\n                                 else {\n                                    var qa = ma.slice(1, (ma.length - 1));\n                                    if ((qa.indexOf(\"=\") == -1)) {\n                                        if (!m(pa, qa)) {\n                                            delete da[ha];\n                                            continue;\n                                        }\n                                    ;\n                                    }\n                                     else {\n                                        var ra = qa.split(\"=\"), sa = ra[0], ta = ra[1];\n                                        ta = ta.slice(1, (ta.length - 1));\n                                        if ((pa.getAttribute(sa) != ta)) {\n                                            delete da[ha];\n                                            continue;\n                                        }\n                                    ;\n                                    }\n                                ;\n                                }\n                            ;\n                            };\n                        }\n                    };\n                    for (ha = 0; (ha < da.length); ha++) {\n                        if (da[ha]) {\n                            v.push(da[ha]);\n                            if (w) {\n                                break;\n                            };\n                        }\n                    ;\n                    };\n                }\n            ;\n                r = v;\n            };\n            return r;\n        },\n        getText: function(o) {\n            if (n.isTextNode(o)) {\n                return o.data;\n            }\n             else if (n.isElementNode(o)) {\n                if ((l === null)) {\n                    var p = document.createElement(\"div\");\n                    l = ((p.textContent != null) ? \"textContent\" : \"innerText\");\n                }\n            ;\n                return o[l];\n            }\n             else return \"\"\n            \n        ;\n        },\n        getSelection: function() {\n            var o = window.getSelection, p = document.selection;\n            if (o) {\n                return (o() + \"\");\n            }\n             else if (p) {\n                return p.createRange().text\n            }\n        ;\n            return null;\n        },\n        contains: function(o, p) {\n            o = k(o);\n            p = k(p);\n            if ((!o || !p)) {\n                return false;\n            }\n             else if ((o === p)) {\n                return true;\n            }\n             else if (n.isTextNode(o)) {\n                return false;\n            }\n             else if (n.isTextNode(p)) {\n                return n.contains(o, p.parentNode);\n            }\n             else if (o.contains) {\n                return o.contains(p);\n            }\n             else if (o.compareDocumentPosition) {\n                return !!((o.compareDocumentPosition(p) & 16));\n            }\n             else return false\n            \n            \n            \n            \n            \n        ;\n        },\n        getRootElement: function() {\n            var o = null;\n            if ((window.Quickling && Quickling.isActive())) {\n                o = k(\"content\");\n            };\n            return (o || document.body);\n        },\n        isNode: function(o) {\n            return !!((o && (((typeof Node !== \"undefined\") ? (o instanceof Node) : (((typeof o == \"object\") && (typeof o.nodeType == \"number\")) && (typeof o.nodeName == \"string\"))))));\n        },\n        isNodeOfType: function(o, p) {\n            var q = i(p).join(\"|\").toUpperCase().split(\"|\"), r = j(q);\n            return (n.isNode(o) && (o.nodeName in r));\n        },\n        isElementNode: function(o) {\n            return (n.isNode(o) && (o.nodeType == 1));\n        },\n        isTextNode: function(o) {\n            return (n.isNode(o) && (o.nodeType == 3));\n        },\n        isInputNode: function(o) {\n            return (n.isNodeOfType(o, [\"input\",\"textarea\",]) || (o.contentEditable === \"true\"));\n        },\n        getDocumentScrollElement: function(o) {\n            o = (o || document);\n            var p = (h.chrome() || h.webkit());\n            return ((!p && (o.compatMode === \"CSS1Compat\")) ? o.documentElement : o.body);\n        }\n    };\n    e.exports = n;\n});\n__d(\"DataStore\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = 1;\n    function i(l) {\n        if ((typeof l == \"string\")) {\n            return (\"str_\" + l);\n        }\n         else return (\"elem_\" + ((l.__FB_TOKEN || (l.__FB_TOKEN = [h++,])))[0])\n    ;\n    };\n    function j(l) {\n        var m = i(l);\n        return (g[m] || (g[m] = {\n        }));\n    };\n    var k = {\n        set: function(l, m, n) {\n            if (!l) {\n                throw new TypeError((\"DataStore.set: namespace is required, got \" + (typeof l)))\n            };\n            var o = j(l);\n            o[m] = n;\n            return l;\n        },\n        get: function(l, m, n) {\n            if (!l) {\n                throw new TypeError((\"DataStore.get: namespace is required, got \" + (typeof l)))\n            };\n            var o = j(l), p = o[m];\n            if (((typeof p === \"undefined\") && l.getAttribute)) {\n                if ((l.hasAttribute && !l.hasAttribute((\"data-\" + m)))) {\n                    p = undefined;\n                }\n                 else {\n                    var q = l.getAttribute((\"data-\" + m));\n                    p = (((null === q)) ? undefined : q);\n                }\n            \n            };\n            if ((((n !== undefined)) && ((p === undefined)))) {\n                p = o[m] = n;\n            };\n            return p;\n        },\n        remove: function(l, m) {\n            if (!l) {\n                throw new TypeError((\"DataStore.remove: namespace is required, got \" + (typeof l)))\n            };\n            var n = j(l), o = n[m];\n            delete n[m];\n            return o;\n        },\n        purge: function(l) {\n            delete g[i(l)];\n        }\n    };\n    e.exports = k;\n});\n__d(\"DOMEvent\", [\"copyProperties\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"invariant\");\n    function i(j) {\n        this.event = (j || window.event);\n        h((typeof (this.event.srcElement) != \"unknown\"));\n        this.target = (this.event.target || this.event.srcElement);\n    };\n    i.killThenCall = function(j) {\n        return function(k) {\n            new i(k).kill();\n            return j();\n        };\n    };\n    g(i.prototype, {\n        preventDefault: function() {\n            var j = this.event;\n            if (j.preventDefault) {\n                j.preventDefault();\n                if (!((\"defaultPrevented\" in j))) {\n                    j.defaultPrevented = true;\n                };\n            }\n             else j.returnValue = false;\n        ;\n            return this;\n        },\n        isDefaultPrevented: function() {\n            var j = this.event;\n            return (((\"defaultPrevented\" in j)) ? j.defaultPrevented : (j.returnValue === false));\n        },\n        stopPropagation: function() {\n            var j = this.event;\n            (j.stopPropagation ? j.stopPropagation() : j.cancelBubble = true);\n            return this;\n        },\n        kill: function() {\n            this.stopPropagation().preventDefault();\n            return this;\n        }\n    });\n    e.exports = i;\n});\n__d(\"getObjectValues\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\");\n    function h(i) {\n        var j = [];\n        for (var k in i) {\n            j.push(i[k]);;\n        };\n        return j;\n    };\n    e.exports = h;\n});\n__d(\"Event\", [\"event-form-bubbling\",\"Arbiter\",\"DataStore\",\"DOMQuery\",\"DOMEvent\",\"ErrorUtils\",\"Parent\",\"UserAgent\",\"$\",\"copyProperties\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    b(\"event-form-bubbling\");\n    var g = b(\"Arbiter\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"DOMEvent\"), k = b(\"ErrorUtils\"), l = b(\"Parent\"), m = b(\"UserAgent\"), n = b(\"$\"), o = b(\"copyProperties\"), p = b(\"getObjectValues\"), q = a.Event;\n    q.DATASTORE_KEY = \"Event.listeners\";\n    if (!q.prototype) {\n        q.prototype = {\n        };\n    };\n    function r(ca) {\n        if ((((ca.type === \"click\") || (ca.type === \"mouseover\")) || (ca.type === \"keydown\"))) {\n            g.inform(\"Event/stop\", {\n                event: ca\n            });\n        };\n    };\n    function s(ca, da, ea) {\n        this.target = ca;\n        this.type = da;\n        this.data = ea;\n    };\n    o(s.prototype, {\n        getData: function() {\n            this.data = (this.data || {\n            });\n            return this.data;\n        },\n        stop: function() {\n            return q.stop(this);\n        },\n        prevent: function() {\n            return q.prevent(this);\n        },\n        isDefaultPrevented: function() {\n            return q.isDefaultPrevented(this);\n        },\n        kill: function() {\n            return q.kill(this);\n        },\n        getTarget: function() {\n            return (new j(this).target || null);\n        }\n    });\n    function t(ca) {\n        if ((ca instanceof s)) {\n            return ca\n        };\n        if (!ca) {\n            if ((!window.addEventListener && document.createEventObject)) {\n                ca = (window.event ? document.createEventObject(window.event) : {\n                });\n            }\n             else ca = {\n            };\n        \n        };\n        if (!ca._inherits_from_prototype) {\n            for (var da in q.prototype) {\n                try {\n                    ca[da] = q.prototype[da];\n                } catch (ea) {\n                \n                };\n            }\n        };\n        return ca;\n    };\n    o(q.prototype, {\n        _inherits_from_prototype: true,\n        getRelatedTarget: function() {\n            var ca = (this.relatedTarget || (((this.fromElement === this.srcElement) ? this.toElement : this.fromElement)));\n            return ((ca && ca.nodeType) ? ca : null);\n        },\n        getModifiers: function() {\n            var ca = {\n                control: !!this.ctrlKey,\n                shift: !!this.shiftKey,\n                alt: !!this.altKey,\n                meta: !!this.metaKey\n            };\n            ca.access = (m.osx() ? ca.control : ca.alt);\n            ca.any = (((ca.control || ca.shift) || ca.alt) || ca.meta);\n            return ca;\n        },\n        isRightClick: function() {\n            if (this.which) {\n                return (this.which === 3)\n            };\n            return (this.button && (this.button === 2));\n        },\n        isMiddleClick: function() {\n            if (this.which) {\n                return (this.which === 2)\n            };\n            return (this.button && (this.button === 4));\n        },\n        isDefaultRequested: function() {\n            return ((this.getModifiers().any || this.isMiddleClick()) || this.isRightClick());\n        }\n    });\n    o(q.prototype, s.prototype);\n    o(q, {\n        listen: function(ca, da, ea, fa) {\n            if ((typeof ca == \"string\")) {\n                ca = n(ca);\n            };\n            if ((typeof fa == \"undefined\")) {\n                fa = q.Priority.NORMAL;\n            };\n            if ((typeof da == \"object\")) {\n                var ga = {\n                };\n                for (var ha in da) {\n                    ga[ha] = q.listen(ca, ha, da[ha], fa);;\n                };\n                return ga;\n            }\n        ;\n            if (da.match(/^on/i)) {\n                throw new TypeError(((\"Bad event name `\" + da) + \"': use `click', not `onclick'.\"))\n            };\n            if (((ca.nodeName == \"LABEL\") && (da == \"click\"))) {\n                var ia = ca.getElementsByTagName(\"input\");\n                ca = ((ia.length == 1) ? ia[0] : ca);\n            }\n             else if (((ca === window) && (da === \"scroll\"))) {\n                var ja = i.getDocumentScrollElement();\n                if (((ja !== document.documentElement) && (ja !== document.body))) {\n                    ca = ja;\n                };\n            }\n            \n        ;\n            var ka = h.get(ca, v, {\n            });\n            if (x[da]) {\n                var la = x[da];\n                da = la.base;\n                if (la.wrap) {\n                    ea = la.wrap(ea);\n                };\n            }\n        ;\n            z(ca, da);\n            var ma = ka[da];\n            if (!((fa in ma))) {\n                ma[fa] = [];\n            };\n            var na = ma[fa].length, oa = new ba(ea, ma[fa], na);\n            ma[fa].push(oa);\n            return oa;\n        },\n        stop: function(ca) {\n            var da = new j(ca).stopPropagation();\n            r(da.event);\n            return ca;\n        },\n        prevent: function(ca) {\n            new j(ca).preventDefault();\n            return ca;\n        },\n        isDefaultPrevented: function(ca) {\n            return new j(ca).isDefaultPrevented(ca);\n        },\n        kill: function(ca) {\n            var da = new j(ca).kill();\n            r(da.event);\n            return false;\n        },\n        getKeyCode: function(event) {\n            event = new j(event).event;\n            if (!event) {\n                return false\n            };\n            switch (event.keyCode) {\n              case 63232:\n                return 38;\n              case 63233:\n                return 40;\n              case 63234:\n                return 37;\n              case 63235:\n                return 39;\n              case 63272:\n            \n              case 63273:\n            \n              case 63275:\n                return null;\n              case 63276:\n                return 33;\n              case 63277:\n                return 34;\n            };\n            if (event.shiftKey) {\n                switch (event.keyCode) {\n                  case 33:\n                \n                  case 34:\n                \n                  case 37:\n                \n                  case 38:\n                \n                  case 39:\n                \n                  case 40:\n                    return null;\n                }\n            };\n            return event.keyCode;\n        },\n        getPriorities: function() {\n            if (!u) {\n                var ca = p(q.Priority);\n                ca.sort(function(da, ea) {\n                    return (da - ea);\n                });\n                u = ca;\n            }\n        ;\n            return u;\n        },\n        fire: function(ca, da, ea) {\n            var fa = new s(ca, da, ea), ga;\n            do {\n                var ha = q.__getHandler(ca, da);\n                if (ha) {\n                    ga = ha(fa);\n                };\n                ca = ca.parentNode;\n            } while (((ca && (ga !== false)) && !fa.cancelBubble));\n            return (ga !== false);\n        },\n        __fire: function(ca, da, event) {\n            var ea = q.__getHandler(ca, da);\n            if (ea) {\n                return ea(t(event))\n            };\n        },\n        __getHandler: function(ca, da) {\n            return h.get(ca, (q.DATASTORE_KEY + da));\n        },\n        getPosition: function(ca) {\n            ca = new j(ca).event;\n            var da = i.getDocumentScrollElement(), ea = (ca.clientX + da.scrollLeft), fa = (ca.clientY + da.scrollTop);\n            return {\n                x: ea,\n                y: fa\n            };\n        }\n    });\n    var u = null, v = q.DATASTORE_KEY, w = function(ca) {\n        return function(da) {\n            if (!i.contains(this, da.getRelatedTarget())) {\n                return ca.call(this, da)\n            };\n        };\n    }, x;\n    if (!window.navigator.msPointerEnabled) {\n        x = {\n            mouseenter: {\n                base: \"mouseover\",\n                wrap: w\n            },\n            mouseleave: {\n                base: \"mouseout\",\n                wrap: w\n            }\n        };\n    }\n     else x = {\n        mousedown: {\n            base: \"MSPointerDown\"\n        },\n        mousemove: {\n            base: \"MSPointerMove\"\n        },\n        mouseup: {\n            base: \"MSPointerUp\"\n        },\n        mouseover: {\n            base: \"MSPointerOver\"\n        },\n        mouseout: {\n            base: \"MSPointerOut\"\n        },\n        mouseenter: {\n            base: \"MSPointerOver\",\n            wrap: w\n        },\n        mouseleave: {\n            base: \"MSPointerOut\",\n            wrap: w\n        }\n    };\n;\n    if (m.firefox()) {\n        var y = function(ca, event) {\n            event = t(event);\n            var da = event.getTarget();\n            while (da) {\n                q.__fire(da, ca, event);\n                da = da.parentNode;\n            };\n        };\n        document.documentElement.addEventListener(\"focus\", y.curry(\"focusin\"), true);\n        document.documentElement.addEventListener(\"blur\", y.curry(\"focusout\"), true);\n    }\n;\n    var z = function(ca, da) {\n        var ea = (\"on\" + da), fa = aa.bind(ca, da), ga = h.get(ca, v);\n        if ((da in ga)) {\n            return\n        };\n        ga[da] = {\n        };\n        if (ca.addEventListener) {\n            ca.addEventListener(da, fa, false);\n        }\n         else if (ca.attachEvent) {\n            ca.attachEvent(ea, fa);\n        }\n    ;\n        h.set(ca, (v + da), fa);\n        if (ca[ea]) {\n            var ha = ((ca === document.documentElement) ? q.Priority._BUBBLE : q.Priority.TRADITIONAL), ia = ca[ea];\n            ca[ea] = null;\n            q.listen(ca, da, ia, ha);\n        }\n    ;\n        if (((ca.nodeName === \"FORM\") && (da === \"submit\"))) {\n            q.listen(ca, da, q.__bubbleSubmit.curry(ca), q.Priority._BUBBLE);\n        };\n    }, aa = k.guard(function(ca, event) {\n        event = t(event);\n        if (!h.get(this, v)) {\n            throw new Error(\"Bad listenHandler context.\")\n        };\n        var da = h.get(this, v)[ca];\n        if (!da) {\n            throw new Error(((\"No registered handlers for `\" + ca) + \"'.\"))\n        };\n        if ((ca == \"click\")) {\n            var ea = l.byTag(event.getTarget(), \"a\");\n            if (window.userAction) {\n                var fa = window.userAction(\"evt_ext\", ea, event, {\n                    mode: \"DEDUP\"\n                }).uai_fallback(\"click\");\n                if (window.ArbiterMonitor) {\n                    window.ArbiterMonitor.initUA(fa, [ea,]);\n                };\n            }\n        ;\n            if (window.clickRefAction) {\n                window.clickRefAction(\"click\", ea, event);\n            };\n        }\n    ;\n        var ga = q.getPriorities();\n        for (var ha = 0; (ha < ga.length); ha++) {\n            var ia = ga[ha];\n            if ((ia in da)) {\n                var ja = da[ia];\n                for (var ka = 0; (ka < ja.length); ka++) {\n                    if (!ja[ka]) {\n                        continue;\n                    };\n                    var la = ja[ka].fire(this, event);\n                    if ((la === false)) {\n                        return event.kill();\n                    }\n                     else if (event.cancelBubble) {\n                        event.stop();\n                    }\n                ;\n                };\n            }\n        ;\n        };\n        return event.returnValue;\n    });\n    q.Priority = {\n        URGENT: -20,\n        TRADITIONAL: -10,\n        NORMAL: 0,\n        _BUBBLE: 1000\n    };\n    function ba(ca, da, ea) {\n        this._handler = ca;\n        this._container = da;\n        this._index = ea;\n    };\n    o(ba.prototype, {\n        remove: function() {\n            delete this._handler;\n            delete this._container[this._index];\n        },\n        fire: function(ca, event) {\n            return k.applyWithGuard(this._handler, ca, [event,], function(da) {\n                da.event_type = event.type;\n                da.dom_element = (ca.name || ca.id);\n                da.category = \"eventhandler\";\n            });\n        }\n    });\n    a.$E = q.$E = t;\n    e.exports = q;\n});\n__d(\"evalGlobal\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if ((typeof h != \"string\")) {\n            throw new TypeError(\"JS sent to evalGlobal is not a string. Only strings are permitted.\")\n        };\n        if (!h) {\n            return\n        };\n        var i = document.createElement(\"script\");\n        try {\n            i.appendChild(document.createTextNode(h));\n        } catch (j) {\n            i.text = h;\n        };\n        var k = (document.getElementsByTagName(\"head\")[0] || document.documentElement);\n        k.appendChild(i);\n        k.removeChild(i);\n    };\n    e.exports = g;\n});\n__d(\"HTML\", [\"function-extensions\",\"Bootloader\",\"UserAgent\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"evalGlobal\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Bootloader\"), h = b(\"UserAgent\"), i = b(\"copyProperties\"), j = b(\"createArrayFrom\"), k = b(\"emptyFunction\"), l = b(\"evalGlobal\");\n    function m(n) {\n        if ((n && (typeof n.__html == \"string\"))) {\n            n = n.__html;\n        };\n        if (!((this instanceof m))) {\n            if ((n instanceof m)) {\n                return n\n            };\n            return new m(n);\n        }\n    ;\n        this._content = n;\n        this._defer = false;\n        this._extra_action = \"\";\n        this._nodes = null;\n        this._inline_js = k;\n        this._rootNode = null;\n        return this;\n    };\n    m.isHTML = function(n) {\n        return (n && (((n instanceof m) || (n.__html !== undefined))));\n    };\n    m.replaceJSONWrapper = function(n) {\n        return ((n && (n.__html !== undefined)) ? new m(n.__html) : n);\n    };\n    i(m.prototype, {\n        toString: function() {\n            var n = (this._content || \"\");\n            if (this._extra_action) {\n                n += (((\"\\u003Cscript type=\\\"text/javascript\\\"\\u003E\" + this._extra_action) + \"\\u003C/scr\") + \"ipt\\u003E\");\n            };\n            return n;\n        },\n        setAction: function(n) {\n            this._extra_action = n;\n            return this;\n        },\n        getAction: function() {\n            this._fillCache();\n            var n = function() {\n                this._inline_js();\n                l(this._extra_action);\n            }.bind(this);\n            if (this.getDeferred()) {\n                return n.defer.bind(n);\n            }\n             else return n\n        ;\n        },\n        setDeferred: function(n) {\n            this._defer = !!n;\n            return this;\n        },\n        getDeferred: function() {\n            return this._defer;\n        },\n        getContent: function() {\n            return this._content;\n        },\n        getNodes: function() {\n            this._fillCache();\n            return this._nodes;\n        },\n        getRootNode: function() {\n            var n = this.getNodes();\n            if ((n.length === 1)) {\n                this._rootNode = n[0];\n            }\n             else {\n                var o = document.createDocumentFragment();\n                for (var p = 0; (p < n.length); p++) {\n                    o.appendChild(n[p]);;\n                };\n                this._rootNode = o;\n            }\n        ;\n            return this._rootNode;\n        },\n        _fillCache: function() {\n            if ((null !== this._nodes)) {\n                return\n            };\n            var n = this._content;\n            if (!n) {\n                this._nodes = [];\n                return;\n            }\n        ;\n            n = n.replace(/(<(\\w+)[^>]*?)\\/>/g, function(y, z, aa) {\n                return (aa.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? y : (((z + \"\\u003E\\u003C/\") + aa) + \"\\u003E\"));\n            });\n            var o = n.trim().toLowerCase(), p = document.createElement(\"div\"), q = false, r = ((((((((!o.indexOf(\"\\u003Copt\") && [1,\"\\u003Cselect multiple=\\\"multiple\\\" class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/select\\u003E\",])) || ((!o.indexOf(\"\\u003Cleg\") && [1,\"\\u003Cfieldset class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/fieldset\\u003E\",]))) || ((o.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1,\"\\u003Ctable class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/table\\u003E\",]))) || ((!o.indexOf(\"\\u003Ctr\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/tbody\\u003E\\u003C/table\\u003E\",]))) || ((((!o.indexOf(\"\\u003Ctd\") || !o.indexOf(\"\\u003Cth\"))) && [3,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003Ctr class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\",]))) || ((!o.indexOf(\"\\u003Ccol\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003C/tbody\\u003E\\u003Ccolgroup class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/colgroup\\u003E\\u003C/table\\u003E\",]))) || null);\n            if ((null === r)) {\n                p.className = \"__WRAPPER\";\n                if (h.ie()) {\n                    r = [0,\"\\u003Cspan style=\\\"display:none\\\"\\u003E&nbsp;\\u003C/span\\u003E\",\"\",];\n                    q = true;\n                }\n                 else r = [0,\"\",\"\",];\n            ;\n            }\n        ;\n            p.innerHTML = ((r[1] + n) + r[2]);\n            while (r[0]--) {\n                p = p.lastChild;;\n            };\n            if (q) {\n                p.removeChild(p.firstChild);\n            };\n            (p.className != \"__WRAPPER\");\n            if (h.ie()) {\n                var s;\n                if ((!o.indexOf(\"\\u003Ctable\") && (-1 == o.indexOf(\"\\u003Ctbody\")))) {\n                    s = (p.firstChild && p.firstChild.childNodes);\n                }\n                 else if (((r[1] == \"\\u003Ctable\\u003E\") && (-1 == o.indexOf(\"\\u003Ctbody\")))) {\n                    s = p.childNodes;\n                }\n                 else s = [];\n                \n            ;\n                for (var t = (s.length - 1); (t >= 0); --t) {\n                    if (((s[t].nodeName && (s[t].nodeName.toLowerCase() == \"tbody\")) && (s[t].childNodes.length == 0))) {\n                        s[t].parentNode.removeChild(s[t]);\n                    };\n                };\n            }\n        ;\n            var u = p.getElementsByTagName(\"script\"), v = [];\n            for (var w = 0; (w < u.length); w++) {\n                if (u[w].src) {\n                    v.push(g.requestJSResource.bind(g, u[w].src));\n                }\n                 else v.push(l.bind(null, u[w].innerHTML));\n            ;\n            };\n            for (var w = (u.length - 1); (w >= 0); w--) {\n                u[w].parentNode.removeChild(u[w]);;\n            };\n            var x = function() {\n                for (var y = 0; (y < v.length); y++) {\n                    v[y]();;\n                };\n            };\n            this._nodes = j(p.childNodes);\n            this._inline_js = x;\n        }\n    });\n    e.exports = m;\n});\n__d(\"isScalar\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return (/string|number|boolean/).test(typeof h);\n    };\n    e.exports = g;\n});\n__d(\"Intl\", [], function(a, b, c, d, e, f) {\n    var g;\n    function h(j) {\n        if ((typeof j != \"string\")) {\n            return false\n        };\n        return j.match(new RegExp(((((((((((((((((((((((((((h.punct_char_class + \"[\") + \")\\\"\") + \"'\") + \"\\u00bb\") + \"\\u0f3b\") + \"\\u0f3d\") + \"\\u2019\") + \"\\u201d\") + \"\\u203a\") + \"\\u3009\") + \"\\u300b\") + \"\\u300d\") + \"\\u300f\") + \"\\u3011\") + \"\\u3015\") + \"\\u3017\") + \"\\u3019\") + \"\\u301b\") + \"\\u301e\") + \"\\u301f\") + \"\\ufd3f\") + \"\\uff07\") + \"\\uff09\") + \"\\uff3d\") + \"\\\\s\") + \"]*$\")));\n    };\n    h.punct_char_class = (((((((((((\"[\" + \".!?\") + \"\\u3002\") + \"\\uff01\") + \"\\uff1f\") + \"\\u0964\") + \"\\u2026\") + \"\\u0eaf\") + \"\\u1801\") + \"\\u0e2f\") + \"\\uff0e\") + \"]\");\n    function i(j) {\n        if (g) {\n            var k = [], l = [];\n            for (var m in g.patterns) {\n                var n = g.patterns[m];\n                for (var o in g.meta) {\n                    var p = new RegExp(o.slice(1, -1), \"g\"), q = g.meta[o];\n                    m = m.replace(p, q);\n                    n = n.replace(p, q);\n                };\n                k.push(m);\n                l.push(n);\n            };\n            for (var r = 0; (r < k.length); r++) {\n                var s = new RegExp(k[r].slice(1, -1), \"g\");\n                if ((l[r] == \"javascript\")) {\n                    j.replace(s, function(t) {\n                        return t.slice(1).toLowerCase();\n                    });\n                }\n                 else j = j.replace(s, l[r]);\n            ;\n            };\n        }\n    ;\n        return j.replace(/\\x01/g, \"\");\n    };\n    e.exports = {\n        endsInPunct: h,\n        applyPhonologicalRules: i,\n        setPhonologicalRules: function(j) {\n            g = j;\n        }\n    };\n});\n__d(\"substituteTokens\", [\"invariant\",\"Intl\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = b(\"Intl\");\n    function i(j, k) {\n        if (!k) {\n            return j\n        };\n        g((typeof k === \"object\"));\n        var l = ((\"\\\\{([^}]+)\\\\}(\" + h.endsInPunct.punct_char_class) + \"*)\"), m = new RegExp(l, \"g\"), n = [], o = j.replace(m, function(r, s, t) {\n            var u = k[s];\n            if ((u && (typeof u === \"object\"))) {\n                n.push(u);\n                return (\"\\u0017\" + t);\n            }\n        ;\n            return (u + ((h.endsInPunct(u) ? \"\" : t)));\n        }).split(\"\\u0017\").map(h.applyPhonologicalRules);\n        if ((o.length === 1)) {\n            return o[0]\n        };\n        var p = [o[0],];\n        for (var q = 0; (q < n.length); q++) {\n            p.push(n[q], o[(q + 1)]);;\n        };\n        return p;\n    };\n    e.exports = i;\n});\n__d(\"tx\", [\"substituteTokens\",], function(a, b, c, d, e, f) {\n    var g = b(\"substituteTokens\");\n    function h(i, j) {\n        if ((typeof _string_table == \"undefined\")) {\n            return\n        };\n        i = _string_table[i];\n        return g(i, j);\n    };\n    h._ = g;\n    e.exports = h;\n});\n__d(\"DOM\", [\"function-extensions\",\"DOMQuery\",\"Event\",\"HTML\",\"UserAgent\",\"$\",\"copyProperties\",\"createArrayFrom\",\"isScalar\",\"tx\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"DOMQuery\"), h = b(\"Event\"), i = b(\"HTML\"), j = b(\"UserAgent\"), k = b(\"$\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\"), n = b(\"isScalar\"), o = b(\"tx\"), p = \"js_\", q = 0, r = {\n    };\n    l(r, g);\n    l(r, {\n        create: function(u, v, w) {\n            var x = document.createElement(u);\n            if (v) {\n                r.setAttributes(x, v);\n            };\n            if ((w != null)) {\n                r.setContent(x, w);\n            };\n            return x;\n        },\n        setAttributes: function(u, v) {\n            if (v.type) {\n                u.type = v.type;\n            };\n            for (var w in v) {\n                var x = v[w], y = (/^on/i).test(w);\n                if ((w == \"type\")) {\n                    continue;\n                }\n                 else if ((w == \"style\")) {\n                    if ((typeof x == \"string\")) {\n                        u.style.cssText = x;\n                    }\n                     else l(u.style, x);\n                ;\n                }\n                 else if (y) {\n                    h.listen(u, w.substr(2), x);\n                }\n                 else if ((w in u)) {\n                    u[w] = x;\n                }\n                 else if (u.setAttribute) {\n                    u.setAttribute(w, x);\n                }\n                \n                \n                \n            ;\n            };\n        },\n        prependContent: function(u, v) {\n            return s(v, u, function(w) {\n                (u.firstChild ? u.insertBefore(w, u.firstChild) : u.appendChild(w));\n            });\n        },\n        insertAfter: function(u, v) {\n            var w = u.parentNode;\n            return s(v, w, function(x) {\n                (u.nextSibling ? w.insertBefore(x, u.nextSibling) : w.appendChild(x));\n            });\n        },\n        insertBefore: function(u, v) {\n            var w = u.parentNode;\n            return s(v, w, function(x) {\n                w.insertBefore(x, u);\n            });\n        },\n        setContent: function(u, v) {\n            r.empty(u);\n            return r.appendContent(u, v);\n        },\n        appendContent: function(u, v) {\n            return s(v, u, function(w) {\n                u.appendChild(w);\n            });\n        },\n        replace: function(u, v) {\n            var w = u.parentNode;\n            return s(v, w, function(x) {\n                w.replaceChild(x, u);\n            });\n        },\n        remove: function(u) {\n            u = k(u);\n            if (u.parentNode) {\n                u.parentNode.removeChild(u);\n            };\n        },\n        empty: function(u) {\n            u = k(u);\n            while (u.firstChild) {\n                r.remove(u.firstChild);;\n            };\n        },\n        getID: function(u) {\n            var v = u.id;\n            if (!v) {\n                v = (p + q++);\n                u.id = v;\n            }\n        ;\n            return v;\n        }\n    });\n    function s(u, v, w) {\n        u = i.replaceJSONWrapper(u);\n        if ((((u instanceof i) && (\"\" === v.innerHTML)) && (-1 === u.toString().indexOf((\"\\u003Cscr\" + \"ipt\"))))) {\n            var x = j.ie();\n            if ((!x || (((x > 7) && !g.isNodeOfType(v, [\"table\",\"tbody\",\"thead\",\"tfoot\",\"tr\",\"select\",\"fieldset\",]))))) {\n                var y = (x ? \"\\u003Cem style=\\\"display:none;\\\"\\u003E&nbsp;\\u003C/em\\u003E\" : \"\");\n                v.innerHTML = (y + u);\n                (x && v.removeChild(v.firstChild));\n                return m(v.childNodes);\n            }\n        ;\n        }\n         else if (g.isTextNode(v)) {\n            v.data = u;\n            return [u,];\n        }\n        \n    ;\n        var z = document.createDocumentFragment(), aa, ba = [], ca = [];\n        if (!Array.isArray(u)) {\n            u = [u,];\n        };\n        for (var da = 0; (da < u.length); da++) {\n            aa = i.replaceJSONWrapper(u[da]);\n            if ((aa instanceof i)) {\n                ca.push(aa.getAction());\n                var ea = aa.getNodes();\n                for (var fa = 0; (fa < ea.length); fa++) {\n                    ba.push(ea[fa]);\n                    z.appendChild(ea[fa]);\n                };\n            }\n             else if (n(aa)) {\n                var ga = document.createTextNode(aa);\n                ba.push(ga);\n                z.appendChild(ga);\n            }\n             else if (g.isNode(aa)) {\n                ba.push(aa);\n                z.appendChild(aa);\n            }\n            \n            \n        ;\n        };\n        w(z);\n        ca.forEach(function(ha) {\n            ha();\n        });\n        return ba;\n    };\n    function t(u) {\n        function v(w) {\n            return r.create(\"div\", {\n            }, w).innerHTML;\n        };\n        return function(w, x) {\n            var y = {\n            };\n            if (x) {\n                for (var z in x) {\n                    y[z] = v(x[z]);;\n                }\n            };\n            return i(u(w, y));\n        };\n    };\n    r.tx = t(o);\n    r.tx._ = r._tx = t(o._);\n    e.exports = r;\n});\n__d(\"LinkshimAsyncLink\", [\"$\",\"AsyncSignal\",\"DOM\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"AsyncSignal\"), i = b(\"DOM\"), j = b(\"UserAgent\"), k = {\n        swap: function(l, m) {\n            var n = (j.ie() <= 8);\n            if (n) {\n                var o = i.create(\"wbr\", {\n                }, null);\n                i.appendContent(l, o);\n            }\n        ;\n            l.href = m;\n            if (n) {\n                i.remove(o);\n            };\n        },\n        referrer_log: function(l, m, n) {\n            var o = g(\"meta_referrer\");\n            o.content = \"origin\";\n            k.swap(l, m);\n            (function() {\n                o.content = \"default\";\n                new h(n, {\n                }).send();\n            }).defer(100);\n        }\n    };\n    e.exports = k;\n});\n__d(\"legacy:dom-asynclinkshim\", [\"LinkshimAsyncLink\",], function(a, b, c, d) {\n    a.LinkshimAsyncLink = b(\"LinkshimAsyncLink\");\n}, 3);\n__d(\"CookieCore\", [], function(a, b, c, d, e, f) {\n    var g = {\n        set: function(h, i, j, k, l) {\n            document.cookie = (((((((((h + \"=\") + encodeURIComponent(i)) + \"; \") + ((j ? ((\"expires=\" + (new Date((Date.now() + j))).toGMTString()) + \"; \") : \"\"))) + \"path=\") + ((k || \"/\"))) + \"; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")) + ((l ? \"; secure\" : \"\")));\n        },\n        clear: function(h, i) {\n            i = (i || \"/\");\n            document.cookie = (((((h + \"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; \") + \"path=\") + i) + \"; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"));\n        },\n        get: function(h) {\n            var i = document.cookie.match(((\"(?:^|;\\\\s*)\" + h) + \"=(.*?)(?:;|$)\"));\n            return ((i ? decodeURIComponent(i[1]) : i));\n        }\n    };\n    e.exports = g;\n});\n__d(\"Cookie\", [\"CookieCore\",\"Env\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"CookieCore\"), h = b(\"Env\"), i = b(\"copyProperties\");\n    function j(l, m, n, o, p) {\n        if ((h.no_cookies && (l != \"tpa\"))) {\n            return\n        };\n        g.set(l, m, n, o, p);\n    };\n    var k = i({\n    }, g);\n    k.set = j;\n    e.exports = k;\n});\n__d(\"detect_broken_proxy_cache\", [\"AsyncSignal\",\"Cookie\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"Cookie\"), i = b(\"URI\");\n    function j(k, l) {\n        var m = h.get(l);\n        if (((((m != k)) && ((m != null))) && ((k != \"0\")))) {\n            var n = {\n                c: \"si_detect_broken_proxy_cache\",\n                m: ((((l + \" \") + k) + \" \") + m)\n            }, o = new i(\"/common/scribe_endpoint.php\").getQualifiedURI().toString();\n            new g(o, n).send();\n        }\n    ;\n    };\n    e.exports = j;\n});\n__d(\"legacy:detect-broken-proxy-cache\", [\"detect_broken_proxy_cache\",], function(a, b, c, d) {\n    a.detect_broken_proxy_cache = b(\"detect_broken_proxy_cache\");\n}, 3);\n__d(\"link_rel_preload\", [\"Bootloader\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Parent\");\n    function i() {\n        var j = /async(?:-post)?|dialog(?:-pipe|-post)?|theater|toggle/;\n        document.documentElement.onmousedown = function(k) {\n            k = (k || window.event);\n            var l = (k.target || k.srcElement), m = h.byTag(l, \"A\");\n            if (!m) {\n                return\n            };\n            var n = m.getAttribute(\"ajaxify\"), o = m.href, p = (n || o);\n            if (((n && o) && !(/#$/).test(o))) {\n                var q = (k.which && (k.which != 1)), r = (((k.altKey || k.ctrlKey) || k.metaKey) || k.shiftKey);\n                if ((q || r)) {\n                    return\n                };\n            }\n        ;\n            var s = (m.rel && m.rel.match(j));\n            s = (s && s[0]);\n            switch (s) {\n              case \"dialog\":\n            \n              case \"dialog-post\":\n                g.loadModules([\"Dialog\",]);\n                break;\n              case \"dialog-pipe\":\n                g.loadModules([\"AjaxPipeRequest\",\"Dialog\",]);\n                break;\n              case \"async\":\n            \n              case \"async-post\":\n                g.loadModules([\"AsyncRequest\",]);\n                break;\n              case \"theater\":\n                g.loadModules([\"PhotoSnowlift\",], function(t) {\n                    t.preload(p, m);\n                });\n                break;\n              case \"toggle\":\n                g.loadModules([\"Toggler\",]);\n                break;\n            };\n            return;\n        };\n    };\n    e.exports = i;\n});\n__d(\"legacy:link-rel-preload\", [\"link_rel_preload\",], function(a, b, c, d) {\n    a.link_rel_preload = b(\"link_rel_preload\");\n}, 3);\n__d(\"AsyncResponse\", [\"Bootloader\",\"Env\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Env\"), i = b(\"copyProperties\"), j = b(\"tx\");\n    function k(l, m) {\n        i(this, {\n            error: 0,\n            errorSummary: null,\n            errorDescription: null,\n            onload: null,\n            replay: false,\n            payload: (m || null),\n            request: (l || null),\n            silentError: false,\n            transientError: false,\n            is_last: true\n        });\n        return this;\n    };\n    i(k, {\n        defaultErrorHandler: function(l) {\n            try {\n                if (!l.silentError) {\n                    k.verboseErrorHandler(l);\n                }\n                 else l.logErrorByGroup(\"silent\", 10);\n            ;\n            } catch (m) {\n                alert(l);\n            };\n        },\n        verboseErrorHandler: function(l) {\n            try {\n                var n = l.getErrorSummary(), o = l.getErrorDescription();\n                l.logErrorByGroup(\"popup\", 10);\n                if ((l.silentError && (o == \"\"))) {\n                    o = \"Something went wrong. We're working on getting this fixed as soon as we can. You may be able to try again.\";\n                };\n                g.loadModules([\"Dialog\",], function(p) {\n                    new p().setTitle(n).setBody(o).setButtons([p.OK,]).setModal(true).setCausalElement(this.relativeTo).show();\n                });\n            } catch (m) {\n                alert(l);\n            };\n        }\n    });\n    i(k.prototype, {\n        getRequest: function() {\n            return this.request;\n        },\n        getPayload: function() {\n            return this.payload;\n        },\n        getError: function() {\n            return this.error;\n        },\n        getErrorSummary: function() {\n            return this.errorSummary;\n        },\n        setErrorSummary: function(l) {\n            l = (((l === undefined) ? null : l));\n            this.errorSummary = l;\n            return this;\n        },\n        getErrorDescription: function() {\n            return this.errorDescription;\n        },\n        getErrorIsWarning: function() {\n            return this.errorIsWarning;\n        },\n        isTransient: function() {\n            return this.transientError;\n        },\n        logError: function(l, m) {\n            var n = a.ErrorSignal;\n            if (n) {\n                var o = {\n                    err_code: this.error,\n                    vip: ((h.vip || \"-\"))\n                };\n                if (m) {\n                    o.duration = m.duration;\n                    o.xfb_ip = m.xfb_ip;\n                }\n            ;\n                var p = this.request.getURI();\n                o.path = (p || \"-\");\n                o.aid = this.request.userActionID;\n                if ((p && (p.indexOf(\"scribe_endpoint.php\") != -1))) {\n                    l = \"async_error_double\";\n                };\n                n.sendErrorSignal(l, JSON.stringify(o));\n            }\n        ;\n        },\n        logErrorByGroup: function(l, m) {\n            if ((Math.floor((Math.random() * m)) == 0)) {\n                if (((this.error == 1357010) || (this.error < 15000))) {\n                    this.logError((\"async_error_oops_\" + l));\n                }\n                 else this.logError((\"async_error_logic_\" + l));\n            \n            };\n        }\n    });\n    e.exports = k;\n});\n__d(\"HTTPErrors\", [\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"emptyFunction\"), h = {\n        get: g,\n        getAll: g\n    };\n    e.exports = h;\n});\n__d(\"bind\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        var j = Array.prototype.slice.call(arguments, 2);\n        if ((typeof i != \"string\")) {\n            return Function.prototype.bind.apply(i, [h,].concat(j))\n        };\n        function k() {\n            var l = j.concat(Array.prototype.slice.call(arguments));\n            if (h[i]) {\n                return h[i].apply(h, l)\n            };\n        };\n        k.toString = function() {\n            return (\"bound lazily: \" + h[i]);\n        };\n        return k;\n    };\n    e.exports = g;\n});\n__d(\"executeAfter\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        return function() {\n            h.apply((j || this), arguments);\n            i.apply((j || this), arguments);\n        };\n    };\n    e.exports = g;\n});\n__d(\"AsyncRequest\", [\"Arbiter\",\"AsyncResponse\",\"Bootloader\",\"CSS\",\"Env\",\"ErrorUtils\",\"Event\",\"HTTPErrors\",\"JSCC\",\"Parent\",\"Run\",\"ServerJS\",\"URI\",\"UserAgent\",\"XHR\",\"asyncCallback\",\"bind\",\"copyProperties\",\"emptyFunction\",\"evalGlobal\",\"ge\",\"goURI\",\"isEmpty\",\"ix\",\"tx\",\"executeAfter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncResponse\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"Env\"), l = b(\"ErrorUtils\"), m = b(\"Event\"), n = b(\"HTTPErrors\"), o = b(\"JSCC\"), p = b(\"Parent\"), q = b(\"Run\"), r = b(\"ServerJS\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"XHR\"), v = b(\"asyncCallback\"), w = b(\"bind\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"evalGlobal\"), aa = b(\"ge\"), ba = b(\"goURI\"), ca = b(\"isEmpty\"), da = b(\"ix\"), ea = b(\"tx\"), fa = b(\"executeAfter\");\n    function ga() {\n        try {\n            return !window.loaded;\n        } catch (pa) {\n            return true;\n        };\n    };\n    function ha(pa) {\n        return (((\"upload\" in pa)) && ((\"onprogress\" in pa.upload)));\n    };\n    function ia(pa) {\n        return (\"withCredentials\" in pa);\n    };\n    function ja(pa) {\n        return (pa.status in {\n            0: 1,\n            12029: 1,\n            12030: 1,\n            12031: 1,\n            12152: 1\n        });\n    };\n    function ka(pa) {\n        var qa = (!pa || (typeof (pa) === \"function\"));\n        return qa;\n    };\n    var la = 2, ma = la;\n    g.subscribe(\"page_transition\", function(pa, qa) {\n        ma = qa.id;\n    });\n    function na(pa) {\n        x(this, {\n            transport: null,\n            method: \"POST\",\n            uri: \"\",\n            timeout: null,\n            timer: null,\n            initialHandler: y,\n            handler: null,\n            uploadProgressHandler: null,\n            errorHandler: null,\n            transportErrorHandler: null,\n            timeoutHandler: null,\n            interceptHandler: y,\n            finallyHandler: y,\n            abortHandler: y,\n            serverDialogCancelHandler: null,\n            relativeTo: null,\n            statusElement: null,\n            statusClass: \"\",\n            data: {\n            },\n            file: null,\n            context: {\n            },\n            readOnly: false,\n            writeRequiredParams: [],\n            remainingRetries: 0,\n            userActionID: \"-\"\n        });\n        this.option = {\n            asynchronous: true,\n            suppressErrorHandlerWarning: false,\n            suppressEvaluation: false,\n            suppressErrorAlerts: false,\n            retries: 0,\n            jsonp: false,\n            bundle: false,\n            useIframeTransport: false,\n            handleErrorAfterUnload: false\n        };\n        this.errorHandler = h.defaultErrorHandler;\n        this.transportErrorHandler = w(this, \"errorHandler\");\n        if ((pa !== undefined)) {\n            this.setURI(pa);\n        };\n    };\n    x(na, {\n        bootstrap: function(pa, qa, ra) {\n            var sa = \"GET\", ta = true, ua = {\n            };\n            if ((ra || (qa && ((qa.rel == \"async-post\"))))) {\n                sa = \"POST\";\n                ta = false;\n                if (pa) {\n                    pa = s(pa);\n                    ua = pa.getQueryData();\n                    pa.setQueryData({\n                    });\n                }\n            ;\n            }\n        ;\n            var va = (p.byClass(qa, \"stat_elem\") || qa);\n            if ((va && j.hasClass(va, \"async_saving\"))) {\n                return false\n            };\n            var wa = new na(pa).setReadOnly(ta).setMethod(sa).setData(ua).setNectarModuleDataSafe(qa).setRelativeTo(qa);\n            if (qa) {\n                wa.setHandler(function(ya) {\n                    m.fire(qa, \"success\", {\n                        response: ya\n                    });\n                });\n                wa.setErrorHandler(function(ya) {\n                    if ((m.fire(qa, \"error\", {\n                        response: ya\n                    }) !== false)) {\n                        h.defaultErrorHandler(ya);\n                    };\n                });\n            }\n        ;\n            if (va) {\n                wa.setStatusElement(va);\n                var xa = va.getAttribute(\"data-status-class\");\n                (xa && wa.setStatusClass(xa));\n            }\n        ;\n            if (qa) {\n                m.fire(qa, \"AsyncRequest/send\", {\n                    request: wa\n                });\n            };\n            wa.send();\n            return false;\n        },\n        post: function(pa, qa) {\n            new na(pa).setReadOnly(false).setMethod(\"POST\").setData(qa).send();\n            return false;\n        },\n        getLastID: function() {\n            return la;\n        },\n        suppressOnloadToken: {\n        },\n        _inflight: [],\n        _inflightCount: 0,\n        _inflightAdd: y,\n        _inflightPurge: y,\n        getInflightCount: function() {\n            return this._inflightCount;\n        },\n        _inflightEnable: function() {\n            if (t.ie()) {\n                x(na, {\n                    _inflightAdd: function(pa) {\n                        this._inflight.push(pa);\n                    },\n                    _inflightPurge: function() {\n                        na._inflight = na._inflight.filter(function(pa) {\n                            return (pa.transport && (pa.transport.readyState < 4));\n                        });\n                    }\n                });\n                q.onUnload(function() {\n                    na._inflight.forEach(function(pa) {\n                        if ((pa.transport && (pa.transport.readyState < 4))) {\n                            pa.transport.abort();\n                            delete pa.transport;\n                        }\n                    ;\n                    });\n                });\n            }\n        ;\n        }\n    });\n    x(na.prototype, {\n        _dispatchResponse: function(pa) {\n            this.clearStatusIndicator();\n            if (!this._isRelevant()) {\n                this._invokeErrorHandler(1010);\n                return;\n            }\n        ;\n            if ((this.initialHandler(pa) === false)) {\n                return\n            };\n            clearTimeout(this.timer);\n            if (pa.jscc_map) {\n                var qa = (eval)(pa.jscc_map);\n                o.init(qa);\n            }\n        ;\n            var ra;\n            if (this.handler) {\n                try {\n                    ra = this._shouldSuppressJS(this.handler(pa));\n                } catch (sa) {\n                    (pa.is_last && this.finallyHandler(pa));\n                    throw sa;\n                }\n            };\n            if (!ra) {\n                this._handleJSResponse(pa);\n            };\n            (pa.is_last && this.finallyHandler(pa));\n        },\n        _shouldSuppressJS: function(pa) {\n            return (pa === na.suppressOnloadToken);\n        },\n        _handleJSResponse: function(pa) {\n            var qa = this.getRelativeTo(), ra = pa.domops, sa = pa.jsmods, ta = new r().setRelativeTo(qa), ua;\n            if ((sa && sa.require)) {\n                ua = sa.require;\n                delete sa.require;\n            }\n        ;\n            if (sa) {\n                ta.handle(sa);\n            };\n            var va = function(wa) {\n                if ((ra && wa)) {\n                    wa.invoke(ra, qa);\n                };\n                if (ua) {\n                    ta.handle({\n                        require: ua\n                    });\n                };\n                this._handleJSRegisters(pa, \"onload\");\n                if (this.lid) {\n                    g.inform(\"tti_ajax\", {\n                        s: this.lid,\n                        d: [(this._sendTimeStamp || 0),(((this._sendTimeStamp && this._responseTime)) ? ((this._responseTime - this._sendTimeStamp)) : 0),]\n                    }, g.BEHAVIOR_EVENT);\n                };\n                this._handleJSRegisters(pa, \"onafterload\");\n                ta.cleanup();\n            }.bind(this);\n            if (ra) {\n                i.loadModules([\"AsyncDOM\",], va);\n            }\n             else va(null);\n        ;\n        },\n        _handleJSRegisters: function(pa, qa) {\n            var ra = pa[qa];\n            if (ra) {\n                for (var sa = 0; (sa < ra.length); sa++) {\n                    l.applyWithGuard(new Function(ra[sa]), this);;\n                }\n            };\n        },\n        invokeResponseHandler: function(pa) {\n            if ((typeof (pa.redirect) !== \"undefined\")) {\n                (function() {\n                    this.setURI(pa.redirect).send();\n                }).bind(this).defer();\n                return;\n            }\n        ;\n            if (((!this.handler && !this.errorHandler) && !this.transportErrorHandler)) {\n                return\n            };\n            var qa = pa.asyncResponse;\n            if ((typeof (qa) !== \"undefined\")) {\n                if (!this._isRelevant()) {\n                    this._invokeErrorHandler(1010);\n                    return;\n                }\n            ;\n                if (qa.inlinejs) {\n                    z(qa.inlinejs);\n                };\n                if (qa.lid) {\n                    this._responseTime = Date.now();\n                    if (a.CavalryLogger) {\n                        this.cavalry = a.CavalryLogger.getInstance(qa.lid);\n                    };\n                    this.lid = qa.lid;\n                }\n            ;\n                if (qa.resource_map) {\n                    i.setResourceMap(qa.resource_map);\n                };\n                if (qa.bootloadable) {\n                    i.enableBootload(qa.bootloadable);\n                };\n                da.add(qa.ixData);\n                var ra, sa;\n                if ((qa.getError() && !qa.getErrorIsWarning())) {\n                    var ta = this.errorHandler.bind(this);\n                    ra = l.guard(this._dispatchErrorResponse);\n                    ra = ra.bind(this, qa, ta);\n                    sa = \"error\";\n                }\n                 else {\n                    ra = l.guard(this._dispatchResponse);\n                    ra = ra.bind(this, qa);\n                    sa = \"response\";\n                }\n            ;\n                ra = fa(ra, function() {\n                    g.inform((\"AsyncRequest/\" + sa), {\n                        request: this,\n                        response: qa\n                    });\n                }.bind(this));\n                ra = ra.defer.bind(ra);\n                var ua = false;\n                if (this.preBootloadHandler) {\n                    ua = this.preBootloadHandler(qa);\n                };\n                qa.css = (qa.css || []);\n                qa.js = (qa.js || []);\n                i.loadResources(qa.css.concat(qa.js), ra, ua, this.getURI());\n            }\n             else if ((typeof (pa.transportError) !== \"undefined\")) {\n                if (this._xFbServer) {\n                    this._invokeErrorHandler(1008);\n                }\n                 else this._invokeErrorHandler(1012);\n            ;\n            }\n             else this._invokeErrorHandler(1007);\n            \n        ;\n        },\n        _invokeErrorHandler: function(pa) {\n            var qa;\n            if ((this.responseText === \"\")) {\n                qa = 1002;\n            }\n             else if (this._requestAborted) {\n                qa = 1011;\n            }\n             else {\n                try {\n                    qa = ((pa || this.transport.status) || 1004);\n                } catch (ra) {\n                    qa = 1005;\n                };\n                if ((false === navigator.onLine)) {\n                    qa = 1006;\n                };\n            }\n            \n        ;\n            var sa, ta, ua = true;\n            if ((qa === 1006)) {\n                ta = \"No Network Connection\";\n                sa = \"Your browser appears to be offline. Please check your internet connection and try again.\";\n            }\n             else if (((qa >= 300) && (qa <= 399))) {\n                ta = \"Redirection\";\n                sa = \"Your access to Facebook was redirected or blocked by a third party at this time, please contact your ISP or reload. \";\n                var va = this.transport.getResponseHeader(\"Location\");\n                if (va) {\n                    ba(va, true);\n                };\n                ua = true;\n            }\n             else {\n                ta = \"Oops\";\n                sa = \"Something went wrong. We're working on getting this fixed as soon as we can. You may be able to try again.\";\n            }\n            \n        ;\n            var wa = new h(this);\n            x(wa, {\n                error: qa,\n                errorSummary: ta,\n                errorDescription: sa,\n                silentError: ua\n            });\n            (function() {\n                g.inform(\"AsyncRequest/error\", {\n                    request: this,\n                    response: wa\n                });\n            }).bind(this).defer();\n            if ((ga() && !this.getOption(\"handleErrorAfterUnload\"))) {\n                return\n            };\n            if (!this.transportErrorHandler) {\n                return\n            };\n            var xa = this.transportErrorHandler.bind(this);\n            !this.getOption(\"suppressErrorAlerts\");\n            l.applyWithGuard(this._dispatchErrorResponse, this, [wa,xa,]);\n        },\n        _dispatchErrorResponse: function(pa, qa) {\n            var ra = pa.getError();\n            this.clearStatusIndicator();\n            var sa = (this._sendTimeStamp && {\n                duration: (Date.now() - this._sendTimeStamp),\n                xfb_ip: (this._xFbServer || \"-\")\n            });\n            pa.logError(\"async_error\", sa);\n            if ((!this._isRelevant() || (ra === 1010))) {\n                this.abort();\n                return;\n            }\n        ;\n            if (((((ra == 1357008) || (ra == 1357007)) || (ra == 1442002)) || (ra == 1357001))) {\n                var ta = ((ra == 1357008) || (ra == 1357007));\n                this.interceptHandler(pa);\n                this._displayServerDialog(pa, ta);\n            }\n             else if ((this.initialHandler(pa) !== false)) {\n                clearTimeout(this.timer);\n                try {\n                    qa(pa);\n                } catch (ua) {\n                    this.finallyHandler(pa);\n                    throw ua;\n                };\n                this.finallyHandler(pa);\n            }\n            \n        ;\n        },\n        _displayServerDialog: function(pa, qa) {\n            var ra = pa.getPayload();\n            if ((ra.__dialog !== undefined)) {\n                this._displayServerLegacyDialog(pa, qa);\n                return;\n            }\n        ;\n            var sa = ra.__dialogx;\n            new r().handle(sa);\n            i.loadModules([\"ConfirmationDialog\",], function(ta) {\n                ta.setupConfirmation(pa, this);\n            }.bind(this));\n        },\n        _displayServerLegacyDialog: function(pa, qa) {\n            var ra = pa.getPayload().__dialog;\n            i.loadModules([\"Dialog\",], function(sa) {\n                var ta = new sa(ra);\n                if (qa) {\n                    ta.setHandler(this._displayConfirmationHandler.bind(this, ta));\n                };\n                ta.setCancelHandler(function() {\n                    var ua = this.getServerDialogCancelHandler();\n                    try {\n                        (ua && ua(pa));\n                    } catch (va) {\n                        throw va;\n                    } finally {\n                        this.finallyHandler(pa);\n                    };\n                }.bind(this)).setCausalElement(this.relativeTo).show();\n            }.bind(this));\n        },\n        _displayConfirmationHandler: function(pa) {\n            this.data.confirmed = 1;\n            x(this.data, pa.getFormData());\n            this.send();\n        },\n        setJSONPTransport: function(pa) {\n            pa.subscribe(\"response\", this._handleJSONPResponse.bind(this));\n            pa.subscribe(\"abort\", this._handleJSONPAbort.bind(this));\n            this.transport = pa;\n        },\n        _handleJSONPResponse: function(pa, qa) {\n            this.is_first = ((this.is_first === undefined));\n            var ra = this._interpretResponse(qa);\n            ra.asyncResponse.is_first = this.is_first;\n            ra.asyncResponse.is_last = this.transport.hasFinished();\n            this.invokeResponseHandler(ra);\n            if (this.transport.hasFinished()) {\n                delete this.transport;\n            };\n        },\n        _handleJSONPAbort: function() {\n            this._invokeErrorHandler();\n            delete this.transport;\n        },\n        _handleXHRResponse: function(pa) {\n            var qa;\n            if (this.getOption(\"suppressEvaluation\")) {\n                qa = {\n                    asyncResponse: new h(this, pa)\n                };\n            }\n             else {\n                var ra = pa.responseText, sa = null;\n                try {\n                    var ua = this._unshieldResponseText(ra);\n                    try {\n                        var va = (eval)(((\"(\" + ua) + \")\"));\n                        qa = this._interpretResponse(va);\n                    } catch (ta) {\n                        sa = \"excep\";\n                        qa = {\n                            transportError: (\"eval() failed on async to \" + this.getURI())\n                        };\n                    };\n                } catch (ta) {\n                    sa = \"empty\";\n                    qa = {\n                        transportError: ta.message\n                    };\n                };\n                if (sa) {\n                    var wa = a.ErrorSignal;\n                    (wa && wa.sendErrorSignal(\"async_xport_resp\", [(((this._xFbServer ? \"1008_\" : \"1012_\")) + sa),(this._xFbServer || \"-\"),this.getURI(),ra.length,ra.substr(0, 1600),].join(\":\")));\n                }\n            ;\n            }\n        ;\n            this.invokeResponseHandler(qa);\n        },\n        _unshieldResponseText: function(pa) {\n            var qa = \"for (;;);\", ra = qa.length;\n            if ((pa.length <= ra)) {\n                throw new Error((\"Response too short on async to \" + this.getURI()))\n            };\n            var sa = 0;\n            while (((pa.charAt(sa) == \" \") || (pa.charAt(sa) == \"\\u000a\"))) {\n                sa++;;\n            };\n            (sa && (pa.substring(sa, (sa + ra)) == qa));\n            return pa.substring((sa + ra));\n        },\n        _interpretResponse: function(pa) {\n            if (pa.redirect) {\n                return {\n                    redirect: pa.redirect\n                }\n            };\n            var qa = new h(this);\n            if ((pa.__ar != 1)) {\n                qa.payload = pa;\n            }\n             else x(qa, pa);\n        ;\n            return {\n                asyncResponse: qa\n            };\n        },\n        _onStateChange: function() {\n            try {\n                if ((this.transport.readyState == 4)) {\n                    na._inflightCount--;\n                    na._inflightPurge();\n                    try {\n                        if (((typeof (this.transport.getResponseHeader) !== \"undefined\") && this.transport.getResponseHeader(\"X-FB-Debug\"))) {\n                            this._xFbServer = this.transport.getResponseHeader(\"X-FB-Debug\");\n                        };\n                    } catch (qa) {\n                    \n                    };\n                    if (((this.transport.status >= 200) && (this.transport.status < 300))) {\n                        na.lastSuccessTime = Date.now();\n                        this._handleXHRResponse(this.transport);\n                    }\n                     else if ((t.webkit() && ((typeof (this.transport.status) == \"undefined\")))) {\n                        this._invokeErrorHandler(1002);\n                    }\n                     else if (((k.retry_ajax_on_network_error && ja(this.transport)) && (this.remainingRetries > 0))) {\n                        this.remainingRetries--;\n                        delete this.transport;\n                        this.send(true);\n                        return;\n                    }\n                     else this._invokeErrorHandler();\n                    \n                    \n                ;\n                    if ((this.getOption(\"asynchronous\") !== false)) {\n                        delete this.transport;\n                    };\n                }\n            ;\n            } catch (pa) {\n                if (ga()) {\n                    return\n                };\n                delete this.transport;\n                if ((this.remainingRetries > 0)) {\n                    this.remainingRetries--;\n                    this.send(true);\n                }\n                 else {\n                    !this.getOption(\"suppressErrorAlerts\");\n                    var ra = a.ErrorSignal;\n                    (ra && ra.sendErrorSignal(\"async_xport_resp\", [1007,(this._xFbServer || \"-\"),this.getURI(),pa.message,].join(\":\")));\n                    this._invokeErrorHandler(1007);\n                }\n            ;\n            };\n        },\n        _isMultiplexable: function() {\n            if ((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\"))) {\n                return false\n            };\n            if (!this.uri.isFacebookURI()) {\n                return false\n            };\n            if (!this.getOption(\"asynchronous\")) {\n                return false\n            };\n            return true;\n        },\n        handleResponse: function(pa) {\n            var qa = this._interpretResponse(pa);\n            this.invokeResponseHandler(qa);\n        },\n        setMethod: function(pa) {\n            this.method = pa.toString().toUpperCase();\n            return this;\n        },\n        getMethod: function() {\n            return this.method;\n        },\n        setData: function(pa) {\n            this.data = pa;\n            return this;\n        },\n        _setDataHash: function() {\n            if (((this.method != \"POST\") || this.data.phstamp)) {\n                return\n            };\n            if ((typeof this.data.fb_dtsg !== \"string\")) {\n                return\n            };\n            var pa = s.implodeQuery(this.data).length, qa = \"\";\n            for (var ra = 0; (ra < this.data.fb_dtsg.length); ra++) {\n                qa += this.data.fb_dtsg.charCodeAt(ra);;\n            };\n            this.data.phstamp = ((\"1\" + qa) + pa);\n        },\n        setRawData: function(pa) {\n            this.rawData = pa;\n            return this;\n        },\n        getData: function() {\n            return this.data;\n        },\n        setContextData: function(pa, qa, ra) {\n            ra = ((ra === undefined) ? true : ra);\n            if (ra) {\n                this.context[(\"_log_\" + pa)] = qa;\n            };\n            return this;\n        },\n        _setUserActionID: function() {\n            var pa = ((a.ArbiterMonitor && a.ArbiterMonitor.getUE()) || \"-\");\n            this.userActionID = (((((a.EagleEye && a.EagleEye.getSessionID()) || \"-\")) + \"/\") + pa);\n        },\n        setURI: function(pa) {\n            var qa = s(pa);\n            if ((this.getOption(\"useIframeTransport\") && !qa.isFacebookURI())) {\n                return this\n            };\n            if ((((!this._allowCrossOrigin && !this.getOption(\"jsonp\")) && !this.getOption(\"useIframeTransport\")) && !qa.isSameOrigin())) {\n                return this\n            };\n            this._setUserActionID();\n            if ((!pa || qa.isEmpty())) {\n                var ra = a.ErrorSignal, sa = a.getErrorStack;\n                if ((ra && sa)) {\n                    var ta = {\n                        err_code: 1013,\n                        vip: \"-\",\n                        duration: 0,\n                        xfb_ip: \"-\",\n                        path: window.location.href,\n                        aid: this.userActionID\n                    };\n                    ra.sendErrorSignal(\"async_error\", JSON.stringify(ta));\n                    ra.sendErrorSignal(\"async_xport_stack\", [1013,window.location.href,null,sa(),].join(\":\"));\n                }\n            ;\n                return this;\n            }\n        ;\n            this.uri = qa;\n            return this;\n        },\n        getURI: function() {\n            return this.uri.toString();\n        },\n        setInitialHandler: function(pa) {\n            this.initialHandler = pa;\n            return this;\n        },\n        setHandler: function(pa) {\n            if (ka(pa)) {\n                this.handler = pa;\n            };\n            return this;\n        },\n        getHandler: function() {\n            return this.handler;\n        },\n        setUploadProgressHandler: function(pa) {\n            if (ka(pa)) {\n                this.uploadProgressHandler = pa;\n            };\n            return this;\n        },\n        setErrorHandler: function(pa) {\n            if (ka(pa)) {\n                this.errorHandler = pa;\n            };\n            return this;\n        },\n        setTransportErrorHandler: function(pa) {\n            this.transportErrorHandler = pa;\n            return this;\n        },\n        getErrorHandler: function() {\n            return this.errorHandler;\n        },\n        getTransportErrorHandler: function() {\n            return this.transportErrorHandler;\n        },\n        setTimeoutHandler: function(pa, qa) {\n            if (ka(qa)) {\n                this.timeout = pa;\n                this.timeoutHandler = qa;\n            }\n        ;\n            return this;\n        },\n        resetTimeout: function(pa) {\n            if (!((this.timeoutHandler === null))) {\n                if ((pa === null)) {\n                    this.timeout = null;\n                    clearTimeout(this.timer);\n                    this.timer = null;\n                }\n                 else {\n                    var qa = !this._allowCrossPageTransition;\n                    this.timeout = pa;\n                    clearTimeout(this.timer);\n                    this.timer = this._handleTimeout.bind(this).defer(this.timeout, qa);\n                }\n            \n            };\n            return this;\n        },\n        _handleTimeout: function() {\n            this.abandon();\n            this.timeoutHandler(this);\n        },\n        setNewSerial: function() {\n            this.id = ++la;\n            return this;\n        },\n        setInterceptHandler: function(pa) {\n            this.interceptHandler = pa;\n            return this;\n        },\n        setFinallyHandler: function(pa) {\n            this.finallyHandler = pa;\n            return this;\n        },\n        setAbortHandler: function(pa) {\n            this.abortHandler = pa;\n            return this;\n        },\n        getServerDialogCancelHandler: function() {\n            return this.serverDialogCancelHandler;\n        },\n        setServerDialogCancelHandler: function(pa) {\n            this.serverDialogCancelHandler = pa;\n            return this;\n        },\n        setPreBootloadHandler: function(pa) {\n            this.preBootloadHandler = pa;\n            return this;\n        },\n        setReadOnly: function(pa) {\n            if (!((typeof (pa) != \"boolean\"))) {\n                this.readOnly = pa;\n            };\n            return this;\n        },\n        setFBMLForm: function() {\n            this.writeRequiredParams = [\"fb_sig\",];\n            return this;\n        },\n        getReadOnly: function() {\n            return this.readOnly;\n        },\n        setRelativeTo: function(pa) {\n            this.relativeTo = pa;\n            return this;\n        },\n        getRelativeTo: function() {\n            return this.relativeTo;\n        },\n        setStatusClass: function(pa) {\n            this.statusClass = pa;\n            return this;\n        },\n        setStatusElement: function(pa) {\n            this.statusElement = pa;\n            return this;\n        },\n        getStatusElement: function() {\n            return aa(this.statusElement);\n        },\n        _isRelevant: function() {\n            if (this._allowCrossPageTransition) {\n                return true\n            };\n            if (!this.id) {\n                return true\n            };\n            return (this.id > ma);\n        },\n        clearStatusIndicator: function() {\n            var pa = this.getStatusElement();\n            if (pa) {\n                j.removeClass(pa, \"async_saving\");\n                j.removeClass(pa, this.statusClass);\n            }\n        ;\n        },\n        addStatusIndicator: function() {\n            var pa = this.getStatusElement();\n            if (pa) {\n                j.addClass(pa, \"async_saving\");\n                j.addClass(pa, this.statusClass);\n            }\n        ;\n        },\n        specifiesWriteRequiredParams: function() {\n            return this.writeRequiredParams.every(function(pa) {\n                this.data[pa] = ((this.data[pa] || k[pa]) || ((aa(pa) || {\n                })).value);\n                if ((this.data[pa] !== undefined)) {\n                    return true\n                };\n                return false;\n            }, this);\n        },\n        setOption: function(pa, qa) {\n            if ((typeof (this.option[pa]) != \"undefined\")) {\n                this.option[pa] = qa;\n            };\n            return this;\n        },\n        getOption: function(pa) {\n            (typeof (this.option[pa]) == \"undefined\");\n            return this.option[pa];\n        },\n        abort: function() {\n            if (this.transport) {\n                var pa = this.getTransportErrorHandler();\n                this.setOption(\"suppressErrorAlerts\", true);\n                this.setTransportErrorHandler(y);\n                this._requestAborted = true;\n                this.transport.abort();\n                this.setTransportErrorHandler(pa);\n            }\n        ;\n            this.abortHandler();\n        },\n        abandon: function() {\n            clearTimeout(this.timer);\n            this.setOption(\"suppressErrorAlerts\", true).setHandler(y).setErrorHandler(y).setTransportErrorHandler(y);\n            if (this.transport) {\n                this._requestAborted = true;\n                this.transport.abort();\n            }\n        ;\n        },\n        setNectarData: function(pa) {\n            if (pa) {\n                if ((this.data.nctr === undefined)) {\n                    this.data.nctr = {\n                    };\n                };\n                x(this.data.nctr, pa);\n            }\n        ;\n            return this;\n        },\n        setNectarModuleDataSafe: function(pa) {\n            if (this.setNectarModuleData) {\n                this.setNectarModuleData(pa);\n            };\n            return this;\n        },\n        setNectarImpressionIdSafe: function() {\n            if (this.setNectarImpressionId) {\n                this.setNectarImpressionId();\n            };\n            return this;\n        },\n        setAllowCrossPageTransition: function(pa) {\n            this._allowCrossPageTransition = !!pa;\n            if (this.timer) {\n                this.resetTimeout(this.timeout);\n            };\n            return this;\n        },\n        setAllowCrossOrigin: function(pa) {\n            this._allowCrossOrigin = pa;\n            return this;\n        },\n        send: function(pa) {\n            pa = (pa || false);\n            if (!this.uri) {\n                return false\n            };\n            (!this.errorHandler && !this.getOption(\"suppressErrorHandlerWarning\"));\n            if ((this.getOption(\"jsonp\") && (this.method != \"GET\"))) {\n                this.setMethod(\"GET\");\n            };\n            if ((this.getOption(\"useIframeTransport\") && (this.method != \"GET\"))) {\n                this.setMethod(\"GET\");\n            };\n            ((this.timeoutHandler !== null) && ((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\"))));\n            if (!this.getReadOnly()) {\n                this.specifiesWriteRequiredParams();\n                if ((this.method != \"POST\")) {\n                    return false\n                };\n            }\n        ;\n            x(this.data, u.getAsyncParams(this.method));\n            if (!ca(this.context)) {\n                x(this.data, this.context);\n                this.data.ajax_log = 1;\n            }\n        ;\n            if (k.force_param) {\n                x(this.data, k.force_param);\n            };\n            this._setUserActionID();\n            if ((this.getOption(\"bundle\") && this._isMultiplexable())) {\n                oa.schedule(this);\n                return true;\n            }\n        ;\n            this.setNewSerial();\n            if (!this.getOption(\"asynchronous\")) {\n                this.uri.addQueryData({\n                    __s: 1\n                });\n            };\n            this.finallyHandler = v(this.finallyHandler, \"final\");\n            var qa, ra;\n            if (((this.method == \"GET\") || this.rawData)) {\n                qa = this.uri.addQueryData(this.data).toString();\n                ra = (this.rawData || \"\");\n            }\n             else {\n                qa = this.uri.toString();\n                this._setDataHash();\n                ra = s.implodeQuery(this.data);\n            }\n        ;\n            if (this.transport) {\n                return false\n            };\n            if ((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\"))) {\n                d([\"JSONPTransport\",], function(va) {\n                    var wa = new va((this.getOption(\"jsonp\") ? \"jsonp\" : \"iframe\"), this.uri);\n                    this.setJSONPTransport(wa);\n                    wa.send();\n                }.bind(this));\n                return true;\n            }\n        ;\n            var sa = u.create();\n            if (!sa) {\n                return false\n            };\n            sa.onreadystatechange = v(this._onStateChange.bind(this), \"xhr\");\n            if ((this.uploadProgressHandler && ha(sa))) {\n                sa.upload.onprogress = this.uploadProgressHandler.bind(this);\n            };\n            if (!pa) {\n                this.remainingRetries = this.getOption(\"retries\");\n            };\n            if ((a.ErrorSignal || a.ArbiterMonitor)) {\n                this._sendTimeStamp = (this._sendTimeStamp || Date.now());\n            };\n            this.transport = sa;\n            try {\n                this.transport.open(this.method, qa, this.getOption(\"asynchronous\"));\n            } catch (ta) {\n                return false;\n            };\n            var ua = k.svn_rev;\n            if (ua) {\n                this.transport.setRequestHeader(\"X-SVN-Rev\", String(ua));\n            };\n            if (((!this.uri.isSameOrigin() && !this.getOption(\"jsonp\")) && !this.getOption(\"useIframeTransport\"))) {\n                if (!ia(this.transport)) {\n                    return false\n                };\n                if (this.uri.isFacebookURI()) {\n                    this.transport.withCredentials = true;\n                };\n            }\n        ;\n            if (((this.method == \"POST\") && !this.rawData)) {\n                this.transport.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n            };\n            g.inform(\"AsyncRequest/send\", {\n                request: this\n            });\n            this.addStatusIndicator();\n            this.transport.send(ra);\n            if ((this.timeout !== null)) {\n                this.resetTimeout(this.timeout);\n            };\n            na._inflightCount++;\n            na._inflightAdd(this);\n            return true;\n        }\n    });\n    function oa() {\n        this._requests = [];\n    };\n    x(oa, {\n        multiplex: null,\n        schedule: function(pa) {\n            if (!oa.multiplex) {\n                oa.multiplex = new oa();\n                (function() {\n                    oa.multiplex.send();\n                    oa.multiplex = null;\n                }).defer();\n            }\n        ;\n            oa.multiplex.add(pa);\n        }\n    });\n    x(oa.prototype, {\n        add: function(pa) {\n            this._requests.push(pa);\n        },\n        send: function() {\n            var pa = this._requests;\n            if (!pa.length) {\n                return\n            };\n            var qa;\n            if ((pa.length === 1)) {\n                qa = pa[0];\n            }\n             else {\n                var ra = pa.map(function(sa) {\n                    return [sa.uri.getPath(),s.implodeQuery(sa.data),];\n                });\n                qa = new na(\"/ajax/proxy.php\").setAllowCrossPageTransition(true).setData({\n                    data: ra\n                }).setHandler(this._handler.bind(this)).setTransportErrorHandler(this._transportErrorHandler.bind(this));\n            }\n        ;\n            qa.setOption(\"bundle\", false).send();\n        },\n        _handler: function(pa) {\n            var qa = pa.getPayload().responses;\n            if ((qa.length !== this._requests.length)) {\n                return\n            };\n            for (var ra = 0; (ra < this._requests.length); ra++) {\n                var sa = this._requests[ra], ta = sa.uri.getPath();\n                sa.id = this.id;\n                if ((qa[ra][0] !== ta)) {\n                    sa.invokeResponseHandler({\n                        transportError: (\"Wrong response order in bundled request to \" + ta)\n                    });\n                    continue;\n                }\n            ;\n                sa.handleResponse(qa[ra][1]);\n            };\n        },\n        _transportErrorHandler: function(pa) {\n            var qa = {\n                transportError: pa.errorDescription\n            }, ra = this._requests.map(function(sa) {\n                sa.id = this.id;\n                sa.invokeResponseHandler(qa);\n                return sa.uri.getPath();\n            });\n        }\n    });\n    e.exports = na;\n});\n__d(\"legacy:async\", [\"AsyncRequest\",\"AsyncResponse\",], function(a, b, c, d) {\n    a.AsyncRequest = b(\"AsyncRequest\");\n    a.AsyncResponse = b(\"AsyncResponse\");\n}, 3);\n__d(\"debounce\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j, k) {\n        if ((i == null)) {\n            i = 100;\n        };\n        var l;\n        function m(n, o, p, q, r) {\n            m.reset();\n            l = setTimeout(function() {\n                h.call(j, n, o, p, q, r);\n            }, i, !k);\n        };\n        m.reset = function() {\n            clearTimeout(l);\n        };\n        return m;\n    };\n    e.exports = g;\n});\n__d(\"LitestandViewportHeight\", [\"Arbiter\",\"CSS\",\"Event\",\"cx\",\"debounce\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"Event\"), j = b(\"cx\"), k = b(\"debounce\"), l = b(\"emptyFunction\"), m, n = {\n        SMALL: \"small\",\n        NORMAL: \"normal\",\n        LARGE: \"large\",\n        getSize: function() {\n            if ((m === \"_4vcw\")) {\n                return n.SMALL\n            };\n            if ((m === \"_4vcx\")) {\n                return n.LARGE\n            };\n            return n.NORMAL;\n        },\n        init: function(o) {\n            n.init = l;\n            var p = k(function() {\n                var q = document.documentElement, r = q.clientHeight, s;\n                if ((r <= o.max_small_height)) {\n                    s = \"_4vcw\";\n                }\n                 else if ((r >= o.min_large_height)) {\n                    s = \"_4vcx\";\n                }\n            ;\n                if ((s !== m)) {\n                    (m && h.removeClass(q, m));\n                    m = s;\n                    (m && h.addClass(q, m));\n                    g.inform(\"ViewportSizeChange\");\n                }\n            ;\n            });\n            p();\n            i.listen(window, \"resize\", p);\n        }\n    };\n    e.exports = n;\n});\n__d(\"AsyncDOM\", [\"CSS\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = {\n        invoke: function(j, k) {\n            for (var l = 0; (l < j.length); ++l) {\n                var m = j[l], n = m[0], o = m[1], p = m[2], q = m[3], r = (((p && k)) || null);\n                if (o) {\n                    r = h.scry((r || document.documentElement), o)[0];\n                };\n                switch (n) {\n                  case \"eval\":\n                    (new Function(q)).apply(r);\n                    break;\n                  case \"hide\":\n                    g.hide(r);\n                    break;\n                  case \"show\":\n                    g.show(r);\n                    break;\n                  case \"setContent\":\n                    h.setContent(r, q);\n                    break;\n                  case \"appendContent\":\n                    h.appendContent(r, q);\n                    break;\n                  case \"prependContent\":\n                    h.prependContent(r, q);\n                    break;\n                  case \"insertAfter\":\n                    h.insertAfter(r, q);\n                    break;\n                  case \"insertBefore\":\n                    h.insertBefore(r, q);\n                    break;\n                  case \"remove\":\n                    h.remove(r);\n                    break;\n                  case \"replace\":\n                    h.replace(r, q);\n                    break;\n                  default:\n                \n                };\n            };\n        }\n    };\n    e.exports = i;\n});\n__d(\"Live\", [\"Arbiter\",\"AsyncDOM\",\"AsyncSignal\",\"ChannelConstants\",\"DataStore\",\"DOM\",\"ServerJS\",\"createArrayFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncDOM\"), i = b(\"AsyncSignal\"), j = b(\"ChannelConstants\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"ServerJS\"), n = b(\"createArrayFrom\"), o = b(\"emptyFunction\");\n    function p(r, s) {\n        s = JSON.parse(JSON.stringify(s));\n        new m().setRelativeTo(r).handle(s);\n    };\n    var q = {\n        logAll: false,\n        startup: function() {\n            q.startup = o;\n            g.subscribe(j.getArbiterType(\"live\"), q.handleMessage.bind(q));\n        },\n        lookupLiveNode: function(r, s) {\n            var t = l.scry(document.body, (((\".live_\" + r) + \"_\") + s));\n            t.forEach(function(u) {\n                if ((k.get(u, \"seqnum\") === undefined)) {\n                    var v = JSON.parse(u.getAttribute(\"data-live\"));\n                    k.set(u, \"seqnum\", v.seq);\n                }\n            ;\n            });\n            return t;\n        },\n        handleMessage: function(r, s) {\n            var t = s.obj, u = t.fbid, v = t.assoc, w = this.lookupLiveNode(u, v);\n            if (!w) {\n                return false\n            };\n            w.forEach(function(x) {\n                if (t.expseq) {\n                    var y = k.get(x, \"seqnum\"), z = k.get(x, \"message_buffer\");\n                    if ((z === undefined)) {\n                        z = {\n                        };\n                        k.set(x, \"message_buffer\", z);\n                    }\n                ;\n                    var aa = {\n                        obj: t\n                    };\n                    z[t.expseq] = aa;\n                    if ((t.expseq != y)) {\n                        q.log(\"mismatch\", t.fbid, t.expseq, y);\n                        return false;\n                    }\n                ;\n                    while (true) {\n                        y = k.get(x, \"seqnum\");\n                        var ba = z[y];\n                        if (ba) {\n                            h.invoke(ba.obj.updates, x);\n                            if (ba.obj.js) {\n                                p(x, ba.obj.js);\n                            };\n                            q.log(\"seqmatch\", t.fbid, \"exp\", t.expseq, \"cur\", y);\n                            delete z[y];\n                        }\n                         else break;\n                    ;\n                    };\n                }\n                 else {\n                    h.invoke(t.updates, x);\n                    if (t.js) {\n                        p(x, t.js);\n                    };\n                }\n            ;\n            });\n        },\n        log: function() {\n            if (q.logAll) {\n                var r = n(arguments).join(\":\");\n                new i(\"/common/scribe_endpoint.php\", {\n                    c: \"live_sequence\",\n                    m: r\n                }).send();\n            }\n        ;\n        }\n    };\n    e.exports = q;\n});\n__d(\"legacy:live-js\", [\"Live\",], function(a, b, c, d) {\n    a.Live = b(\"Live\");\n}, 3);\n__d(\"fbt\", [\"copyProperties\",\"substituteTokens\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"substituteTokens\"), i = function() {\n    \n    };\n    i._ = function(j, k) {\n        var l = {\n        };\n        for (var m = 0; (m < k.length); m++) {\n            g(l, k[m][1]);;\n        };\n        return h(j, l);\n    };\n    i.param = function(j, k) {\n        var l = {\n        };\n        l[j] = k;\n        return [null,l,];\n    };\n    e.exports = i;\n});\n__d(\"LiveTimer\", [\"CSS\",\"DOM\",\"UserAgent\",\"emptyFunction\",\"fbt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"UserAgent\"), j = b(\"emptyFunction\"), k = b(\"fbt\"), l = b(\"tx\"), m = 1000, n = 60, o = 3600, p = 43200, q = 60, r = 20000, s = {\n        restart: function(t) {\n            this.serverTime = t;\n            this.localStartTime = (Date.now() / 1000);\n            this.updateTimeStamps();\n        },\n        getApproximateServerTime: function() {\n            return (this.getServerTimeOffset() + Date.now());\n        },\n        getServerTimeOffset: function() {\n            return (((this.serverTime - this.localStartTime)) * m);\n        },\n        updateTimeStamps: function() {\n            s.timestamps = h.scry(document.body, \"abbr.livetimestamp\");\n            s.startLoop(r);\n        },\n        addTimeStamps: function(t) {\n            if (!t) {\n                return\n            };\n            s.timestamps = (s.timestamps || []);\n            if ((h.isNodeOfType(t, \"abbr\") && g.hasClass(t, \"livetimestamp\"))) {\n                s.timestamps.push(t);\n            }\n             else {\n                var u = h.scry(t, \"abbr.livetimestamp\");\n                for (var v = 0; (v < u.length); ++v) {\n                    s.timestamps.push(u[v]);;\n                };\n            }\n        ;\n            s.startLoop(0);\n        },\n        startLoop: function(t) {\n            this.stop();\n            this.timeout = setTimeout(function() {\n                s.loop();\n            }, t);\n        },\n        stop: function() {\n            clearTimeout(this.timeout);\n        },\n        updateNode: function(t, u) {\n            s.updateNode = ((i.ie() < 7) ? j : h.setContent);\n            s.updateNode(t, u);\n        },\n        loop: function(t) {\n            if (t) {\n                s.updateTimeStamps();\n            };\n            var u = Math.floor((s.getApproximateServerTime() / m)), v = -1;\n            (s.timestamps && s.timestamps.forEach(function(x) {\n                var y = x.getAttribute(\"data-utime\"), z = x.getAttribute(\"data-shorten\"), aa = s.renderRelativeTime(u, y, z);\n                if (aa.text) {\n                    s.updateNode(x, aa.text);\n                };\n                if (((aa.next != -1) && (((aa.next < v) || (v == -1))))) {\n                    v = aa.next;\n                };\n            }));\n            if ((v != -1)) {\n                var w = Math.max(r, (v * m));\n                s.timeout = setTimeout(function() {\n                    s.loop();\n                }, w);\n            }\n        ;\n        },\n        renderRelativeTime: function(t, u, v) {\n            var w = {\n                text: \"\",\n                next: -1\n            };\n            if (((t - u) > (p))) {\n                return w\n            };\n            var x = (t - u), y = Math.floor((x / n)), z = Math.floor((y / q));\n            if ((y < 1)) {\n                if (v) {\n                    x = ((x > 1) ? x : 2);\n                    w.text = k._(\"{number} secs\", [k.param(\"number\", x),]);\n                    w.next = (20 - (x % 20));\n                }\n                 else {\n                    w.text = \"a few seconds ago\";\n                    w.next = (n - (x % n));\n                }\n            ;\n                return w;\n            }\n        ;\n            if ((z < 1)) {\n                if ((v && (y == 1))) {\n                    w.text = \"1 min\";\n                }\n                 else if (v) {\n                    w.text = k._(\"{number} mins\", [k.param(\"number\", y),]);\n                }\n                 else w.text = ((y == 1) ? \"about a minute ago\" : l._(\"{number} minutes ago\", {\n                    number: y\n                }));\n                \n            ;\n                w.next = (n - (x % n));\n                return w;\n            }\n        ;\n            if ((z < 11)) {\n                w.next = (o - (x % o));\n            };\n            if ((v && (z == 1))) {\n                w.text = \"1 hr\";\n            }\n             else if (v) {\n                w.text = k._(\"{number} hrs\", [k.param(\"number\", z),]);\n            }\n             else w.text = ((z == 1) ? \"about an hour ago\" : l._(\"{number} hours ago\", {\n                number: z\n            }));\n            \n        ;\n            return w;\n        },\n        renderRelativeTimeToServer: function(t) {\n            return s.renderRelativeTime(Math.floor((s.getApproximateServerTime() / m)), t);\n        }\n    };\n    e.exports = s;\n});\n__d(\"legacy:live-timer\", [\"LiveTimer\",], function(a, b, c, d) {\n    a.LiveTimer = b(\"LiveTimer\");\n}, 3);\n__d(\"JSLogger\", [], function(a, b, c, d, e, f) {\n    var g = {\n        MAX_HISTORY: 500,\n        counts: {\n        },\n        categories: {\n        },\n        seq: 0,\n        pageId: (((Math.random() * 2147483648) | 0)).toString(36),\n        forwarding: false\n    };\n    function h(l) {\n        if (((l instanceof Error) && a.ErrorUtils)) {\n            l = a.ErrorUtils.normalizeError(l);\n        };\n        try {\n            return JSON.stringify(l);\n        } catch (m) {\n            return \"{}\";\n        };\n    };\n    function i(l, event, m) {\n        if (!g.counts[l]) {\n            g.counts[l] = {\n            };\n        };\n        if (!g.counts[l][event]) {\n            g.counts[l][event] = 0;\n        };\n        m = ((m == null) ? 1 : Number(m));\n        g.counts[l][event] += (isFinite(m) ? m : 0);\n    };\n    g.logAction = function(event, l, m) {\n        if ((this.type == \"bump\")) {\n            i(this.cat, event, l);\n        }\n         else if ((this.type == \"rate\")) {\n            ((l && i(this.cat, (event + \"_n\"), m)));\n            i(this.cat, (event + \"_d\"), m);\n        }\n         else {\n            var n = {\n                cat: this.cat,\n                type: this.type,\n                event: event,\n                data: ((l != null) ? h(l) : null),\n                date: Date.now(),\n                seq: g.seq++\n            };\n            g.head = (g.head ? (g.head.next = n) : (g.tail = n));\n            while (((g.head.seq - g.tail.seq) > g.MAX_HISTORY)) {\n                g.tail = g.tail.next;;\n            };\n            return n;\n        }\n        \n    ;\n    };\n    function j(l) {\n        if (!g.categories[l]) {\n            g.categories[l] = {\n            };\n            var m = function(n) {\n                var o = {\n                    cat: l,\n                    type: n\n                };\n                g.categories[l][n] = function() {\n                    g.forwarding = false;\n                    var p = null;\n                    if ((document.domain != \"facebook.com\")) {\n                        return\n                    };\n                    p = g.logAction;\n                    if (/^\\/+(dialogs|plugins?)\\//.test(location.pathname)) {\n                        g.forwarding = false;\n                    }\n                     else try {\n                        p = a.top.require(\"JSLogger\")._.logAction;\n                        g.forwarding = (p !== g.logAction);\n                    } catch (q) {\n                    \n                    }\n                ;\n                    ((p && p.apply(o, arguments)));\n                };\n            };\n            m(\"debug\");\n            m(\"log\");\n            m(\"warn\");\n            m(\"error\");\n            m(\"bump\");\n            m(\"rate\");\n        }\n    ;\n        return g.categories[l];\n    };\n    function k(l, m) {\n        var n = [];\n        for (var o = (m || g.tail); o; o = o.next) {\n            if ((!l || l(o))) {\n                var p = {\n                    type: o.type,\n                    cat: o.cat,\n                    date: o.date,\n                    event: o.event,\n                    seq: o.seq\n                };\n                if (o.data) {\n                    p.data = JSON.parse(o.data);\n                };\n                n.push(p);\n            }\n        ;\n        };\n        return n;\n    };\n    e.exports = {\n        _: g,\n        DUMP_EVENT: \"jslogger/dump\",\n        create: j,\n        getEntries: k\n    };\n});\n__d(\"startsWith\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        var k = String(h);\n        j = Math.min(Math.max((j || 0), 0), k.length);\n        return (k.lastIndexOf(String(i), j) === j);\n    };\n    e.exports = g;\n});\n__d(\"getContextualParent\", [\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"ge\");\n    function h(i, j) {\n        var k, l = false;\n        do {\n            if ((i.getAttribute && (k = i.getAttribute(\"data-ownerid\")))) {\n                i = g(k);\n                l = true;\n            }\n             else i = i.parentNode;\n        ;\n        } while (((j && i) && !l));\n        return i;\n    };\n    e.exports = h;\n});\n__d(\"Nectar\", [\"Env\",\"startsWith\",\"getContextualParent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"startsWith\"), i = b(\"getContextualParent\");\n    function j(m) {\n        if (!m.nctr) {\n            m.nctr = {\n            };\n        };\n    };\n    function k(m) {\n        if ((g.module || !m)) {\n            return g.module\n        };\n        var n = {\n            fbpage_fan_confirm: true,\n            photos_snowlift: true\n        }, o;\n        while ((m && m.getAttributeNode)) {\n            var p = ((m.getAttributeNode(\"id\") || {\n            })).value;\n            if (h(p, \"pagelet_\")) {\n                return p\n            };\n            if ((!o && n[p])) {\n                o = p;\n            };\n            m = i(m);\n        };\n        return o;\n    };\n    var l = {\n        addModuleData: function(m, n) {\n            var o = k(n);\n            if (o) {\n                j(m);\n                m.nctr._mod = o;\n            }\n        ;\n        },\n        addImpressionID: function(m) {\n            if (g.impid) {\n                j(m);\n                m.nctr._impid = g.impid;\n            }\n        ;\n        }\n    };\n    e.exports = l;\n});\n__d(\"BrowserSupport\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = {\n    }, i = [\"Webkit\",\"Moz\",\"O\",\"ms\",], j = document.createElement(\"div\"), k = function(m) {\n        if ((h[m] === undefined)) {\n            var n = null;\n            if ((m in j.style)) {\n                n = m;\n            }\n             else for (var o = 0; (o < i.length); o++) {\n                var p = ((i[o] + m.charAt(0).toUpperCase()) + m.slice(1));\n                if ((p in j.style)) {\n                    n = p;\n                    break;\n                }\n            ;\n            }\n        ;\n            h[m] = n;\n        }\n    ;\n        return h[m];\n    }, l = {\n        hasCSSAnimations: function() {\n            return !!k(\"animationName\");\n        },\n        hasCSSTransforms: function() {\n            return !!k(\"transform\");\n        },\n        hasCSS3DTransforms: function() {\n            return !!k(\"perspective\");\n        },\n        hasCSSTransitions: function() {\n            return !!k(\"transition\");\n        },\n        hasPositionSticky: function() {\n            if ((h.sticky === undefined)) {\n                j.style.cssText = (\"position:-webkit-sticky;position:-moz-sticky;\" + \"position:-o-sticky;position:-ms-sticky;position:sticky;\");\n                h.sticky = /sticky/.test(j.style.position);\n            }\n        ;\n            return h.sticky;\n        },\n        hasPointerEvents: function() {\n            if ((h.pointerEvents === undefined)) {\n                if (!((\"pointerEvents\" in j.style))) {\n                    h.pointerEvents = false;\n                }\n                 else {\n                    j.style.pointerEvents = \"auto\";\n                    j.style.pointerEvents = \"x\";\n                    g.appendContent(document.documentElement, j);\n                    h.pointerEvents = (window.getComputedStyle && (getComputedStyle(j, \"\").pointerEvents === \"auto\"));\n                    g.remove(j);\n                }\n            \n            };\n            return h.pointerEvents;\n        },\n        getTransitionEndEvent: function() {\n            if ((h.transitionEnd === undefined)) {\n                var m = {\n                    transition: \"transitionend\",\n                    WebkitTransition: \"webkitTransitionEnd\",\n                    MozTransition: \"mozTransitionEnd\",\n                    OTransition: \"oTransitionEnd\"\n                }, n = k(\"transition\");\n                h.transitionEnd = (m[n] || null);\n            }\n        ;\n            return h.transitionEnd;\n        }\n    };\n    e.exports = l;\n});\n__d(\"hyphenate\", [], function(a, b, c, d, e, f) {\n    var g = /([A-Z])/g;\n    function h(i) {\n        return i.replace(g, \"-$1\").toLowerCase();\n    };\n    e.exports = h;\n});\n__d(\"Style\", [\"DOMQuery\",\"UserAgent\",\"$\",\"copyProperties\",\"hyphenate\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"UserAgent\"), i = b(\"$\"), j = b(\"copyProperties\"), k = b(\"hyphenate\");\n    function l(s) {\n        return s.replace(/-(.)/g, function(t, u) {\n            return u.toUpperCase();\n        });\n    };\n    function m(s, t) {\n        var u = r.get(s, t);\n        return (((u === \"auto\") || (u === \"scroll\")));\n    };\n    var n = new RegExp((((((\"\\\\s*\" + \"([^\\\\s:]+)\") + \"\\\\s*:\\\\s*\") + \"([^;('\\\"]*(?:(?:\\\\([^)]*\\\\)|\\\"[^\\\"]*\\\"|'[^']*')[^;(?:'\\\"]*)*)\") + \"(?:;|$)\")), \"g\");\n    function o(s) {\n        var t = {\n        };\n        s.replace(n, function(u, v, w) {\n            t[v] = w;\n        });\n        return t;\n    };\n    function p(s) {\n        var t = \"\";\n        for (var u in s) {\n            if (s[u]) {\n                t += (((u + \":\") + s[u]) + \";\");\n            };\n        };\n        return t;\n    };\n    function q(s) {\n        return ((s !== \"\") ? ((\"alpha(opacity=\" + (s * 100)) + \")\") : \"\");\n    };\n    var r = {\n        set: function(s, t, u) {\n            switch (t) {\n              case \"opacity\":\n                if ((t === \"opacity\")) {\n                    if ((h.ie() < 9)) {\n                        s.style.filter = q(u);\n                    }\n                     else s.style.opacity = u;\n                \n                };\n                break;\n              case \"float\":\n                s.style.cssFloat = s.style.styleFloat = (u || \"\");\n                break;\n              default:\n                try {\n                    s.style[l(t)] = u;\n                } catch (v) {\n                    throw new Error(((((\"Style.set: \\\"\" + t) + \"\\\" argument is invalid: \\\"\") + u) + \"\\\"\"));\n                };\n            };\n        },\n        apply: function(s, t) {\n            var u;\n            if (((\"opacity\" in t) && (h.ie() < 9))) {\n                var v = t.opacity;\n                t.filter = q(v);\n                delete t.opacity;\n            }\n        ;\n            var w = o(s.style.cssText);\n            for (u in t) {\n                var x = t[u];\n                delete t[u];\n                u = k(u);\n                for (var y in w) {\n                    if (((y === u) || (y.indexOf((u + \"-\")) === 0))) {\n                        delete w[y];\n                    };\n                };\n                t[u] = x;\n            };\n            t = j(w, t);\n            s.style.cssText = p(t);\n            if ((h.ie() < 9)) {\n                for (u in t) {\n                    if (!t[u]) {\n                        r.set(s, u, \"\");\n                    };\n                }\n            };\n        },\n        get: function(s, t) {\n            s = i(s);\n            var u;\n            if (window.getComputedStyle) {\n                u = window.getComputedStyle(s, null);\n                if (u) {\n                    return u.getPropertyValue(k(t))\n                };\n            }\n        ;\n            if ((document.defaultView && document.defaultView.getComputedStyle)) {\n                u = document.defaultView.getComputedStyle(s, null);\n                if (u) {\n                    return u.getPropertyValue(k(t))\n                };\n                if ((t == \"display\")) {\n                    return \"none\"\n                };\n            }\n        ;\n            t = l(t);\n            if (s.currentStyle) {\n                if ((t === \"float\")) {\n                    return (s.currentStyle.cssFloat || s.currentStyle.styleFloat)\n                };\n                return s.currentStyle[t];\n            }\n        ;\n            return (s.style && s.style[t]);\n        },\n        getFloat: function(s, t) {\n            return parseFloat(r.get(s, t), 10);\n        },\n        getOpacity: function(s) {\n            s = i(s);\n            var t = r.get(s, \"filter\"), u = null;\n            if ((t && (u = /(\\d+(?:\\.\\d+)?)/.exec(t)))) {\n                return (parseFloat(u.pop()) / 100);\n            }\n             else if (t = r.get(s, \"opacity\")) {\n                return parseFloat(t);\n            }\n             else return 1\n            \n        ;\n        },\n        isFixed: function(s) {\n            while (g.contains(document.body, s)) {\n                if ((r.get(s, \"position\") === \"fixed\")) {\n                    return true\n                };\n                s = s.parentNode;\n            };\n            return false;\n        },\n        getScrollParent: function(s) {\n            if (!s) {\n                return null\n            };\n            while ((s !== document.body)) {\n                if (((m(s, \"overflow\") || m(s, \"overflowY\")) || m(s, \"overflowX\"))) {\n                    return s\n                };\n                s = s.parentNode;\n            };\n            return window;\n        }\n    };\n    e.exports = r;\n});\n__d(\"shield\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        if ((typeof h != \"function\")) {\n            throw new TypeError()\n        };\n        var j = Array.prototype.slice.call(arguments, 2);\n        return function() {\n            return h.apply(i, j);\n        };\n    };\n    e.exports = g;\n});\n__d(\"Animation\", [\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"BrowserSupport\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"Style\"), l = b(\"shield\"), m, n = [], o;\n    function p(ga) {\n        if ((a == this)) {\n            return new p(ga);\n        }\n         else {\n            this.obj = ga;\n            this._reset_state();\n            this.queue = [];\n            this.last_attr = null;\n        }\n    ;\n    };\n    function q(ga) {\n        if (g.hasCSS3DTransforms()) {\n            return t(ga);\n        }\n         else return s(ga)\n    ;\n    };\n    function r(ga) {\n        return ga.toFixed(8);\n    };\n    function s(ga) {\n        ga = [ga[0],ga[4],ga[1],ga[5],ga[12],ga[13],];\n        return ((\"matrix(\" + ga.map(r).join(\",\")) + \")\");\n    };\n    function t(ga) {\n        return ((\"matrix3d(\" + ga.map(r).join(\",\")) + \")\");\n    };\n    function u(ga, ha) {\n        if (!ga) {\n            ga = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,];\n        };\n        var ia = [];\n        for (var ja = 0; (ja < 4); ja++) {\n            for (var ka = 0; (ka < 4); ka++) {\n                var la = 0;\n                for (var ma = 0; (ma < 4); ma++) {\n                    la += (ga[((ja * 4) + ma)] * ha[((ma * 4) + ka)]);;\n                };\n                ia[((ja * 4) + ka)] = la;\n            };\n        };\n        return ia;\n    };\n    var v = 0;\n    p.prototype._reset_state = function() {\n        this.state = {\n            attrs: {\n            },\n            duration: 500\n        };\n    };\n    p.prototype.stop = function() {\n        this._reset_state();\n        this.queue = [];\n        return this;\n    };\n    p.prototype._build_container = function() {\n        if (this.container_div) {\n            this._refresh_container();\n            return;\n        }\n    ;\n        if ((this.obj.firstChild && this.obj.firstChild.__animation_refs)) {\n            this.container_div = this.obj.firstChild;\n            this.container_div.__animation_refs++;\n            this._refresh_container();\n            return;\n        }\n    ;\n        var ga = document.createElement(\"div\");\n        ga.style.padding = \"0px\";\n        ga.style.margin = \"0px\";\n        ga.style.border = \"0px\";\n        ga.__animation_refs = 1;\n        var ha = this.obj.childNodes;\n        while (ha.length) {\n            ga.appendChild(ha[0]);;\n        };\n        this.obj.appendChild(ga);\n        this._orig_overflow = this.obj.style.overflow;\n        this.obj.style.overflow = \"hidden\";\n        this.container_div = ga;\n        this._refresh_container();\n    };\n    p.prototype._refresh_container = function() {\n        this.container_div.style.height = \"auto\";\n        this.container_div.style.width = \"auto\";\n        this.container_div.style.height = (this.container_div.offsetHeight + \"px\");\n        this.container_div.style.width = (this.container_div.offsetWidth + \"px\");\n    };\n    p.prototype._destroy_container = function() {\n        if (!this.container_div) {\n            return\n        };\n        if (!--this.container_div.__animation_refs) {\n            var ga = this.container_div.childNodes;\n            while (ga.length) {\n                this.obj.appendChild(ga[0]);;\n            };\n            this.obj.removeChild(this.container_div);\n        }\n    ;\n        this.container_div = null;\n        this.obj.style.overflow = this._orig_overflow;\n    };\n    var w = 1, x = 2, y = 3;\n    p.prototype._attr = function(ga, ha, ia) {\n        ga = ga.replace(/-[a-z]/gi, function(ka) {\n            return ka.substring(1).toUpperCase();\n        });\n        var ja = false;\n        switch (ga) {\n          case \"background\":\n            this._attr(\"backgroundColor\", ha, ia);\n            return this;\n          case \"backgroundColor\":\n        \n          case \"borderColor\":\n        \n          case \"color\":\n            ha = ca(ha);\n            break;\n          case \"opacity\":\n            ha = parseFloat(ha, 10);\n            break;\n          case \"height\":\n        \n          case \"width\":\n            if ((ha == \"auto\")) {\n                ja = true;\n            }\n             else ha = parseInt(ha, 10);\n        ;\n            break;\n          case \"borderWidth\":\n        \n          case \"lineHeight\":\n        \n          case \"fontSize\":\n        \n          case \"margin\":\n        \n          case \"marginBottom\":\n        \n          case \"marginLeft\":\n        \n          case \"marginRight\":\n        \n          case \"marginTop\":\n        \n          case \"padding\":\n        \n          case \"paddingBottom\":\n        \n          case \"paddingLeft\":\n        \n          case \"paddingRight\":\n        \n          case \"paddingTop\":\n        \n          case \"bottom\":\n        \n          case \"left\":\n        \n          case \"right\":\n        \n          case \"top\":\n        \n          case \"scrollTop\":\n        \n          case \"scrollLeft\":\n            ha = parseInt(ha, 10);\n            break;\n          case \"rotateX\":\n        \n          case \"rotateY\":\n        \n          case \"rotateZ\":\n            ha = ((parseInt(ha, 10) * Math.PI) / 180);\n            break;\n          case \"translateX\":\n        \n          case \"translateY\":\n        \n          case \"translateZ\":\n        \n          case \"scaleX\":\n        \n          case \"scaleY\":\n        \n          case \"scaleZ\":\n            ha = parseFloat(ha, 10);\n            break;\n          case \"rotate3d\":\n            this._attr(\"rotateX\", ha[0], ia);\n            this._attr(\"rotateY\", ha[1], ia);\n            this._attr(\"rotateZ\", ha[2], ia);\n            return this;\n          case \"rotate\":\n            this._attr(\"rotateZ\", ha, ia);\n            return this;\n          case \"scale3d\":\n            this._attr(\"scaleZ\", ha[2], ia);\n          case \"scale\":\n            this._attr(\"scaleX\", ha[0], ia);\n            this._attr(\"scaleY\", ha[1], ia);\n            return this;\n          case \"translate3d\":\n            this._attr(\"translateZ\", ha[2], ia);\n          case \"translate\":\n            this._attr(\"translateX\", ha[0], ia);\n            this._attr(\"translateY\", ha[1], ia);\n            return this;\n          default:\n            throw new Error((ga + \" is not a supported attribute!\"));\n        };\n        if ((this.state.attrs[ga] === undefined)) {\n            this.state.attrs[ga] = {\n            };\n        };\n        if (ja) {\n            this.state.attrs[ga].auto = true;\n        };\n        switch (ia) {\n          case y:\n            this.state.attrs[ga].start = ha;\n            break;\n          case x:\n            this.state.attrs[ga].by = true;\n          case w:\n            this.state.attrs[ga].value = ha;\n            break;\n        };\n    };\n    function z(ga) {\n        var ha = parseInt(k.get(ga, \"paddingLeft\"), 10), ia = parseInt(k.get(ga, \"paddingRight\"), 10), ja = parseInt(k.get(ga, \"borderLeftWidth\"), 10), ka = parseInt(k.get(ga, \"borderRightWidth\"), 10);\n        return ((((ga.offsetWidth - ((ha ? ha : 0))) - ((ia ? ia : 0))) - ((ja ? ja : 0))) - ((ka ? ka : 0)));\n    };\n    function aa(ga) {\n        var ha = parseInt(k.get(ga, \"paddingTop\"), 10), ia = parseInt(k.get(ga, \"paddingBottom\"), 10), ja = parseInt(k.get(ga, \"borderTopWidth\"), 10), ka = parseInt(k.get(ga, \"borderBottomWidth\"), 10);\n        return ((((ga.offsetHeight - ((ha ? ha : 0))) - ((ia ? ia : 0))) - ((ja ? ja : 0))) - ((ka ? ka : 0)));\n    };\n    p.prototype.to = function(ga, ha) {\n        if ((ha === undefined)) {\n            this._attr(this.last_attr, ga, w);\n        }\n         else {\n            this._attr(ga, ha, w);\n            this.last_attr = ga;\n        }\n    ;\n        return this;\n    };\n    p.prototype.by = function(ga, ha) {\n        if ((ha === undefined)) {\n            this._attr(this.last_attr, ga, x);\n        }\n         else {\n            this._attr(ga, ha, x);\n            this.last_attr = ga;\n        }\n    ;\n        return this;\n    };\n    p.prototype.from = function(ga, ha) {\n        if ((ha === undefined)) {\n            this._attr(this.last_attr, ga, y);\n        }\n         else {\n            this._attr(ga, ha, y);\n            this.last_attr = ga;\n        }\n    ;\n        return this;\n    };\n    p.prototype.duration = function(ga) {\n        this.state.duration = (ga ? ga : 0);\n        return this;\n    };\n    p.prototype.checkpoint = function(ga, ha) {\n        if ((ga === undefined)) {\n            ga = 1;\n        };\n        this.state.checkpoint = ga;\n        this.queue.push(this.state);\n        this._reset_state();\n        this.state.checkpointcb = ha;\n        return this;\n    };\n    p.prototype.blind = function() {\n        this.state.blind = true;\n        return this;\n    };\n    p.prototype.hide = function() {\n        this.state.hide = true;\n        return this;\n    };\n    p.prototype.show = function() {\n        this.state.show = true;\n        return this;\n    };\n    p.prototype.ease = function(ga) {\n        this.state.ease = ga;\n        return this;\n    };\n    p.prototype.go = function() {\n        var ga = Date.now();\n        this.queue.push(this.state);\n        for (var ha = 0; (ha < this.queue.length); ha++) {\n            this.queue[ha].start = (ga - v);\n            if (this.queue[ha].checkpoint) {\n                ga += (this.queue[ha].checkpoint * this.queue[ha].duration);\n            };\n        };\n        da(this);\n        return this;\n    };\n    p.prototype._show = function() {\n        h.show(this.obj);\n    };\n    p.prototype._hide = function() {\n        h.hide(this.obj);\n    };\n    p.prototype._frame = function(ga) {\n        var ha = true, ia = false, ja;\n        function ka(db) {\n            return (document.documentElement[db] || document.body[db]);\n        };\n        for (var la = 0; (la < this.queue.length); la++) {\n            var ma = this.queue[la];\n            if ((ma.start > ga)) {\n                ha = false;\n                continue;\n            }\n        ;\n            if (ma.checkpointcb) {\n                this._callback(ma.checkpointcb, (ga - ma.start));\n                ma.checkpointcb = null;\n            }\n        ;\n            if ((ma.started === undefined)) {\n                if (ma.show) {\n                    this._show();\n                };\n                for (var na in ma.attrs) {\n                    if ((ma.attrs[na].start !== undefined)) {\n                        continue;\n                    };\n                    switch (na) {\n                      case \"backgroundColor\":\n                    \n                      case \"borderColor\":\n                    \n                      case \"color\":\n                        ja = ca(k.get(this.obj, ((na == \"borderColor\") ? \"borderLeftColor\" : na)));\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value[0] = Math.min(255, Math.max(0, (ma.attrs[na].value[0] + ja[0])));\n                            ma.attrs[na].value[1] = Math.min(255, Math.max(0, (ma.attrs[na].value[1] + ja[1])));\n                            ma.attrs[na].value[2] = Math.min(255, Math.max(0, (ma.attrs[na].value[2] + ja[2])));\n                        }\n                    ;\n                        break;\n                      case \"opacity\":\n                        ja = k.getOpacity(this.obj);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value = Math.min(1, Math.max(0, (ma.attrs[na].value + ja)));\n                        };\n                        break;\n                      case \"height\":\n                        ja = aa(this.obj);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value += ja;\n                        };\n                        break;\n                      case \"width\":\n                        ja = z(this.obj);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value += ja;\n                        };\n                        break;\n                      case \"scrollLeft\":\n                    \n                      case \"scrollTop\":\n                        ja = (((this.obj === document.body)) ? ka(na) : this.obj[na]);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value += ja;\n                        };\n                        ma[(\"last\" + na)] = ja;\n                        break;\n                      case \"rotateX\":\n                    \n                      case \"rotateY\":\n                    \n                      case \"rotateZ\":\n                    \n                      case \"translateX\":\n                    \n                      case \"translateY\":\n                    \n                      case \"translateZ\":\n                        ja = i.get(this.obj, na, 0);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value += ja;\n                        };\n                        break;\n                      case \"scaleX\":\n                    \n                      case \"scaleY\":\n                    \n                      case \"scaleZ\":\n                        ja = i.get(this.obj, na, 1);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value += ja;\n                        };\n                        break;\n                      default:\n                        ja = (parseInt(k.get(this.obj, na), 10) || 0);\n                        if (ma.attrs[na].by) {\n                            ma.attrs[na].value += ja;\n                        };\n                        break;\n                    };\n                    ma.attrs[na].start = ja;\n                };\n                if ((((ma.attrs.height && ma.attrs.height.auto)) || ((ma.attrs.width && ma.attrs.width.auto)))) {\n                    this._destroy_container();\n                    for (var na in {\n                        height: 1,\n                        width: 1,\n                        fontSize: 1,\n                        borderLeftWidth: 1,\n                        borderRightWidth: 1,\n                        borderTopWidth: 1,\n                        borderBottomWidth: 1,\n                        paddingLeft: 1,\n                        paddingRight: 1,\n                        paddingTop: 1,\n                        paddingBottom: 1\n                    }) {\n                        if (ma.attrs[na]) {\n                            this.obj.style[na] = (ma.attrs[na].value + (((typeof ma.attrs[na].value == \"number\") ? \"px\" : \"\")));\n                        };\n                    };\n                    if ((ma.attrs.height && ma.attrs.height.auto)) {\n                        ma.attrs.height.value = aa(this.obj);\n                    };\n                    if ((ma.attrs.width && ma.attrs.width.auto)) {\n                        ma.attrs.width.value = z(this.obj);\n                    };\n                }\n            ;\n                ma.started = true;\n                if (ma.blind) {\n                    this._build_container();\n                };\n            }\n        ;\n            var oa = (((ga - ma.start)) / ma.duration);\n            if ((oa >= 1)) {\n                oa = 1;\n                if (ma.hide) {\n                    this._hide();\n                };\n            }\n             else ha = false;\n        ;\n            var pa = (ma.ease ? ma.ease(oa) : oa);\n            if (((!ia && (oa != 1)) && ma.blind)) {\n                ia = true;\n            };\n            for (var na in ma.attrs) {\n                switch (na) {\n                  case \"backgroundColor\":\n                \n                  case \"borderColor\":\n                \n                  case \"color\":\n                    if ((ma.attrs[na].start[3] != ma.attrs[na].value[3])) {\n                        this.obj.style[na] = ((((((((\"rgba(\" + ba(pa, ma.attrs[na].start[0], ma.attrs[na].value[0], true)) + \",\") + ba(pa, ma.attrs[na].start[1], ma.attrs[na].value[1], true)) + \",\") + ba(pa, ma.attrs[na].start[2], ma.attrs[na].value[2], true)) + \",\") + ba(pa, ma.attrs[na].start[3], ma.attrs[na].value[3], false)) + \")\");\n                    }\n                     else this.obj.style[na] = ((((((\"rgb(\" + ba(pa, ma.attrs[na].start[0], ma.attrs[na].value[0], true)) + \",\") + ba(pa, ma.attrs[na].start[1], ma.attrs[na].value[1], true)) + \",\") + ba(pa, ma.attrs[na].start[2], ma.attrs[na].value[2], true)) + \")\");\n                ;\n                    break;\n                  case \"opacity\":\n                    k.set(this.obj, \"opacity\", ba(pa, ma.attrs[na].start, ma.attrs[na].value));\n                    break;\n                  case \"height\":\n                \n                  case \"width\":\n                    this.obj.style[na] = (((pa == 1) && ma.attrs[na].auto) ? \"auto\" : (ba(pa, ma.attrs[na].start, ma.attrs[na].value, true) + \"px\"));\n                    break;\n                  case \"scrollLeft\":\n                \n                  case \"scrollTop\":\n                    var qa = (this.obj === document.body);\n                    ja = (qa ? ka(na) : this.obj[na]);\n                    if ((ma[(\"last\" + na)] !== ja)) {\n                        delete ma.attrs[na];\n                    }\n                     else {\n                        var ra = ba(pa, ma.attrs[na].start, ma.attrs[na].value, true);\n                        if (!qa) {\n                            ra = this.obj[na] = ra;\n                        }\n                         else {\n                            if ((na == \"scrollLeft\")) {\n                                a.scrollTo(ra, ka(\"scrollTop\"));\n                            }\n                             else a.scrollTo(ka(\"scrollLeft\"), ra);\n                        ;\n                            ra = ka(na);\n                        }\n                    ;\n                        ma[(\"last\" + na)] = ra;\n                    }\n                ;\n                    break;\n                  case \"translateX\":\n                \n                  case \"translateY\":\n                \n                  case \"translateZ\":\n                \n                  case \"rotateX\":\n                \n                  case \"rotateY\":\n                \n                  case \"rotateZ\":\n                \n                  case \"scaleX\":\n                \n                  case \"scaleY\":\n                \n                  case \"scaleZ\":\n                    i.set(this.obj, na, ba(pa, ma.attrs[na].start, ma.attrs[na].value, false));\n                    break;\n                  default:\n                    this.obj.style[na] = (ba(pa, ma.attrs[na].start, ma.attrs[na].value, true) + \"px\");\n                    break;\n                };\n            };\n            var sa = null, ta = i.get(this.obj, \"translateX\", 0), ua = i.get(this.obj, \"translateY\", 0), va = i.get(this.obj, \"translateZ\", 0);\n            if (((ta || ua) || va)) {\n                sa = u(sa, [1,0,0,0,0,1,0,0,0,0,1,0,ta,ua,va,1,]);\n            };\n            var wa = i.get(this.obj, \"scaleX\", 1), xa = i.get(this.obj, \"scaleY\", 1), ya = i.get(this.obj, \"scaleZ\", 1);\n            if ((((wa - 1) || (xa - 1)) || (ya - 1))) {\n                sa = u(sa, [wa,0,0,0,0,xa,0,0,0,0,ya,0,0,0,0,1,]);\n            };\n            var za = i.get(this.obj, \"rotateX\", 0);\n            if (za) {\n                sa = u(sa, [1,0,0,0,0,Math.cos(za),Math.sin(-za),0,0,Math.sin(za),Math.cos(za),0,0,0,0,1,]);\n            };\n            var ab = i.get(this.obj, \"rotateY\", 0);\n            if (ab) {\n                sa = u(sa, [Math.cos(ab),0,Math.sin(ab),0,0,1,0,0,Math.sin(-ab),0,Math.cos(ab),0,0,0,0,1,]);\n            };\n            var bb = i.get(this.obj, \"rotateZ\", 0);\n            if (bb) {\n                sa = u(sa, [Math.cos(bb),Math.sin(-bb),0,0,Math.sin(bb),Math.cos(bb),0,0,0,0,1,0,0,0,0,1,]);\n            };\n            if (sa) {\n                var cb = q(sa);\n                k.apply(this.obj, {\n                    \"-webkit-transform\": cb,\n                    \"-moz-transform\": cb,\n                    \"-ms-transform\": cb,\n                    \"-o-transform\": cb,\n                    transform: cb\n                });\n            }\n             else if (ha) {\n                k.apply(this.obj, {\n                    \"-webkit-transform\": null,\n                    \"-moz-transform\": null,\n                    \"-ms-transform\": null,\n                    \"-o-transform\": null,\n                    transform: null\n                });\n            }\n        ;\n            if ((oa == 1)) {\n                this.queue.splice(la--, 1);\n                this._callback(ma.ondone, ((ga - ma.start) - ma.duration));\n            }\n        ;\n        };\n        if ((!ia && this.container_div)) {\n            this._destroy_container();\n        };\n        return !ha;\n    };\n    p.prototype.ondone = function(ga) {\n        this.state.ondone = ga;\n        return this;\n    };\n    p.prototype._callback = function(ga, ha) {\n        if (ga) {\n            v = ha;\n            ga.call(this);\n            v = 0;\n        }\n    ;\n    };\n    function ba(ga, ha, ia, ja) {\n        return ((ja ? parseInt : parseFloat))(((((ia - ha)) * ga) + ha), 10);\n    };\n    function ca(ga) {\n        var ha = /^#([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})$/i.exec(ga);\n        if (ha) {\n            return [parseInt(((ha[1].length == 1) ? (ha[1] + ha[1]) : ha[1]), 16),parseInt(((ha[2].length == 1) ? (ha[2] + ha[2]) : ha[2]), 16),parseInt(((ha[3].length == 1) ? (ha[3] + ha[3]) : ha[3]), 16),1,];\n        }\n         else {\n            var ia = /^rgba? *\\(([0-9]+), *([0-9]+), *([0-9]+)(?:, *([0-9\\.]+))?\\)$/.exec(ga);\n            if (ia) {\n                return [parseInt(ia[1], 10),parseInt(ia[2], 10),parseInt(ia[3], 10),(ia[4] ? parseFloat(ia[4]) : 1),];\n            }\n             else if ((ga == \"transparent\")) {\n                return [255,255,255,0,];\n            }\n             else throw \"Named color attributes are not supported.\"\n            \n        ;\n        }\n    ;\n    };\n    function da(ga) {\n        n.push(ga);\n        if ((n.length === 1)) {\n            if (!m) {\n                var ha = ((a.requestAnimationFrame || a.webkitRequestAnimationFrame) || a.mozRequestAnimationFrame);\n                if (ha) {\n                    m = ha.bind(a);\n                };\n            }\n        ;\n            if (m) {\n                m(fa);\n            }\n             else o = setInterval(fa, 20, false);\n        ;\n        }\n    ;\n        if (m) {\n            ea();\n        };\n        fa(Date.now(), true);\n    };\n    function ea() {\n        if (!m) {\n            throw new Error(\"Ending timer only valid with requestAnimationFrame\")\n        };\n        var ga = 0;\n        for (var ha = 0; (ha < n.length); ha++) {\n            var ia = n[ha];\n            for (var ja = 0; (ja < ia.queue.length); ja++) {\n                var ka = (ia.queue[ja].start + ia.queue[ja].duration);\n                if ((ka > ga)) {\n                    ga = ka;\n                };\n            };\n        };\n        if (o) {\n            clearTimeout(o);\n            o = null;\n        }\n    ;\n        var la = Date.now();\n        if ((ga > la)) {\n            o = setTimeout(l(fa), (ga - la), false);\n        };\n    };\n    function fa(ga, ha) {\n        var ia = Date.now();\n        for (var ja = (((ha === true)) ? (n.length - 1) : 0); (ja < n.length); ja++) {\n            try {\n                if (!n[ja]._frame(ia)) {\n                    n.splice(ja--, 1);\n                };\n            } catch (ka) {\n                n.splice(ja--, 1);\n            };\n        };\n        if ((n.length === 0)) {\n            if (o) {\n                if (m) {\n                    clearTimeout(o);\n                }\n                 else clearInterval(o);\n            ;\n                o = null;\n            }\n        ;\n        }\n         else if (m) {\n            m(fa);\n        }\n    ;\n    };\n    p.ease = {\n    };\n    p.ease.begin = function(ga) {\n        return (Math.sin(((Math.PI / 2) * ((ga - 1)))) + 1);\n    };\n    p.ease.end = function(ga) {\n        return Math.sin(((80962 * Math.PI) * ga));\n    };\n    p.ease.both = function(ga) {\n        return ((81011 * Math.sin((Math.PI * ((ga - 81035))))) + 81040);\n    };\n    p.prependInsert = function(ga, ha) {\n        p.insert(ga, ha, j.prependContent);\n    };\n    p.appendInsert = function(ga, ha) {\n        p.insert(ga, ha, j.appendContent);\n    };\n    p.insert = function(ga, ha, ia) {\n        k.set(ha, \"opacity\", 0);\n        ia(ga, ha);\n        new p(ha).from(\"opacity\", 0).to(\"opacity\", 1).duration(400).go();\n    };\n    e.exports = p;\n});\n__d(\"BootloadedReact\", [\"Bootloader\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = function(j) {\n        g.loadModules([\"React\",], j);\n    }, i = {\n        isValidComponent: function(j) {\n            return (((j && (typeof j.mountComponentIntoNode === \"function\")) && (typeof j.receiveProps === \"function\")));\n        },\n        initializeTouchEvents: function(j, k) {\n            h(function(l) {\n                l.initializeTouchEvents(j);\n                (k && k());\n            });\n        },\n        createClass: function(j, k) {\n            h(function(l) {\n                var m = l.createClass(j);\n                (k && k(m));\n            });\n        },\n        renderComponent: function(j, k, l) {\n            h(function(m) {\n                var n = m.renderComponent(j, k);\n                (l && l(n));\n            });\n        },\n        unmountAndReleaseReactRootNode: function(j, k) {\n            h(function(l) {\n                l.unmountAndReleaseReactRootNode(j);\n                (k && k());\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"ContextualThing\", [\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"ge\"), i = {\n        register: function(j, k) {\n            j.setAttribute(\"data-ownerid\", g.getID(k));\n        },\n        containsIncludingLayers: function(j, k) {\n            while (k) {\n                if (g.contains(j, k)) {\n                    return true\n                };\n                k = i.getContext(k);\n            };\n            return false;\n        },\n        getContext: function(j) {\n            var k;\n            while (j) {\n                if ((j.getAttribute && (k = j.getAttribute(\"data-ownerid\")))) {\n                    return h(k)\n                };\n                j = j.parentNode;\n            };\n            return null;\n        }\n    };\n    e.exports = i;\n});\n__d(\"DOMControl\", [\"DataStore\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DataStore\"), h = b(\"$\"), i = b(\"copyProperties\");\n    function j(k) {\n        this.root = h(k);\n        this.updating = false;\n        g.set(k, \"DOMControl\", this);\n    };\n    i(j.prototype, {\n        getRoot: function() {\n            return this.root;\n        },\n        beginUpdate: function() {\n            if (this.updating) {\n                return false\n            };\n            this.updating = true;\n            return true;\n        },\n        endUpdate: function() {\n            this.updating = false;\n        },\n        update: function(k) {\n            if (!this.beginUpdate()) {\n                return this\n            };\n            this.onupdate(k);\n            this.endUpdate();\n        },\n        onupdate: function(k) {\n        \n        }\n    });\n    j.getInstance = function(k) {\n        return g.get(k, \"DOMControl\");\n    };\n    e.exports = j;\n});\n__d(\"DOMDimensions\", [\"DOMQuery\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"Style\"), i = {\n        getElementDimensions: function(j) {\n            return {\n                width: (j.offsetWidth || 0),\n                height: (j.offsetHeight || 0)\n            };\n        },\n        getViewportDimensions: function() {\n            var j = (((((window && window.innerWidth)) || (((document && document.documentElement) && document.documentElement.clientWidth))) || (((document && document.body) && document.body.clientWidth))) || 0), k = (((((window && window.innerHeight)) || (((document && document.documentElement) && document.documentElement.clientHeight))) || (((document && document.body) && document.body.clientHeight))) || 0);\n            return {\n                width: j,\n                height: k\n            };\n        },\n        getViewportWithoutScrollbarDimensions: function() {\n            var j = (((((document && document.documentElement) && document.documentElement.clientWidth)) || (((document && document.body) && document.body.clientWidth))) || 0), k = (((((document && document.documentElement) && document.documentElement.clientHeight)) || (((document && document.body) && document.body.clientHeight))) || 0);\n            return {\n                width: j,\n                height: k\n            };\n        },\n        getDocumentDimensions: function(j) {\n            j = (j || document);\n            var k = g.getDocumentScrollElement(j), l = (k.scrollWidth || 0), m = (k.scrollHeight || 0);\n            return {\n                width: l,\n                height: m\n            };\n        },\n        measureElementBox: function(j, k, l, m, n) {\n            var o;\n            switch (k) {\n              case \"left\":\n            \n              case \"right\":\n            \n              case \"top\":\n            \n              case \"bottom\":\n                o = [k,];\n                break;\n              case \"width\":\n                o = [\"left\",\"right\",];\n                break;\n              case \"height\":\n                o = [\"top\",\"bottom\",];\n                break;\n              default:\n                throw Error((\"Invalid plane: \" + k));\n            };\n            var p = function(q, r) {\n                var s = 0;\n                for (var t = 0; (t < o.length); t++) {\n                    s += (parseInt(h.get(j, (((q + \"-\") + o[t]) + r)), 10) || 0);;\n                };\n                return s;\n            };\n            return ((((l ? p(\"padding\", \"\") : 0)) + ((m ? p(\"border\", \"-width\") : 0))) + ((n ? p(\"margin\", \"\") : 0)));\n        }\n    };\n    e.exports = i;\n});\n__d(\"wrapFunction\", [], function(a, b, c, d, e, f) {\n    var g = {\n    };\n    function h(i, j, k) {\n        j = (j || \"default\");\n        return function() {\n            var l = ((j in g) ? g[j](i, k) : i);\n            return l.apply(this, arguments);\n        };\n    };\n    h.setWrapper = function(i, j) {\n        j = (j || \"default\");\n        g[j] = i;\n    };\n    e.exports = h;\n});\n__d(\"DOMEventListener\", [\"wrapFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"wrapFunction\"), h, i;\n    if (window.addEventListener) {\n        h = function(k, l, m) {\n            m.wrapper = g(m, \"entry\", ((k + \":\") + l));\n            k.addEventListener(l, m.wrapper, false);\n        };\n        i = function(k, l, m) {\n            k.removeEventListener(l, m.wrapper, false);\n        };\n    }\n     else if (window.attachEvent) {\n        h = function(k, l, m) {\n            m.wrapper = g(m, \"entry\", ((k + \":\") + l));\n            k.attachEvent((\"on\" + l), m.wrapper);\n        };\n        i = function(k, l, m) {\n            k.detachEvent((\"on\" + l), m.wrapper);\n        };\n    }\n    \n;\n    var j = {\n        add: function(k, l, m) {\n            h(k, l, m);\n            return {\n                remove: function() {\n                    i(k, l, m);\n                    k = null;\n                }\n            };\n        },\n        remove: i\n    };\n    e.exports = j;\n});\n__d(\"DOMPosition\", [\"DOMDimensions\",\"DOMQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMDimensions\"), h = b(\"DOMQuery\"), i = {\n        getScrollPosition: function() {\n            var j = h.getDocumentScrollElement();\n            return {\n                x: j.scrollLeft,\n                y: j.scrollTop\n            };\n        },\n        getNormalizedScrollPosition: function() {\n            var j = i.getScrollPosition(), k = g.getDocumentDimensions(), l = g.getViewportDimensions(), m = (k.height - l.height), n = (k.width - l.width);\n            return {\n                y: Math.max(0, Math.min(j.y, m)),\n                x: Math.max(0, Math.min(j.x, n))\n            };\n        },\n        getElementPosition: function(j) {\n            if (!j) {\n                return\n            };\n            var k = document.documentElement;\n            if ((!((\"getBoundingClientRect\" in j)) || !h.contains(k, j))) {\n                return {\n                    x: 0,\n                    y: 0\n                }\n            };\n            var l = j.getBoundingClientRect(), m = (Math.round(l.left) - k.clientLeft), n = (Math.round(l.top) - k.clientTop);\n            return {\n                x: m,\n                y: n\n            };\n        }\n    };\n    e.exports = i;\n});\n__d(\"isInIframe\", [], function(a, b, c, d, e, f) {\n    function g() {\n        return (window != window.top);\n    };\n    e.exports = g;\n});\n__d(\"DimensionTracking\", [\"Cookie\",\"DOMDimensions\",\"Event\",\"debounce\",\"isInIframe\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"DOMDimensions\"), i = b(\"Event\"), j = b(\"debounce\"), k = b(\"isInIframe\");\n    function l() {\n        var m = h.getViewportDimensions();\n        g.set(\"wd\", ((m.width + \"x\") + m.height));\n    };\n    if (!k()) {\n        l.defer(100);\n        i.listen(window, \"resize\", j(l, 250));\n        i.listen(window, \"focus\", l);\n    }\n;\n});\n__d(\"Focus\", [\"CSS\",\"DOM\",\"Event\",\"Run\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"Event\"), j = b(\"Run\"), k = b(\"cx\"), l = b(\"ge\"), m = {\n    }, n, o = {\n        set: function(s) {\n            try {\n                s.tabIndex = s.tabIndex;\n                s.focus();\n            } catch (t) {\n            \n            };\n        },\n        setWithoutOutline: function(s) {\n            g.addClass(s, \"_1qp5\");\n            var t = i.listen(s, \"blur\", function() {\n                g.removeClass(s, \"_1qp5\");\n                t.remove();\n            });\n            o.set(s);\n        },\n        relocate: function(s, t) {\n            p();\n            var u = h.getID(s);\n            m[u] = t;\n            g.addClass(s, \"_1qp5\");\n            j.onLeave(r.curry(u));\n        },\n        reset: function(s) {\n            var t = h.getID(s);\n            g.removeClass(s, \"_1qp5\");\n            if (m[t]) {\n                g.removeClass(m[t], \"_3oxt\");\n                delete m[t];\n            }\n        ;\n        }\n    };\n    function p() {\n        if (n) {\n            return\n        };\n        i.listen(document.documentElement, \"focusout\", q);\n        i.listen(document.documentElement, \"focusin\", q);\n        n = true;\n    };\n    function q(event) {\n        var s = event.getTarget();\n        if (!g.hasClass(s, \"_1qp5\")) {\n            return\n        };\n        if (m[s.id]) {\n            g.conditionClass(m[s.id], \"_3oxt\", ((event.type === \"focusin\") || (event.type === \"focus\")));\n        };\n    };\n    function r(s) {\n        if ((m[s] && !l(s))) {\n            delete m[s];\n        };\n    };\n    e.exports = o;\n});\n__d(\"HighContrastMode\", [\"AsyncSignal\",\"Cookie\",\"CSS\",\"DOM\",\"Env\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"Cookie\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Env\"), l = b(\"Style\"), m = null, n = {\n        init: function(o) {\n            if (((m !== null) && (o.currentState != m))) {\n                return\n            };\n            var p = j.create(\"div\");\n            j.appendContent(document.body, p);\n            p.style.cssText = (((((((\"border: 1px solid;\" + \"border-color: red green;\") + \"position: fixed;\") + \"height: 5px;\") + \"top: -999px;\") + \"background-image: url(\") + o.spacerImage) + \");\");\n            var q = l.get(p, \"background-image\"), r = l.get(p, \"border-top-color\"), s = l.get(p, \"border-right-color\"), t = ((r == s) || ((q && (((q == \"none\") || (q == \"url(invalid-url:)\"))))));\n            if ((t != o.currentState)) {\n                i.conditionClass(document.documentElement, \"highContrast\", t);\n                if (k.user) {\n                    h.set(\"highContrastMode\", (t ? 1 : 0));\n                    if (t) {\n                        new g(\"/ajax/highcontrast\").send();\n                    };\n                }\n            ;\n            }\n        ;\n            j.remove(p);\n            m = t;\n        }\n    };\n    e.exports = n;\n});\n__d(\"Input\", [\"CSS\",\"DOMQuery\",\"DOMControl\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOMQuery\"), i = b(\"DOMControl\"), j = function(l) {\n        var m = l.getAttribute(\"maxlength\");\n        if ((m && (m > 0))) {\n            d([\"enforceMaxLength\",], function(n) {\n                n(l, m);\n            });\n        };\n    }, k = {\n        isEmpty: function(l) {\n            return (!(/\\S/).test((l.value || \"\")) || g.hasClass(l, \"DOMControl_placeholder\"));\n        },\n        getValue: function(l) {\n            return (k.isEmpty(l) ? \"\" : l.value);\n        },\n        setValue: function(l, m) {\n            g.removeClass(l, \"DOMControl_placeholder\");\n            l.value = (m || \"\");\n            j(l);\n            var n = i.getInstance(l);\n            ((n && n.resetHeight) && n.resetHeight());\n        },\n        setPlaceholder: function(l, m) {\n            l.setAttribute(\"aria-label\", m);\n            l.setAttribute(\"placeholder\", m);\n            if ((l == document.activeElement)) {\n                return\n            };\n            if (k.isEmpty(l)) {\n                g.conditionClass(l, \"DOMControl_placeholder\", m);\n                l.value = (m || \"\");\n            }\n        ;\n        },\n        reset: function(l) {\n            var m = ((l !== document.activeElement) ? ((l.getAttribute(\"placeholder\") || \"\")) : \"\");\n            l.value = m;\n            g.conditionClass(l, \"DOMControl_placeholder\", m);\n            l.style.height = \"\";\n        },\n        setSubmitOnEnter: function(l, m) {\n            g.conditionClass(l, \"enter_submit\", m);\n        },\n        getSubmitOnEnter: function(l) {\n            return g.hasClass(l, \"enter_submit\");\n        },\n        setMaxLength: function(l, m) {\n            if ((m > 0)) {\n                l.setAttribute(\"maxlength\", m);\n                j(l);\n            }\n             else l.removeAttribute(\"maxlength\");\n        ;\n        }\n    };\n    e.exports = k;\n});\n__d(\"KeyEventController\", [\"DOM\",\"Event\",\"Run\",\"copyProperties\",\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Event\"), i = b(\"Run\"), j = b(\"copyProperties\"), k = b(\"isEmpty\");\n    function l() {\n        this.handlers = {\n        };\n        document.onkeyup = this.onkeyevent.bind(this, \"onkeyup\");\n        document.onkeydown = this.onkeyevent.bind(this, \"onkeydown\");\n        document.onkeypress = this.onkeyevent.bind(this, \"onkeypress\");\n    };\n    j(l, {\n        instance: null,\n        getInstance: function() {\n            return (l.instance || (l.instance = new l()));\n        },\n        defaultFilter: function(event, m) {\n            event = h.$E(event);\n            return ((l.filterEventTypes(event, m) && l.filterEventTargets(event, m)) && l.filterEventModifiers(event, m));\n        },\n        filterEventTypes: function(event, m) {\n            if ((m === \"onkeydown\")) {\n                return true\n            };\n            return false;\n        },\n        filterEventTargets: function(event, m) {\n            var n = event.getTarget(), o = (n.contentEditable === \"true\");\n            return (((!((o || g.isNodeOfType(n, l._interactiveElements))) || (n.type in l._uninterestingTypes)) || (((event.keyCode in l._controlKeys) && ((((g.isNodeOfType(n, [\"input\",\"textarea\",]) && (n.value.length === 0))) || ((o && (g.getText(n).length === 0)))))))));\n        },\n        filterEventModifiers: function(event, m) {\n            if ((((event.ctrlKey || event.altKey) || event.metaKey) || event.repeat)) {\n                return false\n            };\n            return true;\n        },\n        registerKey: function(m, n, o, p) {\n            if ((o === undefined)) {\n                o = l.defaultFilter;\n            };\n            var q = l.getInstance(), r = q.mapKey(m);\n            if (k(q.handlers)) {\n                i.onLeave(q.resetHandlers.bind(q));\n            };\n            var s = {\n            };\n            for (var t = 0; (t < r.length); t++) {\n                m = r[t];\n                if ((!q.handlers[m] || p)) {\n                    q.handlers[m] = [];\n                };\n                var u = {\n                    callback: n,\n                    filter: o\n                };\n                s[m] = u;\n                q.handlers[m].push(u);\n            };\n            return {\n                remove: function() {\n                    for (var v in s) {\n                        if ((q.handlers[v] && q.handlers[v].length)) {\n                            var w = q.handlers[v].indexOf(s[v]);\n                            ((w >= 0) && q.handlers[v].splice(w, 1));\n                        }\n                    ;\n                        delete s[v];\n                    };\n                }\n            };\n        },\n        keyCodeMap: {\n            BACKSPACE: [8,],\n            TAB: [9,],\n            RETURN: [13,],\n            ESCAPE: [27,],\n            LEFT: [37,63234,],\n            UP: [38,63232,],\n            RIGHT: [39,63235,],\n            DOWN: [40,63233,],\n            DELETE: [46,],\n            COMMA: [188,],\n            PERIOD: [190,],\n            SLASH: [191,],\n            \"`\": [192,],\n            \"[\": [219,],\n            \"]\": [221,]\n        },\n        _interactiveElements: [\"input\",\"select\",\"textarea\",\"object\",\"embed\",],\n        _uninterestingTypes: {\n            button: 1,\n            checkbox: 1,\n            radio: 1,\n            submit: 1\n        },\n        _controlKeys: {\n            8: 1,\n            9: 1,\n            13: 1,\n            27: 1,\n            37: 1,\n            63234: 1,\n            38: 1,\n            63232: 1,\n            39: 1,\n            63235: 1,\n            40: 1,\n            63233: 1,\n            46: 1\n        }\n    });\n    j(l.prototype, {\n        mapKey: function(m) {\n            if (((m >= 0) && (m <= 9))) {\n                if ((typeof (m) != \"number\")) {\n                    m = (m.charCodeAt(0) - 48);\n                };\n                return [(48 + m),(96 + m),];\n            }\n        ;\n            var n = l.keyCodeMap[m.toUpperCase()];\n            if (n) {\n                return n\n            };\n            return [m.toUpperCase().charCodeAt(0),];\n        },\n        onkeyevent: function(m, n) {\n            n = h.$E(n);\n            var o = (this.handlers[n.keyCode] || this.handlers[n.which]), p, q, r;\n            if (o) {\n                for (var s = 0; (s < o.length); s++) {\n                    p = o[s].callback;\n                    q = o[s].filter;\n                    try {\n                        if ((!q || q(n, m))) {\n                            r = p(n, m);\n                            if ((r === false)) {\n                                return h.kill(n)\n                            };\n                        }\n                    ;\n                    } catch (t) {\n                    \n                    };\n                }\n            };\n            return true;\n        },\n        resetHandlers: function() {\n            this.handlers = {\n            };\n        }\n    });\n    e.exports = l;\n});\n__d(\"KeyStatus\", [\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = null, i = null;\n    function j() {\n        if (!i) {\n            i = g.listen(window, \"blur\", function() {\n                h = null;\n                k();\n            });\n        };\n    };\n    function k() {\n        if (i) {\n            i.remove();\n            i = null;\n        }\n    ;\n    };\n    g.listen(document.documentElement, \"keydown\", function(m) {\n        h = g.getKeyCode(m);\n        j();\n    }, g.Priority.URGENT);\n    g.listen(document.documentElement, \"keyup\", function(m) {\n        h = null;\n        k();\n    }, g.Priority.URGENT);\n    var l = {\n        isKeyDown: function() {\n            return !!h;\n        },\n        getKeyDownCode: function() {\n            return h;\n        }\n    };\n    e.exports = l;\n});\n__d(\"BehaviorsMixin\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(l) {\n        this._behavior = l;\n        this._enabled = false;\n    };\n    g(h.prototype, {\n        enable: function() {\n            if (!this._enabled) {\n                this._enabled = true;\n                this._behavior.enable();\n            }\n        ;\n        },\n        disable: function() {\n            if (this._enabled) {\n                this._enabled = false;\n                this._behavior.disable();\n            }\n        ;\n        }\n    });\n    var i = 1;\n    function j(l) {\n        if (!l.__BEHAVIOR_ID) {\n            l.__BEHAVIOR_ID = i++;\n        };\n        return l.__BEHAVIOR_ID;\n    };\n    var k = {\n        enableBehavior: function(l) {\n            if (!this._behaviors) {\n                this._behaviors = {\n                };\n            };\n            var m = j(l);\n            if (!this._behaviors[m]) {\n                this._behaviors[m] = new h(new l(this));\n            };\n            this._behaviors[m].enable();\n            return this;\n        },\n        disableBehavior: function(l) {\n            if (this._behaviors) {\n                var m = j(l);\n                if (this._behaviors[m]) {\n                    this._behaviors[m].disable();\n                };\n            }\n        ;\n            return this;\n        },\n        enableBehaviors: function(l) {\n            l.forEach(this.enableBehavior.bind(this));\n            return this;\n        },\n        destroyBehaviors: function() {\n            if (this._behaviors) {\n                for (var l in this._behaviors) {\n                    this._behaviors[l].disable();;\n                };\n                this._behaviors = {\n                };\n            }\n        ;\n        }\n    };\n    e.exports = k;\n});\n__d(\"removeFromArray\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        var j = h.indexOf(i);\n        ((j != -1) && h.splice(j, 1));\n    };\n    e.exports = g;\n});\n__d(\"Layer\", [\"Event\",\"function-extensions\",\"ArbiterMixin\",\"BehaviorsMixin\",\"BootloadedReact\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"KeyEventController\",\"Parent\",\"Style\",\"copyProperties\",\"ge\",\"removeFromArray\",\"KeyStatus\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"BootloadedReact\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"HTML\"), p = b(\"KeyEventController\"), q = b(\"Parent\"), r = b(\"Style\"), s = b(\"copyProperties\"), t = b(\"ge\"), u = b(\"removeFromArray\");\n    b(\"KeyStatus\");\n    var v = [];\n    function w(x, y) {\n        this._config = (x || {\n        });\n        if (y) {\n            this._configure(this._config, y);\n            var z = (this._config.addedBehaviors || []);\n            this.enableBehaviors(this._getDefaultBehaviors().concat(z));\n        }\n    ;\n    };\n    s(w, h);\n    s(w, {\n        init: function(x, y) {\n            x.init(y);\n        },\n        initAndShow: function(x, y) {\n            x.init(y).show();\n        },\n        show: function(x) {\n            x.show();\n        },\n        getTopmostLayer: function() {\n            return v[(v.length - 1)];\n        }\n    });\n    s(w.prototype, h, i, {\n        _initialized: false,\n        _root: null,\n        _shown: false,\n        _hiding: false,\n        _causalElement: null,\n        _reactContainer: null,\n        init: function(x) {\n            this._configure(this._config, x);\n            var y = (this._config.addedBehaviors || []);\n            this.enableBehaviors(this._getDefaultBehaviors().concat(y));\n            this._initialized = true;\n            return this;\n        },\n        _configure: function(x, y) {\n            if (y) {\n                var z = n.isNode(y), aa = ((typeof y === \"string\") || o.isHTML(y));\n                this.containsReactComponent = j.isValidComponent(y);\n                if (aa) {\n                    y = o(y).getRootNode();\n                }\n                 else if (this.containsReactComponent) {\n                    var ba = document.createElement(\"div\");\n                    j.renderComponent(y, ba);\n                    y = this._reactContainer = ba;\n                }\n                \n            ;\n            }\n        ;\n            this._root = this._buildWrapper(x, y);\n            if (x.attributes) {\n                n.setAttributes(this._root, x.attributes);\n            };\n            if (x.classNames) {\n                x.classNames.forEach(l.addClass.curry(this._root));\n            };\n            l.addClass(this._root, \"uiLayer\");\n            if (x.causalElement) {\n                this._causalElement = t(x.causalElement);\n            };\n            if (x.permanent) {\n                this._permanent = x.permanent;\n            };\n            m.set(this._root, \"layer\", this);\n        },\n        _getDefaultBehaviors: function() {\n            return [];\n        },\n        getCausalElement: function() {\n            return this._causalElement;\n        },\n        setCausalElement: function(x) {\n            this._causalElement = x;\n            return this;\n        },\n        getInsertParent: function() {\n            return (this._insertParent || document.body);\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getContentRoot: function() {\n            return this._root;\n        },\n        _buildWrapper: function(x, y) {\n            return y;\n        },\n        setInsertParent: function(x) {\n            if (x) {\n                if ((this._shown && (x !== this.getInsertParent()))) {\n                    n.appendContent(x, this.getRoot());\n                    this.updatePosition();\n                }\n            ;\n                this._insertParent = x;\n            }\n        ;\n            return this;\n        },\n        show: function() {\n            if (this._shown) {\n                return this\n            };\n            var x = this.getRoot();\n            this.inform(\"beforeshow\");\n            r.set(x, \"visibility\", \"hidden\");\n            r.set(x, \"overflow\", \"hidden\");\n            l.show(x);\n            n.appendContent(this.getInsertParent(), x);\n            if ((this.updatePosition() !== false)) {\n                this._shown = true;\n                this.inform(\"show\");\n                w.inform(\"show\", this);\n                if (!this._permanent) {\n                    !function() {\n                        if (this._shown) {\n                            v.push(this);\n                        };\n                    }.bind(this).defer();\n                };\n            }\n             else l.hide(x);\n        ;\n            r.set(x, \"visibility\", \"\");\n            r.set(x, \"overflow\", \"\");\n            this.inform(\"aftershow\");\n            return this;\n        },\n        hide: function() {\n            if (((this._hiding || !this._shown) || (this.inform(\"beforehide\") === false))) {\n                return this\n            };\n            this._hiding = true;\n            if ((this.inform(\"starthide\") !== false)) {\n                this.finishHide();\n            };\n            return this;\n        },\n        conditionShow: function(x) {\n            return (x ? this.show() : this.hide());\n        },\n        finishHide: function() {\n            if (this._shown) {\n                if (!this._permanent) {\n                    u(v, this);\n                };\n                this._hiding = false;\n                this._shown = false;\n                l.hide(this.getRoot());\n                this.inform(\"hide\");\n                w.inform(\"hide\", this);\n            }\n        ;\n        },\n        isShown: function() {\n            return this._shown;\n        },\n        updatePosition: function() {\n            return true;\n        },\n        destroy: function() {\n            if (this.containsReactComponent) {\n                j.unmountAndReleaseReactRootNode(this._reactContainer);\n            };\n            this.finishHide();\n            var x = this.getRoot();\n            n.remove(x);\n            this.destroyBehaviors();\n            this.inform(\"destroy\");\n            w.inform(\"destroy\", this);\n            m.remove(x, \"layer\");\n            this._root = this._causalElement = null;\n        }\n    });\n    g.listen(document.documentElement, \"keydown\", function(event) {\n        if (p.filterEventTargets(event, \"keydown\")) {\n            for (var x = (v.length - 1); (x >= 0); x--) {\n                if ((v[x].inform(\"key\", event) === false)) {\n                    return false\n                };\n            }\n        };\n    }, g.Priority.URGENT);\n    g.listen(document.documentElement, \"click\", function(event) {\n        var x = v.length;\n        if (!x) {\n            return\n        };\n        var y = event.getTarget();\n        if (!n.contains(document.documentElement, y)) {\n            return\n        };\n        if (!y.offsetWidth) {\n            return\n        };\n        if (q.byClass(y, \"generic_dialog\")) {\n            return\n        };\n        while (x--) {\n            var z = v[x], aa = z.getContentRoot();\n            if (k.containsIncludingLayers(aa, y)) {\n                return\n            };\n            if (((z.inform(\"blur\") === false) || z.isShown())) {\n                return\n            };\n        };\n    });\n    e.exports = w;\n});\n__d(\"PopupWindow\", [\"DOMDimensions\",\"DOMQuery\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMDimensions\"), h = b(\"DOMQuery\"), i = b(\"Layer\"), j = b(\"copyProperties\"), k = {\n        _opts: {\n            allowShrink: true,\n            strategy: \"vector\",\n            timeout: 100,\n            widthElement: null\n        },\n        init: function(l) {\n            j(k._opts, l);\n            setInterval(k._resizeCheck, k._opts.timeout);\n        },\n        _resizeCheck: function() {\n            var l = g.getViewportDimensions(), m = k._getDocumentSize(), n = i.getTopmostLayer();\n            if (n) {\n                var o = n.getRoot().firstChild, p = g.getElementDimensions(o);\n                p.height += g.measureElementBox(o, \"height\", true, true, true);\n                p.width += g.measureElementBox(o, \"width\", true, true, true);\n                m.height = Math.max(m.height, p.height);\n                m.width = Math.max(m.width, p.width);\n            }\n        ;\n            var q = (m.height - l.height), r = (m.width - l.width);\n            if (((r < 0) && !k._opts.widthElement)) {\n                r = 0;\n            };\n            r = ((r > 1) ? r : 0);\n            if ((!k._opts.allowShrink && (q < 0))) {\n                q = 0;\n            };\n            if ((q || r)) {\n                try {\n                    (window.console && window.console.firebug);\n                    window.resizeBy(r, q);\n                    if (r) {\n                        window.moveBy((r / -2), 0);\n                    };\n                } catch (s) {\n                \n                }\n            };\n        },\n        _getDocumentSize: function() {\n            var l = g.getDocumentDimensions();\n            if ((k._opts.strategy === \"offsetHeight\")) {\n                l.height = document.body.offsetHeight;\n            };\n            if (k._opts.widthElement) {\n                var m = h.scry(document.body, k._opts.widthElement)[0];\n                if (m) {\n                    l.width = g.getElementDimensions(m).width;\n                };\n            }\n        ;\n            var n = a.Dialog;\n            if (((n && n.max_bottom) && (n.max_bottom > l.height))) {\n                l.height = n.max_bottom;\n            };\n            return l;\n        },\n        open: function(l, m, n) {\n            var o = ((typeof window.screenX != \"undefined\") ? window.screenX : window.screenLeft), p = ((typeof window.screenY != \"undefined\") ? window.screenY : window.screenTop), q = ((typeof window.outerWidth != \"undefined\") ? window.outerWidth : document.body.clientWidth), r = ((typeof window.outerHeight != \"undefined\") ? window.outerHeight : ((document.body.clientHeight - 22))), s = parseInt((o + ((((q - n)) / 2))), 10), t = parseInt((p + ((((r - m)) / 2.5))), 10), u = ((((((((\"width=\" + n) + \",height=\") + m) + \",left=\") + s) + \",top=\") + t));\n            return window.open(l, \"_blank\", u);\n        }\n    };\n    e.exports = k;\n});\n__d(\"TidyArbiterMixin\", [\"Arbiter\",\"ArbiterMixin\",\"Run\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Run\"), j = b(\"copyProperties\"), k = {\n    };\n    j(k, h, {\n        _getArbiterInstance: function() {\n            if (!this._arbiter) {\n                this._arbiter = new g();\n                i.onLeave(function() {\n                    delete this._arbiter;\n                }.bind(this));\n            }\n        ;\n            return this._arbiter;\n        }\n    });\n    e.exports = k;\n});\n__d(\"TidyArbiter\", [\"TidyArbiterMixin\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"TidyArbiterMixin\"), h = b(\"copyProperties\"), i = {\n    };\n    h(i, g);\n    e.exports = i;\n});\n__d(\"Vector\", [\"Event\",\"DOMDimensions\",\"DOMPosition\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOMDimensions\"), i = b(\"DOMPosition\"), j = b(\"copyProperties\");\n    function k(l, m, n) {\n        j(this, {\n            x: parseFloat(l),\n            y: parseFloat(m),\n            domain: (n || \"pure\")\n        });\n    };\n    j(k.prototype, {\n        toString: function() {\n            return ((((\"(\" + this.x) + \", \") + this.y) + \")\");\n        },\n        add: function(l, m) {\n            if ((arguments.length == 1)) {\n                if ((l.domain != \"pure\")) {\n                    l = l.convertTo(this.domain);\n                };\n                return this.add(l.x, l.y);\n            }\n        ;\n            var n = parseFloat(l), o = parseFloat(m);\n            return new k((this.x + n), (this.y + o), this.domain);\n        },\n        mul: function(l, m) {\n            if ((typeof m == \"undefined\")) {\n                m = l;\n            };\n            return new k((this.x * l), (this.y * m), this.domain);\n        },\n        sub: function(l, m) {\n            if ((arguments.length == 1)) {\n                return this.add(l.mul(-1));\n            }\n             else return this.add(-l, -m)\n        ;\n        },\n        distanceTo: function(l) {\n            return this.sub(l).magnitude();\n        },\n        magnitude: function() {\n            return Math.sqrt((((this.x * this.x)) + ((this.y * this.y))));\n        },\n        rotate: function(l) {\n            return new k(((this.x * Math.cos(l)) - (this.y * Math.sin(l))), ((this.x * Math.sin(l)) + (this.y * Math.cos(l))));\n        },\n        convertTo: function(l) {\n            if ((((l != \"pure\") && (l != \"viewport\")) && (l != \"document\"))) {\n                return new k(0, 0)\n            };\n            if ((l == this.domain)) {\n                return new k(this.x, this.y, this.domain)\n            };\n            if ((l == \"pure\")) {\n                return new k(this.x, this.y)\n            };\n            if ((this.domain == \"pure\")) {\n                return new k(0, 0)\n            };\n            var m = k.getScrollPosition(\"document\"), n = this.x, o = this.y;\n            if ((this.domain == \"document\")) {\n                n -= m.x;\n                o -= m.y;\n            }\n             else {\n                n += m.x;\n                o += m.y;\n            }\n        ;\n            return new k(n, o, l);\n        },\n        setElementPosition: function(l) {\n            var m = this.convertTo(\"document\");\n            l.style.left = (parseInt(m.x) + \"px\");\n            l.style.top = (parseInt(m.y) + \"px\");\n            return this;\n        },\n        setElementDimensions: function(l) {\n            return this.setElementWidth(l).setElementHeight(l);\n        },\n        setElementWidth: function(l) {\n            l.style.width = (parseInt(this.x, 10) + \"px\");\n            return this;\n        },\n        setElementHeight: function(l) {\n            l.style.height = (parseInt(this.y, 10) + \"px\");\n            return this;\n        },\n        scrollElementBy: function(l) {\n            if ((l == document.body)) {\n                window.scrollBy(this.x, this.y);\n            }\n             else {\n                l.scrollLeft += this.x;\n                l.scrollTop += this.y;\n            }\n        ;\n            return this;\n        }\n    });\n    j(k, {\n        getEventPosition: function(l, m) {\n            m = (m || \"document\");\n            var n = g.getPosition(l), o = new k(n.x, n.y, \"document\");\n            return o.convertTo(m);\n        },\n        getScrollPosition: function(l) {\n            l = (l || \"document\");\n            var m = i.getScrollPosition();\n            return new k(m.x, m.y, \"document\").convertTo(l);\n        },\n        getElementPosition: function(l, m) {\n            m = (m || \"document\");\n            var n = i.getElementPosition(l);\n            return new k(n.x, n.y, \"viewport\").convertTo(m);\n        },\n        getElementDimensions: function(l) {\n            var m = h.getElementDimensions(l);\n            return new k(m.width, m.height);\n        },\n        getViewportDimensions: function() {\n            var l = h.getViewportDimensions();\n            return new k(l.width, l.height, \"viewport\");\n        },\n        getDocumentDimensions: function(l) {\n            var m = h.getDocumentDimensions(l);\n            return new k(m.width, m.height, \"document\");\n        },\n        deserialize: function(l) {\n            var m = l.split(\",\");\n            return new k(m[0], m[1]);\n        }\n    });\n    e.exports = k;\n});\n__d(\"collectDataAttributes\", [\"getContextualParent\",], function(a, b, c, d, e, f) {\n    var g = b(\"getContextualParent\");\n    function h(i, j) {\n        var k = {\n        }, l = {\n        }, m = j.length, n;\n        for (n = 0; (n < m); ++n) {\n            k[j[n]] = {\n            };\n            l[j[n]] = (\"data-\" + j[n]);\n        };\n        var o = {\n            tn: \"\",\n            \"tn-debug\": \",\"\n        };\n        while (i) {\n            if (i.getAttribute) {\n                for (n = 0; (n < m); ++n) {\n                    var p = i.getAttribute(l[j[n]]);\n                    if (p) {\n                        var q = JSON.parse(p);\n                        for (var r in q) {\n                            if ((o[r] !== undefined)) {\n                                if ((k[j[n]][r] === undefined)) {\n                                    k[j[n]][r] = [];\n                                };\n                                k[j[n]][r].push(q[r]);\n                            }\n                             else if ((k[j[n]][r] === undefined)) {\n                                k[j[n]][r] = q[r];\n                            }\n                        ;\n                        };\n                    }\n                ;\n                }\n            };\n            i = g(i);\n        };\n        for (var s in k) {\n            for (var t in o) {\n                if ((k[s][t] !== undefined)) {\n                    k[s][t] = k[s][t].join(o[t]);\n                };\n            };\n        };\n        return k;\n    };\n    e.exports = h;\n});\n__d(\"csx\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        throw new Error(\"csx(...): Unexpected class selector transformation.\");\n    };\n    e.exports = g;\n});\n__d(\"requestAnimationFrame\", [\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"emptyFunction\"), h = 0, i = (((((a.requestAnimationFrame || a.webkitRequestAnimationFrame) || a.mozRequestAnimationFrame) || a.oRequestAnimationFrame) || a.msRequestAnimationFrame) || function(j) {\n        var k = Date.now(), l = Math.max(0, (16 - ((k - h))));\n        h = (k + l);\n        return a.setTimeout(j, l);\n    });\n    i(g);\n    e.exports = i;\n});\n__d(\"queryThenMutateDOM\", [\"function-extensions\",\"Run\",\"createArrayFrom\",\"emptyFunction\",\"requestAnimationFrame\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Run\"), h = b(\"createArrayFrom\"), i = b(\"emptyFunction\"), j = b(\"requestAnimationFrame\"), k, l, m = {\n    }, n = [], o = [];\n    function p(s, t, u) {\n        if ((!s && !t)) {\n            return\n        };\n        if ((u && m.hasOwnProperty(u))) {\n            return;\n        }\n         else if (u) {\n            m[u] = 1;\n        }\n    ;\n        n.push((t || i));\n        o.push((s || i));\n        r();\n        if (!k) {\n            k = true;\n            g.onLeave(function() {\n                k = false;\n                l = false;\n                m = {\n                };\n                n.length = 0;\n                o.length = 0;\n            });\n        }\n    ;\n    };\n    p.prepare = function(s, t, u) {\n        return function() {\n            var v = h(arguments);\n            v.unshift(this);\n            var w = Function.prototype.bind.apply(s, v), x = t.bind(this);\n            p(w, x, u);\n        };\n    };\n    function q() {\n        m = {\n        };\n        var s = o.length, t = n.length, u = [], v;\n        while (s--) {\n            v = o.shift();\n            u.push(v());\n        };\n        while (t--) {\n            v = n.shift();\n            v(u.shift());\n        };\n        l = false;\n        r();\n    };\n    function r() {\n        if ((!l && ((o.length || n.length)))) {\n            l = true;\n            j(q);\n        }\n    ;\n    };\n    e.exports = p;\n});\n__d(\"setTimeoutAcrossTransitions\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return setTimeout(h, i, false);\n    };\n    e.exports = g;\n});\n__d(\"TimelineCoverCollapse\", [\"Arbiter\",\"DOMDimensions\",\"Style\",\"TidyArbiter\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOMDimensions\"), i = b(\"Style\"), j = b(\"TidyArbiter\"), k = b(\"$\");\n    f.collapse = function(l, m) {\n        m--;\n        var n = h.getViewportDimensions().height, o = h.getDocumentDimensions().height, p = (n + m);\n        if ((o <= p)) {\n            i.set(k(\"pagelet_timeline_main_column\"), \"min-height\", (p + \"px\"));\n        };\n        window.scrollBy(0, m);\n        j.inform(\"TimelineCover/coverCollapsed\", m, g.BEHAVIOR_STATE);\n    };\n});\nfunction tz_calculate(a) {\n    var b = new Date(), c = (b.getTimezoneOffset() / 30), d = (b.getTime() / 1000), e = Math.round((((a - d)) / 1800)), f = (Math.round((c + e)) % 48);\n    if ((f == 0)) {\n        return 0;\n    }\n     else if ((f > 24)) {\n        f -= (Math.ceil((f / 48)) * 48);\n    }\n     else if ((f < -28)) {\n        f += (Math.ceil((f / -48)) * 48);\n    }\n    \n;\n    return (f * 30);\n};\nfunction tz_autoset(a, b, c) {\n    if ((!a || (undefined == b))) {\n        return\n    };\n    if (window.tz_autoset.calculated) {\n        return\n    };\n    window.tz_autoset.calculated = true;\n    var d = -tz_calculate(a);\n    if ((c || (d != b))) {\n        var e = \"/ajax/timezone/update.php\";\n        new AsyncRequest().setURI(e).setData({\n            gmt_off: d,\n            is_forced: c\n        }).setErrorHandler(emptyFunction).setTransportErrorHandler(emptyFunction).setOption(\"suppressErrorAlerts\", true).send();\n    }\n;\n};\n__d(\"UFITracking\", [\"Bootloader\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\");\n    function h(j) {\n        g.loadModules([\"DOM\",\"collectDataAttributes\",], function(k, l) {\n            j.forEach(function(m) {\n                var n = k.scry(document.body, m);\n                if ((!n || n.link_data)) {\n                    return\n                };\n                var o = l(n, [\"ft\",]).ft;\n                if (Object.keys(o).length) {\n                    var p = k.create(\"input\", {\n                        type: \"hidden\",\n                        name: \"link_data\",\n                        value: JSON.stringify(o)\n                    });\n                    n.appendChild(p);\n                }\n            ;\n            });\n        });\n    };\n    var i = {\n        addAllLinkData: function() {\n            h([\"form.commentable_item\",]);\n        },\n        addAllLinkDataForQuestion: function() {\n            h([\"form.fbEigenpollForm\",\"form.fbQuestionPollForm\",]);\n        }\n    };\n    e.exports = i;\n});\n__d(\"legacy:ufi-tracking-js\", [\"UFITracking\",], function(a, b, c, d) {\n    var e = b(\"UFITracking\");\n    a.ufi_add_all_link_data = e.addAllLinkData;\n    a.question_add_all_link_data = e.addAllLinkDataForQuestion;\n}, 3);\n__d(\"LayerRemoveOnHide\", [\"function-extensions\",\"DOM\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"DOM\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n    h(i.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"hide\", g.remove.curry(this._layer.getRoot()));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"Keys\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        BACKSPACE: 8,\n        TAB: 9,\n        RETURN: 13,\n        ESC: 27,\n        SPACE: 32,\n        PAGE_UP: 33,\n        PAGE_DOWN: 34,\n        END: 35,\n        HOME: 36,\n        LEFT: 37,\n        UP: 38,\n        RIGHT: 39,\n        DOWN: 40,\n        DELETE: 46,\n        COMMA: 188\n    };\n});\n__d(\"areObjectsEqual\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return (JSON.stringify(h) == JSON.stringify(i));\n    };\n    e.exports = g;\n});\n__d(\"flattenArray\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        var i = h.slice(), j = [];\n        while (i.length) {\n            var k = i.pop();\n            if (Array.isArray(k)) {\n                Array.prototype.push.apply(i, k);\n            }\n             else j.push(k);\n        ;\n        };\n        return j.reverse();\n    };\n    e.exports = g;\n});\n__d(\"htmlSpecialChars\", [], function(a, b, c, d, e, f) {\n    var g = /&/g, h = /</g, i = />/g, j = /\"/g, k = /'/g;\n    function l(m) {\n        if ((((typeof m == \"undefined\") || (m === null)) || !m.toString)) {\n            return \"\"\n        };\n        if ((m === false)) {\n            return \"0\";\n        }\n         else if ((m === true)) {\n            return \"1\"\n        }\n    ;\n        return m.toString().replace(g, \"&amp;\").replace(j, \"&quot;\").replace(k, \"&#039;\").replace(h, \"&lt;\").replace(i, \"&gt;\");\n    };\n    e.exports = l;\n});\n__d(\"htmlize\", [\"htmlSpecialChars\",], function(a, b, c, d, e, f) {\n    var g = b(\"htmlSpecialChars\");\n    function h(i) {\n        return g(i).replace(/\\r\\n|[\\r\\n]/g, \"\\u003Cbr/\\u003E\");\n    };\n    e.exports = h;\n});");
36271 // 1548
36272 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s5e7dba3ea700a5261ca8857ec975a807389e8969");
36273 // 1549
36274 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"AyUu6\",]);\n}\n;\n;\n__d(\"XdArbiterBuffer\", [], function(a, b, c, d, e, f) {\n    if (!a.XdArbiter) {\n        a.XdArbiter = {\n            _m: [],\n            _p: [],\n            register: function(g, h, i) {\n                h = ((h || (((/^apps\\./).test(JSBNG__location.hostname) ? \"canvas\" : \"tab\"))));\n                this._p.push([g,h,i,]);\n                return h;\n            },\n            handleMessage: function(g, h) {\n                this._m.push([g,h,]);\n            }\n        };\n    }\n;\n;\n});\n__d(\"CanvasIFrameLoader\", [\"XdArbiterBuffer\",\"$\",], function(a, b, c, d, e, f) {\n    b(\"XdArbiterBuffer\");\n    var g = b(\"$\"), h = {\n        loadFromForm: function(i) {\n            i.submit();\n        }\n    };\n    e.exports = h;\n});\n__d(\"PHPQuerySerializer\", [], function(a, b, c, d, e, f) {\n    function g(n) {\n        return h(n, null);\n    };\n;\n    function h(n, o) {\n        o = ((o || \"\"));\n        var p = [];\n        if (((((n === null)) || ((n === undefined))))) {\n            p.push(i(o));\n        }\n         else if (((typeof (n) == \"object\"))) {\n            {\n                var fin27keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin27i = (0);\n                var q;\n                for (; (fin27i < fin27keys.length); (fin27i++)) {\n                    ((q) = (fin27keys[fin27i]));\n                    {\n                        if (((n.hasOwnProperty(q) && ((n[q] !== undefined))))) {\n                            p.push(h(n[q], ((o ? ((((((o + \"[\")) + q)) + \"]\")) : q))));\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n         else p.push(((((i(o) + \"=\")) + i(n))));\n        \n    ;\n    ;\n        return p.join(\"&\");\n    };\n;\n    function i(n) {\n        return encodeURIComponent(n).replace(/%5D/g, \"]\").replace(/%5B/g, \"[\");\n    };\n;\n    var j = /^(\\w+)((?:\\[\\w*\\])+)=?(.*)/;\n    function k(n) {\n        if (!n) {\n            return {\n            };\n        }\n    ;\n    ;\n        var o = {\n        };\n        n = n.replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n        n = n.split(\"&\");\n        var p = Object.prototype.hasOwnProperty;\n        for (var q = 0, r = n.length; ((q < r)); q++) {\n            var s = n[q].match(j);\n            if (!s) {\n                var t = n[q].split(\"=\");\n                o[l(t[0])] = ((((t[1] === undefined)) ? null : l(t[1])));\n            }\n             else {\n                var u = s[2].split(/\\]\\[|\\[|\\]/).slice(0, -1), v = s[1], w = l(((s[3] || \"\")));\n                u[0] = v;\n                var x = o;\n                for (var y = 0; ((y < ((u.length - 1)))); y++) {\n                    if (u[y]) {\n                        if (!p.call(x, u[y])) {\n                            var z = ((((u[((y + 1))] && !u[((y + 1))].match(/^\\d{1,3}$/))) ? {\n                            } : []));\n                            x[u[y]] = z;\n                            if (((x[u[y]] !== z))) {\n                                return o;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                        x = x[u[y]];\n                    }\n                     else {\n                        if (((u[((y + 1))] && !u[((y + 1))].match(/^\\d{1,3}$/)))) {\n                            x.push({\n                            });\n                        }\n                         else x.push([]);\n                    ;\n                    ;\n                        x = x[((x.length - 1))];\n                    }\n                ;\n                ;\n                };\n            ;\n                if (((((x instanceof Array)) && ((u[((u.length - 1))] === \"\"))))) {\n                    x.push(w);\n                }\n                 else x[u[((u.length - 1))]] = w;\n            ;\n            ;\n            }\n        ;\n        ;\n        };\n    ;\n        return o;\n    };\n;\n    function l(n) {\n        return decodeURIComponent(n.replace(/\\+/g, \" \"));\n    };\n;\n    var m = {\n        serialize: g,\n        encodeComponent: i,\n        deserialize: k,\n        decodeComponent: l\n    };\n    e.exports = m;\n});\n__d(\"URIBase\", [\"PHPQuerySerializer\",\"copyProperties\",\"ex\",], function(a, b, c, d, e, f) {\n    var g = b(\"PHPQuerySerializer\"), h = b(\"copyProperties\"), i = b(\"ex\"), j = /((([\\-\\w]+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/, k = new RegExp(((((\"[\\\\x00-\\\\x2c\\\\x2f\\\\x3b-\\\\x40\\\\x5c\\\\x5e\\\\x60\\\\x7b-\\\\x7f\" + \"\\\\uFDD0-\\\\uFDEF\\\\uFFF0-\\\\uFFFF\")) + \"\\\\u2047\\\\u2048\\\\uFE56\\\\uFE5F\\\\uFF03\\\\uFF0F\\\\uFF1F]\"))), l = new RegExp(((\"^(?:[^/]*:|\" + \"[\\\\x00-\\\\x1f]*/[\\\\x00-\\\\x1f]*/)\")));\n    function m(o, p, q) {\n        if (!p) {\n            return true;\n        }\n    ;\n    ;\n        if (((p instanceof n))) {\n            o.setProtocol(p.getProtocol());\n            o.setDomain(p.getDomain());\n            o.setPort(p.getPort());\n            o.setPath(p.getPath());\n            o.setQueryData(JSON.parse(JSON.stringify(p.getQueryData())));\n            o.setFragment(p.getFragment());\n            return true;\n        }\n    ;\n    ;\n        p = p.toString();\n        var r = p.match(j);\n        o.setProtocol(((r[3] || \"\")));\n        if (((k.test(((r[4] || \"\"))) && !q))) {\n            return false;\n        }\n    ;\n    ;\n        o.setDomain(((r[4] || \"\")));\n        o.setPort(((r[6] || \"\")));\n        o.setPath(((r[7] || \"\")));\n        if (q) {\n            o.setQueryData(((g.deserialize(r[9]) || {\n            })));\n        }\n         else try {\n            o.setQueryData(((g.deserialize(r[9]) || {\n            })));\n        } catch (s) {\n            return false;\n        }\n    ;\n    ;\n        o.setFragment(((r[11] || \"\")));\n        if (((!o.getDomain() && ((o.getPath().indexOf(\"\\\\\") !== -1))))) {\n            if (q) {\n                throw new Error(i(\"URI.parse: invalid URI (no domain but multiple back-slashes): %s\", o.toString()));\n            }\n             else return false\n        ;\n        }\n    ;\n    ;\n        if (((!o.getProtocol() && l.test(p)))) {\n            if (q) {\n                throw new Error(i(\"URI.parse: invalid URI (unsafe protocol-relative URLs): %s\", o.toString()));\n            }\n             else return false\n        ;\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    function n(o) {\n        this.$URIBase0 = \"\";\n        this.$URIBase1 = \"\";\n        this.$URIBase2 = \"\";\n        this.$URIBase3 = \"\";\n        this.$URIBase4 = \"\";\n        this.$URIBase5 = {\n        };\n        m(this, o, true);\n    };\n;\n    n.prototype.setProtocol = function(o) {\n        this.$URIBase0 = o;\n        return this;\n    };\n    n.prototype.getProtocol = function(o) {\n        return this.$URIBase0;\n    };\n    n.prototype.setSecure = function(o) {\n        return this.setProtocol(((o ? \"https\" : \"http\")));\n    };\n    n.prototype.isSecure = function() {\n        return ((this.getProtocol() === \"https\"));\n    };\n    n.prototype.setDomain = function(o) {\n        if (k.test(o)) {\n            throw new Error(i(\"URI.setDomain: unsafe domain specified: %s for url %s\", o, this.toString()));\n        }\n    ;\n    ;\n        this.$URIBase1 = o;\n        return this;\n    };\n    n.prototype.getDomain = function() {\n        return this.$URIBase1;\n    };\n    n.prototype.setPort = function(o) {\n        this.$URIBase2 = o;\n        return this;\n    };\n    n.prototype.getPort = function() {\n        return this.$URIBase2;\n    };\n    n.prototype.setPath = function(o) {\n        this.$URIBase3 = o;\n        return this;\n    };\n    n.prototype.getPath = function() {\n        return this.$URIBase3;\n    };\n    n.prototype.addQueryData = function(o, p) {\n        if (((o instanceof Object))) {\n            h(this.$URIBase5, o);\n        }\n         else this.$URIBase5[o] = p;\n    ;\n    ;\n        return this;\n    };\n    n.prototype.setQueryData = function(o) {\n        this.$URIBase5 = o;\n        return this;\n    };\n    n.prototype.getQueryData = function() {\n        return this.$URIBase5;\n    };\n    n.prototype.removeQueryData = function(o) {\n        if (!Array.isArray(o)) {\n            o = [o,];\n        }\n    ;\n    ;\n        for (var p = 0, q = o.length; ((p < q)); ++p) {\n            delete this.$URIBase5[o[p]];\n        ;\n        };\n    ;\n        return this;\n    };\n    n.prototype.setFragment = function(o) {\n        this.$URIBase4 = o;\n        return this;\n    };\n    n.prototype.getFragment = function() {\n        return this.$URIBase4;\n    };\n    n.prototype.toString = function() {\n        var o = \"\";\n        if (this.$URIBase0) {\n            o += ((this.$URIBase0 + \"://\"));\n        }\n    ;\n    ;\n        if (this.$URIBase1) {\n            o += this.$URIBase1;\n        }\n    ;\n    ;\n        if (this.$URIBase2) {\n            o += ((\":\" + this.$URIBase2));\n        }\n    ;\n    ;\n        if (this.$URIBase3) {\n            o += this.$URIBase3;\n        }\n         else if (o) {\n            o += \"/\";\n        }\n        \n    ;\n    ;\n        var p = g.serialize(this.$URIBase5);\n        if (p) {\n            o += ((\"?\" + p));\n        }\n    ;\n    ;\n        if (this.$URIBase4) {\n            o += ((\"#\" + this.$URIBase4));\n        }\n    ;\n    ;\n        return o;\n    };\n    n.prototype.getOrigin = function() {\n        return ((((((this.$URIBase0 + \"://\")) + this.$URIBase1)) + ((this.$URIBase2 ? ((\":\" + this.$URIBase2)) : \"\"))));\n    };\n    n.isValidURI = function(o) {\n        return m(new n(), o, false);\n    };\n    e.exports = n;\n});\n__d(\"URI\", [\"URIBase\",\"copyProperties\",\"goURI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URIBase\"), h = b(\"copyProperties\"), i = b(\"goURI\"), j = ((((g === null)) ? null : g.prototype));\n    k.prototype = Object.create(j);\n    k.prototype.constructor = k;\n    k.__superConstructor__ = g;\n    function k(l) {\n        if (!((this instanceof k))) {\n            return new k(((l || window.JSBNG__location.href)));\n        }\n    ;\n    ;\n        g.call(this, ((l || \"\")));\n    };\n;\n    k.prototype.setPath = function(l) {\n        this.path = l;\n        return j.setPath.call(this, l);\n    };\n    k.prototype.getPath = function() {\n        var l = j.getPath.call(this);\n        if (l) {\n            return l.replace(/^\\/+/, \"/\");\n        }\n    ;\n    ;\n        return l;\n    };\n    k.prototype.setProtocol = function(l) {\n        this.protocol = l;\n        return j.setProtocol.call(this, l);\n    };\n    k.prototype.setDomain = function(l) {\n        this.domain = l;\n        return j.setDomain.call(this, l);\n    };\n    k.prototype.setPort = function(l) {\n        this.port = l;\n        return j.setPort.call(this, l);\n    };\n    k.prototype.setFragment = function(l) {\n        this.fragment = l;\n        return j.setFragment.call(this, l);\n    };\n    k.prototype.isEmpty = function() {\n        return !((((((((((this.getPath() || this.getProtocol())) || this.getDomain())) || this.getPort())) || ((Object.keys(this.getQueryData()).length > 0)))) || this.getFragment()));\n    };\n    k.prototype.valueOf = function() {\n        return this.toString();\n    };\n    k.prototype.isFacebookURI = function() {\n        if (!k.$URI5) {\n            k.$URI5 = new RegExp(\"(^|\\\\.)facebook\\\\.com$\", \"i\");\n        }\n    ;\n    ;\n        if (this.isEmpty()) {\n            return false;\n        }\n    ;\n    ;\n        if (((!this.getDomain() && !this.getProtocol()))) {\n            return true;\n        }\n    ;\n    ;\n        return (((([\"http\",\"https\",].indexOf(this.getProtocol()) !== -1)) && k.$URI5.test(this.getDomain())));\n    };\n    k.prototype.getRegisteredDomain = function() {\n        if (!this.getDomain()) {\n            return \"\";\n        }\n    ;\n    ;\n        if (!this.isFacebookURI()) {\n            return null;\n        }\n    ;\n    ;\n        var l = this.getDomain().split(\".\"), m = l.indexOf(\"facebook\");\n        return l.slice(m).join(\".\");\n    };\n    k.prototype.getUnqualifiedURI = function() {\n        return new k(this).setProtocol(null).setDomain(null).setPort(null);\n    };\n    k.prototype.getQualifiedURI = function() {\n        return new k(this).$URI6();\n    };\n    k.prototype.$URI6 = function() {\n        if (!this.getDomain()) {\n            var l = k();\n            this.setProtocol(l.getProtocol()).setDomain(l.getDomain()).setPort(l.getPort());\n        }\n    ;\n    ;\n        return this;\n    };\n    k.prototype.isSameOrigin = function(l) {\n        var m = ((l || window.JSBNG__location.href));\n        if (!((m instanceof k))) {\n            m = new k(m.toString());\n        }\n    ;\n    ;\n        if (((this.isEmpty() || m.isEmpty()))) {\n            return false;\n        }\n    ;\n    ;\n        if (((this.getProtocol() && ((this.getProtocol() != m.getProtocol()))))) {\n            return false;\n        }\n    ;\n    ;\n        if (((this.getDomain() && ((this.getDomain() != m.getDomain()))))) {\n            return false;\n        }\n    ;\n    ;\n        if (((this.getPort() && ((this.getPort() != m.getPort()))))) {\n            return false;\n        }\n    ;\n    ;\n        return true;\n    };\n    k.prototype.go = function(l) {\n        i(this, l);\n    };\n    k.prototype.setSubdomain = function(l) {\n        var m = this.$URI6().getDomain().split(\".\");\n        if (((m.length <= 2))) {\n            m.unshift(l);\n        }\n         else m[0] = l;\n    ;\n    ;\n        return this.setDomain(m.join(\".\"));\n    };\n    k.prototype.getSubdomain = function() {\n        if (!this.getDomain()) {\n            return \"\";\n        }\n    ;\n    ;\n        var l = this.getDomain().split(\".\");\n        if (((l.length <= 2))) {\n            return \"\";\n        }\n         else return l[0]\n    ;\n    };\n    k.isValidURI = g.isValidURI;\n    h(k, {\n        getRequestURI: function(l, m) {\n            l = ((((l === undefined)) || l));\n            var n = a.PageTransitions;\n            if (((((l && n)) && n.isInitialized()))) {\n                return n.getCurrentURI(!!m).getQualifiedURI();\n            }\n             else return new k(window.JSBNG__location.href)\n        ;\n        },\n        getMostRecentURI: function() {\n            var l = a.PageTransitions;\n            if (((l && l.isInitialized()))) {\n                return l.getMostRecentURI().getQualifiedURI();\n            }\n             else return new k(window.JSBNG__location.href)\n        ;\n        },\n        getNextURI: function() {\n            var l = a.PageTransitions;\n            if (((l && l.isInitialized()))) {\n                return l.getNextURI().getQualifiedURI();\n            }\n             else return new k(window.JSBNG__location.href)\n        ;\n        },\n        expression: /(((\\w+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/,\n        arrayQueryExpression: /^(\\w+)((?:\\[\\w*\\])+)=?(.*)/,\n        explodeQuery: function(l) {\n            if (!l) {\n                return {\n                };\n            }\n        ;\n        ;\n            var m = {\n            };\n            l = l.replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n            l = l.split(\"&\");\n            var n = Object.prototype.hasOwnProperty;\n            for (var o = 0, p = l.length; ((o < p)); o++) {\n                var q = l[o].match(k.arrayQueryExpression);\n                if (!q) {\n                    var r = l[o].split(\"=\");\n                    m[k.decodeComponent(r[0])] = ((((r[1] === undefined)) ? null : k.decodeComponent(r[1])));\n                }\n                 else {\n                    var s = q[2].split(/\\]\\[|\\[|\\]/).slice(0, -1), t = q[1], u = k.decodeComponent(((q[3] || \"\")));\n                    s[0] = t;\n                    var v = m;\n                    for (var w = 0; ((w < ((s.length - 1)))); w++) {\n                        if (s[w]) {\n                            if (!n.call(v, s[w])) {\n                                var x = ((((s[((w + 1))] && !s[((w + 1))].match(/^\\d{1,3}$/))) ? {\n                                } : []));\n                                v[s[w]] = x;\n                                if (((v[s[w]] !== x))) {\n                                    return m;\n                                }\n                            ;\n                            ;\n                            }\n                        ;\n                        ;\n                            v = v[s[w]];\n                        }\n                         else {\n                            if (((s[((w + 1))] && !s[((w + 1))].match(/^\\d{1,3}$/)))) {\n                                v.push({\n                                });\n                            }\n                             else v.push([]);\n                        ;\n                        ;\n                            v = v[((v.length - 1))];\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                    if (((((v instanceof Array)) && ((s[((s.length - 1))] === \"\"))))) {\n                        v.push(u);\n                    }\n                     else v[s[((s.length - 1))]] = u;\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            return m;\n        },\n        implodeQuery: function(l, m, n) {\n            m = ((m || \"\"));\n            if (((n === undefined))) {\n                n = true;\n            }\n        ;\n        ;\n            var o = [];\n            if (((((l === null)) || ((l === undefined))))) {\n                o.push(((n ? k.encodeComponent(m) : m)));\n            }\n             else if (((l instanceof Array))) {\n                for (var p = 0; ((p < l.length)); ++p) {\n                    try {\n                        if (((l[p] !== undefined))) {\n                            o.push(k.implodeQuery(l[p], ((m ? ((((((m + \"[\")) + p)) + \"]\")) : p)), n));\n                        }\n                    ;\n                    ;\n                    } catch (q) {\n                    \n                    };\n                ;\n                };\n            ;\n            }\n             else if (((typeof (l) == \"object\"))) {\n                if (((((\"nodeName\" in l)) && ((\"nodeType\" in l))))) {\n                    o.push(\"{node}\");\n                }\n                 else {\n                    var fin28keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin28i = (0);\n                    var r;\n                    for (; (fin28i < fin28keys.length); (fin28i++)) {\n                        ((r) = (fin28keys[fin28i]));\n                        {\n                            try {\n                                if (((l[r] !== undefined))) {\n                                    o.push(k.implodeQuery(l[r], ((m ? ((((((m + \"[\")) + r)) + \"]\")) : r)), n));\n                                }\n                            ;\n                            ;\n                            } catch (q) {\n                            \n                            };\n                        ;\n                        };\n                    };\n                }\n            ;\n            ;\n            }\n             else if (n) {\n                o.push(((((k.encodeComponent(m) + \"=\")) + k.encodeComponent(l))));\n            }\n             else o.push(((((m + \"=\")) + l)));\n            \n            \n            \n        ;\n        ;\n            return o.join(\"&\");\n        },\n        encodeComponent: function(l) {\n            return encodeURIComponent(l).replace(/%5D/g, \"]\").replace(/%5B/g, \"[\");\n        },\n        decodeComponent: function(l) {\n            return decodeURIComponent(l.replace(/\\+/g, \" \"));\n        }\n    });\n    e.exports = k;\n});\n__d(\"AsyncSignal\", [\"Env\",\"ErrorUtils\",\"QueryString\",\"URI\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"ErrorUtils\"), i = b(\"QueryString\"), j = b(\"URI\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n    function m(n, o) {\n        this.data = ((o || {\n        }));\n        if (((g.tracking_domain && ((n.charAt(0) == \"/\"))))) {\n            n = ((g.tracking_domain + n));\n        }\n    ;\n    ;\n        this.uri = n;\n    };\n;\n    m.prototype.setHandler = function(n) {\n        this.handler = n;\n        return this;\n    };\n    m.prototype.send = function() {\n        var n = this.handler, o = this.data, p = new JSBNG__Image();\n        if (n) {\n            p.JSBNG__onload = p.JSBNG__onerror = function() {\n                h.applyWithGuard(n, null, [((p.height == 1)),]);\n            };\n        }\n    ;\n    ;\n        o.asyncSignal = ((((((Math.JSBNG__random() * 10000)) | 0)) + 1));\n        var q = new j(this.uri).isFacebookURI();\n        l(o, k.getAsyncParams(((q ? \"POST\" : \"GET\"))));\n        p.src = i.appendToUrl(this.uri, o);\n        return this;\n    };\n    e.exports = m;\n});\n__d(\"createObjectFrom\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\");\n    function h(i, j) {\n        var k = {\n        }, l = g(j);\n        if (((typeof j == \"undefined\"))) {\n            j = true;\n        }\n    ;\n    ;\n        for (var m = i.length; m--; ) {\n            k[i[m]] = ((l ? j[m] : j));\n        ;\n        };\n    ;\n        return k;\n    };\n;\n    e.exports = h;\n});\n__d(\"DOMQuery\", [\"CSS\",\"UserAgent\",\"createArrayFrom\",\"createObjectFrom\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"UserAgent\"), i = b(\"createArrayFrom\"), j = b(\"createObjectFrom\"), k = b(\"ge\"), l = null;\n    function m(o, p) {\n        return ((o.hasAttribute ? o.hasAttribute(p) : ((o.getAttribute(p) !== null))));\n    };\n;\n    var n = {\n        JSBNG__find: function(o, p) {\n            var q = n.scry(o, p);\n            return q[0];\n        },\n        scry: function(o, p) {\n            if (((!o || !o.getElementsByTagName))) {\n                return [];\n            }\n        ;\n        ;\n            var q = p.split(\" \"), r = [o,];\n            for (var s = 0; ((s < q.length)); s++) {\n                if (((r.length === 0))) {\n                    break;\n                }\n            ;\n            ;\n                if (((q[s] === \"\"))) {\n                    continue;\n                }\n            ;\n            ;\n                var t = q[s], u = q[s], v = [], w = false;\n                if (((t.charAt(0) == \"^\"))) {\n                    if (((s === 0))) {\n                        w = true;\n                        t = t.slice(1);\n                    }\n                     else return []\n                ;\n                }\n            ;\n            ;\n                t = t.replace(/\\[(?:[^=\\]]*=(?:\"[^\"]*\"|'[^']*'))?|[.#]/g, \" $&\");\n                var x = t.split(\" \"), y = ((x[0] || \"*\")), z = ((y == \"*\")), aa = ((x[1] && ((x[1].charAt(0) == \"#\"))));\n                if (aa) {\n                    var ba = k(x[1].slice(1), o, y);\n                    if (((ba && ((z || ((ba.tagName.toLowerCase() == y))))))) {\n                        for (var ca = 0; ((ca < r.length)); ca++) {\n                            if (((w && n.contains(ba, r[ca])))) {\n                                v = [ba,];\n                                break;\n                            }\n                             else if (((((JSBNG__document == r[ca])) || n.contains(r[ca], ba)))) {\n                                v = [ba,];\n                                break;\n                            }\n                            \n                        ;\n                        ;\n                        };\n                    }\n                ;\n                ;\n                }\n                 else {\n                    var da = [], ea = r.length, fa, ga = ((((!w && ((u.indexOf(\"[\") < 0)))) && JSBNG__document.querySelectorAll));\n                    for (var ha = 0; ((ha < ea)); ha++) {\n                        if (w) {\n                            fa = [];\n                            var ia = r[ha].parentNode;\n                            while (n.isElementNode(ia)) {\n                                if (((z || ((ia.tagName.toLowerCase() == y))))) {\n                                    fa.push(ia);\n                                }\n                            ;\n                            ;\n                                ia = ia.parentNode;\n                            };\n                        ;\n                        }\n                         else if (ga) {\n                            fa = r[ha].querySelectorAll(u);\n                        }\n                         else fa = r[ha].getElementsByTagName(y);\n                        \n                    ;\n                    ;\n                        var ja = fa.length;\n                        for (var ka = 0; ((ka < ja)); ka++) {\n                            da.push(fa[ka]);\n                        ;\n                        };\n                    ;\n                    };\n                ;\n                    if (!ga) {\n                        for (var la = 1; ((la < x.length)); la++) {\n                            var ma = x[la], na = ((ma.charAt(0) == \".\")), oa = ma.substring(1);\n                            for (ha = 0; ((ha < da.length)); ha++) {\n                                var pa = da[ha];\n                                if (((!pa || ((pa.nodeType !== 1))))) {\n                                    continue;\n                                }\n                            ;\n                            ;\n                                if (na) {\n                                    if (!g.hasClass(pa, oa)) {\n                                        delete da[ha];\n                                    }\n                                ;\n                                ;\n                                    continue;\n                                }\n                                 else {\n                                    var qa = ma.slice(1, ((ma.length - 1)));\n                                    if (((qa.indexOf(\"=\") == -1))) {\n                                        if (!m(pa, qa)) {\n                                            delete da[ha];\n                                            continue;\n                                        }\n                                    ;\n                                    ;\n                                    }\n                                     else {\n                                        var ra = qa.split(\"=\"), sa = ra[0], ta = ra[1];\n                                        ta = ta.slice(1, ((ta.length - 1)));\n                                        if (((pa.getAttribute(sa) != ta))) {\n                                            delete da[ha];\n                                            continue;\n                                        }\n                                    ;\n                                    ;\n                                    }\n                                ;\n                                ;\n                                }\n                            ;\n                            ;\n                            };\n                        ;\n                        };\n                    }\n                ;\n                ;\n                    for (ha = 0; ((ha < da.length)); ha++) {\n                        if (da[ha]) {\n                            v.push(da[ha]);\n                            if (w) {\n                                break;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                }\n            ;\n            ;\n                r = v;\n            };\n        ;\n            return r;\n        },\n        getText: function(o) {\n            if (n.isTextNode(o)) {\n                return o.data;\n            }\n             else if (n.isElementNode(o)) {\n                if (((l === null))) {\n                    var p = JSBNG__document.createElement(\"div\");\n                    l = ((((p.textContent != null)) ? \"textContent\" : \"innerText\"));\n                }\n            ;\n            ;\n                return o[l];\n            }\n             else return \"\"\n            \n        ;\n        },\n        JSBNG__getSelection: function() {\n            var o = window.JSBNG__getSelection, p = JSBNG__document.selection;\n            if (o) {\n                return ((o() + \"\"));\n            }\n             else if (p) {\n                return p.createRange().text;\n            }\n            \n        ;\n        ;\n            return null;\n        },\n        contains: function(o, p) {\n            o = k(o);\n            p = k(p);\n            if (((!o || !p))) {\n                return false;\n            }\n             else if (((o === p))) {\n                return true;\n            }\n             else if (n.isTextNode(o)) {\n                return false;\n            }\n             else if (n.isTextNode(p)) {\n                return n.contains(o, p.parentNode);\n            }\n             else if (o.contains) {\n                return o.contains(p);\n            }\n             else if (o.compareDocumentPosition) {\n                return !!((o.compareDocumentPosition(p) & 16));\n            }\n             else return false\n            \n            \n            \n            \n            \n        ;\n        },\n        getRootElement: function() {\n            var o = null;\n            if (((window.Quickling && Quickling.isActive()))) {\n                o = k(\"JSBNG__content\");\n            }\n        ;\n        ;\n            return ((o || JSBNG__document.body));\n        },\n        isNode: function(o) {\n            return !!((o && ((((typeof JSBNG__Node !== \"undefined\")) ? ((o instanceof JSBNG__Node)) : ((((((typeof o == \"object\")) && ((typeof o.nodeType == \"number\")))) && ((typeof o.nodeName == \"string\"))))))));\n        },\n        isNodeOfType: function(o, p) {\n            var q = i(p).join(\"|\").toUpperCase().split(\"|\"), r = j(q);\n            return ((n.isNode(o) && ((o.nodeName in r))));\n        },\n        isElementNode: function(o) {\n            return ((n.isNode(o) && ((o.nodeType == 1))));\n        },\n        isTextNode: function(o) {\n            return ((n.isNode(o) && ((o.nodeType == 3))));\n        },\n        isInputNode: function(o) {\n            return ((n.isNodeOfType(o, [\"input\",\"textarea\",]) || ((o.contentEditable === \"true\"))));\n        },\n        getDocumentScrollElement: function(o) {\n            o = ((o || JSBNG__document));\n            var p = ((h.chrome() || h.webkit()));\n            return ((((!p && ((o.compatMode === \"CSS1Compat\")))) ? o.documentElement : o.body));\n        }\n    };\n    e.exports = n;\n});\n__d(\"DataStore\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = 1;\n    function i(l) {\n        if (((typeof l == \"string\"))) {\n            return ((\"str_\" + l));\n        }\n         else return ((\"elem_\" + ((l.__FB_TOKEN || (l.__FB_TOKEN = [h++,])))[0]))\n    ;\n    };\n;\n    function j(l) {\n        var m = i(l);\n        return ((g[m] || (g[m] = {\n        })));\n    };\n;\n    var k = {\n        set: function(l, m, n) {\n            if (!l) {\n                throw new TypeError(((\"DataStore.set: namespace is required, got \" + (typeof l))));\n            }\n        ;\n        ;\n            var o = j(l);\n            o[m] = n;\n            return l;\n        },\n        get: function(l, m, n) {\n            if (!l) {\n                throw new TypeError(((\"DataStore.get: namespace is required, got \" + (typeof l))));\n            }\n        ;\n        ;\n            var o = j(l), p = o[m];\n            if (((((typeof p === \"undefined\")) && l.getAttribute))) {\n                if (((l.hasAttribute && !l.hasAttribute(((\"data-\" + m)))))) {\n                    p = undefined;\n                }\n                 else {\n                    var q = l.getAttribute(((\"data-\" + m)));\n                    p = ((((null === q)) ? undefined : q));\n                }\n            ;\n            }\n        ;\n        ;\n            if (((((n !== undefined)) && ((p === undefined))))) {\n                p = o[m] = n;\n            }\n        ;\n        ;\n            return p;\n        },\n        remove: function(l, m) {\n            if (!l) {\n                throw new TypeError(((\"DataStore.remove: namespace is required, got \" + (typeof l))));\n            }\n        ;\n        ;\n            var n = j(l), o = n[m];\n            delete n[m];\n            return o;\n        },\n        purge: function(l) {\n            delete g[i(l)];\n        }\n    };\n    e.exports = k;\n});\n__d(\"DOMEvent\", [\"copyProperties\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"invariant\");\n    function i(j) {\n        this.JSBNG__event = ((j || window.JSBNG__event));\n        h(((typeof (this.JSBNG__event.srcElement) != \"unknown\")));\n        this.target = ((this.JSBNG__event.target || this.JSBNG__event.srcElement));\n    };\n;\n    i.killThenCall = function(j) {\n        return function(k) {\n            new i(k).kill();\n            return j();\n        };\n    };\n    g(i.prototype, {\n        preventDefault: function() {\n            var j = this.JSBNG__event;\n            if (j.preventDefault) {\n                j.preventDefault();\n                if (!((\"defaultPrevented\" in j))) {\n                    j.defaultPrevented = true;\n                }\n            ;\n            ;\n            }\n             else j.returnValue = false;\n        ;\n        ;\n            return this;\n        },\n        isDefaultPrevented: function() {\n            var j = this.JSBNG__event;\n            return ((((\"defaultPrevented\" in j)) ? j.defaultPrevented : ((j.returnValue === false))));\n        },\n        stopPropagation: function() {\n            var j = this.JSBNG__event;\n            ((j.stopPropagation ? j.stopPropagation() : j.cancelBubble = true));\n            return this;\n        },\n        kill: function() {\n            this.stopPropagation().preventDefault();\n            return this;\n        }\n    });\n    e.exports = i;\n});\n__d(\"getObjectValues\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\");\n    function h(i) {\n        var j = [];\n        {\n            var fin29keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin29i = (0);\n            var k;\n            for (; (fin29i < fin29keys.length); (fin29i++)) {\n                ((k) = (fin29keys[fin29i]));\n                {\n                    j.push(i[k]);\n                ;\n                };\n            };\n        };\n    ;\n        return j;\n    };\n;\n    e.exports = h;\n});\n__d(\"JSBNG__Event\", [\"event-form-bubbling\",\"Arbiter\",\"DataStore\",\"DOMQuery\",\"DOMEvent\",\"ErrorUtils\",\"Parent\",\"UserAgent\",\"$\",\"copyProperties\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    b(\"event-form-bubbling\");\n    var g = b(\"Arbiter\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"DOMEvent\"), k = b(\"ErrorUtils\"), l = b(\"Parent\"), m = b(\"UserAgent\"), n = b(\"$\"), o = b(\"copyProperties\"), p = b(\"getObjectValues\"), q = a.JSBNG__Event;\n    q.DATASTORE_KEY = \"JSBNG__Event.listeners\";\n    if (!q.prototype) {\n        q.prototype = {\n        };\n    }\n;\n;\n    function r(ca) {\n        if (((((((ca.type === \"click\")) || ((ca.type === \"mouseover\")))) || ((ca.type === \"keydown\"))))) {\n            g.inform(\"Event/stop\", {\n                JSBNG__event: ca\n            });\n        }\n    ;\n    ;\n    };\n;\n    function s(ca, da, ea) {\n        this.target = ca;\n        this.type = da;\n        this.data = ea;\n    };\n;\n    o(s.prototype, {\n        getData: function() {\n            this.data = ((this.data || {\n            }));\n            return this.data;\n        },\n        JSBNG__stop: function() {\n            return q.JSBNG__stop(this);\n        },\n        prevent: function() {\n            return q.prevent(this);\n        },\n        isDefaultPrevented: function() {\n            return q.isDefaultPrevented(this);\n        },\n        kill: function() {\n            return q.kill(this);\n        },\n        getTarget: function() {\n            return ((new j(this).target || null));\n        }\n    });\n    function t(ca) {\n        if (((ca instanceof s))) {\n            return ca;\n        }\n    ;\n    ;\n        if (!ca) {\n            if (((!window.JSBNG__addEventListener && JSBNG__document.createEventObject))) {\n                ca = ((window.JSBNG__event ? JSBNG__document.createEventObject(window.JSBNG__event) : {\n                }));\n            }\n             else ca = {\n            };\n        ;\n        }\n    ;\n    ;\n        if (!ca._inherits_from_prototype) {\n            {\n                var fin30keys = ((window.top.JSBNG_Replay.forInKeys)((q.prototype))), fin30i = (0);\n                var da;\n                for (; (fin30i < fin30keys.length); (fin30i++)) {\n                    ((da) = (fin30keys[fin30i]));\n                    {\n                        try {\n                            ca[da] = q.prototype[da];\n                        } catch (ea) {\n                        \n                        };\n                    ;\n                    };\n                };\n            };\n        }\n    ;\n    ;\n        return ca;\n    };\n;\n    o(q.prototype, {\n        _inherits_from_prototype: true,\n        getRelatedTarget: function() {\n            var ca = ((this.relatedTarget || ((((this.fromElement === this.srcElement)) ? this.toElement : this.fromElement))));\n            return ((((ca && ca.nodeType)) ? ca : null));\n        },\n        getModifiers: function() {\n            var ca = {\n                control: !!this.ctrlKey,\n                shift: !!this.shiftKey,\n                alt: !!this.altKey,\n                meta: !!this.metaKey\n            };\n            ca.access = ((m.osx() ? ca.control : ca.alt));\n            ca.any = ((((((ca.control || ca.shift)) || ca.alt)) || ca.meta));\n            return ca;\n        },\n        isRightClick: function() {\n            if (this.which) {\n                return ((this.which === 3));\n            }\n        ;\n        ;\n            return ((this.button && ((this.button === 2))));\n        },\n        isMiddleClick: function() {\n            if (this.which) {\n                return ((this.which === 2));\n            }\n        ;\n        ;\n            return ((this.button && ((this.button === 4))));\n        },\n        isDefaultRequested: function() {\n            return ((((this.getModifiers().any || this.isMiddleClick())) || this.isRightClick()));\n        }\n    });\n    o(q.prototype, s.prototype);\n    o(q, {\n        listen: function(ca, da, ea, fa) {\n            if (((typeof ca == \"string\"))) {\n                ca = n(ca);\n            }\n        ;\n        ;\n            if (((typeof fa == \"undefined\"))) {\n                fa = q.Priority.NORMAL;\n            }\n        ;\n        ;\n            if (((typeof da == \"object\"))) {\n                var ga = {\n                };\n                {\n                    var fin31keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin31i = (0);\n                    var ha;\n                    for (; (fin31i < fin31keys.length); (fin31i++)) {\n                        ((ha) = (fin31keys[fin31i]));\n                        {\n                            ga[ha] = q.listen(ca, ha, da[ha], fa);\n                        ;\n                        };\n                    };\n                };\n            ;\n                return ga;\n            }\n        ;\n        ;\n            if (da.match(/^on/i)) {\n                throw new TypeError(((((\"Bad event name `\" + da)) + \"': use `click', not `onclick'.\")));\n            }\n        ;\n        ;\n            if (((((ca.nodeName == \"LABEL\")) && ((da == \"click\"))))) {\n                var ia = ca.getElementsByTagName(\"input\");\n                ca = ((((ia.length == 1)) ? ia[0] : ca));\n            }\n             else if (((((ca === window)) && ((da === \"JSBNG__scroll\"))))) {\n                var ja = i.getDocumentScrollElement();\n                if (((((ja !== JSBNG__document.documentElement)) && ((ja !== JSBNG__document.body))))) {\n                    ca = ja;\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            var ka = h.get(ca, v, {\n            });\n            if (x[da]) {\n                var la = x[da];\n                da = la.base;\n                if (la.wrap) {\n                    ea = la.wrap(ea);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            z(ca, da);\n            var ma = ka[da];\n            if (!((fa in ma))) {\n                ma[fa] = [];\n            }\n        ;\n        ;\n            var na = ma[fa].length, oa = new ba(ea, ma[fa], na);\n            ma[fa].push(oa);\n            return oa;\n        },\n        JSBNG__stop: function(ca) {\n            var da = new j(ca).stopPropagation();\n            r(da.JSBNG__event);\n            return ca;\n        },\n        prevent: function(ca) {\n            new j(ca).preventDefault();\n            return ca;\n        },\n        isDefaultPrevented: function(ca) {\n            return new j(ca).isDefaultPrevented(ca);\n        },\n        kill: function(ca) {\n            var da = new j(ca).kill();\n            r(da.JSBNG__event);\n            return false;\n        },\n        getKeyCode: function(JSBNG__event) {\n            JSBNG__event = new j(JSBNG__event).JSBNG__event;\n            if (!JSBNG__event) {\n                return false;\n            }\n        ;\n        ;\n            switch (JSBNG__event.keyCode) {\n              case 63232:\n                return 38;\n              case 63233:\n                return 40;\n              case 63234:\n                return 37;\n              case 63235:\n                return 39;\n              case 63272:\n            \n              case 63273:\n            \n              case 63275:\n                return null;\n              case 63276:\n                return 33;\n              case 63277:\n                return 34;\n            };\n        ;\n            if (JSBNG__event.shiftKey) {\n                switch (JSBNG__event.keyCode) {\n                  case 33:\n                \n                  case 34:\n                \n                  case 37:\n                \n                  case 38:\n                \n                  case 39:\n                \n                  case 40:\n                    return null;\n                };\n            }\n        ;\n        ;\n            return JSBNG__event.keyCode;\n        },\n        getPriorities: function() {\n            if (!u) {\n                var ca = p(q.Priority);\n                ca.sort(function(da, ea) {\n                    return ((da - ea));\n                });\n                u = ca;\n            }\n        ;\n        ;\n            return u;\n        },\n        fire: function(ca, da, ea) {\n            var fa = new s(ca, da, ea), ga;\n            do {\n                var ha = q.__getHandler(ca, da);\n                if (ha) {\n                    ga = ha(fa);\n                }\n            ;\n            ;\n                ca = ca.parentNode;\n            } while (((((ca && ((ga !== false)))) && !fa.cancelBubble)));\n            return ((ga !== false));\n        },\n        __fire: function(ca, da, JSBNG__event) {\n            var ea = q.__getHandler(ca, da);\n            if (ea) {\n                return ea(t(JSBNG__event));\n            }\n        ;\n        ;\n        },\n        __getHandler: function(ca, da) {\n            return h.get(ca, ((q.DATASTORE_KEY + da)));\n        },\n        getPosition: function(ca) {\n            ca = new j(ca).JSBNG__event;\n            var da = i.getDocumentScrollElement(), ea = ((ca.clientX + da.scrollLeft)), fa = ((ca.clientY + da.scrollTop));\n            return {\n                x: ea,\n                y: fa\n            };\n        }\n    });\n    var u = null, v = q.DATASTORE_KEY, w = function(ca) {\n        return function(da) {\n            if (!i.contains(this, da.getRelatedTarget())) {\n                return ca.call(this, da);\n            }\n        ;\n        ;\n        };\n    }, x;\n    if (!window.JSBNG__navigator.msPointerEnabled) {\n        x = {\n            mouseenter: {\n                base: \"mouseover\",\n                wrap: w\n            },\n            mouseleave: {\n                base: \"mouseout\",\n                wrap: w\n            }\n        };\n    }\n     else x = {\n        mousedown: {\n            base: \"MSPointerDown\"\n        },\n        mousemove: {\n            base: \"MSPointerMove\"\n        },\n        mouseup: {\n            base: \"MSPointerUp\"\n        },\n        mouseover: {\n            base: \"MSPointerOver\"\n        },\n        mouseout: {\n            base: \"MSPointerOut\"\n        },\n        mouseenter: {\n            base: \"MSPointerOver\",\n            wrap: w\n        },\n        mouseleave: {\n            base: \"MSPointerOut\",\n            wrap: w\n        }\n    };\n;\n;\n    if (m.firefox()) {\n        var y = function(ca, JSBNG__event) {\n            JSBNG__event = t(JSBNG__event);\n            var da = JSBNG__event.getTarget();\n            while (da) {\n                q.__fire(da, ca, JSBNG__event);\n                da = da.parentNode;\n            };\n        ;\n        };\n        JSBNG__document.documentElement.JSBNG__addEventListener(\"JSBNG__focus\", y.curry(\"focusin\"), true);\n        JSBNG__document.documentElement.JSBNG__addEventListener(\"JSBNG__blur\", y.curry(\"focusout\"), true);\n    }\n;\n;\n    var z = function(ca, da) {\n        var ea = ((\"JSBNG__on\" + da)), fa = aa.bind(ca, da), ga = h.get(ca, v);\n        if (((da in ga))) {\n            return;\n        }\n    ;\n    ;\n        ga[da] = {\n        };\n        if (ca.JSBNG__addEventListener) {\n            ca.JSBNG__addEventListener(da, fa, false);\n        }\n         else if (ca.JSBNG__attachEvent) {\n            ca.JSBNG__attachEvent(ea, fa);\n        }\n        \n    ;\n    ;\n        h.set(ca, ((v + da)), fa);\n        if (ca[ea]) {\n            var ha = ((((ca === JSBNG__document.documentElement)) ? q.Priority._BUBBLE : q.Priority.TRADITIONAL)), ia = ca[ea];\n            ca[ea] = null;\n            q.listen(ca, da, ia, ha);\n        }\n    ;\n    ;\n        if (((((ca.nodeName === \"FORM\")) && ((da === \"submit\"))))) {\n            q.listen(ca, da, q.__bubbleSubmit.curry(ca), q.Priority._BUBBLE);\n        }\n    ;\n    ;\n    }, aa = k.guard(function(ca, JSBNG__event) {\n        JSBNG__event = t(JSBNG__event);\n        if (!h.get(this, v)) {\n            throw new Error(\"Bad listenHandler context.\");\n        }\n    ;\n    ;\n        var da = h.get(this, v)[ca];\n        if (!da) {\n            throw new Error(((((\"No registered handlers for `\" + ca)) + \"'.\")));\n        }\n    ;\n    ;\n        if (((ca == \"click\"))) {\n            var ea = l.byTag(JSBNG__event.getTarget(), \"a\");\n            if (window.userAction) {\n                var fa = window.userAction(\"evt_ext\", ea, JSBNG__event, {\n                    mode: \"DEDUP\"\n                }).uai_fallback(\"click\");\n                if (window.ArbiterMonitor) {\n                    window.ArbiterMonitor.initUA(fa, [ea,]);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (window.clickRefAction) {\n                window.clickRefAction(\"click\", ea, JSBNG__event);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        var ga = q.getPriorities();\n        for (var ha = 0; ((ha < ga.length)); ha++) {\n            var ia = ga[ha];\n            if (((ia in da))) {\n                var ja = da[ia];\n                for (var ka = 0; ((ka < ja.length)); ka++) {\n                    if (!ja[ka]) {\n                        continue;\n                    }\n                ;\n                ;\n                    var la = ja[ka].fire(this, JSBNG__event);\n                    if (((la === false))) {\n                        return JSBNG__event.kill();\n                    }\n                     else if (JSBNG__event.cancelBubble) {\n                        JSBNG__event.JSBNG__stop();\n                    }\n                    \n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n        };\n    ;\n        return JSBNG__event.returnValue;\n    });\n    q.Priority = {\n        URGENT: -20,\n        TRADITIONAL: -10,\n        NORMAL: 0,\n        _BUBBLE: 1000\n    };\n    function ba(ca, da, ea) {\n        this._handler = ca;\n        this._container = da;\n        this._index = ea;\n    };\n;\n    o(ba.prototype, {\n        remove: function() {\n            delete this._handler;\n            delete this._container[this._index];\n        },\n        fire: function(ca, JSBNG__event) {\n            return k.applyWithGuard(this._handler, ca, [JSBNG__event,], function(da) {\n                da.event_type = JSBNG__event.type;\n                da.dom_element = ((ca.JSBNG__name || ca.id));\n                da.category = \"eventhandler\";\n            });\n        }\n    });\n    a.$E = q.$E = t;\n    e.exports = q;\n});\n__d(\"evalGlobal\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if (((typeof h != \"string\"))) {\n            throw new TypeError(\"JS sent to evalGlobal is not a string. Only strings are permitted.\");\n        }\n    ;\n    ;\n        if (!h) {\n            return;\n        }\n    ;\n    ;\n        var i = JSBNG__document.createElement(\"script\");\n        try {\n            i.appendChild(JSBNG__document.createTextNode(h));\n        } catch (j) {\n            i.text = h;\n        };\n    ;\n        var k = ((JSBNG__document.getElementsByTagName(\"head\")[0] || JSBNG__document.documentElement));\n        k.appendChild(i);\n        k.removeChild(i);\n    };\n;\n    e.exports = g;\n});\n__d(\"HTML\", [\"function-extensions\",\"Bootloader\",\"UserAgent\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"evalGlobal\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Bootloader\"), h = b(\"UserAgent\"), i = b(\"copyProperties\"), j = b(\"createArrayFrom\"), k = b(\"emptyFunction\"), l = b(\"evalGlobal\");\n    function m(n) {\n        if (((n && ((typeof n.__html == \"string\"))))) {\n            n = n.__html;\n        }\n    ;\n    ;\n        if (!((this instanceof m))) {\n            if (((n instanceof m))) {\n                return n;\n            }\n        ;\n        ;\n            return new m(n);\n        }\n    ;\n    ;\n        this._content = n;\n        this._defer = false;\n        this._extra_action = \"\";\n        this._nodes = null;\n        this._inline_js = k;\n        this._rootNode = null;\n        return this;\n    };\n;\n    m.isHTML = function(n) {\n        return ((n && ((((n instanceof m)) || ((n.__html !== undefined))))));\n    };\n    m.replaceJSONWrapper = function(n) {\n        return ((((n && ((n.__html !== undefined)))) ? new m(n.__html) : n));\n    };\n    i(m.prototype, {\n        toString: function() {\n            var n = ((this._content || \"\"));\n            if (this._extra_action) {\n                n += ((((((\"\\u003Cscript type=\\\"text/javascript\\\"\\u003E\" + this._extra_action)) + \"\\u003C/scr\")) + \"ipt\\u003E\"));\n            }\n        ;\n        ;\n            return n;\n        },\n        setAction: function(n) {\n            this._extra_action = n;\n            return this;\n        },\n        getAction: function() {\n            this._fillCache();\n            var n = function() {\n                this._inline_js();\n                l(this._extra_action);\n            }.bind(this);\n            if (this.getDeferred()) {\n                return n.defer.bind(n);\n            }\n             else return n\n        ;\n        },\n        setDeferred: function(n) {\n            this._defer = !!n;\n            return this;\n        },\n        getDeferred: function() {\n            return this._defer;\n        },\n        getContent: function() {\n            return this._content;\n        },\n        getNodes: function() {\n            this._fillCache();\n            return this._nodes;\n        },\n        getRootNode: function() {\n            var n = this.getNodes();\n            if (((n.length === 1))) {\n                this._rootNode = n[0];\n            }\n             else {\n                var o = JSBNG__document.createDocumentFragment();\n                for (var p = 0; ((p < n.length)); p++) {\n                    o.appendChild(n[p]);\n                ;\n                };\n            ;\n                this._rootNode = o;\n            }\n        ;\n        ;\n            return this._rootNode;\n        },\n        _fillCache: function() {\n            if (((null !== this._nodes))) {\n                return;\n            }\n        ;\n        ;\n            var n = this._content;\n            if (!n) {\n                this._nodes = [];\n                return;\n            }\n        ;\n        ;\n            n = n.replace(/(<(\\w+)[^>]*?)\\/>/g, function(y, z, aa) {\n                return ((aa.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? y : ((((((z + \"\\u003E\\u003C/\")) + aa)) + \"\\u003E\"))));\n            });\n            var o = n.trim().toLowerCase(), p = JSBNG__document.createElement(\"div\"), q = false, r = ((((((((((((((!o.indexOf(\"\\u003Copt\") && [1,\"\\u003Cselect multiple=\\\"multiple\\\" class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/select\\u003E\",])) || ((!o.indexOf(\"\\u003Cleg\") && [1,\"\\u003Cfieldset class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/fieldset\\u003E\",])))) || ((o.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1,\"\\u003Ctable class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/table\\u003E\",])))) || ((!o.indexOf(\"\\u003Ctr\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/tbody\\u003E\\u003C/table\\u003E\",])))) || ((((!o.indexOf(\"\\u003Ctd\") || !o.indexOf(\"\\u003Cth\"))) && [3,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003Ctr class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\",])))) || ((!o.indexOf(\"\\u003Ccol\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003C/tbody\\u003E\\u003Ccolgroup class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/colgroup\\u003E\\u003C/table\\u003E\",])))) || null));\n            if (((null === r))) {\n                p.className = \"__WRAPPER\";\n                if (h.ie()) {\n                    r = [0,\"\\u003Cspan style=\\\"display:none\\\"\\u003E&nbsp;\\u003C/span\\u003E\",\"\",];\n                    q = true;\n                }\n                 else r = [0,\"\",\"\",];\n            ;\n            ;\n            }\n        ;\n        ;\n            p.innerHTML = ((((r[1] + n)) + r[2]));\n            while (r[0]--) {\n                p = p.lastChild;\n            ;\n            };\n        ;\n            if (q) {\n                p.removeChild(p.firstChild);\n            }\n        ;\n        ;\n            ((p.className != \"__WRAPPER\"));\n            if (h.ie()) {\n                var s;\n                if (((!o.indexOf(\"\\u003Ctable\") && ((-1 == o.indexOf(\"\\u003Ctbody\")))))) {\n                    s = ((p.firstChild && p.firstChild.childNodes));\n                }\n                 else if (((((r[1] == \"\\u003Ctable\\u003E\")) && ((-1 == o.indexOf(\"\\u003Ctbody\")))))) {\n                    s = p.childNodes;\n                }\n                 else s = [];\n                \n            ;\n            ;\n                for (var t = ((s.length - 1)); ((t >= 0)); --t) {\n                    if (((((s[t].nodeName && ((s[t].nodeName.toLowerCase() == \"tbody\")))) && ((s[t].childNodes.length == 0))))) {\n                        s[t].parentNode.removeChild(s[t]);\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            var u = p.getElementsByTagName(\"script\"), v = [];\n            for (var w = 0; ((w < u.length)); w++) {\n                if (u[w].src) {\n                    v.push(g.requestJSResource.bind(g, u[w].src));\n                }\n                 else v.push(l.bind(null, u[w].innerHTML));\n            ;\n            ;\n            };\n        ;\n            for (var w = ((u.length - 1)); ((w >= 0)); w--) {\n                u[w].parentNode.removeChild(u[w]);\n            ;\n            };\n        ;\n            var x = function() {\n                for (var y = 0; ((y < v.length)); y++) {\n                    v[y]();\n                ;\n                };\n            ;\n            };\n            this._nodes = j(p.childNodes);\n            this._inline_js = x;\n        }\n    });\n    e.exports = m;\n});\n__d(\"isScalar\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return (/string|number|boolean/).test(typeof h);\n    };\n;\n    e.exports = g;\n});\n__d(\"JSBNG__Intl\", [], function(a, b, c, d, e, f) {\n    var g;\n    function h(j) {\n        if (((typeof j != \"string\"))) {\n            return false;\n        }\n    ;\n    ;\n        return j.match(new RegExp(((((((((((((((((((((((((((((((((((((((((((((((((((((h.punct_char_class + \"[\")) + \")\\\"\")) + \"'\")) + \"\\u00bb\")) + \"\\u0f3b\")) + \"\\u0f3d\")) + \"\\u2019\")) + \"\\u201d\")) + \"\\u203a\")) + \"\\u3009\")) + \"\\u300b\")) + \"\\u300d\")) + \"\\u300f\")) + \"\\u3011\")) + \"\\u3015\")) + \"\\u3017\")) + \"\\u3019\")) + \"\\u301b\")) + \"\\u301e\")) + \"\\u301f\")) + \"\\ufd3f\")) + \"\\uff07\")) + \"\\uff09\")) + \"\\uff3d\")) + \"\\\\s\")) + \"]*$\"))));\n    };\n;\n    h.punct_char_class = ((((((((((((((((((((((\"[\" + \".!?\")) + \"\\u3002\")) + \"\\uff01\")) + \"\\uff1f\")) + \"\\u0964\")) + \"\\u2026\")) + \"\\u0eaf\")) + \"\\u1801\")) + \"\\u0e2f\")) + \"\\uff0e\")) + \"]\"));\n    function i(j) {\n        if (g) {\n            var k = [], l = [];\n            {\n                var fin32keys = ((window.top.JSBNG_Replay.forInKeys)((g.patterns))), fin32i = (0);\n                var m;\n                for (; (fin32i < fin32keys.length); (fin32i++)) {\n                    ((m) = (fin32keys[fin32i]));\n                    {\n                        var n = g.patterns[m];\n                        {\n                            var fin33keys = ((window.top.JSBNG_Replay.forInKeys)((g.meta))), fin33i = (0);\n                            var o;\n                            for (; (fin33i < fin33keys.length); (fin33i++)) {\n                                ((o) = (fin33keys[fin33i]));\n                                {\n                                    var p = new RegExp(o.slice(1, -1), \"g\"), q = g.meta[o];\n                                    m = m.replace(p, q);\n                                    n = n.replace(p, q);\n                                };\n                            };\n                        };\n                    ;\n                        k.push(m);\n                        l.push(n);\n                    };\n                };\n            };\n        ;\n            for (var r = 0; ((r < k.length)); r++) {\n                var s = new RegExp(k[r].slice(1, -1), \"g\");\n                if (((l[r] == \"javascript\"))) {\n                    j.replace(s, function(t) {\n                        return t.slice(1).toLowerCase();\n                    });\n                }\n                 else j = j.replace(s, l[r]);\n            ;\n            ;\n            };\n        ;\n        }\n    ;\n    ;\n        return j.replace(/\\x01/g, \"\");\n    };\n;\n    e.exports = {\n        endsInPunct: h,\n        applyPhonologicalRules: i,\n        setPhonologicalRules: function(j) {\n            g = j;\n        }\n    };\n});\n__d(\"substituteTokens\", [\"invariant\",\"JSBNG__Intl\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = b(\"JSBNG__Intl\");\n    function i(j, k) {\n        if (!k) {\n            return j;\n        }\n    ;\n    ;\n        g(((typeof k === \"object\")));\n        var l = ((((\"\\\\{([^}]+)\\\\}(\" + h.endsInPunct.punct_char_class)) + \"*)\")), m = new RegExp(l, \"g\"), n = [], o = j.replace(m, function(r, s, t) {\n            var u = k[s];\n            if (((u && ((typeof u === \"object\"))))) {\n                n.push(u);\n                return ((\"\\u0017\" + t));\n            }\n        ;\n        ;\n            return ((u + ((h.endsInPunct(u) ? \"\" : t))));\n        }).split(\"\\u0017\").map(h.applyPhonologicalRules);\n        if (((o.length === 1))) {\n            return o[0];\n        }\n    ;\n    ;\n        var p = [o[0],];\n        for (var q = 0; ((q < n.length)); q++) {\n            p.push(n[q], o[((q + 1))]);\n        ;\n        };\n    ;\n        return p;\n    };\n;\n    e.exports = i;\n});\n__d(\"tx\", [\"substituteTokens\",], function(a, b, c, d, e, f) {\n    var g = b(\"substituteTokens\");\n    function h(i, j) {\n        if (((typeof _string_table == \"undefined\"))) {\n            return;\n        }\n    ;\n    ;\n        i = _string_table[i];\n        return g(i, j);\n    };\n;\n    h._ = g;\n    e.exports = h;\n});\n__d(\"DOM\", [\"function-extensions\",\"DOMQuery\",\"JSBNG__Event\",\"HTML\",\"UserAgent\",\"$\",\"copyProperties\",\"createArrayFrom\",\"isScalar\",\"tx\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"DOMQuery\"), h = b(\"JSBNG__Event\"), i = b(\"HTML\"), j = b(\"UserAgent\"), k = b(\"$\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\"), n = b(\"isScalar\"), o = b(\"tx\"), p = \"js_\", q = 0, r = {\n    };\n    l(r, g);\n    l(r, {\n        create: function(u, v, w) {\n            var x = JSBNG__document.createElement(u);\n            if (v) {\n                r.setAttributes(x, v);\n            }\n        ;\n        ;\n            if (((w != null))) {\n                r.setContent(x, w);\n            }\n        ;\n        ;\n            return x;\n        },\n        setAttributes: function(u, v) {\n            if (v.type) {\n                u.type = v.type;\n            }\n        ;\n        ;\n            {\n                var fin34keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin34i = (0);\n                var w;\n                for (; (fin34i < fin34keys.length); (fin34i++)) {\n                    ((w) = (fin34keys[fin34i]));\n                    {\n                        var x = v[w], y = (/^on/i).test(w);\n                        if (((w == \"type\"))) {\n                            continue;\n                        }\n                         else if (((w == \"style\"))) {\n                            if (((typeof x == \"string\"))) {\n                                u.style.cssText = x;\n                            }\n                             else l(u.style, x);\n                        ;\n                        ;\n                        }\n                         else if (y) {\n                            h.listen(u, w.substr(2), x);\n                        }\n                         else if (((w in u))) {\n                            u[w] = x;\n                        }\n                         else if (u.setAttribute) {\n                            u.setAttribute(w, x);\n                        }\n                        \n                        \n                        \n                        \n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        prependContent: function(u, v) {\n            return s(v, u, function(w) {\n                ((u.firstChild ? u.insertBefore(w, u.firstChild) : u.appendChild(w)));\n            });\n        },\n        insertAfter: function(u, v) {\n            var w = u.parentNode;\n            return s(v, w, function(x) {\n                ((u.nextSibling ? w.insertBefore(x, u.nextSibling) : w.appendChild(x)));\n            });\n        },\n        insertBefore: function(u, v) {\n            var w = u.parentNode;\n            return s(v, w, function(x) {\n                w.insertBefore(x, u);\n            });\n        },\n        setContent: function(u, v) {\n            r.empty(u);\n            return r.appendContent(u, v);\n        },\n        appendContent: function(u, v) {\n            return s(v, u, function(w) {\n                u.appendChild(w);\n            });\n        },\n        replace: function(u, v) {\n            var w = u.parentNode;\n            return s(v, w, function(x) {\n                w.replaceChild(x, u);\n            });\n        },\n        remove: function(u) {\n            u = k(u);\n            if (u.parentNode) {\n                u.parentNode.removeChild(u);\n            }\n        ;\n        ;\n        },\n        empty: function(u) {\n            u = k(u);\n            while (u.firstChild) {\n                r.remove(u.firstChild);\n            ;\n            };\n        ;\n        },\n        getID: function(u) {\n            var v = u.id;\n            if (!v) {\n                v = ((p + q++));\n                u.id = v;\n            }\n        ;\n        ;\n            return v;\n        }\n    });\n    function s(u, v, w) {\n        u = i.replaceJSONWrapper(u);\n        if (((((((u instanceof i)) && ((\"\" === v.innerHTML)))) && ((-1 === u.toString().indexOf(((\"\\u003Cscr\" + \"ipt\")))))))) {\n            var x = j.ie();\n            if (((!x || ((((x > 7)) && !g.isNodeOfType(v, [\"table\",\"tbody\",\"thead\",\"tfoot\",\"tr\",\"select\",\"fieldset\",])))))) {\n                var y = ((x ? \"\\u003Cem style=\\\"display:none;\\\"\\u003E&nbsp;\\u003C/em\\u003E\" : \"\"));\n                v.innerHTML = ((y + u));\n                ((x && v.removeChild(v.firstChild)));\n                return m(v.childNodes);\n            }\n        ;\n        ;\n        }\n         else if (g.isTextNode(v)) {\n            v.data = u;\n            return [u,];\n        }\n        \n    ;\n    ;\n        var z = JSBNG__document.createDocumentFragment(), aa, ba = [], ca = [];\n        if (!Array.isArray(u)) {\n            u = [u,];\n        }\n    ;\n    ;\n        for (var da = 0; ((da < u.length)); da++) {\n            aa = i.replaceJSONWrapper(u[da]);\n            if (((aa instanceof i))) {\n                ca.push(aa.getAction());\n                var ea = aa.getNodes();\n                for (var fa = 0; ((fa < ea.length)); fa++) {\n                    ba.push(ea[fa]);\n                    z.appendChild(ea[fa]);\n                };\n            ;\n            }\n             else if (n(aa)) {\n                var ga = JSBNG__document.createTextNode(aa);\n                ba.push(ga);\n                z.appendChild(ga);\n            }\n             else if (g.isNode(aa)) {\n                ba.push(aa);\n                z.appendChild(aa);\n            }\n            \n            \n        ;\n        ;\n        };\n    ;\n        w(z);\n        ca.forEach(function(ha) {\n            ha();\n        });\n        return ba;\n    };\n;\n    function t(u) {\n        function v(w) {\n            return r.create(\"div\", {\n            }, w).innerHTML;\n        };\n    ;\n        return function(w, x) {\n            var y = {\n            };\n            if (x) {\n                {\n                    var fin35keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin35i = (0);\n                    var z;\n                    for (; (fin35i < fin35keys.length); (fin35i++)) {\n                        ((z) = (fin35keys[fin35i]));\n                        {\n                            y[z] = v(x[z]);\n                        ;\n                        };\n                    };\n                };\n            }\n        ;\n        ;\n            return i(u(w, y));\n        };\n    };\n;\n    r.tx = t(o);\n    r.tx._ = r._tx = t(o._);\n    e.exports = r;\n});\n__d(\"LinkshimAsyncLink\", [\"$\",\"AsyncSignal\",\"DOM\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"AsyncSignal\"), i = b(\"DOM\"), j = b(\"UserAgent\"), k = {\n        swap: function(l, m) {\n            var n = ((j.ie() <= 8));\n            if (n) {\n                var o = i.create(\"wbr\", {\n                }, null);\n                i.appendContent(l, o);\n            }\n        ;\n        ;\n            l.href = m;\n            if (n) {\n                i.remove(o);\n            }\n        ;\n        ;\n        },\n        referrer_log: function(l, m, n) {\n            var o = g(\"meta_referrer\");\n            o.JSBNG__content = \"origin\";\n            k.swap(l, m);\n            (function() {\n                o.JSBNG__content = \"default\";\n                new h(n, {\n                }).send();\n            }).defer(100);\n        }\n    };\n    e.exports = k;\n});\n__d(\"legacy:dom-asynclinkshim\", [\"LinkshimAsyncLink\",], function(a, b, c, d) {\n    a.LinkshimAsyncLink = b(\"LinkshimAsyncLink\");\n}, 3);\n__d(\"CookieCore\", [], function(a, b, c, d, e, f) {\n    var g = {\n        set: function(h, i, j, k, l) {\n            JSBNG__document.cookie = ((((((((((((((((((h + \"=\")) + encodeURIComponent(i))) + \"; \")) + ((j ? ((((\"expires=\" + (new JSBNG__Date(((JSBNG__Date.now() + j)))).toGMTString())) + \"; \")) : \"\")))) + \"path=\")) + ((k || \"/\")))) + \"; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"))) + ((l ? \"; secure\" : \"\"))));\n        },\n        clear: function(h, i) {\n            i = ((i || \"/\"));\n            JSBNG__document.cookie = ((((((((((h + \"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; \")) + \"path=\")) + i)) + \"; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n        },\n        get: function(h) {\n            var i = JSBNG__document.cookie.match(((((\"(?:^|;\\\\s*)\" + h)) + \"=(.*?)(?:;|$)\")));\n            return ((i ? decodeURIComponent(i[1]) : i));\n        }\n    };\n    e.exports = g;\n});\n__d(\"Cookie\", [\"CookieCore\",\"Env\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"CookieCore\"), h = b(\"Env\"), i = b(\"copyProperties\");\n    function j(l, m, n, o, p) {\n        if (((h.no_cookies && ((l != \"tpa\"))))) {\n            return;\n        }\n    ;\n    ;\n        g.set(l, m, n, o, p);\n    };\n;\n    var k = i({\n    }, g);\n    k.set = j;\n    e.exports = k;\n});\n__d(\"detect_broken_proxy_cache\", [\"AsyncSignal\",\"Cookie\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"Cookie\"), i = b(\"URI\");\n    function j(k, l) {\n        var m = h.get(l);\n        if (((((((m != k)) && ((m != null)))) && ((k != \"0\"))))) {\n            var n = {\n                c: \"si_detect_broken_proxy_cache\",\n                m: ((((((((l + \" \")) + k)) + \" \")) + m))\n            }, o = new i(\"/common/scribe_endpoint.php\").getQualifiedURI().toString();\n            new g(o, n).send();\n        }\n    ;\n    ;\n    };\n;\n    e.exports = j;\n});\n__d(\"legacy:detect-broken-proxy-cache\", [\"detect_broken_proxy_cache\",], function(a, b, c, d) {\n    a.detect_broken_proxy_cache = b(\"detect_broken_proxy_cache\");\n}, 3);\n__d(\"link_rel_preload\", [\"Bootloader\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Parent\");\n    function i() {\n        var j = /async(?:-post)?|dialog(?:-pipe|-post)?|theater|toggle/;\n        JSBNG__document.documentElement.JSBNG__onmousedown = function(k) {\n            k = ((k || window.JSBNG__event));\n            var l = ((k.target || k.srcElement)), m = h.byTag(l, \"A\");\n            if (!m) {\n                return;\n            }\n        ;\n        ;\n            var n = m.getAttribute(\"ajaxify\"), o = m.href, p = ((n || o));\n            if (((((n && o)) && !(/#$/).test(o)))) {\n                var q = ((k.which && ((k.which != 1)))), r = ((((((k.altKey || k.ctrlKey)) || k.metaKey)) || k.shiftKey));\n                if (((q || r))) {\n                    return;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var s = ((m.rel && m.rel.match(j)));\n            s = ((s && s[0]));\n            switch (s) {\n              case \"dialog\":\n            \n              case \"dialog-post\":\n                g.loadModules([\"Dialog\",]);\n                break;\n              case \"dialog-pipe\":\n                g.loadModules([\"AjaxPipeRequest\",\"Dialog\",]);\n                break;\n              case \"async\":\n            \n              case \"async-post\":\n                g.loadModules([\"AsyncRequest\",]);\n                break;\n              case \"theater\":\n                g.loadModules([\"PhotoSnowlift\",], function(t) {\n                    t.preload(p, m);\n                });\n                break;\n              case \"toggle\":\n                g.loadModules([\"Toggler\",]);\n                break;\n            };\n        ;\n            return;\n        };\n    };\n;\n    e.exports = i;\n});\n__d(\"legacy:link-rel-preload\", [\"link_rel_preload\",], function(a, b, c, d) {\n    a.link_rel_preload = b(\"link_rel_preload\");\n}, 3);\n__d(\"AsyncResponse\", [\"Bootloader\",\"Env\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Env\"), i = b(\"copyProperties\"), j = b(\"tx\");\n    function k(l, m) {\n        i(this, {\n            error: 0,\n            errorSummary: null,\n            errorDescription: null,\n            JSBNG__onload: null,\n            replay: false,\n            payload: ((m || null)),\n            request: ((l || null)),\n            silentError: false,\n            transientError: false,\n            is_last: true\n        });\n        return this;\n    };\n;\n    i(k, {\n        defaultErrorHandler: function(l) {\n            try {\n                if (!l.silentError) {\n                    k.verboseErrorHandler(l);\n                }\n                 else l.logErrorByGroup(\"silent\", 10);\n            ;\n            ;\n            } catch (m) {\n                JSBNG__alert(l);\n            };\n        ;\n        },\n        verboseErrorHandler: function(l) {\n            try {\n                var n = l.getErrorSummary(), o = l.getErrorDescription();\n                l.logErrorByGroup(\"popup\", 10);\n                if (((l.silentError && ((o == \"\"))))) {\n                    o = \"Something went wrong. We're working on getting this fixed as soon as we can. You may be able to try again.\";\n                }\n            ;\n            ;\n                g.loadModules([\"Dialog\",], function(p) {\n                    new p().setTitle(n).setBody(o).setButtons([p.OK,]).setModal(true).setCausalElement(this.relativeTo).show();\n                });\n            } catch (m) {\n                JSBNG__alert(l);\n            };\n        ;\n        }\n    });\n    i(k.prototype, {\n        getRequest: function() {\n            return this.request;\n        },\n        getPayload: function() {\n            return this.payload;\n        },\n        getError: function() {\n            return this.error;\n        },\n        getErrorSummary: function() {\n            return this.errorSummary;\n        },\n        setErrorSummary: function(l) {\n            l = ((((l === undefined)) ? null : l));\n            this.errorSummary = l;\n            return this;\n        },\n        getErrorDescription: function() {\n            return this.errorDescription;\n        },\n        getErrorIsWarning: function() {\n            return this.errorIsWarning;\n        },\n        isTransient: function() {\n            return this.transientError;\n        },\n        logError: function(l, m) {\n            var n = a.ErrorSignal;\n            if (n) {\n                var o = {\n                    err_code: this.error,\n                    vip: ((h.vip || \"-\"))\n                };\n                if (m) {\n                    o.duration = m.duration;\n                    o.xfb_ip = m.xfb_ip;\n                }\n            ;\n            ;\n                var p = this.request.getURI();\n                o.path = ((p || \"-\"));\n                o.aid = this.request.userActionID;\n                if (((p && ((p.indexOf(\"scribe_endpoint.php\") != -1))))) {\n                    l = \"async_error_double\";\n                }\n            ;\n            ;\n                n.sendErrorSignal(l, JSON.stringify(o));\n            }\n        ;\n        ;\n        },\n        logErrorByGroup: function(l, m) {\n            if (((Math.floor(((Math.JSBNG__random() * m))) == 0))) {\n                if (((((this.error == 1357010)) || ((this.error < 15000))))) {\n                    this.logError(((\"async_error_oops_\" + l)));\n                }\n                 else this.logError(((\"async_error_logic_\" + l)));\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = k;\n});\n__d(\"HTTPErrors\", [\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"emptyFunction\"), h = {\n        get: g,\n        getAll: g\n    };\n    e.exports = h;\n});\n__d(\"bind\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        var j = Array.prototype.slice.call(arguments, 2);\n        if (((typeof i != \"string\"))) {\n            return Function.prototype.bind.apply(i, [h,].concat(j));\n        }\n    ;\n    ;\n        function k() {\n            var l = j.concat(Array.prototype.slice.call(arguments));\n            if (h[i]) {\n                return h[i].apply(h, l);\n            }\n        ;\n        ;\n        };\n    ;\n        k.toString = function() {\n            return ((\"bound lazily: \" + h[i]));\n        };\n        return k;\n    };\n;\n    e.exports = g;\n});\n__d(\"executeAfter\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        return function() {\n            h.apply(((j || this)), arguments);\n            i.apply(((j || this)), arguments);\n        };\n    };\n;\n    e.exports = g;\n});\n__d(\"AsyncRequest\", [\"Arbiter\",\"AsyncResponse\",\"Bootloader\",\"CSS\",\"Env\",\"ErrorUtils\",\"JSBNG__Event\",\"HTTPErrors\",\"JSCC\",\"Parent\",\"Run\",\"ServerJS\",\"URI\",\"UserAgent\",\"XHR\",\"asyncCallback\",\"bind\",\"copyProperties\",\"emptyFunction\",\"evalGlobal\",\"ge\",\"goURI\",\"isEmpty\",\"ix\",\"tx\",\"executeAfter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncResponse\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"Env\"), l = b(\"ErrorUtils\"), m = b(\"JSBNG__Event\"), n = b(\"HTTPErrors\"), o = b(\"JSCC\"), p = b(\"Parent\"), q = b(\"Run\"), r = b(\"ServerJS\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"XHR\"), v = b(\"asyncCallback\"), w = b(\"bind\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"evalGlobal\"), aa = b(\"ge\"), ba = b(\"goURI\"), ca = b(\"isEmpty\"), da = b(\"ix\"), ea = b(\"tx\"), fa = b(\"executeAfter\");\n    function ga() {\n        try {\n            return !window.loaded;\n        } catch (pa) {\n            return true;\n        };\n    ;\n    };\n;\n    function ha(pa) {\n        return ((((\"upload\" in pa)) && ((\"JSBNG__onprogress\" in pa.upload))));\n    };\n;\n    function ia(pa) {\n        return ((\"withCredentials\" in pa));\n    };\n;\n    function ja(pa) {\n        return ((pa.JSBNG__status in {\n            0: 1,\n            12029: 1,\n            12030: 1,\n            12031: 1,\n            12152: 1\n        }));\n    };\n;\n    function ka(pa) {\n        var qa = ((!pa || ((typeof (pa) === \"function\"))));\n        return qa;\n    };\n;\n    var la = 2, ma = la;\n    g.subscribe(\"page_transition\", function(pa, qa) {\n        ma = qa.id;\n    });\n    function na(pa) {\n        x(this, {\n            transport: null,\n            method: \"POST\",\n            uri: \"\",\n            timeout: null,\n            timer: null,\n            initialHandler: y,\n            handler: null,\n            uploadProgressHandler: null,\n            errorHandler: null,\n            transportErrorHandler: null,\n            timeoutHandler: null,\n            interceptHandler: y,\n            finallyHandler: y,\n            abortHandler: y,\n            serverDialogCancelHandler: null,\n            relativeTo: null,\n            statusElement: null,\n            statusClass: \"\",\n            data: {\n            },\n            file: null,\n            context: {\n            },\n            readOnly: false,\n            writeRequiredParams: [],\n            remainingRetries: 0,\n            userActionID: \"-\"\n        });\n        this.option = {\n            asynchronous: true,\n            suppressErrorHandlerWarning: false,\n            suppressEvaluation: false,\n            suppressErrorAlerts: false,\n            retries: 0,\n            jsonp: false,\n            bundle: false,\n            useIframeTransport: false,\n            handleErrorAfterUnload: false\n        };\n        this.errorHandler = h.defaultErrorHandler;\n        this.transportErrorHandler = w(this, \"errorHandler\");\n        if (((pa !== undefined))) {\n            this.setURI(pa);\n        }\n    ;\n    ;\n    };\n;\n    x(na, {\n        bootstrap: function(pa, qa, ra) {\n            var sa = \"GET\", ta = true, ua = {\n            };\n            if (((ra || ((qa && ((qa.rel == \"async-post\"))))))) {\n                sa = \"POST\";\n                ta = false;\n                if (pa) {\n                    pa = s(pa);\n                    ua = pa.getQueryData();\n                    pa.setQueryData({\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var va = ((p.byClass(qa, \"stat_elem\") || qa));\n            if (((va && j.hasClass(va, \"async_saving\")))) {\n                return false;\n            }\n        ;\n        ;\n            var wa = new na(pa).setReadOnly(ta).setMethod(sa).setData(ua).setNectarModuleDataSafe(qa).setRelativeTo(qa);\n            if (qa) {\n                wa.setHandler(function(ya) {\n                    m.fire(qa, \"success\", {\n                        response: ya\n                    });\n                });\n                wa.setErrorHandler(function(ya) {\n                    if (((m.fire(qa, \"error\", {\n                        response: ya\n                    }) !== false))) {\n                        h.defaultErrorHandler(ya);\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            if (va) {\n                wa.setStatusElement(va);\n                var xa = va.getAttribute(\"data-status-class\");\n                ((xa && wa.setStatusClass(xa)));\n            }\n        ;\n        ;\n            if (qa) {\n                m.fire(qa, \"AsyncRequest/send\", {\n                    request: wa\n                });\n            }\n        ;\n        ;\n            wa.send();\n            return false;\n        },\n        post: function(pa, qa) {\n            new na(pa).setReadOnly(false).setMethod(\"POST\").setData(qa).send();\n            return false;\n        },\n        getLastID: function() {\n            return la;\n        },\n        suppressOnloadToken: {\n        },\n        _inflight: [],\n        _inflightCount: 0,\n        _inflightAdd: y,\n        _inflightPurge: y,\n        getInflightCount: function() {\n            return this._inflightCount;\n        },\n        _inflightEnable: function() {\n            if (t.ie()) {\n                x(na, {\n                    _inflightAdd: function(pa) {\n                        this._inflight.push(pa);\n                    },\n                    _inflightPurge: function() {\n                        na._inflight = na._inflight.filter(function(pa) {\n                            return ((pa.transport && ((pa.transport.readyState < 4))));\n                        });\n                    }\n                });\n                q.onUnload(function() {\n                    na._inflight.forEach(function(pa) {\n                        if (((pa.transport && ((pa.transport.readyState < 4))))) {\n                            pa.transport.abort();\n                            delete pa.transport;\n                        }\n                    ;\n                    ;\n                    });\n                });\n            }\n        ;\n        ;\n        }\n    });\n    x(na.prototype, {\n        _dispatchResponse: function(pa) {\n            this.clearStatusIndicator();\n            if (!this._isRelevant()) {\n                this._invokeErrorHandler(1010);\n                return;\n            }\n        ;\n        ;\n            if (((this.initialHandler(pa) === false))) {\n                return;\n            }\n        ;\n        ;\n            JSBNG__clearTimeout(this.timer);\n            if (pa.jscc_map) {\n                var qa = (eval)(pa.jscc_map);\n                o.init(qa);\n            }\n        ;\n        ;\n            var ra;\n            if (this.handler) {\n                try {\n                    ra = this._shouldSuppressJS(this.handler(pa));\n                } catch (sa) {\n                    ((pa.is_last && this.finallyHandler(pa)));\n                    throw sa;\n                };\n            }\n        ;\n        ;\n            if (!ra) {\n                this._handleJSResponse(pa);\n            }\n        ;\n        ;\n            ((pa.is_last && this.finallyHandler(pa)));\n        },\n        _shouldSuppressJS: function(pa) {\n            return ((pa === na.suppressOnloadToken));\n        },\n        _handleJSResponse: function(pa) {\n            var qa = this.getRelativeTo(), ra = pa.domops, sa = pa.jsmods, ta = new r().setRelativeTo(qa), ua;\n            if (((sa && sa.require))) {\n                ua = sa.require;\n                delete sa.require;\n            }\n        ;\n        ;\n            if (sa) {\n                ta.handle(sa);\n            }\n        ;\n        ;\n            var va = function(wa) {\n                if (((ra && wa))) {\n                    wa.invoke(ra, qa);\n                }\n            ;\n            ;\n                if (ua) {\n                    ta.handle({\n                        require: ua\n                    });\n                }\n            ;\n            ;\n                this._handleJSRegisters(pa, \"JSBNG__onload\");\n                if (this.lid) {\n                    g.inform(\"tti_ajax\", {\n                        s: this.lid,\n                        d: [((this._sendTimeStamp || 0)),((((this._sendTimeStamp && this._responseTime)) ? ((this._responseTime - this._sendTimeStamp)) : 0)),]\n                    }, g.BEHAVIOR_EVENT);\n                }\n            ;\n            ;\n                this._handleJSRegisters(pa, \"onafterload\");\n                ta.cleanup();\n            }.bind(this);\n            if (ra) {\n                i.loadModules([\"AsyncDOM\",], va);\n            }\n             else va(null);\n        ;\n        ;\n        },\n        _handleJSRegisters: function(pa, qa) {\n            var ra = pa[qa];\n            if (ra) {\n                for (var sa = 0; ((sa < ra.length)); sa++) {\n                    l.applyWithGuard(new Function(ra[sa]), this);\n                ;\n                };\n            }\n        ;\n        ;\n        },\n        invokeResponseHandler: function(pa) {\n            if (((typeof (pa.redirect) !== \"undefined\"))) {\n                (function() {\n                    this.setURI(pa.redirect).send();\n                }).bind(this).defer();\n                return;\n            }\n        ;\n        ;\n            if (((((!this.handler && !this.errorHandler)) && !this.transportErrorHandler))) {\n                return;\n            }\n        ;\n        ;\n            var qa = pa.asyncResponse;\n            if (((typeof (qa) !== \"undefined\"))) {\n                if (!this._isRelevant()) {\n                    this._invokeErrorHandler(1010);\n                    return;\n                }\n            ;\n            ;\n                if (qa.inlinejs) {\n                    z(qa.inlinejs);\n                }\n            ;\n            ;\n                if (qa.lid) {\n                    this._responseTime = JSBNG__Date.now();\n                    if (a.CavalryLogger) {\n                        this.cavalry = a.CavalryLogger.getInstance(qa.lid);\n                    }\n                ;\n                ;\n                    this.lid = qa.lid;\n                }\n            ;\n            ;\n                if (qa.resource_map) {\n                    i.setResourceMap(qa.resource_map);\n                }\n            ;\n            ;\n                if (qa.bootloadable) {\n                    i.enableBootload(qa.bootloadable);\n                }\n            ;\n            ;\n                da.add(qa.ixData);\n                var ra, sa;\n                if (((qa.getError() && !qa.getErrorIsWarning()))) {\n                    var ta = this.errorHandler.bind(this);\n                    ra = l.guard(this._dispatchErrorResponse);\n                    ra = ra.bind(this, qa, ta);\n                    sa = \"error\";\n                }\n                 else {\n                    ra = l.guard(this._dispatchResponse);\n                    ra = ra.bind(this, qa);\n                    sa = \"response\";\n                }\n            ;\n            ;\n                ra = fa(ra, function() {\n                    g.inform(((\"AsyncRequest/\" + sa)), {\n                        request: this,\n                        response: qa\n                    });\n                }.bind(this));\n                ra = ra.defer.bind(ra);\n                var ua = false;\n                if (this.preBootloadHandler) {\n                    ua = this.preBootloadHandler(qa);\n                }\n            ;\n            ;\n                qa.css = ((qa.css || []));\n                qa.js = ((qa.js || []));\n                i.loadResources(qa.css.concat(qa.js), ra, ua, this.getURI());\n            }\n             else if (((typeof (pa.transportError) !== \"undefined\"))) {\n                if (this._xFbServer) {\n                    this._invokeErrorHandler(1008);\n                }\n                 else this._invokeErrorHandler(1012);\n            ;\n            ;\n            }\n             else this._invokeErrorHandler(1007);\n            \n        ;\n        ;\n        },\n        _invokeErrorHandler: function(pa) {\n            var qa;\n            if (((this.responseText === \"\"))) {\n                qa = 1002;\n            }\n             else if (this._requestAborted) {\n                qa = 1011;\n            }\n             else {\n                try {\n                    qa = ((((pa || this.transport.JSBNG__status)) || 1004));\n                } catch (ra) {\n                    qa = 1005;\n                };\n            ;\n                if (((false === JSBNG__navigator.onLine))) {\n                    qa = 1006;\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            var sa, ta, ua = true;\n            if (((qa === 1006))) {\n                ta = \"No Network Connection\";\n                sa = \"Your browser appears to be offline. Please check your internet connection and try again.\";\n            }\n             else if (((((qa >= 300)) && ((qa <= 399))))) {\n                ta = \"Redirection\";\n                sa = \"Your access to Facebook was redirected or blocked by a third party at this time, please contact your ISP or reload. \";\n                var va = this.transport.getResponseHeader(\"Location\");\n                if (va) {\n                    ba(va, true);\n                }\n            ;\n            ;\n                ua = true;\n            }\n             else {\n                ta = \"Oops\";\n                sa = \"Something went wrong. We're working on getting this fixed as soon as we can. You may be able to try again.\";\n            }\n            \n        ;\n        ;\n            var wa = new h(this);\n            x(wa, {\n                error: qa,\n                errorSummary: ta,\n                errorDescription: sa,\n                silentError: ua\n            });\n            (function() {\n                g.inform(\"AsyncRequest/error\", {\n                    request: this,\n                    response: wa\n                });\n            }).bind(this).defer();\n            if (((ga() && !this.getOption(\"handleErrorAfterUnload\")))) {\n                return;\n            }\n        ;\n        ;\n            if (!this.transportErrorHandler) {\n                return;\n            }\n        ;\n        ;\n            var xa = this.transportErrorHandler.bind(this);\n            !this.getOption(\"suppressErrorAlerts\");\n            l.applyWithGuard(this._dispatchErrorResponse, this, [wa,xa,]);\n        },\n        _dispatchErrorResponse: function(pa, qa) {\n            var ra = pa.getError();\n            this.clearStatusIndicator();\n            var sa = ((this._sendTimeStamp && {\n                duration: ((JSBNG__Date.now() - this._sendTimeStamp)),\n                xfb_ip: ((this._xFbServer || \"-\"))\n            }));\n            pa.logError(\"async_error\", sa);\n            if (((!this._isRelevant() || ((ra === 1010))))) {\n                this.abort();\n                return;\n            }\n        ;\n        ;\n            if (((((((((ra == 1357008)) || ((ra == 1357007)))) || ((ra == 1442002)))) || ((ra == 1357001))))) {\n                var ta = ((((ra == 1357008)) || ((ra == 1357007))));\n                this.interceptHandler(pa);\n                this._displayServerDialog(pa, ta);\n            }\n             else if (((this.initialHandler(pa) !== false))) {\n                JSBNG__clearTimeout(this.timer);\n                try {\n                    qa(pa);\n                } catch (ua) {\n                    this.finallyHandler(pa);\n                    throw ua;\n                };\n            ;\n                this.finallyHandler(pa);\n            }\n            \n        ;\n        ;\n        },\n        _displayServerDialog: function(pa, qa) {\n            var ra = pa.getPayload();\n            if (((ra.__dialog !== undefined))) {\n                this._displayServerLegacyDialog(pa, qa);\n                return;\n            }\n        ;\n        ;\n            var sa = ra.__dialogx;\n            new r().handle(sa);\n            i.loadModules([\"ConfirmationDialog\",], function(ta) {\n                ta.setupConfirmation(pa, this);\n            }.bind(this));\n        },\n        _displayServerLegacyDialog: function(pa, qa) {\n            var ra = pa.getPayload().__dialog;\n            i.loadModules([\"Dialog\",], function(sa) {\n                var ta = new sa(ra);\n                if (qa) {\n                    ta.setHandler(this._displayConfirmationHandler.bind(this, ta));\n                }\n            ;\n            ;\n                ta.setCancelHandler(function() {\n                    var ua = this.getServerDialogCancelHandler();\n                    try {\n                        ((ua && ua(pa)));\n                    } catch (va) {\n                        throw va;\n                    } finally {\n                        this.finallyHandler(pa);\n                    };\n                ;\n                }.bind(this)).setCausalElement(this.relativeTo).show();\n            }.bind(this));\n        },\n        _displayConfirmationHandler: function(pa) {\n            this.data.confirmed = 1;\n            x(this.data, pa.getFormData());\n            this.send();\n        },\n        setJSONPTransport: function(pa) {\n            pa.subscribe(\"response\", this._handleJSONPResponse.bind(this));\n            pa.subscribe(\"abort\", this._handleJSONPAbort.bind(this));\n            this.transport = pa;\n        },\n        _handleJSONPResponse: function(pa, qa) {\n            this.is_first = ((this.is_first === undefined));\n            var ra = this._interpretResponse(qa);\n            ra.asyncResponse.is_first = this.is_first;\n            ra.asyncResponse.is_last = this.transport.hasFinished();\n            this.invokeResponseHandler(ra);\n            if (this.transport.hasFinished()) {\n                delete this.transport;\n            }\n        ;\n        ;\n        },\n        _handleJSONPAbort: function() {\n            this._invokeErrorHandler();\n            delete this.transport;\n        },\n        _handleXHRResponse: function(pa) {\n            var qa;\n            if (this.getOption(\"suppressEvaluation\")) {\n                qa = {\n                    asyncResponse: new h(this, pa)\n                };\n            }\n             else {\n                var ra = pa.responseText, sa = null;\n                try {\n                    var ua = this._unshieldResponseText(ra);\n                    try {\n                        var va = (eval)(((((\"(\" + ua)) + \")\")));\n                        qa = this._interpretResponse(va);\n                    } catch (ta) {\n                        sa = \"excep\";\n                        qa = {\n                            transportError: ((\"eval() failed on async to \" + this.getURI()))\n                        };\n                    };\n                ;\n                } catch (ta) {\n                    sa = \"empty\";\n                    qa = {\n                        transportError: ta.message\n                    };\n                };\n            ;\n                if (sa) {\n                    var wa = a.ErrorSignal;\n                    ((wa && wa.sendErrorSignal(\"async_xport_resp\", [((((this._xFbServer ? \"1008_\" : \"1012_\")) + sa)),((this._xFbServer || \"-\")),this.getURI(),ra.length,ra.substr(0, 1600),].join(\":\"))));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this.invokeResponseHandler(qa);\n        },\n        _unshieldResponseText: function(pa) {\n            var qa = \"for (;;);\", ra = qa.length;\n            if (((pa.length <= ra))) {\n                throw new Error(((\"Response too short on async to \" + this.getURI())));\n            }\n        ;\n        ;\n            var sa = 0;\n            while (((((pa.charAt(sa) == \" \")) || ((pa.charAt(sa) == \"\\u000a\"))))) {\n                sa++;\n            ;\n            };\n        ;\n            ((sa && ((pa.substring(sa, ((sa + ra))) == qa))));\n            return pa.substring(((sa + ra)));\n        },\n        _interpretResponse: function(pa) {\n            if (pa.redirect) {\n                return {\n                    redirect: pa.redirect\n                };\n            }\n        ;\n        ;\n            var qa = new h(this);\n            if (((pa.__ar != 1))) {\n                qa.payload = pa;\n            }\n             else x(qa, pa);\n        ;\n        ;\n            return {\n                asyncResponse: qa\n            };\n        },\n        _onStateChange: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270), function() {\n            try {\n                if (((this.transport.readyState == 4))) {\n                    na._inflightCount--;\n                    na._inflightPurge();\n                    try {\n                        if (((((typeof (this.transport.getResponseHeader) !== \"undefined\")) && this.transport.getResponseHeader(\"X-FB-Debug\")))) {\n                            this._xFbServer = this.transport.getResponseHeader(\"X-FB-Debug\");\n                        }\n                    ;\n                    ;\n                    } catch (qa) {\n                    \n                    };\n                ;\n                    if (((((this.transport.JSBNG__status >= 200)) && ((this.transport.JSBNG__status < 300))))) {\n                        na.lastSuccessTime = JSBNG__Date.now();\n                        this._handleXHRResponse(this.transport);\n                    }\n                     else if (((t.webkit() && ((typeof (this.transport.JSBNG__status) == \"undefined\"))))) {\n                        this._invokeErrorHandler(1002);\n                    }\n                     else if (((((k.retry_ajax_on_network_error && ja(this.transport))) && ((this.remainingRetries > 0))))) {\n                        this.remainingRetries--;\n                        delete this.transport;\n                        this.send(true);\n                        return;\n                    }\n                     else this._invokeErrorHandler();\n                    \n                    \n                ;\n                ;\n                    if (((this.getOption(\"asynchronous\") !== false))) {\n                        delete this.transport;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            } catch (pa) {\n                if (ga()) {\n                    return;\n                }\n            ;\n            ;\n                delete this.transport;\n                if (((this.remainingRetries > 0))) {\n                    this.remainingRetries--;\n                    this.send(true);\n                }\n                 else {\n                    !this.getOption(\"suppressErrorAlerts\");\n                    var ra = a.ErrorSignal;\n                    ((ra && ra.sendErrorSignal(\"async_xport_resp\", [1007,((this._xFbServer || \"-\")),this.getURI(),pa.message,].join(\":\"))));\n                    this._invokeErrorHandler(1007);\n                }\n            ;\n            ;\n            };\n        ;\n        })),\n        _isMultiplexable: function() {\n            if (((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\")))) {\n                return false;\n            }\n        ;\n        ;\n            if (!this.uri.isFacebookURI()) {\n                return false;\n            }\n        ;\n        ;\n            if (!this.getOption(\"asynchronous\")) {\n                return false;\n            }\n        ;\n        ;\n            return true;\n        },\n        handleResponse: function(pa) {\n            var qa = this._interpretResponse(pa);\n            this.invokeResponseHandler(qa);\n        },\n        setMethod: function(pa) {\n            this.method = pa.toString().toUpperCase();\n            return this;\n        },\n        getMethod: function() {\n            return this.method;\n        },\n        setData: function(pa) {\n            this.data = pa;\n            return this;\n        },\n        _setDataHash: function() {\n            if (((((this.method != \"POST\")) || this.data.phstamp))) {\n                return;\n            }\n        ;\n        ;\n            if (((typeof this.data.fb_dtsg !== \"string\"))) {\n                return;\n            }\n        ;\n        ;\n            var pa = s.implodeQuery(this.data).length, qa = \"\";\n            for (var ra = 0; ((ra < this.data.fb_dtsg.length)); ra++) {\n                qa += this.data.fb_dtsg.charCodeAt(ra);\n            ;\n            };\n        ;\n            this.data.phstamp = ((((\"1\" + qa)) + pa));\n        },\n        setRawData: function(pa) {\n            this.rawData = pa;\n            return this;\n        },\n        getData: function() {\n            return this.data;\n        },\n        setContextData: function(pa, qa, ra) {\n            ra = ((((ra === undefined)) ? true : ra));\n            if (ra) {\n                this.context[((\"_log_\" + pa))] = qa;\n            }\n        ;\n        ;\n            return this;\n        },\n        _setUserActionID: function() {\n            var pa = ((((a.ArbiterMonitor && a.ArbiterMonitor.getUE())) || \"-\"));\n            this.userActionID = ((((((((a.EagleEye && a.EagleEye.getSessionID())) || \"-\")) + \"/\")) + pa));\n        },\n        setURI: function(pa) {\n            var qa = s(pa);\n            if (((this.getOption(\"useIframeTransport\") && !qa.isFacebookURI()))) {\n                return this;\n            }\n        ;\n        ;\n            if (((((((!this._allowCrossOrigin && !this.getOption(\"jsonp\"))) && !this.getOption(\"useIframeTransport\"))) && !qa.isSameOrigin()))) {\n                return this;\n            }\n        ;\n        ;\n            this._setUserActionID();\n            if (((!pa || qa.isEmpty()))) {\n                var ra = a.ErrorSignal, sa = a.getErrorStack;\n                if (((ra && sa))) {\n                    var ta = {\n                        err_code: 1013,\n                        vip: \"-\",\n                        duration: 0,\n                        xfb_ip: \"-\",\n                        path: window.JSBNG__location.href,\n                        aid: this.userActionID\n                    };\n                    ra.sendErrorSignal(\"async_error\", JSON.stringify(ta));\n                    ra.sendErrorSignal(\"async_xport_stack\", [1013,window.JSBNG__location.href,null,sa(),].join(\":\"));\n                }\n            ;\n            ;\n                return this;\n            }\n        ;\n        ;\n            this.uri = qa;\n            return this;\n        },\n        getURI: function() {\n            return this.uri.toString();\n        },\n        setInitialHandler: function(pa) {\n            this.initialHandler = pa;\n            return this;\n        },\n        setHandler: function(pa) {\n            if (ka(pa)) {\n                this.handler = pa;\n            }\n        ;\n        ;\n            return this;\n        },\n        getHandler: function() {\n            return this.handler;\n        },\n        setUploadProgressHandler: function(pa) {\n            if (ka(pa)) {\n                this.uploadProgressHandler = pa;\n            }\n        ;\n        ;\n            return this;\n        },\n        setErrorHandler: function(pa) {\n            if (ka(pa)) {\n                this.errorHandler = pa;\n            }\n        ;\n        ;\n            return this;\n        },\n        setTransportErrorHandler: function(pa) {\n            this.transportErrorHandler = pa;\n            return this;\n        },\n        getErrorHandler: function() {\n            return this.errorHandler;\n        },\n        getTransportErrorHandler: function() {\n            return this.transportErrorHandler;\n        },\n        setTimeoutHandler: function(pa, qa) {\n            if (ka(qa)) {\n                this.timeout = pa;\n                this.timeoutHandler = qa;\n            }\n        ;\n        ;\n            return this;\n        },\n        resetTimeout: function(pa) {\n            if (!((this.timeoutHandler === null))) {\n                if (((pa === null))) {\n                    this.timeout = null;\n                    JSBNG__clearTimeout(this.timer);\n                    this.timer = null;\n                }\n                 else {\n                    var qa = !this._allowCrossPageTransition;\n                    this.timeout = pa;\n                    JSBNG__clearTimeout(this.timer);\n                    this.timer = this._handleTimeout.bind(this).defer(this.timeout, qa);\n                }\n            ;\n            }\n        ;\n        ;\n            return this;\n        },\n        _handleTimeout: function() {\n            this.abandon();\n            this.timeoutHandler(this);\n        },\n        setNewSerial: function() {\n            this.id = ++la;\n            return this;\n        },\n        setInterceptHandler: function(pa) {\n            this.interceptHandler = pa;\n            return this;\n        },\n        setFinallyHandler: function(pa) {\n            this.finallyHandler = pa;\n            return this;\n        },\n        setAbortHandler: function(pa) {\n            this.abortHandler = pa;\n            return this;\n        },\n        getServerDialogCancelHandler: function() {\n            return this.serverDialogCancelHandler;\n        },\n        setServerDialogCancelHandler: function(pa) {\n            this.serverDialogCancelHandler = pa;\n            return this;\n        },\n        setPreBootloadHandler: function(pa) {\n            this.preBootloadHandler = pa;\n            return this;\n        },\n        setReadOnly: function(pa) {\n            if (!((typeof (pa) != \"boolean\"))) {\n                this.readOnly = pa;\n            }\n        ;\n        ;\n            return this;\n        },\n        setFBMLForm: function() {\n            this.writeRequiredParams = [\"fb_sig\",];\n            return this;\n        },\n        getReadOnly: function() {\n            return this.readOnly;\n        },\n        setRelativeTo: function(pa) {\n            this.relativeTo = pa;\n            return this;\n        },\n        getRelativeTo: function() {\n            return this.relativeTo;\n        },\n        setStatusClass: function(pa) {\n            this.statusClass = pa;\n            return this;\n        },\n        setStatusElement: function(pa) {\n            this.statusElement = pa;\n            return this;\n        },\n        getStatusElement: function() {\n            return aa(this.statusElement);\n        },\n        _isRelevant: function() {\n            if (this._allowCrossPageTransition) {\n                return true;\n            }\n        ;\n        ;\n            if (!this.id) {\n                return true;\n            }\n        ;\n        ;\n            return ((this.id > ma));\n        },\n        clearStatusIndicator: function() {\n            var pa = this.getStatusElement();\n            if (pa) {\n                j.removeClass(pa, \"async_saving\");\n                j.removeClass(pa, this.statusClass);\n            }\n        ;\n        ;\n        },\n        addStatusIndicator: function() {\n            var pa = this.getStatusElement();\n            if (pa) {\n                j.addClass(pa, \"async_saving\");\n                j.addClass(pa, this.statusClass);\n            }\n        ;\n        ;\n        },\n        specifiesWriteRequiredParams: function() {\n            return this.writeRequiredParams.every(function(pa) {\n                this.data[pa] = ((((this.data[pa] || k[pa])) || ((aa(pa) || {\n                })).value));\n                if (((this.data[pa] !== undefined))) {\n                    return true;\n                }\n            ;\n            ;\n                return false;\n            }, this);\n        },\n        setOption: function(pa, qa) {\n            if (((typeof (this.option[pa]) != \"undefined\"))) {\n                this.option[pa] = qa;\n            }\n        ;\n        ;\n            return this;\n        },\n        getOption: function(pa) {\n            ((typeof (this.option[pa]) == \"undefined\"));\n            return this.option[pa];\n        },\n        abort: function() {\n            if (this.transport) {\n                var pa = this.getTransportErrorHandler();\n                this.setOption(\"suppressErrorAlerts\", true);\n                this.setTransportErrorHandler(y);\n                this._requestAborted = true;\n                this.transport.abort();\n                this.setTransportErrorHandler(pa);\n            }\n        ;\n        ;\n            this.abortHandler();\n        },\n        abandon: function() {\n            JSBNG__clearTimeout(this.timer);\n            this.setOption(\"suppressErrorAlerts\", true).setHandler(y).setErrorHandler(y).setTransportErrorHandler(y);\n            if (this.transport) {\n                this._requestAborted = true;\n                this.transport.abort();\n            }\n        ;\n        ;\n        },\n        setNectarData: function(pa) {\n            if (pa) {\n                if (((this.data.nctr === undefined))) {\n                    this.data.nctr = {\n                    };\n                }\n            ;\n            ;\n                x(this.data.nctr, pa);\n            }\n        ;\n        ;\n            return this;\n        },\n        setNectarModuleDataSafe: function(pa) {\n            if (this.setNectarModuleData) {\n                this.setNectarModuleData(pa);\n            }\n        ;\n        ;\n            return this;\n        },\n        setNectarImpressionIdSafe: function() {\n            if (this.setNectarImpressionId) {\n                this.setNectarImpressionId();\n            }\n        ;\n        ;\n            return this;\n        },\n        setAllowCrossPageTransition: function(pa) {\n            this._allowCrossPageTransition = !!pa;\n            if (this.timer) {\n                this.resetTimeout(this.timeout);\n            }\n        ;\n        ;\n            return this;\n        },\n        setAllowCrossOrigin: function(pa) {\n            this._allowCrossOrigin = pa;\n            return this;\n        },\n        send: function(pa) {\n            pa = ((pa || false));\n            if (!this.uri) {\n                return false;\n            }\n        ;\n        ;\n            ((!this.errorHandler && !this.getOption(\"suppressErrorHandlerWarning\")));\n            if (((this.getOption(\"jsonp\") && ((this.method != \"GET\"))))) {\n                this.setMethod(\"GET\");\n            }\n        ;\n        ;\n            if (((this.getOption(\"useIframeTransport\") && ((this.method != \"GET\"))))) {\n                this.setMethod(\"GET\");\n            }\n        ;\n        ;\n            ((((this.timeoutHandler !== null)) && ((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\")))));\n            if (!this.getReadOnly()) {\n                this.specifiesWriteRequiredParams();\n                if (((this.method != \"POST\"))) {\n                    return false;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            x(this.data, u.getAsyncParams(this.method));\n            if (!ca(this.context)) {\n                x(this.data, this.context);\n                this.data.ajax_log = 1;\n            }\n        ;\n        ;\n            if (k.force_param) {\n                x(this.data, k.force_param);\n            }\n        ;\n        ;\n            this._setUserActionID();\n            if (((this.getOption(\"bundle\") && this._isMultiplexable()))) {\n                oa.schedule(this);\n                return true;\n            }\n        ;\n        ;\n            this.setNewSerial();\n            if (!this.getOption(\"asynchronous\")) {\n                this.uri.addQueryData({\n                    __s: 1\n                });\n            }\n        ;\n        ;\n            this.finallyHandler = v(this.finallyHandler, \"final\");\n            var qa, ra;\n            if (((((this.method == \"GET\")) || this.rawData))) {\n                qa = this.uri.addQueryData(this.data).toString();\n                ra = ((this.rawData || \"\"));\n            }\n             else {\n                qa = this.uri.toString();\n                this._setDataHash();\n                ra = s.implodeQuery(this.data);\n            }\n        ;\n        ;\n            if (this.transport) {\n                return false;\n            }\n        ;\n        ;\n            if (((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\")))) {\n                d([\"JSONPTransport\",], function(va) {\n                    var wa = new va(((this.getOption(\"jsonp\") ? \"jsonp\" : \"div\")), this.uri);\n                    this.setJSONPTransport(wa);\n                    wa.send();\n                }.bind(this));\n                return true;\n            }\n        ;\n        ;\n            var sa = u.create();\n            if (!sa) {\n                return false;\n            }\n        ;\n        ;\n            sa.onreadystatechange = v(this._onStateChange.bind(this), \"xhr\");\n            if (((this.uploadProgressHandler && ha(sa)))) {\n                sa.upload.JSBNG__onprogress = this.uploadProgressHandler.bind(this);\n            }\n        ;\n        ;\n            if (!pa) {\n                this.remainingRetries = this.getOption(\"retries\");\n            }\n        ;\n        ;\n            if (((a.ErrorSignal || a.ArbiterMonitor))) {\n                this._sendTimeStamp = ((this._sendTimeStamp || JSBNG__Date.now()));\n            }\n        ;\n        ;\n            this.transport = sa;\n            try {\n                this.transport.open(this.method, qa, this.getOption(\"asynchronous\"));\n            } catch (ta) {\n                return false;\n            };\n        ;\n            var ua = k.svn_rev;\n            if (ua) {\n                this.transport.setRequestHeader(\"X-SVN-Rev\", String(ua));\n            }\n        ;\n        ;\n            if (((((!this.uri.isSameOrigin() && !this.getOption(\"jsonp\"))) && !this.getOption(\"useIframeTransport\")))) {\n                if (!ia(this.transport)) {\n                    return false;\n                }\n            ;\n            ;\n                if (this.uri.isFacebookURI()) {\n                    this.transport.withCredentials = true;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((((this.method == \"POST\")) && !this.rawData))) {\n                this.transport.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n            }\n        ;\n        ;\n            g.inform(\"AsyncRequest/send\", {\n                request: this\n            });\n            this.addStatusIndicator();\n            this.transport.send(ra);\n            if (((this.timeout !== null))) {\n                this.resetTimeout(this.timeout);\n            }\n        ;\n        ;\n            na._inflightCount++;\n            na._inflightAdd(this);\n            return true;\n        }\n    });\n    function oa() {\n        this._requests = [];\n    };\n;\n    x(oa, {\n        multiplex: null,\n        schedule: function(pa) {\n            if (!oa.multiplex) {\n                oa.multiplex = new oa();\n                (function() {\n                    oa.multiplex.send();\n                    oa.multiplex = null;\n                }).defer();\n            }\n        ;\n        ;\n            oa.multiplex.add(pa);\n        }\n    });\n    x(oa.prototype, {\n        add: function(pa) {\n            this._requests.push(pa);\n        },\n        send: function() {\n            var pa = this._requests;\n            if (!pa.length) {\n                return;\n            }\n        ;\n        ;\n            var qa;\n            if (((pa.length === 1))) {\n                qa = pa[0];\n            }\n             else {\n                var ra = pa.map(function(sa) {\n                    return [sa.uri.getPath(),s.implodeQuery(sa.data),];\n                });\n                qa = new na(\"/ajax/proxy.php\").setAllowCrossPageTransition(true).setData({\n                    data: ra\n                }).setHandler(this._handler.bind(this)).setTransportErrorHandler(this._transportErrorHandler.bind(this));\n            }\n        ;\n        ;\n            qa.setOption(\"bundle\", false).send();\n        },\n        _handler: function(pa) {\n            var qa = pa.getPayload().responses;\n            if (((qa.length !== this._requests.length))) {\n                return;\n            }\n        ;\n        ;\n            for (var ra = 0; ((ra < this._requests.length)); ra++) {\n                var sa = this._requests[ra], ta = sa.uri.getPath();\n                sa.id = this.id;\n                if (((qa[ra][0] !== ta))) {\n                    sa.invokeResponseHandler({\n                        transportError: ((\"Wrong response order in bundled request to \" + ta))\n                    });\n                    continue;\n                }\n            ;\n            ;\n                sa.handleResponse(qa[ra][1]);\n            };\n        ;\n        },\n        _transportErrorHandler: function(pa) {\n            var qa = {\n                transportError: pa.errorDescription\n            }, ra = this._requests.map(function(sa) {\n                sa.id = this.id;\n                sa.invokeResponseHandler(qa);\n                return sa.uri.getPath();\n            });\n        }\n    });\n    e.exports = na;\n});\n__d(\"legacy:async\", [\"AsyncRequest\",\"AsyncResponse\",], function(a, b, c, d) {\n    a.AsyncRequest = b(\"AsyncRequest\");\n    a.AsyncResponse = b(\"AsyncResponse\");\n}, 3);\n__d(\"debounce\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j, k) {\n        if (((i == null))) {\n            i = 100;\n        }\n    ;\n    ;\n        var l;\n        function m(n, o, p, q, r) {\n            m.reset();\n            l = JSBNG__setTimeout(function() {\n                h.call(j, n, o, p, q, r);\n            }, i, !k);\n        };\n    ;\n        m.reset = function() {\n            JSBNG__clearTimeout(l);\n        };\n        return m;\n    };\n;\n    e.exports = g;\n});\n__d(\"LitestandViewportHeight\", [\"Arbiter\",\"CSS\",\"JSBNG__Event\",\"cx\",\"debounce\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"JSBNG__Event\"), j = b(\"cx\"), k = b(\"debounce\"), l = b(\"emptyFunction\"), m, n = {\n        SMALL: \"small\",\n        NORMAL: \"normal\",\n        LARGE: \"large\",\n        getSize: function() {\n            if (((m === \"_4vcw\"))) {\n                return n.SMALL;\n            }\n        ;\n        ;\n            if (((m === \"_4vcx\"))) {\n                return n.LARGE;\n            }\n        ;\n        ;\n            return n.NORMAL;\n        },\n        init: function(o) {\n            n.init = l;\n            var p = k(function() {\n                var q = JSBNG__document.documentElement, r = q.clientHeight, s;\n                if (((r <= o.max_small_height))) {\n                    s = \"_4vcw\";\n                }\n                 else if (((r >= o.min_large_height))) {\n                    s = \"_4vcx\";\n                }\n                \n            ;\n            ;\n                if (((s !== m))) {\n                    ((m && h.removeClass(q, m)));\n                    m = s;\n                    ((m && h.addClass(q, m)));\n                    g.inform(\"ViewportSizeChange\");\n                }\n            ;\n            ;\n            });\n            p();\n            i.listen(window, \"resize\", p);\n        }\n    };\n    e.exports = n;\n});\n__d(\"AsyncDOM\", [\"CSS\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = {\n        invoke: function(j, k) {\n            for (var l = 0; ((l < j.length)); ++l) {\n                var m = j[l], n = m[0], o = m[1], p = m[2], q = m[3], r = ((((p && k)) || null));\n                if (o) {\n                    r = h.scry(((r || JSBNG__document.documentElement)), o)[0];\n                }\n            ;\n            ;\n                switch (n) {\n                  case \"eval\":\n                    (new Function(q)).apply(r);\n                    break;\n                  case \"hide\":\n                    g.hide(r);\n                    break;\n                  case \"show\":\n                    g.show(r);\n                    break;\n                  case \"setContent\":\n                    h.setContent(r, q);\n                    break;\n                  case \"appendContent\":\n                    h.appendContent(r, q);\n                    break;\n                  case \"prependContent\":\n                    h.prependContent(r, q);\n                    break;\n                  case \"insertAfter\":\n                    h.insertAfter(r, q);\n                    break;\n                  case \"insertBefore\":\n                    h.insertBefore(r, q);\n                    break;\n                  case \"remove\":\n                    h.remove(r);\n                    break;\n                  case \"replace\":\n                    h.replace(r, q);\n                    break;\n                  default:\n                \n                };\n            ;\n            };\n        ;\n        }\n    };\n    e.exports = i;\n});\n__d(\"Live\", [\"Arbiter\",\"AsyncDOM\",\"AsyncSignal\",\"ChannelConstants\",\"DataStore\",\"DOM\",\"ServerJS\",\"createArrayFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncDOM\"), i = b(\"AsyncSignal\"), j = b(\"ChannelConstants\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"ServerJS\"), n = b(\"createArrayFrom\"), o = b(\"emptyFunction\");\n    function p(r, s) {\n        s = JSON.parse(JSON.stringify(s));\n        new m().setRelativeTo(r).handle(s);\n    };\n;\n    var q = {\n        logAll: false,\n        startup: function() {\n            q.startup = o;\n            g.subscribe(j.getArbiterType(\"live\"), q.handleMessage.bind(q));\n        },\n        lookupLiveNode: function(r, s) {\n            var t = l.scry(JSBNG__document.body, ((((((\".live_\" + r)) + \"_\")) + s)));\n            t.forEach(function(u) {\n                if (((k.get(u, \"seqnum\") === undefined))) {\n                    var v = JSON.parse(u.getAttribute(\"data-live\"));\n                    k.set(u, \"seqnum\", v.seq);\n                }\n            ;\n            ;\n            });\n            return t;\n        },\n        handleMessage: function(r, s) {\n            var t = s.obj, u = t.fbid, v = t.assoc, w = this.lookupLiveNode(u, v);\n            if (!w) {\n                return false;\n            }\n        ;\n        ;\n            w.forEach(function(x) {\n                if (t.expseq) {\n                    var y = k.get(x, \"seqnum\"), z = k.get(x, \"message_buffer\");\n                    if (((z === undefined))) {\n                        z = {\n                        };\n                        k.set(x, \"message_buffer\", z);\n                    }\n                ;\n                ;\n                    var aa = {\n                        obj: t\n                    };\n                    z[t.expseq] = aa;\n                    if (((t.expseq != y))) {\n                        q.log(\"mismatch\", t.fbid, t.expseq, y);\n                        return false;\n                    }\n                ;\n                ;\n                    while (true) {\n                        y = k.get(x, \"seqnum\");\n                        var ba = z[y];\n                        if (ba) {\n                            h.invoke(ba.obj.updates, x);\n                            if (ba.obj.js) {\n                                p(x, ba.obj.js);\n                            }\n                        ;\n                        ;\n                            q.log(\"seqmatch\", t.fbid, \"exp\", t.expseq, \"cur\", y);\n                            delete z[y];\n                        }\n                         else break;\n                    ;\n                    ;\n                    };\n                ;\n                }\n                 else {\n                    h.invoke(t.updates, x);\n                    if (t.js) {\n                        p(x, t.js);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n        },\n        log: function() {\n            if (q.logAll) {\n                var r = n(arguments).join(\":\");\n                new i(\"/common/scribe_endpoint.php\", {\n                    c: \"live_sequence\",\n                    m: r\n                }).send();\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = q;\n});\n__d(\"legacy:live-js\", [\"Live\",], function(a, b, c, d) {\n    a.Live = b(\"Live\");\n}, 3);\n__d(\"fbt\", [\"copyProperties\",\"substituteTokens\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"substituteTokens\"), i = function() {\n    \n    };\n    i._ = function(j, k) {\n        var l = {\n        };\n        for (var m = 0; ((m < k.length)); m++) {\n            g(l, k[m][1]);\n        ;\n        };\n    ;\n        return h(j, l);\n    };\n    i.param = function(j, k) {\n        var l = {\n        };\n        l[j] = k;\n        return [null,l,];\n    };\n    e.exports = i;\n});\n__d(\"LiveTimer\", [\"CSS\",\"DOM\",\"UserAgent\",\"emptyFunction\",\"fbt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"UserAgent\"), j = b(\"emptyFunction\"), k = b(\"fbt\"), l = b(\"tx\"), m = 1000, n = 60, o = 3600, p = 43200, q = 60, r = 20000, s = {\n        restart: function(t) {\n            this.serverTime = t;\n            this.localStartTime = ((JSBNG__Date.now() / 1000));\n            this.updateTimeStamps();\n        },\n        getApproximateServerTime: function() {\n            return ((this.getServerTimeOffset() + JSBNG__Date.now()));\n        },\n        getServerTimeOffset: function() {\n            return ((((this.serverTime - this.localStartTime)) * m));\n        },\n        updateTimeStamps: function() {\n            s.timestamps = h.scry(JSBNG__document.body, \"abbr.livetimestamp\");\n            s.startLoop(r);\n        },\n        addTimeStamps: function(t) {\n            if (!t) {\n                return;\n            }\n        ;\n        ;\n            s.timestamps = ((s.timestamps || []));\n            if (((h.isNodeOfType(t, \"abbr\") && g.hasClass(t, \"livetimestamp\")))) {\n                s.timestamps.push(t);\n            }\n             else {\n                var u = h.scry(t, \"abbr.livetimestamp\");\n                for (var v = 0; ((v < u.length)); ++v) {\n                    s.timestamps.push(u[v]);\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            s.startLoop(0);\n        },\n        startLoop: function(t) {\n            this.JSBNG__stop();\n            this.timeout = JSBNG__setTimeout(function() {\n                s.loop();\n            }, t);\n        },\n        JSBNG__stop: function() {\n            JSBNG__clearTimeout(this.timeout);\n        },\n        updateNode: function(t, u) {\n            s.updateNode = ((((i.ie() < 7)) ? j : h.setContent));\n            s.updateNode(t, u);\n        },\n        loop: function(t) {\n            if (t) {\n                s.updateTimeStamps();\n            }\n        ;\n        ;\n            var u = Math.floor(((s.getApproximateServerTime() / m))), v = -1;\n            ((s.timestamps && s.timestamps.forEach(function(x) {\n                var y = x.getAttribute(\"data-utime\"), z = x.getAttribute(\"data-shorten\"), aa = s.renderRelativeTime(u, y, z);\n                if (aa.text) {\n                    s.updateNode(x, aa.text);\n                }\n            ;\n            ;\n                if (((((aa.next != -1)) && ((((aa.next < v)) || ((v == -1))))))) {\n                    v = aa.next;\n                }\n            ;\n            ;\n            })));\n            if (((v != -1))) {\n                var w = Math.max(r, ((v * m)));\n                s.timeout = JSBNG__setTimeout(function() {\n                    s.loop();\n                }, w);\n            }\n        ;\n        ;\n        },\n        renderRelativeTime: function(t, u, v) {\n            var w = {\n                text: \"\",\n                next: -1\n            };\n            if (((((t - u)) > (p)))) {\n                return w;\n            }\n        ;\n        ;\n            var x = ((t - u)), y = Math.floor(((x / n))), z = Math.floor(((y / q)));\n            if (((y < 1))) {\n                if (v) {\n                    x = ((((x > 1)) ? x : 2));\n                    w.text = k._(\"{number} secs\", [k.param(\"number\", x),]);\n                    w.next = ((20 - ((x % 20))));\n                }\n                 else {\n                    w.text = \"a few seconds ago\";\n                    w.next = ((n - ((x % n))));\n                }\n            ;\n            ;\n                return w;\n            }\n        ;\n        ;\n            if (((z < 1))) {\n                if (((v && ((y == 1))))) {\n                    w.text = \"1 min\";\n                }\n                 else if (v) {\n                    w.text = k._(\"{number} mins\", [k.param(\"number\", y),]);\n                }\n                 else w.text = ((((y == 1)) ? \"about a minute ago\" : l._(\"{number} minutes ago\", {\n                    number: y\n                })));\n                \n            ;\n            ;\n                w.next = ((n - ((x % n))));\n                return w;\n            }\n        ;\n        ;\n            if (((z < 11))) {\n                w.next = ((o - ((x % o))));\n            }\n        ;\n        ;\n            if (((v && ((z == 1))))) {\n                w.text = \"1 hr\";\n            }\n             else if (v) {\n                w.text = k._(\"{number} hrs\", [k.param(\"number\", z),]);\n            }\n             else w.text = ((((z == 1)) ? \"about an hour ago\" : l._(\"{number} hours ago\", {\n                number: z\n            })));\n            \n        ;\n        ;\n            return w;\n        },\n        renderRelativeTimeToServer: function(t) {\n            return s.renderRelativeTime(Math.floor(((s.getApproximateServerTime() / m))), t);\n        }\n    };\n    e.exports = s;\n});\n__d(\"legacy:live-timer\", [\"LiveTimer\",], function(a, b, c, d) {\n    a.LiveTimer = b(\"LiveTimer\");\n}, 3);\n__d(\"JSLogger\", [], function(a, b, c, d, e, f) {\n    var g = {\n        MAX_HISTORY: 500,\n        counts: {\n        },\n        categories: {\n        },\n        seq: 0,\n        pageId: ((((Math.JSBNG__random() * 2147483648)) | 0)).toString(36),\n        forwarding: false\n    };\n    function h(l) {\n        if (((((l instanceof Error)) && a.ErrorUtils))) {\n            l = a.ErrorUtils.normalizeError(l);\n        }\n    ;\n    ;\n        try {\n            return JSON.stringify(l);\n        } catch (m) {\n            return \"{}\";\n        };\n    ;\n    };\n;\n    function i(l, JSBNG__event, m) {\n        if (!g.counts[l]) {\n            g.counts[l] = {\n            };\n        }\n    ;\n    ;\n        if (!g.counts[l][JSBNG__event]) {\n            g.counts[l][JSBNG__event] = 0;\n        }\n    ;\n    ;\n        m = ((((m == null)) ? 1 : Number(m)));\n        g.counts[l][JSBNG__event] += ((isFinite(m) ? m : 0));\n    };\n;\n    g.logAction = function(JSBNG__event, l, m) {\n        if (((this.type == \"bump\"))) {\n            i(this.cat, JSBNG__event, l);\n        }\n         else if (((this.type == \"rate\"))) {\n            ((l && i(this.cat, ((JSBNG__event + \"_n\")), m)));\n            i(this.cat, ((JSBNG__event + \"_d\")), m);\n        }\n         else {\n            var n = {\n                cat: this.cat,\n                type: this.type,\n                JSBNG__event: JSBNG__event,\n                data: ((((l != null)) ? h(l) : null)),\n                date: JSBNG__Date.now(),\n                seq: g.seq++\n            };\n            g.head = ((g.head ? (g.head.next = n) : (g.tail = n)));\n            while (((((g.head.seq - g.tail.seq)) > g.MAX_HISTORY))) {\n                g.tail = g.tail.next;\n            ;\n            };\n        ;\n            return n;\n        }\n        \n    ;\n    ;\n    };\n    function j(l) {\n        if (!g.categories[l]) {\n            g.categories[l] = {\n            };\n            var m = function(n) {\n                var o = {\n                    cat: l,\n                    type: n\n                };\n                g.categories[l][n] = function() {\n                    g.forwarding = false;\n                    var p = null;\n                    if (((JSBNG__document.domain != \"facebook.com\"))) {\n                        return;\n                    }\n                ;\n                ;\n                    p = g.logAction;\n                    if (/^\\/+(dialogs|plugins?)\\//.test(JSBNG__location.pathname)) {\n                        g.forwarding = false;\n                    }\n                     else try {\n                        p = a.JSBNG__top.require(\"JSLogger\")._.logAction;\n                        g.forwarding = ((p !== g.logAction));\n                    } catch (q) {\n                    \n                    }\n                ;\n                ;\n                    ((p && p.apply(o, arguments)));\n                };\n            };\n            m(\"debug\");\n            m(\"log\");\n            m(\"warn\");\n            m(\"error\");\n            m(\"bump\");\n            m(\"rate\");\n        }\n    ;\n    ;\n        return g.categories[l];\n    };\n;\n    function k(l, m) {\n        var n = [];\n        for (var o = ((m || g.tail)); o; o = o.next) {\n            if (((!l || l(o)))) {\n                var p = {\n                    type: o.type,\n                    cat: o.cat,\n                    date: o.date,\n                    JSBNG__event: o.JSBNG__event,\n                    seq: o.seq\n                };\n                if (o.data) {\n                    p.data = JSON.parse(o.data);\n                }\n            ;\n            ;\n                n.push(p);\n            }\n        ;\n        ;\n        };\n    ;\n        return n;\n    };\n;\n    e.exports = {\n        _: g,\n        DUMP_EVENT: \"jslogger/dump\",\n        create: j,\n        getEntries: k\n    };\n});\n__d(\"startsWith\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        var k = String(h);\n        j = Math.min(Math.max(((j || 0)), 0), k.length);\n        return ((k.lastIndexOf(String(i), j) === j));\n    };\n;\n    e.exports = g;\n});\n__d(\"getContextualParent\", [\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"ge\");\n    function h(i, j) {\n        var k, l = false;\n        do {\n            if (((i.getAttribute && (k = i.getAttribute(\"data-ownerid\"))))) {\n                i = g(k);\n                l = true;\n            }\n             else i = i.parentNode;\n        ;\n        ;\n        } while (((((j && i)) && !l)));\n        return i;\n    };\n;\n    e.exports = h;\n});\n__d(\"Nectar\", [\"Env\",\"startsWith\",\"getContextualParent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"startsWith\"), i = b(\"getContextualParent\");\n    function j(m) {\n        if (!m.nctr) {\n            m.nctr = {\n            };\n        }\n    ;\n    ;\n    };\n;\n    function k(m) {\n        if (((g.module || !m))) {\n            return g.module;\n        }\n    ;\n    ;\n        var n = {\n            fbpage_fan_confirm: true,\n            photos_snowlift: true\n        }, o;\n        while (((m && m.getAttributeNode))) {\n            var p = ((m.getAttributeNode(\"id\") || {\n            })).value;\n            if (h(p, \"pagelet_\")) {\n                return p;\n            }\n        ;\n        ;\n            if (((!o && n[p]))) {\n                o = p;\n            }\n        ;\n        ;\n            m = i(m);\n        };\n    ;\n        return o;\n    };\n;\n    var l = {\n        addModuleData: function(m, n) {\n            var o = k(n);\n            if (o) {\n                j(m);\n                m.nctr._mod = o;\n            }\n        ;\n        ;\n        },\n        addImpressionID: function(m) {\n            if (g.impid) {\n                j(m);\n                m.nctr._impid = g.impid;\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = l;\n});\n__d(\"BrowserSupport\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = {\n    }, i = [\"Webkit\",\"Moz\",\"O\",\"ms\",], j = JSBNG__document.createElement(\"div\"), k = function(m) {\n        if (((h[m] === undefined))) {\n            var n = null;\n            if (((m in j.style))) {\n                n = m;\n            }\n             else for (var o = 0; ((o < i.length)); o++) {\n                var p = ((((i[o] + m.charAt(0).toUpperCase())) + m.slice(1)));\n                if (((p in j.style))) {\n                    n = p;\n                    break;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            h[m] = n;\n        }\n    ;\n    ;\n        return h[m];\n    }, l = {\n        hasCSSAnimations: function() {\n            return !!k(\"animationName\");\n        },\n        hasCSSTransforms: function() {\n            return !!k(\"transform\");\n        },\n        hasCSS3DTransforms: function() {\n            return !!k(\"perspective\");\n        },\n        hasCSSTransitions: function() {\n            return !!k(\"transition\");\n        },\n        hasPositionSticky: function() {\n            if (((h.sticky === undefined))) {\n                j.style.cssText = ((\"position:-webkit-sticky;position:-moz-sticky;\" + \"position:-o-sticky;position:-ms-sticky;position:sticky;\"));\n                h.sticky = /sticky/.test(j.style.position);\n            }\n        ;\n        ;\n            return h.sticky;\n        },\n        hasPointerEvents: function() {\n            if (((h.pointerEvents === undefined))) {\n                if (!((\"pointerEvents\" in j.style))) {\n                    h.pointerEvents = false;\n                }\n                 else {\n                    j.style.pointerEvents = \"auto\";\n                    j.style.pointerEvents = \"x\";\n                    g.appendContent(JSBNG__document.documentElement, j);\n                    h.pointerEvents = ((window.JSBNG__getComputedStyle && ((JSBNG__getComputedStyle(j, \"\").pointerEvents === \"auto\"))));\n                    g.remove(j);\n                }\n            ;\n            }\n        ;\n        ;\n            return h.pointerEvents;\n        },\n        getTransitionEndEvent: function() {\n            if (((h.transitionEnd === undefined))) {\n                var m = {\n                    transition: \"transitionend\",\n                    WebkitTransition: \"webkitTransitionEnd\",\n                    MozTransition: \"mozTransitionEnd\",\n                    OTransition: \"oTransitionEnd\"\n                }, n = k(\"transition\");\n                h.transitionEnd = ((m[n] || null));\n            }\n        ;\n        ;\n            return h.transitionEnd;\n        }\n    };\n    e.exports = l;\n});\n__d(\"hyphenate\", [], function(a, b, c, d, e, f) {\n    var g = /([A-Z])/g;\n    function h(i) {\n        return i.replace(g, \"-$1\").toLowerCase();\n    };\n;\n    e.exports = h;\n});\n__d(\"Style\", [\"DOMQuery\",\"UserAgent\",\"$\",\"copyProperties\",\"hyphenate\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"UserAgent\"), i = b(\"$\"), j = b(\"copyProperties\"), k = b(\"hyphenate\");\n    function l(s) {\n        return s.replace(/-(.)/g, function(t, u) {\n            return u.toUpperCase();\n        });\n    };\n;\n    function m(s, t) {\n        var u = r.get(s, t);\n        return ((((u === \"auto\")) || ((u === \"JSBNG__scroll\"))));\n    };\n;\n    var n = new RegExp(((((((((\"\\\\s*\" + \"([^\\\\s:]+)\")) + \"\\\\s*:\\\\s*\")) + \"([^;('\\\"]*(?:(?:\\\\([^)]*\\\\)|\\\"[^\\\"]*\\\"|'[^']*')[^;(?:'\\\"]*)*)\")) + \"(?:;|$)\")), \"g\");\n    function o(s) {\n        var t = {\n        };\n        s.replace(n, function(u, v, w) {\n            t[v] = w;\n        });\n        return t;\n    };\n;\n    function p(s) {\n        var t = \"\";\n        {\n            var fin36keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin36i = (0);\n            var u;\n            for (; (fin36i < fin36keys.length); (fin36i++)) {\n                ((u) = (fin36keys[fin36i]));\n                {\n                    if (s[u]) {\n                        t += ((((((u + \":\")) + s[u])) + \";\"));\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        return t;\n    };\n;\n    function q(s) {\n        return ((((s !== \"\")) ? ((((\"alpha(opacity=\" + ((s * 100)))) + \")\")) : \"\"));\n    };\n;\n    var r = {\n        set: function(s, t, u) {\n            switch (t) {\n              case \"opacity\":\n                if (((t === \"opacity\"))) {\n                    if (((h.ie() < 9))) {\n                        s.style.filter = q(u);\n                    }\n                     else s.style.opacity = u;\n                ;\n                }\n            ;\n            ;\n                break;\n              case \"float\":\n                s.style.cssFloat = s.style.styleFloat = ((u || \"\"));\n                break;\n              default:\n                try {\n                    s.style[l(t)] = u;\n                } catch (v) {\n                    throw new Error(((((((((\"Style.set: \\\"\" + t)) + \"\\\" argument is invalid: \\\"\")) + u)) + \"\\\"\")));\n                };\n            ;\n            };\n        ;\n        },\n        apply: function(s, t) {\n            var u;\n            if (((((\"opacity\" in t)) && ((h.ie() < 9))))) {\n                var v = t.opacity;\n                t.filter = q(v);\n                delete t.opacity;\n            }\n        ;\n        ;\n            var w = o(s.style.cssText);\n            {\n                var fin37keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin37i = (0);\n                (0);\n                for (; (fin37i < fin37keys.length); (fin37i++)) {\n                    ((u) = (fin37keys[fin37i]));\n                    {\n                        var x = t[u];\n                        delete t[u];\n                        u = k(u);\n                        {\n                            var fin38keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin38i = (0);\n                            var y;\n                            for (; (fin38i < fin38keys.length); (fin38i++)) {\n                                ((y) = (fin38keys[fin38i]));\n                                {\n                                    if (((((y === u)) || ((y.indexOf(((u + \"-\"))) === 0))))) {\n                                        delete w[y];\n                                    }\n                                ;\n                                ;\n                                };\n                            };\n                        };\n                    ;\n                        t[u] = x;\n                    };\n                };\n            };\n        ;\n            t = j(w, t);\n            s.style.cssText = p(t);\n            if (((h.ie() < 9))) {\n                {\n                    var fin39keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin39i = (0);\n                    (0);\n                    for (; (fin39i < fin39keys.length); (fin39i++)) {\n                        ((u) = (fin39keys[fin39i]));\n                        {\n                            if (!t[u]) {\n                                r.set(s, u, \"\");\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            }\n        ;\n        ;\n        },\n        get: function(s, t) {\n            s = i(s);\n            var u;\n            if (window.JSBNG__getComputedStyle) {\n                u = window.JSBNG__getComputedStyle(s, null);\n                if (u) {\n                    return u.getPropertyValue(k(t));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((JSBNG__document.defaultView && JSBNG__document.defaultView.JSBNG__getComputedStyle))) {\n                u = JSBNG__document.defaultView.JSBNG__getComputedStyle(s, null);\n                if (u) {\n                    return u.getPropertyValue(k(t));\n                }\n            ;\n            ;\n                if (((t == \"display\"))) {\n                    return \"none\";\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            t = l(t);\n            if (s.currentStyle) {\n                if (((t === \"float\"))) {\n                    return ((s.currentStyle.cssFloat || s.currentStyle.styleFloat));\n                }\n            ;\n            ;\n                return s.currentStyle[t];\n            }\n        ;\n        ;\n            return ((s.style && s.style[t]));\n        },\n        getFloat: function(s, t) {\n            return parseFloat(r.get(s, t), 10);\n        },\n        getOpacity: function(s) {\n            s = i(s);\n            var t = r.get(s, \"filter\"), u = null;\n            if (((t && (u = /(\\d+(?:\\.\\d+)?)/.exec(t))))) {\n                return ((parseFloat(u.pop()) / 100));\n            }\n             else if (t = r.get(s, \"opacity\")) {\n                return parseFloat(t);\n            }\n             else return 1\n            \n        ;\n        },\n        isFixed: function(s) {\n            while (g.contains(JSBNG__document.body, s)) {\n                if (((r.get(s, \"position\") === \"fixed\"))) {\n                    return true;\n                }\n            ;\n            ;\n                s = s.parentNode;\n            };\n        ;\n            return false;\n        },\n        getScrollParent: function(s) {\n            if (!s) {\n                return null;\n            }\n        ;\n        ;\n            while (((s !== JSBNG__document.body))) {\n                if (((((m(s, \"overflow\") || m(s, \"overflowY\"))) || m(s, \"overflowX\")))) {\n                    return s;\n                }\n            ;\n            ;\n                s = s.parentNode;\n            };\n        ;\n            return window;\n        }\n    };\n    e.exports = r;\n});\n__d(\"shield\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        if (((typeof h != \"function\"))) {\n            throw new TypeError();\n        }\n    ;\n    ;\n        var j = Array.prototype.slice.call(arguments, 2);\n        return function() {\n            return h.apply(i, j);\n        };\n    };\n;\n    e.exports = g;\n});\n__d(\"Animation\", [\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"BrowserSupport\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"Style\"), l = b(\"shield\"), m, n = [], o;\n    function p(ga) {\n        if (((a == this))) {\n            return new p(ga);\n        }\n         else {\n            this.obj = ga;\n            this._reset_state();\n            this.queue = [];\n            this.last_attr = null;\n        }\n    ;\n    ;\n    };\n;\n    function q(ga) {\n        if (g.hasCSS3DTransforms()) {\n            return t(ga);\n        }\n         else return s(ga)\n    ;\n    };\n;\n    function r(ga) {\n        return ga.toFixed(8);\n    };\n;\n    function s(ga) {\n        ga = [ga[0],ga[4],ga[1],ga[5],ga[12],ga[13],];\n        return ((((\"matrix(\" + ga.map(r).join(\",\"))) + \")\"));\n    };\n;\n    function t(ga) {\n        return ((((\"matrix3d(\" + ga.map(r).join(\",\"))) + \")\"));\n    };\n;\n    function u(ga, ha) {\n        if (!ga) {\n            ga = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,];\n        }\n    ;\n    ;\n        var ia = [];\n        for (var ja = 0; ((ja < 4)); ja++) {\n            for (var ka = 0; ((ka < 4)); ka++) {\n                var la = 0;\n                for (var ma = 0; ((ma < 4)); ma++) {\n                    la += ((ga[((((ja * 4)) + ma))] * ha[((((ma * 4)) + ka))]));\n                ;\n                };\n            ;\n                ia[((((ja * 4)) + ka))] = la;\n            };\n        ;\n        };\n    ;\n        return ia;\n    };\n;\n    var v = 0;\n    p.prototype._reset_state = function() {\n        this.state = {\n            attrs: {\n            },\n            duration: 500\n        };\n    };\n    p.prototype.JSBNG__stop = function() {\n        this._reset_state();\n        this.queue = [];\n        return this;\n    };\n    p.prototype._build_container = function() {\n        if (this.container_div) {\n            this._refresh_container();\n            return;\n        }\n    ;\n    ;\n        if (((this.obj.firstChild && this.obj.firstChild.__animation_refs))) {\n            this.container_div = this.obj.firstChild;\n            this.container_div.__animation_refs++;\n            this._refresh_container();\n            return;\n        }\n    ;\n    ;\n        var ga = JSBNG__document.createElement(\"div\");\n        ga.style.padding = \"0px\";\n        ga.style.margin = \"0px\";\n        ga.style.border = \"0px\";\n        ga.__animation_refs = 1;\n        var ha = this.obj.childNodes;\n        while (ha.length) {\n            ga.appendChild(ha[0]);\n        ;\n        };\n    ;\n        this.obj.appendChild(ga);\n        this._orig_overflow = this.obj.style.overflow;\n        this.obj.style.overflow = \"hidden\";\n        this.container_div = ga;\n        this._refresh_container();\n    };\n    p.prototype._refresh_container = function() {\n        this.container_div.style.height = \"auto\";\n        this.container_div.style.width = \"auto\";\n        this.container_div.style.height = ((this.container_div.offsetHeight + \"px\"));\n        this.container_div.style.width = ((this.container_div.offsetWidth + \"px\"));\n    };\n    p.prototype._destroy_container = function() {\n        if (!this.container_div) {\n            return;\n        }\n    ;\n    ;\n        if (!--this.container_div.__animation_refs) {\n            var ga = this.container_div.childNodes;\n            while (ga.length) {\n                this.obj.appendChild(ga[0]);\n            ;\n            };\n        ;\n            this.obj.removeChild(this.container_div);\n        }\n    ;\n    ;\n        this.container_div = null;\n        this.obj.style.overflow = this._orig_overflow;\n    };\n    var w = 1, x = 2, y = 3;\n    p.prototype._attr = function(ga, ha, ia) {\n        ga = ga.replace(/-[a-z]/gi, function(ka) {\n            return ka.substring(1).toUpperCase();\n        });\n        var ja = false;\n        switch (ga) {\n          case \"background\":\n            this._attr(\"backgroundColor\", ha, ia);\n            return this;\n          case \"backgroundColor\":\n        \n          case \"borderColor\":\n        \n          case \"color\":\n            ha = ca(ha);\n            break;\n          case \"opacity\":\n            ha = parseFloat(ha, 10);\n            break;\n          case \"height\":\n        \n          case \"width\":\n            if (((ha == \"auto\"))) {\n                ja = true;\n            }\n             else ha = parseInt(ha, 10);\n        ;\n        ;\n            break;\n          case \"borderWidth\":\n        \n          case \"lineHeight\":\n        \n          case \"fontSize\":\n        \n          case \"margin\":\n        \n          case \"marginBottom\":\n        \n          case \"marginLeft\":\n        \n          case \"marginRight\":\n        \n          case \"marginTop\":\n        \n          case \"padding\":\n        \n          case \"paddingBottom\":\n        \n          case \"paddingLeft\":\n        \n          case \"paddingRight\":\n        \n          case \"paddingTop\":\n        \n          case \"bottom\":\n        \n          case \"left\":\n        \n          case \"right\":\n        \n          case \"JSBNG__top\":\n        \n          case \"scrollTop\":\n        \n          case \"scrollLeft\":\n            ha = parseInt(ha, 10);\n            break;\n          case \"rotateX\":\n        \n          case \"rotateY\":\n        \n          case \"rotateZ\":\n            ha = ((((parseInt(ha, 10) * Math.PI)) / 180));\n            break;\n          case \"translateX\":\n        \n          case \"translateY\":\n        \n          case \"translateZ\":\n        \n          case \"scaleX\":\n        \n          case \"scaleY\":\n        \n          case \"scaleZ\":\n            ha = parseFloat(ha, 10);\n            break;\n          case \"rotate3d\":\n            this._attr(\"rotateX\", ha[0], ia);\n            this._attr(\"rotateY\", ha[1], ia);\n            this._attr(\"rotateZ\", ha[2], ia);\n            return this;\n          case \"rotate\":\n            this._attr(\"rotateZ\", ha, ia);\n            return this;\n          case \"scale3d\":\n            this._attr(\"scaleZ\", ha[2], ia);\n          case \"scale\":\n            this._attr(\"scaleX\", ha[0], ia);\n            this._attr(\"scaleY\", ha[1], ia);\n            return this;\n          case \"translate3d\":\n            this._attr(\"translateZ\", ha[2], ia);\n          case \"translate\":\n            this._attr(\"translateX\", ha[0], ia);\n            this._attr(\"translateY\", ha[1], ia);\n            return this;\n          default:\n            throw new Error(((ga + \" is not a supported attribute!\")));\n        };\n    ;\n        if (((this.state.attrs[ga] === undefined))) {\n            this.state.attrs[ga] = {\n            };\n        }\n    ;\n    ;\n        if (ja) {\n            this.state.attrs[ga].auto = true;\n        }\n    ;\n    ;\n        switch (ia) {\n          case y:\n            this.state.attrs[ga].start = ha;\n            break;\n          case x:\n            this.state.attrs[ga].by = true;\n          case w:\n            this.state.attrs[ga].value = ha;\n            break;\n        };\n    ;\n    };\n    function z(ga) {\n        var ha = parseInt(k.get(ga, \"paddingLeft\"), 10), ia = parseInt(k.get(ga, \"paddingRight\"), 10), ja = parseInt(k.get(ga, \"borderLeftWidth\"), 10), ka = parseInt(k.get(ga, \"borderRightWidth\"), 10);\n        return ((((((((ga.offsetWidth - ((ha ? ha : 0)))) - ((ia ? ia : 0)))) - ((ja ? ja : 0)))) - ((ka ? ka : 0))));\n    };\n;\n    function aa(ga) {\n        var ha = parseInt(k.get(ga, \"paddingTop\"), 10), ia = parseInt(k.get(ga, \"paddingBottom\"), 10), ja = parseInt(k.get(ga, \"borderTopWidth\"), 10), ka = parseInt(k.get(ga, \"borderBottomWidth\"), 10);\n        return ((((((((ga.offsetHeight - ((ha ? ha : 0)))) - ((ia ? ia : 0)))) - ((ja ? ja : 0)))) - ((ka ? ka : 0))));\n    };\n;\n    p.prototype.to = function(ga, ha) {\n        if (((ha === undefined))) {\n            this._attr(this.last_attr, ga, w);\n        }\n         else {\n            this._attr(ga, ha, w);\n            this.last_attr = ga;\n        }\n    ;\n    ;\n        return this;\n    };\n    p.prototype.by = function(ga, ha) {\n        if (((ha === undefined))) {\n            this._attr(this.last_attr, ga, x);\n        }\n         else {\n            this._attr(ga, ha, x);\n            this.last_attr = ga;\n        }\n    ;\n    ;\n        return this;\n    };\n    p.prototype.from = function(ga, ha) {\n        if (((ha === undefined))) {\n            this._attr(this.last_attr, ga, y);\n        }\n         else {\n            this._attr(ga, ha, y);\n            this.last_attr = ga;\n        }\n    ;\n    ;\n        return this;\n    };\n    p.prototype.duration = function(ga) {\n        this.state.duration = ((ga ? ga : 0));\n        return this;\n    };\n    p.prototype.checkpoint = function(ga, ha) {\n        if (((ga === undefined))) {\n            ga = 1;\n        }\n    ;\n    ;\n        this.state.checkpoint = ga;\n        this.queue.push(this.state);\n        this._reset_state();\n        this.state.checkpointcb = ha;\n        return this;\n    };\n    p.prototype.blind = function() {\n        this.state.blind = true;\n        return this;\n    };\n    p.prototype.hide = function() {\n        this.state.hide = true;\n        return this;\n    };\n    p.prototype.show = function() {\n        this.state.show = true;\n        return this;\n    };\n    p.prototype.ease = function(ga) {\n        this.state.ease = ga;\n        return this;\n    };\n    p.prototype.go = function() {\n        var ga = JSBNG__Date.now();\n        this.queue.push(this.state);\n        for (var ha = 0; ((ha < this.queue.length)); ha++) {\n            this.queue[ha].start = ((ga - v));\n            if (this.queue[ha].checkpoint) {\n                ga += ((this.queue[ha].checkpoint * this.queue[ha].duration));\n            }\n        ;\n        ;\n        };\n    ;\n        da(this);\n        return this;\n    };\n    p.prototype._show = function() {\n        h.show(this.obj);\n    };\n    p.prototype._hide = function() {\n        h.hide(this.obj);\n    };\n    p.prototype._frame = function(ga) {\n        var ha = true, ia = false, ja;\n        function ka(db) {\n            return ((JSBNG__document.documentElement[db] || JSBNG__document.body[db]));\n        };\n    ;\n        for (var la = 0; ((la < this.queue.length)); la++) {\n            var ma = this.queue[la];\n            if (((ma.start > ga))) {\n                ha = false;\n                continue;\n            }\n        ;\n        ;\n            if (ma.checkpointcb) {\n                this._callback(ma.checkpointcb, ((ga - ma.start)));\n                ma.checkpointcb = null;\n            }\n        ;\n        ;\n            if (((ma.started === undefined))) {\n                if (ma.show) {\n                    this._show();\n                }\n            ;\n            ;\n                {\n                    var fin40keys = ((window.top.JSBNG_Replay.forInKeys)((ma.attrs))), fin40i = (0);\n                    var na;\n                    for (; (fin40i < fin40keys.length); (fin40i++)) {\n                        ((na) = (fin40keys[fin40i]));\n                        {\n                            if (((ma.attrs[na].start !== undefined))) {\n                                continue;\n                            }\n                        ;\n                        ;\n                            switch (na) {\n                              case \"backgroundColor\":\n                            \n                              case \"borderColor\":\n                            \n                              case \"color\":\n                                ja = ca(k.get(this.obj, ((((na == \"borderColor\")) ? \"borderLeftColor\" : na))));\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value[0] = Math.min(255, Math.max(0, ((ma.attrs[na].value[0] + ja[0]))));\n                                    ma.attrs[na].value[1] = Math.min(255, Math.max(0, ((ma.attrs[na].value[1] + ja[1]))));\n                                    ma.attrs[na].value[2] = Math.min(255, Math.max(0, ((ma.attrs[na].value[2] + ja[2]))));\n                                }\n                            ;\n                            ;\n                                break;\n                              case \"opacity\":\n                                ja = k.getOpacity(this.obj);\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value = Math.min(1, Math.max(0, ((ma.attrs[na].value + ja))));\n                                }\n                            ;\n                            ;\n                                break;\n                              case \"height\":\n                                ja = aa(this.obj);\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value += ja;\n                                }\n                            ;\n                            ;\n                                break;\n                              case \"width\":\n                                ja = z(this.obj);\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value += ja;\n                                }\n                            ;\n                            ;\n                                break;\n                              case \"scrollLeft\":\n                            \n                              case \"scrollTop\":\n                                ja = ((((this.obj === JSBNG__document.body)) ? ka(na) : this.obj[na]));\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value += ja;\n                                }\n                            ;\n                            ;\n                                ma[((\"last\" + na))] = ja;\n                                break;\n                              case \"rotateX\":\n                            \n                              case \"rotateY\":\n                            \n                              case \"rotateZ\":\n                            \n                              case \"translateX\":\n                            \n                              case \"translateY\":\n                            \n                              case \"translateZ\":\n                                ja = i.get(this.obj, na, 0);\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value += ja;\n                                }\n                            ;\n                            ;\n                                break;\n                              case \"scaleX\":\n                            \n                              case \"scaleY\":\n                            \n                              case \"scaleZ\":\n                                ja = i.get(this.obj, na, 1);\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value += ja;\n                                }\n                            ;\n                            ;\n                                break;\n                              default:\n                                ja = ((parseInt(k.get(this.obj, na), 10) || 0));\n                                if (ma.attrs[na].by) {\n                                    ma.attrs[na].value += ja;\n                                }\n                            ;\n                            ;\n                                break;\n                            };\n                        ;\n                            ma.attrs[na].start = ja;\n                        };\n                    };\n                };\n            ;\n                if (((((ma.attrs.height && ma.attrs.height.auto)) || ((ma.attrs.width && ma.attrs.width.auto))))) {\n                    this._destroy_container();\n                    {\n                        var fin41keys = ((window.top.JSBNG_Replay.forInKeys)(({\n                            height: 1,\n                            width: 1,\n                            fontSize: 1,\n                            borderLeftWidth: 1,\n                            borderRightWidth: 1,\n                            borderTopWidth: 1,\n                            borderBottomWidth: 1,\n                            paddingLeft: 1,\n                            paddingRight: 1,\n                            paddingTop: 1,\n                            paddingBottom: 1\n                        }))), fin41i = (0);\n                        var na;\n                        for (; (fin41i < fin41keys.length); (fin41i++)) {\n                            ((na) = (fin41keys[fin41i]));\n                            {\n                                if (ma.attrs[na]) {\n                                    this.obj.style[na] = ((ma.attrs[na].value + ((((typeof ma.attrs[na].value == \"number\")) ? \"px\" : \"\"))));\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    if (((ma.attrs.height && ma.attrs.height.auto))) {\n                        ma.attrs.height.value = aa(this.obj);\n                    }\n                ;\n                ;\n                    if (((ma.attrs.width && ma.attrs.width.auto))) {\n                        ma.attrs.width.value = z(this.obj);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                ma.started = true;\n                if (ma.blind) {\n                    this._build_container();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var oa = ((((ga - ma.start)) / ma.duration));\n            if (((oa >= 1))) {\n                oa = 1;\n                if (ma.hide) {\n                    this._hide();\n                }\n            ;\n            ;\n            }\n             else ha = false;\n        ;\n        ;\n            var pa = ((ma.ease ? ma.ease(oa) : oa));\n            if (((((!ia && ((oa != 1)))) && ma.blind))) {\n                ia = true;\n            }\n        ;\n        ;\n            {\n                var fin42keys = ((window.top.JSBNG_Replay.forInKeys)((ma.attrs))), fin42i = (0);\n                var na;\n                for (; (fin42i < fin42keys.length); (fin42i++)) {\n                    ((na) = (fin42keys[fin42i]));\n                    {\n                        switch (na) {\n                          case \"backgroundColor\":\n                        \n                          case \"borderColor\":\n                        \n                          case \"color\":\n                            if (((ma.attrs[na].start[3] != ma.attrs[na].value[3]))) {\n                                this.obj.style[na] = ((((((((((((((((\"rgba(\" + ba(pa, ma.attrs[na].start[0], ma.attrs[na].value[0], true))) + \",\")) + ba(pa, ma.attrs[na].start[1], ma.attrs[na].value[1], true))) + \",\")) + ba(pa, ma.attrs[na].start[2], ma.attrs[na].value[2], true))) + \",\")) + ba(pa, ma.attrs[na].start[3], ma.attrs[na].value[3], false))) + \")\"));\n                            }\n                             else this.obj.style[na] = ((((((((((((\"rgb(\" + ba(pa, ma.attrs[na].start[0], ma.attrs[na].value[0], true))) + \",\")) + ba(pa, ma.attrs[na].start[1], ma.attrs[na].value[1], true))) + \",\")) + ba(pa, ma.attrs[na].start[2], ma.attrs[na].value[2], true))) + \")\"));\n                        ;\n                        ;\n                            break;\n                          case \"opacity\":\n                            k.set(this.obj, \"opacity\", ba(pa, ma.attrs[na].start, ma.attrs[na].value));\n                            break;\n                          case \"height\":\n                        \n                          case \"width\":\n                            this.obj.style[na] = ((((((pa == 1)) && ma.attrs[na].auto)) ? \"auto\" : ((ba(pa, ma.attrs[na].start, ma.attrs[na].value, true) + \"px\"))));\n                            break;\n                          case \"scrollLeft\":\n                        \n                          case \"scrollTop\":\n                            var qa = ((this.obj === JSBNG__document.body));\n                            ja = ((qa ? ka(na) : this.obj[na]));\n                            if (((ma[((\"last\" + na))] !== ja))) {\n                                delete ma.attrs[na];\n                            }\n                             else {\n                                var ra = ba(pa, ma.attrs[na].start, ma.attrs[na].value, true);\n                                if (!qa) {\n                                    ra = this.obj[na] = ra;\n                                }\n                                 else {\n                                    if (((na == \"scrollLeft\"))) {\n                                        a.JSBNG__scrollTo(ra, ka(\"scrollTop\"));\n                                    }\n                                     else a.JSBNG__scrollTo(ka(\"scrollLeft\"), ra);\n                                ;\n                                ;\n                                    ra = ka(na);\n                                }\n                            ;\n                            ;\n                                ma[((\"last\" + na))] = ra;\n                            }\n                        ;\n                        ;\n                            break;\n                          case \"translateX\":\n                        \n                          case \"translateY\":\n                        \n                          case \"translateZ\":\n                        \n                          case \"rotateX\":\n                        \n                          case \"rotateY\":\n                        \n                          case \"rotateZ\":\n                        \n                          case \"scaleX\":\n                        \n                          case \"scaleY\":\n                        \n                          case \"scaleZ\":\n                            i.set(this.obj, na, ba(pa, ma.attrs[na].start, ma.attrs[na].value, false));\n                            break;\n                          default:\n                            this.obj.style[na] = ((ba(pa, ma.attrs[na].start, ma.attrs[na].value, true) + \"px\"));\n                            break;\n                        };\n                    ;\n                    };\n                };\n            };\n        ;\n            var sa = null, ta = i.get(this.obj, \"translateX\", 0), ua = i.get(this.obj, \"translateY\", 0), va = i.get(this.obj, \"translateZ\", 0);\n            if (((((ta || ua)) || va))) {\n                sa = u(sa, [1,0,0,0,0,1,0,0,0,0,1,0,ta,ua,va,1,]);\n            }\n        ;\n        ;\n            var wa = i.get(this.obj, \"scaleX\", 1), xa = i.get(this.obj, \"scaleY\", 1), ya = i.get(this.obj, \"scaleZ\", 1);\n            if (((((((wa - 1)) || ((xa - 1)))) || ((ya - 1))))) {\n                sa = u(sa, [wa,0,0,0,0,xa,0,0,0,0,ya,0,0,0,0,1,]);\n            }\n        ;\n        ;\n            var za = i.get(this.obj, \"rotateX\", 0);\n            if (za) {\n                sa = u(sa, [1,0,0,0,0,Math.cos(za),Math.sin(-za),0,0,Math.sin(za),Math.cos(za),0,0,0,0,1,]);\n            }\n        ;\n        ;\n            var ab = i.get(this.obj, \"rotateY\", 0);\n            if (ab) {\n                sa = u(sa, [Math.cos(ab),0,Math.sin(ab),0,0,1,0,0,Math.sin(-ab),0,Math.cos(ab),0,0,0,0,1,]);\n            }\n        ;\n        ;\n            var bb = i.get(this.obj, \"rotateZ\", 0);\n            if (bb) {\n                sa = u(sa, [Math.cos(bb),Math.sin(-bb),0,0,Math.sin(bb),Math.cos(bb),0,0,0,0,1,0,0,0,0,1,]);\n            }\n        ;\n        ;\n            if (sa) {\n                var cb = q(sa);\n                k.apply(this.obj, {\n                    \"-webkit-transform\": cb,\n                    \"-moz-transform\": cb,\n                    \"-ms-transform\": cb,\n                    \"-o-transform\": cb,\n                    transform: cb\n                });\n            }\n             else if (ha) {\n                k.apply(this.obj, {\n                    \"-webkit-transform\": null,\n                    \"-moz-transform\": null,\n                    \"-ms-transform\": null,\n                    \"-o-transform\": null,\n                    transform: null\n                });\n            }\n            \n        ;\n        ;\n            if (((oa == 1))) {\n                this.queue.splice(la--, 1);\n                this._callback(ma.ondone, ((((ga - ma.start)) - ma.duration)));\n            }\n        ;\n        ;\n        };\n    ;\n        if (((!ia && this.container_div))) {\n            this._destroy_container();\n        }\n    ;\n    ;\n        return !ha;\n    };\n    p.prototype.ondone = function(ga) {\n        this.state.ondone = ga;\n        return this;\n    };\n    p.prototype._callback = function(ga, ha) {\n        if (ga) {\n            v = ha;\n            ga.call(this);\n            v = 0;\n        }\n    ;\n    ;\n    };\n    function ba(ga, ha, ia, ja) {\n        return ((ja ? parseInt : parseFloat))(((((((ia - ha)) * ga)) + ha)), 10);\n    };\n;\n    function ca(ga) {\n        var ha = /^#([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})$/i.exec(ga);\n        if (ha) {\n            return [parseInt(((((ha[1].length == 1)) ? ((ha[1] + ha[1])) : ha[1])), 16),parseInt(((((ha[2].length == 1)) ? ((ha[2] + ha[2])) : ha[2])), 16),parseInt(((((ha[3].length == 1)) ? ((ha[3] + ha[3])) : ha[3])), 16),1,];\n        }\n         else {\n            var ia = /^rgba? *\\(([0-9]+), *([0-9]+), *([0-9]+)(?:, *([0-9\\.]+))?\\)$/.exec(ga);\n            if (ia) {\n                return [parseInt(ia[1], 10),parseInt(ia[2], 10),parseInt(ia[3], 10),((ia[4] ? parseFloat(ia[4]) : 1)),];\n            }\n             else if (((ga == \"transparent\"))) {\n                return [255,255,255,0,];\n            }\n             else throw \"Named color attributes are not supported.\"\n            \n        ;\n        }\n    ;\n    ;\n    };\n;\n    function da(ga) {\n        n.push(ga);\n        if (((n.length === 1))) {\n            if (!m) {\n                var ha = ((((a.JSBNG__requestAnimationFrame || a.JSBNG__webkitRequestAnimationFrame)) || a.JSBNG__mozRequestAnimationFrame));\n                if (ha) {\n                    m = ha.bind(a);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (m) {\n                m(fa);\n            }\n             else o = JSBNG__setInterval(fa, 20, false);\n        ;\n        ;\n        }\n    ;\n    ;\n        if (m) {\n            ea();\n        }\n    ;\n    ;\n        fa(JSBNG__Date.now(), true);\n    };\n;\n    function ea() {\n        if (!m) {\n            throw new Error(\"Ending timer only valid with requestAnimationFrame\");\n        }\n    ;\n    ;\n        var ga = 0;\n        for (var ha = 0; ((ha < n.length)); ha++) {\n            var ia = n[ha];\n            for (var ja = 0; ((ja < ia.queue.length)); ja++) {\n                var ka = ((ia.queue[ja].start + ia.queue[ja].duration));\n                if (((ka > ga))) {\n                    ga = ka;\n                }\n            ;\n            ;\n            };\n        ;\n        };\n    ;\n        if (o) {\n            JSBNG__clearTimeout(o);\n            o = null;\n        }\n    ;\n    ;\n        var la = JSBNG__Date.now();\n        if (((ga > la))) {\n            o = JSBNG__setTimeout(l(fa), ((ga - la)), false);\n        }\n    ;\n    ;\n    };\n;\n    {\n        function fa(ga, ha) {\n            var ia = JSBNG__Date.now();\n            for (var ja = ((((ha === true)) ? ((n.length - 1)) : 0)); ((ja < n.length)); ja++) {\n                try {\n                    if (!n[ja]._frame(ia)) {\n                        n.splice(ja--, 1);\n                    }\n                ;\n                ;\n                } catch (ka) {\n                    n.splice(ja--, 1);\n                };\n            ;\n            };\n        ;\n            if (((n.length === 0))) {\n                if (o) {\n                    if (m) {\n                        JSBNG__clearTimeout(o);\n                    }\n                     else JSBNG__clearInterval(o);\n                ;\n                ;\n                    o = null;\n                }\n            ;\n            ;\n            }\n             else if (m) {\n                m(fa);\n            }\n            \n        ;\n        ;\n        };\n        ((window.top.JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_457.push)((fa)));\n    };\n;\n    p.ease = {\n    };\n    p.ease.begin = function(ga) {\n        return ((Math.sin(((((Math.PI / 2)) * ((ga - 1))))) + 1));\n    };\n    p.ease.end = function(ga) {\n        return Math.sin(((((80962 * Math.PI)) * ga)));\n    };\n    p.ease.both = function(ga) {\n        return ((((81011 * Math.sin(((Math.PI * ((ga - 81035))))))) + 81040));\n    };\n    p.prependInsert = function(ga, ha) {\n        p.insert(ga, ha, j.prependContent);\n    };\n    p.appendInsert = function(ga, ha) {\n        p.insert(ga, ha, j.appendContent);\n    };\n    p.insert = function(ga, ha, ia) {\n        k.set(ha, \"opacity\", 0);\n        ia(ga, ha);\n        new p(ha).from(\"opacity\", 0).to(\"opacity\", 1).duration(400).go();\n    };\n    e.exports = p;\n});\n__d(\"BootloadedReact\", [\"Bootloader\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = function(j) {\n        g.loadModules([\"React\",], j);\n    }, i = {\n        isValidComponent: function(j) {\n            return ((((j && ((typeof j.mountComponentIntoNode === \"function\")))) && ((typeof j.receiveProps === \"function\"))));\n        },\n        initializeTouchEvents: function(j, k) {\n            h(function(l) {\n                l.initializeTouchEvents(j);\n                ((k && k()));\n            });\n        },\n        createClass: function(j, k) {\n            h(function(l) {\n                var m = l.createClass(j);\n                ((k && k(m)));\n            });\n        },\n        renderComponent: function(j, k, l) {\n            h(function(m) {\n                var n = m.renderComponent(j, k);\n                ((l && l(n)));\n            });\n        },\n        unmountAndReleaseReactRootNode: function(j, k) {\n            h(function(l) {\n                l.unmountAndReleaseReactRootNode(j);\n                ((k && k()));\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"ContextualThing\", [\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"ge\"), i = {\n        register: function(j, k) {\n            j.setAttribute(\"data-ownerid\", g.getID(k));\n        },\n        containsIncludingLayers: function(j, k) {\n            while (k) {\n                if (g.contains(j, k)) {\n                    return true;\n                }\n            ;\n            ;\n                k = i.getContext(k);\n            };\n        ;\n            return false;\n        },\n        getContext: function(j) {\n            var k;\n            while (j) {\n                if (((j.getAttribute && (k = j.getAttribute(\"data-ownerid\"))))) {\n                    return h(k);\n                }\n            ;\n            ;\n                j = j.parentNode;\n            };\n        ;\n            return null;\n        }\n    };\n    e.exports = i;\n});\n__d(\"DOMControl\", [\"DataStore\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DataStore\"), h = b(\"$\"), i = b(\"copyProperties\");\n    function j(k) {\n        this.root = h(k);\n        this.updating = false;\n        g.set(k, \"DOMControl\", this);\n    };\n;\n    i(j.prototype, {\n        getRoot: function() {\n            return this.root;\n        },\n        beginUpdate: function() {\n            if (this.updating) {\n                return false;\n            }\n        ;\n        ;\n            this.updating = true;\n            return true;\n        },\n        endUpdate: function() {\n            this.updating = false;\n        },\n        update: function(k) {\n            if (!this.beginUpdate()) {\n                return this;\n            }\n        ;\n        ;\n            this.onupdate(k);\n            this.endUpdate();\n        },\n        onupdate: function(k) {\n        \n        }\n    });\n    j.getInstance = function(k) {\n        return g.get(k, \"DOMControl\");\n    };\n    e.exports = j;\n});\n__d(\"DOMDimensions\", [\"DOMQuery\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"Style\"), i = {\n        getElementDimensions: function(j) {\n            return {\n                width: ((j.offsetWidth || 0)),\n                height: ((j.offsetHeight || 0))\n            };\n        },\n        getViewportDimensions: function() {\n            var j = ((((((((window && window.JSBNG__innerWidth)) || ((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientWidth)))) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientWidth)))) || 0)), k = ((((((((window && window.JSBNG__innerHeight)) || ((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientHeight)))) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientHeight)))) || 0));\n            return {\n                width: j,\n                height: k\n            };\n        },\n        getViewportWithoutScrollbarDimensions: function() {\n            var j = ((((((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientWidth)) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientWidth)))) || 0)), k = ((((((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientHeight)) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientHeight)))) || 0));\n            return {\n                width: j,\n                height: k\n            };\n        },\n        getDocumentDimensions: function(j) {\n            j = ((j || JSBNG__document));\n            var k = g.getDocumentScrollElement(j), l = ((k.scrollWidth || 0)), m = ((k.scrollHeight || 0));\n            return {\n                width: l,\n                height: m\n            };\n        },\n        measureElementBox: function(j, k, l, m, n) {\n            var o;\n            switch (k) {\n              case \"left\":\n            \n              case \"right\":\n            \n              case \"JSBNG__top\":\n            \n              case \"bottom\":\n                o = [k,];\n                break;\n              case \"width\":\n                o = [\"left\",\"right\",];\n                break;\n              case \"height\":\n                o = [\"JSBNG__top\",\"bottom\",];\n                break;\n              default:\n                throw Error(((\"Invalid plane: \" + k)));\n            };\n        ;\n            var p = function(q, r) {\n                var s = 0;\n                for (var t = 0; ((t < o.length)); t++) {\n                    s += ((parseInt(h.get(j, ((((((q + \"-\")) + o[t])) + r))), 10) || 0));\n                ;\n                };\n            ;\n                return s;\n            };\n            return ((((((l ? p(\"padding\", \"\") : 0)) + ((m ? p(\"border\", \"-width\") : 0)))) + ((n ? p(\"margin\", \"\") : 0))));\n        }\n    };\n    e.exports = i;\n});\n__d(\"wrapFunction\", [], function(a, b, c, d, e, f) {\n    var g = {\n    };\n    function h(i, j, k) {\n        j = ((j || \"default\"));\n        return function() {\n            var l = ((((j in g)) ? g[j](i, k) : i));\n            return l.apply(this, arguments);\n        };\n    };\n;\n    h.setWrapper = function(i, j) {\n        j = ((j || \"default\"));\n        g[j] = i;\n    };\n    e.exports = h;\n});\n__d(\"DOMEventListener\", [\"wrapFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"wrapFunction\"), h, i;\n    if (window.JSBNG__addEventListener) {\n        h = function(k, l, m) {\n            m.wrapper = g(m, \"entry\", ((((k + \":\")) + l)));\n            k.JSBNG__addEventListener(l, m.wrapper, false);\n        };\n        i = function(k, l, m) {\n            k.JSBNG__removeEventListener(l, m.wrapper, false);\n        };\n    }\n     else if (window.JSBNG__attachEvent) {\n        h = function(k, l, m) {\n            m.wrapper = g(m, \"entry\", ((((k + \":\")) + l)));\n            k.JSBNG__attachEvent(((\"JSBNG__on\" + l)), m.wrapper);\n        };\n        i = function(k, l, m) {\n            k.JSBNG__detachEvent(((\"JSBNG__on\" + l)), m.wrapper);\n        };\n    }\n    \n;\n;\n    var j = {\n        add: function(k, l, m) {\n            h(k, l, m);\n            return {\n                remove: function() {\n                    i(k, l, m);\n                    k = null;\n                }\n            };\n        },\n        remove: i\n    };\n    e.exports = j;\n});\n__d(\"DOMPosition\", [\"DOMDimensions\",\"DOMQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMDimensions\"), h = b(\"DOMQuery\"), i = {\n        getScrollPosition: function() {\n            var j = h.getDocumentScrollElement();\n            return {\n                x: j.scrollLeft,\n                y: j.scrollTop\n            };\n        },\n        getNormalizedScrollPosition: function() {\n            var j = i.getScrollPosition(), k = g.getDocumentDimensions(), l = g.getViewportDimensions(), m = ((k.height - l.height)), n = ((k.width - l.width));\n            return {\n                y: Math.max(0, Math.min(j.y, m)),\n                x: Math.max(0, Math.min(j.x, n))\n            };\n        },\n        getElementPosition: function(j) {\n            if (!j) {\n                return;\n            }\n        ;\n        ;\n            var k = JSBNG__document.documentElement;\n            if (((!((\"getBoundingClientRect\" in j)) || !h.contains(k, j)))) {\n                return {\n                    x: 0,\n                    y: 0\n                };\n            }\n        ;\n        ;\n            var l = j.getBoundingClientRect(), m = ((Math.round(l.left) - k.clientLeft)), n = ((Math.round(l.JSBNG__top) - k.clientTop));\n            return {\n                x: m,\n                y: n\n            };\n        }\n    };\n    e.exports = i;\n});\n__d(\"isInIframe\", [], function(a, b, c, d, e, f) {\n    function g() {\n        return ((window != window.JSBNG__top));\n    };\n;\n    e.exports = g;\n});\n__d(\"DimensionTracking\", [\"Cookie\",\"DOMDimensions\",\"JSBNG__Event\",\"debounce\",\"isInIframe\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"DOMDimensions\"), i = b(\"JSBNG__Event\"), j = b(\"debounce\"), k = b(\"isInIframe\");\n    function l() {\n        var m = h.getViewportDimensions();\n        g.set(\"wd\", ((((m.width + \"x\")) + m.height)));\n    };\n;\n    if (!k()) {\n        l.defer(100);\n        i.listen(window, \"resize\", j(l, 250));\n        i.listen(window, \"JSBNG__focus\", l);\n    }\n;\n;\n});\n__d(\"Focus\", [\"CSS\",\"DOM\",\"JSBNG__Event\",\"Run\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"Run\"), k = b(\"cx\"), l = b(\"ge\"), m = {\n    }, n, o = {\n        set: function(s) {\n            try {\n                s.tabIndex = s.tabIndex;\n                s.JSBNG__focus();\n            } catch (t) {\n            \n            };\n        ;\n        },\n        setWithoutOutline: function(s) {\n            g.addClass(s, \"_1qp5\");\n            var t = i.listen(s, \"JSBNG__blur\", function() {\n                g.removeClass(s, \"_1qp5\");\n                t.remove();\n            });\n            o.set(s);\n        },\n        relocate: function(s, t) {\n            p();\n            var u = h.getID(s);\n            m[u] = t;\n            g.addClass(s, \"_1qp5\");\n            j.onLeave(r.curry(u));\n        },\n        reset: function(s) {\n            var t = h.getID(s);\n            g.removeClass(s, \"_1qp5\");\n            if (m[t]) {\n                g.removeClass(m[t], \"_3oxt\");\n                delete m[t];\n            }\n        ;\n        ;\n        }\n    };\n    function p() {\n        if (n) {\n            return;\n        }\n    ;\n    ;\n        i.listen(JSBNG__document.documentElement, \"focusout\", q);\n        i.listen(JSBNG__document.documentElement, \"focusin\", q);\n        n = true;\n    };\n;\n    function q(JSBNG__event) {\n        var s = JSBNG__event.getTarget();\n        if (!g.hasClass(s, \"_1qp5\")) {\n            return;\n        }\n    ;\n    ;\n        if (m[s.id]) {\n            g.conditionClass(m[s.id], \"_3oxt\", ((((JSBNG__event.type === \"focusin\")) || ((JSBNG__event.type === \"JSBNG__focus\")))));\n        }\n    ;\n    ;\n    };\n;\n    function r(s) {\n        if (((m[s] && !l(s)))) {\n            delete m[s];\n        }\n    ;\n    ;\n    };\n;\n    e.exports = o;\n});\n__d(\"HighContrastMode\", [\"AsyncSignal\",\"Cookie\",\"CSS\",\"DOM\",\"Env\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"Cookie\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Env\"), l = b(\"Style\"), m = null, n = {\n        init: function(o) {\n            if (((((m !== null)) && ((o.currentState != m))))) {\n                return;\n            }\n        ;\n        ;\n            var p = j.create(\"div\");\n            j.appendContent(JSBNG__document.body, p);\n            p.style.cssText = ((((((((((((((\"border: 1px solid;\" + \"border-color: red green;\")) + \"position: fixed;\")) + \"height: 5px;\")) + \"top: -999px;\")) + \"background-image: url(\")) + o.spacerImage)) + \");\"));\n            var q = l.get(p, \"background-image\"), r = l.get(p, \"border-top-color\"), s = l.get(p, \"border-right-color\"), t = ((((r == s)) || ((q && ((((q == \"none\")) || ((q == \"url(invalid-url:)\"))))))));\n            if (((t != o.currentState))) {\n                i.conditionClass(JSBNG__document.documentElement, \"highContrast\", t);\n                if (k.user) {\n                    h.set(\"highContrastMode\", ((t ? 1 : 0)));\n                    if (t) {\n                        new g(\"/ajax/highcontrast\").send();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            j.remove(p);\n            m = t;\n        }\n    };\n    e.exports = n;\n});\n__d(\"Input\", [\"CSS\",\"DOMQuery\",\"DOMControl\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOMQuery\"), i = b(\"DOMControl\"), j = function(l) {\n        var m = l.getAttribute(\"maxlength\");\n        if (((m && ((m > 0))))) {\n            d([\"enforceMaxLength\",], function(n) {\n                n(l, m);\n            });\n        }\n    ;\n    ;\n    }, k = {\n        isEmpty: function(l) {\n            return ((!(/\\S/).test(((l.value || \"\"))) || g.hasClass(l, \"DOMControl_placeholder\")));\n        },\n        getValue: function(l) {\n            return ((k.isEmpty(l) ? \"\" : l.value));\n        },\n        setValue: function(l, m) {\n            g.removeClass(l, \"DOMControl_placeholder\");\n            l.value = ((m || \"\"));\n            j(l);\n            var n = i.getInstance(l);\n            ((((n && n.resetHeight)) && n.resetHeight()));\n        },\n        setPlaceholder: function(l, m) {\n            l.setAttribute(\"aria-label\", m);\n            l.setAttribute(\"placeholder\", m);\n            if (((l == JSBNG__document.activeElement))) {\n                return;\n            }\n        ;\n        ;\n            if (k.isEmpty(l)) {\n                g.conditionClass(l, \"DOMControl_placeholder\", m);\n                l.value = ((m || \"\"));\n            }\n        ;\n        ;\n        },\n        reset: function(l) {\n            var m = ((((l !== JSBNG__document.activeElement)) ? ((l.getAttribute(\"placeholder\") || \"\")) : \"\"));\n            l.value = m;\n            g.conditionClass(l, \"DOMControl_placeholder\", m);\n            l.style.height = \"\";\n        },\n        setSubmitOnEnter: function(l, m) {\n            g.conditionClass(l, \"enter_submit\", m);\n        },\n        getSubmitOnEnter: function(l) {\n            return g.hasClass(l, \"enter_submit\");\n        },\n        setMaxLength: function(l, m) {\n            if (((m > 0))) {\n                l.setAttribute(\"maxlength\", m);\n                j(l);\n            }\n             else l.removeAttribute(\"maxlength\");\n        ;\n        ;\n        }\n    };\n    e.exports = k;\n});\n__d(\"KeyEventController\", [\"DOM\",\"JSBNG__Event\",\"Run\",\"copyProperties\",\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"JSBNG__Event\"), i = b(\"Run\"), j = b(\"copyProperties\"), k = b(\"isEmpty\");\n    function l() {\n        this.handlers = {\n        };\n        JSBNG__document.JSBNG__onkeyup = this.onkeyevent.bind(this, \"JSBNG__onkeyup\");\n        JSBNG__document.JSBNG__onkeydown = this.onkeyevent.bind(this, \"JSBNG__onkeydown\");\n        JSBNG__document.JSBNG__onkeypress = this.onkeyevent.bind(this, \"JSBNG__onkeypress\");\n    };\n;\n    j(l, {\n        instance: null,\n        getInstance: function() {\n            return ((l.instance || (l.instance = new l())));\n        },\n        defaultFilter: function(JSBNG__event, m) {\n            JSBNG__event = h.$E(JSBNG__event);\n            return ((((l.filterEventTypes(JSBNG__event, m) && l.filterEventTargets(JSBNG__event, m))) && l.filterEventModifiers(JSBNG__event, m)));\n        },\n        filterEventTypes: function(JSBNG__event, m) {\n            if (((m === \"JSBNG__onkeydown\"))) {\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        filterEventTargets: function(JSBNG__event, m) {\n            var n = JSBNG__event.getTarget(), o = ((n.contentEditable === \"true\"));\n            return ((((!((o || g.isNodeOfType(n, l._interactiveElements))) || ((n.type in l._uninterestingTypes)))) || ((((JSBNG__event.keyCode in l._controlKeys)) && ((((g.isNodeOfType(n, [\"input\",\"textarea\",]) && ((n.value.length === 0)))) || ((o && ((g.getText(n).length === 0))))))))));\n        },\n        filterEventModifiers: function(JSBNG__event, m) {\n            if (((((((JSBNG__event.ctrlKey || JSBNG__event.altKey)) || JSBNG__event.metaKey)) || JSBNG__event.repeat))) {\n                return false;\n            }\n        ;\n        ;\n            return true;\n        },\n        registerKey: function(m, n, o, p) {\n            if (((o === undefined))) {\n                o = l.defaultFilter;\n            }\n        ;\n        ;\n            var q = l.getInstance(), r = q.mapKey(m);\n            if (k(q.handlers)) {\n                i.onLeave(q.resetHandlers.bind(q));\n            }\n        ;\n        ;\n            var s = {\n            };\n            for (var t = 0; ((t < r.length)); t++) {\n                m = r[t];\n                if (((!q.handlers[m] || p))) {\n                    q.handlers[m] = [];\n                }\n            ;\n            ;\n                var u = {\n                    callback: n,\n                    filter: o\n                };\n                s[m] = u;\n                q.handlers[m].push(u);\n            };\n        ;\n            return {\n                remove: function() {\n                    {\n                        var fin43keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin43i = (0);\n                        var v;\n                        for (; (fin43i < fin43keys.length); (fin43i++)) {\n                            ((v) = (fin43keys[fin43i]));\n                            {\n                                if (((q.handlers[v] && q.handlers[v].length))) {\n                                    var w = q.handlers[v].indexOf(s[v]);\n                                    ((((w >= 0)) && q.handlers[v].splice(w, 1)));\n                                }\n                            ;\n                            ;\n                                delete s[v];\n                            };\n                        };\n                    };\n                ;\n                }\n            };\n        },\n        keyCodeMap: {\n            BACKSPACE: [8,],\n            TAB: [9,],\n            RETURN: [13,],\n            ESCAPE: [27,],\n            LEFT: [37,63234,],\n            UP: [38,63232,],\n            RIGHT: [39,63235,],\n            DOWN: [40,63233,],\n            DELETE: [46,],\n            COMMA: [188,],\n            PERIOD: [190,],\n            SLASH: [191,],\n            \"`\": [192,],\n            \"[\": [219,],\n            \"]\": [221,]\n        },\n        _interactiveElements: [\"input\",\"select\",\"textarea\",\"object\",\"embed\",],\n        _uninterestingTypes: {\n            button: 1,\n            checkbox: 1,\n            radio: 1,\n            submit: 1\n        },\n        _controlKeys: {\n            8: 1,\n            9: 1,\n            13: 1,\n            27: 1,\n            37: 1,\n            63234: 1,\n            38: 1,\n            63232: 1,\n            39: 1,\n            63235: 1,\n            40: 1,\n            63233: 1,\n            46: 1\n        }\n    });\n    j(l.prototype, {\n        mapKey: function(m) {\n            if (((((m >= 0)) && ((m <= 9))))) {\n                if (((typeof (m) != \"number\"))) {\n                    m = ((m.charCodeAt(0) - 48));\n                }\n            ;\n            ;\n                return [((48 + m)),((96 + m)),];\n            }\n        ;\n        ;\n            var n = l.keyCodeMap[m.toUpperCase()];\n            if (n) {\n                return n;\n            }\n        ;\n        ;\n            return [m.toUpperCase().charCodeAt(0),];\n        },\n        onkeyevent: function(m, n) {\n            n = h.$E(n);\n            var o = ((this.handlers[n.keyCode] || this.handlers[n.which])), p, q, r;\n            if (o) {\n                for (var s = 0; ((s < o.length)); s++) {\n                    p = o[s].callback;\n                    q = o[s].filter;\n                    try {\n                        if (((!q || q(n, m)))) {\n                            r = p(n, m);\n                            if (((r === false))) {\n                                return h.kill(n);\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    } catch (t) {\n                    \n                    };\n                ;\n                };\n            }\n        ;\n        ;\n            return true;\n        },\n        resetHandlers: function() {\n            this.handlers = {\n            };\n        }\n    });\n    e.exports = l;\n});\n__d(\"KeyStatus\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = null, i = null;\n    function j() {\n        if (!i) {\n            i = g.listen(window, \"JSBNG__blur\", function() {\n                h = null;\n                k();\n            });\n        }\n    ;\n    ;\n    };\n;\n    function k() {\n        if (i) {\n            i.remove();\n            i = null;\n        }\n    ;\n    ;\n    };\n;\n    g.listen(JSBNG__document.documentElement, \"keydown\", function(m) {\n        h = g.getKeyCode(m);\n        j();\n    }, g.Priority.URGENT);\n    g.listen(JSBNG__document.documentElement, \"keyup\", function(m) {\n        h = null;\n        k();\n    }, g.Priority.URGENT);\n    var l = {\n        isKeyDown: function() {\n            return !!h;\n        },\n        getKeyDownCode: function() {\n            return h;\n        }\n    };\n    e.exports = l;\n});\n__d(\"BehaviorsMixin\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(l) {\n        this._behavior = l;\n        this._enabled = false;\n    };\n;\n    g(h.prototype, {\n        enable: function() {\n            if (!this._enabled) {\n                this._enabled = true;\n                this._behavior.enable();\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            if (this._enabled) {\n                this._enabled = false;\n                this._behavior.disable();\n            }\n        ;\n        ;\n        }\n    });\n    var i = 1;\n    function j(l) {\n        if (!l.__BEHAVIOR_ID) {\n            l.__BEHAVIOR_ID = i++;\n        }\n    ;\n    ;\n        return l.__BEHAVIOR_ID;\n    };\n;\n    var k = {\n        enableBehavior: function(l) {\n            if (!this._behaviors) {\n                this._behaviors = {\n                };\n            }\n        ;\n        ;\n            var m = j(l);\n            if (!this._behaviors[m]) {\n                this._behaviors[m] = new h(new l(this));\n            }\n        ;\n        ;\n            this._behaviors[m].enable();\n            return this;\n        },\n        disableBehavior: function(l) {\n            if (this._behaviors) {\n                var m = j(l);\n                if (this._behaviors[m]) {\n                    this._behaviors[m].disable();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return this;\n        },\n        enableBehaviors: function(l) {\n            l.forEach(this.enableBehavior.bind(this));\n            return this;\n        },\n        destroyBehaviors: function() {\n            if (this._behaviors) {\n                {\n                    var fin44keys = ((window.top.JSBNG_Replay.forInKeys)((this._behaviors))), fin44i = (0);\n                    var l;\n                    for (; (fin44i < fin44keys.length); (fin44i++)) {\n                        ((l) = (fin44keys[fin44i]));\n                        {\n                            this._behaviors[l].disable();\n                        ;\n                        };\n                    };\n                };\n            ;\n                this._behaviors = {\n                };\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = k;\n});\n__d(\"removeFromArray\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        var j = h.indexOf(i);\n        ((((j != -1)) && h.splice(j, 1)));\n    };\n;\n    e.exports = g;\n});\n__d(\"Layer\", [\"JSBNG__Event\",\"function-extensions\",\"ArbiterMixin\",\"BehaviorsMixin\",\"BootloadedReact\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"KeyEventController\",\"Parent\",\"Style\",\"copyProperties\",\"ge\",\"removeFromArray\",\"KeyStatus\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"BootloadedReact\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"HTML\"), p = b(\"KeyEventController\"), q = b(\"Parent\"), r = b(\"Style\"), s = b(\"copyProperties\"), t = b(\"ge\"), u = b(\"removeFromArray\");\n    b(\"KeyStatus\");\n    var v = [];\n    function w(x, y) {\n        this._config = ((x || {\n        }));\n        if (y) {\n            this._configure(this._config, y);\n            var z = ((this._config.addedBehaviors || []));\n            this.enableBehaviors(this._getDefaultBehaviors().concat(z));\n        }\n    ;\n    ;\n    };\n;\n    s(w, h);\n    s(w, {\n        init: function(x, y) {\n            x.init(y);\n        },\n        initAndShow: function(x, y) {\n            x.init(y).show();\n        },\n        show: function(x) {\n            x.show();\n        },\n        getTopmostLayer: function() {\n            return v[((v.length - 1))];\n        }\n    });\n    s(w.prototype, h, i, {\n        _initialized: false,\n        _root: null,\n        _shown: false,\n        _hiding: false,\n        _causalElement: null,\n        _reactContainer: null,\n        init: function(x) {\n            this._configure(this._config, x);\n            var y = ((this._config.addedBehaviors || []));\n            this.enableBehaviors(this._getDefaultBehaviors().concat(y));\n            this._initialized = true;\n            return this;\n        },\n        _configure: function(x, y) {\n            if (y) {\n                var z = n.isNode(y), aa = ((((typeof y === \"string\")) || o.isHTML(y)));\n                this.containsReactComponent = j.isValidComponent(y);\n                if (aa) {\n                    y = o(y).getRootNode();\n                }\n                 else if (this.containsReactComponent) {\n                    var ba = JSBNG__document.createElement(\"div\");\n                    j.renderComponent(y, ba);\n                    y = this._reactContainer = ba;\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            this._root = this._buildWrapper(x, y);\n            if (x.attributes) {\n                n.setAttributes(this._root, x.attributes);\n            }\n        ;\n        ;\n            if (x.classNames) {\n                x.classNames.forEach(l.addClass.curry(this._root));\n            }\n        ;\n        ;\n            l.addClass(this._root, \"uiLayer\");\n            if (x.causalElement) {\n                this._causalElement = t(x.causalElement);\n            }\n        ;\n        ;\n            if (x.permanent) {\n                this._permanent = x.permanent;\n            }\n        ;\n        ;\n            m.set(this._root, \"layer\", this);\n        },\n        _getDefaultBehaviors: function() {\n            return [];\n        },\n        getCausalElement: function() {\n            return this._causalElement;\n        },\n        setCausalElement: function(x) {\n            this._causalElement = x;\n            return this;\n        },\n        getInsertParent: function() {\n            return ((this._insertParent || JSBNG__document.body));\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getContentRoot: function() {\n            return this._root;\n        },\n        _buildWrapper: function(x, y) {\n            return y;\n        },\n        setInsertParent: function(x) {\n            if (x) {\n                if (((this._shown && ((x !== this.getInsertParent()))))) {\n                    n.appendContent(x, this.getRoot());\n                    this.updatePosition();\n                }\n            ;\n            ;\n                this._insertParent = x;\n            }\n        ;\n        ;\n            return this;\n        },\n        show: function() {\n            if (this._shown) {\n                return this;\n            }\n        ;\n        ;\n            var x = this.getRoot();\n            this.inform(\"beforeshow\");\n            r.set(x, \"visibility\", \"hidden\");\n            r.set(x, \"overflow\", \"hidden\");\n            l.show(x);\n            n.appendContent(this.getInsertParent(), x);\n            if (((this.updatePosition() !== false))) {\n                this._shown = true;\n                this.inform(\"show\");\n                w.inform(\"show\", this);\n                if (!this._permanent) {\n                    !function() {\n                        if (this._shown) {\n                            v.push(this);\n                        }\n                    ;\n                    ;\n                    }.bind(this).defer();\n                }\n            ;\n            ;\n            }\n             else l.hide(x);\n        ;\n        ;\n            r.set(x, \"visibility\", \"\");\n            r.set(x, \"overflow\", \"\");\n            this.inform(\"aftershow\");\n            return this;\n        },\n        hide: function() {\n            if (((((this._hiding || !this._shown)) || ((this.inform(\"beforehide\") === false))))) {\n                return this;\n            }\n        ;\n        ;\n            this._hiding = true;\n            if (((this.inform(\"starthide\") !== false))) {\n                this.finishHide();\n            }\n        ;\n        ;\n            return this;\n        },\n        conditionShow: function(x) {\n            return ((x ? this.show() : this.hide()));\n        },\n        finishHide: function() {\n            if (this._shown) {\n                if (!this._permanent) {\n                    u(v, this);\n                }\n            ;\n            ;\n                this._hiding = false;\n                this._shown = false;\n                l.hide(this.getRoot());\n                this.inform(\"hide\");\n                w.inform(\"hide\", this);\n            }\n        ;\n        ;\n        },\n        isShown: function() {\n            return this._shown;\n        },\n        updatePosition: function() {\n            return true;\n        },\n        destroy: function() {\n            if (this.containsReactComponent) {\n                j.unmountAndReleaseReactRootNode(this._reactContainer);\n            }\n        ;\n        ;\n            this.finishHide();\n            var x = this.getRoot();\n            n.remove(x);\n            this.destroyBehaviors();\n            this.inform(\"destroy\");\n            w.inform(\"destroy\", this);\n            m.remove(x, \"layer\");\n            this._root = this._causalElement = null;\n        }\n    });\n    g.listen(JSBNG__document.documentElement, \"keydown\", function(JSBNG__event) {\n        if (p.filterEventTargets(JSBNG__event, \"keydown\")) {\n            for (var x = ((v.length - 1)); ((x >= 0)); x--) {\n                if (((v[x].inform(\"key\", JSBNG__event) === false))) {\n                    return false;\n                }\n            ;\n            ;\n            };\n        }\n    ;\n    ;\n    }, g.Priority.URGENT);\n    g.listen(JSBNG__document.documentElement, \"click\", function(JSBNG__event) {\n        var x = v.length;\n        if (!x) {\n            return;\n        }\n    ;\n    ;\n        var y = JSBNG__event.getTarget();\n        if (!n.contains(JSBNG__document.documentElement, y)) {\n            return;\n        }\n    ;\n    ;\n        if (!y.offsetWidth) {\n            return;\n        }\n    ;\n    ;\n        if (q.byClass(y, \"generic_dialog\")) {\n            return;\n        }\n    ;\n    ;\n        while (x--) {\n            var z = v[x], aa = z.getContentRoot();\n            if (k.containsIncludingLayers(aa, y)) {\n                return;\n            }\n        ;\n        ;\n            if (((((z.inform(\"JSBNG__blur\") === false)) || z.isShown()))) {\n                return;\n            }\n        ;\n        ;\n        };\n    ;\n    });\n    e.exports = w;\n});\n__d(\"PopupWindow\", [\"DOMDimensions\",\"DOMQuery\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMDimensions\"), h = b(\"DOMQuery\"), i = b(\"Layer\"), j = b(\"copyProperties\"), k = {\n        _opts: {\n            allowShrink: true,\n            strategy: \"vector\",\n            timeout: 100,\n            widthElement: null\n        },\n        init: function(l) {\n            j(k._opts, l);\n            JSBNG__setInterval(k._resizeCheck, k._opts.timeout);\n        },\n        _resizeCheck: function() {\n            var l = g.getViewportDimensions(), m = k._getDocumentSize(), n = i.getTopmostLayer();\n            if (n) {\n                var o = n.getRoot().firstChild, p = g.getElementDimensions(o);\n                p.height += g.measureElementBox(o, \"height\", true, true, true);\n                p.width += g.measureElementBox(o, \"width\", true, true, true);\n                m.height = Math.max(m.height, p.height);\n                m.width = Math.max(m.width, p.width);\n            }\n        ;\n        ;\n            var q = ((m.height - l.height)), r = ((m.width - l.width));\n            if (((((r < 0)) && !k._opts.widthElement))) {\n                r = 0;\n            }\n        ;\n        ;\n            r = ((((r > 1)) ? r : 0));\n            if (((!k._opts.allowShrink && ((q < 0))))) {\n                q = 0;\n            }\n        ;\n        ;\n            if (((q || r))) {\n                try {\n                    ((window.JSBNG__console && window.JSBNG__console.firebug));\n                    window.JSBNG__resizeBy(r, q);\n                    if (r) {\n                        window.JSBNG__moveBy(((r / -2)), 0);\n                    }\n                ;\n                ;\n                } catch (s) {\n                \n                };\n            }\n        ;\n        ;\n        },\n        _getDocumentSize: function() {\n            var l = g.getDocumentDimensions();\n            if (((k._opts.strategy === \"offsetHeight\"))) {\n                l.height = JSBNG__document.body.offsetHeight;\n            }\n        ;\n        ;\n            if (k._opts.widthElement) {\n                var m = h.scry(JSBNG__document.body, k._opts.widthElement)[0];\n                if (m) {\n                    l.width = g.getElementDimensions(m).width;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var n = a.Dialog;\n            if (((((n && n.max_bottom)) && ((n.max_bottom > l.height))))) {\n                l.height = n.max_bottom;\n            }\n        ;\n        ;\n            return l;\n        },\n        open: function(l, m, n) {\n            var o = ((((typeof window.JSBNG__screenX != \"undefined\")) ? window.JSBNG__screenX : window.JSBNG__screenLeft)), p = ((((typeof window.JSBNG__screenY != \"undefined\")) ? window.JSBNG__screenY : window.JSBNG__screenTop)), q = ((((typeof window.JSBNG__outerWidth != \"undefined\")) ? window.JSBNG__outerWidth : JSBNG__document.body.clientWidth)), r = ((((typeof window.JSBNG__outerHeight != \"undefined\")) ? window.JSBNG__outerHeight : ((JSBNG__document.body.clientHeight - 22)))), s = parseInt(((o + ((((q - n)) / 2)))), 10), t = parseInt(((p + ((((r - m)) / 2.5)))), 10), u = ((((((((((((((\"width=\" + n)) + \",height=\")) + m)) + \",left=\")) + s)) + \",top=\")) + t));\n            return window.open(l, \"_blank\", u);\n        }\n    };\n    e.exports = k;\n});\n__d(\"TidyArbiterMixin\", [\"Arbiter\",\"ArbiterMixin\",\"Run\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Run\"), j = b(\"copyProperties\"), k = {\n    };\n    j(k, h, {\n        _getArbiterInstance: function() {\n            if (!this._arbiter) {\n                this._arbiter = new g();\n                i.onLeave(function() {\n                    delete this._arbiter;\n                }.bind(this));\n            }\n        ;\n        ;\n            return this._arbiter;\n        }\n    });\n    e.exports = k;\n});\n__d(\"TidyArbiter\", [\"TidyArbiterMixin\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"TidyArbiterMixin\"), h = b(\"copyProperties\"), i = {\n    };\n    h(i, g);\n    e.exports = i;\n});\n__d(\"Vector\", [\"JSBNG__Event\",\"DOMDimensions\",\"DOMPosition\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOMDimensions\"), i = b(\"DOMPosition\"), j = b(\"copyProperties\");\n    function k(l, m, n) {\n        j(this, {\n            x: parseFloat(l),\n            y: parseFloat(m),\n            domain: ((n || \"pure\"))\n        });\n    };\n;\n    j(k.prototype, {\n        toString: function() {\n            return ((((((((\"(\" + this.x)) + \", \")) + this.y)) + \")\"));\n        },\n        add: function(l, m) {\n            if (((arguments.length == 1))) {\n                if (((l.domain != \"pure\"))) {\n                    l = l.convertTo(this.domain);\n                }\n            ;\n            ;\n                return this.add(l.x, l.y);\n            }\n        ;\n        ;\n            var n = parseFloat(l), o = parseFloat(m);\n            return new k(((this.x + n)), ((this.y + o)), this.domain);\n        },\n        mul: function(l, m) {\n            if (((typeof m == \"undefined\"))) {\n                m = l;\n            }\n        ;\n        ;\n            return new k(((this.x * l)), ((this.y * m)), this.domain);\n        },\n        sub: function(l, m) {\n            if (((arguments.length == 1))) {\n                return this.add(l.mul(-1));\n            }\n             else return this.add(-l, -m)\n        ;\n        },\n        distanceTo: function(l) {\n            return this.sub(l).magnitude();\n        },\n        magnitude: function() {\n            return Math.sqrt(((((this.x * this.x)) + ((this.y * this.y)))));\n        },\n        rotate: function(l) {\n            return new k(((((this.x * Math.cos(l))) - ((this.y * Math.sin(l))))), ((((this.x * Math.sin(l))) + ((this.y * Math.cos(l))))));\n        },\n        convertTo: function(l) {\n            if (((((((l != \"pure\")) && ((l != \"viewport\")))) && ((l != \"JSBNG__document\"))))) {\n                return new k(0, 0);\n            }\n        ;\n        ;\n            if (((l == this.domain))) {\n                return new k(this.x, this.y, this.domain);\n            }\n        ;\n        ;\n            if (((l == \"pure\"))) {\n                return new k(this.x, this.y);\n            }\n        ;\n        ;\n            if (((this.domain == \"pure\"))) {\n                return new k(0, 0);\n            }\n        ;\n        ;\n            var m = k.getScrollPosition(\"JSBNG__document\"), n = this.x, o = this.y;\n            if (((this.domain == \"JSBNG__document\"))) {\n                n -= m.x;\n                o -= m.y;\n            }\n             else {\n                n += m.x;\n                o += m.y;\n            }\n        ;\n        ;\n            return new k(n, o, l);\n        },\n        setElementPosition: function(l) {\n            var m = this.convertTo(\"JSBNG__document\");\n            l.style.left = ((parseInt(m.x) + \"px\"));\n            l.style.JSBNG__top = ((parseInt(m.y) + \"px\"));\n            return this;\n        },\n        setElementDimensions: function(l) {\n            return this.setElementWidth(l).setElementHeight(l);\n        },\n        setElementWidth: function(l) {\n            l.style.width = ((parseInt(this.x, 10) + \"px\"));\n            return this;\n        },\n        setElementHeight: function(l) {\n            l.style.height = ((parseInt(this.y, 10) + \"px\"));\n            return this;\n        },\n        scrollElementBy: function(l) {\n            if (((l == JSBNG__document.body))) {\n                window.JSBNG__scrollBy(this.x, this.y);\n            }\n             else {\n                l.scrollLeft += this.x;\n                l.scrollTop += this.y;\n            }\n        ;\n        ;\n            return this;\n        }\n    });\n    j(k, {\n        getEventPosition: function(l, m) {\n            m = ((m || \"JSBNG__document\"));\n            var n = g.getPosition(l), o = new k(n.x, n.y, \"JSBNG__document\");\n            return o.convertTo(m);\n        },\n        getScrollPosition: function(l) {\n            l = ((l || \"JSBNG__document\"));\n            var m = i.getScrollPosition();\n            return new k(m.x, m.y, \"JSBNG__document\").convertTo(l);\n        },\n        getElementPosition: function(l, m) {\n            m = ((m || \"JSBNG__document\"));\n            var n = i.getElementPosition(l);\n            return new k(n.x, n.y, \"viewport\").convertTo(m);\n        },\n        getElementDimensions: function(l) {\n            var m = h.getElementDimensions(l);\n            return new k(m.width, m.height);\n        },\n        getViewportDimensions: function() {\n            var l = h.getViewportDimensions();\n            return new k(l.width, l.height, \"viewport\");\n        },\n        getDocumentDimensions: function(l) {\n            var m = h.getDocumentDimensions(l);\n            return new k(m.width, m.height, \"JSBNG__document\");\n        },\n        deserialize: function(l) {\n            var m = l.split(\",\");\n            return new k(m[0], m[1]);\n        }\n    });\n    e.exports = k;\n});\n__d(\"collectDataAttributes\", [\"getContextualParent\",], function(a, b, c, d, e, f) {\n    var g = b(\"getContextualParent\");\n    function h(i, j) {\n        var k = {\n        }, l = {\n        }, m = j.length, n;\n        for (n = 0; ((n < m)); ++n) {\n            k[j[n]] = {\n            };\n            l[j[n]] = ((\"data-\" + j[n]));\n        };\n    ;\n        var o = {\n            tn: \"\",\n            \"tn-debug\": \",\"\n        };\n        while (i) {\n            if (i.getAttribute) {\n                for (n = 0; ((n < m)); ++n) {\n                    var p = i.getAttribute(l[j[n]]);\n                    if (p) {\n                        var q = JSON.parse(p);\n                        {\n                            var fin45keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin45i = (0);\n                            var r;\n                            for (; (fin45i < fin45keys.length); (fin45i++)) {\n                                ((r) = (fin45keys[fin45i]));\n                                {\n                                    if (((o[r] !== undefined))) {\n                                        if (((k[j[n]][r] === undefined))) {\n                                            k[j[n]][r] = [];\n                                        }\n                                    ;\n                                    ;\n                                        k[j[n]][r].push(q[r]);\n                                    }\n                                     else if (((k[j[n]][r] === undefined))) {\n                                        k[j[n]][r] = q[r];\n                                    }\n                                    \n                                ;\n                                ;\n                                };\n                            };\n                        };\n                    ;\n                    }\n                ;\n                ;\n                };\n            }\n        ;\n        ;\n            i = g(i);\n        };\n    ;\n        {\n            var fin46keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin46i = (0);\n            var s;\n            for (; (fin46i < fin46keys.length); (fin46i++)) {\n                ((s) = (fin46keys[fin46i]));\n                {\n                    {\n                        var fin47keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin47i = (0);\n                        var t;\n                        for (; (fin47i < fin47keys.length); (fin47i++)) {\n                            ((t) = (fin47keys[fin47i]));\n                            {\n                                if (((k[s][t] !== undefined))) {\n                                    k[s][t] = k[s][t].join(o[t]);\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                };\n            };\n        };\n    ;\n        return k;\n    };\n;\n    e.exports = h;\n});\n__d(\"csx\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        throw new Error(\"csx(...): Unexpected class selector transformation.\");\n    };\n;\n    e.exports = g;\n});\n__d(\"JSBNG__requestAnimationFrame\", [\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"emptyFunction\"), h = 0, i = ((((((((((a.JSBNG__requestAnimationFrame || a.JSBNG__webkitRequestAnimationFrame)) || a.JSBNG__mozRequestAnimationFrame)) || a.oRequestAnimationFrame)) || a.msRequestAnimationFrame)) || function(j) {\n        var k = JSBNG__Date.now(), l = Math.max(0, ((16 - ((k - h)))));\n        h = ((k + l));\n        return a.JSBNG__setTimeout(j, l);\n    }));\n    i(g);\n    e.exports = i;\n});\n__d(\"queryThenMutateDOM\", [\"function-extensions\",\"Run\",\"createArrayFrom\",\"emptyFunction\",\"JSBNG__requestAnimationFrame\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Run\"), h = b(\"createArrayFrom\"), i = b(\"emptyFunction\"), j = b(\"JSBNG__requestAnimationFrame\"), k, l, m = {\n    }, n = [], o = [];\n    function p(s, t, u) {\n        if (((!s && !t))) {\n            return;\n        }\n    ;\n    ;\n        if (((u && m.hasOwnProperty(u)))) {\n            return;\n        }\n         else if (u) {\n            m[u] = 1;\n        }\n        \n    ;\n    ;\n        n.push(((t || i)));\n        o.push(((s || i)));\n        r();\n        if (!k) {\n            k = true;\n            g.onLeave(function() {\n                k = false;\n                l = false;\n                m = {\n                };\n                n.length = 0;\n                o.length = 0;\n            });\n        }\n    ;\n    ;\n    };\n;\n    p.prepare = function(s, t, u) {\n        return function() {\n            var v = h(arguments);\n            v.unshift(this);\n            var w = Function.prototype.bind.apply(s, v), x = t.bind(this);\n            p(w, x, u);\n        };\n    };\n    function q() {\n        m = {\n        };\n        var s = o.length, t = n.length, u = [], v;\n        while (s--) {\n            v = o.shift();\n            u.push(v());\n        };\n    ;\n        while (t--) {\n            v = n.shift();\n            v(u.shift());\n        };\n    ;\n        l = false;\n        r();\n    };\n;\n    function r() {\n        if (((!l && ((o.length || n.length))))) {\n            l = true;\n            j(q);\n        }\n    ;\n    ;\n    };\n;\n    e.exports = p;\n});\n__d(\"setTimeoutAcrossTransitions\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return JSBNG__setTimeout(h, i, false);\n    };\n;\n    e.exports = g;\n});\n__d(\"TimelineCoverCollapse\", [\"Arbiter\",\"DOMDimensions\",\"Style\",\"TidyArbiter\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOMDimensions\"), i = b(\"Style\"), j = b(\"TidyArbiter\"), k = b(\"$\");\n    f.collapse = function(l, m) {\n        m--;\n        var n = h.getViewportDimensions().height, o = h.getDocumentDimensions().height, p = ((n + m));\n        if (((o <= p))) {\n            i.set(k(\"pagelet_timeline_main_column\"), \"min-height\", ((p + \"px\")));\n        }\n    ;\n    ;\n        window.JSBNG__scrollBy(0, m);\n        j.inform(\"TimelineCover/coverCollapsed\", m, g.BEHAVIOR_STATE);\n    };\n});\nfunction tz_calculate(a) {\n    var b = new JSBNG__Date(), c = ((b.getTimezoneOffset() / 30)), d = ((b.getTime() / 1000)), e = Math.round(((((a - d)) / 1800))), f = ((Math.round(((c + e))) % 48));\n    if (((f == 0))) {\n        return 0;\n    }\n     else if (((f > 24))) {\n        f -= ((Math.ceil(((f / 48))) * 48));\n    }\n     else if (((f < -28))) {\n        f += ((Math.ceil(((f / -48))) * 48));\n    }\n    \n    \n;\n;\n    return ((f * 30));\n};\n;\nfunction tz_autoset(a, b, c) {\n    if (((!a || ((undefined == b))))) {\n        return;\n    }\n;\n;\n    if (window.tz_autoset.calculated) {\n        return;\n    }\n;\n;\n    window.tz_autoset.calculated = true;\n    var d = -tz_calculate(a);\n    if (((c || ((d != b))))) {\n        var e = \"/ajax/timezone/update.php\";\n        new AsyncRequest().setURI(e).setData({\n            gmt_off: d,\n            is_forced: c\n        }).setErrorHandler(emptyFunction).setTransportErrorHandler(emptyFunction).setOption(\"suppressErrorAlerts\", true).send();\n    }\n;\n;\n};\n;\n__d(\"UFITracking\", [\"Bootloader\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\");\n    function h(j) {\n        g.loadModules([\"DOM\",\"collectDataAttributes\",], function(k, l) {\n            j.forEach(function(m) {\n                var n = k.scry(JSBNG__document.body, m);\n                if (((!n || n.link_data))) {\n                    return;\n                }\n            ;\n            ;\n                var o = l(n, [\"ft\",]).ft;\n                if (Object.keys(o).length) {\n                    var p = k.create(\"input\", {\n                        type: \"hidden\",\n                        JSBNG__name: \"link_data\",\n                        value: JSON.stringify(o)\n                    });\n                    n.appendChild(p);\n                }\n            ;\n            ;\n            });\n        });\n    };\n;\n    var i = {\n        addAllLinkData: function() {\n            h([\"form.commentable_item\",]);\n        },\n        addAllLinkDataForQuestion: function() {\n            h([\"form.fbEigenpollForm\",\"form.fbQuestionPollForm\",]);\n        }\n    };\n    e.exports = i;\n});\n__d(\"legacy:ufi-tracking-js\", [\"UFITracking\",], function(a, b, c, d) {\n    var e = b(\"UFITracking\");\n    a.ufi_add_all_link_data = e.addAllLinkData;\n    a.question_add_all_link_data = e.addAllLinkDataForQuestion;\n}, 3);\n__d(\"LayerRemoveOnHide\", [\"function-extensions\",\"DOM\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"DOM\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n;\n    h(i.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"hide\", g.remove.curry(this._layer.getRoot()));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"Keys\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        BACKSPACE: 8,\n        TAB: 9,\n        RETURN: 13,\n        ESC: 27,\n        SPACE: 32,\n        PAGE_UP: 33,\n        PAGE_DOWN: 34,\n        END: 35,\n        HOME: 36,\n        LEFT: 37,\n        UP: 38,\n        RIGHT: 39,\n        DOWN: 40,\n        DELETE: 46,\n        COMMA: 188\n    };\n});\n__d(\"areObjectsEqual\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return ((JSON.stringify(h) == JSON.stringify(i)));\n    };\n;\n    e.exports = g;\n});\n__d(\"flattenArray\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        var i = h.slice(), j = [];\n        while (i.length) {\n            var k = i.pop();\n            if (Array.isArray(k)) {\n                Array.prototype.push.apply(i, k);\n            }\n             else j.push(k);\n        ;\n        ;\n        };\n    ;\n        return j.reverse();\n    };\n;\n    e.exports = g;\n});\n__d(\"htmlSpecialChars\", [], function(a, b, c, d, e, f) {\n    var g = /&/g, h = /</g, i = />/g, j = /\"/g, k = /'/g;\n    function l(m) {\n        if (((((((typeof m == \"undefined\")) || ((m === null)))) || !m.toString))) {\n            return \"\";\n        }\n    ;\n    ;\n        if (((m === false))) {\n            return \"0\";\n        }\n         else if (((m === true))) {\n            return \"1\";\n        }\n        \n    ;\n    ;\n        return m.toString().replace(g, \"&amp;\").replace(j, \"&quot;\").replace(k, \"&#039;\").replace(h, \"&lt;\").replace(i, \"&gt;\");\n    };\n;\n    e.exports = l;\n});\n__d(\"htmlize\", [\"htmlSpecialChars\",], function(a, b, c, d, e, f) {\n    var g = b(\"htmlSpecialChars\");\n    function h(i) {\n        return g(i).replace(/\\r\\n|[\\r\\n]/g, \"\\u003Cbr/\\u003E\");\n    };\n;\n    e.exports = h;\n});");
36275 // 1630
36276 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o24,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js",o29);
36277 // undefined
36278 o24 = null;
36279 // undefined
36280 o29 = null;
36281 // 1634
36282 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"OJTM4\",]);\n}\n;\n__d(\"AjaxRequest\", [\"ErrorUtils\",\"Keys\",\"URI\",\"UserAgent\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\"), h = b(\"Keys\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n    function m(q, r, s) {\n        this.xhr = k.create();\n        if (!((r instanceof i))) {\n            r = new i(r);\n        };\n        if ((s && (q == \"GET\"))) {\n            r.setQueryData(s);\n        }\n         else this._params = s;\n    ;\n        this.method = q;\n        this.uri = r;\n        this.xhr.open(q, r);\n    };\n    var n = (window.XMLHttpRequest && ((\"withCredentials\" in new XMLHttpRequest())));\n    m.supportsCORS = function() {\n        return n;\n    };\n    m.ERROR = \"ar:error\";\n    m.TIMEOUT = \"ar:timeout\";\n    m.PROXY_ERROR = \"ar:proxy error\";\n    m.TRANSPORT_ERROR = \"ar:transport error\";\n    m.SERVER_ERROR = \"ar:http error\";\n    m.PARSE_ERROR = \"ar:parse error\";\n    m._inflight = [];\n    function o() {\n        var q = m._inflight;\n        m._inflight = [];\n        q.forEach(function(r) {\n            r.abort();\n        });\n    };\n    function p(q) {\n        q.onJSON = q.onError = q.onSuccess = null;\n        clearTimeout(q._timer);\n        if ((q.xhr && (q.xhr.readyState < 4))) {\n            q.xhr.abort();\n            q.xhr = null;\n        }\n    ;\n        m._inflight = m._inflight.filter(function(r) {\n            return (((r && (r != q)) && r.xhr) && (r.xhr.readyState < 4));\n        });\n    };\n    l(m.prototype, {\n        timeout: 60000,\n        streamMode: true,\n        prelude: /^for \\(;;\\);/,\n        status: null,\n        _eol: -1,\n        _call: function(q) {\n            if (this[q]) {\n                this[q](this);\n            };\n        },\n        _parseStatus: function() {\n            var q;\n            try {\n                this.status = this.xhr.status;\n                q = this.xhr.statusText;\n            } catch (r) {\n                if ((this.xhr.readyState >= 4)) {\n                    this.errorType = m.TRANSPORT_ERROR;\n                    this.errorText = r.message;\n                }\n            ;\n                return;\n            };\n            if (((this.status === 0) && !(/^(file|ftp)/.test(this.uri)))) {\n                this.errorType = m.TRANSPORT_ERROR;\n            }\n             else if (((this.status >= 100) && (this.status < 200))) {\n                this.errorType = m.PROXY_ERROR;\n            }\n             else if (((this.status >= 200) && (this.status < 300))) {\n                return;\n            }\n             else if (((this.status >= 300) && (this.status < 400))) {\n                this.errorType = m.PROXY_ERROR;\n            }\n             else if (((this.status >= 400) && (this.status < 500))) {\n                this.errorType = m.SERVER_ERROR;\n            }\n             else if (((this.status >= 500) && (this.status < 600))) {\n                this.errorType = m.PROXY_ERROR;\n            }\n             else if ((this.status == 1223)) {\n                return;\n            }\n             else if (((this.status >= 12001) && (this.status <= 12156))) {\n                this.errorType = m.TRANSPORT_ERROR;\n            }\n             else {\n                q = (\"unrecognized status code: \" + this.status);\n                this.errorType = m.ERROR;\n            }\n            \n            \n            \n            \n            \n            \n            \n        ;\n            if (!this.errorText) {\n                this.errorText = q;\n            };\n        },\n        _parseResponse: function() {\n            var q, r = this.xhr.readyState;\n            try {\n                q = (this.xhr.responseText || \"\");\n            } catch (s) {\n                if ((r >= 4)) {\n                    this.errorType = m.ERROR;\n                    this.errorText = (\"responseText not available - \" + s.message);\n                }\n            ;\n                return;\n            };\n            while (this.xhr) {\n                var t = (this._eol + 1), u = (this.streamMode ? q.indexOf(\"\\u000a\", t) : q.length);\n                if (((u < 0) && (r == 4))) {\n                    u = q.length;\n                };\n                if ((u <= this._eol)) {\n                    break;\n                };\n                var v = q;\n                if (this.streamMode) {\n                    v = q.substr(t, (u - t)).replace(/^\\s*|\\s*$/g, \"\");\n                };\n                if (((t === 0) && this.prelude)) {\n                    if (this.prelude.test(v)) {\n                        v = v.replace(this.prelude, \"\");\n                    }\n                };\n                this._eol = u;\n                if (v) {\n                    try {\n                        this.json = JSON.parse(v);\n                    } catch (s) {\n                        var w = ((/(<body[\\S\\s]+?<\\/body>)/i).test(q) && RegExp.$1), x = {\n                            message: s.message,\n                            char: t,\n                            excerpt: (((((t === 0) && w)) || v)).substr(512)\n                        };\n                        this.errorType = m.PARSE_ERROR;\n                        this.errorText = (\"parse error - \" + JSON.stringify(x));\n                        return;\n                    };\n                    g.applyWithGuard(this._call, this, [\"onJSON\",]);\n                }\n            ;\n            };\n        },\n        _onReadyState: function() {\n            var q = ((this.xhr && this.xhr.readyState) || 0);\n            if (((this.status == null) && (q >= 2))) {\n                this._parseStatus();\n            };\n            if ((!this.errorType && (this.status != null))) {\n                if (((((q == 3) && this.streamMode)) || (q == 4))) {\n                    this._parseResponse();\n                }\n            };\n            if ((this.errorType || (q == 4))) {\n                this._time = (Date.now() - this._sentAt);\n                this._call((!this.errorType ? \"onSuccess\" : \"onError\"));\n                p(this);\n            }\n        ;\n        },\n        send: function(q) {\n            this.xhr.onreadystatechange = function() {\n                g.applyWithGuard(this._onReadyState, this, arguments);\n            }.bind(this);\n            var r = this.timeout;\n            if (r) {\n                this._timer = setTimeout((function() {\n                    this.errorType = m.TIMEOUT;\n                    this.errorText = \"timeout\";\n                    this._time = (Date.now() - this._sentAt);\n                    this._call(\"onError\");\n                    p(this);\n                }).bind(this), r, false);\n            };\n            m._inflight.push(this);\n            if ((this.method == \"POST\")) {\n                this.xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n            };\n            this._sentAt = Date.now();\n            this.xhr.send((q ? i.implodeQuery(q) : \"\"));\n        },\n        abort: function() {\n            p(this);\n        },\n        toString: function() {\n            var q = (\"[AjaxRequest readyState=\" + this.xhr.readyState);\n            if (this.errorType) {\n                q += ((((\" errorType=\" + this.errorType) + \" (\") + this.errorText) + \")\");\n            };\n            return (q + \"]\");\n        },\n        toJSON: function() {\n            var q = {\n                json: this.json,\n                status: this.status,\n                errorType: this.errorType,\n                errorText: this.errorText,\n                time: this._time\n            };\n            if (this.errorType) {\n                q.uri = this.uri;\n            };\n            for (var r in q) {\n                if ((q[r] == null)) {\n                    delete q[r];\n                };\n            };\n            return q;\n        }\n    });\n    if ((window.addEventListener && j.firefox())) {\n        window.addEventListener(\"keydown\", function(event) {\n            if ((event.keyCode === h.ESC)) {\n                event.prevent();\n            };\n        }, false);\n    };\n    if (window.attachEvent) {\n        window.attachEvent(\"onunload\", o);\n    };\n    e.exports = m;\n});\n__d(\"FBAjaxRequest\", [\"AjaxRequest\",\"copyProperties\",\"XHR\",], function(a, b, c, d, e, f) {\n    var g = b(\"AjaxRequest\"), h = b(\"copyProperties\"), i = b(\"XHR\");\n    function j(k, l, m) {\n        m = h(i.getAsyncParams(k), m);\n        var n = new g(k, l, m);\n        n.streamMode = false;\n        var o = n._call;\n        n._call = function(p) {\n            if (((p == \"onJSON\") && this.json)) {\n                if (this.json.error) {\n                    this.errorType = g.SERVER_ERROR;\n                    this.errorText = (\"AsyncResponse error: \" + this.json.error);\n                }\n            ;\n                this.json = this.json.payload;\n            }\n        ;\n            o.apply(this, arguments);\n        };\n        n.ajaxReqSend = n.send;\n        n.send = function(p) {\n            this.ajaxReqSend(h(p, m));\n        };\n        return n;\n    };\n    e.exports = j;\n});\n__d(\"CallbackManagerController\", [\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\"), h = b(\"copyProperties\"), i = function(j) {\n        this._pendingIDs = [];\n        this._allRequests = [undefined,];\n        this._callbackArgHandler = j;\n    };\n    h(i.prototype, {\n        executeOrEnqueue: function(j, k, l) {\n            l = (l || {\n            });\n            var m = this._attemptCallback(k, j, l);\n            if (m) {\n                return 0\n            };\n            this._allRequests.push({\n                fn: k,\n                request: j,\n                options: l\n            });\n            var n = (this._allRequests.length - 1);\n            this._pendingIDs.push(n);\n            return n;\n        },\n        unsubscribe: function(j) {\n            delete this._allRequests[j];\n        },\n        reset: function() {\n            this._allRequests = [];\n        },\n        getRequest: function(j) {\n            return this._allRequests[j];\n        },\n        runPossibleCallbacks: function() {\n            var j = this._pendingIDs;\n            this._pendingIDs = [];\n            var k = [];\n            j.forEach(function(l) {\n                var m = this._allRequests[l];\n                if (!m) {\n                    return\n                };\n                if (this._callbackArgHandler(m.request, m.options)) {\n                    k.push(l);\n                }\n                 else this._pendingIDs.push(l);\n            ;\n            }.bind(this));\n            k.forEach(function(l) {\n                var m = this._allRequests[l];\n                delete this._allRequests[l];\n                this._attemptCallback(m.fn, m.request, m.options);\n            }.bind(this));\n        },\n        _attemptCallback: function(j, k, l) {\n            var m = this._callbackArgHandler(k, l);\n            if (m) {\n                var n = {\n                    ids: k\n                };\n                g.applyWithGuard(j, n, m);\n            }\n        ;\n            return !!m;\n        }\n    });\n    e.exports = i;\n});\n__d(\"deferred\", [], function(a, b, c, d, e, f) {\n    var g = 0, h = 1, i = 2, j = 4, k = \"callbacks\", l = \"errbacks\", m = \"cancelbacks\", n = \"completeCallbacks\", o = [], p = o.slice, q = o.unshift;\n    function r(w, x) {\n        return (w ? p.call(w, x) : o);\n    };\n    function s(w, x) {\n        return ((x < w.length) ? r(w, x) : o);\n    };\n    function t() {\n        this.$Deferred0 = g;\n    };\n    t.prototype.addCallback = function(w, x) {\n        return this.$Deferred1(h, this.$Deferred2(k), w, x, s(arguments, 2));\n    };\n    t.prototype.removeCallback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(k), w, x);\n    };\n    t.prototype.addCompleteCallback = function(w, x) {\n        return this.$Deferred1(null, this.$Deferred2(n), w, x, s(arguments, 2));\n    };\n    t.prototype.removeCompleteCallback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(n), w, x);\n    };\n    t.prototype.addErrback = function(w, x) {\n        return this.$Deferred1(i, this.$Deferred2(l), w, x, s(arguments, 2));\n    };\n    t.prototype.removeErrback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(l), w, x);\n    };\n    t.prototype.addCancelback = function(w, x) {\n        return this.$Deferred1(j, this.$Deferred2(m), w, x, s(arguments, 2));\n    };\n    t.prototype.removeCancelback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(m), w, x);\n    };\n    t.prototype.getStatus = function() {\n        return this.$Deferred0;\n    };\n    t.prototype.setStatus = function(w) {\n        var x;\n        this.$Deferred0 = w;\n        this.callbackArgs = r(arguments, 1);\n        if ((w === i)) {\n            x = l;\n        }\n         else if ((w === h)) {\n            x = k;\n        }\n         else if ((w === j)) {\n            x = m;\n        }\n        \n    ;\n        if (x) {\n            this.$Deferred4(this[x], this.callbackArgs);\n        };\n        this.$Deferred4(this[n], this.callbackArgs);\n        return this;\n    };\n    t.prototype.setTimeout = function(w) {\n        if (this.timeout) {\n            this.clearTimeout();\n        };\n        this.$Deferred5 = (this.$Deferred5 || this.fail.bind(this));\n        this.timeout = window.setTimeout(this.$Deferred5, w);\n    };\n    t.prototype.clearTimeout = function() {\n        window.clearTimeout(this.timeout);\n        delete this.timeout;\n    };\n    t.prototype.succeed = function() {\n        return this.$Deferred6(h, arguments);\n    };\n    t.prototype.fail = function() {\n        return this.$Deferred6(i, arguments);\n    };\n    t.prototype.cancel = function() {\n        delete this[k];\n        delete this[l];\n        return this.$Deferred6(j, arguments);\n    };\n    t.prototype.$Deferred6 = function(w, x) {\n        q.call(x, w);\n        return this.setStatus.apply(this, x);\n    };\n    t.prototype.$Deferred2 = function(w) {\n        return (this[w] || (this[w] = []));\n    };\n    t.prototype.then = function(w, x, y, z) {\n        var aa = new t(), w, ba, ca, da = r(arguments, 0);\n        if ((typeof da[0] === \"function\")) {\n            w = da.shift();\n        };\n        if ((typeof da[0] === \"function\")) {\n            ba = da.shift();\n        };\n        if ((typeof da[0] === \"function\")) {\n            ca = da.shift();\n        };\n        var ea = da.shift();\n        if (w) {\n            var fa = [this.$Deferred7,this,aa,\"succeed\",w,ea,].concat(da);\n            this.addCallback.apply(this, fa);\n        }\n         else this.addCallback(aa.succeed, aa);\n    ;\n        if (ba) {\n            var ga = [this.$Deferred7,this,aa,\"fail\",ba,ea,].concat(da);\n            this.addErrback.apply(this, ga);\n        }\n         else this.addErrback(aa.fail, aa);\n    ;\n        if (ca) {\n            var ha = [this.$Deferred7,this,aa,\"cancel\",ca,ea,].concat(da);\n            this.addCancelback.apply(this, ha);\n        }\n         else this.addCancelback(aa.cancel, aa);\n    ;\n        return aa;\n    };\n    t.prototype.$Deferred1 = function(w, x, y, z, aa) {\n        var ba = this.getStatus();\n        if ((((!w && (ba !== g))) || (ba === w))) {\n            y.apply((z || this), aa.concat(this.callbackArgs));\n        }\n         else x.push(y, z, aa);\n    ;\n        return this;\n    };\n    t.prototype.$Deferred3 = function(w, x, y) {\n        for (var z = 0; (z < w.length); z += 3) {\n            if (((w[z] === x) && ((!y || (w[(z + 1)] === y))))) {\n                w.splice(z, 3);\n                if (y) {\n                    break;\n                };\n                z -= 3;\n            }\n        ;\n        };\n        return this;\n    };\n    t.prototype.pipe = function(w) {\n        this.addCallback(w.succeed, w).addErrback(w.fail, w).addCancelback(w.cancel, w);\n    };\n    t.prototype.$Deferred4 = function(w, x) {\n        for (var y = 0; (y < ((w || o)).length); y += 3) {\n            w[y].apply((w[(y + 1)] || this), ((w[(y + 2)] || o)).concat(x));;\n        };\n    };\n    t.prototype.$Deferred7 = function(w, x, y, z) {\n        var aa = r(arguments, 4), ba = y.apply(z, aa);\n        if ((ba instanceof t)) {\n            ba.pipe(w);\n        }\n         else w[x](ba);\n    ;\n    };\n    var u = ((t === null) ? null : t.prototype);\n    v.prototype = Object.create(u);\n    v.prototype.constructor = v;\n    v.__superConstructor__ = t;\n    function v(w) {\n        t.call(this);\n        this.completed = 0;\n        this.list = [];\n        if (w) {\n            w.forEach(this.waitFor, this);\n            this.startWaiting();\n        }\n    ;\n    };\n    v.prototype.startWaiting = function() {\n        this.waiting = true;\n        this.checkDeferreds();\n        return this;\n    };\n    v.prototype.waitFor = function(w) {\n        this.list.push(w);\n        this.checkDeferreds();\n        w.addCompleteCallback(this.deferredComplete, this);\n        return this;\n    };\n    v.prototype.createWaitForDeferred = function() {\n        var w = new t();\n        this.waitFor(w);\n        return w;\n    };\n    v.prototype.createWaitForCallback = function() {\n        var w = this.createWaitForDeferred();\n        return w.succeed.bind(w);\n    };\n    v.prototype.deferredComplete = function() {\n        this.completed++;\n        if ((this.completed === this.list.length)) {\n            this.checkDeferreds();\n        };\n    };\n    v.prototype.checkDeferreds = function() {\n        if ((!this.waiting || (this.completed !== this.list.length))) {\n            return\n        };\n        var w = false, x = false, y = [g,];\n        for (var z = 0, aa = this.list.length; (z < aa); z++) {\n            var ba = this.list[z];\n            y.push([ba,].concat(ba.callbackArgs));\n            if ((ba.getStatus() === i)) {\n                w = true;\n            }\n             else if ((ba.getStatus() === j)) {\n                x = true;\n            }\n        ;\n        };\n        if (w) {\n            y[0] = i;\n            this.fail.apply(this, y);\n        }\n         else if (x) {\n            y[0] = j;\n            this.cancel.apply(this, y);\n        }\n         else {\n            y[0] = h;\n            this.succeed.apply(this, y);\n        }\n        \n    ;\n    };\n    f.Deferred = t;\n    f.DeferredList = v;\n    f.Deferred.toArray = r;\n    f.Deferred.STATUS_UNKNOWN = g;\n    f.Deferred.STATUS_SUCCEEDED = h;\n    f.Deferred.STATUS_CANCELED = j;\n    f.Deferred.STATUS_FAILED = i;\n});\n__d(\"KeyedCallbackManager\", [\"CallbackManagerController\",\"deferred\",\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackManagerController\"), h = b(\"deferred\").Deferred, i = b(\"ErrorUtils\"), j = b(\"copyProperties\"), k = function() {\n        this._resources = {\n        };\n        this._controller = new g(this._constructCallbackArg.bind(this));\n    };\n    j(k.prototype, {\n        executeOrEnqueue: function(l, m) {\n            if (!((l instanceof Array))) {\n                var n = l, o = m;\n                l = [l,];\n                m = function(p) {\n                    o(p[n]);\n                };\n            }\n        ;\n            l = l.filter(function(p) {\n                var q = (((p !== null) && (p !== undefined)));\n                if (!q) {\n                    i.applyWithGuard(function() {\n                        throw new Error(((\"KeyedCallbackManager.executeOrEnqueue: key \" + JSON.stringify(p)) + \" is invalid\"));\n                    });\n                };\n                return q;\n            });\n            return this._controller.executeOrEnqueue(l, m);\n        },\n        deferredExecuteOrEnqueue: function(l) {\n            var m = new h();\n            this.executeOrEnqueue(l, m.succeed.bind(m));\n            return m;\n        },\n        unsubscribe: function(l) {\n            this._controller.unsubscribe(l);\n        },\n        reset: function() {\n            this._controller.reset();\n            this._resources = {\n            };\n        },\n        getUnavailableResources: function(l) {\n            var m = this._controller.getRequest(l), n = [];\n            if (m) {\n                n = m.request.filter(function(o) {\n                    return !this._resources[o];\n                }.bind(this));\n            };\n            return n;\n        },\n        getUnavailableResourcesFromRequest: function(l) {\n            var m = (Array.isArray(l) ? l : [l,]);\n            return m.filter(function(n) {\n                if (((n !== null) && (n !== undefined))) {\n                    return !this._resources[n]\n                };\n            }, this);\n        },\n        addResourcesAndExecute: function(l) {\n            j(this._resources, l);\n            this._controller.runPossibleCallbacks();\n        },\n        setResource: function(l, m) {\n            this._resources[l] = m;\n            this._controller.runPossibleCallbacks();\n        },\n        getResource: function(l) {\n            return this._resources[l];\n        },\n        getAllResources: function() {\n            return this._resources;\n        },\n        dumpResources: function() {\n            var l = {\n            };\n            for (var m in this._resources) {\n                var n = this._resources[m];\n                if ((typeof n === \"object\")) {\n                    n = j({\n                    }, n);\n                };\n                l[m] = n;\n            };\n            return l;\n        },\n        _constructCallbackArg: function(l) {\n            var m = {\n            };\n            for (var n = 0; (n < l.length); n++) {\n                var o = l[n], p = this._resources[o];\n                if ((typeof p == \"undefined\")) {\n                    return false\n                };\n                m[o] = p;\n            };\n            return [m,];\n        }\n    });\n    e.exports = k;\n});\n__d(\"BaseAsyncLoader\", [\"KeyedCallbackManager\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = b(\"copyProperties\"), i = {\n    };\n    function j(l, m, n) {\n        var o = new g(), p = false, q = [];\n        function r() {\n            if ((!q.length || p)) {\n                return\n            };\n            p = true;\n            t.defer();\n        };\n        function s(w) {\n            p = false;\n            w.forEach(o.unsubscribe.bind(o));\n            r();\n        };\n        function t() {\n            var w = {\n            }, x = [];\n            q = q.filter(function(z) {\n                var aa = o.getUnavailableResources(z);\n                if (aa.length) {\n                    aa.forEach(function(ba) {\n                        w[ba] = true;\n                    });\n                    x.push(z);\n                    return true;\n                }\n            ;\n                return false;\n            });\n            var y = Object.keys(w);\n            if (y.length) {\n                n(l, y, x, u.curry(x), v.curry(x));\n            }\n             else p = false;\n        ;\n        };\n        function u(w, x) {\n            var y = (x.payload[m] || x.payload);\n            o.addResourcesAndExecute(y);\n            s(w);\n        };\n        function v(w) {\n            s(w);\n        };\n        return {\n            get: function(w, x) {\n                var y = o.executeOrEnqueue(w, x), z = o.getUnavailableResources(y);\n                if (z.length) {\n                    q.push(y);\n                    r();\n                }\n            ;\n            },\n            getCachedKeys: function() {\n                return Object.keys(o.getAllResources());\n            },\n            getNow: function(w) {\n                return (o.getResource(w) || null);\n            },\n            set: function(w) {\n                o.addResourcesAndExecute(w);\n            }\n        };\n    };\n    function k(l, m) {\n        throw (\"BaseAsyncLoader can't be instantiated\");\n    };\n    h(k.prototype, {\n        _getLoader: function() {\n            if (!i[this._endpoint]) {\n                i[this._endpoint] = j(this._endpoint, this._type, this.send);\n            };\n            return i[this._endpoint];\n        },\n        get: function(l, m) {\n            return this._getLoader().get(l, m);\n        },\n        getCachedKeys: function() {\n            return this._getLoader().getCachedKeys();\n        },\n        getNow: function(l) {\n            return this._getLoader().getNow(l);\n        },\n        reset: function() {\n            i[this._endpoint] = null;\n        },\n        set: function(l) {\n            this._getLoader().set(l);\n        }\n    });\n    e.exports = k;\n});\n__d(\"AjaxLoader\", [\"copyProperties\",\"FBAjaxRequest\",\"BaseAsyncLoader\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"FBAjaxRequest\"), i = b(\"BaseAsyncLoader\");\n    function j(k, l) {\n        this._endpoint = k;\n        this._type = l;\n    };\n    g(j.prototype, i.prototype);\n    j.prototype.send = function(k, l, m, n, o) {\n        var p = new h(\"GET\", k, {\n            ids: l\n        });\n        p.onJSON = function(q) {\n            n({\n                payload: q.json\n            });\n        };\n        p.onError = o;\n        p.send();\n    };\n    e.exports = j;\n});\n__d(\"CLoggerX\", [\"Banzai\",\"DOM\",\"debounce\",\"Event\",\"ge\",\"Parent\",\"Keys\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"DOM\"), i = b(\"debounce\"), j = b(\"Event\"), k = b(\"ge\"), l = b(\"Parent\"), m = ((10 * 60) * 1000), n = b(\"Keys\").RETURN, o = {\n    }, p = function(s) {\n        var t = ((s.target || s.srcElement)).id, u = ((s.target || s.srcElement)).value.trim().length, v = q.getTracker(t);\n        if (!v) {\n            return\n        };\n        if (((u > 5) && !v.submitted)) {\n            g.post(\"censorlogger\", {\n                cl_impid: v.impid,\n                clearcounter: v.clearcounter,\n                instrument: v.type,\n                elementid: t,\n                parent_fbid: (((v.parent_fbid == \"unknown\") ? null : v.parent_fbid)),\n                version: \"x\"\n            }, g.VITAL);\n            q.setSubmitted(t, true);\n        }\n         else if ((((u === 0) && v.submitted) && (s.which != n))) {\n            o[t] = r(t);\n            o[t]();\n        }\n         else if (((u > 0) && v.submitted)) {\n            if (o[t]) {\n                o[t].reset();\n            }\n        }\n        \n    ;\n    }, q = {\n        init: function() {\n            this.trackedElements = (this.trackedElements || {\n            });\n            this.feedbackForms = (this.feedbackForms || {\n            });\n        },\n        setImpressionID: function(s) {\n            this.init();\n            this.impressionID = s;\n            this.clean();\n        },\n        setComposerTargetData: function(s) {\n            this.cTargetID = (s.targetID || \"unknown\");\n            this.cTargetFBType = (s.targetType || \"unknown\");\n        },\n        clean: function() {\n            for (var s in this.trackedElements) {\n                if (o[s]) {\n                    o[s].reset();\n                    delete o[s];\n                }\n            ;\n                delete this.trackedElements[s];\n            };\n        },\n        trackComposer: function(s, t, u) {\n            this.setComposerTargetData(u);\n            this.startTracking(s, \"composer\", this.cTargetID, this.cTargetFBType, t);\n        },\n        trackFeedbackForm: function(s, t, u) {\n            this.init();\n            this.impressionID = (this.impressionID || u);\n            var v, w, x;\n            v = h.getID(s);\n            w = (t ? (t.targetID || \"unknown\") : \"unknown\");\n            x = (t ? (t.targetType || \"unknown\") : \"unknown\");\n            this.feedbackForms[v] = {\n                parent_fbid: w,\n                parent_type: x\n            };\n        },\n        trackMentionsInput: function(s, t) {\n            this.init();\n            var u, v, w;\n            if (!s) {\n                return\n            };\n            u = l.byTag(s, \"form\");\n            if (!u) {\n                return\n            };\n            v = h.getID(u);\n            w = this.feedbackForms[v];\n            if (!w) {\n                return\n            };\n            var x = (t || w.parent_fbid), y = (t ? 416 : w.parent_type);\n            this.startTracking(s, \"comment\", x, y, u);\n        },\n        startTracking: function(s, t, u, v, w) {\n            this.init();\n            var x = h.getID(s);\n            if (this.getTracker(x)) {\n                return\n            };\n            var y = h.getID(w);\n            j.listen(s, \"keyup\", p.bind(this));\n            this.trackedElements[x] = {\n                submitted: false,\n                clearcounter: 0,\n                type: t,\n                impid: this.impressionID,\n                parent_fbid: u,\n                parent_type: v,\n                parentElID: y\n            };\n            this.addJoinTableInfoToForm(w, x);\n        },\n        getTracker: function(s) {\n            return ((this.trackedElements ? this.trackedElements[s] : null));\n        },\n        setSubmitted: function(s, t) {\n            if (this.trackedElements[s]) {\n                this.trackedElements[s].submitted = t;\n            };\n        },\n        incrementClearCounter: function(s) {\n            var t = this.getTracker(s);\n            if (!t) {\n                return\n            };\n            t.clearcounter++;\n            t.submitted = false;\n            var u = h.scry(k(t.parentElID), \"input[name=\\\"clp\\\"]\")[0];\n            if (u) {\n                u.value = this.getJSONRepForTrackerID(s);\n            };\n            this.trackedElements[s] = t;\n        },\n        addJoinTableInfoToForm: function(s, t) {\n            var u = this.getTracker(t);\n            if (!u) {\n                return\n            };\n            var v = h.scry(s, \"input[name=\\\"clp\\\"]\")[0];\n            if (!v) {\n                h.prependContent(s, h.create(\"input\", {\n                    type: \"hidden\",\n                    name: \"clp\",\n                    value: this.getJSONRepForTrackerID(t)\n                }));\n            };\n        },\n        getCLParamsForTarget: function(s, t) {\n            if (!s) {\n                return \"\"\n            };\n            var u = h.getID(s);\n            return this.getJSONRepForTrackerID(u, t);\n        },\n        getJSONRepForTrackerID: function(s, t) {\n            var u = this.getTracker(s);\n            if (!u) {\n                return \"\"\n            };\n            return JSON.stringify({\n                cl_impid: u.impid,\n                clearcounter: u.clearcounter,\n                elementid: s,\n                version: \"x\",\n                parent_fbid: (t || u.parent_fbid)\n            });\n        }\n    }, r = function(s) {\n        return i(function() {\n            q.incrementClearCounter(s);\n        }, m, q);\n    };\n    e.exports = q;\n});\n__d(\"ChannelConstants\", [], function(a, b, c, d, e, f) {\n    var g = \"channel/\", h = {\n        ON_SHUTDOWN: (g + \"shutdown\"),\n        ON_INVALID_HISTORY: (g + \"invalid_history\"),\n        ON_CONFIG: (g + \"config\"),\n        ON_ENTER_STATE: (g + \"enter_state\"),\n        ON_EXIT_STATE: (g + \"exit_state\"),\n        OK: \"ok\",\n        ERROR: \"error\",\n        ERROR_MAX: \"error_max\",\n        ERROR_MISSING: \"error_missing\",\n        ERROR_MSG_TYPE: \"error_msg_type\",\n        ERROR_SHUTDOWN: \"error_shutdown\",\n        ERROR_STALE: \"error_stale\",\n        SYS_OWNER: \"sys_owner\",\n        SYS_NONOWNER: \"sys_nonowner\",\n        SYS_ONLINE: \"sys_online\",\n        SYS_OFFLINE: \"sys_offline\",\n        SYS_TIMETRAVEL: \"sys_timetravel\",\n        HINT_AUTH: \"shutdown auth\",\n        HINT_CONN: \"shutdown conn\",\n        HINT_DISABLED: \"shutdown disabled\",\n        HINT_INVALID_STATE: \"shutdown invalid state\",\n        HINT_MAINT: \"shutdown maint\",\n        HINT_UNSUPPORTED: \"shutdown unsupported\",\n        reason_Unknown: 0,\n        reason_AsyncError: 1,\n        reason_TooLong: 2,\n        reason_Refresh: 3,\n        reason_RefreshDelay: 4,\n        reason_UIRestart: 5,\n        reason_NeedSeq: 6,\n        reason_PrevFailed: 7,\n        reason_IFrameLoadGiveUp: 8,\n        reason_IFrameLoadRetry: 9,\n        reason_IFrameLoadRetryWorked: 10,\n        reason_PageTransitionRetry: 11,\n        reason_IFrameLoadMaxSubdomain: 12,\n        reason_NoChannelInfo: 13,\n        reason_NoChannelHost: 14,\n        CAPABILITY_VOIP: 8,\n        getArbiterType: function(i) {\n            return ((g + \"message:\") + i);\n        }\n    };\n    e.exports = h;\n});\n__d(\"ShortProfiles\", [\"ArbiterMixin\",\"AjaxLoader\",\"Env\",\"FBAjaxRequest\",\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AjaxLoader\"), i = b(\"Env\"), j = b(\"FBAjaxRequest\"), k = b(\"JSLogger\"), l = b(\"copyProperties\"), m = \"/ajax/chat/user_info.php\", n = \"/ajax/chat/user_info_all.php\", o = new h(m, \"profiles\"), p = false, q = k.create(\"short_profiles\");\n    function r() {\n        if (!p) {\n            q.log(\"fetch_all\");\n            p = true;\n            var u = new j(\"GET\", n, {\n                viewer: i.user\n            });\n            u.onJSON = function(v) {\n                o.set(v.json);\n                t.inform(\"updated\");\n            };\n            u.send();\n        }\n    ;\n    };\n    function s(u) {\n        return JSON.parse(JSON.stringify(u));\n    };\n    var t = {\n    };\n    l(t, g, {\n        get: function(u, v) {\n            this.getMulti([u,], function(w) {\n                v(w[u], u);\n            });\n        },\n        getMulti: function(u, v) {\n            function w(x) {\n                v(s(x));\n            };\n            o.get(u, w);\n        },\n        getNow: function(u) {\n            return s((o.getNow(u) || null));\n        },\n        getNowUnsafe: function(u) {\n            return (o.getNow(u) || null);\n        },\n        getCachedProfileIDs: function() {\n            return o.getCachedKeys();\n        },\n        hasAll: function() {\n            return p;\n        },\n        fetchAll: function() {\n            r();\n        },\n        set: function(u, v) {\n            var w = {\n            };\n            w[u] = v;\n            this.setMulti(w);\n        },\n        setMulti: function(u) {\n            o.set(s(u));\n        }\n    });\n    e.exports = t;\n});\n__d(\"ClickTTIIdentifiers\", [], function(a, b, c, d, e, f) {\n    var g = {\n        types: {\n            TIMELINE_SEE_LIKERS: \"timeline:seelikes\"\n        },\n        getUserActionID: function(h) {\n            return ((\"{\\\"ua_id\\\":\\\"\" + h) + \"\\\"}\");\n        }\n    };\n    e.exports = g;\n});\n__d(\"ReactCurrentOwner\", [], function(a, b, c, d, e, f) {\n    var g = {\n        current: null\n    };\n    e.exports = g;\n});\n__d(\"CSSProperty\", [], function(a, b, c, d, e, f) {\n    var g = {\n        fillOpacity: true,\n        fontWeight: true,\n        opacity: true,\n        orphans: true,\n        zIndex: true,\n        zoom: true\n    }, h = {\n        background: {\n            backgroundImage: true,\n            backgroundPosition: true,\n            backgroundRepeat: true,\n            backgroundColor: true\n        },\n        border: {\n            borderWidth: true,\n            borderStyle: true,\n            borderColor: true\n        },\n        borderBottom: {\n            borderBottomWidth: true,\n            borderBottomStyle: true,\n            borderBottomColor: true\n        },\n        borderLeft: {\n            borderLeftWidth: true,\n            borderLeftStyle: true,\n            borderLeftColor: true\n        },\n        borderRight: {\n            borderRightWidth: true,\n            borderRightStyle: true,\n            borderRightColor: true\n        },\n        borderTop: {\n            borderTopWidth: true,\n            borderTopStyle: true,\n            borderTopColor: true\n        },\n        font: {\n            fontStyle: true,\n            fontVariant: true,\n            fontWeight: true,\n            fontSize: true,\n            lineHeight: true,\n            fontFamily: true\n        }\n    }, i = {\n        isUnitlessNumber: g,\n        shorthandPropertyExpansions: h\n    };\n    e.exports = i;\n});\n__d(\"dangerousStyleValue\", [\"CSSProperty\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSProperty\");\n    function h(i, j) {\n        var k = (((j == null) || (typeof j === \"boolean\")) || (j === \"\"));\n        if (k) {\n            return \"\"\n        };\n        var l = isNaN(j);\n        if (((l || (j === 0)) || g.isUnitlessNumber[i])) {\n            return (\"\" + j)\n        };\n        return (j + \"px\");\n    };\n    e.exports = h;\n});\n__d(\"throwIf\", [], function(a, b, c, d, e, f) {\n    var g = function(h, i) {\n        if (h) {\n            throw new Error(i)\n        };\n    };\n    e.exports = g;\n});\n__d(\"escapeTextForBrowser\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h, i = {\n        \"&\": \"&amp;\",\n        \"\\u003E\": \"&gt;\",\n        \"\\u003C\": \"&lt;\",\n        \"\\\"\": \"&quot;\",\n        \"'\": \"&#x27;\",\n        \"/\": \"&#x2f;\"\n    };\n    function j(l) {\n        return i[l];\n    };\n    var k = function(l) {\n        var m = typeof l, n = (m === \"object\");\n        if (((l === \"\") || n)) {\n            return \"\";\n        }\n         else if ((m === \"string\")) {\n            return l.replace(/[&><\"'\\/]/g, j);\n        }\n         else return ((\"\" + l)).replace(/[&><\"'\\/]/g, j)\n        \n    ;\n    };\n    e.exports = k;\n});\n__d(\"memoizeStringOnly\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        var i = {\n        };\n        return function(j) {\n            if (i.hasOwnProperty(j)) {\n                return i[j];\n            }\n             else return i[j] = h.call(this, j)\n        ;\n        };\n    };\n    e.exports = g;\n});\n__d(\"CSSPropertyOperations\", [\"CSSProperty\",\"dangerousStyleValue\",\"escapeTextForBrowser\",\"hyphenate\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSProperty\"), h = b(\"dangerousStyleValue\"), i = b(\"escapeTextForBrowser\"), j = b(\"hyphenate\"), k = b(\"memoizeStringOnly\"), l = k(function(n) {\n        return i(j(n));\n    }), m = {\n        createMarkupForStyles: function(n) {\n            var o = \"\";\n            for (var p in n) {\n                if (!n.hasOwnProperty(p)) {\n                    continue;\n                };\n                var q = n[p];\n                if ((q != null)) {\n                    o += (l(p) + \":\");\n                    o += (h(p, q) + \";\");\n                }\n            ;\n            };\n            return (o || null);\n        },\n        setValueForStyles: function(n, o) {\n            var p = n.style;\n            for (var q in o) {\n                if (!o.hasOwnProperty(q)) {\n                    continue;\n                };\n                var r = h(q, o[q]);\n                if (r) {\n                    p[q] = r;\n                }\n                 else {\n                    var s = g.shorthandPropertyExpansions[q];\n                    if (s) {\n                        for (var t in s) {\n                            p[t] = \"\";;\n                        };\n                    }\n                     else p[q] = \"\";\n                ;\n                }\n            ;\n            };\n        }\n    };\n    e.exports = m;\n});\n__d(\"ExecutionEnvironment\", [], function(a, b, c, d, e, f) {\n    var g = (typeof window !== \"undefined\"), h = {\n        canUseDOM: g,\n        canUseWorkers: (typeof Worker !== \"undefined\"),\n        isInWorker: !g,\n        global: new Function(\"return this;\")()\n    };\n    e.exports = h;\n});\n__d(\"Danger\", [\"ExecutionEnvironment\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = b(\"throwIf\"), i, j, k, l, m = {\n    };\n    function n(t) {\n        var u = t.tagName;\n        return (m[u] || (m[u] = document.createElement(u)));\n    };\n    function o(t, u, v) {\n        if (v) {\n            if (v.nextSibling) {\n                return t.insertBefore(u, v.nextSibling);\n            }\n             else return t.appendChild(u)\n        ;\n        }\n         else return t.insertBefore(u, t.firstChild)\n    ;\n    };\n    function p(t, u, v) {\n        var w, x = u.length;\n        for (var y = 0; (y < x); y++) {\n            w = o(t, u[0], (w || v));;\n        };\n    };\n    function q(t, u, v) {\n        var w = n(t);\n        w.innerHTML = u;\n        var x = w.childNodes, y = (v ? t.childNodes[(v - 1)] : null);\n        p(t, x, y);\n    };\n    function r(t, u) {\n        var v = t.parentNode, w = n(v);\n        w.innerHTML = u;\n        var x = w.childNodes;\n        v.replaceChild(x[0], t);\n    };\n    var s = {\n        dangerouslyInsertMarkupAt: q,\n        dangerouslyReplaceNodeWithMarkup: r\n    };\n    e.exports = s;\n});\n__d(\"insertNodeAt\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        var k = h.childNodes, l = h.childNodes[j];\n        if ((l === i)) {\n            return i\n        };\n        if (i.parentNode) {\n            i.parentNode.removeChild(i);\n        };\n        if ((j >= k.length)) {\n            h.appendChild(i);\n        }\n         else h.insertBefore(i, k[j]);\n    ;\n        return i;\n    };\n    e.exports = g;\n});\n__d(\"keyOf\", [], function(a, b, c, d, e, f) {\n    var g = function(h) {\n        var i;\n        for (i in h) {\n            if (!h.hasOwnProperty(i)) {\n                continue;\n            };\n            return i;\n        };\n        return null;\n    };\n    e.exports = g;\n});\n__d(\"DOMChildrenOperations\", [\"Danger\",\"insertNodeAt\",\"keyOf\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"Danger\"), h = b(\"insertNodeAt\"), i = b(\"keyOf\"), j = b(\"throwIf\"), k, l = i({\n        moveFrom: null\n    }), m = i({\n        insertMarkup: null\n    }), n = i({\n        removeAt: null\n    }), o = function(u, v) {\n        var w, x, y;\n        for (var z = 0; (z < v.length); z++) {\n            x = v[z];\n            if ((l in x)) {\n                w = (w || []);\n                y = x.moveFrom;\n                w[y] = u.childNodes[y];\n            }\n             else if ((n in x)) {\n                w = (w || []);\n                y = x.removeAt;\n                w[y] = u.childNodes[y];\n            }\n            \n        ;\n        };\n        return w;\n    }, p = function(u, v) {\n        for (var w = 0; (w < v.length); w++) {\n            var x = v[w];\n            if (x) {\n                u.removeChild(v[w]);\n            };\n        };\n    }, q = function(u, v, w) {\n        var x, y, z = -1, aa;\n        for (var ba = 0; (ba < v.length); ba++) {\n            aa = v[ba];\n            if ((l in aa)) {\n                x = w[aa.moveFrom];\n                y = aa.finalIndex;\n                h(u, x, y);\n            }\n             else if (!((n in aa))) {\n                if ((m in aa)) {\n                    y = aa.finalIndex;\n                    var ca = aa.insertMarkup;\n                    g.dangerouslyInsertMarkupAt(u, ca, y);\n                }\n            \n            }\n        ;\n        };\n    }, r = function(u, v) {\n        var w = o(u, v);\n        if (w) {\n            p(u, w);\n        };\n        q(u, v, w);\n    }, s = function(u, v, w) {\n        u.childNodes[v].nodeValue = w;\n    }, t = {\n        dangerouslyReplaceNodeWithMarkup: g.dangerouslyReplaceNodeWithMarkup,\n        manageChildren: r,\n        setTextNodeValueAtIndex: s\n    };\n    e.exports = t;\n});\n__d(\"DOMProperty\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = {\n        MUST_USE_ATTRIBUTE: 1,\n        MUST_USE_PROPERTY: 2,\n        HAS_BOOLEAN_VALUE: 4,\n        HAS_SIDE_EFFECTS: 8,\n        injectDOMPropertyConfig: function(k) {\n            var l = (k.Properties || {\n            }), m = (k.DOMAttributeNames || {\n            }), n = (k.DOMPropertyNames || {\n            }), o = (k.DOMMutationMethods || {\n            });\n            if (k.isCustomAttribute) {\n                j._isCustomAttributeFunctions.push(k.isCustomAttribute);\n            };\n            for (var p in l) {\n                g(!j.isStandardName[p]);\n                j.isStandardName[p] = true;\n                j.getAttributeName[p] = (m[p] || p.toLowerCase());\n                j.getPropertyName[p] = (n[p] || p);\n                var q = o[p];\n                if (q) {\n                    j.getMutationMethod[p] = q;\n                };\n                var r = l[p];\n                j.mustUseAttribute[p] = (r & h.MUST_USE_ATTRIBUTE);\n                j.mustUseProperty[p] = (r & h.MUST_USE_PROPERTY);\n                j.hasBooleanValue[p] = (r & h.HAS_BOOLEAN_VALUE);\n                j.hasSideEffects[p] = (r & h.HAS_SIDE_EFFECTS);\n                g((!j.mustUseAttribute[p] || !j.mustUseProperty[p]));\n                g((j.mustUseProperty[p] || !j.hasSideEffects[p]));\n            };\n        }\n    }, i = {\n    }, j = {\n        isStandardName: {\n        },\n        getAttributeName: {\n        },\n        getPropertyName: {\n        },\n        getMutationMethod: {\n        },\n        mustUseAttribute: {\n        },\n        mustUseProperty: {\n        },\n        hasBooleanValue: {\n        },\n        hasSideEffects: {\n        },\n        _isCustomAttributeFunctions: [],\n        isCustomAttribute: function(k) {\n            return j._isCustomAttributeFunctions.some(function(l) {\n                return l.call(null, k);\n            });\n        },\n        getDefaultValueForProperty: function(k, l) {\n            var m = i[k], n;\n            if (!m) {\n                i[k] = m = {\n                };\n            };\n            if (!((l in m))) {\n                n = document.createElement(k);\n                m[l] = n[l];\n            }\n        ;\n            return m[l];\n        },\n        injection: h\n    };\n    e.exports = j;\n});\n__d(\"DOMPropertyOperations\", [\"DOMProperty\",\"escapeTextForBrowser\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMProperty\"), h = b(\"escapeTextForBrowser\"), i = b(\"memoizeStringOnly\"), j = i(function(l) {\n        return (h(l) + \"=\\\"\");\n    }), k = {\n        createMarkupForProperty: function(l, m) {\n            if (g.isStandardName[l]) {\n                if (((m == null) || (g.hasBooleanValue[l] && !m))) {\n                    return \"\"\n                };\n                var n = g.getAttributeName[l];\n                return ((j(n) + h(m)) + \"\\\"\");\n            }\n             else if (g.isCustomAttribute(l)) {\n                if ((m == null)) {\n                    return \"\"\n                };\n                return ((j(l) + h(m)) + \"\\\"\");\n            }\n             else return null\n            \n        ;\n        },\n        setValueForProperty: function(l, m, n) {\n            if (g.isStandardName[m]) {\n                var o = g.getMutationMethod[m];\n                if (o) {\n                    o(l, n);\n                }\n                 else if (g.mustUseAttribute[m]) {\n                    if ((g.hasBooleanValue[m] && !n)) {\n                        l.removeAttribute(g.getAttributeName[m]);\n                    }\n                     else l.setAttribute(g.getAttributeName[m], n);\n                ;\n                }\n                 else {\n                    var p = g.getPropertyName[m];\n                    if ((!g.hasSideEffects[m] || (l[p] !== n))) {\n                        l[p] = n;\n                    };\n                }\n                \n            ;\n            }\n             else if (g.isCustomAttribute(m)) {\n                l.setAttribute(m, n);\n            }\n        ;\n        },\n        deleteValueForProperty: function(l, m) {\n            if (g.isStandardName[m]) {\n                var n = g.getMutationMethod[m];\n                if (n) {\n                    n(l, undefined);\n                }\n                 else if (g.mustUseAttribute[m]) {\n                    l.removeAttribute(g.getAttributeName[m]);\n                }\n                 else {\n                    var o = g.getPropertyName[m];\n                    l[o] = g.getDefaultValueForProperty(l.nodeName, m);\n                }\n                \n            ;\n            }\n             else if (g.isCustomAttribute(m)) {\n                l.removeAttribute(m);\n            }\n        ;\n        }\n    };\n    e.exports = k;\n});\n__d(\"keyMirror\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h = \"NOT_OBJECT_ERROR\", i = function(j) {\n        var k = {\n        }, l;\n        g((!((j instanceof Object)) || Array.isArray(j)), h);\n        for (l in j) {\n            if (!j.hasOwnProperty(l)) {\n                continue;\n            };\n            k[l] = l;\n        };\n        return k;\n    };\n    e.exports = i;\n});\n__d(\"EventConstants\", [\"keyMirror\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyMirror\"), h = g({\n        bubbled: null,\n        captured: null\n    }), i = g({\n        topBlur: null,\n        topChange: null,\n        topClick: null,\n        topDOMCharacterDataModified: null,\n        topDoubleClick: null,\n        topDrag: null,\n        topDragEnd: null,\n        topDragEnter: null,\n        topDragExit: null,\n        topDragLeave: null,\n        topDragOver: null,\n        topDragStart: null,\n        topDrop: null,\n        topFocus: null,\n        topInput: null,\n        topKeyDown: null,\n        topKeyPress: null,\n        topKeyUp: null,\n        topMouseDown: null,\n        topMouseMove: null,\n        topMouseOut: null,\n        topMouseOver: null,\n        topMouseUp: null,\n        topScroll: null,\n        topSelectionChange: null,\n        topSubmit: null,\n        topTouchCancel: null,\n        topTouchEnd: null,\n        topTouchMove: null,\n        topTouchStart: null,\n        topWheel: null\n    }), j = {\n        topLevelTypes: i,\n        PropagationPhases: h\n    };\n    e.exports = j;\n});\n__d(\"EventListener\", [\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = {\n        listen: g.listen,\n        capture: function(i, j, k) {\n            if (!i.addEventListener) {\n                return;\n            }\n             else i.addEventListener(j, k, true);\n        ;\n        }\n    };\n    e.exports = h;\n});\n__d(\"CallbackRegistry\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        putListener: function(i, j, k) {\n            var l = (g[j] || (g[j] = {\n            }));\n            l[i] = k;\n        },\n        getListener: function(i, j) {\n            var k = g[j];\n            return (k && k[i]);\n        },\n        deleteListener: function(i, j) {\n            var k = g[j];\n            if (k) {\n                delete k[i];\n            };\n        },\n        deleteAllListeners: function(i) {\n            for (var j in g) {\n                delete g[j][i];;\n            };\n        },\n        __purge: function() {\n            g = {\n            };\n        }\n    };\n    e.exports = h;\n});\n__d(\"EventPluginRegistry\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = null, i = {\n    };\n    function j() {\n        if (!h) {\n            return\n        };\n        for (var n in i) {\n            var o = i[n], p = h.indexOf(n);\n            g((p > -1));\n            if (m.plugins[p]) {\n                continue;\n            };\n            g(o.extractEvents);\n            m.plugins[p] = o;\n            var q = o.eventTypes;\n            for (var r in q) {\n                g(k(q[r], o));;\n            };\n        };\n    };\n    function k(n, o) {\n        var p = n.phasedRegistrationNames;\n        if (p) {\n            for (var q in p) {\n                if (p.hasOwnProperty(q)) {\n                    var r = p[q];\n                    l(r, o);\n                }\n            ;\n            };\n            return true;\n        }\n         else if (n.registrationName) {\n            l(n.registrationName, o);\n            return true;\n        }\n        \n    ;\n        return false;\n    };\n    function l(n, o) {\n        g(!m.registrationNames[n]);\n        m.registrationNames[n] = o;\n        m.registrationNamesKeys.push(n);\n    };\n    var m = {\n        plugins: [],\n        registrationNames: {\n        },\n        registrationNamesKeys: [],\n        injectEventPluginOrder: function(n) {\n            g(!h);\n            h = Array.prototype.slice.call(n);\n            j();\n        },\n        injectEventPluginsByName: function(n) {\n            var o = false;\n            for (var p in n) {\n                if (!n.hasOwnProperty(p)) {\n                    continue;\n                };\n                var q = n[p];\n                if ((i[p] !== q)) {\n                    g(!i[p]);\n                    i[p] = q;\n                    o = true;\n                }\n            ;\n            };\n            if (o) {\n                j();\n            };\n        },\n        getPluginModuleForEvent: function(event) {\n            var n = event.dispatchConfig;\n            if (n.registrationName) {\n                return (m.registrationNames[n.registrationName] || null)\n            };\n            for (var o in n.phasedRegistrationNames) {\n                if (!n.phasedRegistrationNames.hasOwnProperty(o)) {\n                    continue;\n                };\n                var p = m.registrationNames[n.phasedRegistrationNames[o]];\n                if (p) {\n                    return p\n                };\n            };\n            return null;\n        },\n        _resetEventPlugins: function() {\n            h = null;\n            for (var n in i) {\n                if (i.hasOwnProperty(n)) {\n                    delete i[n];\n                };\n            };\n            m.plugins.length = 0;\n            var o = m.registrationNames;\n            for (var p in o) {\n                if (o.hasOwnProperty(p)) {\n                    delete o[p];\n                };\n            };\n            m.registrationNamesKeys.length = 0;\n        }\n    };\n    e.exports = m;\n});\n__d(\"EventPluginUtils\", [\"EventConstants\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"invariant\"), i = g.topLevelTypes;\n    function j(u) {\n        return (((u === i.topMouseUp) || (u === i.topTouchEnd)) || (u === i.topTouchCancel));\n    };\n    function k(u) {\n        return ((u === i.topMouseMove) || (u === i.topTouchMove));\n    };\n    function l(u) {\n        return ((u === i.topMouseDown) || (u === i.topTouchStart));\n    };\n    var m;\n    function n(event, u) {\n        var v = event._dispatchListeners, w = event._dispatchIDs;\n        if (Array.isArray(v)) {\n            for (var x = 0; (x < v.length); x++) {\n                if (event.isPropagationStopped()) {\n                    break;\n                };\n                u(event, v[x], w[x]);\n            };\n        }\n         else if (v) {\n            u(event, v, w);\n        }\n    ;\n    };\n    function o(event, u, v) {\n        u(event, v);\n    };\n    function p(event, u) {\n        n(event, u);\n        event._dispatchListeners = null;\n        event._dispatchIDs = null;\n    };\n    function q(event) {\n        var u = event._dispatchListeners, v = event._dispatchIDs;\n        if (Array.isArray(u)) {\n            for (var w = 0; (w < u.length); w++) {\n                if (event.isPropagationStopped()) {\n                    break;\n                };\n                if (u[w](event, v[w])) {\n                    return v[w]\n                };\n            };\n        }\n         else if (u) {\n            if (u(event, v)) {\n                return v\n            }\n        }\n    ;\n        return null;\n    };\n    function r(event) {\n        var u = event._dispatchListeners, v = event._dispatchIDs;\n        h(!Array.isArray(u));\n        var w = (u ? u(event, v) : null);\n        event._dispatchListeners = null;\n        event._dispatchIDs = null;\n        return w;\n    };\n    function s(event) {\n        return !!event._dispatchListeners;\n    };\n    var t = {\n        isEndish: j,\n        isMoveish: k,\n        isStartish: l,\n        executeDispatchesInOrder: p,\n        executeDispatchesInOrderStopAtTrue: q,\n        executeDirectDispatch: r,\n        hasDispatches: s,\n        executeDispatch: o\n    };\n    e.exports = t;\n});\n__d(\"accumulate\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h = \"INVALID_ACCUM_ARGS\";\n    function i(j, k) {\n        var l = (j == null), m = (k === null);\n        if (m) {\n            return j;\n        }\n         else if (l) {\n            return k;\n        }\n         else {\n            var n = Array.isArray(j), o = Array.isArray(k);\n            if (n) {\n                return j.concat(k);\n            }\n             else if (o) {\n                return [j,].concat(k);\n            }\n             else return [j,k,]\n            \n        ;\n        }\n        \n    ;\n    };\n    e.exports = i;\n});\n__d(\"forEachAccumulated\", [], function(a, b, c, d, e, f) {\n    var g = function(h, i, j) {\n        if (Array.isArray(h)) {\n            h.forEach(i, j);\n        }\n         else if (h) {\n            i.call(j, h);\n        }\n    ;\n    };\n    e.exports = g;\n});\n__d(\"EventPropagators\", [\"CallbackRegistry\",\"EventConstants\",\"accumulate\",\"forEachAccumulated\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackRegistry\"), h = b(\"EventConstants\"), i = b(\"accumulate\"), j = b(\"forEachAccumulated\"), k = g.getListener, l = h.PropagationPhases, m = {\n        InstanceHandle: null,\n        injectInstanceHandle: function(w) {\n            m.InstanceHandle = w;\n        },\n        validate: function() {\n            var w = ((!m.InstanceHandle || !m.InstanceHandle.traverseTwoPhase) || !m.InstanceHandle.traverseEnterLeave);\n            if (w) {\n                throw new Error(\"InstanceHandle not injected before use!\")\n            };\n        }\n    };\n    function n(w, event, x) {\n        var y = event.dispatchConfig.phasedRegistrationNames[x];\n        return k(w, y);\n    };\n    function o(w, x, event) {\n        var y = (x ? l.bubbled : l.captured), z = n(w, event, y);\n        if (z) {\n            event._dispatchListeners = i(event._dispatchListeners, z);\n            event._dispatchIDs = i(event._dispatchIDs, w);\n        }\n    ;\n    };\n    function p(event) {\n        if ((event && event.dispatchConfig.phasedRegistrationNames)) {\n            m.InstanceHandle.traverseTwoPhase(event.dispatchMarker, o, event);\n        };\n    };\n    function q(w, x, event) {\n        if ((event && event.dispatchConfig.registrationName)) {\n            var y = event.dispatchConfig.registrationName, z = k(w, y);\n            if (z) {\n                event._dispatchListeners = i(event._dispatchListeners, z);\n                event._dispatchIDs = i(event._dispatchIDs, w);\n            }\n        ;\n        }\n    ;\n    };\n    function r(event) {\n        if ((event && event.dispatchConfig.registrationName)) {\n            q(event.dispatchMarker, null, event);\n        };\n    };\n    function s(w) {\n        j(w, p);\n    };\n    function t(w, x, y, z) {\n        m.InstanceHandle.traverseEnterLeave(y, z, q, w, x);\n    };\n    function u(w) {\n        j(w, r);\n    };\n    var v = {\n        accumulateTwoPhaseDispatches: s,\n        accumulateDirectDispatches: u,\n        accumulateEnterLeaveDispatches: t,\n        injection: m\n    };\n    e.exports = v;\n});\n__d(\"EventPluginHub\", [\"CallbackRegistry\",\"EventPluginRegistry\",\"EventPluginUtils\",\"EventPropagators\",\"ExecutionEnvironment\",\"accumulate\",\"forEachAccumulated\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackRegistry\"), h = b(\"EventPluginRegistry\"), i = b(\"EventPluginUtils\"), j = b(\"EventPropagators\"), k = b(\"ExecutionEnvironment\"), l = b(\"accumulate\"), m = b(\"forEachAccumulated\"), n = b(\"invariant\"), o = null, p = function(event) {\n        if (event) {\n            var r = i.executeDispatch, s = h.getPluginModuleForEvent(event);\n            if ((s && s.executeDispatch)) {\n                r = s.executeDispatch;\n            };\n            i.executeDispatchesInOrder(event, r);\n            if (!event.isPersistent()) {\n                event.constructor.release(event);\n            };\n        }\n    ;\n    }, q = {\n        injection: {\n            injectInstanceHandle: j.injection.injectInstanceHandle,\n            injectEventPluginOrder: h.injectEventPluginOrder,\n            injectEventPluginsByName: h.injectEventPluginsByName\n        },\n        registrationNames: h.registrationNames,\n        putListener: g.putListener,\n        getListener: g.getListener,\n        deleteListener: g.deleteListener,\n        deleteAllListeners: g.deleteAllListeners,\n        extractEvents: function(r, s, t, u) {\n            var v, w = h.plugins;\n            for (var x = 0, y = w.length; (x < y); x++) {\n                var z = w[x];\n                if (z) {\n                    var aa = z.extractEvents(r, s, t, u);\n                    if (aa) {\n                        v = l(v, aa);\n                    };\n                }\n            ;\n            };\n            return v;\n        },\n        enqueueEvents: function(r) {\n            if (r) {\n                o = l(o, r);\n            };\n        },\n        processEventQueue: function() {\n            var r = o;\n            o = null;\n            m(r, p);\n            n(!o);\n        }\n    };\n    if (k.canUseDOM) {\n        window.EventPluginHub = q;\n    };\n    e.exports = q;\n});\n__d(\"ReactUpdates\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = false, i = [];\n    function j(m) {\n        if (h) {\n            m();\n            return;\n        }\n    ;\n        h = true;\n        try {\n            m();\n            for (var o = 0; (o < i.length); o++) {\n                var p = i[o];\n                if (p.isMounted()) {\n                    var q = p._pendingCallbacks;\n                    p._pendingCallbacks = null;\n                    p.performUpdateIfNecessary();\n                    if (q) {\n                        for (var r = 0; (r < q.length); r++) {\n                            q[r]();;\n                        }\n                    };\n                }\n            ;\n            };\n        } catch (n) {\n            throw n;\n        } finally {\n            i.length = 0;\n            h = false;\n        };\n    };\n    function k(m, n) {\n        g((!n || (typeof n === \"function\")));\n        if (!h) {\n            m.performUpdateIfNecessary();\n            (n && n());\n            return;\n        }\n    ;\n        i.push(m);\n        if (n) {\n            if (m._pendingCallbacks) {\n                m._pendingCallbacks.push(n);\n            }\n             else m._pendingCallbacks = [n,];\n        \n        };\n    };\n    var l = {\n        batchedUpdates: j,\n        enqueueUpdate: k\n    };\n    e.exports = l;\n});\n__d(\"ViewportMetrics\", [], function(a, b, c, d, e, f) {\n    var g = {\n        currentScrollLeft: 0,\n        currentScrollTop: 0,\n        refreshScrollValues: function() {\n            g.currentScrollLeft = (document.body.scrollLeft + document.documentElement.scrollLeft);\n            g.currentScrollTop = (document.body.scrollTop + document.documentElement.scrollTop);\n        }\n    };\n    e.exports = g;\n});\n__d(\"isEventSupported\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h, i;\n    if (g.canUseDOM) {\n        h = document.createElement(\"div\");\n        i = ((document.implementation && document.implementation.hasFeature) && (document.implementation.hasFeature(\"\", \"\") !== true));\n    }\n;\n    function j(k, l) {\n        if ((!h || ((l && !h.addEventListener)))) {\n            return false\n        };\n        var m = document.createElement(\"div\"), n = (\"on\" + k), o = (n in m);\n        if (!o) {\n            m.setAttribute(n, \"\");\n            o = (typeof m[n] === \"function\");\n            if ((typeof m[n] !== \"undefined\")) {\n                m[n] = undefined;\n            };\n            m.removeAttribute(n);\n        }\n    ;\n        if (((!o && i) && (k === \"wheel\"))) {\n            o = document.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n        };\n        m = null;\n        return o;\n    };\n    e.exports = j;\n});\n__d(\"ReactEventEmitter\", [\"EventConstants\",\"EventListener\",\"EventPluginHub\",\"ExecutionEnvironment\",\"ReactUpdates\",\"ViewportMetrics\",\"invariant\",\"isEventSupported\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventListener\"), i = b(\"EventPluginHub\"), j = b(\"ExecutionEnvironment\"), k = b(\"ReactUpdates\"), l = b(\"ViewportMetrics\"), m = b(\"invariant\"), n = b(\"isEventSupported\"), o = false;\n    function p(u, v, w) {\n        h.listen(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n    };\n    function q(u, v, w) {\n        h.capture(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n    };\n    function r() {\n        var u = l.refreshScrollValues;\n        h.listen(window, \"scroll\", u);\n        h.listen(window, \"resize\", u);\n    };\n    function s(u) {\n        m(!o);\n        var v = g.topLevelTypes, w = document;\n        r();\n        p(v.topMouseOver, \"mouseover\", w);\n        p(v.topMouseDown, \"mousedown\", w);\n        p(v.topMouseUp, \"mouseup\", w);\n        p(v.topMouseMove, \"mousemove\", w);\n        p(v.topMouseOut, \"mouseout\", w);\n        p(v.topClick, \"click\", w);\n        p(v.topDoubleClick, \"dblclick\", w);\n        if (u) {\n            p(v.topTouchStart, \"touchstart\", w);\n            p(v.topTouchEnd, \"touchend\", w);\n            p(v.topTouchMove, \"touchmove\", w);\n            p(v.topTouchCancel, \"touchcancel\", w);\n        }\n    ;\n        p(v.topKeyUp, \"keyup\", w);\n        p(v.topKeyPress, \"keypress\", w);\n        p(v.topKeyDown, \"keydown\", w);\n        p(v.topInput, \"input\", w);\n        p(v.topChange, \"change\", w);\n        p(v.topSelectionChange, \"selectionchange\", w);\n        p(v.topDOMCharacterDataModified, \"DOMCharacterDataModified\", w);\n        if (n(\"drag\")) {\n            p(v.topDrag, \"drag\", w);\n            p(v.topDragEnd, \"dragend\", w);\n            p(v.topDragEnter, \"dragenter\", w);\n            p(v.topDragExit, \"dragexit\", w);\n            p(v.topDragLeave, \"dragleave\", w);\n            p(v.topDragOver, \"dragover\", w);\n            p(v.topDragStart, \"dragstart\", w);\n            p(v.topDrop, \"drop\", w);\n        }\n    ;\n        if (n(\"wheel\")) {\n            p(v.topWheel, \"wheel\", w);\n        }\n         else if (n(\"mousewheel\")) {\n            p(v.topWheel, \"mousewheel\", w);\n        }\n         else p(v.topWheel, \"DOMMouseScroll\", w);\n        \n    ;\n        if (n(\"scroll\", true)) {\n            q(v.topScroll, \"scroll\", w);\n        }\n         else p(v.topScroll, \"scroll\", window);\n    ;\n        if (n(\"focus\", true)) {\n            q(v.topFocus, \"focus\", w);\n            q(v.topBlur, \"blur\", w);\n        }\n         else if (n(\"focusin\")) {\n            p(v.topFocus, \"focusin\", w);\n            p(v.topBlur, \"focusout\", w);\n        }\n        \n    ;\n    };\n    var t = {\n        TopLevelCallbackCreator: null,\n        ensureListening: function(u, v) {\n            m(j.canUseDOM);\n            if (!o) {\n                t.TopLevelCallbackCreator = v;\n                s(u);\n                o = true;\n            }\n        ;\n        },\n        setEnabled: function(u) {\n            m(j.canUseDOM);\n            if (t.TopLevelCallbackCreator) {\n                t.TopLevelCallbackCreator.setEnabled(u);\n            };\n        },\n        isEnabled: function() {\n            return !!((t.TopLevelCallbackCreator && t.TopLevelCallbackCreator.isEnabled()));\n        },\n        handleTopLevel: function(u, v, w, x) {\n            var y = i.extractEvents(u, v, w, x);\n            k.batchedUpdates(function() {\n                i.enqueueEvents(y);\n                i.processEventQueue();\n            });\n        },\n        registrationNames: i.registrationNames,\n        putListener: i.putListener,\n        getListener: i.getListener,\n        deleteListener: i.deleteListener,\n        deleteAllListeners: i.deleteAllListeners,\n        trapBubbledEvent: p,\n        trapCapturedEvent: q\n    };\n    e.exports = t;\n});\n__d(\"getEventTarget\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\");\n    function h(i) {\n        var j = ((i.target || i.srcElement) || g.global);\n        return ((j.nodeType === 3) ? j.parentNode : j);\n    };\n    e.exports = h;\n});\n__d(\"ReactEventTopLevelCallback\", [\"ExecutionEnvironment\",\"ReactEventEmitter\",\"ReactID\",\"ReactInstanceHandles\",\"getEventTarget\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = b(\"ReactEventEmitter\"), i = b(\"ReactID\"), j = b(\"ReactInstanceHandles\"), k = b(\"getEventTarget\"), l = true, m = {\n        setEnabled: function(n) {\n            l = !!n;\n        },\n        isEnabled: function() {\n            return l;\n        },\n        createTopLevelCallback: function(n) {\n            return function(o) {\n                if (!l) {\n                    return\n                };\n                if ((o.srcElement && (o.srcElement !== o.target))) {\n                    o.target = o.srcElement;\n                };\n                var p = (j.getFirstReactDOM(k(o)) || g.global), q = (i.getID(p) || \"\");\n                h.handleTopLevel(n, p, q, o);\n            };\n        }\n    };\n    e.exports = m;\n});\n__d(\"ReactInstanceHandles\", [\"ReactID\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactID\"), h = b(\"invariant\"), i = \".\", j = i.length, k = 100, l = 9999999;\n    function m(v) {\n        return (((i + \"r[\") + v.toString(36)) + \"]\");\n    };\n    function n(v, w) {\n        return ((v.charAt(w) === i) || (w === v.length));\n    };\n    function o(v) {\n        return ((v === \"\") || (((v.charAt(0) === i) && (v.charAt((v.length - 1)) !== i))));\n    };\n    function p(v, w) {\n        return (((w.indexOf(v) === 0) && n(w, v.length)));\n    };\n    function q(v) {\n        return (v ? v.substr(0, v.lastIndexOf(i)) : \"\");\n    };\n    function r(v, w) {\n        h((o(v) && o(w)));\n        h(p(v, w));\n        if ((v === w)) {\n            return v\n        };\n        var x = (v.length + j);\n        for (var y = x; (y < w.length); y++) {\n            if (n(w, y)) {\n                break;\n            };\n        };\n        return w.substr(0, y);\n    };\n    function s(v, w) {\n        var x = Math.min(v.length, w.length);\n        if ((x === 0)) {\n            return \"\"\n        };\n        var y = 0;\n        for (var z = 0; (z <= x); z++) {\n            if ((n(v, z) && n(w, z))) {\n                y = z;\n            }\n             else if ((v.charAt(z) !== w.charAt(z))) {\n                break;\n            }\n        ;\n        };\n        var aa = v.substr(0, y);\n        h(o(aa));\n        return aa;\n    };\n    function t(v, w, x, y, z, aa) {\n        v = (v || \"\");\n        w = (w || \"\");\n        h((v !== w));\n        var ba = p(w, v);\n        h((ba || p(v, w)));\n        var ca = 0, da = (ba ? q : r);\n        for (var ea = v; ; ea = da(ea, w)) {\n            if ((((!z || (ea !== v))) && ((!aa || (ea !== w))))) {\n                x(ea, ba, y);\n            };\n            if ((ea === w)) {\n                break;\n            };\n            h((ca++ < k));\n        };\n    };\n    var u = {\n        separator: i,\n        createReactRootID: function() {\n            return m(Math.ceil((Math.random() * l)));\n        },\n        isRenderedByReact: function(v) {\n            if ((v.nodeType !== 1)) {\n                return false\n            };\n            var w = g.getID(v);\n            return (w ? (w.charAt(0) === i) : false);\n        },\n        getFirstReactDOM: function(v) {\n            var w = v;\n            while ((w && (w.parentNode !== w))) {\n                if (u.isRenderedByReact(w)) {\n                    return w\n                };\n                w = w.parentNode;\n            };\n            return null;\n        },\n        findComponentRoot: function(v, w) {\n            var x = [v.firstChild,], y = 0;\n            while ((y < x.length)) {\n                var z = x[y++];\n                while (z) {\n                    var aa = g.getID(z);\n                    if (aa) {\n                        if ((w === aa)) {\n                            return z;\n                        }\n                         else if (p(aa, w)) {\n                            x.length = y = 0;\n                            x.push(z.firstChild);\n                            break;\n                        }\n                         else x.push(z.firstChild);\n                        \n                    ;\n                    }\n                     else x.push(z.firstChild);\n                ;\n                    z = z.nextSibling;\n                };\n            };\n            ((a.console && emptyFunction) && false);\n            h(false);\n        },\n        getReactRootIDFromNodeID: function(v) {\n            var w = /\\.r\\[[^\\]]+\\]/.exec(v);\n            return (w && w[0]);\n        },\n        traverseEnterLeave: function(v, w, x, y, z) {\n            var aa = s(v, w);\n            if ((aa !== v)) {\n                t(v, aa, x, y, false, true);\n            };\n            if ((aa !== w)) {\n                t(aa, w, x, z, true, false);\n            };\n        },\n        traverseTwoPhase: function(v, w, x) {\n            if (v) {\n                t(\"\", v, w, x, true, false);\n                t(v, \"\", w, x, false, true);\n            }\n        ;\n        },\n        _getFirstCommonAncestorID: s,\n        _getNextDescendantID: r\n    };\n    e.exports = u;\n});\n__d(\"ReactMount\", [\"ReactEventEmitter\",\"ReactInstanceHandles\",\"ReactEventTopLevelCallback\",\"ReactID\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactEventEmitter\"), h = b(\"ReactInstanceHandles\"), i = b(\"ReactEventTopLevelCallback\"), j = b(\"ReactID\"), k = b(\"$\"), l = {\n    }, m = {\n    };\n    function n(q) {\n        return (q && q.firstChild);\n    };\n    function o(q) {\n        var r = n(q);\n        return (r && j.getID(r));\n    };\n    var p = {\n        totalInstantiationTime: 0,\n        totalInjectionTime: 0,\n        useTouchEvents: false,\n        scrollMonitor: function(q, r) {\n            r();\n        },\n        prepareTopLevelEvents: function(q) {\n            g.ensureListening(p.useTouchEvents, q);\n        },\n        _updateRootComponent: function(q, r, s, t) {\n            var u = r.props;\n            p.scrollMonitor(s, function() {\n                q.replaceProps(u, t);\n            });\n            return q;\n        },\n        _registerComponent: function(q, r) {\n            p.prepareTopLevelEvents(i);\n            var s = p.registerContainer(r);\n            l[s] = q;\n            return s;\n        },\n        _renderNewRootComponent: function(q, r, s) {\n            var t = p._registerComponent(q, r);\n            q.mountComponentIntoNode(t, r, s);\n            return q;\n        },\n        renderComponent: function(q, r, s) {\n            var t = l[o(r)];\n            if (t) {\n                if ((t.constructor === q.constructor)) {\n                    return p._updateRootComponent(t, q, r, s);\n                }\n                 else p.unmountAndReleaseReactRootNode(r);\n            \n            };\n            var u = n(r), v = (u && h.isRenderedByReact(u)), w = (v && !t), x = p._renderNewRootComponent(q, r, w);\n            (s && s());\n            return x;\n        },\n        constructAndRenderComponent: function(q, r, s) {\n            return p.renderComponent(q(r), s);\n        },\n        constructAndRenderComponentByID: function(q, r, s) {\n            return p.constructAndRenderComponent(q, r, k(s));\n        },\n        registerContainer: function(q) {\n            var r = o(q);\n            if (r) {\n                r = h.getReactRootIDFromNodeID(r);\n            };\n            if (!r) {\n                r = h.createReactRootID();\n            };\n            m[r] = q;\n            return r;\n        },\n        unmountAndReleaseReactRootNode: function(q) {\n            var r = o(q), s = l[r];\n            if (!s) {\n                return false\n            };\n            s.unmountComponentFromNode(q);\n            delete l[r];\n            delete m[r];\n            return true;\n        },\n        findReactContainerForID: function(q) {\n            var r = h.getReactRootIDFromNodeID(q);\n            return m[r];\n        },\n        findReactNodeByID: function(q) {\n            var r = p.findReactContainerForID(q);\n            return h.findComponentRoot(r, q);\n        }\n    };\n    e.exports = p;\n});\n__d(\"ReactID\", [\"invariant\",\"ReactMount\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = b(\"ReactMount\"), i = \"data-reactid\", j = {\n    };\n    function k(s) {\n        var t = l(s);\n        if (t) {\n            if (j.hasOwnProperty(t)) {\n                var u = j[t];\n                if ((u !== s)) {\n                    g(!o(u, t));\n                    j[t] = s;\n                }\n            ;\n            }\n             else j[t] = s;\n        \n        };\n        return t;\n    };\n    function l(s) {\n        if ((s && s.getAttributeNode)) {\n            var t = s.getAttributeNode(i);\n            if (t) {\n                return (t.value || \"\")\n            };\n        }\n    ;\n        return \"\";\n    };\n    function m(s, t) {\n        var u = l(s);\n        if ((u !== t)) {\n            delete j[u];\n        };\n        s.setAttribute(i, t);\n        j[t] = s;\n    };\n    function n(s) {\n        if ((!j.hasOwnProperty(s) || !o(j[s], s))) {\n            j[s] = h.findReactNodeByID(s);\n        };\n        return j[s];\n    };\n    function o(s, t) {\n        if (s) {\n            g((l(s) === t));\n            var u = h.findReactContainerForID(t);\n            if ((u && p(u, s))) {\n                return true\n            };\n        }\n    ;\n        return false;\n    };\n    function p(s, t) {\n        if (s.contains) {\n            return s.contains(t)\n        };\n        if ((t === s)) {\n            return true\n        };\n        if ((t.nodeType === 3)) {\n            t = t.parentNode;\n        };\n        while ((t && (t.nodeType === 1))) {\n            if ((t === s)) {\n                return true\n            };\n            t = t.parentNode;\n        };\n        return false;\n    };\n    function q(s) {\n        delete j[s];\n    };\n    function r() {\n        j = {\n        };\n    };\n    f.ATTR_NAME = i;\n    f.getID = k;\n    f.setID = m;\n    f.getNode = n;\n    f.purgeID = q;\n    f.purgeEntireCache = r;\n});\n__d(\"getTextContentAccessor\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = null;\n    function i() {\n        if ((!h && g.canUseDOM)) {\n            h = ((\"innerText\" in document.createElement(\"div\")) ? \"innerText\" : \"textContent\");\n        };\n        return h;\n    };\n    e.exports = i;\n});\n__d(\"ReactDOMIDOperations\", [\"CSSPropertyOperations\",\"DOMChildrenOperations\",\"DOMPropertyOperations\",\"ReactID\",\"getTextContentAccessor\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSPropertyOperations\"), h = b(\"DOMChildrenOperations\"), i = b(\"DOMPropertyOperations\"), j = b(\"ReactID\"), k = b(\"getTextContentAccessor\"), l = b(\"invariant\"), m = {\n        dangerouslySetInnerHTML: \"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.\",\n        style: \"`style` must be set using `updateStylesByID()`.\"\n    }, n = (k() || \"NA\"), o = {\n        updatePropertyByID: function(p, q, r) {\n            var s = j.getNode(p);\n            l(!m.hasOwnProperty(q));\n            i.setValueForProperty(s, q, r);\n        },\n        deletePropertyByID: function(p, q, r) {\n            var s = j.getNode(p);\n            l(!m.hasOwnProperty(q));\n            i.deleteValueForProperty(s, q, r);\n        },\n        updatePropertiesByID: function(p, q) {\n            for (var r in q) {\n                if (!q.hasOwnProperty(r)) {\n                    continue;\n                };\n                o.updatePropertiesByID(p, r, q[r]);\n            };\n        },\n        updateStylesByID: function(p, q) {\n            var r = j.getNode(p);\n            g.setValueForStyles(r, q);\n        },\n        updateInnerHTMLByID: function(p, q) {\n            var r = j.getNode(p);\n            r.innerHTML = (((q && q.__html) || \"\")).replace(/^ /g, \"&nbsp;\");\n        },\n        updateTextContentByID: function(p, q) {\n            var r = j.getNode(p);\n            r[n] = q;\n        },\n        dangerouslyReplaceNodeWithMarkupByID: function(p, q) {\n            var r = j.getNode(p);\n            h.dangerouslyReplaceNodeWithMarkup(r, q);\n            j.purgeEntireCache();\n        },\n        manageChildrenByParentID: function(p, q) {\n            var r = j.getNode(p);\n            h.manageChildren(r, q);\n            j.purgeEntireCache();\n        },\n        setTextNodeValueAtIndexByParentID: function(p, q, r) {\n            var s = j.getNode(p);\n            h.setTextNodeValueAtIndex(s, q, r);\n        }\n    };\n    e.exports = o;\n});\n__d(\"ReactOwner\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = {\n        isValidOwner: function(i) {\n            return !!(((i && (typeof i.attachRef === \"function\")) && (typeof i.detachRef === \"function\")));\n        },\n        addComponentAsRefTo: function(i, j, k) {\n            g(h.isValidOwner(k));\n            k.attachRef(j, i);\n        },\n        removeComponentAsRefFrom: function(i, j, k) {\n            g(h.isValidOwner(k));\n            if ((k.refs[j] === i)) {\n                k.detachRef(j);\n            };\n        },\n        Mixin: {\n            attachRef: function(i, j) {\n                g(j.isOwnedBy(this));\n                var k = (this.refs || (this.refs = {\n                }));\n                k[i] = j;\n            },\n            detachRef: function(i) {\n                delete this.refs[i];\n            }\n        }\n    };\n    e.exports = h;\n});\n__d(\"PooledClass\", [], function(a, b, c, d, e, f) {\n    var g = function(p) {\n        var q = this;\n        if (q.instancePool.length) {\n            var r = q.instancePool.pop();\n            q.call(r, p);\n            return r;\n        }\n         else return new q(p)\n    ;\n    }, h = function(p, q) {\n        var r = this;\n        if (r.instancePool.length) {\n            var s = r.instancePool.pop();\n            r.call(s, p, q);\n            return s;\n        }\n         else return new r(p, q)\n    ;\n    }, i = function(p, q, r) {\n        var s = this;\n        if (s.instancePool.length) {\n            var t = s.instancePool.pop();\n            s.call(t, p, q, r);\n            return t;\n        }\n         else return new s(p, q, r)\n    ;\n    }, j = function(p, q, r, s, t) {\n        var u = this;\n        if (u.instancePool.length) {\n            var v = u.instancePool.pop();\n            u.call(v, p, q, r, s, t);\n            return v;\n        }\n         else return new u(p, q, r, s, t)\n    ;\n    }, k = function(p) {\n        var q = this;\n        if (p.destructor) {\n            p.destructor();\n        };\n        if ((q.instancePool.length < q.poolSize)) {\n            q.instancePool.push(p);\n        };\n    }, l = 10, m = g, n = function(p, q) {\n        var r = p;\n        r.instancePool = [];\n        r.getPooled = (q || m);\n        if (!r.poolSize) {\n            r.poolSize = l;\n        };\n        r.release = k;\n        return r;\n    }, o = {\n        addPoolingTo: n,\n        oneArgumentPooler: g,\n        twoArgumentPooler: h,\n        threeArgumentPooler: i,\n        fiveArgumentPooler: j\n    };\n    e.exports = o;\n});\n__d(\"ReactInputSelection\", [], function(a, b, c, d, e, f) {\n    function g() {\n        try {\n            return document.activeElement;\n        } catch (j) {\n        \n        };\n    };\n    function h(j) {\n        return document.documentElement.contains(j);\n    };\n    var i = {\n        hasSelectionCapabilities: function(j) {\n            return (j && ((((((j.nodeName === \"INPUT\") && (j.type === \"text\"))) || (j.nodeName === \"TEXTAREA\")) || (j.contentEditable === \"true\"))));\n        },\n        getSelectionInformation: function() {\n            var j = g();\n            return {\n                focusedElem: j,\n                selectionRange: (i.hasSelectionCapabilities(j) ? i.getSelection(j) : null)\n            };\n        },\n        restoreSelection: function(j) {\n            var k = g(), l = j.focusedElem, m = j.selectionRange;\n            if (((k !== l) && h(l))) {\n                if (i.hasSelectionCapabilities(l)) {\n                    i.setSelection(l, m);\n                };\n                l.focus();\n            }\n        ;\n        },\n        getSelection: function(j) {\n            var k;\n            if (((j.contentEditable === \"true\") && window.getSelection)) {\n                k = window.getSelection().getRangeAt(0);\n                var l = k.commonAncestorContainer;\n                if ((l && (l.nodeType === 3))) {\n                    l = l.parentNode;\n                };\n                if ((l !== j)) {\n                    return {\n                        start: 0,\n                        end: 0\n                    };\n                }\n                 else return {\n                    start: k.startOffset,\n                    end: k.endOffset\n                }\n            ;\n            }\n        ;\n            if (!document.selection) {\n                return {\n                    start: j.selectionStart,\n                    end: j.selectionEnd\n                }\n            };\n            k = document.selection.createRange();\n            if ((k.parentElement() !== j)) {\n                return {\n                    start: 0,\n                    end: 0\n                }\n            };\n            var m = j.value.length;\n            if ((j.nodeName === \"INPUT\")) {\n                return {\n                    start: -k.moveStart(\"character\", -m),\n                    end: -k.moveEnd(\"character\", -m)\n                };\n            }\n             else {\n                var n = k.duplicate();\n                n.moveToElementText(j);\n                n.setEndPoint(\"StartToEnd\", k);\n                var o = (m - n.text.length);\n                n.setEndPoint(\"StartToStart\", k);\n                return {\n                    start: (m - n.text.length),\n                    end: o\n                };\n            }\n        ;\n        },\n        setSelection: function(j, k) {\n            var l, m = k.start, n = k.end;\n            if ((typeof n === \"undefined\")) {\n                n = m;\n            };\n            if (document.selection) {\n                if ((j.tagName === \"TEXTAREA\")) {\n                    var o = ((j.value.slice(0, m).match(/\\r/g) || [])).length, p = ((j.value.slice(m, n).match(/\\r/g) || [])).length;\n                    m -= o;\n                    n -= (o + p);\n                }\n            ;\n                l = j.createTextRange();\n                l.collapse(true);\n                l.moveStart(\"character\", m);\n                l.moveEnd(\"character\", (n - m));\n                l.select();\n            }\n             else if ((j.contentEditable === \"true\")) {\n                if ((j.childNodes.length === 1)) {\n                    l = document.createRange();\n                    l.setStart(j.childNodes[0], m);\n                    l.setEnd(j.childNodes[0], n);\n                    var q = window.getSelection();\n                    q.removeAllRanges();\n                    q.addRange(l);\n                }\n            ;\n            }\n             else {\n                j.selectionStart = m;\n                j.selectionEnd = Math.min(n, j.value.length);\n                j.focus();\n            }\n            \n        ;\n        }\n    };\n    e.exports = i;\n});\n__d(\"mixInto\", [], function(a, b, c, d, e, f) {\n    var g = function(h, i) {\n        var j;\n        for (j in i) {\n            if (!i.hasOwnProperty(j)) {\n                continue;\n            };\n            h.prototype[j] = i[j];\n        };\n    };\n    e.exports = g;\n});\n__d(\"ReactOnDOMReady\", [\"PooledClass\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"PooledClass\"), h = b(\"mixInto\");\n    function i(j) {\n        this._queue = (j || null);\n    };\n    h(i, {\n        enqueue: function(j, k) {\n            this._queue = (this._queue || []);\n            this._queue.push({\n                component: j,\n                callback: k\n            });\n        },\n        notifyAll: function() {\n            var j = this._queue;\n            if (j) {\n                this._queue = null;\n                for (var k = 0, l = j.length; (k < l); k++) {\n                    var m = j[k].component, n = j[k].callback;\n                    n.call(m, m.getDOMNode());\n                };\n                j.length = 0;\n            }\n        ;\n        },\n        reset: function() {\n            this._queue = null;\n        },\n        destructor: function() {\n            this.reset();\n        }\n    });\n    g.addPoolingTo(i);\n    e.exports = i;\n});\n__d(\"Transaction\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h = \"DUAL_TRANSACTION\", i = \"MISSING_TRANSACTION\", j = {\n        reinitializeTransaction: function() {\n            this.transactionWrappers = this.getTransactionWrappers();\n            if (!this.wrapperInitData) {\n                this.wrapperInitData = [];\n            }\n             else this.wrapperInitData.length = 0;\n        ;\n            if (!this.timingMetrics) {\n                this.timingMetrics = {\n                };\n            };\n            this.timingMetrics.methodInvocationTime = 0;\n            if (!this.timingMetrics.wrapperInitTimes) {\n                this.timingMetrics.wrapperInitTimes = [];\n            }\n             else this.timingMetrics.wrapperInitTimes.length = 0;\n        ;\n            if (!this.timingMetrics.wrapperCloseTimes) {\n                this.timingMetrics.wrapperCloseTimes = [];\n            }\n             else this.timingMetrics.wrapperCloseTimes.length = 0;\n        ;\n            this._isInTransaction = false;\n        },\n        _isInTransaction: false,\n        getTransactionWrappers: null,\n        isInTransaction: function() {\n            return !!this._isInTransaction;\n        },\n        perform: function(l, m, n, o, p, q, r, s) {\n            g(this.isInTransaction(), h);\n            var t = Date.now(), u = null, v;\n            try {\n                this.initializeAll();\n                v = l.call(m, n, o, p, q, r, s);\n            } catch (w) {\n                u = w;\n            } finally {\n                var x = Date.now();\n                this.methodInvocationTime += ((x - t));\n                try {\n                    this.closeAll();\n                } catch (y) {\n                    u = (u || y);\n                };\n            };\n            if (u) {\n                throw u\n            };\n            return v;\n        },\n        initializeAll: function() {\n            this._isInTransaction = true;\n            var l = this.transactionWrappers, m = this.timingMetrics.wrapperInitTimes, n = null;\n            for (var o = 0; (o < l.length); o++) {\n                var p = Date.now(), q = l[o];\n                try {\n                    this.wrapperInitData[o] = (q.initialize ? q.initialize.call(this) : null);\n                } catch (r) {\n                    n = (n || r);\n                    this.wrapperInitData[o] = k.OBSERVED_ERROR;\n                } finally {\n                    var s = m[o], t = Date.now();\n                    m[o] = (((s || 0)) + ((t - p)));\n                };\n            };\n            if (n) {\n                throw n\n            };\n        },\n        closeAll: function() {\n            g(!this.isInTransaction(), i);\n            var l = this.transactionWrappers, m = this.timingMetrics.wrapperCloseTimes, n = null;\n            for (var o = 0; (o < l.length); o++) {\n                var p = l[o], q = Date.now(), r = this.wrapperInitData[o];\n                try {\n                    if ((r !== k.OBSERVED_ERROR)) {\n                        (p.close && p.close.call(this, r));\n                    };\n                } catch (s) {\n                    n = (n || s);\n                } finally {\n                    var t = Date.now(), u = m[o];\n                    m[o] = (((u || 0)) + ((t - q)));\n                };\n            };\n            this.wrapperInitData.length = 0;\n            this._isInTransaction = false;\n            if (n) {\n                throw n\n            };\n        }\n    }, k = {\n        Mixin: j,\n        OBSERVED_ERROR: {\n        }\n    };\n    e.exports = k;\n});\n__d(\"ReactReconcileTransaction\", [\"ExecutionEnvironment\",\"PooledClass\",\"ReactEventEmitter\",\"ReactInputSelection\",\"ReactOnDOMReady\",\"Transaction\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = b(\"PooledClass\"), i = b(\"ReactEventEmitter\"), j = b(\"ReactInputSelection\"), k = b(\"ReactOnDOMReady\"), l = b(\"Transaction\"), m = b(\"mixInto\"), n = {\n        initialize: j.getSelectionInformation,\n        close: j.restoreSelection\n    }, o = {\n        initialize: function() {\n            var t = i.isEnabled();\n            i.setEnabled(false);\n            return t;\n        },\n        close: function(t) {\n            i.setEnabled(t);\n        }\n    }, p = {\n        initialize: function() {\n            this.reactOnDOMReady.reset();\n        },\n        close: function() {\n            this.reactOnDOMReady.notifyAll();\n        }\n    }, q = [n,o,p,];\n    function r() {\n        this.reinitializeTransaction();\n        this.reactOnDOMReady = k.getPooled(null);\n    };\n    var s = {\n        getTransactionWrappers: function() {\n            if (g.canUseDOM) {\n                return q;\n            }\n             else return []\n        ;\n        },\n        getReactOnDOMReady: function() {\n            return this.reactOnDOMReady;\n        },\n        destructor: function() {\n            k.release(this.reactOnDOMReady);\n            this.reactOnDOMReady = null;\n        }\n    };\n    m(r, l.Mixin);\n    m(r, s);\n    h.addPoolingTo(r);\n    e.exports = r;\n});\n__d(\"mergeHelpers\", [\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyMirror\"), h = b(\"throwIf\"), i = 36, j = g({\n        MERGE_ARRAY_FAIL: null,\n        MERGE_CORE_FAILURE: null,\n        MERGE_TYPE_USAGE_FAILURE: null,\n        MERGE_DEEP_MAX_LEVELS: null,\n        MERGE_DEEP_NO_ARR_STRATEGY: null\n    }), k = function(m) {\n        return ((typeof m !== \"object\") || (m === null));\n    }, l = {\n        MAX_MERGE_DEPTH: i,\n        isTerminal: k,\n        normalizeMergeArg: function(m) {\n            return (((m === undefined) || (m === null)) ? {\n            } : m);\n        },\n        checkMergeArrayArgs: function(m, n) {\n            h((!Array.isArray(m) || !Array.isArray(n)), j.MERGE_CORE_FAILURE);\n        },\n        checkMergeObjectArgs: function(m, n) {\n            l.checkMergeObjectArg(m);\n            l.checkMergeObjectArg(n);\n        },\n        checkMergeObjectArg: function(m) {\n            h((k(m) || Array.isArray(m)), j.MERGE_CORE_FAILURE);\n        },\n        checkMergeLevel: function(m) {\n            h((m >= i), j.MERGE_DEEP_MAX_LEVELS);\n        },\n        checkArrayStrategy: function(m) {\n            h(((m !== undefined) && !((m in l.ArrayStrategies))), j.MERGE_DEEP_NO_ARR_STRATEGY);\n        },\n        ArrayStrategies: g({\n            Clobber: true,\n            IndexByIndex: true\n        }),\n        ERRORS: j\n    };\n    e.exports = l;\n});\n__d(\"mergeInto\", [\"mergeHelpers\",], function(a, b, c, d, e, f) {\n    var g = b(\"mergeHelpers\"), h = g.checkMergeObjectArg;\n    function i(j, k) {\n        h(j);\n        if ((k != null)) {\n            h(k);\n            for (var l in k) {\n                if (!k.hasOwnProperty(l)) {\n                    continue;\n                };\n                j[l] = k[l];\n            };\n        }\n    ;\n    };\n    e.exports = i;\n});\n__d(\"merge\", [\"mergeInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"mergeInto\"), h = function(i, j) {\n        var k = {\n        };\n        g(k, i);\n        g(k, j);\n        return k;\n    };\n    e.exports = h;\n});\n__d(\"ReactComponent\", [\"ReactCurrentOwner\",\"ReactDOMIDOperations\",\"ReactID\",\"ReactMount\",\"ReactOwner\",\"ReactReconcileTransaction\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactCurrentOwner\"), h = b(\"ReactDOMIDOperations\"), i = b(\"ReactID\"), j = b(\"ReactMount\"), k = b(\"ReactOwner\"), l = b(\"ReactReconcileTransaction\"), m = b(\"ReactUpdates\"), n = b(\"invariant\"), o = b(\"keyMirror\"), p = b(\"merge\"), q = \"{owner}\", r = \"{is.key.validated}\", s = o({\n        MOUNTED: null,\n        UNMOUNTED: null\n    }), t = {\n    };\n    function u(x) {\n        if ((x[r] || (x.props.key != null))) {\n            return\n        };\n        x[r] = true;\n        if (!g.current) {\n            return\n        };\n        var y = g.current.constructor.displayName;\n        if (t.hasOwnProperty(y)) {\n            return\n        };\n        t[y] = true;\n        var z = (((\"Each child in an array should have a unique \\\"key\\\" prop. \" + \"Check the render method of \") + y) + \".\");\n        if (!x.isOwnedBy(g.current)) {\n            var aa = (x.props[q] && x.props[q].constructor.displayName);\n            z += ((\" It was passed a child from \" + aa) + \".\");\n        }\n    ;\n    };\n    function v(x) {\n        if (Array.isArray(x)) {\n            for (var y = 0; (y < x.length); y++) {\n                var z = x[y];\n                if (w.isValidComponent(z)) {\n                    u(z);\n                };\n            };\n        }\n         else if (w.isValidComponent(x)) {\n            x[r] = true;\n        }\n    ;\n    };\n    var w = {\n        isValidComponent: function(x) {\n            return !!(((x && (typeof x.mountComponentIntoNode === \"function\")) && (typeof x.receiveProps === \"function\")));\n        },\n        getKey: function(x, y) {\n            if (((x && x.props) && (x.props.key != null))) {\n                return (\"\" + x.props.key)\n            };\n            return (\"\" + y);\n        },\n        LifeCycle: s,\n        DOMIDOperations: h,\n        ReactReconcileTransaction: l,\n        setDOMOperations: function(x) {\n            w.DOMIDOperations = x;\n        },\n        setReactReconcileTransaction: function(x) {\n            w.ReactReconcileTransaction = x;\n        },\n        Mixin: {\n            isMounted: function() {\n                return (this._lifeCycleState === s.MOUNTED);\n            },\n            getDOMNode: function() {\n                n(this.isMounted());\n                return i.getNode(this._rootNodeID);\n            },\n            setProps: function(x, y) {\n                this.replaceProps(p((this._pendingProps || this.props), x), y);\n            },\n            replaceProps: function(x, y) {\n                n(!this.props[q]);\n                this._pendingProps = x;\n                m.enqueueUpdate(this, y);\n            },\n            construct: function(x, y) {\n                this.props = (x || {\n                });\n                this.props[q] = g.current;\n                this._lifeCycleState = s.UNMOUNTED;\n                this._pendingProps = null;\n                this._pendingCallbacks = null;\n                var z = (arguments.length - 1);\n                if ((z === 1)) {\n                    this.props.children = y;\n                }\n                 else if ((z > 1)) {\n                    var aa = Array(z);\n                    for (var ba = 0; (ba < z); ba++) {\n                        aa[ba] = arguments[(ba + 1)];;\n                    };\n                    this.props.children = aa;\n                }\n                \n            ;\n            },\n            mountComponent: function(x, y) {\n                n(!this.isMounted());\n                var z = this.props;\n                if ((z.ref != null)) {\n                    k.addComponentAsRefTo(this, z.ref, z[q]);\n                };\n                this._rootNodeID = x;\n                this._lifeCycleState = s.MOUNTED;\n            },\n            unmountComponent: function() {\n                n(this.isMounted());\n                var x = this.props;\n                if ((x.ref != null)) {\n                    k.removeComponentAsRefFrom(this, x.ref, x[q]);\n                };\n                i.purgeID(this._rootNodeID);\n                this._rootNodeID = null;\n                this._lifeCycleState = s.UNMOUNTED;\n            },\n            receiveProps: function(x, y) {\n                n(this.isMounted());\n                this._pendingProps = x;\n                this._performUpdateIfNecessary(y);\n            },\n            performUpdateIfNecessary: function() {\n                var x = w.ReactReconcileTransaction.getPooled();\n                x.perform(this._performUpdateIfNecessary, this, x);\n                w.ReactReconcileTransaction.release(x);\n            },\n            _performUpdateIfNecessary: function(x) {\n                if ((this._pendingProps == null)) {\n                    return\n                };\n                var y = this.props;\n                this.props = this._pendingProps;\n                this._pendingProps = null;\n                this.updateComponent(x, y);\n            },\n            updateComponent: function(x, y) {\n                var z = this.props;\n                if (((z[q] !== y[q]) || (z.ref !== y.ref))) {\n                    if ((y.ref != null)) {\n                        k.removeComponentAsRefFrom(this, y.ref, y[q]);\n                    };\n                    if ((z.ref != null)) {\n                        k.addComponentAsRefTo(this, z.ref, z[q]);\n                    };\n                }\n            ;\n            },\n            mountComponentIntoNode: function(x, y, z) {\n                var aa = w.ReactReconcileTransaction.getPooled();\n                aa.perform(this._mountComponentIntoNode, this, x, y, aa, z);\n                w.ReactReconcileTransaction.release(aa);\n            },\n            _mountComponentIntoNode: function(x, y, z, aa) {\n                n((y && (y.nodeType === 1)));\n                var ba = Date.now(), ca = this.mountComponent(x, z);\n                j.totalInstantiationTime += ((Date.now() - ba));\n                if (aa) {\n                    return\n                };\n                var da = Date.now(), ea = y.parentNode;\n                if (ea) {\n                    var fa = y.nextSibling;\n                    ea.removeChild(y);\n                    y.innerHTML = ca;\n                    if (fa) {\n                        ea.insertBefore(y, fa);\n                    }\n                     else ea.appendChild(y);\n                ;\n                }\n                 else y.innerHTML = ca;\n            ;\n                j.totalInjectionTime += ((Date.now() - da));\n            },\n            unmountComponentFromNode: function(x) {\n                this.unmountComponent();\n                while (x.lastChild) {\n                    x.removeChild(x.lastChild);;\n                };\n            },\n            isOwnedBy: function(x) {\n                return (this.props[q] === x);\n            },\n            getSiblingByRef: function(x) {\n                var y = this.props[q];\n                if ((!y || !y.refs)) {\n                    return null\n                };\n                return y.refs[x];\n            }\n        }\n    };\n    e.exports = w;\n});\n__d(\"joinClasses\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if (!h) {\n            h = \"\";\n        };\n        var i, j = arguments.length;\n        if ((j > 1)) {\n            for (var k = 1; (k < j); k++) {\n                i = arguments[k];\n                (i && (h += (\" \" + i)));\n            }\n        };\n        return h;\n    };\n    e.exports = g;\n});\n__d(\"ReactPropTransferer\", [\"emptyFunction\",\"joinClasses\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"emptyFunction\"), h = b(\"joinClasses\"), i = b(\"merge\");\n    function j(m) {\n        return function(n, o, p) {\n            if (!n.hasOwnProperty(o)) {\n                n[o] = p;\n            }\n             else n[o] = m(n[o], p);\n        ;\n        };\n    };\n    var k = {\n        children: g,\n        className: j(h),\n        ref: g,\n        style: j(i)\n    }, l = {\n        TransferStrategies: k,\n        Mixin: {\n            transferPropsTo: function(m) {\n                var n = {\n                };\n                for (var o in m.props) {\n                    if (m.props.hasOwnProperty(o)) {\n                        n[o] = m.props[o];\n                    };\n                };\n                for (var p in this.props) {\n                    if (!this.props.hasOwnProperty(p)) {\n                        continue;\n                    };\n                    var q = k[p];\n                    if (q) {\n                        q(n, p, this.props[p]);\n                    }\n                     else if (!n.hasOwnProperty(p)) {\n                        n[p] = this.props[p];\n                    }\n                ;\n                };\n                m.props = n;\n                return m;\n            }\n        }\n    };\n    e.exports = l;\n});\n__d(\"ReactCompositeComponent\", [\"ReactComponent\",\"ReactCurrentOwner\",\"ReactOwner\",\"ReactPropTransferer\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\"), h = b(\"ReactCurrentOwner\"), i = b(\"ReactOwner\"), j = b(\"ReactPropTransferer\"), k = b(\"ReactUpdates\"), l = b(\"invariant\"), m = b(\"keyMirror\"), n = b(\"merge\"), o = b(\"mixInto\"), p = m({\n        DEFINE_ONCE: null,\n        DEFINE_MANY: null,\n        OVERRIDE_BASE: null\n    }), q = {\n        mixins: p.DEFINE_MANY,\n        props: p.DEFINE_ONCE,\n        getDefaultProps: p.DEFINE_ONCE,\n        getInitialState: p.DEFINE_ONCE,\n        render: p.DEFINE_ONCE,\n        componentWillMount: p.DEFINE_MANY,\n        componentDidMount: p.DEFINE_MANY,\n        componentWillReceiveProps: p.DEFINE_MANY,\n        shouldComponentUpdate: p.DEFINE_ONCE,\n        componentWillUpdate: p.DEFINE_MANY,\n        componentDidUpdate: p.DEFINE_MANY,\n        componentWillUnmount: p.DEFINE_MANY,\n        updateComponent: p.OVERRIDE_BASE\n    }, r = {\n        displayName: function(aa, ba) {\n            aa.displayName = ba;\n        },\n        mixins: function(aa, ba) {\n            if (ba) {\n                for (var ca = 0; (ca < ba.length); ca++) {\n                    u(aa, ba[ca]);;\n                }\n            };\n        },\n        props: function(aa, ba) {\n            aa.propDeclarations = ba;\n        }\n    };\n    function s(aa, ba) {\n        var ca = q[ba];\n        if (x.hasOwnProperty(ba)) {\n            l((ca === p.OVERRIDE_BASE));\n        };\n        if (aa.hasOwnProperty(ba)) {\n            l((ca === p.DEFINE_MANY));\n        };\n    };\n    function t(aa) {\n        var ba = aa._compositeLifeCycleState;\n        l((aa.isMounted() || (ba === w.MOUNTING)));\n        l(((ba !== w.RECEIVING_STATE) && (ba !== w.UNMOUNTING)));\n    };\n    function u(aa, ba) {\n        var ca = aa.prototype;\n        for (var da in ba) {\n            var ea = ba[da];\n            if ((!ba.hasOwnProperty(da) || !ea)) {\n                continue;\n            };\n            s(ca, da);\n            if (r.hasOwnProperty(da)) {\n                r[da](aa, ea);\n            }\n             else {\n                var fa = (da in q), ga = (da in ca), ha = ea.__reactDontBind, ia = (typeof ea === \"function\"), ja = (((ia && !fa) && !ga) && !ha);\n                if (ja) {\n                    if (!ca.__reactAutoBindMap) {\n                        ca.__reactAutoBindMap = {\n                        };\n                    };\n                    ca.__reactAutoBindMap[da] = ea;\n                    ca[da] = ea;\n                }\n                 else if (ga) {\n                    ca[da] = v(ca[da], ea);\n                }\n                 else ca[da] = ea;\n                \n            ;\n            }\n        ;\n        };\n    };\n    function v(aa, ba) {\n        return function ca() {\n            aa.apply(this, arguments);\n            ba.apply(this, arguments);\n        };\n    };\n    var w = m({\n        MOUNTING: null,\n        UNMOUNTING: null,\n        RECEIVING_PROPS: null,\n        RECEIVING_STATE: null\n    }), x = {\n        construct: function(aa, ba) {\n            g.Mixin.construct.apply(this, arguments);\n            this.state = null;\n            this._pendingState = null;\n            this._compositeLifeCycleState = null;\n        },\n        isMounted: function() {\n            return (g.Mixin.isMounted.call(this) && (this._compositeLifeCycleState !== w.MOUNTING));\n        },\n        mountComponent: function(aa, ba) {\n            g.Mixin.mountComponent.call(this, aa, ba);\n            this._compositeLifeCycleState = w.MOUNTING;\n            this._defaultProps = (this.getDefaultProps ? this.getDefaultProps() : null);\n            this._processProps(this.props);\n            if (this.__reactAutoBindMap) {\n                this._bindAutoBindMethods();\n            };\n            this.state = (this.getInitialState ? this.getInitialState() : null);\n            this._pendingState = null;\n            this._pendingForceUpdate = false;\n            if (this.componentWillMount) {\n                this.componentWillMount();\n                if (this._pendingState) {\n                    this.state = this._pendingState;\n                    this._pendingState = null;\n                }\n            ;\n            }\n        ;\n            this._renderedComponent = this._renderValidatedComponent();\n            this._compositeLifeCycleState = null;\n            var ca = this._renderedComponent.mountComponent(aa, ba);\n            if (this.componentDidMount) {\n                ba.getReactOnDOMReady().enqueue(this, this.componentDidMount);\n            };\n            return ca;\n        },\n        unmountComponent: function() {\n            this._compositeLifeCycleState = w.UNMOUNTING;\n            if (this.componentWillUnmount) {\n                this.componentWillUnmount();\n            };\n            this._compositeLifeCycleState = null;\n            this._defaultProps = null;\n            g.Mixin.unmountComponent.call(this);\n            this._renderedComponent.unmountComponent();\n            this._renderedComponent = null;\n            if (this.refs) {\n                this.refs = null;\n            };\n        },\n        setState: function(aa, ba) {\n            this.replaceState(n((this._pendingState || this.state), aa), ba);\n        },\n        replaceState: function(aa, ba) {\n            t.call(null, this);\n            this._pendingState = aa;\n            k.enqueueUpdate(this, ba);\n        },\n        _processProps: function(aa) {\n            var ba, ca = this._defaultProps;\n            for (ba in ca) {\n                if (!((ba in aa))) {\n                    aa[ba] = ca[ba];\n                };\n            };\n            var da = this.constructor.propDeclarations;\n            if (da) {\n                var ea = this.constructor.displayName;\n                for (ba in da) {\n                    var fa = da[ba];\n                    if (fa) {\n                        fa(aa, ba, ea);\n                    };\n                };\n            }\n        ;\n        },\n        performUpdateIfNecessary: function() {\n            var aa = this._compositeLifeCycleState;\n            if (((aa === w.MOUNTING) || (aa === w.RECEIVING_PROPS))) {\n                return\n            };\n            g.Mixin.performUpdateIfNecessary.call(this);\n        },\n        _performUpdateIfNecessary: function(aa) {\n            if ((((this._pendingProps == null) && (this._pendingState == null)) && !this._pendingForceUpdate)) {\n                return\n            };\n            var ba = this.props;\n            if ((this._pendingProps != null)) {\n                ba = this._pendingProps;\n                this._processProps(ba);\n                this._pendingProps = null;\n                this._compositeLifeCycleState = w.RECEIVING_PROPS;\n                if (this.componentWillReceiveProps) {\n                    this.componentWillReceiveProps(ba, aa);\n                };\n            }\n        ;\n            this._compositeLifeCycleState = w.RECEIVING_STATE;\n            var ca = (this._pendingState || this.state);\n            this._pendingState = null;\n            if (((this._pendingForceUpdate || !this.shouldComponentUpdate) || this.shouldComponentUpdate(ba, ca))) {\n                this._pendingForceUpdate = false;\n                this._performComponentUpdate(ba, ca, aa);\n            }\n             else {\n                this.props = ba;\n                this.state = ca;\n            }\n        ;\n            this._compositeLifeCycleState = null;\n        },\n        _performComponentUpdate: function(aa, ba, ca) {\n            var da = this.props, ea = this.state;\n            if (this.componentWillUpdate) {\n                this.componentWillUpdate(aa, ba, ca);\n            };\n            this.props = aa;\n            this.state = ba;\n            this.updateComponent(ca, da, ea);\n            if (this.componentDidUpdate) {\n                ca.getReactOnDOMReady().enqueue(this, this.componentDidUpdate.bind(this, da, ea));\n            };\n        },\n        updateComponent: function(aa, ba, ca) {\n            g.Mixin.updateComponent.call(this, aa, ba);\n            var da = this._renderedComponent, ea = this._renderValidatedComponent();\n            if ((da.constructor === ea.constructor)) {\n                da.receiveProps(ea.props, aa);\n            }\n             else {\n                var fa = this._rootNodeID, ga = da._rootNodeID;\n                da.unmountComponent();\n                var ha = ea.mountComponent(fa, aa);\n                g.DOMIDOperations.dangerouslyReplaceNodeWithMarkupByID(ga, ha);\n                this._renderedComponent = ea;\n            }\n        ;\n        },\n        forceUpdate: function(aa) {\n            var ba = this._compositeLifeCycleState;\n            l((this.isMounted() || (ba === w.MOUNTING)));\n            l(((ba !== w.RECEIVING_STATE) && (ba !== w.UNMOUNTING)));\n            this._pendingForceUpdate = true;\n            k.enqueueUpdate(this, aa);\n        },\n        _renderValidatedComponent: function() {\n            var aa;\n            h.current = this;\n            try {\n                aa = this.render();\n            } catch (ba) {\n                throw ba;\n            } finally {\n                h.current = null;\n            };\n            l(g.isValidComponent(aa));\n            return aa;\n        },\n        _bindAutoBindMethods: function() {\n            for (var aa in this.__reactAutoBindMap) {\n                if (!this.__reactAutoBindMap.hasOwnProperty(aa)) {\n                    continue;\n                };\n                var ba = this.__reactAutoBindMap[aa];\n                this[aa] = this._bindAutoBindMethod(ba);\n            };\n        },\n        _bindAutoBindMethod: function(aa) {\n            var ba = this;\n            return function() {\n                return aa.apply(ba, arguments);\n            };\n        }\n    }, y = function() {\n    \n    };\n    o(y, g.Mixin);\n    o(y, i.Mixin);\n    o(y, j.Mixin);\n    o(y, x);\n    var z = {\n        LifeCycle: w,\n        Base: y,\n        createClass: function(aa) {\n            var ba = function() {\n            \n            };\n            ba.prototype = new y();\n            ba.prototype.constructor = ba;\n            u(ba, aa);\n            l(ba.prototype.render);\n            var ca = function(da, ea) {\n                var fa = new ba();\n                fa.construct.apply(fa, arguments);\n                return fa;\n            };\n            ca.componentConstructor = ba;\n            ca.originalSpec = aa;\n            return ca;\n        },\n        autoBind: function(aa) {\n            return aa;\n        }\n    };\n    e.exports = z;\n});\n__d(\"ReactMultiChild\", [\"ReactComponent\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\");\n    function h(k, l) {\n        return ((k && l) && (k.constructor === l.constructor));\n    };\n    var i = {\n        enqueueMarkupAt: function(k, l) {\n            this.domOperations = (this.domOperations || []);\n            this.domOperations.push({\n                insertMarkup: k,\n                finalIndex: l\n            });\n        },\n        enqueueMove: function(k, l) {\n            this.domOperations = (this.domOperations || []);\n            this.domOperations.push({\n                moveFrom: k,\n                finalIndex: l\n            });\n        },\n        enqueueUnmountChildByName: function(k, l) {\n            if (g.isValidComponent(l)) {\n                this.domOperations = (this.domOperations || []);\n                this.domOperations.push({\n                    removeAt: l._domIndex\n                });\n                (l.unmountComponent && l.unmountComponent());\n                delete this._renderedChildren[k];\n            }\n        ;\n        },\n        processChildDOMOperationsQueue: function() {\n            if (this.domOperations) {\n                g.DOMIDOperations.manageChildrenByParentID(this._rootNodeID, this.domOperations);\n                this.domOperations = null;\n            }\n        ;\n        },\n        unmountMultiChild: function() {\n            var k = this._renderedChildren;\n            for (var l in k) {\n                if ((k.hasOwnProperty(l) && k[l])) {\n                    var m = k[l];\n                    (m.unmountComponent && m.unmountComponent());\n                }\n            ;\n            };\n            this._renderedChildren = null;\n        },\n        mountMultiChild: function(k, l) {\n            var m = \"\", n = 0;\n            for (var o in k) {\n                var p = k[o];\n                if ((k.hasOwnProperty(o) && p)) {\n                    m += p.mountComponent(((this._rootNodeID + \".\") + o), l);\n                    p._domIndex = n;\n                    n++;\n                }\n            ;\n            };\n            this._renderedChildren = k;\n            this.domOperations = null;\n            return m;\n        },\n        updateMultiChild: function(k, l) {\n            if ((!k && !this._renderedChildren)) {\n                return;\n            }\n             else if ((k && !this._renderedChildren)) {\n                this._renderedChildren = {\n                };\n            }\n             else if ((!k && this._renderedChildren)) {\n                k = {\n                };\n            }\n            \n        ;\n            var m = (this._rootNodeID + \".\"), n = null, o = 0, p = 0, q = 0;\n            for (var r in k) {\n                if (!k.hasOwnProperty(r)) {\n                    continue;\n                };\n                var s = this._renderedChildren[r], t = k[r];\n                if (h(s, t)) {\n                    if (n) {\n                        this.enqueueMarkupAt(n, (p - o));\n                        n = null;\n                    }\n                ;\n                    o = 0;\n                    if ((s._domIndex < q)) {\n                        this.enqueueMove(s._domIndex, p);\n                    };\n                    q = Math.max(s._domIndex, q);\n                    s.receiveProps(t.props, l);\n                    s._domIndex = p;\n                }\n                 else {\n                    if (s) {\n                        this.enqueueUnmountChildByName(r, s);\n                        q = Math.max(s._domIndex, q);\n                    }\n                ;\n                    if (t) {\n                        this._renderedChildren[r] = t;\n                        var u = t.mountComponent((m + r), l);\n                        n = (n ? (n + u) : u);\n                        o++;\n                        t._domIndex = p;\n                    }\n                ;\n                }\n            ;\n                p = (t ? (p + 1) : p);\n            };\n            if (n) {\n                this.enqueueMarkupAt(n, (p - o));\n            };\n            for (var v in this._renderedChildren) {\n                if (!this._renderedChildren.hasOwnProperty(v)) {\n                    continue;\n                };\n                var w = this._renderedChildren[v];\n                if ((w && !k[v])) {\n                    this.enqueueUnmountChildByName(v, w);\n                };\n            };\n            this.processChildDOMOperationsQueue();\n        }\n    }, j = {\n        Mixin: i\n    };\n    e.exports = j;\n});\n__d(\"ReactTextComponent\", [\"ReactComponent\",\"ReactID\",\"escapeTextForBrowser\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\"), h = b(\"ReactID\"), i = b(\"escapeTextForBrowser\"), j = b(\"mixInto\"), k = function(l) {\n        this.construct({\n            text: l\n        });\n    };\n    j(k, g.Mixin);\n    j(k, {\n        mountComponent: function(l) {\n            g.Mixin.mountComponent.call(this, l);\n            return (((((((\"\\u003Cspan \" + h.ATTR_NAME) + \"=\\\"\") + l) + \"\\\"\\u003E\") + i(this.props.text)) + \"\\u003C/span\\u003E\"));\n        },\n        receiveProps: function(l, m) {\n            if ((l.text !== this.props.text)) {\n                this.props.text = l.text;\n                g.DOMIDOperations.updateTextContentByID(this._rootNodeID, l.text);\n            }\n        ;\n        }\n    });\n    e.exports = k;\n});\n__d(\"flattenChildren\", [\"ReactComponent\",\"ReactTextComponent\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\"), h = b(\"ReactTextComponent\"), i = b(\"throwIf\"), j = \"INVALID_CHILD\", k = (\"You have two children with identical keys. Make sure that you set the \" + \"\\\"key\\\" property to a unique value such as a row ID.\"), l = function(n, o, p) {\n        if (Array.isArray(o)) {\n            for (var q = 0; (q < o.length); q++) {\n                var r = o[q];\n                l(n, r, (((p + \"[\") + g.getKey(r, q)) + \"]\"));\n            };\n        }\n         else {\n            var s = typeof o, t = (p === \"\"), u = (t ? ((\"[\" + g.getKey(o, 0)) + \"]\") : p);\n            if ((((o === null) || (o === undefined)) || (s === \"boolean\"))) {\n                n[u] = null;\n            }\n             else if (o.mountComponentIntoNode) {\n                n[u] = o;\n            }\n             else if ((s === \"object\")) {\n                i((o && (o.nodeType === 1)), j);\n                for (var v in o) {\n                    if (o.hasOwnProperty(v)) {\n                        l(n, o[v], (((p + \"{\") + v) + \"}\"));\n                    };\n                };\n            }\n             else if ((s === \"string\")) {\n                n[u] = new h(o);\n            }\n             else if ((s === \"number\")) {\n                n[u] = new h((\"\" + o));\n            }\n            \n            \n            \n        ;\n        }\n    ;\n    };\n    function m(n) {\n        if (((n === null) || (n === undefined))) {\n            return n\n        };\n        var o = {\n        };\n        l(o, n, \"\");\n        return o;\n    };\n    e.exports = m;\n});\n__d(\"ReactNativeComponent\", [\"CSSPropertyOperations\",\"DOMPropertyOperations\",\"ReactComponent\",\"ReactEventEmitter\",\"ReactMultiChild\",\"ReactID\",\"escapeTextForBrowser\",\"flattenChildren\",\"invariant\",\"keyOf\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSPropertyOperations\"), h = b(\"DOMPropertyOperations\"), i = b(\"ReactComponent\"), j = b(\"ReactEventEmitter\"), k = b(\"ReactMultiChild\"), l = b(\"ReactID\"), m = b(\"escapeTextForBrowser\"), n = b(\"flattenChildren\"), o = b(\"invariant\"), p = b(\"keyOf\"), q = b(\"merge\"), r = b(\"mixInto\"), s = j.putListener, t = j.deleteListener, u = j.registrationNames, v = {\n        string: true,\n        number: true\n    }, w = p({\n        dangerouslySetInnerHTML: null\n    }), x = p({\n        style: null\n    });\n    function y(aa) {\n        if (!aa) {\n            return\n        };\n        o(((aa.children == null) || (aa.dangerouslySetInnerHTML == null)));\n        o(((aa.style == null) || (typeof aa.style === \"object\")));\n    };\n    function z(aa, ba) {\n        this._tagOpen = ((\"\\u003C\" + aa) + \" \");\n        this._tagClose = (ba ? \"\" : ((\"\\u003C/\" + aa) + \"\\u003E\"));\n        this.tagName = aa.toUpperCase();\n    };\n    z.Mixin = {\n        mountComponent: function(aa, ba) {\n            i.Mixin.mountComponent.call(this, aa, ba);\n            y(this.props);\n            return (((this._createOpenTagMarkup() + this._createContentMarkup(ba)) + this._tagClose));\n        },\n        _createOpenTagMarkup: function() {\n            var aa = this.props, ba = this._tagOpen;\n            for (var ca in aa) {\n                if (!aa.hasOwnProperty(ca)) {\n                    continue;\n                };\n                var da = aa[ca];\n                if ((da == null)) {\n                    continue;\n                };\n                if (u[ca]) {\n                    s(this._rootNodeID, ca, da);\n                }\n                 else {\n                    if ((ca === x)) {\n                        if (da) {\n                            da = aa.style = q(aa.style);\n                        };\n                        da = g.createMarkupForStyles(da);\n                    }\n                ;\n                    var ea = h.createMarkupForProperty(ca, da);\n                    if (ea) {\n                        ba += (\" \" + ea);\n                    };\n                }\n            ;\n            };\n            var fa = m(this._rootNodeID);\n            return (((((ba + \" \") + l.ATTR_NAME) + \"=\\\"\") + fa) + \"\\\"\\u003E\");\n        },\n        _createContentMarkup: function(aa) {\n            var ba = this.props.dangerouslySetInnerHTML;\n            if ((ba != null)) {\n                if ((ba.__html != null)) {\n                    return ba.__html\n                };\n            }\n             else {\n                var ca = (v[typeof this.props.children] ? this.props.children : null), da = ((ca != null) ? null : this.props.children);\n                if ((ca != null)) {\n                    return m(ca);\n                }\n                 else if ((da != null)) {\n                    return this.mountMultiChild(n(da), aa)\n                }\n            ;\n            }\n        ;\n            return \"\";\n        },\n        receiveProps: function(aa, ba) {\n            y(aa);\n            i.Mixin.receiveProps.call(this, aa, ba);\n        },\n        updateComponent: function(aa, ba) {\n            i.Mixin.updateComponent.call(this, aa, ba);\n            this._updateDOMProperties(ba);\n            this._updateDOMChildren(ba, aa);\n        },\n        _updateDOMProperties: function(aa) {\n            var ba = this.props, ca, da, ea;\n            for (ca in aa) {\n                if ((ba.hasOwnProperty(ca) || !aa.hasOwnProperty(ca))) {\n                    continue;\n                };\n                if ((ca === x)) {\n                    var fa = aa[ca];\n                    for (da in fa) {\n                        if (fa.hasOwnProperty(da)) {\n                            ea = (ea || {\n                            });\n                            ea[da] = \"\";\n                        }\n                    ;\n                    };\n                }\n                 else if ((ca === w)) {\n                    i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n                }\n                 else if (u[ca]) {\n                    t(this._rootNodeID, ca);\n                }\n                 else i.DOMIDOperations.deletePropertyByID(this._rootNodeID, ca);\n                \n                \n            ;\n            };\n            for (ca in ba) {\n                var ga = ba[ca], ha = aa[ca];\n                if ((!ba.hasOwnProperty(ca) || (ga === ha))) {\n                    continue;\n                };\n                if ((ca === x)) {\n                    if (ga) {\n                        ga = ba.style = q(ga);\n                    };\n                    if (ha) {\n                        for (da in ha) {\n                            if ((ha.hasOwnProperty(da) && !ga.hasOwnProperty(da))) {\n                                ea = (ea || {\n                                });\n                                ea[da] = \"\";\n                            }\n                        ;\n                        };\n                        for (da in ga) {\n                            if ((ga.hasOwnProperty(da) && (ha[da] !== ga[da]))) {\n                                ea = (ea || {\n                                });\n                                ea[da] = ga[da];\n                            }\n                        ;\n                        };\n                    }\n                     else ea = ga;\n                ;\n                }\n                 else if ((ca === w)) {\n                    var ia = (ha && ha.__html), ja = (ga && ga.__html);\n                    if ((ia !== ja)) {\n                        i.DOMIDOperations.updateInnerHTMLByID(this._rootNodeID, ga);\n                    };\n                }\n                 else if (u[ca]) {\n                    s(this._rootNodeID, ca, ga);\n                }\n                 else i.DOMIDOperations.updatePropertyByID(this._rootNodeID, ca, ga);\n                \n                \n            ;\n            };\n            if (ea) {\n                i.DOMIDOperations.updateStylesByID(this._rootNodeID, ea);\n            };\n        },\n        _updateDOMChildren: function(aa, ba) {\n            var ca = this.props, da = (v[typeof aa.children] ? aa.children : null), ea = (v[typeof ca.children] ? ca.children : null), fa = ((da != null) ? null : aa.children), ga = ((ea != null) ? null : ca.children);\n            if ((ea != null)) {\n                var ha = ((fa != null) && (ga == null));\n                if (ha) {\n                    this.updateMultiChild(null, ba);\n                };\n                if ((da !== ea)) {\n                    i.DOMIDOperations.updateTextContentByID(this._rootNodeID, (\"\" + ea));\n                };\n            }\n             else {\n                var ia = ((da != null) && (ea == null));\n                if (ia) {\n                    i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n                };\n                this.updateMultiChild(n(ca.children), ba);\n            }\n        ;\n        },\n        unmountComponent: function() {\n            j.deleteAllListeners(this._rootNodeID);\n            i.Mixin.unmountComponent.call(this);\n            this.unmountMultiChild();\n        }\n    };\n    r(z, i.Mixin);\n    r(z, z.Mixin);\n    r(z, k.Mixin);\n    e.exports = z;\n});\n__d(\"objMapKeyVal\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        if (!h) {\n            return null\n        };\n        var k = 0, l = {\n        };\n        for (var m in h) {\n            if (h.hasOwnProperty(m)) {\n                l[m] = i.call(j, m, h[m], k++);\n            };\n        };\n        return l;\n    };\n    e.exports = g;\n});\n__d(\"ReactDOM\", [\"ReactNativeComponent\",\"mergeInto\",\"objMapKeyVal\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactNativeComponent\"), h = b(\"mergeInto\"), i = b(\"objMapKeyVal\");\n    function j(m, n) {\n        var o = function() {\n        \n        };\n        o.prototype = new g(m, n);\n        o.prototype.constructor = o;\n        var p = function(q, r) {\n            var s = new o();\n            s.construct.apply(s, arguments);\n            return s;\n        };\n        p.componentConstructor = o;\n        return p;\n    };\n    var k = i({\n        a: false,\n        abbr: false,\n        address: false,\n        audio: false,\n        b: false,\n        blockquote: false,\n        body: false,\n        br: true,\n        button: false,\n        code: false,\n        col: true,\n        colgroup: false,\n        dd: false,\n        div: false,\n        section: false,\n        dl: false,\n        dt: false,\n        em: false,\n        embed: true,\n        fieldset: false,\n        figcaption: false,\n        figure: false,\n        footer: false,\n        form: false,\n        h1: false,\n        h2: false,\n        h3: false,\n        h4: false,\n        h5: false,\n        h6: false,\n        header: false,\n        hr: true,\n        i: false,\n        iframe: false,\n        img: true,\n        input: true,\n        label: false,\n        legend: false,\n        li: false,\n        line: false,\n        nav: false,\n        object: false,\n        ol: false,\n        optgroup: false,\n        option: false,\n        p: false,\n        param: true,\n        pre: false,\n        select: false,\n        small: false,\n        source: false,\n        span: false,\n        sub: false,\n        sup: false,\n        strong: false,\n        table: false,\n        tbody: false,\n        td: false,\n        textarea: false,\n        tfoot: false,\n        th: false,\n        thead: false,\n        time: false,\n        title: false,\n        tr: false,\n        u: false,\n        ul: false,\n        video: false,\n        wbr: false,\n        circle: false,\n        g: false,\n        path: false,\n        polyline: false,\n        rect: false,\n        svg: false,\n        text: false\n    }, j), l = {\n        injectComponentClasses: function(m) {\n            h(k, m);\n        }\n    };\n    k.injection = l;\n    e.exports = k;\n});\n__d(\"ReactProps\", [\"createObjectFrom\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"createObjectFrom\"), h = b(\"invariant\"), i = {\n        array: k(\"array\"),\n        bool: k(\"boolean\"),\n        func: k(\"function\"),\n        number: k(\"number\"),\n        object: k(\"object\"),\n        string: k(\"string\"),\n        oneOf: l,\n        instanceOf: m\n    }, j = \"\\u003C\\u003Canonymous\\u003E\\u003E\";\n    function k(o) {\n        function p(q, r, s) {\n            var t = typeof q;\n            if (((t === \"object\") && Array.isArray(q))) {\n                t = \"array\";\n            };\n            h((t === o));\n        };\n        return n(p);\n    };\n    function l(o) {\n        var p = g(o);\n        function q(r, s, t) {\n            h(p[r]);\n        };\n        return n(q);\n    };\n    function m(o) {\n        function p(q, r, s) {\n            h((q instanceof o));\n        };\n        return n(p);\n    };\n    function n(o) {\n        function p(q) {\n            function r(s, t, u) {\n                var v = s[t];\n                if ((v != null)) {\n                    o(v, t, (u || j));\n                }\n                 else h(!q);\n            ;\n            };\n            if (!q) {\n                r.isRequired = p(true);\n            };\n            return r;\n        };\n        return p(false);\n    };\n    e.exports = i;\n});\n__d(\"ReactServerRendering\", [\"ReactReconcileTransaction\",\"ReactInstanceHandles\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactReconcileTransaction\"), h = b(\"ReactInstanceHandles\");\n    function i(j, k) {\n        var l = h.createReactRootID(), m = g.getPooled();\n        m.reinitializeTransaction();\n        try {\n            m.perform(function() {\n                k(j.mountComponent(l, m));\n            }, null);\n        } finally {\n            g.release(m);\n        };\n    };\n    e.exports = {\n        renderComponentToString: i\n    };\n});\n__d(\"ReactDOMForm\", [\"ReactCompositeComponent\",\"ReactDOM\",\"ReactEventEmitter\",\"EventConstants\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactCompositeComponent\"), h = b(\"ReactDOM\"), i = b(\"ReactEventEmitter\"), j = b(\"EventConstants\"), k = h.form, l = g.createClass({\n        render: function() {\n            return this.transferPropsTo(k(null, this.props.children));\n        },\n        componentDidMount: function(m) {\n            i.trapBubbledEvent(j.topLevelTypes.topSubmit, \"submit\", m);\n        }\n    });\n    e.exports = l;\n});\n__d(\"ReactDOMInput\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"merge\"), k = i.input, l = h.createClass({\n        getInitialState: function() {\n            return {\n                checked: (this.props.defaultChecked || false),\n                value: (this.props.defaultValue || \"\")\n            };\n        },\n        shouldComponentUpdate: function() {\n            return !this._isChanging;\n        },\n        getChecked: function() {\n            return ((this.props.checked != null) ? this.props.checked : this.state.checked);\n        },\n        getValue: function() {\n            return ((this.props.value != null) ? this.props.value : this.state.value);\n        },\n        render: function() {\n            var m = j(this.props);\n            m.checked = this.getChecked();\n            m.value = this.getValue();\n            m.onChange = this.handleChange;\n            return k(m, this.props.children);\n        },\n        componentDidUpdate: function(m, n, o) {\n            if ((this.props.checked != null)) {\n                g.setValueForProperty(o, \"checked\", (this.props.checked || false));\n            };\n            if ((this.props.value != null)) {\n                g.setValueForProperty(o, \"value\", (this.props.value || \"\"));\n            };\n        },\n        handleChange: h.autoBind(function(event) {\n            var m;\n            if (this.props.onChange) {\n                this._isChanging = true;\n                m = this.props.onChange(event);\n                this._isChanging = false;\n            }\n        ;\n            this.setState({\n                checked: event.target.checked,\n                value: event.target.value\n            });\n            return m;\n        })\n    });\n    e.exports = l;\n});\n__d(\"ReactDOMTextarea\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"invariant\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"invariant\"), k = b(\"merge\"), l = i.textarea, m = {\n        string: true,\n        number: true\n    }, n = h.createClass({\n        getInitialState: function() {\n            var o = this.props.defaultValue, p = this.props.children;\n            if ((p != null)) {\n                j((o == null));\n                if (Array.isArray(p)) {\n                    j((p.length <= 1));\n                    p = p[0];\n                }\n            ;\n                j(m[typeof p]);\n                o = (\"\" + p);\n            }\n        ;\n            o = (o || \"\");\n            return {\n                initialValue: ((this.props.value != null) ? this.props.value : o),\n                value: o\n            };\n        },\n        shouldComponentUpdate: function() {\n            return !this._isChanging;\n        },\n        getValue: function() {\n            return ((this.props.value != null) ? this.props.value : this.state.value);\n        },\n        render: function() {\n            var o = k(this.props);\n            j((o.dangerouslySetInnerHTML == null));\n            o.value = this.getValue();\n            o.onChange = this.handleChange;\n            return l(o, this.state.initialValue);\n        },\n        componentDidUpdate: function(o, p, q) {\n            if ((this.props.value != null)) {\n                g.setValueForProperty(q, \"value\", (this.props.value || \"\"));\n            };\n        },\n        handleChange: h.autoBind(function(event) {\n            var o;\n            if (this.props.onChange) {\n                this._isChanging = true;\n                o = this.props.onChange(event);\n                this._isChanging = false;\n            }\n        ;\n            this.setState({\n                value: event.target.value\n            });\n            return o;\n        })\n    });\n    e.exports = n;\n});\n__d(\"DefaultDOMPropertyConfig\", [\"DOMProperty\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMProperty\"), h = g.injection.MUST_USE_ATTRIBUTE, i = g.injection.MUST_USE_PROPERTY, j = g.injection.HAS_BOOLEAN_VALUE, k = g.injection.HAS_SIDE_EFFECTS, l = {\n        isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n        Properties: {\n            accept: null,\n            action: null,\n            ajaxify: h,\n            allowFullScreen: (h | j),\n            alt: null,\n            autoComplete: null,\n            autoplay: j,\n            cellPadding: null,\n            cellSpacing: null,\n            checked: (i | j),\n            className: i,\n            colSpan: null,\n            contentEditable: null,\n            controls: (i | j),\n            data: null,\n            dir: null,\n            disabled: (i | j),\n            draggable: null,\n            enctype: null,\n            height: h,\n            hidden: (h | j),\n            href: null,\n            htmlFor: null,\n            id: i,\n            max: null,\n            method: null,\n            min: null,\n            multiple: (i | j),\n            name: null,\n            poster: null,\n            preload: null,\n            placeholder: null,\n            rel: null,\n            required: j,\n            role: h,\n            scrollLeft: i,\n            scrollTop: i,\n            selected: (i | j),\n            spellCheck: null,\n            src: null,\n            step: null,\n            style: null,\n            tabIndex: null,\n            target: null,\n            title: null,\n            type: null,\n            value: (i | k),\n            width: h,\n            wmode: h,\n            cx: i,\n            cy: i,\n            d: i,\n            fill: i,\n            fx: i,\n            fy: i,\n            points: i,\n            r: i,\n            stroke: i,\n            strokeLinecap: i,\n            strokeWidth: i,\n            transform: i,\n            x: i,\n            x1: i,\n            x2: i,\n            version: i,\n            viewBox: i,\n            y: i,\n            y1: i,\n            y2: i,\n            spreadMethod: i,\n            offset: i,\n            stopColor: i,\n            stopOpacity: i,\n            gradientUnits: i,\n            gradientTransform: i\n        },\n        DOMAttributeNames: {\n            className: \"class\",\n            htmlFor: \"for\",\n            strokeLinecap: \"stroke-linecap\",\n            strokeWidth: \"stroke-width\",\n            stopColor: \"stop-color\",\n            stopOpacity: \"stop-opacity\"\n        },\n        DOMPropertyNames: {\n            autoComplete: \"autocomplete\",\n            spellCheck: \"spellcheck\"\n        },\n        DOMMutationMethods: {\n            className: function(m, n) {\n                m.className = (n || \"\");\n            }\n        }\n    };\n    e.exports = l;\n});\n__d(\"DefaultEventPluginOrder\", [\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyOf\"), h = [g({\n        ResponderEventPlugin: null\n    }),g({\n        SimpleEventPlugin: null\n    }),g({\n        TapEventPlugin: null\n    }),g({\n        EnterLeaveEventPlugin: null\n    }),g({\n        ChangeEventPlugin: null\n    }),g({\n        AnalyticsEventPlugin: null\n    }),];\n    e.exports = h;\n});\n__d(\"SyntheticEvent\", [\"PooledClass\",\"emptyFunction\",\"getEventTarget\",\"merge\",\"mergeInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"PooledClass\"), h = b(\"emptyFunction\"), i = b(\"getEventTarget\"), j = b(\"merge\"), k = b(\"mergeInto\"), l = {\n        type: null,\n        target: i,\n        currentTarget: null,\n        eventPhase: null,\n        bubbles: null,\n        cancelable: null,\n        timeStamp: function(event) {\n            return (event.timeStamp || Date.now());\n        },\n        defaultPrevented: null,\n        isTrusted: null\n    };\n    function m(n, o, p) {\n        this.dispatchConfig = n;\n        this.dispatchMarker = o;\n        this.nativeEvent = p;\n        var q = this.constructor.Interface;\n        for (var r in q) {\n            var s = q[r];\n            if (s) {\n                this[r] = s(p);\n            }\n             else this[r] = p[r];\n        ;\n        };\n        if ((p.defaultPrevented || (p.returnValue === false))) {\n            this.isDefaultPrevented = h.thatReturnsTrue;\n        }\n         else this.isDefaultPrevented = h.thatReturnsFalse;\n    ;\n        this.isPropagationStopped = h.thatReturnsFalse;\n    };\n    k(m.prototype, {\n        preventDefault: function() {\n            this.defaultPrevented = true;\n            var event = this.nativeEvent;\n            (event.preventDefault ? event.preventDefault() : event.returnValue = false);\n            this.isDefaultPrevented = h.thatReturnsTrue;\n        },\n        stopPropagation: function() {\n            var event = this.nativeEvent;\n            (event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true);\n            this.isPropagationStopped = h.thatReturnsTrue;\n        },\n        persist: function() {\n            this.isPersistent = h.thatReturnsTrue;\n        },\n        isPersistent: h.thatReturnsFalse,\n        destructor: function() {\n            var n = this.constructor.Interface;\n            for (var o in n) {\n                this[o] = null;;\n            };\n            this.dispatchConfig = null;\n            this.dispatchMarker = null;\n            this.nativeEvent = null;\n        }\n    });\n    m.Interface = l;\n    m.augmentClass = function(n, o) {\n        var p = this, q = Object.create(p.prototype);\n        k(q, n.prototype);\n        n.prototype = q;\n        n.prototype.constructor = n;\n        n.Interface = j(p.Interface, o);\n        n.augmentClass = p.augmentClass;\n        g.addPoolingTo(n, g.threeArgumentPooler);\n    };\n    g.addPoolingTo(m, g.threeArgumentPooler);\n    e.exports = m;\n});\n__d(\"SyntheticUIEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticEvent\"), h = {\n        view: null,\n        detail: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticMouseEvent\", [\"SyntheticUIEvent\",\"ViewportMetrics\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = b(\"ViewportMetrics\"), i = {\n        screenX: null,\n        screenY: null,\n        clientX: null,\n        clientY: null,\n        ctrlKey: null,\n        shiftKey: null,\n        altKey: null,\n        metaKey: null,\n        button: function(event) {\n            var k = event.button;\n            if ((\"which\" in event)) {\n                return k\n            };\n            return ((k === 2) ? 2 : ((k === 4) ? 1 : 0));\n        },\n        buttons: null,\n        relatedTarget: function(event) {\n            return (event.relatedTarget || (((event.fromElement === event.srcElement) ? event.toElement : event.fromElement)));\n        },\n        pageX: function(event) {\n            return ((\"pageX\" in event) ? event.pageX : (event.clientX + h.currentScrollLeft));\n        },\n        pageY: function(event) {\n            return ((\"pageY\" in event) ? event.pageY : (event.clientY + h.currentScrollTop));\n        }\n    };\n    function j(k, l, m) {\n        g.call(this, k, l, m);\n    };\n    g.augmentClass(j, i);\n    e.exports = j;\n});\n__d(\"EnterLeaveEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"ExecutionEnvironment\",\"ReactInstanceHandles\",\"SyntheticMouseEvent\",\"ReactID\",\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"ExecutionEnvironment\"), j = b(\"ReactInstanceHandles\"), k = b(\"SyntheticMouseEvent\"), l = b(\"ReactID\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = j.getFirstReactDOM, p = {\n        mouseEnter: {\n            registrationName: m({\n                onMouseEnter: null\n            })\n        },\n        mouseLeave: {\n            registrationName: m({\n                onMouseLeave: null\n            })\n        }\n    }, q = {\n        eventTypes: p,\n        extractEvents: function(r, s, t, u) {\n            if (((r === n.topMouseOver) && ((u.relatedTarget || u.fromElement)))) {\n                return null\n            };\n            if (((r !== n.topMouseOut) && (r !== n.topMouseOver))) {\n                return null\n            };\n            var v, w;\n            if ((r === n.topMouseOut)) {\n                v = s;\n                w = (o((u.relatedTarget || u.toElement)) || i.global);\n            }\n             else {\n                v = i.global;\n                w = s;\n            }\n        ;\n            if ((v === w)) {\n                return null\n            };\n            var x = (v ? l.getID(v) : \"\"), y = (w ? l.getID(w) : \"\"), z = k.getPooled(p.mouseLeave, x, u), aa = k.getPooled(p.mouseEnter, y, u);\n            h.accumulateEnterLeaveDispatches(z, aa, x, y);\n            return [z,aa,];\n        }\n    };\n    e.exports = q;\n});\n__d(\"ChangeEventPlugin\", [\"EventConstants\",\"EventPluginHub\",\"EventPropagators\",\"ExecutionEnvironment\",\"SyntheticEvent\",\"isEventSupported\",\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventPluginHub\"), i = b(\"EventPropagators\"), j = b(\"ExecutionEnvironment\"), k = b(\"SyntheticEvent\"), l = b(\"isEventSupported\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = {\n        change: {\n            phasedRegistrationNames: {\n                bubbled: m({\n                    onChange: null\n                }),\n                captured: m({\n                    onChangeCapture: null\n                })\n            }\n        }\n    }, p = null, q = null, r = null, s = null;\n    function t(na) {\n        return (((na.nodeName === \"SELECT\") || (((na.nodeName === \"INPUT\") && (na.type === \"file\")))));\n    };\n    var u = false;\n    if (j.canUseDOM) {\n        u = (l(\"change\") && ((!((\"documentMode\" in document)) || (document.documentMode > 8))));\n    };\n    function v(na) {\n        var event = k.getPooled(o.change, q, na);\n        i.accumulateTwoPhaseDispatches(event);\n        h.enqueueEvents(event);\n        h.processEventQueue();\n    };\n    function w(na, oa) {\n        p = na;\n        q = oa;\n        p.attachEvent(\"onchange\", v);\n    };\n    function x() {\n        if (!p) {\n            return\n        };\n        p.detachEvent(\"onchange\", v);\n        p = null;\n        q = null;\n    };\n    function y(na, oa, pa) {\n        if ((na === n.topChange)) {\n            return pa\n        };\n    };\n    function z(na, oa, pa) {\n        if ((na === n.topFocus)) {\n            x();\n            w(oa, pa);\n        }\n         else if ((na === n.topBlur)) {\n            x();\n        }\n    ;\n    };\n    var aa = false;\n    if (j.canUseDOM) {\n        aa = (l(\"input\") && ((!((\"documentMode\" in document)) || (document.documentMode > 9))));\n    };\n    var ba = {\n        color: true,\n        date: true,\n        datetime: true,\n        \"datetime-local\": true,\n        email: true,\n        month: true,\n        number: true,\n        password: true,\n        range: true,\n        search: true,\n        tel: true,\n        text: true,\n        time: true,\n        url: true,\n        week: true\n    };\n    function ca(na) {\n        return (((((na.nodeName === \"INPUT\") && ba[na.type])) || (na.nodeName === \"TEXTAREA\")));\n    };\n    var da = {\n        get: function() {\n            return s.get.call(this);\n        },\n        set: function(na) {\n            r = na;\n            s.set.call(this, na);\n        }\n    };\n    function ea(na, oa) {\n        p = na;\n        q = oa;\n        r = na.value;\n        s = Object.getOwnPropertyDescriptor(na.constructor.prototype, \"value\");\n        Object.defineProperty(p, \"value\", da);\n        p.attachEvent(\"onpropertychange\", ga);\n    };\n    function fa() {\n        if (!p) {\n            return\n        };\n        delete p.value;\n        p.detachEvent(\"onpropertychange\", ga);\n        p = null;\n        q = null;\n        r = null;\n        s = null;\n    };\n    function ga(na) {\n        if ((na.propertyName !== \"value\")) {\n            return\n        };\n        var oa = na.srcElement.value;\n        if ((oa === r)) {\n            return\n        };\n        r = oa;\n        v(na);\n    };\n    function ha(na, oa, pa) {\n        if ((na === n.topInput)) {\n            return pa\n        };\n    };\n    function ia(na, oa, pa) {\n        if ((na === n.topFocus)) {\n            fa();\n            ea(oa, pa);\n        }\n         else if ((na === n.topBlur)) {\n            fa();\n        }\n    ;\n    };\n    function ja(na, oa, pa) {\n        if ((((na === n.topSelectionChange) || (na === n.topKeyUp)) || (na === n.topKeyDown))) {\n            if ((p && (p.value !== r))) {\n                r = p.value;\n                return q;\n            }\n        \n        };\n    };\n    function ka(na) {\n        return (((na.nodeName === \"INPUT\") && (((na.type === \"checkbox\") || (na.type === \"radio\")))));\n    };\n    function la(na, oa, pa) {\n        if ((na === n.topClick)) {\n            return pa\n        };\n    };\n    var ma = {\n        eventTypes: o,\n        extractEvents: function(na, oa, pa, qa) {\n            var ra, sa;\n            if (t(oa)) {\n                if (u) {\n                    ra = y;\n                }\n                 else sa = z;\n            ;\n            }\n             else if (ca(oa)) {\n                if (aa) {\n                    ra = ha;\n                }\n                 else {\n                    ra = ja;\n                    sa = ia;\n                }\n            ;\n            }\n             else if (ka(oa)) {\n                ra = la;\n            }\n            \n        ;\n            if (ra) {\n                var ta = ra(na, oa, pa);\n                if (ta) {\n                    var event = k.getPooled(o.change, ta, qa);\n                    i.accumulateTwoPhaseDispatches(event);\n                    return event;\n                }\n            ;\n            }\n        ;\n            if (sa) {\n                sa(na, oa, pa);\n            };\n        }\n    };\n    e.exports = ma;\n});\n__d(\"SyntheticFocusEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = {\n        relatedTarget: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticKeyboardEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = {\n        char: null,\n        key: null,\n        location: null,\n        ctrlKey: null,\n        shiftKey: null,\n        altKey: null,\n        metaKey: null,\n        repeat: null,\n        locale: null,\n        charCode: null,\n        keyCode: null,\n        which: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticMutationEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticEvent\"), h = {\n        relatedNode: null,\n        prevValue: null,\n        newValue: null,\n        attrName: null,\n        attrChange: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticTouchEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = {\n        touches: null,\n        targetTouches: null,\n        changedTouches: null,\n        altKey: null,\n        metaKey: null,\n        ctrlKey: null,\n        shiftKey: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticWheelEvent\", [\"SyntheticMouseEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticMouseEvent\"), h = {\n        deltaX: function(event) {\n            return (((\"deltaX\" in event) ? event.deltaX : ((\"wheelDeltaX\" in event) ? -event.wheelDeltaX : 0)));\n        },\n        deltaY: function(event) {\n            return (((\"deltaY\" in event) ? -event.deltaY : ((\"wheelDeltaY\" in event) ? event.wheelDeltaY : ((\"wheelDelta\" in event) ? event.wheelData : 0))));\n        },\n        deltaZ: null,\n        deltaMode: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SimpleEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"SyntheticEvent\",\"SyntheticFocusEvent\",\"SyntheticKeyboardEvent\",\"SyntheticMouseEvent\",\"SyntheticMutationEvent\",\"SyntheticTouchEvent\",\"SyntheticUIEvent\",\"SyntheticWheelEvent\",\"invariant\",\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"SyntheticEvent\"), j = b(\"SyntheticFocusEvent\"), k = b(\"SyntheticKeyboardEvent\"), l = b(\"SyntheticMouseEvent\"), m = b(\"SyntheticMutationEvent\"), n = b(\"SyntheticTouchEvent\"), o = b(\"SyntheticUIEvent\"), p = b(\"SyntheticWheelEvent\"), q = b(\"invariant\"), r = b(\"keyOf\"), s = g.topLevelTypes, t = {\n        blur: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onBlur: true\n                }),\n                captured: r({\n                    onBlurCapture: true\n                })\n            }\n        },\n        click: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onClick: true\n                }),\n                captured: r({\n                    onClickCapture: true\n                })\n            }\n        },\n        doubleClick: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDoubleClick: true\n                }),\n                captured: r({\n                    onDoubleClickCapture: true\n                })\n            }\n        },\n        drag: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDrag: true\n                }),\n                captured: r({\n                    onDragCapture: true\n                })\n            }\n        },\n        dragEnd: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragEnd: true\n                }),\n                captured: r({\n                    onDragEndCapture: true\n                })\n            }\n        },\n        dragEnter: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragEnter: true\n                }),\n                captured: r({\n                    onDragEnterCapture: true\n                })\n            }\n        },\n        dragExit: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragExit: true\n                }),\n                captured: r({\n                    onDragExitCapture: true\n                })\n            }\n        },\n        dragLeave: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragLeave: true\n                }),\n                captured: r({\n                    onDragLeaveCapture: true\n                })\n            }\n        },\n        dragOver: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragOver: true\n                }),\n                captured: r({\n                    onDragOverCapture: true\n                })\n            }\n        },\n        dragStart: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragStart: true\n                }),\n                captured: r({\n                    onDragStartCapture: true\n                })\n            }\n        },\n        drop: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDrop: true\n                }),\n                captured: r({\n                    onDropCapture: true\n                })\n            }\n        },\n        DOMCharacterDataModified: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDOMCharacterDataModified: true\n                }),\n                captured: r({\n                    onDOMCharacterDataModifiedCapture: true\n                })\n            }\n        },\n        focus: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onFocus: true\n                }),\n                captured: r({\n                    onFocusCapture: true\n                })\n            }\n        },\n        input: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onInput: true\n                }),\n                captured: r({\n                    onInputCapture: true\n                })\n            }\n        },\n        keyDown: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onKeyDown: true\n                }),\n                captured: r({\n                    onKeyDownCapture: true\n                })\n            }\n        },\n        keyPress: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onKeyPress: true\n                }),\n                captured: r({\n                    onKeyPressCapture: true\n                })\n            }\n        },\n        keyUp: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onKeyUp: true\n                }),\n                captured: r({\n                    onKeyUpCapture: true\n                })\n            }\n        },\n        mouseDown: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onMouseDown: true\n                }),\n                captured: r({\n                    onMouseDownCapture: true\n                })\n            }\n        },\n        mouseMove: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onMouseMove: true\n                }),\n                captured: r({\n                    onMouseMoveCapture: true\n                })\n            }\n        },\n        mouseUp: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onMouseUp: true\n                }),\n                captured: r({\n                    onMouseUpCapture: true\n                })\n            }\n        },\n        scroll: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onScroll: true\n                }),\n                captured: r({\n                    onScrollCapture: true\n                })\n            }\n        },\n        submit: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onSubmit: true\n                }),\n                captured: r({\n                    onSubmitCapture: true\n                })\n            }\n        },\n        touchCancel: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchCancel: true\n                }),\n                captured: r({\n                    onTouchCancelCapture: true\n                })\n            }\n        },\n        touchEnd: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchEnd: true\n                }),\n                captured: r({\n                    onTouchEndCapture: true\n                })\n            }\n        },\n        touchMove: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchMove: true\n                }),\n                captured: r({\n                    onTouchMoveCapture: true\n                })\n            }\n        },\n        touchStart: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchStart: true\n                }),\n                captured: r({\n                    onTouchStartCapture: true\n                })\n            }\n        },\n        wheel: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onWheel: true\n                }),\n                captured: r({\n                    onWheelCapture: true\n                })\n            }\n        }\n    }, u = {\n        topBlur: t.blur,\n        topClick: t.click,\n        topDoubleClick: t.doubleClick,\n        topDOMCharacterDataModified: t.DOMCharacterDataModified,\n        topDrag: t.drag,\n        topDragEnd: t.dragEnd,\n        topDragEnter: t.dragEnter,\n        topDragExit: t.dragExit,\n        topDragLeave: t.dragLeave,\n        topDragOver: t.dragOver,\n        topDragStart: t.dragStart,\n        topDrop: t.drop,\n        topFocus: t.focus,\n        topInput: t.input,\n        topKeyDown: t.keyDown,\n        topKeyPress: t.keyPress,\n        topKeyUp: t.keyUp,\n        topMouseDown: t.mouseDown,\n        topMouseMove: t.mouseMove,\n        topMouseUp: t.mouseUp,\n        topScroll: t.scroll,\n        topSubmit: t.submit,\n        topTouchCancel: t.touchCancel,\n        topTouchEnd: t.touchEnd,\n        topTouchMove: t.touchMove,\n        topTouchStart: t.touchStart,\n        topWheel: t.wheel\n    }, v = {\n        eventTypes: t,\n        executeDispatch: function(event, w, x) {\n            var y = w(event, x);\n            if ((y === false)) {\n                event.stopPropagation();\n                event.preventDefault();\n            }\n        ;\n        },\n        extractEvents: function(w, x, y, z) {\n            var aa = u[w];\n            if (!aa) {\n                return null\n            };\n            var ba;\n            switch (w) {\n              case s.topInput:\n            \n              case s.topSubmit:\n                ba = i;\n                break;\n              case s.topKeyDown:\n            \n              case s.topKeyPress:\n            \n              case s.topKeyUp:\n                ba = k;\n                break;\n              case s.topBlur:\n            \n              case s.topFocus:\n                ba = j;\n                break;\n              case s.topClick:\n            \n              case s.topDoubleClick:\n            \n              case s.topDrag:\n            \n              case s.topDragEnd:\n            \n              case s.topDragEnter:\n            \n              case s.topDragExit:\n            \n              case s.topDragLeave:\n            \n              case s.topDragOver:\n            \n              case s.topDragStart:\n            \n              case s.topDrop:\n            \n              case s.topMouseDown:\n            \n              case s.topMouseMove:\n            \n              case s.topMouseUp:\n                ba = l;\n                break;\n              case s.topDOMCharacterDataModified:\n                ba = m;\n                break;\n              case s.topTouchCancel:\n            \n              case s.topTouchEnd:\n            \n              case s.topTouchMove:\n            \n              case s.topTouchStart:\n                ba = n;\n                break;\n              case s.topScroll:\n                ba = o;\n                break;\n              case s.topWheel:\n                ba = p;\n                break;\n            };\n            q(ba);\n            var event = ba.getPooled(aa, y, z);\n            h.accumulateTwoPhaseDispatches(event);\n            return event;\n        }\n    };\n    e.exports = v;\n});\n__d(\"ReactDefaultInjection\", [\"ReactDOM\",\"ReactDOMForm\",\"ReactDOMInput\",\"ReactDOMTextarea\",\"DefaultDOMPropertyConfig\",\"DOMProperty\",\"DefaultEventPluginOrder\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"EventPluginHub\",\"ReactInstanceHandles\",\"SimpleEventPlugin\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactDOM\"), h = b(\"ReactDOMForm\"), i = b(\"ReactDOMInput\"), j = b(\"ReactDOMTextarea\"), k = b(\"DefaultDOMPropertyConfig\"), l = b(\"DOMProperty\"), m = b(\"DefaultEventPluginOrder\"), n = b(\"EnterLeaveEventPlugin\"), o = b(\"ChangeEventPlugin\"), p = b(\"EventPluginHub\"), q = b(\"ReactInstanceHandles\"), r = b(\"SimpleEventPlugin\");\n    function s() {\n        p.injection.injectEventPluginOrder(m);\n        p.injection.injectInstanceHandle(q);\n        p.injection.injectEventPluginsByName({\n            SimpleEventPlugin: r,\n            EnterLeaveEventPlugin: n,\n            ChangeEventPlugin: o\n        });\n        g.injection.injectComponentClasses({\n            form: h,\n            input: i,\n            textarea: j\n        });\n        l.injection.injectDOMPropertyConfig(k);\n    };\n    e.exports = {\n        inject: s\n    };\n});\n__d(\"React\", [\"ReactCompositeComponent\",\"ReactComponent\",\"ReactDOM\",\"ReactMount\",\"ReactProps\",\"ReactServerRendering\",\"ReactDefaultInjection\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactCompositeComponent\"), h = b(\"ReactComponent\"), i = b(\"ReactDOM\"), j = b(\"ReactMount\"), k = b(\"ReactProps\"), l = b(\"ReactServerRendering\"), m = b(\"ReactDefaultInjection\");\n    m.inject();\n    var n = {\n        DOM: i,\n        Props: k,\n        initializeTouchEvents: function(o) {\n            j.useTouchEvents = o;\n        },\n        autoBind: g.autoBind,\n        createClass: g.createClass,\n        constructAndRenderComponent: j.constructAndRenderComponent,\n        constructAndRenderComponentByID: j.constructAndRenderComponentByID,\n        renderComponent: j.renderComponent,\n        renderComponentToString: l.renderComponentToString,\n        unmountAndReleaseReactRootNode: j.unmountAndReleaseReactRootNode,\n        isValidComponent: h.isValidComponent\n    };\n    e.exports = n;\n});\n__d(\"TrackingNodes\", [], function(a, b, c, d, e, f) {\n    var g = {\n        types: {\n            USER_NAME: 2,\n            LIKE_LINK: 5,\n            UNLIKE_LINK: 6,\n            ATTACHMENT: 15,\n            SHARE_LINK: 17,\n            USER_MESSAGE: 18,\n            SOURCE: 21,\n            BLINGBOX: 22,\n            VIEW_ALL_COMMENTS: 24,\n            COMMENT: 25,\n            COMMENT_LINK: 26,\n            SMALL_ACTOR_PHOTO: 27,\n            XBUTTON: 29,\n            HIDE_LINK: 30,\n            REPORT_SPAM_LINK: 31,\n            HIDE_ALL_LINK: 32,\n            ADD_COMMENT_BOX: 34,\n            UFI: 36,\n            DROPDOWN_BUTTON: 55,\n            UNHIDE_LINK: 71\n        },\n        BASE_CODE_START: 58,\n        BASE_CODE_END: 126,\n        BASE_CODE_SIZE: 69,\n        PREFIX_CODE_START: 42,\n        PREFIX_CODE_END: 47,\n        PREFIX_CODE_SIZE: 6,\n        encodeTrackingInfo: function(h, i) {\n            var j = (((h - 1)) % g.BASE_CODE_SIZE), k = parseInt((((h - 1)) / g.BASE_CODE_SIZE), 10);\n            if (((h < 1) || (k > g.PREFIX_CODE_SIZE))) {\n                throw Error((\"Invalid tracking node: \" + h))\n            };\n            var l = \"\";\n            if ((k > 0)) {\n                l += String.fromCharCode(((k - 1) + g.PREFIX_CODE_START));\n            };\n            l += String.fromCharCode((j + g.BASE_CODE_START));\n            if (((typeof i != \"undefined\") && (i > 0))) {\n                l += String.fromCharCode(((48 + Math.min(i, 10)) - 1));\n            };\n            return l;\n        },\n        decodeTN: function(h) {\n            if ((h.length === 0)) {\n                return [0,]\n            };\n            var i = h.charCodeAt(0), j = 1, k, l;\n            if (((i >= g.PREFIX_CODE_START) && (i <= g.PREFIX_CODE_END))) {\n                if ((h.length == 1)) {\n                    return [0,]\n                };\n                l = ((i - g.PREFIX_CODE_START) + 1);\n                k = h.charCodeAt(1);\n                j = 2;\n            }\n             else {\n                l = 0;\n                k = i;\n            }\n        ;\n            if (((k < g.BASE_CODE_START) || (k > g.BASE_CODE_END))) {\n                return [0,]\n            };\n            var m = (((l * g.BASE_CODE_SIZE) + ((k - g.BASE_CODE_START))) + 1);\n            if (((h.length > j) && (((h.charAt(j) >= \"0\") && (h.charAt(j) <= \"9\"))))) {\n                return [(j + 1),[m,(parseInt(h.charAt(j), 10) + 1),],]\n            };\n            return [j,[m,],];\n        },\n        parseTrackingNodeString: function(h) {\n            var i = [];\n            while ((h.length > 0)) {\n                var j = g.decodeTN(h);\n                if ((j.length == 1)) {\n                    return []\n                };\n                i.push(j[1]);\n                h = h.substring(j[0]);\n            };\n            return i;\n        },\n        getTrackingInfo: function(h, i) {\n            return ((\"{\\\"tn\\\":\\\"\" + g.encodeTrackingInfo(h, i)) + \"\\\"}\");\n        }\n    };\n    e.exports = g;\n});\n__d(\"NumberFormat\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = /(\\d{3})(?=\\d)/g, i = 10000, j = function(l) {\n        return ((\"\" + l)).split(\"\").reverse().join(\"\");\n    }, k = {\n        formatIntegerWithDelimiter: function(l, m) {\n            if (((((g.locale == \"nb_NO\") || (g.locale == \"nn_NO\"))) && ((Math.abs(l) < i)))) {\n                return l.toString()\n            };\n            var n = j(l);\n            return j(n.replace(h, (\"$1\" + m)));\n        }\n    };\n    e.exports = k;\n});\n__d(\"UFIBlingItem.react\", [\"React\",\"NumberFormat\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"NumberFormat\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = g.createClass({\n        displayName: \"UFIBlingItem\",\n        render: function() {\n            var l = j(this.props.className, this.props.iconClassName, \"UFIBlingBoxSprite\"), m = h.formatIntegerWithDelimiter(this.props.count, (this.props.contextArgs.numberdelimiter || \",\"));\n            return (g.DOM.span(null, g.DOM.i({\n                className: l\n            }), g.DOM.span({\n                className: \"UFIBlingBoxText\"\n            }, m)));\n        }\n    });\n    e.exports = k;\n});\n__d(\"UFIConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        COMMENT_LIKE: \"fa-type:comment-like\",\n        COMMENT_SET_SPAM: \"fa-type:mark-spam\",\n        DELETE_COMMENT: \"fa-type:delete-comment\",\n        LIVE_DELETE_COMMENT: \"fa-type:live-delete-comment\",\n        LIKE_ACTION: \"fa-type:like\",\n        REMOVE_PREVIEW: \"fa-type:remove-preview\",\n        CONFIRM_COMMENT_REMOVAL: \"fa-type:confirm-remove\",\n        TRANSLATE_COMMENT: \"fa-type:translate-comment\",\n        SUBSCRIBE_ACTION: \"fa-type:subscribe\",\n        GIFT_SUGGESTION: \"fa-type:gift-suggestion\",\n        UNDO_DELETE_COMMENT: \"fa-type:undo-delete-comment\"\n    }, h = {\n        DELETED: \"status:deleted\",\n        SPAM: \"status:spam\",\n        SPAM_DISPLAY: \"status:spam-display\",\n        LIVE_DELETED: \"status:live-deleted\",\n        FAILED_ADD: \"status:failed-add\",\n        FAILED_EDIT: \"status:failed-edit\",\n        PENDING_EDIT: \"status:pending-edit\",\n        PENDING_UNDO_DELETE: \"status:pending-undo-delete\"\n    }, i = {\n        MOBILE: 1,\n        SMS: 3,\n        EMAIL: 4\n    }, j = {\n        PROFILE: 0,\n        NEWS_FEED: 1,\n        OBJECT: 2,\n        MOBILE: 3,\n        EMAIL: 4,\n        PROFILE_APROVAL: 10,\n        TICKER: 12,\n        NONE: 13,\n        INTERN: 14,\n        ADS: 15,\n        PHOTOS_SNOWLIFT: 17\n    }, k = {\n        UNKNOWN: 0,\n        INITIAL_SERVER: 1,\n        LIVE_SEND: 2,\n        USER_ACTION: 3,\n        COLLAPSED_UFI: 4,\n        ENDPOINT_LIKE: 10,\n        ENDPOINT_COMMENT_LIKE: 11,\n        ENDPOINT_ADD_COMMENT: 12,\n        ENDPOINT_EDIT_COMMENT: 13,\n        ENDPOINT_DELETE_COMMENT: 14,\n        ENDPOINT_UNDO_DELETE_COMMENT: 15,\n        ENDPOINT_COMMENT_SPAM: 16,\n        ENDPOINT_REMOVE_PREVIEW: 17,\n        ENDPOINT_ID_COMMENT_FETCH: 18,\n        ENDPOINT_COMMENT_FETCH: 19,\n        ENDPOINT_TRANSLATE_COMMENT: 20,\n        ENDPOINT_BAN: 21,\n        ENDPOINT_SUBSCRIBE: 22\n    }, l = {\n        CHRONOLOGICAL: \"chronological\",\n        RANKED_THREADED: \"ranked_threaded\",\n        TOPLEVEL: \"toplevel\",\n        RECENT_ACTIVITY: \"recent_activity\"\n    }, m = 50, n = 97244, o = 420, p = 5, q = 80, r = 2;\n    e.exports = {\n        UFIActionType: g,\n        UFIStatus: h,\n        UFISourceType: i,\n        UFIFeedbackSourceType: j,\n        UFIPayloadSourceType: k,\n        UFICommentOrderingMode: l,\n        defaultPageSize: m,\n        commentTruncationLength: o,\n        commentTruncationPercent: n,\n        commentTruncationMaxLines: p,\n        attachmentTruncationLength: q,\n        minCommentsForOrderingModeSelector: r\n    };\n});\n__d(\"UFIBlingBox.react\", [\"React\",\"UFIBlingItem.react\",\"UFIConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UFIBlingItem.react\"), i = b(\"UFIConstants\"), j = b(\"cx\"), k = b(\"tx\"), l = g.createClass({\n        displayName: \"UFIBlingBox\",\n        render: function() {\n            var m = [], n = \"\";\n            if (this.props.likes) {\n                m.push(h({\n                    count: this.props.likes,\n                    className: (((m.length > 0) ? \"mls\" : \"\")),\n                    iconClassName: \"UFIBlingBoxLikeIcon\",\n                    contextArgs: this.props.contextArgs\n                }));\n                n += (((this.props.likes == 1)) ? \"1 like\" : k._(\"{count} likes\", {\n                    count: this.props.likes\n                }));\n                n += \" \";\n            }\n        ;\n            if (this.props.comments) {\n                m.push(h({\n                    count: this.props.comments,\n                    className: (((m.length > 0) ? \"mls\" : \"\")),\n                    iconClassName: \"UFIBlingBoxCommentIcon\",\n                    contextArgs: this.props.contextArgs\n                }));\n                n += (((this.props.comments == 1)) ? \"1 comment\" : k._(\"{count} comments\", {\n                    count: this.props.comments\n                }));\n                n += \" \";\n            }\n        ;\n            if (this.props.reshares) {\n                m.push(h({\n                    count: this.props.reshares,\n                    className: (((m.length > 0) ? \"mls\" : \"\")),\n                    iconClassName: \"UFIBlingBoxReshareIcon\",\n                    contextArgs: this.props.contextArgs\n                }));\n                n += (((this.props.reshares == 1)) ? \"1 share\" : k._(\"{count} shares\", {\n                    count: this.props.reshares\n                }));\n            }\n        ;\n            var o = g.DOM.a({\n                className: \"UFIBlingBox uiBlingBox feedbackBling\",\n                href: this.props.permalink,\n                \"data-ft\": this.props[\"data-ft\"],\n                \"aria-label\": n\n            }, m);\n            if ((this.props.comments < i.defaultPageSize)) {\n                o.props.onClick = this.props.onClick;\n                o.props.rel = \"ignore\";\n            }\n        ;\n            return o;\n        }\n    });\n    e.exports = l;\n});\n__d(\"UFICentralUpdates\", [\"Arbiter\",\"ChannelConstants\",\"LiveTimer\",\"ShortProfiles\",\"UFIConstants\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"LiveTimer\"), j = b(\"ShortProfiles\"), k = b(\"UFIConstants\"), l = b(\"copyProperties\"), m = b(\"tx\"), n = 0, o = {\n    }, p = {\n    }, q = {\n    }, r = {\n    }, s = [];\n    g.subscribe(h.getArbiterType(\"live-data\"), function(x, y) {\n        if ((y && y.obj)) {\n            var z = y.obj, aa = (z.comments || []);\n            aa.forEach(function(ba) {\n                ba.timestamp.text = \"a few seconds ago\";\n            });\n            w.handleUpdate(k.UFIPayloadSourceType.LIVE_SEND, z);\n        }\n    ;\n    });\n    function t() {\n        if (!n) {\n            var x = q, y = o, z = p, aa = r;\n            q = {\n            };\n            o = {\n            };\n            p = {\n            };\n            r = {\n            };\n            if (Object.keys(x).length) {\n                v(\"feedback-id-changed\", x);\n            };\n            if (Object.keys(y).length) {\n                v(\"feedback-updated\", y);\n            };\n            if (Object.keys(z).length) {\n                v(\"comments-updated\", z);\n            };\n            if (Object.keys(aa).length) {\n                v(\"instance-updated\", aa);\n            };\n            s.pop();\n        }\n    ;\n    };\n    function u() {\n        if (s.length) {\n            return s[(s.length - 1)];\n        }\n         else return k.UFIPayloadSourceType.UNKNOWN\n    ;\n    };\n    function v(event, x) {\n        w.inform(event, {\n            updates: x,\n            payloadSource: u()\n        });\n    };\n    var w = l(new g(), {\n        handleUpdate: function(x, y) {\n            if (Object.keys(y).length) {\n                this.synchronizeInforms(function() {\n                    s.push(x);\n                    var z = l({\n                        payloadsource: u()\n                    }, y);\n                    this.inform(\"update-feedback\", z);\n                    this.inform(\"update-comment-lists\", z);\n                    this.inform(\"update-comments\", z);\n                    this.inform(\"update-actions\", z);\n                    ((y.profiles || [])).forEach(function(aa) {\n                        j.set(aa.id, aa);\n                    });\n                    if (y.servertime) {\n                        i.restart(y.servertime);\n                    };\n                }.bind(this));\n            };\n        },\n        didUpdateFeedback: function(x) {\n            o[x] = true;\n            t();\n        },\n        didUpdateComment: function(x) {\n            p[x] = true;\n            t();\n        },\n        didUpdateFeedbackID: function(x, y) {\n            q[x] = y;\n            t();\n        },\n        didUpdateInstanceState: function(x, y) {\n            if (!r[x]) {\n                r[x] = {\n                };\n            };\n            r[x][y] = true;\n            t();\n        },\n        synchronizeInforms: function(x) {\n            n++;\n            try {\n                x();\n            } catch (y) {\n                throw y;\n            } finally {\n                n--;\n                t();\n            };\n        }\n    });\n    e.exports = w;\n});\n__d(\"randomInt\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\");\n    function h(i, j) {\n        var k = arguments.length;\n        g(((k > 0) && (k <= 2)));\n        if ((k === 1)) {\n            j = i;\n            i = 0;\n        }\n    ;\n        g((j > i));\n        var l = (this.random || Math.random);\n        return Math.floor((i + (l() * ((j - i)))));\n    };\n    e.exports = h;\n});\n__d(\"ClientIDs\", [\"randomInt\",], function(a, b, c, d, e, f) {\n    var g = b(\"randomInt\"), h = {\n    }, i = {\n        getNewClientID: function() {\n            var j = Date.now(), k = ((j + \":\") + ((g(0, 4294967295) + 1)));\n            h[k] = true;\n            return k;\n        },\n        isExistingClientID: function(j) {\n            return !!h[j];\n        }\n    };\n    e.exports = i;\n});\n__d(\"ImmutableObject\", [\"keyMirror\",\"merge\",\"mergeInto\",\"mergeHelpers\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyMirror\"), h = b(\"merge\"), i = b(\"mergeInto\"), j = b(\"mergeHelpers\"), k = b(\"throwIf\"), l = j.checkMergeObjectArgs, m = j.isTerminal, n, o;\n    n = g({\n        INVALID_MAP_SET_ARG: null\n    });\n    o = function(q) {\n        i(this, q);\n    };\n    o.set = function(q, r) {\n        k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n        var s = new o(q);\n        i(s, r);\n        return s;\n    };\n    o.setField = function(q, r, s) {\n        var t = {\n        };\n        t[r] = s;\n        return o.set(q, t);\n    };\n    o.setDeep = function(q, r) {\n        k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n        return p(q, r);\n    };\n    function p(q, r) {\n        l(q, r);\n        var s = {\n        }, t = Object.keys(q);\n        for (var u = 0; (u < t.length); u++) {\n            var v = t[u];\n            if (!r.hasOwnProperty(v)) {\n                s[v] = q[v];\n            }\n             else if ((m(q[v]) || m(r[v]))) {\n                s[v] = r[v];\n            }\n             else s[v] = p(q[v], r[v]);\n            \n        ;\n        };\n        var w = Object.keys(r);\n        for (u = 0; (u < w.length); u++) {\n            var x = w[u];\n            if (q.hasOwnProperty(x)) {\n                continue;\n            };\n            s[x] = r[x];\n        };\n        return ((((q instanceof o) || (r instanceof o))) ? new o(s) : s);\n    };\n    e.exports = o;\n});\n__d(\"debounceAcrossTransitions\", [\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"debounce\");\n    function h(i, j, k) {\n        return g(i, j, k, true);\n    };\n    e.exports = h;\n});\n__d(\"MercuryServerDispatcher\", [\"AsyncRequest\",\"FBAjaxRequest\",\"Env\",\"JSLogger\",\"Run\",\"areObjectsEqual\",\"copyProperties\",\"debounceAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"FBAjaxRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"Run\"), l = b(\"areObjectsEqual\"), m = b(\"copyProperties\"), n = b(\"debounceAcrossTransitions\"), o = {\n    }, p = j.create(\"mercury_dispatcher\"), q = false, r = {\n        IMMEDIATE: \"immediate\",\n        IDEMPOTENT: \"idempotent\",\n        BATCH_SUCCESSIVE: \"batch-successive\",\n        BATCH_SUCCESSIVE_UNIQUE: \"batch-successive-unique\",\n        BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR: \"batch-successive-piggyback-retry\",\n        BATCH_DEFERRED_MULTI: \"batch-deferred-multi\",\n        BATCH_CONDITIONAL: \"batch-conditional\",\n        registerEndpoints: function(v) {\n            for (var w in v) {\n                var x = v[w], y = (x.request_user_id || i.user);\n                if (!o[w]) {\n                    o[w] = {\n                    };\n                };\n                if (!o[w][y]) {\n                    o[w][y] = {\n                    };\n                };\n                o[w][y] = new s(w, x);\n            };\n        },\n        trySend: function(v, w, x, y) {\n            y = (y || i.user);\n            if (((v == \"/ajax/mercury/client_reliability.php\") && !o[v][y])) {\n                o[v][y] = o[v][undefined];\n            };\n            o[v][y].trySend(w, x);\n        }\n    };\n    function s(v, w) {\n        var x = (w.mode || r.IMMEDIATE);\n        switch (x) {\n          case r.IMMEDIATE:\n        \n          case r.IDEMPOTENT:\n        \n          case r.BATCH_SUCCESSIVE:\n        \n          case r.BATCH_SUCCESSIVE_UNIQUE:\n        \n          case r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR:\n        \n          case r.BATCH_DEFERRED_MULTI:\n        \n          case r.BATCH_CONDITIONAL:\n            break;\n          default:\n            throw new Error((\"Invalid MercuryServerDispatcher mode \" + x));\n        };\n        this._endpoint = v;\n        this._mode = x;\n        this._requestUserID = w.request_user_id;\n        this._combineData = w.batch_function;\n        this._combineDataIf = w.batch_if;\n        this._batchSizeLimit = w.batch_size_limit;\n        this._batches = [];\n        this._handler = w.handler;\n        this._errorHandler = w.error_handler;\n        this._transportErrorHandler = (w.transport_error_handler || w.error_handler);\n        this._connectionRetries = (w.connection_retries || 0);\n        this._timeoutHandler = w.timeout_handler;\n        this._timeout = w.timeout;\n        this._serverDialogCancelHandler = (w.server_dialog_cancel_handler || w.error_handler);\n        this._deferredSend = n(this._batchSend, 0, this);\n        if (this._batchSizeLimit) {\n            k.onUnload(function() {\n                p.bump((\"unload_batches_count_\" + u(this._batches.length)));\n            }.bind(this));\n        };\n    };\n    m(s.prototype, {\n        _inFlight: 0,\n        _handler: null,\n        _errorHandler: null,\n        _transportErrorHandler: null,\n        _timeoutHandler: null,\n        _timeout: null,\n        _serverDialogCancelHandler: null,\n        _combineData: null,\n        trySend: function(v, w) {\n            if (q) {\n                return\n            };\n            if ((typeof v == \"undefined\")) {\n                v = null;\n            };\n            var x = (w || this._mode);\n            if ((x == r.IMMEDIATE)) {\n                this._send(v);\n            }\n             else if ((x == r.IDEMPOTENT)) {\n                if (!this._inFlight) {\n                    this._send(v);\n                };\n            }\n             else if (((x == r.BATCH_SUCCESSIVE) || (x == r.BATCH_SUCCESSIVE_UNIQUE))) {\n                if (!this._inFlight) {\n                    this._send(v);\n                }\n                 else this._batchData(v);\n            ;\n            }\n             else if ((x == r.BATCH_CONDITIONAL)) {\n                var y = (this._batches[0] && this._batches[0].getData());\n                if ((this._inFlight && ((this._combineDataIf(this._pendingRequestData, v) || this._combineDataIf(y, v))))) {\n                    this._batchData(v);\n                }\n                 else this._send(v);\n            ;\n            }\n             else if ((x == r.BATCH_DEFERRED_MULTI)) {\n                this._batchData(v);\n                this._deferredSend();\n            }\n             else if ((x == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)) {\n                this._batchData(v);\n                if (!this._inFlight) {\n                    this._batchSend();\n                };\n            }\n            \n            \n            \n            \n            \n        ;\n        },\n        _send: function(v) {\n            this._inFlight++;\n            this._pendingRequestData = m({\n            }, v);\n            if ((this._requestUserID != i.user)) {\n                v.request_user_id = this._requestUserID;\n            };\n            p.log(\"send\", {\n                endpoint: this._endpoint,\n                data: v,\n                inflight_count: this._inFlight\n            });\n            var w = null;\n            if (i.worker_context) {\n                w = new h(\"POST\", this._endpoint, v);\n                w.onError = function(x) {\n                    x.getPayload = function() {\n                        return x.errorText;\n                    };\n                    x.getRequest = function() {\n                        var y = x;\n                        x.getData = function() {\n                            return v;\n                        };\n                        return y;\n                    };\n                    x.getError = function() {\n                        return x.errorText;\n                    };\n                    x.getErrorDescription = function() {\n                        return x.errorText;\n                    };\n                    x.isTransient = function() {\n                        return false;\n                    };\n                    this._handleError(x);\n                }.bind(this);\n                w.onJSON = function(x) {\n                    x.getPayload = function() {\n                        return x.json;\n                    };\n                    x.getRequest = function() {\n                        return w;\n                    };\n                    this._handleResponse(x);\n                }.bind(this);\n                w.getData = function() {\n                    return v;\n                };\n                w.send();\n            }\n             else {\n                w = new g(this._endpoint).setData(v).setOption(\"retries\", this._connectionRetries).setHandler(this._handleResponse.bind(this)).setErrorHandler(this._handleError.bind(this)).setTransportErrorHandler(this._handleTransportError.bind(this)).setServerDialogCancelHandler(this._handleServerDialogCancel.bind(this)).setAllowCrossPageTransition(true);\n                if ((this._timeout && this._timeoutHandler)) {\n                    w.setTimeoutHandler(this._timeout, this._handleTimeout.bind(this));\n                };\n                w.send();\n            }\n        ;\n        },\n        _batchData: function(v, w) {\n            if ((((this._mode == r.BATCH_SUCCESSIVE_UNIQUE) && (typeof this._pendingRequestData != \"undefined\")) && l(v, this._pendingRequestData))) {\n                return;\n            }\n             else {\n                var x = (this._batches.length - 1);\n                if (((x >= 0) && !this._hasReachedBatchLimit(this._batches[x]))) {\n                    (w ? this._batches[x].combineWithOlder(v, this._combineData) : this._batches[x].combineWith(v, this._combineData));\n                }\n                 else {\n                    this._batches.push(new t(v));\n                    p.bump((\"batches_count_\" + u(this._batches.length)));\n                }\n            ;\n                p.debug(\"batch\", {\n                    endpoint: this._endpoint,\n                    batches: this._batches,\n                    batch_limit: this._batchSizeLimit\n                });\n            }\n        ;\n        },\n        _hasReachedBatchLimit: function(v) {\n            return (this._batchSizeLimit && (v.getSize() >= this._batchSizeLimit));\n        },\n        _batchSend: function() {\n            if (this._batches[0]) {\n                this._send(this._batches[0].getData());\n                this._batches.shift();\n            }\n        ;\n        },\n        _handleResponse: function(v) {\n            this._inFlight--;\n            p.log(\"response\", {\n                endpoint: this._endpoint,\n                inflight_count: this._inFlight\n            });\n            var w = v.getPayload();\n            q = (w && w.kill_chat);\n            if (q) {\n                p.log(\"killswitch_enabled\", {\n                    endpoint: this._endpoint,\n                    inflight_count: this._inFlight\n                });\n            };\n            if ((w && w.error_payload)) {\n                if (this._errorHandler) {\n                    this._errorHandler(v);\n                };\n            }\n             else (this._handler && this._handler(w, v.getRequest()));\n        ;\n            if (((((this._mode == r.BATCH_SUCCESSIVE) || (this._mode == r.BATCH_SUCCESSIVE_UNIQUE)) || (this._mode == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)) || (this._mode == r.BATCH_CONDITIONAL))) {\n                this._batchSend();\n            };\n            delete this._pendingRequestData;\n        },\n        _postErrorHandler: function() {\n            p.error(\"error\", {\n                endpoint: this._endpoint,\n                inflight_count: (this._inFlight - 1)\n            });\n            this._inFlight--;\n            var v = this._mode;\n            if ((((v == r.BATCH_SUCCESSIVE) || (v == r.BATCH_SUCCESSIVE_UNIQUE)) || (v == r.BATCH_CONDITIONAL))) {\n                this._batchSend();\n            }\n             else if ((v == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)) {\n                if (this._batches[0]) {\n                    this._batchData(this._pendingRequestData, true);\n                    this._batchSend();\n                }\n                 else this._batchData(this._pendingRequestData, true);\n            \n            }\n        ;\n            delete this._pendingRequestData;\n        },\n        _handleError: function(v) {\n            (this._errorHandler && this._errorHandler(v));\n            this._postErrorHandler();\n        },\n        _handleTransportError: function(v) {\n            (this._transportErrorHandler && this._transportErrorHandler(v));\n            this._postErrorHandler();\n        },\n        _handleTimeout: function(v) {\n            (this._timeoutHandler && this._timeoutHandler(v));\n            this._postErrorHandler();\n        },\n        _handleServerDialogCancel: function(v) {\n            (this._serverDialogCancelHandler && this._serverDialogCancelHandler(v));\n            this._postErrorHandler();\n        }\n    });\n    function t(v) {\n        this._data = v;\n        this._size = 1;\n    };\n    m(t.prototype, {\n        getData: function() {\n            return this._data;\n        },\n        getSize: function() {\n            return this._size;\n        },\n        combineWith: function(v, w) {\n            this._data = w(this._data, v);\n            this._size++;\n        },\n        combineWithOlder: function(v, w) {\n            this._data = w(v, this._data);\n            this._size++;\n        }\n    });\n    function u(v) {\n        if ((v === 1)) {\n            return \"equals1\";\n        }\n         else if (((v >= 2) && (v <= 3))) {\n            return \"between2and3\";\n        }\n         else return \"over4\"\n        \n    ;\n    };\n    e.exports = r;\n});\n__d(\"UFIFeedbackTargets\", [\"ClientIDs\",\"KeyedCallbackManager\",\"UFICentralUpdates\",\"UFIConstants\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ClientIDs\"), h = b(\"KeyedCallbackManager\"), i = b(\"UFICentralUpdates\"), j = b(\"UFIConstants\"), k = b(\"copyProperties\"), l = new h();\n    function m(v) {\n        var w = {\n        };\n        v.forEach(function(x) {\n            var y = k({\n            }, x);\n            delete y.commentlist;\n            delete y.commentcount;\n            w[x.entidentifier] = y;\n            i.didUpdateFeedback(x.entidentifier);\n        });\n        l.addResourcesAndExecute(w);\n    };\n    function n(v) {\n        for (var w = 0; (w < v.length); w++) {\n            var x = v[w];\n            switch (x.actiontype) {\n              case j.UFIActionType.LIKE_ACTION:\n                p(x);\n                break;\n              case j.UFIActionType.SUBSCRIBE_ACTION:\n                q(x);\n                break;\n              case j.UFIActionType.GIFT_SUGGESTION:\n                r(x);\n                break;\n            };\n        };\n    };\n    function o(v) {\n        for (var w = 0; (w < v.length); w++) {\n            var x = v[w];\n            if (x.orig_ftentidentifier) {\n                t(x.orig_ftentidentifier, x.ftentidentifier);\n            };\n        };\n    };\n    function p(v) {\n        var w = s(v);\n        if (w) {\n            v.hasviewerliked = !!v.hasviewerliked;\n            if (((v.clientid && g.isExistingClientID(v.clientid)) && (v.hasviewerliked != w.hasviewerliked))) {\n                return\n            };\n            w.likecount = (v.likecount || 0);\n            w.likesentences = v.likesentences;\n            if ((v.actorid == w.actorforpost)) {\n                w.hasviewerliked = v.hasviewerliked;\n            }\n             else if ((v.hasviewerliked != w.hasviewerliked)) {\n                w.likesentences = {\n                    current: v.likesentences.alternate,\n                    alternate: v.likesentences.current\n                };\n                if (w.hasviewerliked) {\n                    w.likecount++;\n                }\n                 else w.likecount--;\n            ;\n            }\n            \n        ;\n            if ((v.actorid != w.actorforpost)) {\n                w.likesentences.isunseen = true;\n            };\n            m([w,]);\n        }\n    ;\n    };\n    function q(v) {\n        var w = s(v);\n        if (w) {\n            v.hasviewersubscribed = !!v.hasviewersubscribed;\n            if (((v.clientid && g.isExistingClientID(v.clientid)) && (v.hasviewersubscribed != w.hasviewersubscribed))) {\n                return\n            };\n            if ((v.actorid == w.actorforpost)) {\n                w.hasviewersubscribed = v.hasviewersubscribed;\n            };\n            m([w,]);\n        }\n    ;\n    };\n    function r(v) {\n        var w = s(v);\n        if (!w) {\n            return\n        };\n        if (((v.clientid && g.isExistingClientID(v.clientid)) && (v.hasviewerliked != w.hasviewerliked))) {\n            return\n        };\n        w.giftdata = v.giftdata;\n        m([w,]);\n    };\n    function s(v) {\n        if (v.orig_entidentifier) {\n            t(v.orig_entidentifier, v.entidentifier);\n        };\n        return l.getResource(v.entidentifier);\n    };\n    function t(v, w) {\n        var x = l.getResource(v);\n        if (x) {\n            l.setResource(v, null);\n            x.entidentifier = w;\n            l.setResource(w, x);\n            i.didUpdateFeedbackID(v, w);\n        }\n    ;\n    };\n    var u = {\n        getFeedbackTarget: function(v, w) {\n            var x = l.executeOrEnqueue(v, w), y = l.getUnavailableResources(x);\n            if (!y.length) {\n                return\n            };\n        }\n    };\n    i.subscribe(\"update-feedback\", function(v, w) {\n        var x = w.feedbacktargets;\n        if ((x && x.length)) {\n            m(x);\n        };\n    });\n    i.subscribe(\"update-actions\", function(v, w) {\n        if ((w.actions && w.actions.length)) {\n            n(w.actions);\n        };\n    });\n    i.subscribe(\"update-comments\", function(v, w) {\n        if ((w.comments && w.comments.length)) {\n            o(w.comments);\n        };\n    });\n    e.exports = u;\n});\n__d(\"UFIInstanceState\", [\"UFICentralUpdates\",], function(a, b, c, d, e, f) {\n    var g = b(\"UFICentralUpdates\"), h = {\n    };\n    function i(k) {\n        if (!h[k]) {\n            h[k] = {\n            };\n        };\n    };\n    var j = {\n        getKeyForInstance: function(k, l) {\n            i(k);\n            return h[k][l];\n        },\n        updateState: function(k, l, m) {\n            i(k);\n            h[k][l] = m;\n            g.didUpdateInstanceState(k, l);\n        },\n        updateStateField: function(k, l, m, n) {\n            var o = (this.getKeyForInstance(k, l) || {\n            });\n            o[m] = n;\n            this.updateState(k, l, o);\n        }\n    };\n    e.exports = j;\n});\n__d(\"UFIComments\", [\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryServerDispatcher\",\"UFICentralUpdates\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"URI\",\"keyMirror\",\"merge\",\"randomInt\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"ClientIDs\"), h = b(\"ImmutableObject\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryServerDispatcher\"), l = b(\"UFICentralUpdates\"), m = b(\"UFIConstants\"), n = b(\"UFIFeedbackTargets\"), o = b(\"UFIInstanceState\"), p = b(\"URI\"), q = b(\"keyMirror\"), r = b(\"merge\"), s = b(\"randomInt\"), t = b(\"throwIf\"), u = q({\n        INVALID_COMMENT_TYPE: null\n    }), v = i.create(\"UFIComments\"), w = {\n    }, x = {\n    }, y = {\n    }, z = {\n    }, aa = {\n    }, ba = {\n    }, ca = \"unavailable_comment_key\";\n    function da(ab) {\n        return ((ab in ba) ? ba[ab] : ab);\n    };\n    function ea(ab, bb) {\n        if (!x[ab]) {\n            x[ab] = {\n            };\n        };\n        if (!x[ab][bb]) {\n            x[ab][bb] = new j();\n        };\n        return x[ab][bb];\n    };\n    function fa(ab) {\n        var bb = [];\n        if (x[ab]) {\n            for (var cb in x[ab]) {\n                bb.push(x[ab][cb]);;\n            }\n        };\n        return bb;\n    };\n    function ga(ab) {\n        if (!y[ab]) {\n            y[ab] = new j();\n        };\n        return y[ab];\n    };\n    function ha(ab) {\n        var bb = fa(ab);\n        bb.forEach(function(cb) {\n            cb.reset();\n        });\n    };\n    function ia(ab, bb) {\n        ab.forEach(function(cb) {\n            var db = cb.ftentidentifier, eb = (cb.parentcommentid || db);\n            n.getFeedbackTarget(db, function(fb) {\n                var gb = m.UFIPayloadSourceType, hb = cb.clientid, ib = false, jb = r({\n                }, cb);\n                if (hb) {\n                    delete jb.clientid;\n                    ib = g.isExistingClientID(hb);\n                    if ((ib && ba[hb])) {\n                        return\n                    };\n                }\n            ;\n                if ((((bb === gb.LIVE_SEND) && cb.parentcommentid) && (z[eb] === undefined))) {\n                    return\n                };\n                if ((((((bb === gb.LIVE_SEND)) || ((bb === gb.USER_ACTION))) || ((bb === gb.ENDPOINT_ADD_COMMENT))) || ((bb === gb.ENDPOINT_EDIT_COMMENT)))) {\n                    jb.isunseen = true;\n                };\n                if (((bb === gb.ENDPOINT_COMMENT_FETCH) || (bb === gb.ENDPOINT_ID_COMMENT_FETCH))) {\n                    jb.fromfetch = true;\n                };\n                if (ib) {\n                    if (w[hb].ufiinstanceid) {\n                        o.updateStateField(w[hb].ufiinstanceid, \"locallycomposed\", cb.id, true);\n                    };\n                    jb.ufiinstanceid = w[hb].ufiinstanceid;\n                    ba[hb] = cb.id;\n                    w[cb.id] = w[hb];\n                    delete w[hb];\n                    l.didUpdateComment(hb);\n                }\n            ;\n                var kb, lb;\n                if (cb.parentcommentid) {\n                    lb = [ga(eb),];\n                }\n                 else lb = fa(eb);\n            ;\n                var mb = false;\n                lb.forEach(function(qb) {\n                    var rb = qb.getAllResources(), sb = {\n                    };\n                    for (var tb in rb) {\n                        var ub = rb[tb];\n                        sb[ub] = tb;\n                    };\n                    if (ib) {\n                        if ((hb in sb)) {\n                            sb[cb.id] = sb[hb];\n                            var vb = sb[hb];\n                            qb.setResource(vb, cb.id);\n                        }\n                    \n                    };\n                    if (sb[cb.id]) {\n                        mb = true;\n                    }\n                     else {\n                        var wb = (z[eb] || 0);\n                        sb[cb.id] = wb;\n                        qb.setResource(wb, cb.id);\n                    }\n                ;\n                    kb = sb[cb.id];\n                });\n                if (!mb) {\n                    var nb = (z[eb] || 0);\n                    z[eb] = (nb + 1);\n                    qa(eb);\n                }\n            ;\n                if ((cb.status === m.UFIStatus.FAILED_ADD)) {\n                    aa[eb] = (aa[eb] + 1);\n                };\n                var ob = z[eb];\n                jb.replycount = (((z[cb.id] || 0)) - ((aa[cb.id] || 0)));\n                var pb = ja(kb, ob);\n                if ((cb.parentcommentid && w[cb.parentcommentid])) {\n                    jb.permalink = p(fb.permalink).addQueryData({\n                        comment_id: w[cb.parentcommentid].legacyid,\n                        reply_comment_id: cb.legacyid,\n                        total_comments: ob\n                    }).toString();\n                }\n                 else jb.permalink = p(fb.permalink).addQueryData({\n                    comment_id: cb.legacyid,\n                    offset: pb,\n                    total_comments: ob\n                }).toString();\n            ;\n                za.setComment(cb.id, new h(jb));\n                l.didUpdateComment(cb.id);\n                l.didUpdateFeedback(db);\n            });\n        });\n    };\n    function ja(ab, bb) {\n        return (Math.floor(((((bb - ab) - 1)) / m.defaultPageSize)) * m.defaultPageSize);\n    };\n    function ka(ab) {\n        for (var bb = 0; (bb < ab.length); bb++) {\n            var cb = ab[bb];\n            switch (cb.actiontype) {\n              case m.UFIActionType.COMMENT_LIKE:\n                na(cb);\n                break;\n              case m.UFIActionType.DELETE_COMMENT:\n                ra(cb);\n                break;\n              case m.UFIActionType.LIVE_DELETE_COMMENT:\n                sa(cb);\n                break;\n              case m.UFIActionType.UNDO_DELETE_COMMENT:\n                ta(cb);\n                break;\n              case m.UFIActionType.REMOVE_PREVIEW:\n                ua(cb);\n                break;\n              case m.UFIActionType.COMMENT_SET_SPAM:\n                va(cb);\n                break;\n              case m.UFIActionType.CONFIRM_COMMENT_REMOVAL:\n                wa(cb);\n                break;\n              case m.UFIActionType.TRANSLATE_COMMENT:\n                oa(cb);\n                break;\n            };\n        };\n    };\n    function la(ab, bb, cb) {\n        var db = bb.range, eb = bb.values;\n        if (!db) {\n            v.error(\"nullrange\", {\n                target: ab,\n                commentList: bb\n            });\n            return;\n        }\n    ;\n        var fb = {\n        };\n        for (var gb = 0; (gb < db.length); gb++) {\n            fb[(db.offset + gb)] = (eb[gb] || ca);;\n        };\n        var hb, ib;\n        if (cb) {\n            hb = ea(ab, cb);\n            ib = ab;\n        }\n         else {\n            hb = ga(ab);\n            ib = bb.ftentidentifier;\n            if ((bb.count !== undefined)) {\n                z[ab] = bb.count;\n                aa[ab] = 0;\n            }\n        ;\n        }\n    ;\n        hb.addResourcesAndExecute(fb);\n        l.didUpdateFeedback(ib);\n    };\n    function ma(ab) {\n        ab.forEach(function(bb) {\n            z[bb.entidentifier] = bb.commentcount;\n            aa[bb.entidentifier] = 0;\n            l.didUpdateFeedback(bb.entidentifier);\n        });\n    };\n    function na(ab) {\n        var bb = za.getComment(ab.commentid);\n        if (bb) {\n            var cb = {\n            }, db = (ab.clientid && g.isExistingClientID(ab.clientid));\n            if (!db) {\n                cb.hasviewerliked = ab.viewerliked;\n                cb.likecount = ab.likecount;\n            }\n        ;\n            cb.likeconfirmhash = s(0, 1024);\n            ya(ab.commentid, cb);\n        }\n    ;\n    };\n    function oa(ab) {\n        var bb = ab.commentid, cb = za.getComment(ab.commentid);\n        if (cb) {\n            ya(bb, {\n                translatedtext: ab.translatedtext\n            });\n        };\n    };\n    function pa(ab) {\n        var bb = {\n            reportLink: ab.reportLink,\n            commenterIsFOF: ab.commenterIsFOF,\n            userIsMinor: ab.userIsMinor\n        };\n        if (ab.undoData) {\n            bb.undoData = ab.undoData;\n        };\n        return bb;\n    };\n    function qa(ab, bb) {\n        if (ab) {\n            if ((bb !== undefined)) {\n                var cb = (((aa[ab] || 0)) + ((bb ? 1 : -1)));\n                aa[ab] = Math.max(cb, 0);\n            }\n        ;\n            var db = za.getComment(ab);\n            if (db) {\n                var eb = {\n                    replycount: za.getDisplayedCommentCount(ab)\n                };\n                ya(ab, eb);\n            }\n        ;\n        }\n    ;\n    };\n    function ra(ab) {\n        var bb = za.getComment(ab.commentid);\n        if ((bb.status !== m.UFIStatus.DELETED)) {\n            var cb = (bb.parentcommentid || bb.ftentidentifier);\n            if ((bb.status === m.UFIStatus.FAILED_ADD)) {\n                qa(cb);\n            }\n             else qa(cb, true);\n        ;\n        }\n    ;\n        xa(bb, m.UFIStatus.DELETED);\n    };\n    function sa(ab) {\n        var bb = za.getComment(ab.commentid);\n        if ((bb && (bb.status !== m.UFIStatus.DELETED))) {\n            xa(bb, m.UFIStatus.LIVE_DELETED);\n        };\n    };\n    function ta(ab) {\n        var bb = za.getComment(ab.commentid);\n        if ((bb.status === m.UFIStatus.DELETED)) {\n            var cb = (bb.parentcommentid || bb.ftentidentifier);\n            qa(cb, false);\n        }\n    ;\n        xa(bb, m.UFIStatus.PENDING_UNDO_DELETE);\n    };\n    function ua(ab) {\n        ya(ab.commentid, {\n            attachment: null\n        });\n    };\n    function va(ab) {\n        var bb = za.getComment(ab.commentid), cb = (ab.shouldHideAsSpam ? m.UFIStatus.SPAM_DISPLAY : null);\n        xa(bb, cb);\n    };\n    function wa(ab) {\n        ya(ab.commentid, pa(ab));\n    };\n    function xa(ab, bb) {\n        ya(ab.id, {\n            priorstatus: ab.status,\n            status: bb\n        });\n    };\n    function ya(ab, bb) {\n        var cb = (za.getComment(ab) || new h({\n        }));\n        za.setComment(ab, h.set(cb, bb));\n        l.didUpdateComment(cb.id);\n        l.didUpdateFeedback(cb.ftentidentifier);\n    };\n    var za = {\n        getComments: function(ab) {\n            var bb = {\n            };\n            for (var cb = 0; (cb < ab.length); cb++) {\n                bb[ab[cb]] = za.getComment(ab[cb]);;\n            };\n            return bb;\n        },\n        getComment: function(ab) {\n            return w[da(ab)];\n        },\n        setComment: function(ab, bb) {\n            w[da(ab)] = bb;\n        },\n        resetFeedbackTarget: function(ab) {\n            var bb = fa(ab), cb = {\n            };\n            bb.forEach(function(eb) {\n                var fb = eb.getAllResources();\n                for (var gb in fb) {\n                    var hb = fb[gb];\n                    cb[hb] = 1;\n                };\n            });\n            for (var db in cb) {\n                delete w[da(db)];;\n            };\n            ha(ab);\n        },\n        getCommentsInRange: function(ab, bb, cb, db, eb) {\n            var fb = ea(ab, cb);\n            n.getFeedbackTarget(ab, function(gb) {\n                var hb = [];\n                for (var ib = 0; (ib < bb.length); ib++) {\n                    hb.push((bb.offset + ib));;\n                };\n                var jb = function(pb) {\n                    var qb = [], rb = bb.offset, sb = ((bb.offset + bb.length) - 1);\n                    for (var tb = 0; (tb < bb.length); tb++) {\n                        var ub = (gb.isranked ? (sb - tb) : (rb + tb));\n                        if ((pb[ub] != ca)) {\n                            var vb = this.getComment(pb[ub]);\n                            if (vb) {\n                                qb.push(vb);\n                            };\n                        }\n                    ;\n                    };\n                    eb(qb);\n                }, kb = fb.getUnavailableResourcesFromRequest(hb);\n                if (kb.length) {\n                    var lb = Math.min.apply(Math, kb), mb = Math.max.apply(Math, kb), nb = lb, ob = ((mb - lb) + 1);\n                    k.trySend(\"/ajax/ufi/comment_fetch.php\", {\n                        ft_ent_identifier: gb.entidentifier,\n                        viewas: db,\n                        source: null,\n                        offset: nb,\n                        length: ob,\n                        orderingmode: cb\n                    });\n                }\n                 else fb.deferredExecuteOrEnqueue(hb).addCallback(jb, this);\n            ;\n            }.bind(this));\n        },\n        getRepliesInRanges: function(ab, bb, cb) {\n            var db = {\n            }, eb = {\n            }, fb = {\n            }, gb = false;\n            n.getFeedbackTarget(ab, function(hb) {\n                for (var ib in bb) {\n                    var jb = ga(ib), kb = bb[ib], lb = [];\n                    for (var mb = 0; (mb < kb.length); mb++) {\n                        lb.push((kb.offset + mb));;\n                    };\n                    db[ib] = jb.executeOrEnqueue(lb, function(wb) {\n                        var xb = [];\n                        for (var yb = 0; (yb < kb.length); yb++) {\n                            var zb = (kb.offset + yb);\n                            if ((wb[zb] != ca)) {\n                                var ac = this.getComment(wb[zb]);\n                                if (ac) {\n                                    xb.push(ac);\n                                };\n                            }\n                        ;\n                        };\n                        eb[ib] = xb;\n                    }.bind(this));\n                    fb[ib] = jb.getUnavailableResources(db[ib]);\n                    if (fb[ib].length) {\n                        gb = true;\n                        jb.unsubscribe(db[ib]);\n                    }\n                ;\n                };\n                if (!gb) {\n                    cb(eb);\n                }\n                 else {\n                    var nb = [], ob = [], pb = [];\n                    for (var qb in fb) {\n                        var rb = fb[qb];\n                        if (rb.length) {\n                            var sb = Math.min.apply(Math, rb), tb = Math.max.apply(Math, rb), ub = sb, vb = ((tb - sb) + 1);\n                            nb.push(qb);\n                            ob.push(ub);\n                            pb.push(vb);\n                        }\n                    ;\n                    };\n                    k.trySend(\"/ajax/ufi/reply_fetch.php\", {\n                        ft_ent_identifier: hb.entidentifier,\n                        parent_comment_ids: nb,\n                        source: null,\n                        offsets: ob,\n                        lengths: pb\n                    });\n                }\n            ;\n            }.bind(this));\n            return db;\n        },\n        getCommentCount: function(ab) {\n            return (z[ab] || 0);\n        },\n        getDeletedCount: function(ab) {\n            return (aa[ab] || 0);\n        },\n        getDisplayedCommentCount: function(ab) {\n            return (((z[ab] || 0)) - ((aa[ab] || 0)));\n        },\n        _dump: function() {\n            var ab = {\n                _comments: w,\n                _commentLists: x,\n                _replyLists: y,\n                _commentCounts: z,\n                _deletedCounts: aa,\n                _localIDMap: ba\n            };\n            return JSON.stringify(ab);\n        }\n    };\n    k.registerEndpoints({\n        \"/ajax/ufi/comment_fetch.php\": {\n            mode: k.IMMEDIATE,\n            handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n        },\n        \"/ajax/ufi/reply_fetch.php\": {\n            mode: k.IMMEDIATE,\n            handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n        }\n    });\n    l.subscribe(\"update-comments\", function(ab, bb) {\n        if ((bb.comments && bb.comments.length)) {\n            ia(bb.comments, bb.payloadsource);\n        };\n    });\n    l.subscribe(\"update-actions\", function(ab, bb) {\n        if ((bb.actions && bb.actions.length)) {\n            ka(bb.actions);\n        };\n    });\n    l.subscribe(\"update-comment-lists\", function(ab, bb) {\n        var cb = bb.commentlists;\n        if ((cb && Object.keys(cb).length)) {\n            if (cb.comments) {\n                for (var db in cb.comments) {\n                    for (var eb in cb.comments[db]) {\n                        la(db, cb.comments[db][eb], eb);;\n                    };\n                }\n            };\n            if (cb.replies) {\n                for (var fb in cb.replies) {\n                    la(fb, cb.replies[fb]);;\n                }\n            };\n        }\n    ;\n    });\n    l.subscribe(\"update-feedback\", function(ab, bb) {\n        var cb = bb.feedbacktargets;\n        if ((cb && cb.length)) {\n            ma(cb);\n        };\n    });\n    e.exports = za;\n});\n__d(\"UFILikeLink.react\", [\"React\",\"TrackingNodes\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"tx\"), j = g.createClass({\n        displayName: \"UFILikeLink\",\n        render: function() {\n            var k = (this.props.likeAction ? \"Like\" : \"Unlike\"), l = h.getTrackingInfo((this.props.likeAction ? h.types.LIKE_LINK : h.types.UNLIKE_LINK)), m = (this.props.likeAction ? \"Like this\" : \"Unlike this\");\n            return (g.DOM.a({\n                className: \"UFILikeLink\",\n                href: \"#\",\n                role: \"button\",\n                \"aria-live\": \"polite\",\n                title: m,\n                onClick: this.props.onClick,\n                \"data-ft\": l\n            }, k));\n        }\n    });\n    e.exports = j;\n});\n__d(\"UFISubscribeLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n        displayName: \"UFISubscribeLink\",\n        render: function() {\n            var j = (this.props.subscribeAction ? \"Follow Post\" : \"Unfollow Post\"), k = (this.props.subscribeAction ? \"Get notified when someone comments\" : \"Stop getting notified when someone comments\");\n            return (g.DOM.a({\n                className: \"UFISubscribeLink\",\n                href: \"#\",\n                role: \"button\",\n                \"aria-live\": \"polite\",\n                title: k,\n                onClick: this.props.onClick\n            }, j));\n        }\n    });\n    e.exports = i;\n});\n__d(\"ProfileBrowserLink\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = \"/ajax/browser/dialog/\", i = \"/browse/\", j = function(l, m, n) {\n        return new g((l + m)).setQueryData(n);\n    }, k = {\n        constructPageURI: function(l, m) {\n            return j(i, l, m);\n        },\n        constructDialogURI: function(l, m) {\n            return j(h, l, m);\n        }\n    };\n    e.exports = k;\n});\n__d(\"ProfileBrowserTypes\", [], function(a, b, c, d, e, f) {\n    var g = {\n        LIKES: \"likes\",\n        GROUP_MESSAGE_VIEWERS: \"group_message_viewers\",\n        MUTUAL_FRIENDS: \"mutual_friends\"\n    };\n    e.exports = g;\n});\n__d(\"UFITimelineBlingBox.react\", [\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIBlingItem.react\",\"URI\",\"cx\",\"fbt\",], function(a, b, c, d, e, f) {\n    var g = b(\"ProfileBrowserLink\"), h = b(\"ProfileBrowserTypes\"), i = b(\"React\"), j = b(\"UFIBlingItem.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"fbt\"), n = i.createClass({\n        displayName: \"UFITimelineBlingBox\",\n        render: function() {\n            var o = [];\n            if ((this.props.likes && this.props.enableShowLikes)) {\n                var p = this._getProfileBrowserURI(), q = \"See who likes this\", r = i.DOM.a({\n                    ajaxify: p.dialog,\n                    className: this._getItemClassName(o),\n                    \"data-ft\": this.props[\"data-ft\"],\n                    \"data-gt\": this.props[\"data-gt\"],\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"right\",\n                    \"data-tooltip-uri\": this._getLikeToolTipURI(),\n                    href: p.page,\n                    rel: \"dialog\",\n                    role: \"button\",\n                    title: q\n                }, j({\n                    contextArgs: this.props.contextArgs,\n                    count: this.props.likes,\n                    iconClassName: \"UFIBlingBoxTimelineLikeIcon\"\n                }));\n                o.push(r);\n            }\n        ;\n            if ((this.props.comments && this.props.enableShowComments)) {\n                var s = \"Show comments\", t = i.DOM.a({\n                    \"aria-label\": s,\n                    className: this._getItemClassName(o),\n                    \"data-ft\": this.props[\"data-ft\"],\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"right\",\n                    href: \"#\",\n                    onClick: this.props.commentOnClick\n                }, j({\n                    contextArgs: this.props.contextArgs,\n                    count: this.props.comments,\n                    iconClassName: \"UFIBlingBoxTimelineCommentIcon\"\n                }));\n                o.push(t);\n            }\n        ;\n            if (this.props.reshares) {\n                var u = \"Show shares\", v = this._getShareViewURI(), w = i.DOM.a({\n                    ajaxify: v.dialog,\n                    \"aria-label\": u,\n                    className: this._getItemClassName(o),\n                    \"data-ft\": this.props[\"data-ft\"],\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"right\",\n                    href: v.page,\n                    rel: \"async\"\n                }, j({\n                    contextArgs: this.props.contextArgs,\n                    count: this.props.reshares,\n                    iconClassName: \"UFIBlingBoxTimelineReshareIcon\"\n                }));\n                o.push(w);\n            }\n        ;\n            return (i.DOM.span(null, o));\n        },\n        _getItemClassName: function(o) {\n            return (((((o.length > 0) ? \"mls\" : \"\")) + ((\" \" + \"UFIBlingBoxTimelineItem\"))));\n        },\n        _getLikeToolTipURI: function() {\n            if (this.props.feedbackFBID) {\n                var o = new k(\"/ajax/timeline/likestooltip.php\").setQueryData({\n                    obj_fbid: this.props.feedbackFBID\n                });\n                return o.toString();\n            }\n             else return null\n        ;\n        },\n        _getProfileBrowserURI: function() {\n            if (this.props.feedbackFBID) {\n                var o = h.LIKES, p = {\n                    id: this.props.feedbackFBID\n                }, q = g.constructDialogURI(o, p), r = g.constructPageURI(o, p), s = {\n                    dialog: q.toString(),\n                    page: r.toString()\n                };\n                return s;\n            }\n        ;\n        },\n        _getShareViewURI: function() {\n            if (this.props.feedbackFBID) {\n                var o = new k(\"/ajax/shares/view\").setQueryData({\n                    target_fbid: this.props.feedbackFBID\n                }), p = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n                    id: this.props.feedbackFBID\n                }), q = {\n                    dialog: o.toString(),\n                    page: p.toString()\n                };\n                return q;\n            }\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"UFIUserActions\", [\"AsyncResponse\",\"CLoggerX\",\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"Nectar\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"MercuryServerDispatcher\",\"collectDataAttributes\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncResponse\"), h = b(\"CLoggerX\"), i = b(\"ClientIDs\"), j = b(\"ImmutableObject\"), k = b(\"JSLogger\"), l = b(\"Nectar\"), m = b(\"UFICentralUpdates\"), n = b(\"UFIComments\"), o = b(\"UFIConstants\"), p = b(\"UFIFeedbackTargets\"), q = b(\"MercuryServerDispatcher\"), r = b(\"collectDataAttributes\"), s = b(\"copyProperties\"), t = b(\"tx\"), u = k.create(\"UFIUserActions\"), v = {\n        BAN: \"ban\",\n        UNDO_BAN: \"undo_ban\"\n    }, w = {\n        changeCommentLike: function(ka, la, ma) {\n            var na = n.getComment(ka);\n            if ((na.hasviewerliked != la)) {\n                var oa = x(ma.target), pa = (la ? 1 : -1), qa = {\n                    commentid: ka,\n                    actiontype: o.UFIActionType.COMMENT_LIKE,\n                    viewerliked: la,\n                    likecount: (na.likecount + pa)\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    actions: [qa,]\n                });\n                q.trySend(\"/ajax/ufi/comment_like.php\", s({\n                    comment_id: ka,\n                    legacy_id: na.legacyid,\n                    like_action: la,\n                    ft_ent_identifier: na.ftentidentifier,\n                    source: ma.source,\n                    client_id: i.getNewClientID()\n                }, oa));\n            }\n        ;\n        },\n        addComment: function(ka, la, ma, na) {\n            p.getFeedbackTarget(ka, function(oa) {\n                var pa = x(na.target), qa = i.getNewClientID();\n                if (!oa.actorforpost) {\n                    return\n                };\n                var ra = {\n                    ftentidentifier: ka,\n                    body: {\n                        text: la\n                    },\n                    author: oa.actorforpost,\n                    id: qa,\n                    islocal: true,\n                    ufiinstanceid: na.ufiinstanceid,\n                    likecount: 0,\n                    hasviewerliked: false,\n                    parentcommentid: na.replyid,\n                    photo_comment: na.attachedphoto,\n                    timestamp: {\n                        time: Date.now(),\n                        text: \"a few seconds ago\"\n                    }\n                }, sa = {\n                    actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n                    actorid: oa.actorforpost,\n                    hasviewersubscribed: true,\n                    entidentifier: ka\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    comments: [ra,],\n                    actions: [sa,]\n                });\n                var ta = null;\n                if (na.replyid) {\n                    ta = (n.getComment(na.replyid)).fbid;\n                };\n                var ua = h.getCLParamsForTarget(na.target, ta);\n                q.trySend(\"/ajax/ufi/add_comment.php\", s({\n                    ft_ent_identifier: oa.entidentifier,\n                    comment_text: ma,\n                    source: na.source,\n                    client_id: qa,\n                    reply_fbid: ta,\n                    parent_comment_id: na.replyid,\n                    timeline_log_data: na.timelinelogdata,\n                    rootid: na.rootid,\n                    clp: ua,\n                    attached_photo_fbid: (na.attachedphoto ? na.attachedphoto.fbid : 0),\n                    giftoccasion: na.giftoccasion\n                }, pa));\n            });\n        },\n        editComment: function(ka, la, ma, na) {\n            var oa = x(na.target), pa = n.getComment(ka);\n            pa = j.set(pa, {\n                status: o.UFIStatus.PENDING_EDIT,\n                body: {\n                    text: la\n                },\n                timestamp: {\n                    time: Date.now(),\n                    text: \"a few seconds ago\"\n                },\n                originalTimestamp: pa.timestamp.time,\n                editnux: null,\n                attachment: null\n            });\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                comments: [pa,]\n            });\n            q.trySend(\"/ajax/ufi/edit_comment.php\", s({\n                ft_ent_identifier: pa.ftentidentifier,\n                comment_text: ma,\n                source: na.source,\n                comment_id: pa.id,\n                parent_comment_id: pa.parentcommentid,\n                attached_photo_fbid: (na.attachedPhoto ? na.attachedPhoto.fbid : 0)\n            }, oa));\n        },\n        translateComment: function(ka, la) {\n            q.trySend(\"/ajax/ufi/translate_comment.php\", {\n                ft_ent_identifier: ka.ftentidentifier,\n                comment_ids: [ka.id,],\n                source: la.source\n            });\n        },\n        setHideAsSpam: function(ka, la, ma) {\n            var na = x(ma.target), oa = n.getComment(ka), pa = {\n                commentid: ka,\n                actiontype: o.UFIActionType.COMMENT_SET_SPAM,\n                shouldHideAsSpam: la\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [pa,]\n            });\n            q.trySend(\"/ajax/ufi/comment_spam.php\", s({\n                comment_id: ka,\n                spam_action: la,\n                ft_ent_identifier: oa.ftentidentifier,\n                source: ma.source\n            }, na));\n        },\n        removeComment: function(ka, la) {\n            var ma = x(la.target), na = n.getComment(ka), oa = {\n                actiontype: o.UFIActionType.DELETE_COMMENT,\n                commentid: ka,\n                oneclick: la.oneclick\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [oa,]\n            });\n            q.trySend(\"/ajax/ufi/delete_comment.php\", s({\n                comment_id: na.id,\n                comment_legacyid: na.legacyid,\n                ft_ent_identifier: na.ftentidentifier,\n                one_click: la.oneclick,\n                source: la.source,\n                client_id: i.getNewClientID(),\n                timeline_log_data: la.timelinelogdata\n            }, ma));\n        },\n        undoRemoveComment: function(ka, la, ma) {\n            var na = n.getComment(ka);\n            if (!na.undoData) {\n                u.error(\"noundodata\", {\n                    comment: ka\n                });\n                return;\n            }\n        ;\n            var oa = x(ma.target), pa = {\n                actiontype: o.UFIActionType.UNDO_DELETE_COMMENT,\n                commentid: ka\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [pa,]\n            });\n            var qa = na.undoData;\n            qa.page_admin = la;\n            var ra = s(oa, qa);\n            q.trySend(\"/ajax/ufi/undo_delete_comment.php\", ra);\n        },\n        banUser: function(ka, la, ma, na) {\n            var oa = (ma ? v.BAN : v.UNDO_BAN);\n            q.trySend(\"/ajax/ufi/ban_user.php\", {\n                page_id: la,\n                commenter_id: ka.author,\n                action: oa,\n                comment_id: ka.id,\n                client_side: true\n            });\n        },\n        changeLike: function(ka, la, ma) {\n            p.getFeedbackTarget(ka, function(na) {\n                var oa = x(ma.target);\n                if ((na.hasviewerliked !== la)) {\n                    var pa = (la ? 1 : -1), qa = {\n                        actiontype: o.UFIActionType.LIKE_ACTION,\n                        actorid: na.actorforpost,\n                        hasviewerliked: la,\n                        likecount: (na.likecount + pa),\n                        entidentifier: ka,\n                        likesentences: {\n                            current: na.likesentences.alternate,\n                            alternate: na.likesentences.current\n                        }\n                    };\n                    m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                        actions: [qa,]\n                    });\n                    q.trySend(\"/ajax/ufi/like.php\", s({\n                        like_action: la,\n                        ft_ent_identifier: ka,\n                        source: ma.source,\n                        client_id: i.getNewClientID(),\n                        rootid: ma.rootid,\n                        giftoccasion: ma.giftoccasion\n                    }, oa));\n                }\n            ;\n            });\n        },\n        changeSubscribe: function(ka, la, ma) {\n            p.getFeedbackTarget(ka, function(na) {\n                var oa = x(ma.target);\n                if ((na.hasviewersubscribed !== la)) {\n                    var pa = {\n                        actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n                        actorid: na.actorforpost,\n                        hasviewersubscribed: la,\n                        entidentifier: ka\n                    };\n                    m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                        actions: [pa,]\n                    });\n                    q.trySend(\"/ajax/ufi/subscribe.php\", s({\n                        subscribe_action: la,\n                        ft_ent_identifier: ka,\n                        source: ma.source,\n                        client_id: i.getNewClientID(),\n                        rootid: ma.rootid,\n                        comment_expand_mode: ma.commentexpandmode\n                    }, oa));\n                }\n            ;\n            });\n        },\n        fetchSpamComments: function(ka, la, ma, na) {\n            q.trySend(\"/ajax/ufi/id_comment_fetch.php\", {\n                ft_ent_identifier: ka,\n                viewas: na,\n                comment_ids: la,\n                parent_comment_id: ma,\n                source: null\n            });\n        },\n        removePreview: function(ka, la) {\n            var ma = x(la.target), na = {\n                commentid: ka.id,\n                actiontype: o.UFIActionType.REMOVE_PREVIEW\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [na,]\n            });\n            q.trySend(\"/ajax/ufi/remove_preview.php\", s({\n                comment_id: ka.id,\n                ft_ent_identifier: ka.ftentidentifier,\n                source: la.source\n            }, ma));\n        }\n    };\n    function x(ka) {\n        if (!ka) {\n            return {\n                ft: {\n                }\n            }\n        };\n        var la = {\n            ft: r(ka, [\"ft\",]).ft\n        };\n        l.addModuleData(la, ka);\n        return la;\n    };\n    function y(ka) {\n        var la = ka.request.data;\n        g.defaultErrorHandler(ka);\n        var ma = (la.client_id || la.comment_id), na = n.getComment(ma), oa = (((na.status === o.UFIStatus.PENDING_EDIT)) ? o.UFIStatus.FAILED_EDIT : o.UFIStatus.FAILED_ADD);\n        na = j.setDeep(na, {\n            status: oa,\n            allowRetry: z(ka),\n            body: {\n                mentionstext: la.comment_text\n            }\n        });\n        m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n            comments: [na,]\n        });\n    };\n    function z(ka) {\n        var la = ka.getError();\n        if ((la === 1404102)) {\n            return false\n        };\n        if (ka.silentError) {\n            return true\n        };\n        if (((la === 1357012) || (la === 1357006))) {\n            return false\n        };\n        return true;\n    };\n    function aa(ka) {\n        var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n        na = j.set(na, {\n            status: (na.priorstatus || null),\n            priorstatus: undefined\n        });\n        m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n            comments: [na,]\n        });\n    };\n    function ba(ka) {\n        var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n        if ((la.like_action === na.hasviewerliked)) {\n            var oa = (na.hasviewerliked ? -1 : 1), pa = {\n                commentid: ma,\n                actiontype: o.UFIActionType.COMMENT_LIKE,\n                viewerliked: !na.hasviewerliked,\n                likecount: (na.likecount + oa)\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [pa,]\n            });\n        }\n    ;\n        g.defaultErrorHandler(ka);\n    };\n    function ca(ka) {\n        var la = ka.request.data, ma = la.ft_ent_identifier;\n        p.getFeedbackTarget(ma, function(na) {\n            if ((na.hasviewerliked === la.like_action)) {\n                var oa = (na.hasviewerliked ? -1 : 1), pa = {\n                    actiontype: o.UFIActionType.LIKE_ACTION,\n                    actorid: na.actorforpost,\n                    hasviewerliked: !na.hasviewerliked,\n                    likecount: (na.likecount + oa),\n                    entidentifier: ma,\n                    likesentences: {\n                        current: na.likesentences.alternate,\n                        alternate: na.likesentences.current\n                    }\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    actions: [pa,]\n                });\n            }\n        ;\n        });\n        g.defaultErrorHandler(ka);\n    };\n    function da(ka) {\n        var la = ka.request.data, ma = la.ft_ent_identifier;\n        p.getFeedbackTarget(ma, function(na) {\n            if ((na.hasviewersubscribed === la.subscribe_action)) {\n                var oa = {\n                    actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n                    actorid: na.actorforpost,\n                    hasviewersubscribed: !na.hasviewersubscribed,\n                    entidentifier: ma\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    actions: [oa,]\n                });\n            }\n        ;\n        });\n        g.defaultErrorHandler(ka);\n    };\n    var ea = function(ka) {\n        return m.handleUpdate.bind(m, ka);\n    }, fa = o.UFIPayloadSourceType;\n    q.registerEndpoints({\n        \"/ajax/ufi/comment_like.php\": {\n            mode: q.BATCH_CONDITIONAL,\n            handler: ea(fa.ENDPOINT_COMMENT_LIKE),\n            error_handler: ba,\n            batch_if: ga,\n            batch_function: ja\n        },\n        \"/ajax/ufi/comment_spam.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_COMMENT_SPAM),\n            error_handler: aa\n        },\n        \"/ajax/ufi/add_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_ADD_COMMENT),\n            error_handler: y\n        },\n        \"/ajax/ufi/delete_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_DELETE_COMMENT),\n            error_handler: aa\n        },\n        \"/ajax/ufi/undo_delete_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_UNDO_DELETE_COMMENT),\n            error_handler: aa\n        },\n        \"/ajax/ufi/ban_user.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_BAN)\n        },\n        \"/ajax/ufi/edit_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_EDIT_COMMENT),\n            error_handler: y\n        },\n        \"/ajax/ufi/like.php\": {\n            mode: q.BATCH_CONDITIONAL,\n            handler: ea(fa.ENDPOINT_LIKE),\n            error_handler: ca,\n            batch_if: ha,\n            batch_function: ja\n        },\n        \"/ajax/ufi/subscribe.php\": {\n            mode: q.BATCH_CONDITIONAL,\n            handler: ea(fa.ENDPOINT_SUBSCRIBE),\n            error_handler: da,\n            batch_if: ia,\n            batch_function: ja\n        },\n        \"/ajax/ufi/id_comment_fetch.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_ID_COMMENT_FETCH)\n        },\n        \"/ajax/ufi/remove_preview.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_REMOVE_PREVIEW)\n        },\n        \"/ajax/ufi/translate_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_TRANSLATE_COMMENT)\n        }\n    });\n    function ga(ka, la) {\n        return ((ka && (ka.ft_ent_identifier == la.ft_ent_identifier)) && (ka.comment_id == la.comment_id));\n    };\n    function ha(ka, la) {\n        return (ka && (ka.ft_ent_identifier == la.ft_ent_identifier));\n    };\n    function ia(ka, la) {\n        return (ka && (ka.ft_ent_identifier == la.ft_ent_identifier));\n    };\n    function ja(ka, la) {\n        return la;\n    };\n    e.exports = w;\n});\n__d(\"UFIActionLinkController\", [\"Arbiter\",\"ClickTTIIdentifiers\",\"CSS\",\"DOMQuery\",\"Parent\",\"React\",\"TrackingNodes\",\"UFIBlingBox.react\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFILikeLink.react\",\"UFISubscribeLink.react\",\"UFITimelineBlingBox.react\",\"UFIUserActions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ClickTTIIdentifiers\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"Parent\"), l = b(\"React\"), m = b(\"TrackingNodes\"), n = b(\"UFIBlingBox.react\"), o = b(\"UFICentralUpdates\"), p = b(\"UFIComments\"), q = b(\"UFIConstants\"), r = b(\"UFIFeedbackTargets\"), s = b(\"UFILikeLink.react\"), t = b(\"UFISubscribeLink.react\"), u = b(\"UFITimelineBlingBox.react\"), v = b(\"UFIUserActions\"), w = b(\"copyProperties\");\n    function x(z, aa, ba) {\n        if (this._root) {\n            throw new Error((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\"))\n        };\n        var ca = j.scry(z, aa)[0];\n        if (ca) {\n            var da = document.createElement(\"span\");\n            ca.parentNode.replaceChild(da, ca);\n            da.appendChild(ca);\n            if ((typeof ba === \"function\")) {\n                ba(da);\n            };\n        }\n         else var ea = g.subscribe(\"PhotoSnowlift.DATA_CHANGE\", function() {\n            g.unsubscribe(ea);\n            x(z, aa, ba);\n        }, g.SUBSCRIBE_NEW)\n    ;\n    };\n    var y = function(z, aa, ba) {\n        this._id = aa.ftentidentifier;\n        this._ftFBID = ba.targetfbid;\n        this._source = aa.source;\n        this._contextArgs = aa;\n        this._ufiRoot = z;\n        if (this._isSourceProfile(this._contextArgs.source)) {\n            this._attemptInitializeTimelineBling();\n        }\n         else this._attemptInitializeBling();\n    ;\n        if (ba.viewercanlike) {\n            this._attemptInitializeLike();\n        };\n        if (ba.viewercansubscribetopost) {\n            this._attemptInitializeSubscribe();\n        };\n        o.subscribe(\"feedback-updated\", function(ca, da) {\n            var ea = da.updates;\n            if ((this._id in ea)) {\n                this.render();\n            };\n        }.bind(this));\n        o.subscribe(\"feedback-id-changed\", function(ca, da) {\n            var ea = da.updates;\n            if ((this._id in ea)) {\n                this._id = ea[this._id];\n            };\n        }.bind(this));\n    };\n    w(y.prototype, {\n        _attemptInitializeBling: function() {\n            x(this._ufiRoot, \"^form .uiBlingBox\", function(z) {\n                this._blingRoot = z;\n                if (this._dataReady) {\n                    this._renderBling();\n                };\n            }.bind(this));\n        },\n        _attemptInitializeTimelineBling: function() {\n            if (this._root) {\n                throw new Error((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\"))\n            };\n            var z = j.scry(this._ufiRoot, \"^form .fbTimelineFeedbackActions span\")[0];\n            if (z) {\n                i.addClass(z, \"UFIBlingBoxTimeline\");\n                var aa = j.scry(z, \".fbTimelineFeedbackLikes\")[0];\n                this._enableShowLikes = (aa ? true : false);\n                var ba = j.scry(z, \".fbTimelineFeedbackComments\")[0];\n                this._enableShowComments = (ba ? true : false);\n            }\n        ;\n            this._blingTimelineRoot = z;\n            if (this._dataReady) {\n                this._renderTimelineBling();\n            };\n        },\n        _attemptInitializeLike: function() {\n            x(this._ufiRoot, \"^form .like_link\", function(z) {\n                this._likeRoot = z;\n                if (this._dataReady) {\n                    this._renderLike();\n                };\n            }.bind(this));\n        },\n        _attemptInitializeSubscribe: function() {\n            x(this._ufiRoot, \"^form .unsub_link\", function(z) {\n                this._subscribeRoot = z;\n                if (this._dataReady) {\n                    this._renderSubscribe();\n                };\n            }.bind(this));\n        },\n        render: function() {\n            this._dataReady = true;\n            if (this._isSourceProfile(this._contextArgs.source)) {\n                this._renderTimelineBling();\n            }\n             else this._renderBling();\n        ;\n            this._renderLike();\n            this._renderSubscribe();\n        },\n        _renderBling: function() {\n            if (this._blingRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = function(event) {\n                        var da = k.byTag(event.target, \"form\");\n                        i.toggleClass(da, \"collapsed_comments\");\n                        i.toggleClass(da, \"hidden_add_comment\");\n                        event.preventDefault();\n                    }.bind(this), ba = m.getTrackingInfo(m.types.BLINGBOX), ca = n({\n                        likes: z.likecount,\n                        comments: p.getDisplayedCommentCount(this._id),\n                        reshares: z.sharecount,\n                        permalink: z.permalink,\n                        contextArgs: this._contextArgs,\n                        onClick: aa,\n                        \"data-ft\": ba\n                    });\n                    this._blingBox = l.renderComponent(ca, this._blingRoot);\n                }.bind(this));\n            };\n        },\n        _renderTimelineBling: function() {\n            if (this._blingTimelineRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = m.getTrackingInfo(m.types.BLINGBOX), ba = h.getUserActionID(h.types.TIMELINE_SEE_LIKERS), ca = function(event) {\n                        var ea = k.byTag(event.target, \"form\");\n                        i.removeClass(ea, \"collapsed_comments\");\n                        var fa = j.scry(ea, \"a.UFIPagerLink\");\n                        if (fa.length) {\n                            fa[0].click();\n                        };\n                        event.preventDefault();\n                    }.bind(this), da = u({\n                        comments: p.getDisplayedCommentCount(this._id),\n                        commentOnClick: ca,\n                        contextArgs: this._contextArgs,\n                        \"data-ft\": aa,\n                        \"data-gt\": ba,\n                        enableShowComments: this._enableShowComments,\n                        enableShowLikes: this._enableShowLikes,\n                        feedbackFBID: this._ftFBID,\n                        likes: z.likecount,\n                        reshares: z.sharecount\n                    });\n                    l.renderComponent(da, this._blingTimelineRoot);\n                }.bind(this));\n            };\n        },\n        _renderLike: function() {\n            if (this._likeRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = !z.hasviewerliked, ba = function(event) {\n                        v.changeLike(this._id, aa, {\n                            source: this._source,\n                            target: event.target,\n                            rootid: this._contextArgs.rootid,\n                            giftoccasion: this._contextArgs.giftoccasion\n                        });\n                        event.preventDefault();\n                    }.bind(this), ca = s({\n                        onClick: ba,\n                        likeAction: aa\n                    });\n                    this._likeLink = l.renderComponent(ca, this._likeRoot);\n                }.bind(this));\n            };\n        },\n        _renderSubscribe: function() {\n            if (this._subscribeRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = !z.hasviewersubscribed, ba = function(event) {\n                        v.changeSubscribe(this._id, aa, {\n                            source: this._source,\n                            target: event.target,\n                            rootid: this._contextArgs.rootid,\n                            commentexpandmode: z.commentexpandmode\n                        });\n                        event.preventDefault();\n                    }.bind(this), ca = t({\n                        onClick: ba,\n                        subscribeAction: aa\n                    });\n                    this._subscribeLink = l.renderComponent(ca, this._subscribeRoot);\n                }.bind(this));\n            };\n        },\n        _isSourceProfile: function(z) {\n            return (z === q.UFIFeedbackSourceType.PROFILE);\n        }\n    });\n    e.exports = y;\n});\n__d(\"MentionsInputUtils\", [], function(a, b, c, d, e, f) {\n    var g = {\n        generateDataFromTextWithEntities: function(h) {\n            var i = h.text, j = [];\n            ((h.ranges || [])).forEach(function(l) {\n                var m = l.entities[0];\n                if (!m.external) {\n                    j.push({\n                        uid: m.id,\n                        text: i.substr(l.offset, l.length),\n                        offset: l.offset,\n                        length: l.length,\n                        weakreference: !!m.weakreference\n                    });\n                };\n            });\n            var k = {\n                value: i,\n                mentions: j\n            };\n            return k;\n        }\n    };\n    e.exports = g;\n});\n__d(\"ClipboardPhotoUploader\", [\"ArbiterMixin\",\"AsyncRequest\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\");\n    function j(k, l) {\n        this.uploadURIString = k;\n        this.data = l;\n    };\n    i(j.prototype, g, {\n        handlePaste: function(event) {\n            if (!event.clipboardData) {\n                return\n            };\n            var k = event.clipboardData.items;\n            if (!k) {\n                return\n            };\n            for (var l = 0; (l < k.length); ++l) {\n                var m = k[l];\n                if (((m.kind === \"file\") && (m.type.indexOf(\"image/\") !== -1))) {\n                    var n = new FormData();\n                    n.append(\"pasted_file\", m.getAsFile());\n                    var o = new h();\n                    o.setURI(this.uploadURIString).setData(this.data).setRawData(n).setHandler(function(p) {\n                        this.inform(\"upload_success\", p);\n                    }.bind(this)).setErrorHandler(function(p) {\n                        this.inform(\"upload_error\", p);\n                    }.bind(this));\n                    this.inform(\"upload_start\");\n                    o.send();\n                    break;\n                }\n            ;\n            };\n        }\n    });\n    e.exports = j;\n});\n__d(\"CloseButton.react\", [\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"cx\"), i = g.createClass({\n        displayName: \"CloseButton\",\n        render: function() {\n            var j = this.props, k = (j.size || \"medium\"), l = (j.appearance || \"normal\"), m = (k === \"small\"), n = (k === \"huge\"), o = (l === \"dark\"), p = (l === \"inverted\"), q = ((((((((\"uiCloseButton\") + ((m ? (\" \" + \"uiCloseButtonSmall\") : \"\"))) + ((n ? (\" \" + \"uiCloseButtonHuge\") : \"\"))) + (((m && o) ? (\" \" + \"uiCloseButtonSmallDark\") : \"\"))) + (((m && p) ? (\" \" + \"uiCloseButtonSmallInverted\") : \"\"))) + (((!m && o) ? (\" \" + \"uiCloseButtonDark\") : \"\"))) + (((!m && p) ? (\" \" + \"uiCloseButtonInverted\") : \"\"))));\n            return this.transferPropsTo(g.DOM.a({\n                href: \"#\",\n                role: \"button\",\n                \"aria-label\": j.tooltip,\n                \"data-hover\": (j.tooltip && \"tooltip\"),\n                \"data-tooltip-alignh\": (j.tooltip && \"center\"),\n                className: q\n            }));\n        }\n    });\n    e.exports = i;\n});\n__d(\"LoadingIndicator.react\", [\"React\",\"joinClasses\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"joinClasses\"), i = b(\"keyMirror\"), j = b(\"merge\"), k = i({\n        white: true,\n        blue: true,\n        black: true\n    }), l = i({\n        small: true,\n        medium: true,\n        large: true\n    }), m = {\n        white: {\n            large: \"/images/loaders/indicator_blue_large.gif\",\n            medium: \"/images/loaders/indicator_blue_medium.gif\",\n            small: \"/images/loaders/indicator_blue_small.gif\"\n        },\n        blue: {\n            large: \"/images/loaders/indicator_white_large.gif\",\n            small: \"/images/loaders/indicator_white_small.gif\"\n        },\n        black: {\n            large: \"/images/loaders/indicator_black.gif\"\n        }\n    }, n = g.createClass({\n        displayName: \"LoadingIndicator\",\n        render: function() {\n            var o = this.props.color, p = this.props.size;\n            if (!m[o]) {\n                return g.DOM.span(null)\n            };\n            if (!m[o][p]) {\n                return g.DOM.span(null)\n            };\n            var q = ((this.props.showonasync ? \"uiLoadingIndicatorAsync\" : \"\"));\n            if (this.props.className) {\n                q = h(this.props.className, q);\n            };\n            var r = m[o][p], s = g.DOM.img({\n                src: r,\n                className: q\n            });\n            s.props = j(this.props, s.props);\n            return s;\n        }\n    });\n    n.SIZES = l;\n    n.COLORS = k;\n    e.exports = n;\n});\n__d(\"LegacyMentionsInput.react\", [\"PlaceholderListener\",\"Bootloader\",\"Event\",\"Keys\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    b(\"PlaceholderListener\");\n    var g = b(\"Bootloader\"), h = b(\"Event\"), i = b(\"Keys\"), j = b(\"React\"), k = b(\"cx\"), l = j.createClass({\n        displayName: \"ReactLegacyMentionsInput\",\n        componentDidMount: function(m) {\n            (this.props.initialData && this._initializeTextarea(m));\n        },\n        hasEnteredText: function() {\n            return !!((this._mentionsInput && this._mentionsInput.getValue().trim()));\n        },\n        _handleKeydown: function(event) {\n            var m = event.nativeEvent, n = this.props.onEnterSubmit, o = ((h.getKeyCode(m) == i.RETURN) && !h.$E(m).getModifiers().any), p = (this._mentionsInput && this._mentionsInput.getTypeahead().getView().getSelection());\n            if (((n && o) && !p)) {\n                if (this.props.isLoadingPhoto) {\n                    return false\n                };\n                var q = event.target, r = (q.value && q.value.trim());\n                if ((r || this.props.acceptEmptyInput)) {\n                    var s = {\n                        visibleValue: r,\n                        encodedValue: r,\n                        attachedPhoto: null\n                    };\n                    if (this._mentionsInput) {\n                        s.encodedValue = this._mentionsInput.getRawValue().trim();\n                        this._mentionsInput.reset();\n                    }\n                ;\n                    n(s, event);\n                }\n            ;\n                event.preventDefault();\n            }\n        ;\n        },\n        _handleFocus: function() {\n            (this.props.onFocus && this.props.onFocus());\n            this._initializeTextarea(this.refs.root.getDOMNode());\n        },\n        _handleBlur: function() {\n            (this.props.onBlur && this.props.onBlur());\n        },\n        _initializeTextarea: function(m) {\n            if ((this._mentionsInput || this._bootloadingMentions)) {\n                return\n            };\n            this._bootloadingMentions = true;\n            g.loadModules([\"CompactTypeaheadRenderer\",\"ContextualTypeaheadView\",\"InputSelection\",\"MentionsInput\",\"TextAreaControl\",\"Typeahead\",\"TypeaheadAreaCore\",\"TypeaheadBestName\",\"TypeaheadHoistFriends\",\"TypeaheadMetrics\",\"TypingDetector\",], function(n, o, p, q, r, s, t, u, v, w, x) {\n                var y = this.refs.textarea.getDOMNode();\n                new r(y);\n                if (this.props.onTypingStateChange) {\n                    var z = new x(y);\n                    z.init();\n                    z.subscribe(\"change\", this.props.onTypingStateChange);\n                }\n            ;\n                var aa = {\n                    autoSelect: true,\n                    renderer: n,\n                    causalElement: y\n                };\n                if (this.props.viewOptionsTypeObjects) {\n                    aa.typeObjects = this.props.viewOptionsTypeObjects;\n                };\n                if (this.props.viewOptionsTypeObjectsOrder) {\n                    aa.typeObjectsOrder = this.props.viewOptionsTypeObjectsOrder;\n                };\n                var ba = new s(this.props.datasource, {\n                    ctor: o,\n                    options: aa\n                }, {\n                    ctor: t\n                }, this.refs.typeahead.getDOMNode()), ca = [u,v,], da = new w({\n                    extraData: {\n                        event_name: \"mentions\"\n                    }\n                });\n                s.initNow(ba, ca, da);\n                this._mentionsInput = new q(m, ba, y, {\n                    hashtags: this.props.sht\n                });\n                this._mentionsInput.init({\n                    max: 6\n                }, this.props.initialData);\n                if (this.props.initialData) {\n                    p.set(y, y.value.length);\n                };\n                if (this.props.onPaste) {\n                    h.listen(y, \"paste\", this.props.onPaste);\n                };\n                this._bootloadingMentions = false;\n            }.bind(this));\n        },\n        focus: function() {\n            try {\n                this.refs.textarea.getDOMNode().focus();\n            } catch (m) {\n            \n            };\n        },\n        render: function() {\n            var m = (((((((\"textInput\") + ((\" \" + \"mentionsTextarea\"))) + ((\" \" + \"uiTextareaAutogrow\"))) + ((\" \" + \"uiTextareaNoResize\"))) + ((\" \" + \"UFIAddCommentInput\"))) + ((\" \" + \"DOMControl_placeholder\"))));\n            return (j.DOM.div({\n                ref: \"root\",\n                className: \"uiMentionsInput textBoxContainer ReactLegacyMentionsInput\"\n            }, j.DOM.div({\n                className: \"highlighter\"\n            }, j.DOM.div(null, j.DOM.span({\n                className: \"highlighterContent hidden_elem\"\n            }))), j.DOM.div({\n                ref: \"typeahead\",\n                className: \"uiTypeahead mentionsTypeahead\"\n            }, j.DOM.div({\n                className: \"wrap\"\n            }, j.DOM.input({\n                type: \"hidden\",\n                autocomplete: \"off\",\n                className: \"hiddenInput\"\n            }), j.DOM.div({\n                className: \"innerWrap\"\n            }, j.DOM.textarea({\n                ref: \"textarea\",\n                name: \"add_comment_text\",\n                className: m,\n                title: this.props.placeholder,\n                placeholder: this.props.placeholder,\n                onFocus: this._handleFocus,\n                onBlur: this._handleBlur,\n                onKeyDown: this._handleKeydown,\n                defaultValue: this.props.placeholder\n            })))), j.DOM.input({\n                type: \"hidden\",\n                autocomplete: \"off\",\n                className: \"mentionsHidden\",\n                defaultValue: \"\"\n            })));\n        }\n    });\n    e.exports = l;\n});\n__d(\"UFIClassNames\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\");\n    e.exports = {\n        ACTOR_IMAGE: \"img UFIActorImage _54ru\",\n        ROW: \"UFIRow\",\n        UNSEEN_ITEM: \"UFIUnseenItem\"\n    };\n});\n__d(\"LeftRight.react\", [\"React\",\"cx\",\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"cx\"), i = b(\"keyMirror\"), j = b(\"throwIf\"), k = i({\n        left: true,\n        right: true,\n        both: true\n    });\n    function l(n) {\n        j(((!n.children || (n.children.length < 1)) || (n.children.length > 2)), \"LeftRight component must have one or two children.\");\n    };\n    var m = g.createClass({\n        displayName: \"LeftRight\",\n        render: function() {\n            l(this.props);\n            var n = (this.props.direction || k.both), o = ((n === k.both)), p = g.DOM.div({\n                key: \"left\",\n                className: (((o || (n === k.left)) ? \"lfloat\" : \"\"))\n            }, this.props.children[0]), q = (((this.props.children.length < 2)) ? null : g.DOM.div({\n                key: \"right\",\n                className: (((o || (n === k.right)) ? \"rfloat\" : \"\"))\n            }, this.props.children[1])), r = ((((n === k.right) && q)) ? [q,p,] : [p,q,]);\n            return this.transferPropsTo(g.DOM.div({\n                className: \"clearfix\"\n            }, r));\n        }\n    });\n    m.DIRECTION = k;\n    e.exports = m;\n});\n__d(\"ImageBlock.react\", [\"LeftRight.react\",\"React\",\"cx\",\"joinClasses\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"throwIf\");\n    function l(p) {\n        k(((!p.children || (p.children.length > 3)) || (p.children.length < 1)), \"ImageBlock requires two or three children.\");\n    };\n    function m(p) {\n        return ((((((\"img\") + ((\" \" + \"_8o\"))) + (((p === \"small\") ? (\" \" + \"_8r\") : \"\"))) + (((p === \"medium\") ? (\" \" + \"_8s\") : \"\"))) + (((p === \"large\") ? (\" \" + \"_8t\") : \"\"))));\n    };\n    function n(p, q, r) {\n        p.props.className = j(m(q), p.props.className, r);\n    };\n    var o = h.createClass({\n        displayName: \"ImageBlock\",\n        render: function() {\n            l(this.props);\n            var p = this.props.children[0], q = this.props.children[1], r = this.props.children[2], s = (this.props.spacing || \"small\");\n            n(p, s, this.props.imageClassName);\n            var t = j(this.props.contentClassName, (((\"_42ef\") + (((s === \"small\") ? (\" \" + \"_8u\") : \"\")))));\n            if ((p.tagName == \"IMG\")) {\n                if ((p.props.alt === undefined)) {\n                    p.props.alt = \"\";\n                };\n            }\n             else if (((((((p.tagName == \"A\") || (p.tagName == \"LINK\"))) && (p.props.tabIndex === undefined)) && (p.props.title === undefined)) && (p.props[\"aria-label\"] === undefined))) {\n                p.props.tabIndex = \"-1\";\n                p.props[\"aria-hidden\"] = \"true\";\n            }\n            \n        ;\n            var u;\n            if (!r) {\n                u = h.DOM.div({\n                    className: t\n                }, q);\n            }\n             else u = g({\n                className: t,\n                direction: g.DIRECTION.right\n            }, q, r);\n        ;\n            return this.transferPropsTo(g({\n                direction: g.DIRECTION.left\n            }, p, u));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFIImageBlock.react\", [\"ImageBlock.react\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ImageBlock.react\"), h = b(\"React\"), i = b(\"cx\"), j = h.createClass({\n        displayName: \"UFIImageBlock\",\n        render: function() {\n            return this.transferPropsTo(g({\n                imageClassName: \"UFIImageBlockImage\",\n                contentClassName: \"UFIImageBlockContent\"\n            }, this.props.children));\n        }\n    });\n    e.exports = j;\n});\n__d(\"UFIAddComment.react\", [\"Bootloader\",\"CLogConfig\",\"ClipboardPhotoUploader\",\"CloseButton.react\",\"Event\",\"Keys\",\"LoadingIndicator.react\",\"React\",\"LegacyMentionsInput.react\",\"TrackingNodes\",\"Run\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CLogConfig\"), i = b(\"ClipboardPhotoUploader\"), j = b(\"CloseButton.react\"), k = b(\"Event\"), l = b(\"Keys\"), m = b(\"LoadingIndicator.react\"), n = b(\"React\"), o = b(\"LegacyMentionsInput.react\"), p = b(\"TrackingNodes\"), q = b(\"Run\"), r = b(\"UFIClassNames\"), s = b(\"UFIImageBlock.react\"), t = b(\"cx\"), u = b(\"joinClasses\"), v = b(\"tx\"), w = \"Write a comment...\", x = \"Write a reply...\", y = \"fcg fss UFICommentTip\", z = 19, aa = \"/ajax/ufi/upload/\", ba = n.createClass({\n        displayName: \"UFIAddComment\",\n        getInitialState: function() {\n            if (this.props.attachedPhoto) {\n                this.props.contextArgs.attachedphoto = this.props.attachedPhoto;\n            };\n            return {\n                attachedPhoto: (this.props.attachedPhoto ? this.props.attachedPhoto : null),\n                isCommenting: false,\n                isLoadingPhoto: false,\n                isOnBeforeUnloadListenerAdded: false\n            };\n        },\n        _onKeyDown: function(event) {\n            if ((this.props.isEditing && (k.getKeyCode(event.nativeEvent) === l.ESC))) {\n                this.props.onCancel();\n            };\n            if ((this.isMounted() && !this.state.isOnBeforeUnloadListenerAdded)) {\n                q.onBeforeUnload(this._handleUnsavedChanges);\n                this.setState({\n                    isOnBeforeUnloadListenerAdded: true\n                });\n            }\n        ;\n        },\n        _handleUnsavedChanges: function() {\n            var ca = a.PageTransitions;\n            if (ca) {\n                var da = ca.getNextURI(), ea = ca.getMostRecentURI();\n                if ((da.getQueryData().hasOwnProperty(\"theater\") || ea.getQueryData().hasOwnProperty(\"theater\"))) {\n                    return\n                };\n            }\n        ;\n            if (((this.refs && this.refs.mentionsinput) && this.refs.mentionsinput.hasEnteredText())) {\n                return \"You haven't finished your comment yet. Do you want to leave without finishing?\"\n            };\n        },\n        _blur: function() {\n            if ((this.refs.mentionsinput && this.refs.mentionsinput.hasEnteredText())) {\n                return\n            };\n            this.setState({\n                isCommenting: false\n            });\n        },\n        _onPaste: function(event) {\n            var ca = new i(aa, this._getPhotoUploadData());\n            this._cancelCurrentSubscriptions();\n            this._subscriptions = [ca.subscribe(\"upload_start\", this._prepareForAttachedPhotoPreview),ca.subscribe(\"upload_error\", this._onRemoveAttachedPhotoPreviewClicked),ca.subscribe(\"upload_success\", function(da, ea) {\n                this._onPhotoUploadComplete(ea);\n            }.bind(this)),];\n            ca.handlePaste(event);\n        },\n        _cancelCurrentSubscriptions: function() {\n            if (this._subscriptions) {\n                this._subscriptions.forEach(function(ca) {\n                    ca.unsubscribe();\n                });\n            };\n        },\n        componentWillUnmount: function() {\n            this._cancelCurrentSubscriptions();\n        },\n        focus: function() {\n            if ((this.refs && this.refs.mentionsinput)) {\n                this.refs.mentionsinput.focus();\n            };\n        },\n        render: function() {\n            var ca = (!this.props.contextArgs.collapseaddcomment || this.state.isCommenting), da = null;\n            if (this.props.isEditing) {\n                da = n.DOM.span({\n                    className: y\n                }, \"Press Esc to cancel.\");\n            }\n             else if (this.props.showSendOnEnterTip) {\n                da = n.DOM.span({\n                    className: y\n                }, \"Press Enter to post.\");\n            }\n             else if (this.props.subtitle) {\n                da = n.DOM.span({\n                    className: y\n                }, this.props.subtitle);\n            }\n            \n        ;\n            var ea = null, fa = this.state.attachedPhoto, ga = null;\n            if (this.props.allowPhotoAttachments) {\n                ga = this._onPaste;\n                var ha = n.DOM.input({\n                    ref: \"PhotoInput\",\n                    accept: \"image/*\",\n                    className: \"_n\",\n                    name: \"file[]\",\n                    type: \"file\",\n                    multiple: false\n                }), ia = (fa ? \"UFICommentPhotoAttachedIcon\" : \"UFICommentPhotoIcon\"), ja = \"UFIPhotoAttachLinkWrapper _m\";\n                ea = n.DOM.div({\n                    ref: \"PhotoInputContainer\",\n                    className: ja,\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"center\",\n                    \"aria-label\": \"Attach a Photo\"\n                }, n.DOM.i({\n                    ref: \"PhotoInputControl\",\n                    className: ia\n                }), ha);\n            }\n        ;\n            var ka = p.getTrackingInfo(p.types.ADD_COMMENT_BOX), la = u(r.ACTOR_IMAGE, ((!ca ? \"hidden_elem\" : \"\"))), ma = n.DOM.div({\n                className: \"UFIReplyActorPhotoWrapper\"\n            }, n.DOM.img({\n                className: la,\n                src: this.props.viewerActor.thumbSrc\n            })), na = u(r.ROW, ((((((((this.props.hide ? \"noDisplay\" : \"\")) + ((\" \" + \"UFIAddComment\"))) + ((this.props.allowPhotoAttachments ? (\" \" + \"UFIAddCommentWithPhotoAttacher\") : \"\"))) + ((this.props.withoutSeparator ? (\" \" + \"UFIAddCommentWithoutSeparator\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), oa = (!!this.props.replyCommentID ? x : w), pa = (this.props.contextArgs.entstream ? this._blur : null), qa = this.props.contextArgs.viewoptionstypeobjects, ra = this.props.contextArgs.viewoptionstypeobjectsorder, sa = null, ta = this.props.onCommentSubmit;\n            if (fa) {\n                sa = n.DOM.div({\n                    isStatic: true,\n                    dangerouslySetInnerHTML: (this.state.attachedPhoto.markupPreview ? this.state.attachedPhoto.markupPreview : this.state.attachedPhoto.markup)\n                });\n                da = null;\n            }\n             else if (this.state.isLoadingPhoto) {\n                sa = m({\n                    color: \"white\",\n                    className: \"UFICommentPhotoAttachedPreviewLoadingIndicator\",\n                    size: \"medium\"\n                });\n            }\n        ;\n            var ua;\n            if ((sa != null)) {\n                ua = n.DOM.div({\n                    className: \"UFICommentPhotoAttachedPreview pas\"\n                }, sa, j({\n                    onClick: this._onRemoveAttachedPhotoPreviewClicked\n                }));\n                ta = function(va, event) {\n                    this.setState({\n                        isLoadingPhoto: false,\n                        attachedPhoto: null\n                    });\n                    va.attachedPhoto = this.props.contextArgs.attachedphoto;\n                    this.props.onCommentSubmit(va, event);\n                }.bind(this);\n            }\n        ;\n            return (n.DOM.li({\n                className: na,\n                onKeyDown: this._onKeyDown,\n                \"data-ft\": ka\n            }, s({\n                className: \"UFIMentionsInputWrap\"\n            }, ma, n.DOM.div(null, o({\n                initialData: this.props.initialData,\n                placeholder: oa,\n                ref: \"mentionsinput\",\n                datasource: this.props.mentionsDataSource,\n                acceptEmptyInput: (this.props.isEditing || this.props.contextArgs.attachedphoto),\n                onEnterSubmit: ta,\n                onFocus: this.setState.bind(this, {\n                    isCommenting: true\n                }),\n                viewOptionsTypeObjects: qa,\n                viewOptionsTypeObjectsOrder: ra,\n                onBlur: pa,\n                onTypingStateChange: this.props.onTypingStateChange,\n                onPaste: ga,\n                sht: this.props.contextArgs.sht,\n                isLoadingPhoto: this.state.isLoadingPhoto\n            }), ea, ua, da))));\n        },\n        componentDidMount: function(ca) {\n            if (h.gkResults) {\n                var da = this.props.replyCommentID;\n                if ((this.refs && this.refs.mentionsinput)) {\n                    var ea = this.refs.mentionsinput.refs.textarea.getDOMNode();\n                    g.loadModules([\"CLoggerX\",\"UFIComments\",], function(ja, ka) {\n                        var la = ka.getComment(da), ma = (la ? la.fbid : null);\n                        ja.trackMentionsInput(ea, ma);\n                    });\n                }\n            ;\n            }\n        ;\n            if (!this.props.allowPhotoAttachments) {\n                return\n            };\n            var fa = this.refs.PhotoInputContainer.getDOMNode(), ga = this.refs.PhotoInputControl.getDOMNode(), ha = this.refs.PhotoInput.getDOMNode(), ia = k.listen(fa, \"click\", function(event) {\n                g.loadModules([\"FileInput\",\"FileInputUploader\",\"Input\",], function(ja, ka, la) {\n                    var ma = new ja(fa, ga, ha), na = new ka().setURI(aa).setData(this._getPhotoUploadData());\n                    ma.subscribe(\"change\", function(event) {\n                        if (ma.getValue()) {\n                            this._prepareForAttachedPhotoPreview();\n                            na.setInput(ma.getInput()).send();\n                        }\n                    ;\n                    }.bind(this));\n                    na.subscribe(\"success\", function(oa, pa) {\n                        ma.clear();\n                        this._onPhotoUploadComplete(pa.response);\n                    }.bind(this));\n                }.bind(this));\n                ia.remove();\n            }.bind(this));\n        },\n        _getPhotoUploadData: function() {\n            return {\n                profile_id: this.props.viewerActor.id,\n                source: z\n            };\n        },\n        _onPhotoUploadComplete: function(ca) {\n            if (!this.state.isLoadingPhoto) {\n                return\n            };\n            var da = ca.getPayload();\n            if ((da && da.fbid)) {\n                this.props.contextArgs.attachedphoto = da;\n                this.setState({\n                    attachedPhoto: da,\n                    isLoadingPhoto: false\n                });\n            }\n        ;\n        },\n        _onRemoveAttachedPhotoPreviewClicked: function(event) {\n            this.props.contextArgs.attachedphoto = null;\n            this.setState({\n                attachedPhoto: null,\n                isLoadingPhoto: false\n            });\n        },\n        _prepareForAttachedPhotoPreview: function() {\n            this.props.contextArgs.attachedphoto = null;\n            this.setState({\n                attachedPhoto: null,\n                isLoadingPhoto: true\n            });\n        }\n    });\n    e.exports = ba;\n});\n__d(\"UFIAddCommentController\", [\"Arbiter\",\"copyProperties\",\"MentionsInputUtils\",\"Parent\",\"UFIAddComment.react\",\"React\",\"ShortProfiles\",\"UFICentralUpdates\",\"UFIComments\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"MentionsInputUtils\"), j = b(\"Parent\"), k = b(\"UFIAddComment.react\"), l = b(\"React\"), m = b(\"ShortProfiles\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIFeedbackTargets\"), q = b(\"UFIInstanceState\"), r = b(\"UFIUserActions\");\n    function s(t, u, v, w) {\n        this.id = u;\n        this._ufiInstanceID = w.instanceid;\n        this._contextArgs = w;\n        this._replyCommentID = v;\n        if (t) {\n            this.root = t;\n            if (!this._contextArgs.rootid) {\n                this._contextArgs.rootid = t.id;\n            };\n            this.render();\n            n.subscribe(\"instance-updated\", function(x, y) {\n                var z = y.updates;\n                if ((this._ufiInstanceID in z)) {\n                    this.render();\n                };\n            }.bind(this));\n        }\n    ;\n        n.subscribe(\"feedback-id-changed\", function(x, y) {\n            var z = y.updates;\n            if ((this.id in z)) {\n                this.id = z[this.id];\n            };\n        }.bind(this));\n    };\n    h(s.prototype, {\n        _onCommentSubmit: function(t, event) {\n            r.addComment(this.id, t.visibleValue, t.encodedValue, {\n                source: this._contextArgs.source,\n                ufiinstanceid: this._ufiInstanceID,\n                target: event.target,\n                replyid: this._replyCommentID,\n                timelinelogdata: this._contextArgs.timelinelogdata,\n                rootid: this._contextArgs.rootid,\n                attachedphoto: this._contextArgs.attachedphoto,\n                giftoccasion: this._contextArgs.giftoccasion\n            });\n            this._contextArgs.attachedphoto = null;\n            p.getFeedbackTarget(this.id, function(u) {\n                var v = j.byTag(this.root, \"form\");\n                if (v) {\n                    g.inform(\"ufi/comment\", {\n                        form: v,\n                        isranked: u.isranked\n                    });\n                };\n            }.bind(this));\n            return false;\n        },\n        _onTypingStateChange: function(t, u) {\n        \n        },\n        renderAddComment: function(t, u, v, w, x, y, z) {\n            var aa = (this._contextArgs.logtyping ? this._onTypingStateChange.bind(this) : null), ba = null, ca = (q.getKeyForInstance(this._ufiInstanceID, \"isediting\") && !this._replyCommentID);\n            return (k({\n                hide: ca,\n                replyCommentID: this._replyCommentID,\n                viewerActor: t,\n                initialData: ba,\n                ref: w,\n                withoutSeparator: x,\n                onCommentSubmit: this._onCommentSubmit.bind(this),\n                mentionsDataSource: u,\n                onTypingStateChange: aa,\n                showSendOnEnterTip: v,\n                allowPhotoAttachments: y,\n                source: this._contextArgs.source,\n                contextArgs: this._contextArgs,\n                subtitle: z\n            }));\n        },\n        renderEditComment: function(t, u, v, w, x, y) {\n            var z = o.getComment(u), aa = i.generateDataFromTextWithEntities(z.body);\n            return (k({\n                viewerActor: t,\n                initialData: aa,\n                onCommentSubmit: w,\n                onCancel: x,\n                mentionsDataSource: v,\n                source: this._contextArgs.source,\n                contextArgs: this._contextArgs,\n                isEditing: true,\n                editingCommentID: u,\n                attachedPhoto: z.photo_comment,\n                allowPhotoAttachments: y\n            }));\n        },\n        render: function() {\n            if (!this.root) {\n                throw new Error(\"render called on UFIAddCommentController with no root\")\n            };\n            p.getFeedbackTarget(this.id, function(t) {\n                if ((t.cancomment && t.actorforpost)) {\n                    m.get(t.actorforpost, function(u) {\n                        var v = this.renderAddComment(u, t.mentionsdatasource, t.showsendonentertip, null, null, t.allowphotoattachments, t.subtitle);\n                        this._addComment = l.renderComponent(v, this.root);\n                    }.bind(this));\n                };\n            }.bind(this));\n        }\n    });\n    e.exports = s;\n});\n__d(\"Scrollable\", [\"Event\",\"Parent\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Parent\"), i = b(\"UserAgent\"), j = function(event) {\n        var m = h.byClass(event.getTarget(), \"scrollable\");\n        if (!m) {\n            return\n        };\n        if ((((((typeof event.axis !== \"undefined\") && (event.axis === event.HORIZONTAL_AXIS))) || ((event.wheelDeltaX && !event.wheelDeltaY))) || ((event.deltaX && !event.deltaY)))) {\n            return\n        };\n        var n = ((event.wheelDelta || -event.deltaY) || -event.detail), o = m.scrollHeight, p = m.clientHeight;\n        if ((o > p)) {\n            var q = m.scrollTop;\n            if (((((n > 0) && (q === 0))) || (((n < 0) && (q >= (o - p)))))) {\n                event.prevent();\n            }\n             else if ((i.ie() < 9)) {\n                if (m.currentStyle) {\n                    var r = m.currentStyle.fontSize;\n                    if ((r.indexOf(\"px\") < 0)) {\n                        var s = document.createElement(\"div\");\n                        s.style.fontSize = r;\n                        s.style.height = \"1em\";\n                        r = s.style.pixelHeight;\n                    }\n                     else r = parseInt(r, 10);\n                ;\n                    m.scrollTop = (q - Math.round(((n / 120) * r)));\n                    event.prevent();\n                }\n            \n            }\n        ;\n        }\n    ;\n    }, k = document.documentElement;\n    if (i.firefox()) {\n        var l = (((\"WheelEvent\" in window)) ? \"wheel\" : \"DOMMouseScroll\");\n        k.addEventListener(l, j, false);\n    }\n     else g.listen(k, \"mousewheel\", j);\n;\n});\n__d(\"LegacyScrollableArea.react\", [\"Scrollable\",\"Bootloader\",\"React\",\"Style\",\"cx\",], function(a, b, c, d, e, f) {\n    b(\"Scrollable\");\n    var g = b(\"Bootloader\"), h = b(\"React\"), i = b(\"Style\"), j = b(\"cx\"), k = \"uiScrollableArea native\", l = \"uiScrollableAreaWrap scrollable\", m = \"uiScrollableAreaBody\", n = \"uiScrollableAreaContent\", o = h.createClass({\n        displayName: \"ReactLegacyScrollableArea\",\n        render: function() {\n            var p = {\n                height: (this.props.height ? (this.props.height + \"px\") : \"auto\")\n            };\n            return (h.DOM.div({\n                className: k,\n                ref: \"root\",\n                style: p\n            }, h.DOM.div({\n                className: l\n            }, h.DOM.div({\n                className: m,\n                ref: \"body\"\n            }, h.DOM.div({\n                className: n\n            }, this.props.children)))));\n        },\n        getArea: function() {\n            return this._area;\n        },\n        componentDidMount: function() {\n            g.loadModules([\"ScrollableArea\",], this._loadScrollableArea);\n        },\n        _loadScrollableArea: function(p) {\n            this._area = p.fromNative(this.refs.root.getDOMNode(), {\n                fade: this.props.fade,\n                persistent: this.props.persistent\n            });\n            var q = this.refs.body.getDOMNode();\n            i.set(q, \"width\", (this.props.width + \"px\"));\n            (this.props.onScroll && this._area.subscribe(\"scroll\", this.props.onScroll));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFIAddCommentLink.react\", [\"React\",\"UFIClassNames\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"tx\"), l = g.createClass({\n        displayName: \"UFIAddCommentLink\",\n        render: function() {\n            var m = j(h.ROW, ((((((\"UFIAddCommentLink\") + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), n = \"Write a comment...\";\n            return (g.DOM.li({\n                className: m,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, g.DOM.a({\n                className: \"UFICommentLink\",\n                onClick: this.props.onClick,\n                href: \"#\",\n                role: \"button\"\n            }, n)));\n        }\n    });\n    e.exports = l;\n});\n__d(\"HovercardLink\", [\"Bootloader\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"URI\"), i = {\n        getBaseURI: function() {\n            return h(\"/ajax/hovercard/hovercard.php\");\n        },\n        constructEndpoint: function(j, k) {\n            return i.constructEndpointWithGroupAndLocation(j, k, null);\n        },\n        constructEndpointWithLocation: function(j, k) {\n            return i.constructEndpointWithGroupAndLocation(j, null, k);\n        },\n        constructEndpointWithGroupAndLocation: function(j, k, l) {\n            g.loadModules([\"Hovercard\",], function() {\n            \n            });\n            var m = new h(i.getBaseURI()).setQueryData({\n                id: j.id\n            }), n = {\n            };\n            if ((j.weakreference && k)) {\n                n.group_id = k;\n            };\n            if (l) {\n                n.hc_location = l;\n            };\n            m.addQueryData({\n                extragetparams: JSON.stringify(n)\n            });\n            return m;\n        }\n    };\n    e.exports = i;\n});\n__d(\"UntrustedLink\", [\"DOM\",\"Event\",\"URI\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Event\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n    function l(m, n, o, p) {\n        this.dom = m;\n        this.url = m.href;\n        this.hash = n;\n        this.func_get_params = (p || function() {\n            return {\n            };\n        });\n        h.listen(this.dom, \"click\", this.onclick.bind(this));\n        h.listen(this.dom, \"mousedown\", this.onmousedown.bind(this));\n        h.listen(this.dom, \"mouseup\", this.onmouseup.bind(this));\n        h.listen(this.dom, \"mouseout\", this.onmouseout.bind(this));\n        this.onmousedown(h.$E(o));\n    };\n    l.bootstrap = function(m, n, o, p) {\n        if (m.__untrusted) {\n            return\n        };\n        m.__untrusted = true;\n        new l(m, n, o, p);\n    };\n    l.prototype.getRewrittenURI = function() {\n        var m = k({\n            u: this.url,\n            h: this.hash\n        }, this.func_get_params(this.dom)), n = new i(\"/l.php\");\n        return n.setQueryData(m).setSubdomain(\"www\").setProtocol(\"http\");\n    };\n    l.prototype.onclick = function() {\n        (function() {\n            this.setHref(this.url);\n        }).bind(this).defer(100);\n        this.setHref(this.getRewrittenURI());\n    };\n    l.prototype.onmousedown = function(m) {\n        if ((m.button == 2)) {\n            this.setHref(this.getRewrittenURI());\n        };\n    };\n    l.prototype.onmouseup = function() {\n        this.setHref(this.getRewrittenURI());\n    };\n    l.prototype.onmouseout = function() {\n        this.setHref(this.url);\n    };\n    l.prototype.setHref = function(m) {\n        if ((j.ie() < 9)) {\n            var n = g.create(\"span\");\n            g.appendContent(this.dom, n);\n            this.dom.href = m;\n            g.remove(n);\n        }\n         else this.dom.href = m;\n    ;\n    };\n    e.exports = l;\n});\n__d(\"Link.react\", [\"React\",\"UntrustedLink\",\"mergeInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UntrustedLink\"), i = b(\"mergeInto\"), j = g.createClass({\n        displayName: \"Link\",\n        _installLinkshimOnMouseDown: function(event) {\n            var k = this.props.href;\n            if (k.shimhash) {\n                h.bootstrap(this.getDOMNode(), k.shimhash);\n            };\n            (this.props.onMouseDown && this.props.onMouseDown(event));\n        },\n        render: function() {\n            var k = this.props.href, l = g.DOM.a(null);\n            i(l.props, this.props);\n            if (k) {\n                l.props.href = k.url;\n                var m = !!k.shimhash;\n                if (m) {\n                    l.props.rel = (l.props.rel ? ((l.props.rel + \" nofollow\")) : \"nofollow\");\n                    l.props.onMouseDown = this._installLinkshimOnMouseDown;\n                }\n            ;\n            }\n             else l.props.href = \"#\";\n        ;\n            return l;\n        }\n    });\n    e.exports = j;\n});\n__d(\"PubContentTypes\", [], function(a, b, c, d, e, f) {\n    var g = {\n        HASHTAG: \"hashtag\",\n        TOPIC: \"topic\",\n        URL: \"url\"\n    };\n    e.exports = g;\n});\n__d(\"HovercardLinkInterpolator\", [\"Bootloader\",\"CSS\",\"Event\",\"HovercardLink\",\"Link.react\",\"Parent\",\"PubContentTypes\",\"React\",\"URI\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CSS\"), i = b(\"Event\"), j = b(\"HovercardLink\"), k = b(\"Link.react\"), l = b(\"Parent\"), m = b(\"PubContentTypes\"), n = b(\"React\"), o = b(\"URI\"), p = b(\"cx\");\n    function q(r, s, t, u, v) {\n        var w = s.entities[0], x = (t || ((w.external ? \"_blank\" : null))), y, z = ((((!w.external ? \"profileLink\" : \"\")) + ((w.weakreference ? (\" \" + \"weakReference\") : \"\"))));\n        if (w.hashtag) {\n            var aa = h.hasClass(document.body, \"_6nw\"), ba = function(ea) {\n                if (i.$E(ea.nativeEvent).isDefaultRequested()) {\n                    return\n                };\n                ea.preventDefault();\n                var fa = l.byTag(ea.target, \"A\");\n                if (aa) {\n                    g.loadModules([\"EntstreamPubContentOverlay\",], function(ga) {\n                        ga.pubClick(fa);\n                    });\n                }\n                 else g.loadModules([\"HashtagLayerPageController\",], function(ga) {\n                    ga.click(fa);\n                });\n            ;\n            }, ca = null;\n            if (aa) {\n                ca = {\n                    type: m.HASHTAG,\n                    id: w.id,\n                    source: \"comment\"\n                };\n            }\n             else ca = {\n                id: w.id\n            };\n        ;\n            var da = new o(w.url).setSubdomain(\"www\");\n            y = n.DOM.a({\n                className: \"_58cn\",\n                \"data-pub\": JSON.stringify(ca),\n                href: da.toString(),\n                onClick: ba\n            }, n.DOM.span({\n                className: \"_58cl\"\n            }, r.substring(0, 1)), n.DOM.span({\n                className: \"_58cm\"\n            }, r.substring(1)));\n        }\n         else if (w.weakreference) {\n            y = k({\n                className: z,\n                href: w,\n                target: x\n            }, n.DOM.i({\n                className: \"UFIWeakReferenceIcon\"\n            }), r);\n        }\n         else y = k({\n            className: z,\n            href: w,\n            target: x\n        }, r);\n        \n    ;\n        if ((!w.external && !w.hashtag)) {\n            y.props[\"data-hovercard\"] = j.constructEndpointWithGroupAndLocation(w, u, v).toString();\n        };\n        return y;\n    };\n    e.exports = q;\n});\n__d(\"LinkButton\", [\"cx\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\"), h = b(\"React\"), i = function(j) {\n        var k = ((j.name && j.value) ? (((j.name + \"[\") + encodeURIComponent(j.value)) + \"]\") : null);\n        return (h.DOM.label({\n            className: ((((\"uiLinkButton\") + ((j.subtle ? (\" \" + \"uiLinkButtonSubtle\") : \"\"))) + ((j.showSaving ? (\" \" + \"async_throbber\") : \"\"))))\n        }, h.DOM.input({\n            type: (j.inputType || \"button\"),\n            name: k,\n            value: j.label,\n            className: ((j.showSaving ? \"stat_elem\" : \"\"))\n        })));\n    };\n    e.exports = i;\n});\n__d(\"Timestamp.react\", [\"LiveTimer\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"LiveTimer\"), h = b(\"React\"), i = h.createClass({\n        displayName: \"Timestamp\",\n        render: function() {\n            var j = g.renderRelativeTimeToServer(this.props.time);\n            return this.transferPropsTo(h.DOM.abbr({\n                className: \"livetimestamp\",\n                title: this.props.verbose,\n                \"data-utime\": this.props.time\n            }, (j.text || this.props.text)));\n        }\n    });\n    e.exports = i;\n});\n__d(\"EmoteTypes\", [], function(a, b, c, d, e, f) {\n    f.TEXT = \"text\";\n    f.EMOTE = \"emote\";\n    f.EMOTE_FBID = \"emote_fbid\";\n});\n__d(\"EmoticonsList\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        emotes: {\n            \":)\": \"smile\",\n            \":-)\": \"smile\",\n            \":]\": \"smile\",\n            \"=)\": \"smile\",\n            \":(\": \"frown\",\n            \":-(\": \"frown\",\n            \":[\": \"frown\",\n            \"=(\": \"frown\",\n            \":P\": \"tongue\",\n            \":-P\": \"tongue\",\n            \":-p\": \"tongue\",\n            \":p\": \"tongue\",\n            \"=P\": \"tongue\",\n            \"=D\": \"grin\",\n            \":-D\": \"grin\",\n            \":D\": \"grin\",\n            \":o\": \"gasp\",\n            \":-O\": \"gasp\",\n            \":O\": \"gasp\",\n            \":-o\": \"gasp\",\n            \";)\": \"wink\",\n            \";-)\": \"wink\",\n            \"8)\": \"glasses\",\n            \"8-)\": \"glasses\",\n            \"B)\": \"glasses\",\n            \"B-)\": \"glasses\",\n            \"B|\": \"sunglasses\",\n            \"8-|\": \"sunglasses\",\n            \"8|\": \"sunglasses\",\n            \"B-|\": \"sunglasses\",\n            \"\\u003E:(\": \"grumpy\",\n            \"\\u003E:-(\": \"grumpy\",\n            \":/\": \"unsure\",\n            \":-/\": \"unsure\",\n            \":\\\\\": \"unsure\",\n            \":-\\\\\": \"unsure\",\n            \"=/\": \"unsure\",\n            \"=\\\\\": \"unsure\",\n            \":'(\": \"cry\",\n            \"3:)\": \"devil\",\n            \"3:-)\": \"devil\",\n            \"O:)\": \"angel\",\n            \"O:-)\": \"angel\",\n            \":*\": \"kiss\",\n            \":-*\": \"kiss\",\n            \"\\u003C3\": \"heart\",\n            \"&lt;3\": \"heart\",\n            \"\\u2665\": \"heart\",\n            \"^_^\": \"kiki\",\n            \"-_-\": \"squint\",\n            \"o.O\": \"confused\",\n            \"O.o\": \"confused_rev\",\n            \"\\u003E:o\": \"upset\",\n            \"\\u003E:O\": \"upset\",\n            \"\\u003E:-O\": \"upset\",\n            \"\\u003E:-o\": \"upset\",\n            \"\\u003E_\\u003C\": \"upset\",\n            \"\\u003E.\\u003C\": \"upset\",\n            \":v\": \"pacman\",\n            \":|]\": \"robot\",\n            \":3\": \"colonthree\",\n            \"\\u003C(\\\")\": \"penguin\",\n            \":putnam:\": \"putnam\",\n            \"(^^^)\": \"shark\",\n            \"(y)\": \"like\",\n            \":like:\": \"like\",\n            \"(Y)\": \"like\",\n            \":poop:\": \"poop\"\n        },\n        symbols: {\n            smile: \":)\",\n            frown: \":(\",\n            tongue: \":P\",\n            grin: \"=D\",\n            gasp: \":o\",\n            wink: \";)\",\n            glasses: \"8)\",\n            sunglasses: \"B|\",\n            grumpy: \"\\u003E:(\",\n            unsure: \":/\",\n            cry: \":'(\",\n            devil: \"3:)\",\n            angel: \"O:)\",\n            kiss: \":*\",\n            heart: \"\\u003C3\",\n            kiki: \"^_^\",\n            squint: \"-_-\",\n            confused: \"o.O\",\n            confused_rev: \"O.o\",\n            upset: \"\\u003E:o\",\n            pacman: \":v\",\n            robot: \":|]\",\n            colonthree: \":3\",\n            penguin: \"\\u003C(\\\")\",\n            putnam: \":putnam:\",\n            shark: \"(^^^)\",\n            like: \"(y)\",\n            poop: \":poop:\"\n        },\n        regexp: /(^|[\\s'\".])(:\\)|:\\-\\)|:\\]|=\\)|:\\(|:\\-\\(|:\\[|=\\(|:P|:\\-P|:\\-p|:p|=P|=D|:\\-D|:D|:o|:\\-O|:O|:\\-o|;\\)|;\\-\\)|8\\)|8\\-\\)|B\\)|B\\-\\)|B\\||8\\-\\||8\\||B\\-\\||>:\\(|>:\\-\\(|:\\/|:\\-\\/|:\\\\|:\\-\\\\|=\\/|=\\\\|:'\\(|3:\\)|3:\\-\\)|O:\\)|O:\\-\\)|:\\*|:\\-\\*|<3|&lt;3|\\u2665|\\^_\\^|\\-_\\-|o\\.O|O\\.o|>:o|>:O|>:\\-O|>:\\-o|>_<|>\\.<|:v|:\\|\\]|:3|<\\(\"\\)|:putnam:|\\(\\^\\^\\^\\)|\\(y\\)|:like:|\\(Y\\)|:poop:)([\\s'\".,!?]|<br>|$)/\n    };\n});\n__d(\"createEmoteTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n    var g = b(\"EmoteTypes\"), h = 40;\n    function i(j) {\n        return function(k) {\n            var l = k, m = [], n = h;\n            while (n--) {\n                var o = j.regexp.exec(l);\n                if ((!o || !o.length)) {\n                    break;\n                };\n                var p = o[2], q = (o.index + o[1].length), r = l.substring(0, q);\n                if (r) {\n                    m.push({\n                        type: g.TEXT,\n                        text: r\n                    });\n                };\n                var s = j.emotes[p];\n                if (s) {\n                    m.push({\n                        type: g.EMOTE,\n                        text: p,\n                        emote: s\n                    });\n                }\n                 else m.push({\n                    type: g.TEXT,\n                    text: p\n                });\n            ;\n                l = l.substring((q + p.length));\n            };\n            if (l) {\n                m.push({\n                    type: g.TEXT,\n                    text: l\n                });\n            };\n            return m;\n        };\n    };\n    e.exports = i;\n});\n__d(\"emoteFBIDTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n    var g = b(\"EmoteTypes\"), h = /\\[\\[([a-z\\d\\.]+)\\]\\]/gi;\n    function i(j) {\n        return j.split(h).map(function(k, l) {\n            if (((l % 2) === 0)) {\n                return {\n                    type: g.TEXT,\n                    text: k\n                };\n            }\n             else return {\n                type: g.EMOTE_FBID,\n                text: ((\"[[\" + k) + \"]]\"),\n                value: k\n            }\n        ;\n        });\n    };\n    e.exports = i;\n});\n__d(\"Emote\", [\"DOM\",\"EmoteTypes\",\"EmoticonsList\",\"createEmoteTokenizer\",\"emoteFBIDTokenizer\",\"flattenArray\",\"htmlize\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"EmoteTypes\"), i = b(\"EmoticonsList\"), j = b(\"createEmoteTokenizer\"), k = b(\"emoteFBIDTokenizer\"), l = b(\"flattenArray\"), m = b(\"htmlize\"), n = j(i), o = e.exports = {\n    };\n    o.htmlEmoteWithoutFBID = function(p, q) {\n        if ((typeof q != \"function\")) {\n            q = m;\n        };\n        return l(n(p).map(function(r) {\n            if ((r.type === h.TEXT)) {\n                return q(r.text);\n            }\n             else if ((r.type === h.EMOTE)) {\n                return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n                }, g.create(\"span\", {\n                    title: r.text,\n                    className: (\"emoticon emoticon_\" + r.emote)\n                })).innerHTML,]\n            }\n        ;\n        })).join(\"\");\n    };\n    o.htmlEmote = function(p, q) {\n        if ((typeof q != \"function\")) {\n            q = m;\n        };\n        return l(k(p).map(function(r) {\n            if ((r.type === h.TEXT)) {\n                return o.htmlEmoteWithoutFBID(r.text, q);\n            }\n             else if ((r.type === h.EMOTE_FBID)) {\n                return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n                }, g.create(\"img\", {\n                    alt: r.text,\n                    className: \"emoticon emoticon_custom\",\n                    src: (((window.location.protocol + \"//graph.facebook.com/\") + encodeURIComponent(r.value)) + \"/picture\")\n                })).innerHTML,]\n            }\n        ;\n        })).join(\"\");\n    };\n});\n__d(\"SupportedEmoji\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\");\n    e.exports = {\n        utf16Regex: /[\\u203C\\u2049\\u2100-\\u21FF\\u2300-\\u27FF\\u2900-\\u29FF\\u2B00-\\u2BFF\\u3000-\\u30FF\\u3200-\\u32FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDEFF]/,\n        emoji: {\n            127744: \"_2b_\",\n            127746: \"_2c0\",\n            127754: \"_2c1\",\n            127769: \"_2c2\",\n            127775: \"_2c3\",\n            127793: \"_2c4\",\n            127796: \"_2c5\",\n            127797: \"_2c6\",\n            127799: \"_2c7\",\n            127800: \"_2c8\",\n            127801: \"_2c9\",\n            127802: \"_2ca\",\n            127803: \"_2cb\",\n            127806: \"_2cc\",\n            127808: \"_2cd\",\n            127809: \"_2ce\",\n            127810: \"_2cf\",\n            127811: \"_2cg\",\n            127818: \"_2ch\",\n            127822: \"_2ci\",\n            127827: \"_2cj\",\n            127828: \"_2ck\",\n            127864: \"_2cl\",\n            127866: \"_2cm\",\n            127873: \"_2cn\",\n            127875: \"_2co\",\n            127876: \"_2cp\",\n            127877: \"_2cq\",\n            127880: \"_2cr\",\n            127881: \"_2cs\",\n            127885: \"_2ct\",\n            127886: \"_2cu\",\n            127887: \"_2cv\",\n            127888: \"_2cw\",\n            127891: \"_2cx\",\n            127925: \"_2cy\",\n            127926: \"_2cz\",\n            127932: \"_2c-\",\n            128013: \"_2c_\",\n            128014: \"_2d0\",\n            128017: \"_2d1\",\n            128018: \"_2d2\",\n            128020: \"_2d3\",\n            128023: \"_2d4\",\n            128024: \"_2d5\",\n            128025: \"_2d6\",\n            128026: \"_2d7\",\n            128027: \"_2d8\",\n            128031: \"_2d9\",\n            128032: \"_2da\",\n            128033: \"_2db\",\n            128037: \"_2dc\",\n            128038: \"_2dd\",\n            128039: \"_2de\",\n            128040: \"_2df\",\n            128041: \"_2dg\",\n            128043: \"_2dh\",\n            128044: \"_2di\",\n            128045: \"_2dj\",\n            128046: \"_2dk\",\n            128047: \"_2dl\",\n            128048: \"_2dm\",\n            128049: \"_2dn\",\n            128051: \"_2do\",\n            128052: \"_2dp\",\n            128053: \"_2dq\",\n            128054: \"_491\",\n            128055: \"_2dr\",\n            128056: \"_2ds\",\n            128057: \"_2dt\",\n            128058: \"_2du\",\n            128059: \"_2dv\",\n            128062: \"_2dw\",\n            128064: \"_2dx\",\n            128066: \"_2dy\",\n            128067: \"_2dz\",\n            128068: \"_2d-\",\n            128069: \"_2d_\",\n            128070: \"_2e0\",\n            128071: \"_2e1\",\n            128072: \"_2e2\",\n            128073: \"_2e3\",\n            128074: \"_2e4\",\n            128075: \"_2e5\",\n            128076: \"_2e6\",\n            128077: \"_2e7\",\n            128078: \"_2e8\",\n            128079: \"_2e9\",\n            128080: \"_2ea\",\n            128102: \"_2eb\",\n            128103: \"_2ec\",\n            128104: \"_2ed\",\n            128105: \"_2ee\",\n            128107: \"_2ef\",\n            128110: \"_2eg\",\n            128111: \"_2eh\",\n            128113: \"_2ei\",\n            128114: \"_2ej\",\n            128115: \"_2ek\",\n            128116: \"_2el\",\n            128117: \"_2em\",\n            128118: \"_2en\",\n            128119: \"_2eo\",\n            128120: \"_2ep\",\n            128123: \"_2eq\",\n            128124: \"_2er\",\n            128125: \"_2es\",\n            128126: \"_2et\",\n            128127: \"_2eu\",\n            128128: \"_2ev\",\n            128130: \"_2ew\",\n            128131: \"_2ex\",\n            128133: \"_2ey\",\n            128139: \"_2ez\",\n            128143: \"_2e-\",\n            128144: \"_2e_\",\n            128145: \"_2f0\",\n            128147: \"_2f1\",\n            128148: \"_2f2\",\n            128150: \"_2f3\",\n            128151: \"_2f4\",\n            128152: \"_2f5\",\n            128153: \"_2f6\",\n            128154: \"_2f7\",\n            128155: \"_2f8\",\n            128156: \"_2f9\",\n            128157: \"_2fa\",\n            128162: \"_2fb\",\n            128164: \"_2fc\",\n            128166: \"_2fd\",\n            128168: \"_2fe\",\n            128169: \"_2ff\",\n            128170: \"_2fg\",\n            128187: \"_2fh\",\n            128189: \"_2fi\",\n            128190: \"_2fj\",\n            128191: \"_2fk\",\n            128192: \"_2fl\",\n            128222: \"_2fm\",\n            128224: \"_2fn\",\n            128241: \"_2fo\",\n            128242: \"_2fp\",\n            128250: \"_2fq\",\n            128276: \"_2fr\",\n            128293: \"_492\",\n            128513: \"_2fs\",\n            128514: \"_2ft\",\n            128515: \"_2fu\",\n            128516: \"_2fv\",\n            128518: \"_2fw\",\n            128521: \"_2fx\",\n            128523: \"_2fy\",\n            128524: \"_2fz\",\n            128525: \"_2f-\",\n            128527: \"_2f_\",\n            128530: \"_2g0\",\n            128531: \"_2g1\",\n            128532: \"_2g2\",\n            128534: \"_2g3\",\n            128536: \"_2g4\",\n            128538: \"_2g5\",\n            128540: \"_2g6\",\n            128541: \"_2g7\",\n            128542: \"_2g8\",\n            128544: \"_2g9\",\n            128545: \"_2ga\",\n            128546: \"_2gb\",\n            128547: \"_2gc\",\n            128548: \"_2gd\",\n            128549: \"_2ge\",\n            128552: \"_2gf\",\n            128553: \"_2gg\",\n            128554: \"_2gh\",\n            128555: \"_2gi\",\n            128557: \"_2gj\",\n            128560: \"_2gk\",\n            128561: \"_2gl\",\n            128562: \"_2gm\",\n            128563: \"_2gn\",\n            128565: \"_2go\",\n            128567: \"_2gp\",\n            128568: \"_2gq\",\n            128569: \"_2gr\",\n            128570: \"_2gs\",\n            128571: \"_2gt\",\n            128572: \"_2gu\",\n            128573: \"_2gv\",\n            128575: \"_2gw\",\n            128576: \"_2gx\",\n            128587: \"_2gy\",\n            128588: \"_2gz\",\n            128589: \"_2g-\",\n            128591: \"_2g_\",\n            9757: \"_2h0\",\n            9786: \"_2h1\",\n            9889: \"_2h2\",\n            9924: \"_2h3\",\n            9994: \"_2h4\",\n            9995: \"_2h5\",\n            9996: \"_2h6\",\n            9728: \"_2h7\",\n            9729: \"_2h8\",\n            9748: \"_2h9\",\n            9749: \"_2ha\",\n            10024: \"_2hb\",\n            10084: \"_2hc\"\n        }\n    };\n});\n__d(\"Utf16\", [], function(a, b, c, d, e, f) {\n    var g = {\n        decode: function(h) {\n            switch (h.length) {\n              case 1:\n                return h.charCodeAt(0);\n              case 2:\n                return ((65536 | ((((h.charCodeAt(0) - 55296)) * 1024))) | ((h.charCodeAt(1) - 56320)));\n            };\n        },\n        encode: function(h) {\n            if ((h < 65536)) {\n                return String.fromCharCode(h);\n            }\n             else return (String.fromCharCode((55296 + ((((h - 65536)) >> 10)))) + String.fromCharCode((56320 + ((h % 1024)))))\n        ;\n        }\n    };\n    e.exports = g;\n});\n__d(\"Emoji\", [\"cx\",\"DOM\",\"Emote\",\"SupportedEmoji\",\"htmlize\",\"Utf16\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\"), h = b(\"DOM\"), i = b(\"Emote\"), j = b(\"SupportedEmoji\"), k = b(\"htmlize\"), l = b(\"Utf16\"), m = 40, n = e.exports = {\n        htmlEmojiAndEmote: function(o, p) {\n            return n.htmlEmoji(o, function(q) {\n                return i.htmlEmote(q, p);\n            });\n        },\n        htmlEmoji: function(o, p) {\n            if ((typeof p != \"function\")) {\n                p = k;\n            };\n            var q = o, r = [], s = m;\n            while (s--) {\n                var t = j.utf16Regex.exec(q);\n                if ((!t || !t.length)) {\n                    break;\n                };\n                var u = t[0], v = t.index;\n                r.push(p(q.substring(0, v)));\n                var w = l.decode(u);\n                if (j.emoji[w]) {\n                    var x = ((\"_1az _1a-\" + \" \") + j.emoji[w]), y = h.create(\"span\", {\n                        className: x\n                    });\n                    r.push(h.create(\"span\", {\n                    }, y).innerHTML);\n                }\n                 else r.push(p(u));\n            ;\n                q = q.substring((v + u.length));\n            };\n            r.push(p(q));\n            return r.join(\"\");\n        }\n    };\n});\n__d(\"TextWithEmoticons.react\", [\"Emoji\",\"Emote\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"Emoji\"), h = b(\"Emote\"), i = b(\"React\"), j = i.createClass({\n        displayName: \"ReactTextWithEmoticons\",\n        render: function() {\n            if ((!this.props.renderEmoticons && !this.props.renderEmoji)) {\n                return i.DOM.span(null, this.props.text)\n            };\n            var k;\n            if ((this.props.renderEmoticons && this.props.renderEmoji)) {\n                k = g.htmlEmoji(this.props.text, h.htmlEmoteWithoutFBID);\n            }\n             else if (this.props.renderEmoticons) {\n                k = h.htmlEmoteWithoutFBID(this.props.text);\n            }\n             else k = g.htmlEmoji(this.props.text);\n            \n        ;\n            return i.DOM.span({\n                dangerouslySetInnerHTML: {\n                    __html: k\n                }\n            });\n        }\n    });\n    e.exports = j;\n});\n__d(\"TextWithEntities.react\", [\"Link.react\",\"React\",\"TextWithEmoticons.react\",], function(a, b, c, d, e, f) {\n    var g = b(\"Link.react\"), h = b(\"React\"), i = b(\"TextWithEmoticons.react\");\n    function j(o) {\n        return (o).replace(/<3\\b|&hearts;/g, \"\\u2665\");\n    };\n    function k(o, p) {\n        return (g({\n            href: p.entities[0]\n        }, o));\n    };\n    function l(o, p) {\n        return (o.offset - p.offset);\n    };\n    var m = /(\\r\\n|[\\r\\n])/, n = h.createClass({\n        displayName: \"ReactTextWithEntities\",\n        _formatStandardText: function(o) {\n            var p = o.split(m), q = [];\n            for (var r = 0; (r < p.length); r++) {\n                var s = p[r];\n                if (s) {\n                    if (m.test(s)) {\n                        q.push(h.DOM.br(null));\n                    }\n                     else if ((this.props.renderEmoticons || this.props.renderEmoji)) {\n                        q.push(i({\n                            text: s,\n                            renderEmoticons: this.props.renderEmoticons,\n                            renderEmoji: this.props.renderEmoji\n                        }));\n                    }\n                     else q.push(j(s));\n                    \n                \n                };\n            };\n            return q;\n        },\n        render: function() {\n            var o = 0, p = this.props.ranges, q = this.props.aggregatedRanges, r = this.props.text, s = null;\n            if (p) {\n                s = (q ? p.concat(q) : p.slice());\n            }\n             else if (q) {\n                s = q.slice();\n            }\n        ;\n            if (s) {\n                s.sort(l);\n            };\n            var t = [], u = (s ? s.length : 0);\n            for (var v = 0, w = u; (v < w); v++) {\n                var x = s[v];\n                if ((x.offset < o)) {\n                    continue;\n                };\n                if ((x.offset > o)) {\n                    t = t.concat(this._formatStandardText(r.substring(o, x.offset)));\n                };\n                var y = r.substr(x.offset, x.length);\n                t = t.concat([(this.props.interpolator ? this.props.interpolator(y, x) : k(y, x)),]);\n                o = (x.offset + x.length);\n            };\n            if ((r.length > o)) {\n                t = t.concat(this._formatStandardText(r.substr(o)));\n            };\n            return h.DOM.span(null, t);\n        }\n    });\n    e.exports = n;\n});\n__d(\"SeeMore.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n        displayName: \"SeeMore\",\n        getInitialState: function() {\n            return {\n                isCollapsed: true\n            };\n        },\n        handleClick: function() {\n            this.setState({\n                isCollapsed: false\n            });\n        },\n        render: function() {\n            var j = this.state.isCollapsed, k = (!j ? null : g.DOM.span(null, \"...\")), l = this.props.children[0], m = (j ? null : g.DOM.span(null, this.props.children[1])), n = (!j ? null : g.DOM.a({\n                className: \"SeeMoreLink fss\",\n                onClick: this.handleClick,\n                href: \"#\",\n                role: \"button\"\n            }, \"See More\"));\n            return (g.DOM.span({\n                className: this.props.className\n            }, l, k, n, m));\n        }\n    });\n    e.exports = i;\n});\n__d(\"TruncatedTextWithEntities.react\", [\"React\",\"TextWithEntities.react\",\"SeeMore.react\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"TextWithEntities.react\"), i = b(\"SeeMore.react\");\n    function j(n, o) {\n        var p = (n.offset + n.length);\n        return ((o > n.offset) && (o < p));\n    };\n    function k(n, o) {\n        for (var p = 0; (p < n.length); p++) {\n            var q = n[p];\n            if (j(q, o)) {\n                return q.offset\n            };\n        };\n        return o;\n    };\n    var l = function(n, o, p) {\n        var q = [], r = [], s = k(o, p);\n        for (var t = 0; (t < o.length); t++) {\n            var u = o[t];\n            if ((u.offset < s)) {\n                q.push(u);\n            }\n             else r.push({\n                offset: (u.offset - s),\n                length: u.length,\n                entities: u.entities\n            });\n        ;\n        };\n        return {\n            first: {\n                ranges: q,\n                text: n.substr(0, s)\n            },\n            second: {\n                ranges: r,\n                text: n.substr(s)\n            }\n        };\n    }, m = g.createClass({\n        displayName: \"TruncatedTextWithEntities\",\n        render: function() {\n            var n = this.props.maxLines, o = this.props.maxLength, p = (this.props.truncationPercent || 175898), q = Math.floor((p * o)), r = (this.props.text || \"\"), s = (this.props.ranges || []), t = r.split(\"\\u000a\"), u = (t.length - 1), v = (o && (r.length > o)), w = (n && (u > n));\n            if (w) {\n                q = Math.min(t.slice(0, n).join(\"\\u000a\").length, q);\n            };\n            if ((v || w)) {\n                var x = l(r, s, q);\n                return (g.DOM.span({\n                    \"data-ft\": this.props[\"data-ft\"],\n                    dir: this.props.dir\n                }, i({\n                    className: this.props.className\n                }, h({\n                    interpolator: this.props.interpolator,\n                    ranges: x.first.ranges,\n                    text: x.first.text,\n                    renderEmoticons: this.props.renderEmoticons,\n                    renderEmoji: this.props.renderEmoji\n                }), h({\n                    interpolator: this.props.interpolator,\n                    ranges: x.second.ranges,\n                    text: x.second.text,\n                    renderEmoticons: this.props.renderEmoticons,\n                    renderEmoji: this.props.renderEmoji\n                }))));\n            }\n             else return (g.DOM.span({\n                \"data-ft\": this.props[\"data-ft\"],\n                dir: this.props.dir\n            }, h({\n                className: this.props.className,\n                interpolator: this.props.interpolator,\n                ranges: s,\n                text: r,\n                renderEmoticons: this.props.renderEmoticons,\n                renderEmoji: this.props.renderEmoji\n            })))\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"UFICommentAttachment.react\", [\"DOM\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"React\"), i = h.createClass({\n        displayName: \"UFICommentAttachment\",\n        _attachmentFromCommentData: function(j) {\n            return (j.photo_comment || j.attachment);\n        },\n        componentDidMount: function(j) {\n            var k = this._attachmentFromCommentData(this.props.comment);\n            if (k) {\n                this.renderAttachment(k);\n            };\n        },\n        shouldComponentUpdate: function(j, k) {\n            var l = this._attachmentFromCommentData(this.props.comment), m = this._attachmentFromCommentData(j.comment);\n            if ((!l && !m)) {\n                return false\n            };\n            if (((!l || !m) || (l.markup != m.markup))) {\n                return true;\n            }\n             else return false\n        ;\n        },\n        componentDidUpdate: function(j) {\n            var k = this._attachmentFromCommentData(this.props.comment);\n            this.renderAttachment(k);\n        },\n        renderAttachment: function(j) {\n            if ((j && this.refs.contents)) {\n                g.setContent(this.refs.contents.getDOMNode(), j.markup);\n            };\n        },\n        render: function() {\n            if (this._attachmentFromCommentData(this.props.comment)) {\n                return h.DOM.div({\n                    ref: \"contents\"\n                });\n            }\n             else return h.DOM.span(null)\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"UFIReplyLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n        displayName: \"UFIReplyLink\",\n        render: function() {\n            return (g.DOM.a({\n                className: \"UFIReplyLink\",\n                href: \"#\",\n                onClick: this.props.onClick\n            }, \"Reply\"));\n        }\n    });\n    e.exports = i;\n});\n__d(\"UFISpamCount\", [\"UFISpamCountImpl\",], function(a, b, c, d, e, f) {\n    e.exports = (b(\"UFISpamCountImpl\").module || {\n        enabled: false\n    });\n});\n__d(\"UFIComment.react\", [\"function-extensions\",\"Bootloader\",\"CloseButton.react\",\"Env\",\"Focus\",\"HovercardLink\",\"HovercardLinkInterpolator\",\"LinkButton\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"Timestamp.react\",\"TrackingNodes\",\"TruncatedTextWithEntities.react\",\"UFIClassNames\",\"UFICommentAttachment.react\",\"UFIConfig\",\"UFIConstants\",\"UFIImageBlock.react\",\"UFIInstanceState\",\"UFIReplyLink.react\",\"UFISpamCount\",\"URI\",\"cx\",\"keyMirror\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Bootloader\"), h = b(\"CloseButton.react\"), i = b(\"Env\"), j = b(\"Focus\"), k = b(\"HovercardLink\"), l = b(\"HovercardLinkInterpolator\"), m = b(\"LinkButton\"), n = b(\"NumberFormat\"), o = b(\"ProfileBrowserLink\"), p = b(\"ProfileBrowserTypes\"), q = b(\"React\"), r = b(\"Timestamp.react\"), s = b(\"TrackingNodes\"), t = b(\"TruncatedTextWithEntities.react\"), u = b(\"UFIClassNames\"), v = b(\"UFICommentAttachment.react\"), w = b(\"UFIConfig\"), x = b(\"UFIConstants\"), y = b(\"UFIImageBlock.react\"), z = b(\"UFIInstanceState\"), aa = b(\"UFIReplyLink.react\"), ba = b(\"UFISpamCount\"), ca = b(\"URI\"), da = b(\"cx\"), ea = b(\"keyMirror\"), fa = b(\"joinClasses\"), ga = b(\"tx\"), ha = x.UFIStatus, ia = \" \\u00b7 \", ja = ea({\n        edit: true,\n        hide: true,\n        remove: true\n    }), ka = \"UFICommentBody\", la = \"UFICommentActorName\", ma = \"UFICommentNotSpamLink\", na = \"fsm fwn fcg UFICommentActions\", oa = \"UFIDeletedMessageIcon\", pa = \"UFIDeletedMessage\", qa = \"UFIFailureMessageIcon\", ra = \"UFIFailureMessage\", sa = \"UFICommentLikeButton\", ta = \"UFICommentLikeIcon\", ua = \"UFITranslateLink\", va = \"UFITranslatedText\", wa = \"uiLinkSubtle\", xa = \"stat_elem\", ya = \"pls\", za = \"fcg\", ab = 27, bb = null, cb = function(kb, lb) {\n        var mb = new ca(\"/ajax/like/tooltip.php\").setQueryData({\n            comment_fbid: kb.fbid,\n            comment_from: kb.author,\n            cache_buster: (kb.likeconfirmhash || 0)\n        });\n        if (lb) {\n            mb.addQueryData({\n                viewas: lb\n            });\n        };\n        return mb;\n    }, db = function(kb) {\n        var lb = kb.status;\n        return ((lb === ha.FAILED_ADD) || (lb === ha.FAILED_EDIT));\n    };\n    function eb(kb) {\n        return (((kb.commenterIsFOF !== undefined) && (kb.userIsMinor !== undefined)) && (kb.reportLink !== undefined));\n    };\n    var fb = q.createClass({\n        displayName: \"UFICommentLikeCount\",\n        render: function() {\n            var kb = this.props.comment, lb = n.formatIntegerWithDelimiter((kb.likecount || 0), this.props.contextArgs.numberdelimiter), mb = p.LIKES, nb = {\n                id: kb.fbid\n            }, ob = cb(this.props.comment, this.props.viewas), pb = q.DOM.i({\n                className: ta\n            }), qb = q.DOM.span(null, lb);\n            return (q.DOM.a({\n                className: sa,\n                role: \"button\",\n                rel: \"dialog\",\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"data-tooltip-uri\": ob.toString(),\n                ajaxify: o.constructDialogURI(mb, nb).toString(),\n                href: o.constructPageURI(mb, nb).toString()\n            }, pb, qb));\n        }\n    }), gb = q.createClass({\n        displayName: \"UFICommentActions\",\n        render: function() {\n            var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.markedAsSpamHere, ob = (lb.status === ha.SPAM_DISPLAY), pb = this.props.showReplyLink, qb = this.props.hideAsSpamForPageAdmin, rb, sb, tb, ub, vb, wb, xb = (!lb.islocal && (lb.status !== ha.LIVE_DELETED));\n            if (xb) {\n                if ((ob && !nb)) {\n                    if (kb.viewerCanMarkNotSpam) {\n                        rb = q.DOM.a({\n                            onClick: kb.onMarkAsNotSpam,\n                            className: ma,\n                            href: \"#\",\n                            role: \"button\"\n                        }, \"Unhide\");\n                    };\n                    if ((((qb && mb.isthreaded) && mb.cancomment) && pb)) {\n                        vb = aa({\n                            comment: lb,\n                            onClick: kb.onCommentReply,\n                            contextArgs: kb.contextArgs\n                        });\n                    };\n                }\n                 else {\n                    if (mb.viewercanlike) {\n                        var yb = s.getTrackingInfo((lb.hasviewerliked ? s.types.UNLIKE_LINK : s.types.LIKE_LINK)), zb = (lb.hasviewerliked ? \"Unlike this comment\" : \"Like this comment\");\n                        sb = q.DOM.a({\n                            className: \"UFILikeLink\",\n                            href: \"#\",\n                            role: \"button\",\n                            onClick: kb.onCommentLikeToggle,\n                            \"data-ft\": yb,\n                            title: zb\n                        }, (lb.hasviewerliked ? \"Unlike\" : \"Like\"));\n                    }\n                ;\n                    if (((mb.isthreaded && mb.cancomment) && pb)) {\n                        vb = aa({\n                            comment: lb,\n                            onClick: kb.onCommentReply,\n                            contextArgs: kb.contextArgs\n                        });\n                    };\n                    if ((lb.likecount > 0)) {\n                        tb = fb({\n                            comment: lb,\n                            viewas: this.props.viewas,\n                            contextArgs: this.props.contextArgs\n                        });\n                    };\n                    if ((lb.spamcount && ba.enabled)) {\n                        ub = ba({\n                            count: lb.spamcount\n                        });\n                    };\n                }\n            ;\n                if ((lb.attachment && lb.canremove)) {\n                    wb = q.DOM.a({\n                        onClick: kb.onPreviewRemove,\n                        href: \"#\",\n                        role: \"button\"\n                    }, \"Remove Preview\");\n                };\n            }\n        ;\n            var ac = hb({\n                comment: lb,\n                onRetrySubmit: kb.onRetrySubmit,\n                showPermalink: kb.showPermalink\n            }), bc;\n            if (kb.contextArgs.entstream) {\n                bc = [ac,sb,tb,vb,ub,rb,wb,];\n            }\n             else if (mb.isthreaded) {\n                bc = [sb,vb,rb,wb,tb,ub,ac,];\n            }\n             else bc = [ac,sb,tb,ub,vb,rb,wb,];\n            \n        ;\n            if ((lb.status === ha.LIVE_DELETED)) {\n                var cc = q.DOM.span({\n                    className: pa\n                }, q.DOM.i({\n                    className: oa,\n                    \"data-hover\": \"tooltip\",\n                    \"aria-label\": \"Comment deleted\"\n                }));\n                bc.push(cc);\n            }\n        ;\n            var dc = [];\n            for (var ec = 0; (ec < bc.length); ec++) {\n                if (bc[ec]) {\n                    dc.push(ia);\n                    dc.push(bc[ec]);\n                }\n            ;\n            };\n            dc.shift();\n            return (q.DOM.div({\n                className: na\n            }, dc));\n        }\n    }), hb = q.createClass({\n        displayName: \"UFICommentMetadata\",\n        render: function() {\n            var kb = this.props.comment, lb = this.props.onRetrySubmit, mb, nb;\n            if (db(kb)) {\n                mb = [q.DOM.span({\n                    className: ra\n                }, q.DOM.i({\n                    className: qa\n                }), \"Unable to post comment.\"),((kb.allowRetry && lb) ? [\" \",q.DOM.a({\n                    onClick: lb,\n                    href: \"#\",\n                    role: \"button\"\n                }, \"Try Again\"),] : null),];\n            }\n             else {\n                var ob = (this.props.showPermalink ? kb.permalink : null), pb = s.getTrackingInfo(s.types.SOURCE), qb = q.DOM.a({\n                    className: wa,\n                    href: ob,\n                    \"data-ft\": pb\n                }, r({\n                    time: kb.timestamp.time,\n                    text: kb.timestamp.text,\n                    verbose: kb.timestamp.verbose\n                })), rb;\n                switch (kb.source) {\n                  case x.UFISourceType.MOBILE:\n                    rb = q.DOM.a({\n                        className: wa,\n                        href: new ca(\"/mobile/\").setSubdomain(\"www\").toString()\n                    }, \"mobile\");\n                    break;\n                  case x.UFISourceType.SMS:\n                    rb = q.DOM.a({\n                        className: wa,\n                        href: new ca(\"/mobile/?v=texts\").setSubdomain(\"www\").toString()\n                    }, \"text message\");\n                    break;\n                  case x.UFISourceType.EMAIL:\n                    rb = m({\n                        subtle: true,\n                        label: \"email\",\n                        inputType: \"submit\",\n                        name: \"email_explain\",\n                        value: true,\n                        className: xa\n                    });\n                    break;\n                };\n                nb = (rb ? ga._(\"{time} via {source}\", {\n                    time: qb,\n                    source: rb\n                }) : qb);\n            }\n        ;\n            var sb = null;\n            if (kb.originalTimestamp) {\n                var tb = new ca(\"/ajax/edits/browser/comment\").addQueryData({\n                    comment_token: kb.id\n                }).toString();\n                sb = [ia,q.DOM.a({\n                    ref: \"EditLink\",\n                    href: \"#\",\n                    role: \"button\",\n                    rel: \"dialog\",\n                    className: \"uiLinkSubtle\",\n                    ajaxify: tb,\n                    \"data-hover\": \"tooltip\",\n                    \"aria-label\": \"Show edit history\",\n                    title: \"Show edit history\"\n                }, \"Edited\"),];\n            }\n        ;\n            return (q.DOM.span(null, nb, mb, sb));\n        },\n        componentWillUpdate: function(kb) {\n            var lb = this.props.comment, mb = kb.comment;\n            if ((!lb.editnux && !!mb.editnux)) {\n                g.loadModules([\"LegacyContextualDialog\",], function(nb) {\n                    var ob = new nb();\n                    ob.init(mb.editnux).setContext(this.refs.EditLink.getDOMNode()).setWidth(300).setPosition(\"below\").show();\n                }.bind(this));\n            };\n        }\n    }), ib = q.createClass({\n        displayName: \"UFISocialContext\",\n        render: function() {\n            var kb = this.props.topMutualFriend, lb = this.props.otherMutualCount, mb = this.props.commentAuthor, nb = k.constructEndpoint(kb).toString(), ob = q.DOM.a({\n                href: kb.uri,\n                \"data-hovercard\": nb\n            }, kb.name), pb = (mb.name.length + kb.name.length), qb;\n            if ((lb === 0)) {\n                qb = ga._(\"Friends with {name}\", {\n                    name: ob\n                });\n            }\n             else if ((pb < ab)) {\n                var rb;\n                if ((lb == 1)) {\n                    rb = \"1 other\";\n                }\n                 else rb = ga._(\"{count} others\", {\n                    count: lb\n                });\n            ;\n                qb = ga._(\"Friends with {name} and {others}\", {\n                    name: ob,\n                    others: this.getOthersLink(rb, mb, kb)\n                });\n            }\n             else {\n                var sb = ga._(\"{count} mutual friends\", {\n                    count: (lb + 1)\n                });\n                qb = this.getOthersLink(sb, mb);\n            }\n            \n        ;\n            return (q.DOM.span({\n                className: \"UFICommentSocialContext\"\n            }, ia, qb));\n        },\n        getOthersLink: function(kb, lb, mb) {\n            var nb = p.MUTUAL_FRIENDS, ob = {\n                uid: lb.id\n            }, pb = new ca(\"/ajax/mutual_friends/tooltip.php\").setQueryData({\n                friend_id: lb.id\n            });\n            if (mb) {\n                pb.addQueryData({\n                    exclude_id: mb.id\n                });\n            };\n            var qb = o.constructDialogURI(nb, ob).toString();\n            return (q.DOM.a({\n                rel: \"dialog\",\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"data-tooltip-uri\": pb.toString(),\n                ajaxify: qb,\n                href: o.constructPageURI(nb, ob).toString()\n            }, kb));\n        }\n    }), jb = q.createClass({\n        displayName: \"UFIComment\",\n        getInitialState: function() {\n            return {\n                isHighlighting: this.props.comment.highlightcomment,\n                wasHighlighted: this.props.comment.highlightcomment,\n                markedAsSpamHere: false,\n                oneClickRemovedHere: false,\n                isInlinePageDeleted: false,\n                isInlineBanned: false\n            };\n        },\n        _onHideAsSpam: function(event) {\n            this.props.onHideAsSpam(event);\n            this.setState({\n                markedAsSpamHere: true\n            });\n        },\n        _onMarkAsNotSpam: function(event) {\n            this.props.onMarkAsNotSpam(event);\n            this.setState({\n                markedAsSpamHere: false\n            });\n        },\n        _onDeleteSpam: function(event) {\n            this.props.onOneClickRemove(event);\n            this.setState({\n                isInlinePageDeleted: true\n            });\n        },\n        _onUndoDeleteSpam: function(event) {\n            this.props.onUndoOneClickRemove(event);\n            this.setState({\n                isInlinePageDeleted: false\n            });\n        },\n        _onInlineBan: function(event) {\n            this.props.onInlineBan(event);\n            this.setState({\n                isInlineBanned: true\n            });\n        },\n        _onUndoInlineBan: function(event) {\n            this.props.onUndoInlineBan(event);\n            this.setState({\n                isInlineBanned: false\n            });\n        },\n        _onOneClickRemove: function(event) {\n            this.props.onOneClickRemove(event);\n            this.setState({\n                oneClickRemovedHere: true\n            });\n        },\n        _onUndoOneClickRemove: function(event) {\n            this.props.onUndoOneClickRemove(event);\n            this.setState({\n                oneClickRemovedHere: false\n            });\n        },\n        _onAction: function(event, kb) {\n            if ((kb === ja.remove)) {\n                this.props.onRemove(event);\n            }\n             else if ((kb === ja.edit)) {\n                this.props.onEdit(event);\n            }\n             else if ((kb === ja.hide)) {\n                this._onHideAsSpam(event);\n            }\n            \n        ;\n        },\n        _createRemoveReportMenu: function(event) {\n            if (this._removeReportMenu) {\n                return\n            };\n            var kb = [{\n                label: \"Delete Comment...\",\n                value: ja.remove\n            },{\n                label: \"Hide Comment\",\n                value: ja.hide\n            },];\n            if (event.persist) {\n                event.persist();\n            }\n             else event = event.constructor.persistentCloneOf(event);\n        ;\n            g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n                this._removeReportMenu = lb.createAndShowPopoverMenu(event.target, kb, this._onAction.bind(this, event));\n            }.bind(this));\n        },\n        _createEditDeleteMenu: function(event) {\n            if (event.persist) {\n                event.persist();\n            }\n             else event = event.constructor.persistentCloneOf(event);\n        ;\n            if (this._editDeleteMenu) {\n                return\n            };\n            var kb = [{\n                label: \"Edit...\",\n                value: ja.edit\n            },{\n                label: \"Delete...\",\n                value: ja.remove\n            },];\n            g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n                this._editDeleteMenu = lb.createAndShowPopoverMenu(event.target, kb, this._onAction.bind(this, event));\n            }.bind(this));\n        },\n        _renderCloseButton: function() {\n            var kb = this.props.comment, lb = this.props.feedback, mb = null, nb = null, ob = false;\n            if ((kb.canremove && !this.props.hideAsSpamForPageAdmin)) {\n                if (this.props.viewerIsAuthor) {\n                    if (kb.canedit) {\n                        nb = \"Edit or Delete\";\n                        mb = this._createEditDeleteMenu;\n                        ob = true;\n                    }\n                     else {\n                        nb = \"Remove\";\n                        mb = this.props.onRemove;\n                    }\n                ;\n                }\n                 else if (lb.canremoveall) {\n                    if (this.props.showRemoveReportMenu) {\n                        nb = \"Remove or Report\";\n                        mb = this._createRemoveReportMenu;\n                    }\n                     else {\n                        nb = \"Remove\";\n                        mb = this._onOneClickRemove;\n                    }\n                \n                }\n            ;\n            }\n             else if (kb.canreport) {\n                nb = \"Hide\";\n                mb = this._onHideAsSpam;\n            }\n            \n        ;\n            var pb = ((((\"UFICommentCloseButton\") + ((ob ? (\" \" + \"UFIEditButton\") : \"\"))) + (((mb === null) ? (\" \" + \"hdn\") : \"\"))));\n            return (h({\n                onClick: mb,\n                tooltip: nb,\n                className: pb\n            }));\n        },\n        componentDidMount: function(kb) {\n            var lb = this.props.comment.ufiinstanceid;\n            if (this.state.isHighlighting) {\n                g.loadModules([\"UFIScrollHighlight\",], function(nb) {\n                    nb.actOn.curry(kb).defer();\n                });\n                this.setState({\n                    isHighlighting: false\n                });\n            }\n        ;\n            var mb = z.getKeyForInstance(lb, \"autofocus\");\n            if (mb) {\n                j.setWithoutOutline(this.refs.AuthorName.getDOMNode());\n                z.updateState(lb, \"autofocus\", false);\n            }\n        ;\n        },\n        shouldComponentUpdate: function(kb) {\n            var lb = this.props;\n            return ((((((((((((kb.comment !== lb.comment) || (kb.showReplyLink !== lb.showReplyLink)) || (kb.showReplies !== lb.showReplies)) || (kb.isFirst !== lb.isFirst)) || (kb.isLast !== lb.isLast)) || (kb.isFirstCommentComponent !== lb.isFirstCommentComponent)) || (kb.isLastCommentComponent !== lb.isLastCommentComponent)) || (kb.isFirstComponent !== lb.isFirstComponent)) || (kb.isLastComponent !== lb.isLastComponent)) || (kb.isFeaturedComment !== lb.isFeaturedComment)) || (kb.hasPartialBorder !== lb.hasPartialBorder)));\n        },\n        render: function() {\n            var kb = this.props.comment, lb = this.props.feedback, mb = (kb.status === ha.DELETED), nb = (kb.status === ha.LIVE_DELETED), ob = (kb.status === ha.SPAM_DISPLAY), pb = (kb.status === ha.PENDING_UNDO_DELETE), qb = this.state.markedAsSpamHere, rb = this.state.oneClickRemovedHere, sb = this.state.isInlinePageDeleted, tb = this.props.hideAsSpamForPageAdmin, ub = this.state.isInlineBanned, vb = eb(kb), wb = (!kb.status && ((kb.isunseen || kb.islocal)));\n            if ((!kb.status && lb.lastseentime)) {\n                var xb = (kb.originalTimestamp || kb.timestamp.time);\n                wb = (wb || (xb > lb.lastseentime));\n            }\n        ;\n            var yb = this.props.contextArgs.markedcomments;\n            if ((yb && yb[kb.legacyid])) {\n                wb = true;\n            };\n            if (vb) {\n                if (bb) {\n                    var zb, ac = null, bc = null, cc = null;\n                    if (tb) {\n                        bc = (ub ? this._onUndoInlineBan : this._onInlineBan);\n                        if (sb) {\n                            ac = this._onUndoDeleteSpam;\n                            var dc = q.DOM.a({\n                                href: \"#\",\n                                onClick: ac\n                            }, \"Undo\");\n                            zb = ga._(\"You've deleted this comment so no one can see it. {undo}.\", {\n                                undo: dc\n                            });\n                        }\n                         else if (qb) {\n                            zb = \"Now this is only visible to the person who wrote it and their friends.\";\n                            cc = this._onDeleteSpam;\n                            ac = this._onMarkAsNotSpam;\n                        }\n                        \n                    ;\n                    }\n                     else if (qb) {\n                        zb = \"This comment has been hidden.\";\n                        cc = this._onDeleteSpam;\n                        ac = this._onMarkAsNotSpam;\n                    }\n                     else if (rb) {\n                        zb = \"This comment has been removed.\";\n                        ac = this._onUndoOneClickRemove;\n                    }\n                    \n                    \n                ;\n                    if (zb) {\n                        return (q.DOM.li({\n                            className: fa(u.ROW, \"UFIHide\")\n                        }, bb({\n                            notice: zb,\n                            comment: this.props.comment,\n                            authorProfiles: this.props.authorProfiles,\n                            onUndo: ac,\n                            onBanAction: bc,\n                            onDeleteAction: cc,\n                            isInlineBanned: ub,\n                            hideAsSpamForPageAdmin: tb\n                        })))\n                    };\n                }\n                 else g.loadModules([\"UFICommentRemovalControls.react\",], function(gc) {\n                    bb = gc;\n                    setTimeout(function() {\n                        this.forceUpdate();\n                    }.bind(this));\n                }.bind(this));\n            \n            };\n            var ec = fa(u.ROW, ((((((((((((((\"UFIComment\") + ((db(kb) ? (\" \" + \"UFICommentFailed\") : \"\"))) + (((((mb || nb) || ob) || pb) ? (\" \" + \"UFITranslucentComment\") : \"\"))) + ((this.state.isHighlighting ? (\" \" + \"highlightComment\") : \"\"))) + (((mb && !rb) ? (\" \" + \"noDisplay\") : \"\"))) + (((this.props.isFirst && !this.props.isReply) ? (\" \" + \"UFIFirstComment\") : \"\"))) + (((this.props.isLast && !this.props.isReply) ? (\" \" + \"UFILastComment\") : \"\"))) + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))) + ((this.props.isFeatured ? (\" \" + \"UFIFeaturedComment\") : \"\"))) + (((this.props.hasPartialBorder && !this.props.contextArgs.entstream) ? (\" \" + \"UFIPartialBorder\") : \"\"))))), fc = this.renderComment();\n            if (wb) {\n                if (this.props.contextArgs.snowliftredesign) {\n                    fc = q.DOM.div({\n                        className: \"_5cis\"\n                    }, q.DOM.div({\n                        className: \"_5cit\"\n                    }), fc);\n                }\n                 else if ((this.props.contextArgs.entstream && !this.props.isReply)) {\n                    fc = q.DOM.div({\n                        className: \"_52mp\"\n                    }, q.DOM.div({\n                        className: \"_52mq\"\n                    }), fc);\n                }\n                 else ec = fa(ec, u.UNSEEN_ITEM);\n                \n            \n            };\n            return (q.DOM.li({\n                className: ec,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, fc));\n        },\n        renderComment: function() {\n            var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.authorProfiles[lb.author], ob = (lb.status === ha.SPAM_DISPLAY), pb = (lb.status === ha.LIVE_DELETED), qb = !((ob || pb)), rb = (mb.canremoveall || lb.hiddenbyviewer), sb = null, tb = null;\n            if (((!kb.isLocallyComposed && !this.state.wasHighlighted) && !lb.fromfetch)) {\n                tb = x.commentTruncationLength;\n                sb = x.commentTruncationMaxLines;\n            }\n        ;\n            var ub = s.getTrackingInfo(s.types.SMALL_ACTOR_PHOTO), vb = s.getTrackingInfo(s.types.USER_NAME), wb = s.getTrackingInfo(s.types.USER_MESSAGE), xb = null, yb = null;\n            if ((lb.istranslatable && ((lb.translatedtext === undefined)))) {\n                xb = q.DOM.a({\n                    href: \"#\",\n                    role: \"button\",\n                    title: \"Translate this comment\",\n                    className: ua,\n                    onClick: kb.onCommentTranslate\n                }, \"See Translation\");\n            };\n            if (lb.translatedtext) {\n                var zb = new ca(\"http://bing.com/translator\").addQueryData({\n                    text: lb.body.text\n                });\n                yb = q.DOM.span({\n                    className: va\n                }, lb.translatedtext, q.DOM.span({\n                    className: ya\n                }, \" (\", q.DOM.a({\n                    href: zb.toString(),\n                    className: za\n                }, \"Translated by Bing\"), \") \"));\n            }\n        ;\n            var ac;\n            if ((i.rtl && (lb.body.dir === \"ltr\"))) {\n                ac = \"rtl\";\n            }\n             else if ((!i.rtl && (lb.body.dir === \"rtl\"))) {\n                ac = \"ltr\";\n            }\n        ;\n            var bc = k.constructEndpointWithLocation(nb, \"ufi\").toString(), cc = q.DOM.a({\n                ref: \"AuthorName\",\n                className: la,\n                href: nb.uri,\n                \"data-hovercard\": bc,\n                \"data-ft\": vb,\n                dir: ac\n            }, nb.name), dc = function(ic, jc) {\n                return l(ic, jc, \"_blank\", mb.grouporeventid, \"ufi\");\n            }, ec = t({\n                className: ka,\n                interpolator: dc,\n                ranges: lb.body.ranges,\n                text: lb.body.text,\n                truncationPercent: x.commentTruncationPercent,\n                maxLength: tb,\n                maxLines: sb,\n                renderEmoticons: w.renderEmoticons,\n                renderEmoji: w.renderEmoji,\n                \"data-ft\": wb,\n                dir: lb.body.dir\n            }), fc;\n            if (lb.socialcontext) {\n                var gc = lb.socialcontext, hc = ib({\n                    topMutualFriend: kb.authorProfiles[gc.topmutualid],\n                    otherMutualCount: gc.othermutualcount,\n                    commentAuthor: nb\n                });\n                fc = [cc,hc,q.DOM.div(null, ec),];\n            }\n             else fc = [cc,\" \",ec,];\n        ;\n            return (y({\n                spacing: \"medium\"\n            }, q.DOM.a({\n                href: nb.uri,\n                \"data-hovercard\": bc,\n                \"data-ft\": ub\n            }, q.DOM.img({\n                src: nb.thumbSrc,\n                className: u.ACTOR_IMAGE,\n                alt: \"\"\n            })), q.DOM.div(null, q.DOM.div({\n                className: \"UFICommentContent\"\n            }, fc, xb, yb, v({\n                comment: kb.comment\n            })), gb({\n                comment: lb,\n                feedback: mb,\n                onBlingBoxClick: kb.onBlingBoxClick,\n                onCommentLikeToggle: kb.onCommentLikeToggle,\n                onCommentReply: kb.onCommentReply,\n                onPreviewRemove: kb.onPreviewRemove,\n                onRetrySubmit: kb.onRetrySubmit,\n                onMarkAsNotSpam: this._onMarkAsNotSpam,\n                viewerCanMarkNotSpam: rb,\n                viewas: kb.contextArgs.viewas,\n                showPermalink: kb.showPermalink,\n                showReplyLink: kb.showReplyLink,\n                showReplies: kb.showReplies,\n                contextArgs: kb.contextArgs,\n                markedAsSpamHere: this.state.markedAsSpamHere,\n                hideAsSpamForPageAdmin: kb.hideAsSpamForPageAdmin\n            })), (qb ? this._renderCloseButton() : null)));\n        }\n    });\n    e.exports = jb;\n});\n__d(\"UFIContainer.react\", [\"React\",\"TrackingNodes\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"cx\"), j = g.createClass({\n        displayName: \"UFIContainer\",\n        render: function() {\n            var k = null;\n            if (this.props.hasNub) {\n                k = g.DOM.li({\n                    className: \"UFIArrow\"\n                }, g.DOM.i(null));\n            };\n            var l = (((((((((!this.props.isReplyList ? \"UFIList\" : \"\")) + ((this.props.isReplyList ? (\" \" + \"UFIReplyList\") : \"\"))) + ((this.props.isParentLiveDeleted ? (\" \" + \"UFITranslucentReplyList\") : \"\"))) + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))));\n            return (g.DOM.ul({\n                className: l,\n                \"data-ft\": h.getTrackingInfo(h.types.UFI)\n            }, k, this.props.children));\n        }\n    });\n    e.exports = j;\n});\n__d(\"GiftOpportunityLogger\", [\"AsyncRequest\",\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Event\"), i = {\n        init: function(k, l, m) {\n            var n = false;\n            h.listen(k, \"click\", function(o) {\n                if (n) {\n                    return true\n                };\n                n = true;\n                i.send(l, m);\n            });\n        },\n        send: function(k, l) {\n            if (j[k.opportunity_id]) {\n                return\n            };\n            j[k.opportunity_id] = true;\n            return new g().setURI(\"/ajax/gifts/log/opportunity\").setData({\n                data: k,\n                entry_point: l\n            }).send();\n        }\n    }, j = {\n    };\n    e.exports = i;\n});\n__d(\"InlineBlock.react\", [\"ReactProps\",\"React\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactProps\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = {\n        baseline: null,\n        bottom: \"_6d\",\n        middle: \"_6b\",\n        top: \"_6e\"\n    }, l = h.createClass({\n        displayName: \"InlineBlock\",\n        props: {\n            alignv: g.oneOf([\"baseline\",\"bottom\",\"middle\",\"top\",]),\n            height: g.number\n        },\n        getDefaultProps: function() {\n            return {\n                alignv: \"baseline\"\n            };\n        },\n        render: function() {\n            var m = k[this.props.alignv], n = h.DOM.div({\n                className: j(\"_6a\", m)\n            }, this.props.children);\n            if ((this.props.height != null)) {\n                var o = h.DOM.div({\n                    className: j(\"_6a\", m),\n                    style: {\n                        height: (this.props.height + \"px\")\n                    }\n                });\n                n = h.DOM.div({\n                    className: \"_6a\",\n                    height: null\n                }, o, n);\n            }\n        ;\n            return this.transferPropsTo(n);\n        }\n    });\n    e.exports = l;\n});\n__d(\"Image.react\", [\"React\",\"invariant\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"invariant\"), i = b(\"joinClasses\"), j = g.createClass({\n        displayName: \"ReactImage\",\n        props: {\n            src: function(k, l, m) {\n                var n = k[l];\n                h(((typeof n === \"string\") || (((typeof n === \"object\") && (((((n.sprited && n.spriteMapCssClass) && n.spriteCssClass)) || ((!n.sprited && n.uri))))))));\n            }\n        },\n        render: function() {\n            var k, l, m = this.props.src, n = \"img\";\n            l = true;\n            if ((typeof m === \"string\")) {\n                k = g.DOM.img({\n                    className: n,\n                    src: m\n                });\n            }\n             else if (m.sprited) {\n                n = i(n, m.spriteMapCssClass, m.spriteCssClass);\n                k = g.DOM.i({\n                    className: n,\n                    src: null\n                });\n                l = false;\n            }\n             else {\n                k = g.DOM.img({\n                    className: n,\n                    src: m.uri\n                });\n                if (((typeof this.props.width === \"undefined\") && (typeof this.props.height === \"undefined\"))) {\n                    k.props.width = m.width;\n                    k.props.height = m.height;\n                }\n            ;\n            }\n            \n        ;\n            if (this.props.alt) {\n                if (l) {\n                    k.props.alt = this.props.alt;\n                }\n                 else k.props.children = g.DOM.u(null, this.props.alt);\n            \n            };\n            return this.transferPropsTo(k);\n        }\n    });\n    e.exports = j;\n});\n__d(\"UFIGiftSentence.react\", [\"AsyncRequest\",\"CloseButton.react\",\"GiftOpportunityLogger\",\"ImageBlock.react\",\"InlineBlock.react\",\"LeftRight.react\",\"Link.react\",\"React\",\"Image.react\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"DOM\",\"ix\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CloseButton.react\"), i = b(\"GiftOpportunityLogger\"), j = b(\"ImageBlock.react\"), k = b(\"InlineBlock.react\"), l = b(\"LeftRight.react\"), m = b(\"Link.react\"), n = b(\"React\"), o = b(\"Image.react\"), p = b(\"UFIClassNames\"), q = b(\"UFIImageBlock.react\"), r = b(\"URI\"), s = b(\"DOM\"), t = b(\"ix\"), u = b(\"tx\"), v = n.createClass({\n        displayName: \"UFIGiftSentence\",\n        _entry_point: \"detected_gift_worthy_story_inline\",\n        render: function() {\n            var w = this.props.recipient, x = this.props.giftdata, y = (x ? x.giftproductid : null), z = this._getURI(y).toString();\n            this._log();\n            return (n.DOM.li({\n                className: p.ROW,\n                ref: \"UFIGiftSentence\"\n            }, l({\n                direction: \"right\"\n            }, (x ? this._renderGiftSuggestion(z, w, x) : this._renderGiftLink(z, w)), h({\n                size: \"small\",\n                onClick: function() {\n                    var aa = this.refs.UFIGiftSentence.getDOMNode();\n                    s.remove(aa);\n                    this._requestClose();\n                }.bind(this)\n            }))));\n        },\n        _renderGiftSuggestion: function(w, x, y) {\n            return (q(null, o({\n                src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n                alt: \"invite\"\n            }), n.DOM.div(null, n.DOM.span({\n                className: \"fwb\"\n            }, u._(\"Surprise {name} with a gift\", {\n                name: x.firstName\n            })), j({\n                spacing: \"medium\",\n                className: \"mvs\"\n            }, m({\n                className: \"fwb\",\n                rel: \"async-post\",\n                ajaxify: w,\n                href: {\n                    url: \"#\"\n                }\n            }, o({\n                className: \"UFIGiftProductImg\",\n                src: y.giftproductimgsrc,\n                alt: \"product image\"\n            })), k({\n                alignv: \"middle\",\n                height: 79\n            }, n.DOM.p({\n                className: \"mvs\"\n            }, m({\n                className: \"fwb\",\n                rel: \"async-post\",\n                ajaxify: w,\n                href: {\n                    url: \"#\"\n                }\n            }, y.giftproductname)), n.DOM.p({\n                className: \"mvs fcg\"\n            }, y.giftproductpricerange), n.DOM.p({\n                className: \"mvs\"\n            }, m({\n                rel: \"async-post\",\n                ajaxify: w,\n                href: {\n                    url: \"#\"\n                }\n            }, \"Give This Gift\"), \" \\u00b7 \", m({\n                rel: \"async-post\",\n                ajaxify: this._getURI().toString(),\n                href: {\n                    url: \"#\"\n                }\n            }, \"See All Gifts\")))))));\n        },\n        _renderGiftLink: function(w, x) {\n            return (q(null, m({\n                className: \"UFIGiftIcon\",\n                tabIndex: \"-1\",\n                href: {\n                    url: \"#\"\n                },\n                rel: \"async-post\",\n                ajaxify: w\n            }, o({\n                src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n                alt: \"invite\"\n            })), m({\n                rel: \"async-post\",\n                href: {\n                    url: \"#\"\n                },\n                ajaxify: w\n            }, u._(\"Surprise {name} with a gift\", {\n                name: x.firstName\n            }))));\n        },\n        _log: function() {\n            var w = this.props.giftdata, x = {\n                opportunity_id: this.props.contextArgs.ftentidentifier,\n                sender_id: this.props.sender.id,\n                recipient_id: this.props.recipient.id,\n                link_description: \"UFIGiftSentence\",\n                product_id: (w ? w.giftproductid : null),\n                custom: {\n                    gift_occasion: this.props.contextArgs.giftoccasion,\n                    ftentidentifier: this.props.contextArgs.ftentidentifier\n                }\n            };\n            i.send([x,], this._entry_point);\n        },\n        _getURI: function(w) {\n            return r(\"/ajax/gifts/send\").addQueryData({\n                gift_occasion: this.props.contextArgs.giftoccasion,\n                recipient_id: this.props.recipient.id,\n                entry_point: this._entry_point,\n                product_id: w\n            });\n        },\n        _requestClose: function() {\n            var w = r(\"/ajax/gifts/moments/close/\");\n            new g().setMethod(\"POST\").setReadOnly(false).setURI(w).setData({\n                action: \"hide\",\n                data: JSON.stringify({\n                    type: \"detected_moment\",\n                    friend_id: this.props.recipient.id,\n                    ftentidentifier: this.props.contextArgs.ftentidentifier\n                })\n            }).send();\n        }\n    });\n    e.exports = v;\n});\n__d(\"UFILikeSentenceText.react\", [\"HovercardLinkInterpolator\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"TextWithEntities.react\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"HovercardLinkInterpolator\"), h = b(\"ProfileBrowserLink\"), i = b(\"ProfileBrowserTypes\"), j = b(\"React\"), k = b(\"TextWithEntities.react\"), l = b(\"URI\");\n    function m(p, q, r, s) {\n        if ((s.count != null)) {\n            var t = i.LIKES, u = {\n                id: p.targetfbid\n            };\n            return (j.DOM.a({\n                href: h.constructPageURI(t, u).toString(),\n                target: \"_blank\"\n            }, r));\n        }\n         else return g(r, s, \"_blank\", null, \"ufi\")\n    ;\n    };\n    function n(p, q, r, s) {\n        if ((s.count != null)) {\n            var t = i.LIKES, u = {\n                id: p.targetfbid\n            }, v = [];\n            for (var w = 0; (w < q.length); w++) {\n                if (!q[w].count) {\n                    v.push(q[w].entities[0].id);\n                };\n            };\n            var x = new l(\"/ajax/like/tooltip.php\").setQueryData({\n                comment_fbid: p.targetfbid,\n                comment_from: p.actorforpost,\n                seen_user_fbids: (v.length ? v : true)\n            });\n            return (j.DOM.a({\n                rel: \"dialog\",\n                ajaxify: h.constructDialogURI(t, u).toString(),\n                href: h.constructPageURI(t, u).toString(),\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"data-tooltip-uri\": x.toString()\n            }, r));\n        }\n         else return g(r, s, null, null, \"ufi\")\n    ;\n    };\n    var o = j.createClass({\n        displayName: \"UFILikeSentenceText\",\n        render: function() {\n            var p = this.props.feedback, q = this.props.likeSentenceData, r;\n            if (this.props.contextArgs.embedded) {\n                r = m;\n            }\n             else r = n;\n        ;\n            r = r.bind(null, p, q.ranges);\n            return (k({\n                interpolator: r,\n                ranges: q.ranges,\n                aggregatedRanges: q.aggregatedranges,\n                text: q.text\n            }));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFILikeSentence.react\", [\"Bootloader\",\"LeftRight.react\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"UFILikeSentenceText.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"LeftRight.react\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"UFIClassNames\"), m = b(\"UFIImageBlock.react\"), n = b(\"UFILikeSentenceText.react\"), o = b(\"URI\"), p = b(\"cx\"), q = b(\"joinClasses\"), r = b(\"tx\"), s = k.createClass({\n        displayName: \"UFILikeSentence\",\n        getInitialState: function() {\n            return {\n                selectorModule: null,\n                bootloadedSelectorModule: false\n            };\n        },\n        componentWillMount: function() {\n            this._bootloadSelectorModule(this.props);\n        },\n        componentWillReceiveProps: function(t) {\n            this._bootloadSelectorModule(t);\n        },\n        _bootloadSelectorModule: function(t) {\n            if ((t.showOrderingModeSelector && !this.state.bootloadedSelectorModule)) {\n                var u = function(v) {\n                    this.setState({\n                        selectorModule: v\n                    });\n                }.bind(this);\n                if (t.contextArgs.entstream) {\n                    g.loadModules([\"UFIEntStreamOrderingModeSelector.react\",], u);\n                }\n                 else g.loadModules([\"UFIOrderingModeSelector.react\",], u);\n            ;\n                this.setState({\n                    bootloadedSelectorModule: true\n                });\n            }\n        ;\n        },\n        render: function() {\n            var t = this.props.feedback, u = t.likesentences.current, v = this.props.contextArgs.entstream, w = q(l.ROW, (t.likesentences.isunseen ? l.UNSEEN_ITEM : \"\"), ((((\"UFILikeSentence\") + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), x = null, y = null;\n            if (u.text) {\n                y = k.DOM.div({\n                    className: \"UFILikeSentenceText\"\n                }, n({\n                    contextArgs: this.props.contextArgs,\n                    feedback: t,\n                    likeSentenceData: u\n                }));\n            };\n            if ((y && !v)) {\n                x = k.DOM.i({\n                    className: \"UFILikeIcon\"\n                });\n                if ((t.viewercanlike && !t.hasviewerliked)) {\n                    x = k.DOM.a({\n                        className: \"UFILikeThumb\",\n                        href: \"#\",\n                        tabIndex: \"-1\",\n                        title: \"Like this\",\n                        onClick: this.props.onTargetLikeToggle\n                    }, x);\n                };\n            }\n        ;\n            var z = y, aa = null;\n            if (((t.seencount > 0) && !v)) {\n                var ba = j.GROUP_MESSAGE_VIEWERS, ca = {\n                    id: t.targetfbid\n                }, da = i.constructDialogURI(ba, ca), ea = i.constructPageURI(ba, ca), fa = new o(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n                    ft_ent_identifier: t.entidentifier,\n                    displayed_count: t.seencount\n                }), ga;\n                if (t.seenbyall) {\n                    ga = \"Seen by everyone\";\n                }\n                 else ga = ((t.seencount == 1) ? \"Seen by 1\" : r._(\"Seen by {count}\", {\n                    count: t.seencount\n                }));\n            ;\n                aa = k.DOM.a({\n                    rel: \"dialog\",\n                    ajaxify: da.toString(),\n                    href: ea.toString(),\n                    tabindex: \"-1\",\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"left\",\n                    \"data-tooltip-uri\": fa.toString(),\n                    className: (((\"UFISeenCount\") + ((!!u.text ? (\" \" + \"UFISeenCountRight\") : \"\"))))\n                }, k.DOM.span({\n                    className: \"UFISeenCountIcon\"\n                }), ga);\n            }\n             else if ((this.props.showOrderingModeSelector && this.state.selectorModule)) {\n                var ha = this.state.selectorModule;\n                aa = ha({\n                    currentOrderingMode: this.props.orderingMode,\n                    entstream: v,\n                    orderingmodes: t.orderingmodes,\n                    onOrderChanged: this.props.onOrderingModeChange\n                });\n                if (!z) {\n                    z = k.DOM.div(null);\n                };\n            }\n            \n        ;\n            var ia = null;\n            if ((x && y)) {\n                ia = m(null, x, y, aa);\n            }\n             else if (z) {\n                ia = h(null, z, aa);\n            }\n             else ia = aa;\n            \n        ;\n            return (k.DOM.li({\n                className: w\n            }, ia));\n        }\n    });\n    e.exports = s;\n});\n__d(\"UFIPager.react\", [\"LeftRight.react\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = h.createClass({\n        displayName: \"UFIPager\",\n        onPagerClick: function(n) {\n            ((!this.props.isLoading && this.props.onPagerClick) && this.props.onPagerClick());\n            n.nativeEvent.prevent();\n        },\n        render: function() {\n            var n = this.onPagerClick, o = ((this.props.isLoading ? \"ufiPagerLoading\" : \"\")), p = l(i.ROW, (this.props.isUnseen ? i.UNSEEN_ITEM : \"\"), ((((((\"UFIPagerRow\") + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), q = h.DOM.a({\n                className: \"UFIPagerLink\",\n                onClick: n,\n                href: \"#\",\n                role: \"button\"\n            }, h.DOM.span({\n                className: o\n            }, this.props.pagerLabel)), r = (((\"fcg\") + ((\" \" + \"UFIPagerCount\")))), s = h.DOM.span({\n                className: r\n            }, this.props.countSentence), t;\n            if (this.props.contextArgs.entstream) {\n                t = (g({\n                    direction: g.DIRECTION.right\n                }, q, s));\n            }\n             else t = (j(null, h.DOM.a({\n                className: \"UFIPagerIcon\",\n                onClick: n,\n                href: \"#\",\n                role: \"button\"\n            }), q, s));\n        ;\n            return (h.DOM.li({\n                className: p,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, t));\n        }\n    });\n    e.exports = m;\n});\n__d(\"UFIReplySocialSentence.react\", [\"LiveTimer\",\"React\",\"Timestamp.react\",\"UFIClassNames\",\"UFIConstants\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"LiveTimer\"), h = b(\"React\"), i = b(\"Timestamp.react\"), j = b(\"UFIClassNames\"), k = b(\"UFIConstants\"), l = b(\"UFIImageBlock.react\"), m = b(\"cx\"), n = b(\"joinClasses\"), o = b(\"tx\"), p = \" \\u00b7 \", q = 43200, r = h.createClass({\n        displayName: \"UFIReplySocialSentence\",\n        render: function() {\n            var s = ((this.props.isLoading ? \"UFIReplySocialSentenceLoading\" : \"\")), t = n(j.ROW, ((((\"UFIReplySocialSentenceRow\") + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), u, v;\n            if (this.props.isExpanded) {\n                u = ((this.props.replies > 1) ? o._(\"Hide {count} Replies\", {\n                    count: this.props.replies\n                }) : \"Hide 1 Reply\");\n            }\n             else {\n                u = ((this.props.replies > 1) ? o._(\"{count} Replies\", {\n                    count: this.props.replies\n                }) : \"1 Reply\");\n                if (this.props.timestamp) {\n                    var w = ((g.getApproximateServerTime() / 1000) - this.props.timestamp.time);\n                    if (((w < q) || (this.props.orderingMode == k.UFICommentOrderingMode.RECENT_ACTIVITY))) {\n                        v = h.DOM.span({\n                            className: \"fcg\"\n                        }, p, i({\n                            time: this.props.timestamp.time,\n                            text: this.props.timestamp.text,\n                            verbose: this.props.timestamp.verbose\n                        }));\n                    };\n                }\n            ;\n            }\n        ;\n            var x = Object.keys(this.props.authors), y = (x.length && !this.props.isExpanded), z, aa;\n            if (y) {\n                var ba = this.props.authors[x[0]];\n                z = h.DOM.img({\n                    alt: \"\",\n                    src: ba.thumbSrc,\n                    className: j.ACTOR_IMAGE\n                });\n                aa = [o._(\"{author} replied\", {\n                    author: ba.name\n                }),p,u,];\n            }\n             else {\n                z = h.DOM.i({\n                    className: ((((!this.props.isExpanded ? \"UFIPagerIcon\" : \"\")) + ((this.props.isExpanded ? (\" \" + \"UFICollapseIcon\") : \"\"))))\n                });\n                aa = u;\n            }\n        ;\n            return (h.DOM.li({\n                className: t,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, h.DOM.a({\n                className: \"UFICommentLink\",\n                onClick: this.props.onClick,\n                href: \"#\",\n                role: \"button\"\n            }, l(null, h.DOM.div({\n                className: ((y ? \"UFIReplyActorPhotoWrapper\" : \"\"))\n            }, z), h.DOM.span({\n                className: s\n            }, h.DOM.span({\n                className: \"UFIReplySocialSentenceLinkText\"\n            }, aa), v)))));\n        }\n    });\n    e.exports = r;\n});\n__d(\"UFIShareRow.react\", [\"NumberFormat\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"joinClasses\"), n = b(\"tx\"), o = h.createClass({\n        displayName: \"UFIShareRow\",\n        render: function() {\n            var p = new k(\"/ajax/shares/view\").setQueryData({\n                target_fbid: this.props.targetID\n            }), q = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n                id: this.props.targetID\n            }), r;\n            if ((this.props.shareCount > 1)) {\n                var s = g.formatIntegerWithDelimiter(this.props.shareCount, (this.props.contextArgs.numberdelimiter || \",\"));\n                r = n._(\"{count} shares\", {\n                    count: s\n                });\n            }\n             else r = \"1 share\";\n        ;\n            var t = m(i.ROW, ((((this.props.isFirstComponent ? \"UFIFirstComponent\" : \"\")) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\")))));\n            return (h.DOM.li({\n                className: t\n            }, j(null, h.DOM.a({\n                className: \"UFIShareIcon\",\n                rel: \"dialog\",\n                ajaxify: p.toString(),\n                href: q.toString()\n            }), h.DOM.a({\n                className: \"UFIShareLink\",\n                rel: \"dialog\",\n                ajaxify: p.toString(),\n                href: q.toString()\n            }, r))));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFISpamPlaceholder.react\", [\"React\",\"UFIClassNames\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"tx\"), k = g.createClass({\n        displayName: \"UFISpamPlaceholder\",\n        render: function() {\n            var l = (((\"UFISpamCommentWrapper\") + ((this.props.isLoading ? (\" \" + \"UFISpamCommentLoading\") : \"\"))));\n            return (g.DOM.li({\n                className: h.ROW\n            }, g.DOM.a({\n                href: \"#\",\n                role: \"button\",\n                className: \"UFISpamCommentLink\",\n                onClick: this.props.onClick\n            }, g.DOM.span({\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"aria-label\": j._(\"{count} hidden\", {\n                    count: this.props.numHidden\n                }),\n                className: l\n            }, g.DOM.i({\n                className: \"placeholderIcon\"\n            })))));\n        }\n    });\n    e.exports = k;\n});\n__d(\"UFI.react\", [\"NumberFormat\",\"React\",\"LegacyScrollableArea.react\",\"TrackingNodes\",\"UFIAddCommentController\",\"UFIAddCommentLink.react\",\"UFIComment.react\",\"UFIConstants\",\"UFIContainer.react\",\"UFIGiftSentence.react\",\"UFIInstanceState\",\"UFILikeSentence.react\",\"UFIPager.react\",\"UFIReplySocialSentence.react\",\"UFIShareRow.react\",\"UFISpamPlaceholder.react\",\"copyProperties\",\"isEmpty\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"LegacyScrollableArea.react\"), j = b(\"TrackingNodes\"), k = b(\"UFIAddCommentController\"), l = b(\"UFIAddCommentLink.react\"), m = b(\"UFIComment.react\"), n = b(\"UFIConstants\"), o = b(\"UFIContainer.react\"), p = b(\"UFIGiftSentence.react\"), q = b(\"UFIInstanceState\"), r = b(\"UFILikeSentence.react\"), s = b(\"UFIPager.react\"), t = b(\"UFIReplySocialSentence.react\"), u = b(\"UFIShareRow.react\"), v = b(\"UFISpamPlaceholder.react\"), w = b(\"copyProperties\"), x = b(\"isEmpty\"), y = b(\"tx\"), z = h.createClass({\n        displayName: \"UFI\",\n        getInitialState: function() {\n            return {\n                requestRanges: w({\n                }, this.props.availableRanges),\n                instanceShowRepliesMap: {\n                },\n                instanceShowReplySocialSentenceMap: {\n                },\n                loadingSpamIDs: {\n                },\n                isActiveLoading: false,\n                hasPagedToplevel: false\n            };\n        },\n        componentWillReceiveProps: function(aa) {\n            if (this.state.isActiveLoading) {\n                var ba = this.props.availableRanges[this.props.id], ca = aa.availableRanges[this.props.id];\n                if (((ba.offset != ca.offset) || (ba.length != ca.length))) {\n                    var da = (((ca.offset < ba.offset)) ? 0 : ba.length);\n                    if ((da < aa.availableComments.length)) {\n                        var ea = aa.availableComments[da].ufiinstanceid;\n                        q.updateState(ea, \"autofocus\", true);\n                    }\n                ;\n                }\n            ;\n                this.setState({\n                    isActiveLoading: false\n                });\n            }\n        ;\n            if ((aa.orderingMode != this.props.orderingMode)) {\n                this.setState({\n                    requestRanges: w({\n                    }, aa.availableRanges)\n                });\n            };\n        },\n        render: function() {\n            var aa = this.props, ba = aa.feedback, ca = aa.contextArgs, da = (aa.source != n.UFIFeedbackSourceType.ADS), ea = (ba.orderingmodes && (aa.commentCounts[aa.id] >= n.minCommentsForOrderingModeSelector)), fa = ((((!x(ba.likesentences.current) || (((ba.seencount > 0) && !ca.entstream))) || ea)) && da), ga = null;\n            if (fa) {\n                ga = r({\n                    contextArgs: ca,\n                    feedback: ba,\n                    onTargetLikeToggle: aa.onTargetLikeToggle,\n                    onOrderingModeChange: aa.onOrderingModeChange,\n                    orderingMode: aa.orderingMode,\n                    showOrderingModeSelector: ea\n                });\n            };\n            var ha = null;\n            if ((aa.feedback.hasviewerliked && this._shouldShowGiftSentence())) {\n                ha = p({\n                    contextArgs: ca,\n                    recipient: aa.giftRecipient,\n                    sender: aa.authorProfiles[ba.actorforpost],\n                    giftdata: aa.feedback.giftdata\n                });\n            };\n            var ia = ((aa.availableComments && aa.availableComments.length) && da), ja = null;\n            if (ia) {\n                ja = this.renderCommentMap(aa.availableComments, aa.availableRanges[aa.id].offset);\n            };\n            var ka = null, la = ba.cancomment, ma = ((la && ca.showaddcomment) && ba.actorforpost);\n            if (ma) {\n                var na = new k(null, aa.id, null, ca), oa = aa.authorProfiles[ba.actorforpost];\n                ka = na.renderAddComment(oa, ba.mentionsdatasource, ba.showsendonentertip, \"toplevelcomposer\", null, ba.allowphotoattachments, ba.subtitle);\n            }\n        ;\n            var pa = null, qa = ((ca.showshares && ba.sharecount) && da);\n            if ((qa && !ca.entstream)) {\n                pa = u({\n                    targetID: ba.targetfbid,\n                    shareCount: ba.sharecount,\n                    contextArgs: ca\n                });\n            };\n            var ra = (((fa || qa) || ia) || la), sa = this.renderPagers();\n            this.applyToUFIComponents([sa.topPager,], ja, [sa.bottomPager,], {\n                isFirstCommentComponent: true\n            }, {\n                isLastCommentComponent: true\n            });\n            var ta = (ba.commentboxhoisted ? ka : null), ua = (ba.commentboxhoisted ? null : ka), va = null;\n            if (((ma && ba.hasaddcommentlink) && this.state.hasPagedToplevel)) {\n                va = l({\n                    onClick: this.onComment\n                });\n            };\n            this.applyToUFIComponents([ga,pa,ta,sa.topPager,], ja, [sa.bottomPager,ua,va,], {\n                isFirstComponent: true\n            }, {\n                isLastComponent: true\n            });\n            var wa = [sa.topPager,ja,sa.bottomPager,];\n            if ((ca.scrollcomments && ca.scrollwidth)) {\n                wa = h.DOM.li(null, i({\n                    width: ca.scrollwidth\n                }, h.DOM.ul(null, wa)));\n            };\n            return (o({\n                hasNub: (ca.shownub && ra)\n            }, ga, ha, pa, ta, wa, ua, va));\n        },\n        applyToUFIComponents: function(aa, ba, ca, da, ea) {\n            var fa = Object.keys((ba || {\n            })).map(function(ha) {\n                return ba[ha];\n            }), ga = [].concat(aa, fa, ca);\n            this._applyToFirstComponent(ga, da);\n            ga.reverse();\n            this._applyToFirstComponent(ga, ea);\n        },\n        _applyToFirstComponent: function(aa, ba) {\n            for (var ca = 0; (ca < ((aa || [])).length); ca++) {\n                if (aa[ca]) {\n                    w(aa[ca].props, ba);\n                    return;\n                }\n            ;\n            };\n        },\n        renderCommentMap: function(aa, ba) {\n            var ca = this.props, da = {\n            }, ea = aa.length;\n            if (!ea) {\n                return da\n            };\n            var fa = aa[0].parentcommentid, ga = [], ha = function() {\n                if ((ga.length > 0)) {\n                    var qa = function(ra, sa) {\n                        this.state.loadingSpamIDs[ra[0]] = true;\n                        this.forceUpdate();\n                        ca.onSpamFetch(ra, sa);\n                    }.bind(this, ga, fa);\n                    da[(\"spam\" + ga[0])] = v({\n                        onClick: qa,\n                        numHidden: ga.length,\n                        isLoading: !!this.state.loadingSpamIDs[ga[0]]\n                    });\n                    ga = [];\n                }\n            ;\n            }.bind(this), ia = ca.instanceid, ja = q.getKeyForInstance(ia, \"editcommentid\"), ka = !!aa[0].parentcommentid, la = false;\n            for (var ma = 0; (ma < ea); ma++) {\n                if ((aa[ma].status == n.UFIStatus.SPAM)) {\n                    ga.push(aa[ma].id);\n                }\n                 else {\n                    ha();\n                    var na = Math.max(((ca.loggingOffset - ma) - ba), 0), oa = aa[ma], pa;\n                    if ((oa.id == ja)) {\n                        pa = this.renderEditCommentBox(oa);\n                    }\n                     else {\n                        pa = this.renderComment(oa, na);\n                        pa.props.isFirst = (ma === 0);\n                        pa.props.isLast = (ma === (ea - 1));\n                        if (!ka) {\n                            pa.props.showReplyLink = true;\n                        };\n                    }\n                ;\n                    da[(\"comment\" + oa.id)] = pa;\n                    if (((((ca.feedback.actorforpost === oa.author) && !la) && !ca.feedback.hasviewerliked) && this._shouldShowGiftSentence())) {\n                        da[(\"gift\" + oa.id)] = p({\n                            contextArgs: ca.contextArgs,\n                            recipient: ca.giftRecipient,\n                            sender: ca.authorProfiles[ca.feedback.actorforpost],\n                            giftdata: ca.feedback.giftdata\n                        });\n                        la = true;\n                    }\n                ;\n                    if ((oa.status !== n.UFIStatus.DELETED)) {\n                        da[(\"replies\" + oa.id)] = this.renderReplyContainer(oa);\n                    };\n                }\n            ;\n            };\n            ha();\n            return da;\n        },\n        _shouldShowGiftSentence: function() {\n            var aa = this.props;\n            return (aa.contextArgs.giftoccasion && !aa.contextArgs.entstream);\n        },\n        renderReplyContainer: function(aa) {\n            var ba = this.props, ca = {\n            };\n            for (var da = 0; (da < ((aa.replyauthors || [])).length); da++) {\n                var ea = ba.authorProfiles[aa.replyauthors[da]];\n                if (ea) {\n                    ca[ea.id] = ea;\n                };\n            };\n            var fa = ((ba.repliesMap && ba.repliesMap[aa.id]) && this._shouldShowCommentReplies(aa.id)), ga, ha = Math.max((aa.replycount - aa.spamreplycount), 0);\n            if ((ha && this._shouldShowReplySocialSentence(aa.id))) {\n                var ia = (this._shouldShowCommentReplies(aa.id) && ((this.isLoadingPrev(aa.id) || this.isLoadingNext(aa.id))));\n                ga = t({\n                    authors: ca,\n                    replies: ha,\n                    timestamp: aa.recentreplytimestamp,\n                    onClick: this.onToggleReplies.bind(this, aa),\n                    isLoading: ia,\n                    isExpanded: fa,\n                    orderingMode: this.props.orderingMode\n                });\n            }\n        ;\n            var ja, ka, la, ma;\n            if (fa) {\n                var na = this.renderPagers(aa.id);\n                ja = na.topPager;\n                la = na.bottomPager;\n                ka = this.renderCommentMap(ba.repliesMap[aa.id], ba.availableRanges[aa.id].offset);\n                var oa = Object.keys(ka);\n                for (var pa = 0; (pa < oa.length); pa++) {\n                    var qa = ka[oa[pa]];\n                    if (qa) {\n                        qa.props.hasPartialBorder = (pa !== 0);\n                    };\n                };\n                if (ba.feedback.cancomment) {\n                    var ra = false, sa = Object.keys(ka);\n                    for (var da = (sa.length - 1); (da >= 0); da--) {\n                        var ta = sa[da];\n                        if ((ta && ka[ta])) {\n                            ra = ka[ta].props.isAuthorReply;\n                            break;\n                        }\n                    ;\n                    };\n                    ma = this.renderReplyComposer(aa, !ra);\n                }\n            ;\n            }\n        ;\n            var ua;\n            if (((((ga || ja) || ka) || la) || ma)) {\n                this.applyToUFIComponents([ga,ja,], ka, [la,ma,], {\n                    isFirstComponent: true\n                }, {\n                    isLastComponent: true\n                });\n                var va = (aa.status === n.UFIStatus.LIVE_DELETED);\n                ua = o({\n                    isParentLiveDeleted: va,\n                    isReplyList: true\n                }, ga, ja, ka, la, ma);\n            }\n        ;\n            return ua;\n        },\n        renderReplyComposer: function(aa, ba) {\n            var ca = this.props;\n            return (new k(null, ca.id, aa.id, ca.contextArgs)).renderAddComment(ca.authorProfiles[ca.feedback.actorforpost], ca.feedback.mentionsdatasource, false, (\"replycomposer-\" + aa.id), ba, ca.feedback.allowphotoattachments);\n        },\n        renderEditCommentBox: function(aa) {\n            var ba = new k(null, this.props.id, null, {\n            }), ca = ba.renderEditComment(this.props.authorProfiles[this.props.feedback.actorforpost], aa.id, this.props.feedback.mentionsdatasource, this.props.onEditAttempt.bind(null, aa), this.props.onCancelEdit, this.props.feedback.allowphotoattachments);\n            return ca;\n        },\n        _shouldShowCommentReplies: function(aa) {\n            if ((aa in this.state.instanceShowRepliesMap)) {\n                return this.state.instanceShowRepliesMap[aa];\n            }\n             else if ((aa in this.props.showRepliesMap)) {\n                return this.props.showRepliesMap[aa]\n            }\n        ;\n            return false;\n        },\n        _shouldShowReplySocialSentence: function(aa) {\n            if ((aa in this.state.instanceShowReplySocialSentenceMap)) {\n                return this.state.instanceShowReplySocialSentenceMap[aa];\n            }\n             else if ((aa in this.props.showReplySocialSentenceMap)) {\n                return this.props.showReplySocialSentenceMap[aa]\n            }\n        ;\n            return false;\n        },\n        renderComment: function(aa, ba) {\n            var ca = this.props, da = ca.feedback, ea = (da.actorforpost === aa.author), fa = q.getKeyForInstance(this.props.instanceid, \"locallycomposed\"), ga = (aa.islocal || (fa && fa[aa.id])), ha = (da.showremovemenu || ((da.viewerid === aa.author))), ia = ((da.canremoveall && da.isownerpage) && !ea), ja = (ca.source != n.UFIFeedbackSourceType.INTERN), ka = j.getTrackingInfo(j.types.COMMENT, ba), la = !!aa.parentcommentid, ma = this._shouldShowCommentReplies(aa.id), na = !!aa.isfeatured;\n            return (m({\n                comment: aa,\n                authorProfiles: this.props.authorProfiles,\n                viewerIsAuthor: ea,\n                feedback: da,\n                \"data-ft\": ka,\n                contextArgs: this.props.contextArgs,\n                hideAsSpamForPageAdmin: ia,\n                isLocallyComposed: ga,\n                isReply: la,\n                isFeatured: na,\n                showPermalink: ja,\n                showRemoveReportMenu: ha,\n                showReplies: ma,\n                onCommentLikeToggle: ca.onCommentLikeToggle.bind(null, aa),\n                onCommentReply: this.onCommentReply.bind(this, aa),\n                onCommentTranslate: ca.onCommentTranslate.bind(null, aa),\n                onEdit: ca.onCommentEdit.bind(null, aa),\n                onHideAsSpam: ca.onCommentHideAsSpam.bind(null, aa),\n                onInlineBan: ca.onCommentInlineBan.bind(null, aa),\n                onMarkAsNotSpam: ca.onCommentMarkAsNotSpam.bind(null, aa),\n                onOneClickRemove: ca.onCommentOneClickRemove.bind(null, aa),\n                onPreviewRemove: ca.onPreviewRemove.bind(null, aa),\n                onRemove: ca.onCommentRemove.bind(null, aa),\n                onRetrySubmit: ca.onRetrySubmit.bind(null, aa),\n                onUndoInlineBan: ca.onCommentUndoInlineBan.bind(null, aa),\n                onUndoOneClickRemove: ca.onCommentUndoOneClickRemove.bind(null, aa)\n            }));\n        },\n        _updateRepliesState: function(aa, ba, ca) {\n            var da = this.state.instanceShowRepliesMap;\n            da[aa] = ba;\n            var ea = this.state.instanceShowReplySocialSentenceMap;\n            ea[aa] = ca;\n            this.setState({\n                instanceShowRepliesMap: da,\n                instanceShowReplySocialSentenceMap: ea\n            });\n        },\n        onToggleReplies: function(aa) {\n            var ba = !this._shouldShowCommentReplies(aa.id), ca = (this._shouldShowReplySocialSentence(aa.id) && !((ba && (aa.replycount <= this.props.replySocialSentenceMaxReplies))));\n            this._updateRepliesState(aa.id, ba, ca);\n            var da = (this.state.requestRanges[aa.id].length - this.props.deletedCounts[aa.id]);\n            if ((ba && (da === 0))) {\n                var ea = this.props.commentCounts[aa.id], fa = Math.min(ea, this.props.pageSize);\n                this.onPage(aa.id, {\n                    offset: (ea - fa),\n                    length: fa\n                });\n            }\n        ;\n        },\n        onPage: function(aa, ba) {\n            var ca = this.state.requestRanges;\n            ca[aa] = ba;\n            var da = (this.state.hasPagedToplevel || (aa === this.props.id));\n            this.setState({\n                requestRanges: ca,\n                isActiveLoading: true,\n                hasPagedToplevel: da\n            });\n            this.props.onChangeRange(aa, ba);\n        },\n        isLoadingPrev: function(aa) {\n            var ba = this.props;\n            aa = (aa || ba.id);\n            if (!this.state.requestRanges[aa]) {\n                this.state.requestRanges[aa] = ba.availableRanges[aa];\n            };\n            var ca = this.state.requestRanges[aa].offset, da = ba.availableRanges[aa].offset;\n            return (ca < da);\n        },\n        isLoadingNext: function(aa) {\n            var ba = this.props;\n            aa = (aa || ba.id);\n            if (!this.state.requestRanges[aa]) {\n                this.state.requestRanges[aa] = ba.availableRanges[aa];\n            };\n            var ca = this.state.requestRanges[aa].offset, da = this.state.requestRanges[aa].length, ea = ba.availableRanges[aa].offset, fa = ba.availableRanges[aa].length;\n            return ((ca + da) > (ea + fa));\n        },\n        renderPagers: function(aa) {\n            var ba = this.props;\n            aa = (aa || ba.id);\n            var ca = ba.availableRanges[aa].offset, da = ba.availableRanges[aa].length, ea = ba.deletedCounts[aa], fa = ba.commentCounts[aa], ga = (fa - ea), ha = (da - ea), ia = (ba.contextArgs.numberdelimiter || \",\"), ja = (aa !== ba.id), ka = {\n                topPager: null,\n                bottomPager: null\n            };\n            if ((ba.source == n.UFIFeedbackSourceType.ADS)) {\n                return ka\n            };\n            var la = this.isLoadingPrev(aa), ma = this.isLoadingNext(aa);\n            if ((da == fa)) {\n                return ka\n            };\n            var na = (((ca + da)) == fa);\n            if (((((fa < ba.pageSize) && na)) || (ha === 0))) {\n                var oa = Math.min(fa, ba.pageSize), pa = this.onPage.bind(this, aa, {\n                    offset: (fa - oa),\n                    length: oa\n                }), qa, ra;\n                if ((ha === 0)) {\n                    if ((ga == 1)) {\n                        qa = (ja ? \"View 1 reply\" : \"View 1 comment\");\n                    }\n                     else {\n                        ra = g.formatIntegerWithDelimiter(ga, ia);\n                        qa = (ja ? y._(\"View all {count} replies\", {\n                            count: ra\n                        }) : y._(\"View all {count} comments\", {\n                            count: ra\n                        }));\n                    }\n                ;\n                }\n                 else if (((ga - ha) == 1)) {\n                    qa = (ja ? \"View 1 more reply\" : \"View 1 more comment\");\n                }\n                 else {\n                    ra = g.formatIntegerWithDelimiter((ga - ha), ia);\n                    qa = (ja ? y._(\"View {count} more replies\", {\n                        count: ra\n                    }) : y._(\"View {count} more comments\", {\n                        count: ra\n                    }));\n                }\n                \n            ;\n                var sa = j.getTrackingInfo(j.types.VIEW_ALL_COMMENTS), ta = s({\n                    contextArgs: ba.contextArgs,\n                    isUnseen: ba.feedback.hasunseencollapsed,\n                    isLoading: la,\n                    pagerLabel: qa,\n                    onPagerClick: pa,\n                    \"data-ft\": sa\n                });\n                if ((ba.feedback.isranked && !ja)) {\n                    ka.bottomPager = ta;\n                }\n                 else ka.topPager = ta;\n            ;\n                return ka;\n            }\n        ;\n            if ((ca > 0)) {\n                var ua = Math.max((ca - ba.pageSize), 0), oa = ((ca + da) - ua), va = this.onPage.bind(this, aa, {\n                    offset: ua,\n                    length: oa\n                }), wa = g.formatIntegerWithDelimiter(ha, ia), xa = g.formatIntegerWithDelimiter(ga, ia), ya = y._(\"{countshown} of {totalcount}\", {\n                    countshown: wa,\n                    totalcount: xa\n                });\n                if ((ba.feedback.isranked && !ja)) {\n                    ka.bottomPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: la,\n                        pagerLabel: \"View more comments\",\n                        onPagerClick: va,\n                        countSentence: ya\n                    });\n                }\n                 else {\n                    var za = (ja ? \"View previous replies\" : \"View previous comments\");\n                    ka.topPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: la,\n                        pagerLabel: za,\n                        onPagerClick: va,\n                        countSentence: ya\n                    });\n                }\n            ;\n            }\n        ;\n            if (((ca + da) < fa)) {\n                var ab = Math.min((da + ba.pageSize), (fa - ca)), bb = this.onPage.bind(this, aa, {\n                    offset: ca,\n                    length: ab\n                });\n                if ((ba.feedback.isranked && !ja)) {\n                    ka.topPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: ma,\n                        pagerLabel: \"View previous comments\",\n                        onPagerClick: bb\n                    });\n                }\n                 else {\n                    var cb = (ja ? \"View more replies\" : \"View more comments\");\n                    ka.bottomPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: ma,\n                        pagerLabel: cb,\n                        onPagerClick: bb\n                    });\n                }\n            ;\n            }\n        ;\n            return ka;\n        },\n        onCommentReply: function(aa) {\n            var ba = (aa.parentcommentid || aa.id);\n            if (!this._shouldShowCommentReplies(ba)) {\n                this.onToggleReplies(aa);\n            };\n            if ((this.refs && this.refs[(\"replycomposer-\" + ba)])) {\n                this.refs[(\"replycomposer-\" + ba)].focus();\n            };\n        },\n        onComment: function() {\n            if ((this.refs && this.refs.toplevelcomposer)) {\n                this.refs.toplevelcomposer.focus();\n            };\n        }\n    });\n    e.exports = z;\n});\n__d(\"UFIController\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"DOMQuery\",\"ImmutableObject\",\"LayerRemoveOnHide\",\"LiveTimer\",\"Parent\",\"React\",\"ReactMount\",\"ShortProfiles\",\"UFI.react\",\"UFIActionLinkController\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",\"URI\",\"copyProperties\",\"isEmpty\",\"tx\",\"UFICommentTemplates\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"ImmutableObject\"), m = b(\"LayerRemoveOnHide\"), n = b(\"LiveTimer\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"ReactMount\"), r = b(\"ShortProfiles\"), s = b(\"UFI.react\"), t = b(\"UFIActionLinkController\"), u = b(\"UFICentralUpdates\"), v = b(\"UFIComments\"), w = b(\"UFIConstants\"), x = b(\"UFIFeedbackTargets\"), y = b(\"UFIInstanceState\"), z = b(\"UFIUserActions\"), aa = b(\"URI\"), ba = b(\"copyProperties\"), ca = b(\"isEmpty\"), da = b(\"tx\"), ea = b(\"UFICommentTemplates\"), fa = function(ia, ja, ka, la) {\n        var ma = ((ia.offset + ia.length) === ja);\n        return {\n            offset: ia.offset,\n            length: (((ma && ga(la))) ? (ka - ia.offset) : ia.length)\n        };\n    }, ga = function(ia) {\n        return ((ia == w.UFIPayloadSourceType.USER_ACTION) || (ia == w.UFIPayloadSourceType.LIVE_SEND));\n    };\n    function ha(ia, ja, ka) {\n        this.root = ia;\n        this.id = ja.ftentidentifier;\n        this.source = ja.source;\n        this._ufiInstanceID = ja.instanceid;\n        this._contextArgs = ja;\n        this._contextArgs.rootid = this.root.id;\n        this._verifiedCommentsExpanded = false;\n        var la = ka.feedbacktargets[0];\n        this.actionLink = new t(ia, this._contextArgs, la);\n        this.orderingMode = la.defaultcommentorderingmode;\n        var ma = ka.commentlists.comments[this.id][this.orderingMode];\n        this.replyRanges = {\n        };\n        this.repliesMap = {\n        };\n        this.showRepliesMap = {\n        };\n        this.showReplySocialSentenceMap = {\n        };\n        this.commentcounts = {\n        };\n        this.commentcounts[this.id] = v.getCommentCount(this.id);\n        var na = {\n        }, oa = (la.orderingmodes || [{\n            value: this.orderingMode\n        },]);\n        oa.forEach(function(sa) {\n            na[sa.value] = ba({\n            }, ma.range);\n        });\n        this.ranges = na;\n        if (ka.commentlists.replies) {\n            for (var pa = 0; (pa < ma.values.length); pa++) {\n                var qa = ma.values[pa], ra = ka.commentlists.replies[qa];\n                if (ra) {\n                    this.commentcounts[qa] = v.getCommentCount(qa);\n                    this.replyRanges[qa] = ba({\n                    }, ra.range);\n                }\n            ;\n            }\n        };\n        this._loggingOffset = null;\n        this._ufi = null;\n        this.ufiCentralUpdatesSubscriptions = [u.subscribe(\"feedback-updated\", function(sa, ta) {\n            var ua = ta.updates, va = ta.payloadSource;\n            if (((va != w.UFIPayloadSourceType.COLLAPSED_UFI) && (this.id in ua))) {\n                this.fetchAndUpdate(this.render.bind(this), va);\n            };\n        }.bind(this)),u.subscribe(\"feedback-id-changed\", function(sa, ta) {\n            var ua = ta.updates;\n            if ((this.id in ua)) {\n                this.id = ua[this.id];\n            };\n        }.bind(this)),u.subscribe(\"instance-updated\", function(sa, ta) {\n            var ua = ta.updates;\n            if ((this._ufiInstanceID in ua)) {\n                var va = ua[this._ufiInstanceID];\n                if (va.editcommentid) {\n                    this.render(ta.payloadSource);\n                };\n            }\n        ;\n        }.bind(this)),u.subscribe(\"update-comment-lists\", function(sa, ta) {\n            if ((ta.commentlists && ta.commentlists.replies)) {\n                var ua = ta.commentlists.replies;\n                for (var va in ua) {\n                    if (((((this.id != va) && ua[va]) && (ua[va].ftentidentifier == this.id)) && !this.replyRanges[va])) {\n                        this.replyRanges[va] = ua[va].range;\n                    };\n                };\n            }\n        ;\n        }.bind(this)),];\n        this.clearPageletSubscription = g.subscribe(\"pagelet/destroy\", this.onPageletDestroy.bind(this));\n        this.clearPageSubscription = g.subscribe(\"ufi/page_cleared\", this._onDestroy.bind(this));\n        u.handleUpdate(w.UFIPayloadSourceType.INITIAL_SERVER, ka);\n        if (this._contextArgs.viewas) {\n            this.viewasUFICleanSubscription = g.subscribe(\"pre_page_transition\", function(sa, ta) {\n                if ((this._contextArgs.viewas !== aa(ta.to).getQueryData(\"viewas\"))) {\n                    v.resetFeedbackTarget(this.id);\n                };\n            }.bind(this));\n        };\n        h.loadModules([\"ScrollAwareDOM\",], function(sa) {\n            q.scrollMonitor = sa.monitor;\n        });\n    };\n    ba(ha.prototype, {\n        _getParentForm: function() {\n            if (!this._form) {\n                this._form = o.byTag(this.root, \"form\");\n            };\n            return this._form;\n        },\n        _onTargetLikeToggle: function(event) {\n            var ia = !this.feedback.hasviewerliked;\n            z.changeLike(this.id, ia, {\n                source: this.source,\n                target: event.target,\n                rootid: this._contextArgs.rootid\n            });\n            event.preventDefault();\n        },\n        _onCommentLikeToggle: function(ia, event) {\n            var ja = !ia.hasviewerliked;\n            z.changeCommentLike(ia.id, ja, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _onCommentEdit: function(ia) {\n            y.updateState(this._ufiInstanceID, \"isediting\", true);\n            y.updateState(this._ufiInstanceID, \"editcommentid\", ia.id);\n        },\n        _onEditAttempt: function(ia, ja, event) {\n            if ((!ja.visibleValue && !ja.attachedPhoto)) {\n                this._onCommentRemove(ia, event);\n            }\n             else z.editComment(ia.id, ja.visibleValue, ja.encodedValue, {\n                source: this._contextArgs.source,\n                target: event.target,\n                attachedPhoto: ja.attachedPhoto\n            });\n        ;\n            y.updateStateField(this._ufiInstanceID, \"locallycomposed\", ia.id, true);\n            this._onEditReset();\n        },\n        _onEditReset: function() {\n            y.updateState(this._ufiInstanceID, \"isediting\", false);\n            y.updateState(this._ufiInstanceID, \"editcommentid\", null);\n        },\n        _onCommentRemove: function(ia, event) {\n            var ja = ea[\":fb:ufi:hide-dialog-template\"].build();\n            j.setContent(ja.getNode(\"body\"), \"Are you sure you want to delete this comment?\");\n            j.setContent(ja.getNode(\"title\"), \"Delete Comment\");\n            h.loadModules([\"DialogX\",], function(ka) {\n                var la = new ka({\n                    modal: true,\n                    width: 465,\n                    addedBehaviors: [m,]\n                }, ja.getRoot());\n                la.subscribe(\"confirm\", function() {\n                    z.removeComment(ia.id, {\n                        source: this.source,\n                        oneclick: false,\n                        target: event.target,\n                        timelinelogdata: this._contextArgs.timelinelogdata\n                    });\n                    la.hide();\n                }.bind(this));\n                la.show();\n            }.bind(this));\n        },\n        _onCommentOneClickRemove: function(ia, event) {\n            z.removeComment(ia.id, {\n                source: this.source,\n                oneclick: true,\n                target: event.target,\n                timelinelogdata: this._contextArgs.timelinelogdata\n            });\n        },\n        _onCommentUndoOneClickRemove: function(ia, event) {\n            var ja = ((this.feedback.canremoveall && this.feedback.isownerpage) && (this.feedback.actorforpost !== this.authorProfiles[ia.author]));\n            z.undoRemoveComment(ia.id, ja, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _onCommentHideAsSpam: function(ia, event) {\n            z.setHideAsSpam(ia.id, true, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _onCommentMarkAsNotSpam: function(ia, event) {\n            z.setHideAsSpam(ia.id, false, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _onCommentTranslate: function(ia, event) {\n            z.translateComment(ia, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _onCommentInlineBanChange: function(ia, ja, event) {\n            z.banUser(ia, this.feedback.ownerid, ja, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _onCommentInlineBan: function(ia, event) {\n            this._onCommentInlineBanChange(ia, true, event);\n        },\n        _onCommentUndoInlineBan: function(ia, event) {\n            this._onCommentInlineBanChange(ia, false, event);\n        },\n        _fetchSpamComments: function(ia, ja) {\n            z.fetchSpamComments(this.id, ia, ja, this._contextArgs.viewas);\n        },\n        _removePreview: function(ia, event) {\n            z.removePreview(ia, {\n                source: this.source,\n                target: event.target\n            });\n        },\n        _retrySubmit: function(ia) {\n            h.loadModules([\"UFIRetryActions\",], function(ja) {\n                ja.retrySubmit(ia, {\n                    source: this.source\n                });\n            }.bind(this));\n        },\n        _ensureCommentsExpanded: function() {\n            if (this._verifiedCommentsExpanded) {\n                return\n            };\n            var ia = o.byTag(this.root, \"form\");\n            if (ia) {\n                i.removeClass(ia, \"collapsed_comments\");\n                this._verifiedCommentsExpanded = true;\n            }\n        ;\n        },\n        render: function(ia) {\n            var ja = (this.comments.length || !ca(this.feedback.likesentences.current));\n            if ((ja && ga(ia))) {\n                this._ensureCommentsExpanded();\n            };\n            if ((this._loggingOffset === null)) {\n                this._loggingOffset = ((this.ranges[this.orderingMode].offset + this.comments.length) - 1);\n            };\n            var ka = (this.feedback.replysocialsentencemaxreplies || -1), la = {\n            };\n            la[this.id] = v.getDeletedCount(this.id);\n            this.comments.forEach(function(oa) {\n                la[oa.id] = v.getDeletedCount(oa.id);\n            });\n            var ma = ba({\n            }, this.replyRanges);\n            ma[this.id] = this.ranges[this.orderingMode];\n            ma = new l(ma);\n            var na = s({\n                feedback: this.feedback,\n                id: this.id,\n                onTargetLikeToggle: this._onTargetLikeToggle.bind(this),\n                onCommentLikeToggle: this._onCommentLikeToggle.bind(this),\n                onCommentRemove: this._onCommentRemove.bind(this),\n                onCommentHideAsSpam: this._onCommentHideAsSpam.bind(this),\n                onCommentMarkAsNotSpam: this._onCommentMarkAsNotSpam.bind(this),\n                onCommentEdit: this._onCommentEdit.bind(this),\n                onCommentOneClickRemove: this._onCommentOneClickRemove.bind(this),\n                onCommentUndoOneClickRemove: this._onCommentUndoOneClickRemove.bind(this),\n                onCommentTranslate: this._onCommentTranslate.bind(this),\n                onCommentInlineBan: this._onCommentInlineBan.bind(this),\n                onCommentUndoInlineBan: this._onCommentUndoInlineBan.bind(this),\n                onEditAttempt: this._onEditAttempt.bind(this),\n                onCancelEdit: this._onEditReset.bind(this),\n                onChangeRange: this._changeRange.bind(this),\n                onSpamFetch: this._fetchSpamComments.bind(this),\n                onPreviewRemove: this._removePreview.bind(this),\n                onRetrySubmit: this._retrySubmit.bind(this),\n                onOrderingModeChange: this._onOrderingModeChange.bind(this),\n                contextArgs: this._contextArgs,\n                repliesMap: this.repliesMap,\n                showRepliesMap: this.showRepliesMap,\n                showReplySocialSentenceMap: this.showReplySocialSentenceMap,\n                commentCounts: this.commentcounts,\n                deletedCounts: la,\n                availableComments: this.comments,\n                source: this.source,\n                availableRanges: ma,\n                pageSize: w.defaultPageSize,\n                authorProfiles: this.authorProfiles,\n                instanceid: this._ufiInstanceID,\n                loggingOffset: this._loggingOffset,\n                replySocialSentenceMaxReplies: ka,\n                giftRecipient: this._giftRecipient,\n                orderingMode: this.orderingMode\n            });\n            this._ufi = p.renderComponent(na, this.root);\n            n.updateTimeStamps();\n            if (this._getParentForm()) {\n                g.inform(\"ufi/changed\", {\n                    form: this._getParentForm()\n                });\n            };\n            if (((ia != w.UFIPayloadSourceType.INITIAL_SERVER) && (ia != w.UFIPayloadSourceType.COLLAPSED_UFI))) {\n                g.inform(\"reflow\");\n            };\n        },\n        fetchAndUpdate: function(ia, ja) {\n            x.getFeedbackTarget(this.id, function(ka) {\n                var la = v.getCommentCount(this.id), ma = fa(this.ranges[this.orderingMode], this.commentcounts[this.id], la, ja);\n                v.getCommentsInRange(this.id, ma, this.orderingMode, this._contextArgs.viewas, function(na) {\n                    var oa = [], pa = {\n                    }, qa = {\n                    };\n                    if (ka.actorforpost) {\n                        oa.push(ka.actorforpost);\n                    };\n                    for (var ra = 0; (ra < na.length); ra++) {\n                        if (na[ra].author) {\n                            oa.push(na[ra].author);\n                        };\n                        if (na[ra].socialcontext) {\n                            oa.push(na[ra].socialcontext.topmutualid);\n                        };\n                        if ((na[ra].replyauthors && na[ra].replyauthors.length)) {\n                            for (var sa = 0; (sa < na[ra].replyauthors.length); sa++) {\n                                oa.push(na[ra].replyauthors[sa]);;\n                            }\n                        };\n                        if (ka.isthreaded) {\n                            var ta = na[ra].id, ua = v.getCommentCount(ta), va;\n                            if (this.replyRanges[ta]) {\n                                va = fa(this.replyRanges[ta], this.commentcounts[ta], ua, ja);\n                            }\n                             else va = {\n                                offset: 0,\n                                length: Math.min(ua, 2)\n                            };\n                        ;\n                            pa[ta] = va;\n                            qa[ta] = ua;\n                        }\n                    ;\n                    };\n                    v.getRepliesInRanges(this.id, pa, function(wa) {\n                        for (var xa = 0; (xa < na.length); xa++) {\n                            var ya = na[xa].id, za = (wa[ya] || []);\n                            for (var ab = 0; (ab < za.length); ab++) {\n                                if (za[ab].author) {\n                                    oa.push(za[ab].author);\n                                };\n                                if (za[ab].socialcontext) {\n                                    oa.push(za[ab].socialcontext.topmutualid);\n                                };\n                            };\n                        };\n                        if (this._contextArgs.giftoccasion) {\n                            oa.push(ka.actorid);\n                        };\n                        r.getMulti(oa, function(bb) {\n                            if (this._contextArgs.giftoccasion) {\n                                this._giftRecipient = bb[ka.actorid];\n                            };\n                            this.authorProfiles = bb;\n                            this.feedback = ka;\n                            this.commentcounts[this.id] = la;\n                            this.comments = na;\n                            this.ranges[this.orderingMode] = ma;\n                            for (var cb = 0; (cb < na.length); cb++) {\n                                var db = na[cb].id, eb = pa[db];\n                                this.repliesMap[db] = wa[db];\n                                this.replyRanges[db] = eb;\n                                this.commentcounts[db] = qa[db];\n                                this.showRepliesMap[db] = (eb && (eb.length > 0));\n                                if (((this.showReplySocialSentenceMap[db] === undefined) && (qa[db] > 0))) {\n                                    this.showReplySocialSentenceMap[db] = !this.showRepliesMap[db];\n                                };\n                            };\n                            ia(ja);\n                            if ((ja == w.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)) {\n                                g.inform(\"CommentUFI.Pager\");\n                            };\n                        }.bind(this));\n                    }.bind(this));\n                }.bind(this));\n            }.bind(this));\n        },\n        _changeRange: function(ia, ja) {\n            if ((ia == this.id)) {\n                this.ranges[this.orderingMode] = ja;\n            }\n             else this.replyRanges[ia] = ja;\n        ;\n            this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n        },\n        onPageletDestroy: function(ia, ja) {\n            if (k.contains(ja.root, this.root)) {\n                this._onDestroy();\n            };\n        },\n        _onDestroy: function() {\n            p.unmountAndReleaseReactRootNode(this.root);\n            this.ufiCentralUpdatesSubscriptions.forEach(u.unsubscribe.bind(u));\n            g.unsubscribe(this.clearPageletSubscription);\n            g.unsubscribe(this.clearPageSubscription);\n            (this.viewasUFICleanSubscription && g.unsubscribe(this.viewasUFICleanSubscription));\n        },\n        _onOrderingModeChange: function(ia) {\n            this.orderingMode = ia;\n            this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n        }\n    });\n    e.exports = ha;\n});\n__d(\"Ease\", [], function(a, b, c, d, e, f) {\n    var g = {\n        makePowerOut: function(h) {\n            return function(i) {\n                var j = (1 - Math.pow((1 - i), h));\n                return ((((j * 10000) | 0)) / 10000);\n            };\n        },\n        makePowerIn: function(h) {\n            return function(i) {\n                var j = Math.pow(i, h);\n                return ((((j * 10000) | 0)) / 10000);\n            };\n        },\n        makePowerInOut: function(h) {\n            return function(i) {\n                var j = ((((i *= 2) < 1)) ? (Math.pow(i, h) * 233395) : (1 - (Math.abs(Math.pow((2 - i), h)) * 233426)));\n                return ((((j * 10000) | 0)) / 10000);\n            };\n        },\n        sineOut: function(h) {\n            return Math.sin(((h * Math.PI) * 233504));\n        },\n        sineIn: function(h) {\n            return (1 - Math.cos(((h * Math.PI) * 233557)));\n        },\n        sineInOut: function(h) {\n            return (-233593 * ((Math.cos((Math.PI * h)) - 1)));\n        },\n        circOut: function(h) {\n            return Math.sqrt((1 - ((--h) * h)));\n        },\n        circIn: function(h) {\n            return -((Math.sqrt((1 - (h * h))) - 1));\n        },\n        circInOut: function(h) {\n            return ((((h *= 2) < 1)) ? (-233763 * ((Math.sqrt((1 - (h * h))) - 1))) : (233787 * ((Math.sqrt((1 - ((h -= 2) * h))) + 1))));\n        },\n        bounceOut: function(h) {\n            if ((h < (1 / 2.75))) {\n                return (((7.5625 * h) * h));\n            }\n             else if ((h < (2 / 2.75))) {\n                return ((((7.5625 * (h -= (1.5 / 2.75))) * h) + 233923));\n            }\n             else if ((h < (2.5 / 2.75))) {\n                return ((((7.5625 * (h -= (2.25 / 2.75))) * h) + 233981));\n            }\n             else return ((((7.5625 * (h -= (2.625 / 2.75))) * h) + 234027))\n            \n            \n        ;\n        },\n        bounceIn: function(h) {\n            return (1 - g.bounceOut((1 - h)));\n        },\n        bounceInOut: function(h) {\n            return (((h < 234121)) ? (g.bounceIn((h * 2)) * 234141) : ((g.bounceOut(((h * 2) - 1)) * 234163) + 234166));\n        },\n        _makeBouncy: function(h) {\n            h = (h || 1);\n            return function(i) {\n                i = (((((1 - Math.cos(((i * Math.PI) * h)))) * ((1 - i)))) + i);\n                return ((i <= 1) ? i : (2 - i));\n            };\n        },\n        makeBounceOut: function(h) {\n            return this._makeBouncy(h);\n        },\n        makeBounceIn: function(h) {\n            var i = this._makeBouncy(h);\n            return function(j) {\n                return (1 - i((1 - j)));\n            };\n        },\n        makeElasticOut: function(h, i) {\n            ((h < 1) && (h = 1));\n            var j = (Math.PI * 2);\n            return function(k) {\n                if (((k === 0) || (k === 1))) {\n                    return k\n                };\n                var l = ((i / j) * Math.asin((1 / h)));\n                return (((h * Math.pow(2, (-10 * k))) * Math.sin(((((k - l)) * j) / i))) + 1);\n            };\n        },\n        makeElasticIn: function(h, i) {\n            ((h < 1) && (h = 1));\n            var j = (Math.PI * 2);\n            return function(k) {\n                if (((k === 0) || (k === 1))) {\n                    return k\n                };\n                var l = ((i / j) * Math.asin((1 / h)));\n                return -(((h * Math.pow(2, (10 * (k -= 1)))) * Math.sin(((((k - l)) * j) / i))));\n            };\n        },\n        makeElasticInOut: function(h, i) {\n            ((h < 1) && (h = 1));\n            i *= 1.5;\n            var j = (Math.PI * 2);\n            return function(k) {\n                var l = ((i / j) * Math.asin((1 / h)));\n                return ((((k *= 2) < 1)) ? (((-234914 * h) * Math.pow(2, (10 * (k -= 1)))) * Math.sin(((((k - l)) * j) / i))) : (1 + (((234963 * h) * Math.pow(2, (-10 * (k -= 1)))) * Math.sin(((((k - l)) * j) / i)))));\n            };\n        },\n        makeBackOut: function(h) {\n            return function(i) {\n                return ((((--i * i) * (((((h + 1)) * i) + h))) + 1));\n            };\n        },\n        makeBackIn: function(h) {\n            return function(i) {\n                return ((i * i) * (((((h + 1)) * i) - h)));\n            };\n        },\n        makeBackInOut: function(h) {\n            h *= 1.525;\n            return function(i) {\n                return ((((i *= 2) < 1)) ? (235232 * (((i * i) * (((((h + 1)) * i) - h))))) : (235253 * (((((i -= 2) * i) * (((((h + 1)) * i) + h))) + 2))));\n            };\n        },\n        easeOutExpo: function(h) {\n            return (-Math.pow(2, (-10 * h)) + 1);\n        }\n    };\n    g.elasticOut = g.makeElasticOut(1, 235372);\n    g.elasticIn = g.makeElasticIn(1, 235406);\n    g.elasticInOut = g.makeElasticInOut(1, 235446);\n    g.backOut = g.makeBackOut(1.7);\n    g.backIn = g.makeBackIn(1.7);\n    g.backInOut = g.makeBackInOut(1.7);\n    e.exports = g;\n});\n__d(\"EntstreamCollapsedUFIActions\", [\"PopupWindow\",\"React\",\"TrackingNodes\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"PopupWindow\"), h = b(\"React\"), i = b(\"TrackingNodes\"), j = b(\"URI\"), k = b(\"cx\"), l = b(\"tx\"), m = h.createClass({\n        displayName: \"EntstreamCollapsedUFIActions\",\n        getLikeButton: function() {\n            return this.refs.likeButton.getDOMNode();\n        },\n        getLikeIcon: function() {\n            return this.refs.likeIcon.getDOMNode();\n        },\n        render: function() {\n            var n;\n            if ((this.props.shareHref !== null)) {\n                var o = i.getTrackingInfo(i.types.SHARE_LINK), p = j(this.props.shareHref), q = [h.DOM.i({\n                    className: \"_6k1 _528f\"\n                }),\"Share\",];\n                if ((p.getPath().indexOf(\"/ajax\") === 0)) {\n                    n = h.DOM.a({\n                        ajaxify: this.props.shareHref,\n                        className: \"_6j_ _5cix\",\n                        \"data-ft\": o,\n                        href: \"#\",\n                        rel: \"dialog\",\n                        title: \"Share this item\"\n                    }, q);\n                }\n                 else {\n                    var r = function() {\n                        g.open(this.props.shareHref, 480, 600);\n                        return false;\n                    }.bind(this);\n                    n = h.DOM.a({\n                        className: \"_6j_ _5cix\",\n                        \"data-ft\": o,\n                        href: this.props.shareHref,\n                        onClick: r,\n                        target: \"_blank\",\n                        title: \"Share this item\"\n                    }, q);\n                }\n            ;\n            }\n        ;\n            var s;\n            if (this.props.canComment) {\n                var t = \"_6k4 _528f\", u = [h.DOM.i({\n                    className: t\n                }),\"Comment\",], v = \"_6k2 _5cix\", w = i.getTrackingInfo(i.types.COMMENT_LINK);\n                if (this.props.storyHref) {\n                    s = h.DOM.a({\n                        className: v,\n                        \"data-ft\": w,\n                        href: this.props.storyHref,\n                        target: \"_blank\",\n                        title: \"Write a comment...\"\n                    }, u);\n                }\n                 else s = h.DOM.a({\n                    className: v,\n                    \"data-ft\": w,\n                    href: \"#\",\n                    onClick: this.props.onCommentClick,\n                    title: \"Write a comment...\"\n                }, u);\n            ;\n            }\n        ;\n            var x;\n            if (this.props.canLike) {\n                var y = (((((this.props.hasViewerLiked ? \"_6k5\" : \"\")) + ((\" \" + \"_6k6\"))) + ((\" \" + \"_5cix\")))), z = i.getTrackingInfo((this.props.hasViewerLiked ? i.types.UNLIKE_LINK : i.types.LIKE_LINK)), aa = (this.props.hasViewerLiked ? \"Unlike this\" : \"Like this\");\n                x = h.DOM.a({\n                    className: y,\n                    \"data-ft\": z,\n                    href: \"#\",\n                    onClick: this.props.onLike,\n                    onMouseDown: this.props.onLikeMouseDown,\n                    ref: \"likeButton\",\n                    title: aa\n                }, h.DOM.i({\n                    className: \"_6k7 _528f\",\n                    ref: \"likeIcon\"\n                }), \"Like\", h.DOM.div({\n                    className: \"_55k4\"\n                }));\n            }\n        ;\n            return (h.DOM.div({\n                className: \"_5ciy\"\n            }, x, s, n));\n        }\n    });\n    e.exports = m;\n});\n__d(\"EntstreamCollapsedUFISentence\", [\"Bootloader\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"NumberFormat\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"URI\"), m = b(\"cx\"), n = b(\"tx\"), o = k.createClass({\n        displayName: \"EntstreamCollapsedUFISentence\",\n        _showShareDialog: function(event) {\n            event = event.nativeEvent;\n            if (event.isDefaultRequested()) {\n                return\n            };\n            g.loadModules([\"EntstreamShareOverlay\",], function(p) {\n                p.display(this.props.feedback.targetfbid, this._getShareString());\n            }.bind(this));\n            event.prevent();\n        },\n        _getShareString: function() {\n            var p = this.props.feedback.sharecount, q = (this.props.numberDelimiter || \",\");\n            if ((p === 1)) {\n                return \"1 Share\";\n            }\n             else if ((p > 1)) {\n                var r = h.formatIntegerWithDelimiter(p, q);\n                return n._(\"{count} Shares\", {\n                    count: r\n                });\n            }\n            \n        ;\n        },\n        render: function() {\n            var p = this.props.feedback, q = p.likecount, r = this.props.commentCount, s = p.sharecount, t = p.seencount, u = this.props.hasAttachedUFIExpanded, v = (this.props.numberDelimiter || \",\");\n            if (u) {\n                q = 0;\n                r = 0;\n            }\n        ;\n            if ((((!q && !r) && !s) && !t)) {\n                return k.DOM.span(null)\n            };\n            var w;\n            if ((q === 1)) {\n                w = \"1 Like\";\n            }\n             else if ((q > 1)) {\n                var x = h.formatIntegerWithDelimiter(q, v);\n                w = n._(\"{count} Likes\", {\n                    count: x\n                });\n            }\n            \n        ;\n            var y;\n            if ((r === 1)) {\n                y = \"1 Comment\";\n            }\n             else if ((r > 1)) {\n                var z = h.formatIntegerWithDelimiter(r, v);\n                y = n._(\"{count} Comments\", {\n                    count: z\n                });\n            }\n            \n        ;\n            var aa = this._getShareString(), ba, ca, da;\n            if (w) {\n                ca = new l(\"/ajax/like/tooltip.php\").setQueryData({\n                    comment_fbid: p.targetfbid,\n                    comment_from: p.actorforpost,\n                    seen_user_fbids: true\n                });\n                var ea = (((y || aa) ? \"prm\" : \"\"));\n                ba = j.LIKES;\n                da = {\n                    id: p.targetfbid\n                };\n                var fa = i.constructDialogURI(ba, da).toString();\n                if (this.props.storyHref) {\n                    w = null;\n                }\n                 else w = k.DOM.a({\n                    ajaxify: fa,\n                    className: ea,\n                    href: i.constructPageURI(ba, da).toString(),\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"center\",\n                    \"data-tooltip-uri\": ca.toString(),\n                    rel: \"dialog\"\n                }, w);\n            ;\n            }\n        ;\n            var ga;\n            if ((t > 0)) {\n                ba = j.GROUP_MESSAGE_VIEWERS;\n                da = {\n                    id: p.targetfbid\n                };\n                var ha = i.constructDialogURI(ba, da), ia = i.constructPageURI(ba, da);\n                ca = new l(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n                    ft_ent_identifier: p.entidentifier,\n                    displayed_count: t\n                });\n                var ja = h.formatIntegerWithDelimiter(t, v);\n                if (p.seenbyall) {\n                    ga = \"Seen by everyone\";\n                }\n                 else ga = ((ja == 1) ? \"Seen by 1\" : n._(\"Seen by {count}\", {\n                    count: ja\n                }));\n            ;\n                ga = k.DOM.a({\n                    ajaxify: ha.toString(),\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"center\",\n                    \"data-tooltip-uri\": ca.toString(),\n                    href: ia.toString(),\n                    rel: \"dialog\",\n                    tabindex: \"-1\"\n                }, ga);\n            }\n        ;\n            if (y) {\n                var ka = ((aa ? \"prm\" : \"\"));\n                if (this.props.storyHref) {\n                    y = k.DOM.a({\n                        className: ka,\n                        href: this.props.storyHref,\n                        target: \"_blank\"\n                    }, y);\n                }\n                 else y = k.DOM.a({\n                    className: ka,\n                    onClick: this.props.onCommentClick\n                }, y);\n            ;\n            }\n        ;\n            if (aa) {\n                var la = new l(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n                    id: p.targetfbid\n                });\n                if (this.props.storyHref) {\n                    aa = k.DOM.a({\n                        href: la.toString(),\n                        target: \"_blank\"\n                    }, aa);\n                }\n                 else aa = k.DOM.a({\n                    href: la.toString(),\n                    onClick: this._showShareDialog,\n                    rel: \"ignore\"\n                }, aa);\n            ;\n            }\n        ;\n            return (k.DOM.span({\n                className: \"_5civ\"\n            }, w, y, aa, ga));\n        }\n    });\n    e.exports = o;\n});\n__d(\"EntstreamCollapsedUFI\", [\"Event\",\"Animation\",\"BrowserSupport\",\"CSS\",\"DOM\",\"Ease\",\"EntstreamCollapsedUFIActions\",\"EntstreamCollapsedUFISentence\",\"React\",\"TrackingNodes\",\"Vector\",\"cx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Animation\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Ease\"), m = b(\"EntstreamCollapsedUFIActions\"), n = b(\"EntstreamCollapsedUFISentence\"), o = b(\"React\"), p = b(\"TrackingNodes\"), q = b(\"Vector\"), r = b(\"cx\"), s = b(\"queryThenMutateDOM\"), t = 16, u = o.createClass({\n        displayName: \"EntstreamCollapsedUFI\",\n        _animate: function(v, w, x, y) {\n            if (!i.hasCSSTransforms()) {\n                return\n            };\n            var z = this.refs.icons.getLikeIcon();\n            (this._animation && this._animation.stop());\n            this._animation = new h(z).from(\"scaleX\", v).from(\"scaleY\", v).to(\"scaleX\", w).to(\"scaleY\", w).duration(x);\n            (y && this._animation.ease(y));\n            this._animation.go();\n        },\n        bounceLike: function() {\n            this._animate(1.35, 1, 750, l.bounceOut);\n        },\n        shrinkLike: function() {\n            this._animate(1, 241196, 150);\n            this._mouseUpListener = g.listen(document.body, \"mouseup\", this._onMouseUp);\n        },\n        _onMouseUp: function(event) {\n            this._mouseUpListener.remove();\n            if (!k.contains(this.refs.icons.getLikeButton(), event.getTarget())) {\n                this._animate(241417, 1, 150);\n            };\n        },\n        render: function() {\n            var v = this.props.feedback, w = p.getTrackingInfo(p.types.BLINGBOX);\n            return (o.DOM.div({\n                className: \"clearfix\"\n            }, m({\n                canLike: v.viewercanlike,\n                canComment: v.cancomment,\n                hasViewerLiked: v.hasviewerliked,\n                onCommentClick: this.props.onCommentClick,\n                onLike: this.props.onLike,\n                onLikeMouseDown: this.props.onLikeMouseDown,\n                ref: \"icons\",\n                shareHref: this.props.shareHref,\n                storyHref: this.props.storyHref\n            }), o.DOM.div({\n                className: \"_6j-\",\n                \"data-ft\": w,\n                ref: \"sentence\"\n            }, n({\n                commentCount: this.props.commentCount,\n                feedback: v,\n                hasAttachedUFIExpanded: this.props.hasAttachedUFIExpanded,\n                numberDelimiter: this.props.numberDelimiter,\n                onCommentClick: this.props.onCommentClick,\n                storyHref: this.props.storyHref\n            }))));\n        },\n        componentDidMount: function(v) {\n            var w = this.refs.icons.getDOMNode(), x = this.refs.sentence.getDOMNode(), y, z, aa;\n            s(function() {\n                y = q.getElementDimensions(v).x;\n                z = q.getElementDimensions(w).x;\n                aa = q.getElementDimensions(x).x;\n            }, function() {\n                if (((z + aa) > (y + t))) {\n                    j.addClass(v, \"_4nej\");\n                };\n            });\n        }\n    });\n    e.exports = u;\n});\n__d(\"EntstreamCollapsedUFIController\", [\"Bootloader\",\"CommentPrelude\",\"CSS\",\"DOM\",\"EntstreamCollapsedUFI\",\"React\",\"ReactMount\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIUserActions\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CommentPrelude\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"EntstreamCollapsedUFI\"), l = b(\"React\"), m = b(\"ReactMount\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIConstants\"), q = b(\"UFIFeedbackTargets\"), r = b(\"UFIUserActions\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = p.UFIPayloadSourceType;\n    function v(w, x, y) {\n        this._root = w;\n        this._id = y.ftentidentifier;\n        this._contextArgs = y;\n        this._ufiVisible = y.hasattachedufiexpanded;\n        n.subscribe(\"feedback-updated\", function(z, aa) {\n            if (((aa.payloadSource != u.INITIAL_SERVER) && (this._id in aa.updates))) {\n                this.render();\n            };\n        }.bind(this));\n        n.handleUpdate(p.UFIPayloadSourceType.COLLAPSED_UFI, x);\n        g.loadModules([\"ScrollAwareDOM\",], function(z) {\n            m.scrollMonitor = z.monitor;\n        });\n    };\n    s(v.prototype, {\n        _onLike: function(event) {\n            q.getFeedbackTarget(this._id, function(w) {\n                r.changeLike(this._id, !w.hasviewerliked, {\n                    source: this._contextArgs.source,\n                    target: event.target,\n                    rootid: j.getID(this._root)\n                });\n            }.bind(this));\n            this._ufi.bounceLike();\n            event.preventDefault();\n        },\n        _onLikeMouseDown: function(event) {\n            this._ufi.shrinkLike();\n            event.preventDefault();\n        },\n        _onCommentClick: function(event) {\n            if (!this._ufiVisible) {\n                this._ufiVisible = true;\n                i.addClass(this._root, \"_6ka\");\n            }\n        ;\n            h.click(this._root);\n            event.preventDefault();\n        },\n        render: function() {\n            q.getFeedbackTarget(this._id, function(w) {\n                var x = k({\n                    commentCount: o.getCommentCount(this._id),\n                    feedback: w,\n                    hasAttachedUFIExpanded: this._contextArgs.hasattachedufiexpanded,\n                    numberDelimiter: this._contextArgs.numberdelimiter,\n                    onCommentClick: this._onCommentClick.bind(this),\n                    onLike: this._onLike.bind(this),\n                    onLikeMouseDown: this._onLikeMouseDown.bind(this),\n                    shareHref: this._contextArgs.sharehref,\n                    storyHref: this._contextArgs.storyhref\n                });\n                l.renderComponent(x, this._root);\n                this._ufi = (this._ufi || x);\n            }.bind(this));\n        }\n    });\n    e.exports = v;\n});\n__d(\"TypeaheadUtil\", [\"repeatString\",], function(a, b, c, d, e, f) {\n    var g = b(\"repeatString\"), h = /[ ]+/g, i = /[^ ]+/g, j = /[.,+*?$|#{}()\\^\\-\\[\\]\\\\\\/!@%'\"~=<>_:;\\u30fb\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301f\\uff1a-\\uff1f\\uff01-\\uff0f\\uff3b-\\uff40\\uff5b-\\uff65\\u2E2E\\u061f\\u066a-\\u066c\\u061b\\u060c\\u060d\\uFD3e\\uFD3F\\u1801\\u0964\\u104a\\u104b\\u2010-\\u2027\\u2030-\\u205e\\u00a1-\\u00b1\\u00b4-\\u00b8\\u00ba\\u00bb\\u00bf]/g, k = {\n    }, l = {\n        a: \"\\u0430 \\u00e0 \\u00e1 \\u00e2 \\u00e3 \\u00e4 \\u00e5\",\n        b: \"\\u0431\",\n        c: \"\\u0446 \\u00e7 \\u010d\",\n        d: \"\\u0434 \\u00f0 \\u010f \\u0111\",\n        e: \"\\u044d \\u0435 \\u00e8 \\u00e9 \\u00ea \\u00eb \\u011b\",\n        f: \"\\u0444\",\n        g: \"\\u0433 \\u011f\",\n        h: \"\\u0445 \\u0127\",\n        i: \"\\u0438 \\u00ec \\u00ed \\u00ee \\u00ef \\u0131\",\n        j: \"\\u0439\",\n        k: \"\\u043a \\u0138\",\n        l: \"\\u043b \\u013e \\u013a \\u0140 \\u0142\",\n        m: \"\\u043c\",\n        n: \"\\u043d \\u00f1 \\u0148 \\u0149 \\u014b\",\n        o: \"\\u043e \\u00f8 \\u00f6 \\u00f5 \\u00f4 \\u00f3 \\u00f2\",\n        p: \"\\u043f\",\n        r: \"\\u0440 \\u0159 \\u0155\",\n        s: \"\\u0441 \\u015f \\u0161 \\u017f\",\n        t: \"\\u0442 \\u0165 \\u0167 \\u00fe\",\n        u: \"\\u0443 \\u044e \\u00fc \\u00fb \\u00fa \\u00f9 \\u016f\",\n        v: \"\\u0432\",\n        y: \"\\u044b \\u00ff \\u00fd\",\n        z: \"\\u0437 \\u017e\",\n        ae: \"\\u00e6\",\n        oe: \"\\u0153\",\n        ts: \"\\u0446\",\n        ch: \"\\u0447\",\n        ij: \"\\u0133\",\n        sh: \"\\u0448\",\n        ss: \"\\u00df\",\n        ya: \"\\u044f\"\n    };\n    for (var m in l) {\n        var n = l[m].split(\" \");\n        for (var o = 0; (o < n.length); o++) {\n            k[n[o]] = m;;\n        };\n    };\n    var p = {\n    };\n    function q(w) {\n        return (w ? w.replace(j, \" \") : \"\");\n    };\n    function r(w) {\n        w = w.toLowerCase();\n        var x = \"\", y = \"\";\n        for (var z = w.length; z--; ) {\n            y = w.charAt(z);\n            x = (((k[y] || y)) + x);\n        };\n        return x.replace(h, \" \");\n    };\n    function s(w) {\n        var x = [], y = i.exec(w);\n        while (y) {\n            y = y[0];\n            x.push(y);\n            y = i.exec(w);\n        };\n        return x;\n    };\n    function t(w, x) {\n        if (!p.hasOwnProperty(w)) {\n            var y = r(w), z = q(y);\n            p[w] = {\n                value: w,\n                flatValue: y,\n                tokens: s(z),\n                isPrefixQuery: (z && (z[(z.length - 1)] != \" \"))\n            };\n        }\n    ;\n        if ((x && (typeof p[w].sortedTokens == \"undefined\"))) {\n            p[w].sortedTokens = p[w].tokens.slice();\n            p[w].sortedTokens.sort(function(aa, ba) {\n                return (ba.length - aa.length);\n            });\n        }\n    ;\n        return p[w];\n    };\n    function u(w, x, y) {\n        var z = t(x, (w == \"prefix\")), aa = ((w == \"prefix\") ? z.sortedTokens : z.tokens), ba = t(y).tokens, ca = {\n        }, da = ((z.isPrefixQuery && (w == \"query\")) ? (aa.length - 1) : null), ea = function(fa, ga) {\n            for (var ha = 0; (ha < ba.length); ++ha) {\n                var ia = ba[ha];\n                if ((!ca[ha] && (((ia == fa) || ((((((w == \"query\") && (ga === da)) || (w == \"prefix\"))) && (ia.indexOf(fa) === 0))))))) {\n                    return (ca[ha] = true)\n                };\n            };\n            return false;\n        };\n        return Boolean((aa.length && aa.every(ea)));\n    };\n    var v = {\n        flatten: r,\n        parse: t,\n        isExactMatch: u.bind(null, \"exact\"),\n        isQueryMatch: u.bind(null, \"query\"),\n        isPrefixMatch: u.bind(null, \"prefix\")\n    };\n    e.exports = v;\n});\n__d(\"KanaUtils\", [], function(a, b, c, d, e, f) {\n    var g = 12353, h = 12436, i = 96, j = {\n        normalizeHiragana: function(k) {\n            if ((k !== null)) {\n                var l = [];\n                for (var m = 0; (m < k.length); m++) {\n                    var n = k.charCodeAt(m);\n                    if (((n < g) || (n > h))) {\n                        l.push(k.charAt(m));\n                    }\n                     else {\n                        var o = (n + i);\n                        l.push(String.fromCharCode(o));\n                    }\n                ;\n                };\n                return l.join(\"\");\n            }\n             else return null\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"DataSource\", [\"ArbiterMixin\",\"AsyncRequest\",\"TypeaheadUtil\",\"copyProperties\",\"createArrayFrom\",\"createObjectFrom\",\"emptyFunction\",\"KanaUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"TypeaheadUtil\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\"), n = b(\"KanaUtils\");\n    function o(p) {\n        this._maxResults = (p.maxResults || 10);\n        this.token = p.token;\n        this.queryData = (p.queryData || {\n        });\n        this.queryEndpoint = (p.queryEndpoint || \"\");\n        this.bootstrapData = (p.bootstrapData || {\n        });\n        this.bootstrapEndpoint = (p.bootstrapEndpoint || \"\");\n        this._exclusions = (p.exclusions || []);\n        this._indexedFields = (p.indexedFields || [\"text\",\"tokens\",]);\n        this._titleFields = (p.titleFields || []);\n        this._alwaysPrefixMatch = (p.alwaysPrefixMatch || false);\n        this._deduplicationKey = (p.deduplicationKey || null);\n        this._enabledQueryCache = (p.enabledQueryCache || true);\n        this._queryExactMatch = (p.queryExactMatch || false);\n        this._acrossTransitions = (p.acrossTransitions || false);\n        this._kanaNormalization = (p.kanaNormalization || false);\n        this._minQueryLength = (p.minQueryLength || -1);\n        this._minExactMatchLength = 4;\n        this._filters = [];\n    };\n    j(o.prototype, g, {\n        events: [\"bootstrap\",\"query\",\"respond\",],\n        init: function() {\n            this.init = m;\n            this._fields = l(this._indexedFields);\n            this._activeQueries = 0;\n            this.dirty();\n        },\n        dirty: function() {\n            this.value = \"\";\n            this._bootstrapped = false;\n            this._bootstrapping = false;\n            this._data = {\n            };\n            this.localCache = {\n            };\n            this.queryCache = {\n            };\n            this.inform(\"dirty\", {\n            });\n            return this;\n        },\n        bootstrap: function() {\n            if (this._bootstrapped) {\n                return\n            };\n            this.bootstrapWithoutToken();\n            this._bootstrapped = true;\n            this._bootstrapping = true;\n            this.inform(\"bootstrap\", {\n                bootstrapping: true\n            });\n        },\n        bootstrapWithoutToken: function() {\n            this.fetch(this.bootstrapEndpoint, this.bootstrapData, {\n                bootstrap: true,\n                token: this.token\n            });\n        },\n        bootstrapWithToken: function() {\n            var p = j({\n            }, this.bootstrapData);\n            p.token = this.token;\n            this.fetch(this.bootstrapEndpoint, p, {\n                bootstrap: true,\n                replaceCache: true\n            });\n        },\n        query: function(p, q, r, s) {\n            this.inform(\"beforeQuery\", {\n                value: p,\n                local_only: q,\n                exclusions: r,\n                time_waited: s\n            });\n            if (!this._enabledQueryCache) {\n                this.queryCache = {\n                };\n            };\n            var t = this.buildUids(p, [], r), u = this.respond(p, t);\n            this.value = p;\n            this.inform(\"query\", {\n                value: p,\n                results: u\n            });\n            var v = this._normalizeString(p).flatValue;\n            if ((((((q || !v) || this._isQueryTooShort(v)) || !this.queryEndpoint) || this.getQueryCache().hasOwnProperty(v)) || !this.shouldFetchMoreResults(u))) {\n                return false\n            };\n            this.inform(\"queryEndpoint\", {\n                value: p\n            });\n            this.fetch(this.queryEndpoint, this.getQueryData(p, t), {\n                value: p,\n                exclusions: r\n            });\n            return true;\n        },\n        _isQueryTooShort: function(p) {\n            return ((p.length < this._minQueryLength));\n        },\n        _normalizeString: function(p, q) {\n            var r = p;\n            if (this._kanaNormalization) {\n                r = n.normalizeHiragana(p);\n            };\n            return i.parse(r, q);\n        },\n        shouldFetchMoreResults: function(p) {\n            return (p.length < this._maxResults);\n        },\n        getQueryData: function(p, q) {\n            var r = j({\n                value: p\n            }, (this.queryData || {\n            }));\n            q = (q || []);\n            if (q.length) {\n                r.existing_ids = q.join(\",\");\n            };\n            if (this._bootstrapping) {\n                r.bsp = true;\n            };\n            return r;\n        },\n        setQueryData: function(p, q) {\n            if (q) {\n                this.queryData = {\n                };\n            };\n            j(this.queryData, p);\n            return this;\n        },\n        setBootstrapData: function(p, q) {\n            if (q) {\n                this.bootstrapData = {\n                };\n            };\n            j(this.bootstrapData, p);\n            return this;\n        },\n        getExclusions: function() {\n            return k(this._exclusions);\n        },\n        setExclusions: function(p) {\n            this._exclusions = (p || []);\n        },\n        addFilter: function(p) {\n            var q = this._filters;\n            q.push(p);\n            return {\n                remove: function() {\n                    q.splice(q.indexOf(p), 1);\n                }\n            };\n        },\n        clearFilters: function() {\n            this._filters = [];\n        },\n        respond: function(p, q, r) {\n            var s = this.buildData(q);\n            this.inform(\"respond\", {\n                value: p,\n                results: s,\n                isAsync: !!r\n            });\n            return s;\n        },\n        asyncErrorHandler: m,\n        fetch: function(p, q, r) {\n            if (!p) {\n                return\n            };\n            var s = new h().setURI(p).setData(q).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._acrossTransitions).setHandler(function(t) {\n                this.fetchHandler(t, (r || {\n                }));\n            }.bind(this));\n            if ((p === this.queryEndpoint)) {\n                s.setFinallyHandler(function() {\n                    this._activeQueries--;\n                    if (!this._activeQueries) {\n                        this.inform(\"activity\", {\n                            activity: false\n                        });\n                    };\n                }.bind(this));\n            };\n            s.setErrorHandler(this.asyncErrorHandler);\n            this.inform(\"beforeFetch\", {\n                request: s,\n                fetch_context: r\n            });\n            s.send();\n            if ((p === this.queryEndpoint)) {\n                if (!this._activeQueries) {\n                    this.inform(\"activity\", {\n                        activity: true\n                    });\n                };\n                this._activeQueries++;\n            }\n        ;\n        },\n        fetchHandler: function(p, q) {\n            var r = q.value, s = q.exclusions;\n            if ((!r && q.replaceCache)) {\n                this.localCache = {\n                };\n            };\n            this.inform(\"buildQueryCache\", {\n            });\n            var t = p.getPayload().entries;\n            this.addEntries(t, r);\n            this.inform(\"fetchComplete\", {\n                entries: t,\n                response: p,\n                value: r,\n                fetch_context: q\n            });\n            var u = (((!r && this.value)) ? this.value : r);\n            this.respond(u, this.buildUids(u, [], s), true);\n            if (!r) {\n                if (this._bootstrapping) {\n                    this._bootstrapping = false;\n                    this.inform(\"bootstrap\", {\n                        bootstrapping: false\n                    });\n                }\n            ;\n                if ((q.token && (p.getPayload().token !== q.token))) {\n                    this.bootstrapWithToken();\n                };\n            }\n        ;\n        },\n        addEntries: function(p, q) {\n            var r = this.processEntries(k((p || [])), q), s = this.buildUids(q, r);\n            if (q) {\n                var t = this.getQueryCache();\n                t[this._normalizeString(q).flatValue] = s;\n            }\n             else this.fillCache(s);\n        ;\n        },\n        processEntries: function(p, q) {\n            return p.map(function(r, s) {\n                var t = (r.uid = (r.uid + \"\")), u = this.getEntry(t);\n                if (!u) {\n                    u = r;\n                    u.query = q;\n                    this.setEntry(t, u);\n                }\n                 else j(u, r);\n            ;\n                ((u.index === undefined) && (u.index = s));\n                return t;\n            }, this);\n        },\n        getAllEntries: function() {\n            return (this._data || {\n            });\n        },\n        getEntry: function(p) {\n            return (this._data[p] || null);\n        },\n        setEntry: function(p, q) {\n            this._data[p] = q;\n        },\n        fillCache: function(p) {\n            var q = this.localCache;\n            p.forEach(function(r) {\n                var s = this.getEntry(r);\n                if (!s) {\n                    return\n                };\n                s.bootstrapped = true;\n                var t = this._normalizeString(this.getTextToIndex(s)).tokens;\n                for (var u = 0, v = t.length; (u < v); ++u) {\n                    var w = t[u];\n                    if (!q.hasOwnProperty(w)) {\n                        q[w] = {\n                        };\n                    };\n                    q[w][r] = true;\n                };\n            }, this);\n        },\n        getTextToIndex: function(p) {\n            if ((p.textToIndex && !p.needs_update)) {\n                return p.textToIndex\n            };\n            p.needs_update = false;\n            p.textToIndex = this.getTextToIndexFromFields(p, this._indexedFields);\n            return p.textToIndex;\n        },\n        getTextToIndexFromFields: function(p, q) {\n            var r = [];\n            for (var s = 0; (s < q.length); ++s) {\n                var t = p[q[s]];\n                if (t) {\n                    r.push((t.join ? t.join(\" \") : t));\n                };\n            };\n            return r.join(\" \");\n        },\n        mergeUids: function(p, q, r, s) {\n            this.inform(\"mergeUids\", {\n                local_uids: p,\n                query_uids: q,\n                new_uids: r,\n                value: s\n            });\n            var t = function(u, v) {\n                var w = this.getEntry(u), x = this.getEntry(v);\n                if ((w.extended_match !== x.extended_match)) {\n                    return (w.extended_match ? 1 : -1)\n                };\n                if ((w.index !== x.index)) {\n                    return (w.index - x.index)\n                };\n                if ((w.text.length !== x.text.length)) {\n                    return (w.text.length - x.text.length)\n                };\n                return (w.uid < x.uid);\n            }.bind(this);\n            this._checkExtendedMatch(s, p);\n            return this.deduplicateByKey(p.sort(t).concat(q, r));\n        },\n        _checkExtendedMatch: function(p, q) {\n            var r = (this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch);\n            for (var s = 0; (s < q.length); ++s) {\n                var t = this.getEntry(q[s]);\n                t.extended_match = (t.tokens ? !r(p, t.text) : false);\n            };\n        },\n        buildUids: function(p, q, r) {\n            if (!q) {\n                q = [];\n            };\n            if (!p) {\n                return q\n            };\n            if (!r) {\n                r = [];\n            };\n            var s = this.buildCacheResults(p, this.localCache), t = this.buildQueryResults(p), u = this.mergeUids(s, t, q, p), v = l(r.concat(this._exclusions)), w = u.filter(function(x) {\n                if ((v.hasOwnProperty(x) || !this.getEntry(x))) {\n                    return false\n                };\n                for (var y = 0; (y < this._filters.length); ++y) {\n                    if (!this._filters[y](this.getEntry(x), p)) {\n                        return false\n                    };\n                };\n                return (v[x] = true);\n            }, this);\n            return this.uidsIncludingExact(p, w, v);\n        },\n        uidsIncludingExact: function(p, q, r) {\n            var s = q.length;\n            if (((p.length < this._minExactMatchLength) || (s <= this._maxResults))) {\n                return q\n            };\n            for (var t = 0; (t < s); ++t) {\n                var u = this.getEntry(q[t]);\n                (u.text_lower || (u.text_lower = u.text.toLowerCase()));\n                if ((u.text_lower === this._normalizeString(p).flatValue)) {\n                    if ((t >= this._maxResults)) {\n                        var v = q.splice(t, 1);\n                        q.splice((this._maxResults - 1), 0, v);\n                    }\n                ;\n                    break;\n                }\n            ;\n            };\n            return q;\n        },\n        buildData: function(p) {\n            var q = [], r = Math.min(p.length, this._maxResults);\n            for (var s = 0; (s < r); ++s) {\n                q.push(this.getEntry(p[s]));;\n            };\n            return q;\n        },\n        findQueryCache: function(p) {\n            var q = 0, r = null, s = this.getQueryCache();\n            if (this._queryExactMatch) {\n                return (s[p] || [])\n            };\n            for (var t in s) {\n                if (((p.indexOf(t) === 0) && (t.length > q))) {\n                    q = t.length;\n                    r = t;\n                }\n            ;\n            };\n            return (s[r] || []);\n        },\n        buildQueryResults: function(p) {\n            var q = this._normalizeString(p).flatValue, r = this.findQueryCache(q);\n            if (this.getQueryCache().hasOwnProperty(q)) {\n                return r\n            };\n            return this.filterQueryResults(p, r);\n        },\n        filterQueryResults: function(p, q) {\n            var r = (this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch);\n            return q.filter(function(s) {\n                return r(p, this.getTextToIndex(this.getEntry(s)));\n            }, this);\n        },\n        buildCacheResults: function(p, q) {\n            var r = this._normalizeString(p, this._alwaysPrefixMatch), s = (this._alwaysPrefixMatch ? r.sortedTokens : r.tokens), t = s.length, u = (r.isPrefixQuery ? (t - 1) : null), v = {\n            }, w = {\n            }, x = {\n            }, y = [], z = false, aa = {\n            }, ba = 0;\n            for (var ca = 0; (ca < t); ++ca) {\n                var da = s[ca];\n                if (!aa.hasOwnProperty(da)) {\n                    ba++;\n                    aa[da] = true;\n                }\n                 else continue;\n            ;\n                for (var ea in q) {\n                    if ((((!v.hasOwnProperty(ea) && (ea === da))) || ((((this._alwaysPrefixMatch || (u === ca))) && (ea.indexOf(da) === 0))))) {\n                        if ((ea === da)) {\n                            if (w.hasOwnProperty(ea)) {\n                                z = true;\n                            };\n                            v[ea] = true;\n                        }\n                         else {\n                            if ((v.hasOwnProperty(ea) || w.hasOwnProperty(ea))) {\n                                z = true;\n                            };\n                            w[ea] = true;\n                        }\n                    ;\n                        for (var fa in q[ea]) {\n                            if (((ca === 0) || ((x.hasOwnProperty(fa) && (x[fa] == (ba - 1)))))) {\n                                x[fa] = ba;\n                            };\n                        };\n                    }\n                ;\n                };\n            };\n            for (var ga in x) {\n                if ((x[ga] == ba)) {\n                    y.push(ga);\n                };\n            };\n            if ((z || (ba < t))) {\n                y = this.filterQueryResults(p, y);\n            };\n            if ((this._titleFields && (this._titleFields.length > 0))) {\n                y = this.filterNonTitleMatchQueryResults(p, y);\n            };\n            return y;\n        },\n        filterNonTitleMatchQueryResults: function(p, q) {\n            return q.filter(function(r) {\n                var s = this._normalizeString(p), t = s.tokens.length;\n                if ((t === 0)) {\n                    return true\n                };\n                var u = this.getTitleTerms(this.getEntry(r)), v = s.tokens[0];\n                return (((((t === 1)) || this._alwaysPrefixMatch)) ? i.isPrefixMatch(v, u) : i.isQueryMatch(v, u));\n            }, this);\n        },\n        getTitleTerms: function(p) {\n            if (!p.titleToIndex) {\n                p.titleToIndex = this.getTextToIndexFromFields(p, this._titleFields);\n            };\n            return p.titleToIndex;\n        },\n        deduplicateByKey: function(p) {\n            if (!this._deduplicationKey) {\n                return p\n            };\n            var q = l(p.map(this._getDeduplicationKey.bind(this)), p);\n            return p.filter(function(r) {\n                return (q[this._getDeduplicationKey(r)] == r);\n            }.bind(this));\n        },\n        _getDeduplicationKey: function(p) {\n            var q = this.getEntry(p);\n            return (q[this._deduplicationKey] || ((\"__\" + p) + \"__\"));\n        },\n        getQueryCache: function() {\n            return this.queryCache;\n        },\n        setMaxResults: function(p) {\n            this._maxResults = p;\n            (this.value && this.respond(this.value, this.buildUids(this.value)));\n        },\n        updateToken: function(p) {\n            this.token = p;\n            this.dirty();\n            return this;\n        }\n    });\n    e.exports = o;\n});\n__d(\"BanzaiNectar\", [\"Banzai\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\");\n    function h(j) {\n        return {\n            log: function(k, l, m) {\n                var n = {\n                    e: l,\n                    a: m\n                };\n                g.post((\"nectar:\" + k), n, j);\n            }\n        };\n    };\n    var i = h();\n    i.create = h;\n    e.exports = i;\n});\n__d(\"DimensionLogging\", [\"BanzaiNectar\",\"DOMDimensions\",], function(a, b, c, d, e, f) {\n    var g = b(\"BanzaiNectar\"), h = b(\"DOMDimensions\"), i = h.getViewportDimensions();\n    g.log(\"browser_dimension\", \"homeload\", {\n        x: i.width,\n        y: i.height,\n        sw: window.screen.width,\n        sh: window.screen.height,\n        aw: window.screen.availWidth,\n        ah: window.screen.availHeight,\n        at: window.screen.availTop,\n        al: window.screen.availLeft\n    });\n});\n__d(\"MultiBootstrapDataSource\", [\"Class\",\"DataSource\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DataSource\");\n    function i(j) {\n        this._bootstrapEndpoints = j.bootstrapEndpoints;\n        this.parent.construct(this, j);\n    };\n    g.extend(i, h);\n    i.prototype.bootstrapWithoutToken = function() {\n        for (var j = 0; (j < this._bootstrapEndpoints.length); j++) {\n            this.fetch(this._bootstrapEndpoints[j].endpoint, (this._bootstrapEndpoints[j].data || {\n            }), {\n                bootstrap: true\n            });;\n        };\n    };\n    e.exports = i;\n});\n__d(\"XHPTemplate\", [\"DataStore\",\"DOM\",\"HTML\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DataStore\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"copyProperties\");\n    function k(m) {\n        this._model = m;\n    };\n    j(k.prototype, {\n        render: function() {\n            if (i.isHTML(this._model)) {\n                this._model = h.setContent(document.createDocumentFragment(), this._model)[0];\n            };\n            return this._model.cloneNode(true);\n        },\n        build: function() {\n            return new l(this.render());\n        }\n    });\n    j(k, {\n        getNode: function(m, n) {\n            return k.getNodes(m)[n];\n        },\n        getNodes: function(m) {\n            var n = g.get(m, \"XHPTemplate:nodes\");\n            if (!n) {\n                n = {\n                };\n                var o = h.scry(m, \"[data-jsid]\");\n                o.push(m);\n                var p = o.length;\n                while (p--) {\n                    var q = o[p];\n                    n[q.getAttribute(\"data-jsid\")] = q;\n                    q.removeAttribute(\"data-jsid\");\n                };\n                g.set(m, \"XHPTemplate:nodes\", n);\n            }\n        ;\n            return n;\n        }\n    });\n    function l(m) {\n        this._root = m;\n        this._populateNodes();\n    };\n    j(l.prototype, {\n        _populateNodes: function() {\n            this._nodes = {\n            };\n            this._leaves = {\n            };\n            var m = this._root.getElementsByTagName(\"*\");\n            for (var n = 0, o = m.length; (n < o); n++) {\n                var p = m[n], q = p.getAttribute(\"data-jsid\");\n                if (q) {\n                    p.removeAttribute(\"data-jsid\");\n                    this._nodes[q] = p;\n                    this._leaves[q] = !p.childNodes.length;\n                }\n            ;\n            };\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getNode: function(m) {\n            return this._nodes[m];\n        },\n        setNodeProperty: function(m, n, o) {\n            this.getNode(m)[n] = o;\n            return this;\n        },\n        setNodeContent: function(m, n) {\n            if (!this._leaves[m]) {\n                throw new Error((\"Can't setContent on non-leaf node: \" + m))\n            };\n            h.setContent(this.getNode(m), n);\n            return this;\n        }\n    });\n    e.exports = k;\n});");
36283 // 1635
36284 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s93c2e40407555ddbaca9d11f5326c966155ad343");
36285 // 1636
36286 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"OJTM4\",]);\n}\n;\n;\n__d(\"AjaxRequest\", [\"ErrorUtils\",\"Keys\",\"URI\",\"UserAgent\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\"), h = b(\"Keys\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n    function m(q, r, s) {\n        this.xhr = k.create();\n        if (!((r instanceof i))) {\n            r = new i(r);\n        }\n    ;\n    ;\n        if (((s && ((q == \"GET\"))))) {\n            r.setQueryData(s);\n        }\n         else this._params = s;\n    ;\n    ;\n        this.method = q;\n        this.uri = r;\n        this.xhr.open(q, r);\n    };\n;\n    var n = ((window.JSBNG__XMLHttpRequest && ((\"withCredentials\" in new JSBNG__XMLHttpRequest()))));\n    m.supportsCORS = function() {\n        return n;\n    };\n    m.ERROR = \"ar:error\";\n    m.TIMEOUT = \"ar:timeout\";\n    m.PROXY_ERROR = \"ar:proxy error\";\n    m.TRANSPORT_ERROR = \"ar:transport error\";\n    m.SERVER_ERROR = \"ar:http error\";\n    m.PARSE_ERROR = \"ar:parse error\";\n    m._inflight = [];\n    function o() {\n        var q = m._inflight;\n        m._inflight = [];\n        q.forEach(function(r) {\n            r.abort();\n        });\n    };\n;\n    function p(q) {\n        q.onJSON = q.onError = q.onSuccess = null;\n        JSBNG__clearTimeout(q._timer);\n        if (((q.xhr && ((q.xhr.readyState < 4))))) {\n            q.xhr.abort();\n            q.xhr = null;\n        }\n    ;\n    ;\n        m._inflight = m._inflight.filter(function(r) {\n            return ((((((r && ((r != q)))) && r.xhr)) && ((r.xhr.readyState < 4))));\n        });\n    };\n;\n    l(m.prototype, {\n        timeout: 60000,\n        streamMode: true,\n        prelude: /^for \\(;;\\);/,\n        JSBNG__status: null,\n        _eol: -1,\n        _call: function(q) {\n            if (this[q]) {\n                this[q](this);\n            }\n        ;\n        ;\n        },\n        _parseStatus: function() {\n            var q;\n            try {\n                this.JSBNG__status = this.xhr.JSBNG__status;\n                q = this.xhr.statusText;\n            } catch (r) {\n                if (((this.xhr.readyState >= 4))) {\n                    this.errorType = m.TRANSPORT_ERROR;\n                    this.errorText = r.message;\n                }\n            ;\n            ;\n                return;\n            };\n        ;\n            if (((((this.JSBNG__status === 0)) && !(/^(file|ftp)/.test(this.uri))))) {\n                this.errorType = m.TRANSPORT_ERROR;\n            }\n             else if (((((this.JSBNG__status >= 100)) && ((this.JSBNG__status < 200))))) {\n                this.errorType = m.PROXY_ERROR;\n            }\n             else if (((((this.JSBNG__status >= 200)) && ((this.JSBNG__status < 300))))) {\n                return;\n            }\n             else if (((((this.JSBNG__status >= 300)) && ((this.JSBNG__status < 400))))) {\n                this.errorType = m.PROXY_ERROR;\n            }\n             else if (((((this.JSBNG__status >= 400)) && ((this.JSBNG__status < 500))))) {\n                this.errorType = m.SERVER_ERROR;\n            }\n             else if (((((this.JSBNG__status >= 500)) && ((this.JSBNG__status < 600))))) {\n                this.errorType = m.PROXY_ERROR;\n            }\n             else if (((this.JSBNG__status == 1223))) {\n                return;\n            }\n             else if (((((this.JSBNG__status >= 12001)) && ((this.JSBNG__status <= 12156))))) {\n                this.errorType = m.TRANSPORT_ERROR;\n            }\n             else {\n                q = ((\"unrecognized status code: \" + this.JSBNG__status));\n                this.errorType = m.ERROR;\n            }\n            \n            \n            \n            \n            \n            \n            \n        ;\n        ;\n            if (!this.errorText) {\n                this.errorText = q;\n            }\n        ;\n        ;\n        },\n        _parseResponse: function() {\n            var q, r = this.xhr.readyState;\n            try {\n                q = ((this.xhr.responseText || \"\"));\n            } catch (s) {\n                if (((r >= 4))) {\n                    this.errorType = m.ERROR;\n                    this.errorText = ((\"responseText not available - \" + s.message));\n                }\n            ;\n            ;\n                return;\n            };\n        ;\n            while (this.xhr) {\n                var t = ((this._eol + 1)), u = ((this.streamMode ? q.indexOf(\"\\u000a\", t) : q.length));\n                if (((((u < 0)) && ((r == 4))))) {\n                    u = q.length;\n                }\n            ;\n            ;\n                if (((u <= this._eol))) {\n                    break;\n                }\n            ;\n            ;\n                var v = q;\n                if (this.streamMode) {\n                    v = q.substr(t, ((u - t))).replace(/^\\s*|\\s*$/g, \"\");\n                }\n            ;\n            ;\n                if (((((t === 0)) && this.prelude))) {\n                    if (this.prelude.test(v)) {\n                        v = v.replace(this.prelude, \"\");\n                    }\n                ;\n                }\n            ;\n            ;\n                this._eol = u;\n                if (v) {\n                    try {\n                        this.json = JSON.parse(v);\n                    } catch (s) {\n                        var w = (((/(<body[\\S\\s]+?<\\/body>)/i).test(q) && RegExp.$1)), x = {\n                            message: s.message,\n                            char: t,\n                            excerpt: ((((((t === 0)) && w)) || v)).substr(512)\n                        };\n                        this.errorType = m.PARSE_ERROR;\n                        this.errorText = ((\"parse error - \" + JSON.stringify(x)));\n                        return;\n                    };\n                ;\n                    g.applyWithGuard(this._call, this, [\"onJSON\",]);\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        _onReadyState: function() {\n            var q = ((((this.xhr && this.xhr.readyState)) || 0));\n            if (((((this.JSBNG__status == null)) && ((q >= 2))))) {\n                this._parseStatus();\n            }\n        ;\n        ;\n            if (((!this.errorType && ((this.JSBNG__status != null))))) {\n                if (((((((q == 3)) && this.streamMode)) || ((q == 4))))) {\n                    this._parseResponse();\n                }\n            ;\n            }\n        ;\n        ;\n            if (((this.errorType || ((q == 4))))) {\n                this._time = ((JSBNG__Date.now() - this._sentAt));\n                this._call(((!this.errorType ? \"onSuccess\" : \"onError\")));\n                p(this);\n            }\n        ;\n        ;\n        },\n        send: function(q) {\n            this.xhr.onreadystatechange = function() {\n                g.applyWithGuard(this._onReadyState, this, arguments);\n            }.bind(this);\n            var r = this.timeout;\n            if (r) {\n                this._timer = JSBNG__setTimeout((function() {\n                    this.errorType = m.TIMEOUT;\n                    this.errorText = \"timeout\";\n                    this._time = ((JSBNG__Date.now() - this._sentAt));\n                    this._call(\"onError\");\n                    p(this);\n                }).bind(this), r, false);\n            }\n        ;\n        ;\n            m._inflight.push(this);\n            if (((this.method == \"POST\"))) {\n                this.xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n            }\n        ;\n        ;\n            this._sentAt = JSBNG__Date.now();\n            this.xhr.send(((q ? i.implodeQuery(q) : \"\")));\n        },\n        abort: function() {\n            p(this);\n        },\n        toString: function() {\n            var q = ((\"[AjaxRequest readyState=\" + this.xhr.readyState));\n            if (this.errorType) {\n                q += ((((((((\" errorType=\" + this.errorType)) + \" (\")) + this.errorText)) + \")\"));\n            }\n        ;\n        ;\n            return ((q + \"]\"));\n        },\n        toJSON: function() {\n            var q = {\n                json: this.json,\n                JSBNG__status: this.JSBNG__status,\n                errorType: this.errorType,\n                errorText: this.errorText,\n                time: this._time\n            };\n            if (this.errorType) {\n                q.uri = this.uri;\n            }\n        ;\n        ;\n            {\n                var fin48keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin48i = (0);\n                var r;\n                for (; (fin48i < fin48keys.length); (fin48i++)) {\n                    ((r) = (fin48keys[fin48i]));\n                    {\n                        if (((q[r] == null))) {\n                            delete q[r];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return q;\n        }\n    });\n    if (((window.JSBNG__addEventListener && j.firefox()))) {\n        window.JSBNG__addEventListener(\"keydown\", function(JSBNG__event) {\n            if (((JSBNG__event.keyCode === h.ESC))) {\n                JSBNG__event.prevent();\n            }\n        ;\n        ;\n        }, false);\n    }\n;\n;\n    if (window.JSBNG__attachEvent) {\n        window.JSBNG__attachEvent(\"JSBNG__onunload\", o);\n    }\n;\n;\n    e.exports = m;\n});\n__d(\"FBAjaxRequest\", [\"AjaxRequest\",\"copyProperties\",\"XHR\",], function(a, b, c, d, e, f) {\n    var g = b(\"AjaxRequest\"), h = b(\"copyProperties\"), i = b(\"XHR\");\n    function j(k, l, m) {\n        m = h(i.getAsyncParams(k), m);\n        var n = new g(k, l, m);\n        n.streamMode = false;\n        var o = n._call;\n        n._call = function(p) {\n            if (((((p == \"onJSON\")) && this.json))) {\n                if (this.json.error) {\n                    this.errorType = g.SERVER_ERROR;\n                    this.errorText = ((\"AsyncResponse error: \" + this.json.error));\n                }\n            ;\n            ;\n                this.json = this.json.payload;\n            }\n        ;\n        ;\n            o.apply(this, arguments);\n        };\n        n.ajaxReqSend = n.send;\n        n.send = function(p) {\n            this.ajaxReqSend(h(p, m));\n        };\n        return n;\n    };\n;\n    e.exports = j;\n});\n__d(\"CallbackManagerController\", [\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\"), h = b(\"copyProperties\"), i = function(j) {\n        this._pendingIDs = [];\n        this._allRequests = [undefined,];\n        this._callbackArgHandler = j;\n    };\n    h(i.prototype, {\n        executeOrEnqueue: function(j, k, l) {\n            l = ((l || {\n            }));\n            var m = this._attemptCallback(k, j, l);\n            if (m) {\n                return 0;\n            }\n        ;\n        ;\n            this._allRequests.push({\n                fn: k,\n                request: j,\n                options: l\n            });\n            var n = ((this._allRequests.length - 1));\n            this._pendingIDs.push(n);\n            return n;\n        },\n        unsubscribe: function(j) {\n            delete this._allRequests[j];\n        },\n        reset: function() {\n            this._allRequests = [];\n        },\n        getRequest: function(j) {\n            return this._allRequests[j];\n        },\n        runPossibleCallbacks: function() {\n            var j = this._pendingIDs;\n            this._pendingIDs = [];\n            var k = [];\n            j.forEach(function(l) {\n                var m = this._allRequests[l];\n                if (!m) {\n                    return;\n                }\n            ;\n            ;\n                if (this._callbackArgHandler(m.request, m.options)) {\n                    k.push(l);\n                }\n                 else this._pendingIDs.push(l);\n            ;\n            ;\n            }.bind(this));\n            k.forEach(function(l) {\n                var m = this._allRequests[l];\n                delete this._allRequests[l];\n                this._attemptCallback(m.fn, m.request, m.options);\n            }.bind(this));\n        },\n        _attemptCallback: function(j, k, l) {\n            var m = this._callbackArgHandler(k, l);\n            if (m) {\n                var n = {\n                    ids: k\n                };\n                g.applyWithGuard(j, n, m);\n            }\n        ;\n        ;\n            return !!m;\n        }\n    });\n    e.exports = i;\n});\n__d(\"deferred\", [], function(a, b, c, d, e, f) {\n    var g = 0, h = 1, i = 2, j = 4, k = \"callbacks\", l = \"errbacks\", m = \"cancelbacks\", n = \"completeCallbacks\", o = [], p = o.slice, q = o.unshift;\n    function r(w, x) {\n        return ((w ? p.call(w, x) : o));\n    };\n;\n    function s(w, x) {\n        return ((((x < w.length)) ? r(w, x) : o));\n    };\n;\n    function t() {\n        this.$Deferred0 = g;\n    };\n;\n    t.prototype.addCallback = function(w, x) {\n        return this.$Deferred1(h, this.$Deferred2(k), w, x, s(arguments, 2));\n    };\n    t.prototype.removeCallback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(k), w, x);\n    };\n    t.prototype.addCompleteCallback = function(w, x) {\n        return this.$Deferred1(null, this.$Deferred2(n), w, x, s(arguments, 2));\n    };\n    t.prototype.removeCompleteCallback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(n), w, x);\n    };\n    t.prototype.addErrback = function(w, x) {\n        return this.$Deferred1(i, this.$Deferred2(l), w, x, s(arguments, 2));\n    };\n    t.prototype.removeErrback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(l), w, x);\n    };\n    t.prototype.addCancelback = function(w, x) {\n        return this.$Deferred1(j, this.$Deferred2(m), w, x, s(arguments, 2));\n    };\n    t.prototype.removeCancelback = function(w, x) {\n        return this.$Deferred3(this.$Deferred2(m), w, x);\n    };\n    t.prototype.getStatus = function() {\n        return this.$Deferred0;\n    };\n    t.prototype.setStatus = function(w) {\n        var x;\n        this.$Deferred0 = w;\n        this.callbackArgs = r(arguments, 1);\n        if (((w === i))) {\n            x = l;\n        }\n         else if (((w === h))) {\n            x = k;\n        }\n         else if (((w === j))) {\n            x = m;\n        }\n        \n        \n    ;\n    ;\n        if (x) {\n            this.$Deferred4(this[x], this.callbackArgs);\n        }\n    ;\n    ;\n        this.$Deferred4(this[n], this.callbackArgs);\n        return this;\n    };\n    t.prototype.JSBNG__setTimeout = function(w) {\n        if (this.timeout) {\n            this.JSBNG__clearTimeout();\n        }\n    ;\n    ;\n        this.$Deferred5 = ((this.$Deferred5 || this.fail.bind(this)));\n        this.timeout = window.JSBNG__setTimeout(this.$Deferred5, w);\n    };\n    t.prototype.JSBNG__clearTimeout = function() {\n        window.JSBNG__clearTimeout(this.timeout);\n        delete this.timeout;\n    };\n    t.prototype.succeed = function() {\n        return this.$Deferred6(h, arguments);\n    };\n    t.prototype.fail = function() {\n        return this.$Deferred6(i, arguments);\n    };\n    t.prototype.cancel = function() {\n        delete this[k];\n        delete this[l];\n        return this.$Deferred6(j, arguments);\n    };\n    t.prototype.$Deferred6 = function(w, x) {\n        q.call(x, w);\n        return this.setStatus.apply(this, x);\n    };\n    t.prototype.$Deferred2 = function(w) {\n        return ((this[w] || (this[w] = [])));\n    };\n    t.prototype.then = function(w, x, y, z) {\n        var aa = new t(), w, ba, ca, da = r(arguments, 0);\n        if (((typeof da[0] === \"function\"))) {\n            w = da.shift();\n        }\n    ;\n    ;\n        if (((typeof da[0] === \"function\"))) {\n            ba = da.shift();\n        }\n    ;\n    ;\n        if (((typeof da[0] === \"function\"))) {\n            ca = da.shift();\n        }\n    ;\n    ;\n        var ea = da.shift();\n        if (w) {\n            var fa = [this.$Deferred7,this,aa,\"succeed\",w,ea,].concat(da);\n            this.addCallback.apply(this, fa);\n        }\n         else this.addCallback(aa.succeed, aa);\n    ;\n    ;\n        if (ba) {\n            var ga = [this.$Deferred7,this,aa,\"fail\",ba,ea,].concat(da);\n            this.addErrback.apply(this, ga);\n        }\n         else this.addErrback(aa.fail, aa);\n    ;\n    ;\n        if (ca) {\n            var ha = [this.$Deferred7,this,aa,\"cancel\",ca,ea,].concat(da);\n            this.addCancelback.apply(this, ha);\n        }\n         else this.addCancelback(aa.cancel, aa);\n    ;\n    ;\n        return aa;\n    };\n    t.prototype.$Deferred1 = function(w, x, y, z, aa) {\n        var ba = this.getStatus();\n        if (((((!w && ((ba !== g)))) || ((ba === w))))) {\n            y.apply(((z || this)), aa.concat(this.callbackArgs));\n        }\n         else x.push(y, z, aa);\n    ;\n    ;\n        return this;\n    };\n    t.prototype.$Deferred3 = function(w, x, y) {\n        for (var z = 0; ((z < w.length)); z += 3) {\n            if (((((w[z] === x)) && ((!y || ((w[((z + 1))] === y))))))) {\n                w.splice(z, 3);\n                if (y) {\n                    break;\n                }\n            ;\n            ;\n                z -= 3;\n            }\n        ;\n        ;\n        };\n    ;\n        return this;\n    };\n    t.prototype.pipe = function(w) {\n        this.addCallback(w.succeed, w).addErrback(w.fail, w).addCancelback(w.cancel, w);\n    };\n    t.prototype.$Deferred4 = function(w, x) {\n        for (var y = 0; ((y < ((w || o)).length)); y += 3) {\n            w[y].apply(((w[((y + 1))] || this)), ((w[((y + 2))] || o)).concat(x));\n        ;\n        };\n    ;\n    };\n    t.prototype.$Deferred7 = function(w, x, y, z) {\n        var aa = r(arguments, 4), ba = y.apply(z, aa);\n        if (((ba instanceof t))) {\n            ba.pipe(w);\n        }\n         else w[x](ba);\n    ;\n    ;\n    };\n    var u = ((((t === null)) ? null : t.prototype));\n    v.prototype = Object.create(u);\n    v.prototype.constructor = v;\n    v.__superConstructor__ = t;\n    function v(w) {\n        t.call(this);\n        this.completed = 0;\n        this.list = [];\n        if (w) {\n            w.forEach(this.waitFor, this);\n            this.startWaiting();\n        }\n    ;\n    ;\n    };\n;\n    v.prototype.startWaiting = function() {\n        this.waiting = true;\n        this.checkDeferreds();\n        return this;\n    };\n    v.prototype.waitFor = function(w) {\n        this.list.push(w);\n        this.checkDeferreds();\n        w.addCompleteCallback(this.deferredComplete, this);\n        return this;\n    };\n    v.prototype.createWaitForDeferred = function() {\n        var w = new t();\n        this.waitFor(w);\n        return w;\n    };\n    v.prototype.createWaitForCallback = function() {\n        var w = this.createWaitForDeferred();\n        return w.succeed.bind(w);\n    };\n    v.prototype.deferredComplete = function() {\n        this.completed++;\n        if (((this.completed === this.list.length))) {\n            this.checkDeferreds();\n        }\n    ;\n    ;\n    };\n    v.prototype.checkDeferreds = function() {\n        if (((!this.waiting || ((this.completed !== this.list.length))))) {\n            return;\n        }\n    ;\n    ;\n        var w = false, x = false, y = [g,];\n        for (var z = 0, aa = this.list.length; ((z < aa)); z++) {\n            var ba = this.list[z];\n            y.push([ba,].concat(ba.callbackArgs));\n            if (((ba.getStatus() === i))) {\n                w = true;\n            }\n             else if (((ba.getStatus() === j))) {\n                x = true;\n            }\n            \n        ;\n        ;\n        };\n    ;\n        if (w) {\n            y[0] = i;\n            this.fail.apply(this, y);\n        }\n         else if (x) {\n            y[0] = j;\n            this.cancel.apply(this, y);\n        }\n         else {\n            y[0] = h;\n            this.succeed.apply(this, y);\n        }\n        \n    ;\n    ;\n    };\n    f.Deferred = t;\n    f.DeferredList = v;\n    f.Deferred.toArray = r;\n    f.Deferred.STATUS_UNKNOWN = g;\n    f.Deferred.STATUS_SUCCEEDED = h;\n    f.Deferred.STATUS_CANCELED = j;\n    f.Deferred.STATUS_FAILED = i;\n});\n__d(\"KeyedCallbackManager\", [\"CallbackManagerController\",\"deferred\",\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackManagerController\"), h = b(\"deferred\").Deferred, i = b(\"ErrorUtils\"), j = b(\"copyProperties\"), k = function() {\n        this._resources = {\n        };\n        this._controller = new g(this._constructCallbackArg.bind(this));\n    };\n    j(k.prototype, {\n        executeOrEnqueue: function(l, m) {\n            if (!((l instanceof Array))) {\n                var n = l, o = m;\n                l = [l,];\n                m = function(p) {\n                    o(p[n]);\n                };\n            }\n        ;\n        ;\n            l = l.filter(function(p) {\n                var q = ((((p !== null)) && ((p !== undefined))));\n                if (!q) {\n                    i.applyWithGuard(function() {\n                        throw new Error(((((\"KeyedCallbackManager.executeOrEnqueue: key \" + JSON.stringify(p))) + \" is invalid\")));\n                    });\n                }\n            ;\n            ;\n                return q;\n            });\n            return this._controller.executeOrEnqueue(l, m);\n        },\n        deferredExecuteOrEnqueue: function(l) {\n            var m = new h();\n            this.executeOrEnqueue(l, m.succeed.bind(m));\n            return m;\n        },\n        unsubscribe: function(l) {\n            this._controller.unsubscribe(l);\n        },\n        reset: function() {\n            this._controller.reset();\n            this._resources = {\n            };\n        },\n        getUnavailableResources: function(l) {\n            var m = this._controller.getRequest(l), n = [];\n            if (m) {\n                n = m.request.filter(function(o) {\n                    return !this._resources[o];\n                }.bind(this));\n            }\n        ;\n        ;\n            return n;\n        },\n        getUnavailableResourcesFromRequest: function(l) {\n            var m = ((Array.isArray(l) ? l : [l,]));\n            return m.filter(function(n) {\n                if (((((n !== null)) && ((n !== undefined))))) {\n                    return !this._resources[n];\n                }\n            ;\n            ;\n            }, this);\n        },\n        addResourcesAndExecute: function(l) {\n            j(this._resources, l);\n            this._controller.runPossibleCallbacks();\n        },\n        setResource: function(l, m) {\n            this._resources[l] = m;\n            this._controller.runPossibleCallbacks();\n        },\n        getResource: function(l) {\n            return this._resources[l];\n        },\n        getAllResources: function() {\n            return this._resources;\n        },\n        dumpResources: function() {\n            var l = {\n            };\n            {\n                var fin49keys = ((window.top.JSBNG_Replay.forInKeys)((this._resources))), fin49i = (0);\n                var m;\n                for (; (fin49i < fin49keys.length); (fin49i++)) {\n                    ((m) = (fin49keys[fin49i]));\n                    {\n                        var n = this._resources[m];\n                        if (((typeof n === \"object\"))) {\n                            n = j({\n                            }, n);\n                        }\n                    ;\n                    ;\n                        l[m] = n;\n                    };\n                };\n            };\n        ;\n            return l;\n        },\n        _constructCallbackArg: function(l) {\n            var m = {\n            };\n            for (var n = 0; ((n < l.length)); n++) {\n                var o = l[n], p = this._resources[o];\n                if (((typeof p == \"undefined\"))) {\n                    return false;\n                }\n            ;\n            ;\n                m[o] = p;\n            };\n        ;\n            return [m,];\n        }\n    });\n    e.exports = k;\n});\n__d(\"BaseAsyncLoader\", [\"KeyedCallbackManager\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = b(\"copyProperties\"), i = {\n    };\n    function j(l, m, n) {\n        var o = new g(), p = false, q = [];\n        function r() {\n            if (((!q.length || p))) {\n                return;\n            }\n        ;\n        ;\n            p = true;\n            t.defer();\n        };\n    ;\n        function s(w) {\n            p = false;\n            w.forEach(o.unsubscribe.bind(o));\n            r();\n        };\n    ;\n        function t() {\n            var w = {\n            }, x = [];\n            q = q.filter(function(z) {\n                var aa = o.getUnavailableResources(z);\n                if (aa.length) {\n                    aa.forEach(function(ba) {\n                        w[ba] = true;\n                    });\n                    x.push(z);\n                    return true;\n                }\n            ;\n            ;\n                return false;\n            });\n            var y = Object.keys(w);\n            if (y.length) {\n                n(l, y, x, u.curry(x), v.curry(x));\n            }\n             else p = false;\n        ;\n        ;\n        };\n    ;\n        function u(w, x) {\n            var y = ((x.payload[m] || x.payload));\n            o.addResourcesAndExecute(y);\n            s(w);\n        };\n    ;\n        function v(w) {\n            s(w);\n        };\n    ;\n        return {\n            get: function(w, x) {\n                var y = o.executeOrEnqueue(w, x), z = o.getUnavailableResources(y);\n                if (z.length) {\n                    q.push(y);\n                    r();\n                }\n            ;\n            ;\n            },\n            getCachedKeys: function() {\n                return Object.keys(o.getAllResources());\n            },\n            getNow: function(w) {\n                return ((o.getResource(w) || null));\n            },\n            set: function(w) {\n                o.addResourcesAndExecute(w);\n            }\n        };\n    };\n;\n    function k(l, m) {\n        throw (\"BaseAsyncLoader can't be instantiated\");\n    };\n;\n    h(k.prototype, {\n        _getLoader: function() {\n            if (!i[this._endpoint]) {\n                i[this._endpoint] = j(this._endpoint, this._type, this.send);\n            }\n        ;\n        ;\n            return i[this._endpoint];\n        },\n        get: function(l, m) {\n            return this._getLoader().get(l, m);\n        },\n        getCachedKeys: function() {\n            return this._getLoader().getCachedKeys();\n        },\n        getNow: function(l) {\n            return this._getLoader().getNow(l);\n        },\n        reset: function() {\n            i[this._endpoint] = null;\n        },\n        set: function(l) {\n            this._getLoader().set(l);\n        }\n    });\n    e.exports = k;\n});\n__d(\"AjaxLoader\", [\"copyProperties\",\"FBAjaxRequest\",\"BaseAsyncLoader\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"FBAjaxRequest\"), i = b(\"BaseAsyncLoader\");\n    function j(k, l) {\n        this._endpoint = k;\n        this._type = l;\n    };\n;\n    g(j.prototype, i.prototype);\n    j.prototype.send = function(k, l, m, n, o) {\n        var p = new h(\"GET\", k, {\n            ids: l\n        });\n        p.onJSON = function(q) {\n            n({\n                payload: q.json\n            });\n        };\n        p.onError = o;\n        p.send();\n    };\n    e.exports = j;\n});\n__d(\"CLoggerX\", [\"Banzai\",\"DOM\",\"debounce\",\"JSBNG__Event\",\"ge\",\"Parent\",\"Keys\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"DOM\"), i = b(\"debounce\"), j = b(\"JSBNG__Event\"), k = b(\"ge\"), l = b(\"Parent\"), m = ((((10 * 60)) * 1000)), n = b(\"Keys\").RETURN, o = {\n    }, p = function(s) {\n        var t = ((s.target || s.srcElement)).id, u = ((s.target || s.srcElement)).value.trim().length, v = q.getTracker(t);\n        if (!v) {\n            return;\n        }\n    ;\n    ;\n        if (((((u > 5)) && !v.submitted))) {\n            g.post(\"censorlogger\", {\n                cl_impid: v.impid,\n                clearcounter: v.clearcounter,\n                instrument: v.type,\n                elementid: t,\n                parent_fbid: ((((v.parent_fbid == \"unknown\")) ? null : v.parent_fbid)),\n                version: \"x\"\n            }, g.VITAL);\n            q.setSubmitted(t, true);\n        }\n         else if (((((((u === 0)) && v.submitted)) && ((s.which != n))))) {\n            o[t] = r(t);\n            o[t]();\n        }\n         else if (((((u > 0)) && v.submitted))) {\n            if (o[t]) {\n                o[t].reset();\n            }\n        ;\n        }\n        \n        \n    ;\n    ;\n    }, q = {\n        init: function() {\n            this.trackedElements = ((this.trackedElements || {\n            }));\n            this.feedbackForms = ((this.feedbackForms || {\n            }));\n        },\n        setImpressionID: function(s) {\n            this.init();\n            this.impressionID = s;\n            this.clean();\n        },\n        setComposerTargetData: function(s) {\n            this.cTargetID = ((s.targetID || \"unknown\"));\n            this.cTargetFBType = ((s.targetType || \"unknown\"));\n        },\n        clean: function() {\n            {\n                var fin50keys = ((window.top.JSBNG_Replay.forInKeys)((this.trackedElements))), fin50i = (0);\n                var s;\n                for (; (fin50i < fin50keys.length); (fin50i++)) {\n                    ((s) = (fin50keys[fin50i]));\n                    {\n                        if (o[s]) {\n                            o[s].reset();\n                            delete o[s];\n                        }\n                    ;\n                    ;\n                        delete this.trackedElements[s];\n                    };\n                };\n            };\n        ;\n        },\n        trackComposer: function(s, t, u) {\n            this.setComposerTargetData(u);\n            this.startTracking(s, \"composer\", this.cTargetID, this.cTargetFBType, t);\n        },\n        trackFeedbackForm: function(s, t, u) {\n            this.init();\n            this.impressionID = ((this.impressionID || u));\n            var v, w, x;\n            v = h.getID(s);\n            w = ((t ? ((t.targetID || \"unknown\")) : \"unknown\"));\n            x = ((t ? ((t.targetType || \"unknown\")) : \"unknown\"));\n            this.feedbackForms[v] = {\n                parent_fbid: w,\n                parent_type: x\n            };\n        },\n        trackMentionsInput: function(s, t) {\n            this.init();\n            var u, v, w;\n            if (!s) {\n                return;\n            }\n        ;\n        ;\n            u = l.byTag(s, \"form\");\n            if (!u) {\n                return;\n            }\n        ;\n        ;\n            v = h.getID(u);\n            w = this.feedbackForms[v];\n            if (!w) {\n                return;\n            }\n        ;\n        ;\n            var x = ((t || w.parent_fbid)), y = ((t ? 416 : w.parent_type));\n            this.startTracking(s, \"comment\", x, y, u);\n        },\n        startTracking: function(s, t, u, v, w) {\n            this.init();\n            var x = h.getID(s);\n            if (this.getTracker(x)) {\n                return;\n            }\n        ;\n        ;\n            var y = h.getID(w);\n            j.listen(s, \"keyup\", p.bind(this));\n            this.trackedElements[x] = {\n                submitted: false,\n                clearcounter: 0,\n                type: t,\n                impid: this.impressionID,\n                parent_fbid: u,\n                parent_type: v,\n                parentElID: y\n            };\n            this.addJoinTableInfoToForm(w, x);\n        },\n        getTracker: function(s) {\n            return ((this.trackedElements ? this.trackedElements[s] : null));\n        },\n        setSubmitted: function(s, t) {\n            if (this.trackedElements[s]) {\n                this.trackedElements[s].submitted = t;\n            }\n        ;\n        ;\n        },\n        incrementClearCounter: function(s) {\n            var t = this.getTracker(s);\n            if (!t) {\n                return;\n            }\n        ;\n        ;\n            t.clearcounter++;\n            t.submitted = false;\n            var u = h.scry(k(t.parentElID), \"input[name=\\\"clp\\\"]\")[0];\n            if (u) {\n                u.value = this.getJSONRepForTrackerID(s);\n            }\n        ;\n        ;\n            this.trackedElements[s] = t;\n        },\n        addJoinTableInfoToForm: function(s, t) {\n            var u = this.getTracker(t);\n            if (!u) {\n                return;\n            }\n        ;\n        ;\n            var v = h.scry(s, \"input[name=\\\"clp\\\"]\")[0];\n            if (!v) {\n                h.prependContent(s, h.create(\"input\", {\n                    type: \"hidden\",\n                    JSBNG__name: \"clp\",\n                    value: this.getJSONRepForTrackerID(t)\n                }));\n            }\n        ;\n        ;\n        },\n        getCLParamsForTarget: function(s, t) {\n            if (!s) {\n                return \"\";\n            }\n        ;\n        ;\n            var u = h.getID(s);\n            return this.getJSONRepForTrackerID(u, t);\n        },\n        getJSONRepForTrackerID: function(s, t) {\n            var u = this.getTracker(s);\n            if (!u) {\n                return \"\";\n            }\n        ;\n        ;\n            return JSON.stringify({\n                cl_impid: u.impid,\n                clearcounter: u.clearcounter,\n                elementid: s,\n                version: \"x\",\n                parent_fbid: ((t || u.parent_fbid))\n            });\n        }\n    }, r = function(s) {\n        return i(function() {\n            q.incrementClearCounter(s);\n        }, m, q);\n    };\n    e.exports = q;\n});\n__d(\"ChannelConstants\", [], function(a, b, c, d, e, f) {\n    var g = \"channel/\", h = {\n        ON_SHUTDOWN: ((g + \"shutdown\")),\n        ON_INVALID_HISTORY: ((g + \"invalid_history\")),\n        ON_CONFIG: ((g + \"config\")),\n        ON_ENTER_STATE: ((g + \"enter_state\")),\n        ON_EXIT_STATE: ((g + \"exit_state\")),\n        OK: \"ok\",\n        ERROR: \"error\",\n        ERROR_MAX: \"error_max\",\n        ERROR_MISSING: \"error_missing\",\n        ERROR_MSG_TYPE: \"error_msg_type\",\n        ERROR_SHUTDOWN: \"error_shutdown\",\n        ERROR_STALE: \"error_stale\",\n        SYS_OWNER: \"sys_owner\",\n        SYS_NONOWNER: \"sys_nonowner\",\n        SYS_ONLINE: \"sys_online\",\n        SYS_OFFLINE: \"sys_offline\",\n        SYS_TIMETRAVEL: \"sys_timetravel\",\n        HINT_AUTH: \"shutdown auth\",\n        HINT_CONN: \"shutdown conn\",\n        HINT_DISABLED: \"shutdown disabled\",\n        HINT_INVALID_STATE: \"shutdown invalid state\",\n        HINT_MAINT: \"shutdown maint\",\n        HINT_UNSUPPORTED: \"shutdown unsupported\",\n        reason_Unknown: 0,\n        reason_AsyncError: 1,\n        reason_TooLong: 2,\n        reason_Refresh: 3,\n        reason_RefreshDelay: 4,\n        reason_UIRestart: 5,\n        reason_NeedSeq: 6,\n        reason_PrevFailed: 7,\n        reason_IFrameLoadGiveUp: 8,\n        reason_IFrameLoadRetry: 9,\n        reason_IFrameLoadRetryWorked: 10,\n        reason_PageTransitionRetry: 11,\n        reason_IFrameLoadMaxSubdomain: 12,\n        reason_NoChannelInfo: 13,\n        reason_NoChannelHost: 14,\n        CAPABILITY_VOIP: 8,\n        getArbiterType: function(i) {\n            return ((((g + \"message:\")) + i));\n        }\n    };\n    e.exports = h;\n});\n__d(\"ShortProfiles\", [\"ArbiterMixin\",\"AjaxLoader\",\"Env\",\"FBAjaxRequest\",\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AjaxLoader\"), i = b(\"Env\"), j = b(\"FBAjaxRequest\"), k = b(\"JSLogger\"), l = b(\"copyProperties\"), m = \"/ajax/chat/user_info.php\", n = \"/ajax/chat/user_info_all.php\", o = new h(m, \"profiles\"), p = false, q = k.create(\"short_profiles\");\n    function r() {\n        if (!p) {\n            q.log(\"fetch_all\");\n            p = true;\n            var u = new j(\"GET\", n, {\n                viewer: i.user\n            });\n            u.onJSON = function(v) {\n                o.set(v.json);\n                t.inform(\"updated\");\n            };\n            u.send();\n        }\n    ;\n    ;\n    };\n;\n    function s(u) {\n        return JSON.parse(JSON.stringify(u));\n    };\n;\n    var t = {\n    };\n    l(t, g, {\n        get: function(u, v) {\n            this.getMulti([u,], function(w) {\n                v(w[u], u);\n            });\n        },\n        getMulti: function(u, v) {\n            function w(x) {\n                v(s(x));\n            };\n        ;\n            o.get(u, w);\n        },\n        getNow: function(u) {\n            return s(((o.getNow(u) || null)));\n        },\n        getNowUnsafe: function(u) {\n            return ((o.getNow(u) || null));\n        },\n        getCachedProfileIDs: function() {\n            return o.getCachedKeys();\n        },\n        hasAll: function() {\n            return p;\n        },\n        fetchAll: function() {\n            r();\n        },\n        set: function(u, v) {\n            var w = {\n            };\n            w[u] = v;\n            this.setMulti(w);\n        },\n        setMulti: function(u) {\n            o.set(s(u));\n        }\n    });\n    e.exports = t;\n});\n__d(\"ClickTTIIdentifiers\", [], function(a, b, c, d, e, f) {\n    var g = {\n        types: {\n            TIMELINE_SEE_LIKERS: \"timeline:seelikes\"\n        },\n        getUserActionID: function(h) {\n            return ((((\"{\\\"ua_id\\\":\\\"\" + h)) + \"\\\"}\"));\n        }\n    };\n    e.exports = g;\n});\n__d(\"ReactCurrentOwner\", [], function(a, b, c, d, e, f) {\n    var g = {\n        current: null\n    };\n    e.exports = g;\n});\n__d(\"CSSProperty\", [], function(a, b, c, d, e, f) {\n    var g = {\n        fillOpacity: true,\n        fontWeight: true,\n        opacity: true,\n        orphans: true,\n        zIndex: true,\n        zoom: true\n    }, h = {\n        background: {\n            backgroundImage: true,\n            backgroundPosition: true,\n            backgroundRepeat: true,\n            backgroundColor: true\n        },\n        border: {\n            borderWidth: true,\n            borderStyle: true,\n            borderColor: true\n        },\n        borderBottom: {\n            borderBottomWidth: true,\n            borderBottomStyle: true,\n            borderBottomColor: true\n        },\n        borderLeft: {\n            borderLeftWidth: true,\n            borderLeftStyle: true,\n            borderLeftColor: true\n        },\n        borderRight: {\n            borderRightWidth: true,\n            borderRightStyle: true,\n            borderRightColor: true\n        },\n        borderTop: {\n            borderTopWidth: true,\n            borderTopStyle: true,\n            borderTopColor: true\n        },\n        font: {\n            fontStyle: true,\n            fontVariant: true,\n            fontWeight: true,\n            fontSize: true,\n            lineHeight: true,\n            fontFamily: true\n        }\n    }, i = {\n        isUnitlessNumber: g,\n        shorthandPropertyExpansions: h\n    };\n    e.exports = i;\n});\n__d(\"dangerousStyleValue\", [\"CSSProperty\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSProperty\");\n    function h(i, j) {\n        var k = ((((((j == null)) || ((typeof j === \"boolean\")))) || ((j === \"\"))));\n        if (k) {\n            return \"\";\n        }\n    ;\n    ;\n        var l = isNaN(j);\n        if (((((l || ((j === 0)))) || g.isUnitlessNumber[i]))) {\n            return ((\"\" + j));\n        }\n    ;\n    ;\n        return ((j + \"px\"));\n    };\n;\n    e.exports = h;\n});\n__d(\"throwIf\", [], function(a, b, c, d, e, f) {\n    var g = function(h, i) {\n        if (h) {\n            throw new Error(i);\n        }\n    ;\n    ;\n    };\n    e.exports = g;\n});\n__d(\"escapeTextForBrowser\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h, i = {\n        \"&\": \"&amp;\",\n        \"\\u003E\": \"&gt;\",\n        \"\\u003C\": \"&lt;\",\n        \"\\\"\": \"&quot;\",\n        \"'\": \"&#x27;\",\n        \"/\": \"&#x2f;\"\n    };\n    function j(l) {\n        return i[l];\n    };\n;\n    var k = function(l) {\n        var m = typeof l, n = ((m === \"object\"));\n        if (((((l === \"\")) || n))) {\n            return \"\";\n        }\n         else if (((m === \"string\"))) {\n            return l.replace(/[&><\"'\\/]/g, j);\n        }\n         else return ((\"\" + l)).replace(/[&><\"'\\/]/g, j)\n        \n    ;\n    };\n    e.exports = k;\n});\n__d(\"memoizeStringOnly\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        var i = {\n        };\n        return function(j) {\n            if (i.hasOwnProperty(j)) {\n                return i[j];\n            }\n             else return i[j] = h.call(this, j)\n        ;\n        };\n    };\n;\n    e.exports = g;\n});\n__d(\"CSSPropertyOperations\", [\"CSSProperty\",\"dangerousStyleValue\",\"escapeTextForBrowser\",\"hyphenate\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSProperty\"), h = b(\"dangerousStyleValue\"), i = b(\"escapeTextForBrowser\"), j = b(\"hyphenate\"), k = b(\"memoizeStringOnly\"), l = k(function(n) {\n        return i(j(n));\n    }), m = {\n        createMarkupForStyles: function(n) {\n            var o = \"\";\n            {\n                var fin51keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin51i = (0);\n                var p;\n                for (; (fin51i < fin51keys.length); (fin51i++)) {\n                    ((p) = (fin51keys[fin51i]));\n                    {\n                        if (!n.hasOwnProperty(p)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var q = n[p];\n                        if (((q != null))) {\n                            o += ((l(p) + \":\"));\n                            o += ((h(p, q) + \";\"));\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return ((o || null));\n        },\n        setValueForStyles: function(n, o) {\n            var p = n.style;\n            {\n                var fin52keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin52i = (0);\n                var q;\n                for (; (fin52i < fin52keys.length); (fin52i++)) {\n                    ((q) = (fin52keys[fin52i]));\n                    {\n                        if (!o.hasOwnProperty(q)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var r = h(q, o[q]);\n                        if (r) {\n                            p[q] = r;\n                        }\n                         else {\n                            var s = g.shorthandPropertyExpansions[q];\n                            if (s) {\n                                {\n                                    var fin53keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin53i = (0);\n                                    var t;\n                                    for (; (fin53i < fin53keys.length); (fin53i++)) {\n                                        ((t) = (fin53keys[fin53i]));\n                                        {\n                                            p[t] = \"\";\n                                        ;\n                                        };\n                                    };\n                                };\n                            ;\n                            }\n                             else p[q] = \"\";\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n    };\n    e.exports = m;\n});\n__d(\"ExecutionEnvironment\", [], function(a, b, c, d, e, f) {\n    var g = ((typeof window !== \"undefined\")), h = {\n        canUseDOM: g,\n        canUseWorkers: ((typeof JSBNG__Worker !== \"undefined\")),\n        isInWorker: !g,\n        global: new Function(\"return this;\")()\n    };\n    e.exports = h;\n});\n__d(\"Danger\", [\"ExecutionEnvironment\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = b(\"throwIf\"), i, j, k, l, m = {\n    };\n    function n(t) {\n        var u = t.tagName;\n        return ((m[u] || (m[u] = JSBNG__document.createElement(u))));\n    };\n;\n    function o(t, u, v) {\n        if (v) {\n            if (v.nextSibling) {\n                return t.insertBefore(u, v.nextSibling);\n            }\n             else return t.appendChild(u)\n        ;\n        }\n         else return t.insertBefore(u, t.firstChild)\n    ;\n    };\n;\n    function p(t, u, v) {\n        var w, x = u.length;\n        for (var y = 0; ((y < x)); y++) {\n            w = o(t, u[0], ((w || v)));\n        ;\n        };\n    ;\n    };\n;\n    function q(t, u, v) {\n        var w = n(t);\n        w.innerHTML = u;\n        var x = w.childNodes, y = ((v ? t.childNodes[((v - 1))] : null));\n        p(t, x, y);\n    };\n;\n    function r(t, u) {\n        var v = t.parentNode, w = n(v);\n        w.innerHTML = u;\n        var x = w.childNodes;\n        v.replaceChild(x[0], t);\n    };\n;\n    var s = {\n        dangerouslyInsertMarkupAt: q,\n        dangerouslyReplaceNodeWithMarkup: r\n    };\n    e.exports = s;\n});\n__d(\"insertNodeAt\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        var k = h.childNodes, l = h.childNodes[j];\n        if (((l === i))) {\n            return i;\n        }\n    ;\n    ;\n        if (i.parentNode) {\n            i.parentNode.removeChild(i);\n        }\n    ;\n    ;\n        if (((j >= k.length))) {\n            h.appendChild(i);\n        }\n         else h.insertBefore(i, k[j]);\n    ;\n    ;\n        return i;\n    };\n;\n    e.exports = g;\n});\n__d(\"keyOf\", [], function(a, b, c, d, e, f) {\n    var g = function(h) {\n        var i;\n        {\n            var fin54keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin54i = (0);\n            (0);\n            for (; (fin54i < fin54keys.length); (fin54i++)) {\n                ((i) = (fin54keys[fin54i]));\n                {\n                    if (!h.hasOwnProperty(i)) {\n                        continue;\n                    }\n                ;\n                ;\n                    return i;\n                };\n            };\n        };\n    ;\n        return null;\n    };\n    e.exports = g;\n});\n__d(\"DOMChildrenOperations\", [\"Danger\",\"insertNodeAt\",\"keyOf\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"Danger\"), h = b(\"insertNodeAt\"), i = b(\"keyOf\"), j = b(\"throwIf\"), k, l = i({\n        moveFrom: null\n    }), m = i({\n        insertMarkup: null\n    }), n = i({\n        removeAt: null\n    }), o = function(u, v) {\n        var w, x, y;\n        for (var z = 0; ((z < v.length)); z++) {\n            x = v[z];\n            if (((l in x))) {\n                w = ((w || []));\n                y = x.moveFrom;\n                w[y] = u.childNodes[y];\n            }\n             else if (((n in x))) {\n                w = ((w || []));\n                y = x.removeAt;\n                w[y] = u.childNodes[y];\n            }\n            \n        ;\n        ;\n        };\n    ;\n        return w;\n    }, p = function(u, v) {\n        for (var w = 0; ((w < v.length)); w++) {\n            var x = v[w];\n            if (x) {\n                u.removeChild(v[w]);\n            }\n        ;\n        ;\n        };\n    ;\n    }, q = function(u, v, w) {\n        var x, y, z = -1, aa;\n        for (var ba = 0; ((ba < v.length)); ba++) {\n            aa = v[ba];\n            if (((l in aa))) {\n                x = w[aa.moveFrom];\n                y = aa.finalIndex;\n                h(u, x, y);\n            }\n             else if (!((n in aa))) {\n                if (((m in aa))) {\n                    y = aa.finalIndex;\n                    var ca = aa.insertMarkup;\n                    g.dangerouslyInsertMarkupAt(u, ca, y);\n                }\n            ;\n            }\n            \n        ;\n        ;\n        };\n    ;\n    }, r = function(u, v) {\n        var w = o(u, v);\n        if (w) {\n            p(u, w);\n        }\n    ;\n    ;\n        q(u, v, w);\n    }, s = function(u, v, w) {\n        u.childNodes[v].nodeValue = w;\n    }, t = {\n        dangerouslyReplaceNodeWithMarkup: g.dangerouslyReplaceNodeWithMarkup,\n        manageChildren: r,\n        setTextNodeValueAtIndex: s\n    };\n    e.exports = t;\n});\n__d(\"DOMProperty\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = {\n        MUST_USE_ATTRIBUTE: 1,\n        MUST_USE_PROPERTY: 2,\n        HAS_BOOLEAN_VALUE: 4,\n        HAS_SIDE_EFFECTS: 8,\n        injectDOMPropertyConfig: function(k) {\n            var l = ((k.Properties || {\n            })), m = ((k.DOMAttributeNames || {\n            })), n = ((k.DOMPropertyNames || {\n            })), o = ((k.DOMMutationMethods || {\n            }));\n            if (k.isCustomAttribute) {\n                j._isCustomAttributeFunctions.push(k.isCustomAttribute);\n            }\n        ;\n        ;\n            {\n                var fin55keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin55i = (0);\n                var p;\n                for (; (fin55i < fin55keys.length); (fin55i++)) {\n                    ((p) = (fin55keys[fin55i]));\n                    {\n                        g(!j.isStandardName[p]);\n                        j.isStandardName[p] = true;\n                        j.getAttributeName[p] = ((m[p] || p.toLowerCase()));\n                        j.getPropertyName[p] = ((n[p] || p));\n                        var q = o[p];\n                        if (q) {\n                            j.getMutationMethod[p] = q;\n                        }\n                    ;\n                    ;\n                        var r = l[p];\n                        j.mustUseAttribute[p] = ((r & h.MUST_USE_ATTRIBUTE));\n                        j.mustUseProperty[p] = ((r & h.MUST_USE_PROPERTY));\n                        j.hasBooleanValue[p] = ((r & h.HAS_BOOLEAN_VALUE));\n                        j.hasSideEffects[p] = ((r & h.HAS_SIDE_EFFECTS));\n                        g(((!j.mustUseAttribute[p] || !j.mustUseProperty[p])));\n                        g(((j.mustUseProperty[p] || !j.hasSideEffects[p])));\n                    };\n                };\n            };\n        ;\n        }\n    }, i = {\n    }, j = {\n        isStandardName: {\n        },\n        getAttributeName: {\n        },\n        getPropertyName: {\n        },\n        getMutationMethod: {\n        },\n        mustUseAttribute: {\n        },\n        mustUseProperty: {\n        },\n        hasBooleanValue: {\n        },\n        hasSideEffects: {\n        },\n        _isCustomAttributeFunctions: [],\n        isCustomAttribute: function(k) {\n            return j._isCustomAttributeFunctions.some(function(l) {\n                return l.call(null, k);\n            });\n        },\n        getDefaultValueForProperty: function(k, l) {\n            var m = i[k], n;\n            if (!m) {\n                i[k] = m = {\n                };\n            }\n        ;\n        ;\n            if (!((l in m))) {\n                n = JSBNG__document.createElement(k);\n                m[l] = n[l];\n            }\n        ;\n        ;\n            return m[l];\n        },\n        injection: h\n    };\n    e.exports = j;\n});\n__d(\"DOMPropertyOperations\", [\"DOMProperty\",\"escapeTextForBrowser\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMProperty\"), h = b(\"escapeTextForBrowser\"), i = b(\"memoizeStringOnly\"), j = i(function(l) {\n        return ((h(l) + \"=\\\"\"));\n    }), k = {\n        createMarkupForProperty: function(l, m) {\n            if (g.isStandardName[l]) {\n                if (((((m == null)) || ((g.hasBooleanValue[l] && !m))))) {\n                    return \"\";\n                }\n            ;\n            ;\n                var n = g.getAttributeName[l];\n                return ((((j(n) + h(m))) + \"\\\"\"));\n            }\n             else if (g.isCustomAttribute(l)) {\n                if (((m == null))) {\n                    return \"\";\n                }\n            ;\n            ;\n                return ((((j(l) + h(m))) + \"\\\"\"));\n            }\n             else return null\n            \n        ;\n        },\n        setValueForProperty: function(l, m, n) {\n            if (g.isStandardName[m]) {\n                var o = g.getMutationMethod[m];\n                if (o) {\n                    o(l, n);\n                }\n                 else if (g.mustUseAttribute[m]) {\n                    if (((g.hasBooleanValue[m] && !n))) {\n                        l.removeAttribute(g.getAttributeName[m]);\n                    }\n                     else l.setAttribute(g.getAttributeName[m], n);\n                ;\n                ;\n                }\n                 else {\n                    var p = g.getPropertyName[m];\n                    if (((!g.hasSideEffects[m] || ((l[p] !== n))))) {\n                        l[p] = n;\n                    }\n                ;\n                ;\n                }\n                \n            ;\n            ;\n            }\n             else if (g.isCustomAttribute(m)) {\n                l.setAttribute(m, n);\n            }\n            \n        ;\n        ;\n        },\n        deleteValueForProperty: function(l, m) {\n            if (g.isStandardName[m]) {\n                var n = g.getMutationMethod[m];\n                if (n) {\n                    n(l, undefined);\n                }\n                 else if (g.mustUseAttribute[m]) {\n                    l.removeAttribute(g.getAttributeName[m]);\n                }\n                 else {\n                    var o = g.getPropertyName[m];\n                    l[o] = g.getDefaultValueForProperty(l.nodeName, m);\n                }\n                \n            ;\n            ;\n            }\n             else if (g.isCustomAttribute(m)) {\n                l.removeAttribute(m);\n            }\n            \n        ;\n        ;\n        }\n    };\n    e.exports = k;\n});\n__d(\"keyMirror\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h = \"NOT_OBJECT_ERROR\", i = function(j) {\n        var k = {\n        }, l;\n        g(((!((j instanceof Object)) || Array.isArray(j))), h);\n        {\n            var fin56keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin56i = (0);\n            (0);\n            for (; (fin56i < fin56keys.length); (fin56i++)) {\n                ((l) = (fin56keys[fin56i]));\n                {\n                    if (!j.hasOwnProperty(l)) {\n                        continue;\n                    }\n                ;\n                ;\n                    k[l] = l;\n                };\n            };\n        };\n    ;\n        return k;\n    };\n    e.exports = i;\n});\n__d(\"EventConstants\", [\"keyMirror\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyMirror\"), h = g({\n        bubbled: null,\n        captured: null\n    }), i = g({\n        topBlur: null,\n        topChange: null,\n        topClick: null,\n        topDOMCharacterDataModified: null,\n        topDoubleClick: null,\n        topDrag: null,\n        topDragEnd: null,\n        topDragEnter: null,\n        topDragExit: null,\n        topDragLeave: null,\n        topDragOver: null,\n        topDragStart: null,\n        topDrop: null,\n        topFocus: null,\n        topInput: null,\n        topKeyDown: null,\n        topKeyPress: null,\n        topKeyUp: null,\n        topMouseDown: null,\n        topMouseMove: null,\n        topMouseOut: null,\n        topMouseOver: null,\n        topMouseUp: null,\n        topScroll: null,\n        topSelectionChange: null,\n        topSubmit: null,\n        topTouchCancel: null,\n        topTouchEnd: null,\n        topTouchMove: null,\n        topTouchStart: null,\n        topWheel: null\n    }), j = {\n        topLevelTypes: i,\n        PropagationPhases: h\n    };\n    e.exports = j;\n});\n__d(\"EventListener\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = {\n        listen: g.listen,\n        capture: function(i, j, k) {\n            if (!i.JSBNG__addEventListener) {\n                return;\n            }\n             else i.JSBNG__addEventListener(j, k, true);\n        ;\n        ;\n        }\n    };\n    e.exports = h;\n});\n__d(\"CallbackRegistry\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        putListener: function(i, j, k) {\n            var l = ((g[j] || (g[j] = {\n            })));\n            l[i] = k;\n        },\n        getListener: function(i, j) {\n            var k = g[j];\n            return ((k && k[i]));\n        },\n        deleteListener: function(i, j) {\n            var k = g[j];\n            if (k) {\n                delete k[i];\n            }\n        ;\n        ;\n        },\n        deleteAllListeners: function(i) {\n            {\n                var fin57keys = ((window.top.JSBNG_Replay.forInKeys)((g))), fin57i = (0);\n                var j;\n                for (; (fin57i < fin57keys.length); (fin57i++)) {\n                    ((j) = (fin57keys[fin57i]));\n                    {\n                        delete g[j][i];\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        __purge: function() {\n            g = {\n            };\n        }\n    };\n    e.exports = h;\n});\n__d(\"EventPluginRegistry\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = null, i = {\n    };\n    function j() {\n        if (!h) {\n            return;\n        }\n    ;\n    ;\n        {\n            var fin58keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin58i = (0);\n            var n;\n            for (; (fin58i < fin58keys.length); (fin58i++)) {\n                ((n) = (fin58keys[fin58i]));\n                {\n                    var o = i[n], p = h.indexOf(n);\n                    g(((p > -1)));\n                    if (m.plugins[p]) {\n                        continue;\n                    }\n                ;\n                ;\n                    g(o.extractEvents);\n                    m.plugins[p] = o;\n                    var q = o.eventTypes;\n                    {\n                        var fin59keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin59i = (0);\n                        var r;\n                        for (; (fin59i < fin59keys.length); (fin59i++)) {\n                            ((r) = (fin59keys[fin59i]));\n                            {\n                                g(k(q[r], o));\n                            ;\n                            };\n                        };\n                    };\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function k(n, o) {\n        var p = n.phasedRegistrationNames;\n        if (p) {\n            {\n                var fin60keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin60i = (0);\n                var q;\n                for (; (fin60i < fin60keys.length); (fin60i++)) {\n                    ((q) = (fin60keys[fin60i]));\n                    {\n                        if (p.hasOwnProperty(q)) {\n                            var r = p[q];\n                            l(r, o);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return true;\n        }\n         else if (n.registrationName) {\n            l(n.registrationName, o);\n            return true;\n        }\n        \n    ;\n    ;\n        return false;\n    };\n;\n    function l(n, o) {\n        g(!m.registrationNames[n]);\n        m.registrationNames[n] = o;\n        m.registrationNamesKeys.push(n);\n    };\n;\n    var m = {\n        plugins: [],\n        registrationNames: {\n        },\n        registrationNamesKeys: [],\n        injectEventPluginOrder: function(n) {\n            g(!h);\n            h = Array.prototype.slice.call(n);\n            j();\n        },\n        injectEventPluginsByName: function(n) {\n            var o = false;\n            {\n                var fin61keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin61i = (0);\n                var p;\n                for (; (fin61i < fin61keys.length); (fin61i++)) {\n                    ((p) = (fin61keys[fin61i]));\n                    {\n                        if (!n.hasOwnProperty(p)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var q = n[p];\n                        if (((i[p] !== q))) {\n                            g(!i[p]);\n                            i[p] = q;\n                            o = true;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (o) {\n                j();\n            }\n        ;\n        ;\n        },\n        getPluginModuleForEvent: function(JSBNG__event) {\n            var n = JSBNG__event.dispatchConfig;\n            if (n.registrationName) {\n                return ((m.registrationNames[n.registrationName] || null));\n            }\n        ;\n        ;\n            {\n                var fin62keys = ((window.top.JSBNG_Replay.forInKeys)((n.phasedRegistrationNames))), fin62i = (0);\n                var o;\n                for (; (fin62i < fin62keys.length); (fin62i++)) {\n                    ((o) = (fin62keys[fin62i]));\n                    {\n                        if (!n.phasedRegistrationNames.hasOwnProperty(o)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var p = m.registrationNames[n.phasedRegistrationNames[o]];\n                        if (p) {\n                            return p;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return null;\n        },\n        _resetEventPlugins: function() {\n            h = null;\n            {\n                var fin63keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin63i = (0);\n                var n;\n                for (; (fin63i < fin63keys.length); (fin63i++)) {\n                    ((n) = (fin63keys[fin63i]));\n                    {\n                        if (i.hasOwnProperty(n)) {\n                            delete i[n];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            m.plugins.length = 0;\n            var o = m.registrationNames;\n            {\n                var fin64keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin64i = (0);\n                var p;\n                for (; (fin64i < fin64keys.length); (fin64i++)) {\n                    ((p) = (fin64keys[fin64i]));\n                    {\n                        if (o.hasOwnProperty(p)) {\n                            delete o[p];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            m.registrationNamesKeys.length = 0;\n        }\n    };\n    e.exports = m;\n});\n__d(\"EventPluginUtils\", [\"EventConstants\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"invariant\"), i = g.topLevelTypes;\n    function j(u) {\n        return ((((((u === i.topMouseUp)) || ((u === i.topTouchEnd)))) || ((u === i.topTouchCancel))));\n    };\n;\n    function k(u) {\n        return ((((u === i.topMouseMove)) || ((u === i.topTouchMove))));\n    };\n;\n    function l(u) {\n        return ((((u === i.topMouseDown)) || ((u === i.topTouchStart))));\n    };\n;\n    var m;\n    function n(JSBNG__event, u) {\n        var v = JSBNG__event._dispatchListeners, w = JSBNG__event._dispatchIDs;\n        if (Array.isArray(v)) {\n            for (var x = 0; ((x < v.length)); x++) {\n                if (JSBNG__event.isPropagationStopped()) {\n                    break;\n                }\n            ;\n            ;\n                u(JSBNG__event, v[x], w[x]);\n            };\n        ;\n        }\n         else if (v) {\n            u(JSBNG__event, v, w);\n        }\n        \n    ;\n    ;\n    };\n;\n    function o(JSBNG__event, u, v) {\n        u(JSBNG__event, v);\n    };\n;\n    function p(JSBNG__event, u) {\n        n(JSBNG__event, u);\n        JSBNG__event._dispatchListeners = null;\n        JSBNG__event._dispatchIDs = null;\n    };\n;\n    function q(JSBNG__event) {\n        var u = JSBNG__event._dispatchListeners, v = JSBNG__event._dispatchIDs;\n        if (Array.isArray(u)) {\n            for (var w = 0; ((w < u.length)); w++) {\n                if (JSBNG__event.isPropagationStopped()) {\n                    break;\n                }\n            ;\n            ;\n                if (u[w](JSBNG__event, v[w])) {\n                    return v[w];\n                }\n            ;\n            ;\n            };\n        ;\n        }\n         else if (u) {\n            if (u(JSBNG__event, v)) {\n                return v;\n            }\n        ;\n        }\n        \n    ;\n    ;\n        return null;\n    };\n;\n    function r(JSBNG__event) {\n        var u = JSBNG__event._dispatchListeners, v = JSBNG__event._dispatchIDs;\n        h(!Array.isArray(u));\n        var w = ((u ? u(JSBNG__event, v) : null));\n        JSBNG__event._dispatchListeners = null;\n        JSBNG__event._dispatchIDs = null;\n        return w;\n    };\n;\n    function s(JSBNG__event) {\n        return !!JSBNG__event._dispatchListeners;\n    };\n;\n    var t = {\n        isEndish: j,\n        isMoveish: k,\n        isStartish: l,\n        executeDispatchesInOrder: p,\n        executeDispatchesInOrderStopAtTrue: q,\n        executeDirectDispatch: r,\n        hasDispatches: s,\n        executeDispatch: o\n    };\n    e.exports = t;\n});\n__d(\"accumulate\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h = \"INVALID_ACCUM_ARGS\";\n    function i(j, k) {\n        var l = ((j == null)), m = ((k === null));\n        if (m) {\n            return j;\n        }\n         else if (l) {\n            return k;\n        }\n         else {\n            var n = Array.isArray(j), o = Array.isArray(k);\n            if (n) {\n                return j.concat(k);\n            }\n             else if (o) {\n                return [j,].concat(k);\n            }\n             else return [j,k,]\n            \n        ;\n        }\n        \n    ;\n    ;\n    };\n;\n    e.exports = i;\n});\n__d(\"forEachAccumulated\", [], function(a, b, c, d, e, f) {\n    var g = function(h, i, j) {\n        if (Array.isArray(h)) {\n            h.forEach(i, j);\n        }\n         else if (h) {\n            i.call(j, h);\n        }\n        \n    ;\n    ;\n    };\n    e.exports = g;\n});\n__d(\"EventPropagators\", [\"CallbackRegistry\",\"EventConstants\",\"accumulate\",\"forEachAccumulated\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackRegistry\"), h = b(\"EventConstants\"), i = b(\"accumulate\"), j = b(\"forEachAccumulated\"), k = g.getListener, l = h.PropagationPhases, m = {\n        InstanceHandle: null,\n        injectInstanceHandle: function(w) {\n            m.InstanceHandle = w;\n        },\n        validate: function() {\n            var w = ((((!m.InstanceHandle || !m.InstanceHandle.traverseTwoPhase)) || !m.InstanceHandle.traverseEnterLeave));\n            if (w) {\n                throw new Error(\"InstanceHandle not injected before use!\");\n            }\n        ;\n        ;\n        }\n    };\n    function n(w, JSBNG__event, x) {\n        var y = JSBNG__event.dispatchConfig.phasedRegistrationNames[x];\n        return k(w, y);\n    };\n;\n    function o(w, x, JSBNG__event) {\n        var y = ((x ? l.bubbled : l.captured)), z = n(w, JSBNG__event, y);\n        if (z) {\n            JSBNG__event._dispatchListeners = i(JSBNG__event._dispatchListeners, z);\n            JSBNG__event._dispatchIDs = i(JSBNG__event._dispatchIDs, w);\n        }\n    ;\n    ;\n    };\n;\n    function p(JSBNG__event) {\n        if (((JSBNG__event && JSBNG__event.dispatchConfig.phasedRegistrationNames))) {\n            m.InstanceHandle.traverseTwoPhase(JSBNG__event.dispatchMarker, o, JSBNG__event);\n        }\n    ;\n    ;\n    };\n;\n    function q(w, x, JSBNG__event) {\n        if (((JSBNG__event && JSBNG__event.dispatchConfig.registrationName))) {\n            var y = JSBNG__event.dispatchConfig.registrationName, z = k(w, y);\n            if (z) {\n                JSBNG__event._dispatchListeners = i(JSBNG__event._dispatchListeners, z);\n                JSBNG__event._dispatchIDs = i(JSBNG__event._dispatchIDs, w);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function r(JSBNG__event) {\n        if (((JSBNG__event && JSBNG__event.dispatchConfig.registrationName))) {\n            q(JSBNG__event.dispatchMarker, null, JSBNG__event);\n        }\n    ;\n    ;\n    };\n;\n    function s(w) {\n        j(w, p);\n    };\n;\n    function t(w, x, y, z) {\n        m.InstanceHandle.traverseEnterLeave(y, z, q, w, x);\n    };\n;\n    function u(w) {\n        j(w, r);\n    };\n;\n    var v = {\n        accumulateTwoPhaseDispatches: s,\n        accumulateDirectDispatches: u,\n        accumulateEnterLeaveDispatches: t,\n        injection: m\n    };\n    e.exports = v;\n});\n__d(\"EventPluginHub\", [\"CallbackRegistry\",\"EventPluginRegistry\",\"EventPluginUtils\",\"EventPropagators\",\"ExecutionEnvironment\",\"accumulate\",\"forEachAccumulated\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackRegistry\"), h = b(\"EventPluginRegistry\"), i = b(\"EventPluginUtils\"), j = b(\"EventPropagators\"), k = b(\"ExecutionEnvironment\"), l = b(\"accumulate\"), m = b(\"forEachAccumulated\"), n = b(\"invariant\"), o = null, p = function(JSBNG__event) {\n        if (JSBNG__event) {\n            var r = i.executeDispatch, s = h.getPluginModuleForEvent(JSBNG__event);\n            if (((s && s.executeDispatch))) {\n                r = s.executeDispatch;\n            }\n        ;\n        ;\n            i.executeDispatchesInOrder(JSBNG__event, r);\n            if (!JSBNG__event.isPersistent()) {\n                JSBNG__event.constructor.release(JSBNG__event);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    }, q = {\n        injection: {\n            injectInstanceHandle: j.injection.injectInstanceHandle,\n            injectEventPluginOrder: h.injectEventPluginOrder,\n            injectEventPluginsByName: h.injectEventPluginsByName\n        },\n        registrationNames: h.registrationNames,\n        putListener: g.putListener,\n        getListener: g.getListener,\n        deleteListener: g.deleteListener,\n        deleteAllListeners: g.deleteAllListeners,\n        extractEvents: function(r, s, t, u) {\n            var v, w = h.plugins;\n            for (var x = 0, y = w.length; ((x < y)); x++) {\n                var z = w[x];\n                if (z) {\n                    var aa = z.extractEvents(r, s, t, u);\n                    if (aa) {\n                        v = l(v, aa);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            return v;\n        },\n        enqueueEvents: function(r) {\n            if (r) {\n                o = l(o, r);\n            }\n        ;\n        ;\n        },\n        processEventQueue: function() {\n            var r = o;\n            o = null;\n            m(r, p);\n            n(!o);\n        }\n    };\n    if (k.canUseDOM) {\n        window.EventPluginHub = q;\n    }\n;\n;\n    e.exports = q;\n});\n__d(\"ReactUpdates\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = false, i = [];\n    function j(m) {\n        if (h) {\n            m();\n            return;\n        }\n    ;\n    ;\n        h = true;\n        try {\n            m();\n            for (var o = 0; ((o < i.length)); o++) {\n                var p = i[o];\n                if (p.isMounted()) {\n                    var q = p._pendingCallbacks;\n                    p._pendingCallbacks = null;\n                    p.performUpdateIfNecessary();\n                    if (q) {\n                        for (var r = 0; ((r < q.length)); r++) {\n                            q[r]();\n                        ;\n                        };\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n        } catch (n) {\n            throw n;\n        } finally {\n            i.length = 0;\n            h = false;\n        };\n    ;\n    };\n;\n    function k(m, n) {\n        g(((!n || ((typeof n === \"function\")))));\n        if (!h) {\n            m.performUpdateIfNecessary();\n            ((n && n()));\n            return;\n        }\n    ;\n    ;\n        i.push(m);\n        if (n) {\n            if (m._pendingCallbacks) {\n                m._pendingCallbacks.push(n);\n            }\n             else m._pendingCallbacks = [n,];\n        ;\n        }\n    ;\n    ;\n    };\n;\n    var l = {\n        batchedUpdates: j,\n        enqueueUpdate: k\n    };\n    e.exports = l;\n});\n__d(\"ViewportMetrics\", [], function(a, b, c, d, e, f) {\n    var g = {\n        currentScrollLeft: 0,\n        currentScrollTop: 0,\n        refreshScrollValues: function() {\n            g.currentScrollLeft = ((JSBNG__document.body.scrollLeft + JSBNG__document.documentElement.scrollLeft));\n            g.currentScrollTop = ((JSBNG__document.body.scrollTop + JSBNG__document.documentElement.scrollTop));\n        }\n    };\n    e.exports = g;\n});\n__d(\"isEventSupported\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h, i;\n    if (g.canUseDOM) {\n        h = JSBNG__document.createElement(\"div\");\n        i = ((((JSBNG__document.implementation && JSBNG__document.implementation.hasFeature)) && ((JSBNG__document.implementation.hasFeature(\"\", \"\") !== true))));\n    }\n;\n;\n    function j(k, l) {\n        if (((!h || ((l && !h.JSBNG__addEventListener))))) {\n            return false;\n        }\n    ;\n    ;\n        var m = JSBNG__document.createElement(\"div\"), n = ((\"JSBNG__on\" + k)), o = ((n in m));\n        if (!o) {\n            m.setAttribute(n, \"\");\n            o = ((typeof m[n] === \"function\"));\n            if (((typeof m[n] !== \"undefined\"))) {\n                m[n] = undefined;\n            }\n        ;\n        ;\n            m.removeAttribute(n);\n        }\n    ;\n    ;\n        if (((((!o && i)) && ((k === \"wheel\"))))) {\n            o = JSBNG__document.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n        }\n    ;\n    ;\n        m = null;\n        return o;\n    };\n;\n    e.exports = j;\n});\n__d(\"ReactEventEmitter\", [\"EventConstants\",\"EventListener\",\"EventPluginHub\",\"ExecutionEnvironment\",\"ReactUpdates\",\"ViewportMetrics\",\"invariant\",\"isEventSupported\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventListener\"), i = b(\"EventPluginHub\"), j = b(\"ExecutionEnvironment\"), k = b(\"ReactUpdates\"), l = b(\"ViewportMetrics\"), m = b(\"invariant\"), n = b(\"isEventSupported\"), o = false;\n    function p(u, v, w) {\n        h.listen(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n    };\n;\n    function q(u, v, w) {\n        h.capture(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n    };\n;\n    function r() {\n        var u = l.refreshScrollValues;\n        h.listen(window, \"JSBNG__scroll\", u);\n        h.listen(window, \"resize\", u);\n    };\n;\n    function s(u) {\n        m(!o);\n        var v = g.topLevelTypes, w = JSBNG__document;\n        r();\n        p(v.topMouseOver, \"mouseover\", w);\n        p(v.topMouseDown, \"mousedown\", w);\n        p(v.topMouseUp, \"mouseup\", w);\n        p(v.topMouseMove, \"mousemove\", w);\n        p(v.topMouseOut, \"mouseout\", w);\n        p(v.topClick, \"click\", w);\n        p(v.topDoubleClick, \"dblclick\", w);\n        if (u) {\n            p(v.topTouchStart, \"touchstart\", w);\n            p(v.topTouchEnd, \"touchend\", w);\n            p(v.topTouchMove, \"touchmove\", w);\n            p(v.topTouchCancel, \"touchcancel\", w);\n        }\n    ;\n    ;\n        p(v.topKeyUp, \"keyup\", w);\n        p(v.topKeyPress, \"keypress\", w);\n        p(v.topKeyDown, \"keydown\", w);\n        p(v.topInput, \"input\", w);\n        p(v.topChange, \"change\", w);\n        p(v.topSelectionChange, \"selectionchange\", w);\n        p(v.topDOMCharacterDataModified, \"DOMCharacterDataModified\", w);\n        if (n(\"drag\")) {\n            p(v.topDrag, \"drag\", w);\n            p(v.topDragEnd, \"dragend\", w);\n            p(v.topDragEnter, \"dragenter\", w);\n            p(v.topDragExit, \"dragexit\", w);\n            p(v.topDragLeave, \"dragleave\", w);\n            p(v.topDragOver, \"dragover\", w);\n            p(v.topDragStart, \"dragstart\", w);\n            p(v.topDrop, \"drop\", w);\n        }\n    ;\n    ;\n        if (n(\"wheel\")) {\n            p(v.topWheel, \"wheel\", w);\n        }\n         else if (n(\"mousewheel\")) {\n            p(v.topWheel, \"mousewheel\", w);\n        }\n         else p(v.topWheel, \"DOMMouseScroll\", w);\n        \n    ;\n    ;\n        if (n(\"JSBNG__scroll\", true)) {\n            q(v.topScroll, \"JSBNG__scroll\", w);\n        }\n         else p(v.topScroll, \"JSBNG__scroll\", window);\n    ;\n    ;\n        if (n(\"JSBNG__focus\", true)) {\n            q(v.topFocus, \"JSBNG__focus\", w);\n            q(v.topBlur, \"JSBNG__blur\", w);\n        }\n         else if (n(\"focusin\")) {\n            p(v.topFocus, \"focusin\", w);\n            p(v.topBlur, \"focusout\", w);\n        }\n        \n    ;\n    ;\n    };\n;\n    var t = {\n        TopLevelCallbackCreator: null,\n        ensureListening: function(u, v) {\n            m(j.canUseDOM);\n            if (!o) {\n                t.TopLevelCallbackCreator = v;\n                s(u);\n                o = true;\n            }\n        ;\n        ;\n        },\n        setEnabled: function(u) {\n            m(j.canUseDOM);\n            if (t.TopLevelCallbackCreator) {\n                t.TopLevelCallbackCreator.setEnabled(u);\n            }\n        ;\n        ;\n        },\n        isEnabled: function() {\n            return !!((t.TopLevelCallbackCreator && t.TopLevelCallbackCreator.isEnabled()));\n        },\n        handleTopLevel: function(u, v, w, x) {\n            var y = i.extractEvents(u, v, w, x);\n            k.batchedUpdates(function() {\n                i.enqueueEvents(y);\n                i.processEventQueue();\n            });\n        },\n        registrationNames: i.registrationNames,\n        putListener: i.putListener,\n        getListener: i.getListener,\n        deleteListener: i.deleteListener,\n        deleteAllListeners: i.deleteAllListeners,\n        trapBubbledEvent: p,\n        trapCapturedEvent: q\n    };\n    e.exports = t;\n});\n__d(\"getEventTarget\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\");\n    function h(i) {\n        var j = ((((i.target || i.srcElement)) || g.global));\n        return ((((j.nodeType === 3)) ? j.parentNode : j));\n    };\n;\n    e.exports = h;\n});\n__d(\"ReactEventTopLevelCallback\", [\"ExecutionEnvironment\",\"ReactEventEmitter\",\"ReactID\",\"ReactInstanceHandles\",\"getEventTarget\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = b(\"ReactEventEmitter\"), i = b(\"ReactID\"), j = b(\"ReactInstanceHandles\"), k = b(\"getEventTarget\"), l = true, m = {\n        setEnabled: function(n) {\n            l = !!n;\n        },\n        isEnabled: function() {\n            return l;\n        },\n        createTopLevelCallback: function(n) {\n            return function(o) {\n                if (!l) {\n                    return;\n                }\n            ;\n            ;\n                if (((o.srcElement && ((o.srcElement !== o.target))))) {\n                    o.target = o.srcElement;\n                }\n            ;\n            ;\n                var p = ((j.getFirstReactDOM(k(o)) || g.global)), q = ((i.getID(p) || \"\"));\n                h.handleTopLevel(n, p, q, o);\n            };\n        }\n    };\n    e.exports = m;\n});\n__d(\"ReactInstanceHandles\", [\"ReactID\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactID\"), h = b(\"invariant\"), i = \".\", j = i.length, k = 100, l = 9999999;\n    function m(v) {\n        return ((((((i + \"r[\")) + v.toString(36))) + \"]\"));\n    };\n;\n    function n(v, w) {\n        return ((((v.charAt(w) === i)) || ((w === v.length))));\n    };\n;\n    function o(v) {\n        return ((((v === \"\")) || ((((v.charAt(0) === i)) && ((v.charAt(((v.length - 1))) !== i))))));\n    };\n;\n    function p(v, w) {\n        return ((((w.indexOf(v) === 0)) && n(w, v.length)));\n    };\n;\n    function q(v) {\n        return ((v ? v.substr(0, v.lastIndexOf(i)) : \"\"));\n    };\n;\n    function r(v, w) {\n        h(((o(v) && o(w))));\n        h(p(v, w));\n        if (((v === w))) {\n            return v;\n        }\n    ;\n    ;\n        var x = ((v.length + j));\n        for (var y = x; ((y < w.length)); y++) {\n            if (n(w, y)) {\n                break;\n            }\n        ;\n        ;\n        };\n    ;\n        return w.substr(0, y);\n    };\n;\n    function s(v, w) {\n        var x = Math.min(v.length, w.length);\n        if (((x === 0))) {\n            return \"\";\n        }\n    ;\n    ;\n        var y = 0;\n        for (var z = 0; ((z <= x)); z++) {\n            if (((n(v, z) && n(w, z)))) {\n                y = z;\n            }\n             else if (((v.charAt(z) !== w.charAt(z)))) {\n                break;\n            }\n            \n        ;\n        ;\n        };\n    ;\n        var aa = v.substr(0, y);\n        h(o(aa));\n        return aa;\n    };\n;\n    function t(v, w, x, y, z, aa) {\n        v = ((v || \"\"));\n        w = ((w || \"\"));\n        h(((v !== w)));\n        var ba = p(w, v);\n        h(((ba || p(v, w))));\n        var ca = 0, da = ((ba ? q : r));\n        for (var ea = v; ; ea = da(ea, w)) {\n            if (((((!z || ((ea !== v)))) && ((!aa || ((ea !== w))))))) {\n                x(ea, ba, y);\n            }\n        ;\n        ;\n            if (((ea === w))) {\n                break;\n            }\n        ;\n        ;\n            h(((ca++ < k)));\n        };\n    ;\n    };\n;\n    var u = {\n        separator: i,\n        createReactRootID: function() {\n            return m(Math.ceil(((Math.JSBNG__random() * l))));\n        },\n        isRenderedByReact: function(v) {\n            if (((v.nodeType !== 1))) {\n                return false;\n            }\n        ;\n        ;\n            var w = g.getID(v);\n            return ((w ? ((w.charAt(0) === i)) : false));\n        },\n        getFirstReactDOM: function(v) {\n            var w = v;\n            while (((w && ((w.parentNode !== w))))) {\n                if (u.isRenderedByReact(w)) {\n                    return w;\n                }\n            ;\n            ;\n                w = w.parentNode;\n            };\n        ;\n            return null;\n        },\n        findComponentRoot: function(v, w) {\n            var x = [v.firstChild,], y = 0;\n            while (((y < x.length))) {\n                var z = x[y++];\n                while (z) {\n                    var aa = g.getID(z);\n                    if (aa) {\n                        if (((w === aa))) {\n                            return z;\n                        }\n                         else if (p(aa, w)) {\n                            x.length = y = 0;\n                            x.push(z.firstChild);\n                            break;\n                        }\n                         else x.push(z.firstChild);\n                        \n                    ;\n                    ;\n                    }\n                     else x.push(z.firstChild);\n                ;\n                ;\n                    z = z.nextSibling;\n                };\n            ;\n            };\n        ;\n            ((((a.JSBNG__console && emptyFunction)) && false));\n            h(false);\n        },\n        getReactRootIDFromNodeID: function(v) {\n            var w = /\\.r\\[[^\\]]+\\]/.exec(v);\n            return ((w && w[0]));\n        },\n        traverseEnterLeave: function(v, w, x, y, z) {\n            var aa = s(v, w);\n            if (((aa !== v))) {\n                t(v, aa, x, y, false, true);\n            }\n        ;\n        ;\n            if (((aa !== w))) {\n                t(aa, w, x, z, true, false);\n            }\n        ;\n        ;\n        },\n        traverseTwoPhase: function(v, w, x) {\n            if (v) {\n                t(\"\", v, w, x, true, false);\n                t(v, \"\", w, x, false, true);\n            }\n        ;\n        ;\n        },\n        _getFirstCommonAncestorID: s,\n        _getNextDescendantID: r\n    };\n    e.exports = u;\n});\n__d(\"ReactMount\", [\"ReactEventEmitter\",\"ReactInstanceHandles\",\"ReactEventTopLevelCallback\",\"ReactID\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactEventEmitter\"), h = b(\"ReactInstanceHandles\"), i = b(\"ReactEventTopLevelCallback\"), j = b(\"ReactID\"), k = b(\"$\"), l = {\n    }, m = {\n    };\n    function n(q) {\n        return ((q && q.firstChild));\n    };\n;\n    function o(q) {\n        var r = n(q);\n        return ((r && j.getID(r)));\n    };\n;\n    var p = {\n        totalInstantiationTime: 0,\n        totalInjectionTime: 0,\n        useTouchEvents: false,\n        scrollMonitor: function(q, r) {\n            r();\n        },\n        prepareTopLevelEvents: function(q) {\n            g.ensureListening(p.useTouchEvents, q);\n        },\n        _updateRootComponent: function(q, r, s, t) {\n            var u = r.props;\n            p.scrollMonitor(s, function() {\n                q.replaceProps(u, t);\n            });\n            return q;\n        },\n        _registerComponent: function(q, r) {\n            p.prepareTopLevelEvents(i);\n            var s = p.registerContainer(r);\n            l[s] = q;\n            return s;\n        },\n        _renderNewRootComponent: function(q, r, s) {\n            var t = p._registerComponent(q, r);\n            q.mountComponentIntoNode(t, r, s);\n            return q;\n        },\n        renderComponent: function(q, r, s) {\n            var t = l[o(r)];\n            if (t) {\n                if (((t.constructor === q.constructor))) {\n                    return p._updateRootComponent(t, q, r, s);\n                }\n                 else p.unmountAndReleaseReactRootNode(r);\n            ;\n            }\n        ;\n        ;\n            var u = n(r), v = ((u && h.isRenderedByReact(u))), w = ((v && !t)), x = p._renderNewRootComponent(q, r, w);\n            ((s && s()));\n            return x;\n        },\n        constructAndRenderComponent: function(q, r, s) {\n            return p.renderComponent(q(r), s);\n        },\n        constructAndRenderComponentByID: function(q, r, s) {\n            return p.constructAndRenderComponent(q, r, k(s));\n        },\n        registerContainer: function(q) {\n            var r = o(q);\n            if (r) {\n                r = h.getReactRootIDFromNodeID(r);\n            }\n        ;\n        ;\n            if (!r) {\n                r = h.createReactRootID();\n            }\n        ;\n        ;\n            m[r] = q;\n            return r;\n        },\n        unmountAndReleaseReactRootNode: function(q) {\n            var r = o(q), s = l[r];\n            if (!s) {\n                return false;\n            }\n        ;\n        ;\n            s.unmountComponentFromNode(q);\n            delete l[r];\n            delete m[r];\n            return true;\n        },\n        findReactContainerForID: function(q) {\n            var r = h.getReactRootIDFromNodeID(q);\n            return m[r];\n        },\n        findReactNodeByID: function(q) {\n            var r = p.findReactContainerForID(q);\n            return h.findComponentRoot(r, q);\n        }\n    };\n    e.exports = p;\n});\n__d(\"ReactID\", [\"invariant\",\"ReactMount\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = b(\"ReactMount\"), i = \"data-reactid\", j = {\n    };\n    function k(s) {\n        var t = l(s);\n        if (t) {\n            if (j.hasOwnProperty(t)) {\n                var u = j[t];\n                if (((u !== s))) {\n                    g(!o(u, t));\n                    j[t] = s;\n                }\n            ;\n            ;\n            }\n             else j[t] = s;\n        ;\n        }\n    ;\n    ;\n        return t;\n    };\n;\n    function l(s) {\n        if (((s && s.getAttributeNode))) {\n            var t = s.getAttributeNode(i);\n            if (t) {\n                return ((t.value || \"\"));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return \"\";\n    };\n;\n    function m(s, t) {\n        var u = l(s);\n        if (((u !== t))) {\n            delete j[u];\n        }\n    ;\n    ;\n        s.setAttribute(i, t);\n        j[t] = s;\n    };\n;\n    function n(s) {\n        if (((!j.hasOwnProperty(s) || !o(j[s], s)))) {\n            j[s] = h.findReactNodeByID(s);\n        }\n    ;\n    ;\n        return j[s];\n    };\n;\n    function o(s, t) {\n        if (s) {\n            g(((l(s) === t)));\n            var u = h.findReactContainerForID(t);\n            if (((u && p(u, s)))) {\n                return true;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function p(s, t) {\n        if (s.contains) {\n            return s.contains(t);\n        }\n    ;\n    ;\n        if (((t === s))) {\n            return true;\n        }\n    ;\n    ;\n        if (((t.nodeType === 3))) {\n            t = t.parentNode;\n        }\n    ;\n    ;\n        while (((t && ((t.nodeType === 1))))) {\n            if (((t === s))) {\n                return true;\n            }\n        ;\n        ;\n            t = t.parentNode;\n        };\n    ;\n        return false;\n    };\n;\n    function q(s) {\n        delete j[s];\n    };\n;\n    function r() {\n        j = {\n        };\n    };\n;\n    f.ATTR_NAME = i;\n    f.getID = k;\n    f.setID = m;\n    f.getNode = n;\n    f.purgeID = q;\n    f.purgeEntireCache = r;\n});\n__d(\"getTextContentAccessor\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = null;\n    function i() {\n        if (((!h && g.canUseDOM))) {\n            h = ((((\"innerText\" in JSBNG__document.createElement(\"div\"))) ? \"innerText\" : \"textContent\"));\n        }\n    ;\n    ;\n        return h;\n    };\n;\n    e.exports = i;\n});\n__d(\"ReactDOMIDOperations\", [\"CSSPropertyOperations\",\"DOMChildrenOperations\",\"DOMPropertyOperations\",\"ReactID\",\"getTextContentAccessor\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSPropertyOperations\"), h = b(\"DOMChildrenOperations\"), i = b(\"DOMPropertyOperations\"), j = b(\"ReactID\"), k = b(\"getTextContentAccessor\"), l = b(\"invariant\"), m = {\n        dangerouslySetInnerHTML: \"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.\",\n        style: \"`style` must be set using `updateStylesByID()`.\"\n    }, n = ((k() || \"NA\")), o = {\n        updatePropertyByID: function(p, q, r) {\n            var s = j.getNode(p);\n            l(!m.hasOwnProperty(q));\n            i.setValueForProperty(s, q, r);\n        },\n        deletePropertyByID: function(p, q, r) {\n            var s = j.getNode(p);\n            l(!m.hasOwnProperty(q));\n            i.deleteValueForProperty(s, q, r);\n        },\n        updatePropertiesByID: function(p, q) {\n            {\n                var fin65keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin65i = (0);\n                var r;\n                for (; (fin65i < fin65keys.length); (fin65i++)) {\n                    ((r) = (fin65keys[fin65i]));\n                    {\n                        if (!q.hasOwnProperty(r)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        o.updatePropertiesByID(p, r, q[r]);\n                    };\n                };\n            };\n        ;\n        },\n        updateStylesByID: function(p, q) {\n            var r = j.getNode(p);\n            g.setValueForStyles(r, q);\n        },\n        updateInnerHTMLByID: function(p, q) {\n            var r = j.getNode(p);\n            r.innerHTML = ((((q && q.__html)) || \"\")).replace(/^ /g, \"&nbsp;\");\n        },\n        updateTextContentByID: function(p, q) {\n            var r = j.getNode(p);\n            r[n] = q;\n        },\n        dangerouslyReplaceNodeWithMarkupByID: function(p, q) {\n            var r = j.getNode(p);\n            h.dangerouslyReplaceNodeWithMarkup(r, q);\n            j.purgeEntireCache();\n        },\n        manageChildrenByParentID: function(p, q) {\n            var r = j.getNode(p);\n            h.manageChildren(r, q);\n            j.purgeEntireCache();\n        },\n        setTextNodeValueAtIndexByParentID: function(p, q, r) {\n            var s = j.getNode(p);\n            h.setTextNodeValueAtIndex(s, q, r);\n        }\n    };\n    e.exports = o;\n});\n__d(\"ReactOwner\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\"), h = {\n        isValidOwner: function(i) {\n            return !!((((i && ((typeof i.attachRef === \"function\")))) && ((typeof i.detachRef === \"function\"))));\n        },\n        addComponentAsRefTo: function(i, j, k) {\n            g(h.isValidOwner(k));\n            k.attachRef(j, i);\n        },\n        removeComponentAsRefFrom: function(i, j, k) {\n            g(h.isValidOwner(k));\n            if (((k.refs[j] === i))) {\n                k.detachRef(j);\n            }\n        ;\n        ;\n        },\n        Mixin: {\n            attachRef: function(i, j) {\n                g(j.isOwnedBy(this));\n                var k = ((this.refs || (this.refs = {\n                })));\n                k[i] = j;\n            },\n            detachRef: function(i) {\n                delete this.refs[i];\n            }\n        }\n    };\n    e.exports = h;\n});\n__d(\"PooledClass\", [], function(a, b, c, d, e, f) {\n    var g = function(p) {\n        var q = this;\n        if (q.instancePool.length) {\n            var r = q.instancePool.pop();\n            q.call(r, p);\n            return r;\n        }\n         else return new q(p)\n    ;\n    }, h = function(p, q) {\n        var r = this;\n        if (r.instancePool.length) {\n            var s = r.instancePool.pop();\n            r.call(s, p, q);\n            return s;\n        }\n         else return new r(p, q)\n    ;\n    }, i = function(p, q, r) {\n        var s = this;\n        if (s.instancePool.length) {\n            var t = s.instancePool.pop();\n            s.call(t, p, q, r);\n            return t;\n        }\n         else return new s(p, q, r)\n    ;\n    }, j = function(p, q, r, s, t) {\n        var u = this;\n        if (u.instancePool.length) {\n            var v = u.instancePool.pop();\n            u.call(v, p, q, r, s, t);\n            return v;\n        }\n         else return new u(p, q, r, s, t)\n    ;\n    }, k = function(p) {\n        var q = this;\n        if (p.destructor) {\n            p.destructor();\n        }\n    ;\n    ;\n        if (((q.instancePool.length < q.poolSize))) {\n            q.instancePool.push(p);\n        }\n    ;\n    ;\n    }, l = 10, m = g, n = function(p, q) {\n        var r = p;\n        r.instancePool = [];\n        r.getPooled = ((q || m));\n        if (!r.poolSize) {\n            r.poolSize = l;\n        }\n    ;\n    ;\n        r.release = k;\n        return r;\n    }, o = {\n        addPoolingTo: n,\n        oneArgumentPooler: g,\n        twoArgumentPooler: h,\n        threeArgumentPooler: i,\n        fiveArgumentPooler: j\n    };\n    e.exports = o;\n});\n__d(\"ReactInputSelection\", [], function(a, b, c, d, e, f) {\n    function g() {\n        try {\n            return JSBNG__document.activeElement;\n        } catch (j) {\n        \n        };\n    ;\n    };\n;\n    function h(j) {\n        return JSBNG__document.documentElement.contains(j);\n    };\n;\n    var i = {\n        hasSelectionCapabilities: function(j) {\n            return ((j && ((((((((j.nodeName === \"INPUT\")) && ((j.type === \"text\")))) || ((j.nodeName === \"TEXTAREA\")))) || ((j.contentEditable === \"true\"))))));\n        },\n        getSelectionInformation: function() {\n            var j = g();\n            return {\n                focusedElem: j,\n                selectionRange: ((i.hasSelectionCapabilities(j) ? i.JSBNG__getSelection(j) : null))\n            };\n        },\n        restoreSelection: function(j) {\n            var k = g(), l = j.focusedElem, m = j.selectionRange;\n            if (((((k !== l)) && h(l)))) {\n                if (i.hasSelectionCapabilities(l)) {\n                    i.setSelection(l, m);\n                }\n            ;\n            ;\n                l.JSBNG__focus();\n            }\n        ;\n        ;\n        },\n        JSBNG__getSelection: function(j) {\n            var k;\n            if (((((j.contentEditable === \"true\")) && window.JSBNG__getSelection))) {\n                k = window.JSBNG__getSelection().getRangeAt(0);\n                var l = k.commonAncestorContainer;\n                if (((l && ((l.nodeType === 3))))) {\n                    l = l.parentNode;\n                }\n            ;\n            ;\n                if (((l !== j))) {\n                    return {\n                        start: 0,\n                        end: 0\n                    };\n                }\n                 else return {\n                    start: k.startOffset,\n                    end: k.endOffset\n                }\n            ;\n            }\n        ;\n        ;\n            if (!JSBNG__document.selection) {\n                return {\n                    start: j.selectionStart,\n                    end: j.selectionEnd\n                };\n            }\n        ;\n        ;\n            k = JSBNG__document.selection.createRange();\n            if (((k.parentElement() !== j))) {\n                return {\n                    start: 0,\n                    end: 0\n                };\n            }\n        ;\n        ;\n            var m = j.value.length;\n            if (((j.nodeName === \"INPUT\"))) {\n                return {\n                    start: -k.moveStart(\"character\", -m),\n                    end: -k.moveEnd(\"character\", -m)\n                };\n            }\n             else {\n                var n = k.duplicate();\n                n.moveToElementText(j);\n                n.setEndPoint(\"StartToEnd\", k);\n                var o = ((m - n.text.length));\n                n.setEndPoint(\"StartToStart\", k);\n                return {\n                    start: ((m - n.text.length)),\n                    end: o\n                };\n            }\n        ;\n        ;\n        },\n        setSelection: function(j, k) {\n            var l, m = k.start, n = k.end;\n            if (((typeof n === \"undefined\"))) {\n                n = m;\n            }\n        ;\n        ;\n            if (JSBNG__document.selection) {\n                if (((j.tagName === \"TEXTAREA\"))) {\n                    var o = ((j.value.slice(0, m).match(/\\r/g) || [])).length, p = ((j.value.slice(m, n).match(/\\r/g) || [])).length;\n                    m -= o;\n                    n -= ((o + p));\n                }\n            ;\n            ;\n                l = j.createTextRange();\n                l.collapse(true);\n                l.moveStart(\"character\", m);\n                l.moveEnd(\"character\", ((n - m)));\n                l.select();\n            }\n             else if (((j.contentEditable === \"true\"))) {\n                if (((j.childNodes.length === 1))) {\n                    l = JSBNG__document.createRange();\n                    l.setStart(j.childNodes[0], m);\n                    l.setEnd(j.childNodes[0], n);\n                    var q = window.JSBNG__getSelection();\n                    q.removeAllRanges();\n                    q.addRange(l);\n                }\n            ;\n            ;\n            }\n             else {\n                j.selectionStart = m;\n                j.selectionEnd = Math.min(n, j.value.length);\n                j.JSBNG__focus();\n            }\n            \n        ;\n        ;\n        }\n    };\n    e.exports = i;\n});\n__d(\"mixInto\", [], function(a, b, c, d, e, f) {\n    var g = function(h, i) {\n        var j;\n        {\n            var fin66keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin66i = (0);\n            (0);\n            for (; (fin66i < fin66keys.length); (fin66i++)) {\n                ((j) = (fin66keys[fin66i]));\n                {\n                    if (!i.hasOwnProperty(j)) {\n                        continue;\n                    }\n                ;\n                ;\n                    h.prototype[j] = i[j];\n                };\n            };\n        };\n    ;\n    };\n    e.exports = g;\n});\n__d(\"ReactOnDOMReady\", [\"PooledClass\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"PooledClass\"), h = b(\"mixInto\");\n    function i(j) {\n        this._queue = ((j || null));\n    };\n;\n    h(i, {\n        enqueue: function(j, k) {\n            this._queue = ((this._queue || []));\n            this._queue.push({\n                component: j,\n                callback: k\n            });\n        },\n        notifyAll: function() {\n            var j = this._queue;\n            if (j) {\n                this._queue = null;\n                for (var k = 0, l = j.length; ((k < l)); k++) {\n                    var m = j[k].component, n = j[k].callback;\n                    n.call(m, m.getDOMNode());\n                };\n            ;\n                j.length = 0;\n            }\n        ;\n        ;\n        },\n        reset: function() {\n            this._queue = null;\n        },\n        destructor: function() {\n            this.reset();\n        }\n    });\n    g.addPoolingTo(i);\n    e.exports = i;\n});\n__d(\"Transaction\", [\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"throwIf\"), h = \"DUAL_TRANSACTION\", i = \"MISSING_TRANSACTION\", j = {\n        reinitializeTransaction: function() {\n            this.transactionWrappers = this.getTransactionWrappers();\n            if (!this.wrapperInitData) {\n                this.wrapperInitData = [];\n            }\n             else this.wrapperInitData.length = 0;\n        ;\n        ;\n            if (!this.timingMetrics) {\n                this.timingMetrics = {\n                };\n            }\n        ;\n        ;\n            this.timingMetrics.methodInvocationTime = 0;\n            if (!this.timingMetrics.wrapperInitTimes) {\n                this.timingMetrics.wrapperInitTimes = [];\n            }\n             else this.timingMetrics.wrapperInitTimes.length = 0;\n        ;\n        ;\n            if (!this.timingMetrics.wrapperCloseTimes) {\n                this.timingMetrics.wrapperCloseTimes = [];\n            }\n             else this.timingMetrics.wrapperCloseTimes.length = 0;\n        ;\n        ;\n            this._isInTransaction = false;\n        },\n        _isInTransaction: false,\n        getTransactionWrappers: null,\n        isInTransaction: function() {\n            return !!this._isInTransaction;\n        },\n        perform: function(l, m, n, o, p, q, r, s) {\n            g(this.isInTransaction(), h);\n            var t = JSBNG__Date.now(), u = null, v;\n            try {\n                this.initializeAll();\n                v = l.call(m, n, o, p, q, r, s);\n            } catch (w) {\n                u = w;\n            } finally {\n                var x = JSBNG__Date.now();\n                this.methodInvocationTime += ((x - t));\n                try {\n                    this.closeAll();\n                } catch (y) {\n                    u = ((u || y));\n                };\n            ;\n            };\n        ;\n            if (u) {\n                throw u;\n            }\n        ;\n        ;\n            return v;\n        },\n        initializeAll: function() {\n            this._isInTransaction = true;\n            var l = this.transactionWrappers, m = this.timingMetrics.wrapperInitTimes, n = null;\n            for (var o = 0; ((o < l.length)); o++) {\n                var p = JSBNG__Date.now(), q = l[o];\n                try {\n                    this.wrapperInitData[o] = ((q.initialize ? q.initialize.call(this) : null));\n                } catch (r) {\n                    n = ((n || r));\n                    this.wrapperInitData[o] = k.OBSERVED_ERROR;\n                } finally {\n                    var s = m[o], t = JSBNG__Date.now();\n                    m[o] = ((((s || 0)) + ((t - p))));\n                };\n            ;\n            };\n        ;\n            if (n) {\n                throw n;\n            }\n        ;\n        ;\n        },\n        closeAll: function() {\n            g(!this.isInTransaction(), i);\n            var l = this.transactionWrappers, m = this.timingMetrics.wrapperCloseTimes, n = null;\n            for (var o = 0; ((o < l.length)); o++) {\n                var p = l[o], q = JSBNG__Date.now(), r = this.wrapperInitData[o];\n                try {\n                    if (((r !== k.OBSERVED_ERROR))) {\n                        ((p.close && p.close.call(this, r)));\n                    }\n                ;\n                ;\n                } catch (s) {\n                    n = ((n || s));\n                } finally {\n                    var t = JSBNG__Date.now(), u = m[o];\n                    m[o] = ((((u || 0)) + ((t - q))));\n                };\n            ;\n            };\n        ;\n            this.wrapperInitData.length = 0;\n            this._isInTransaction = false;\n            if (n) {\n                throw n;\n            }\n        ;\n        ;\n        }\n    }, k = {\n        Mixin: j,\n        OBSERVED_ERROR: {\n        }\n    };\n    e.exports = k;\n});\n__d(\"ReactReconcileTransaction\", [\"ExecutionEnvironment\",\"PooledClass\",\"ReactEventEmitter\",\"ReactInputSelection\",\"ReactOnDOMReady\",\"Transaction\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"ExecutionEnvironment\"), h = b(\"PooledClass\"), i = b(\"ReactEventEmitter\"), j = b(\"ReactInputSelection\"), k = b(\"ReactOnDOMReady\"), l = b(\"Transaction\"), m = b(\"mixInto\"), n = {\n        initialize: j.getSelectionInformation,\n        close: j.restoreSelection\n    }, o = {\n        initialize: function() {\n            var t = i.isEnabled();\n            i.setEnabled(false);\n            return t;\n        },\n        close: function(t) {\n            i.setEnabled(t);\n        }\n    }, p = {\n        initialize: function() {\n            this.reactOnDOMReady.reset();\n        },\n        close: function() {\n            this.reactOnDOMReady.notifyAll();\n        }\n    }, q = [n,o,p,];\n    function r() {\n        this.reinitializeTransaction();\n        this.reactOnDOMReady = k.getPooled(null);\n    };\n;\n    var s = {\n        getTransactionWrappers: function() {\n            if (g.canUseDOM) {\n                return q;\n            }\n             else return []\n        ;\n        },\n        getReactOnDOMReady: function() {\n            return this.reactOnDOMReady;\n        },\n        destructor: function() {\n            k.release(this.reactOnDOMReady);\n            this.reactOnDOMReady = null;\n        }\n    };\n    m(r, l.Mixin);\n    m(r, s);\n    h.addPoolingTo(r);\n    e.exports = r;\n});\n__d(\"mergeHelpers\", [\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyMirror\"), h = b(\"throwIf\"), i = 36, j = g({\n        MERGE_ARRAY_FAIL: null,\n        MERGE_CORE_FAILURE: null,\n        MERGE_TYPE_USAGE_FAILURE: null,\n        MERGE_DEEP_MAX_LEVELS: null,\n        MERGE_DEEP_NO_ARR_STRATEGY: null\n    }), k = function(m) {\n        return ((((typeof m !== \"object\")) || ((m === null))));\n    }, l = {\n        MAX_MERGE_DEPTH: i,\n        isTerminal: k,\n        normalizeMergeArg: function(m) {\n            return ((((((m === undefined)) || ((m === null)))) ? {\n            } : m));\n        },\n        checkMergeArrayArgs: function(m, n) {\n            h(((!Array.isArray(m) || !Array.isArray(n))), j.MERGE_CORE_FAILURE);\n        },\n        checkMergeObjectArgs: function(m, n) {\n            l.checkMergeObjectArg(m);\n            l.checkMergeObjectArg(n);\n        },\n        checkMergeObjectArg: function(m) {\n            h(((k(m) || Array.isArray(m))), j.MERGE_CORE_FAILURE);\n        },\n        checkMergeLevel: function(m) {\n            h(((m >= i)), j.MERGE_DEEP_MAX_LEVELS);\n        },\n        checkArrayStrategy: function(m) {\n            h(((((m !== undefined)) && !((m in l.ArrayStrategies)))), j.MERGE_DEEP_NO_ARR_STRATEGY);\n        },\n        ArrayStrategies: g({\n            Clobber: true,\n            IndexByIndex: true\n        }),\n        ERRORS: j\n    };\n    e.exports = l;\n});\n__d(\"mergeInto\", [\"mergeHelpers\",], function(a, b, c, d, e, f) {\n    var g = b(\"mergeHelpers\"), h = g.checkMergeObjectArg;\n    function i(j, k) {\n        h(j);\n        if (((k != null))) {\n            h(k);\n            {\n                var fin67keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin67i = (0);\n                var l;\n                for (; (fin67i < fin67keys.length); (fin67i++)) {\n                    ((l) = (fin67keys[fin67i]));\n                    {\n                        if (!k.hasOwnProperty(l)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        j[l] = k[l];\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n    };\n;\n    e.exports = i;\n});\n__d(\"merge\", [\"mergeInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"mergeInto\"), h = function(i, j) {\n        var k = {\n        };\n        g(k, i);\n        g(k, j);\n        return k;\n    };\n    e.exports = h;\n});\n__d(\"ReactComponent\", [\"ReactCurrentOwner\",\"ReactDOMIDOperations\",\"ReactID\",\"ReactMount\",\"ReactOwner\",\"ReactReconcileTransaction\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactCurrentOwner\"), h = b(\"ReactDOMIDOperations\"), i = b(\"ReactID\"), j = b(\"ReactMount\"), k = b(\"ReactOwner\"), l = b(\"ReactReconcileTransaction\"), m = b(\"ReactUpdates\"), n = b(\"invariant\"), o = b(\"keyMirror\"), p = b(\"merge\"), q = \"{owner}\", r = \"{is.key.validated}\", s = o({\n        MOUNTED: null,\n        UNMOUNTED: null\n    }), t = {\n    };\n    function u(x) {\n        if (((x[r] || ((x.props.key != null))))) {\n            return;\n        }\n    ;\n    ;\n        x[r] = true;\n        if (!g.current) {\n            return;\n        }\n    ;\n    ;\n        var y = g.current.constructor.displayName;\n        if (t.hasOwnProperty(y)) {\n            return;\n        }\n    ;\n    ;\n        t[y] = true;\n        var z = ((((((\"Each child in an array should have a unique \\\"key\\\" prop. \" + \"Check the render method of \")) + y)) + \".\"));\n        if (!x.isOwnedBy(g.current)) {\n            var aa = ((x.props[q] && x.props[q].constructor.displayName));\n            z += ((((\" It was passed a child from \" + aa)) + \".\"));\n        }\n    ;\n    ;\n    };\n;\n    function v(x) {\n        if (Array.isArray(x)) {\n            for (var y = 0; ((y < x.length)); y++) {\n                var z = x[y];\n                if (w.isValidComponent(z)) {\n                    u(z);\n                }\n            ;\n            ;\n            };\n        ;\n        }\n         else if (w.isValidComponent(x)) {\n            x[r] = true;\n        }\n        \n    ;\n    ;\n    };\n;\n    var w = {\n        isValidComponent: function(x) {\n            return !!((((x && ((typeof x.mountComponentIntoNode === \"function\")))) && ((typeof x.receiveProps === \"function\"))));\n        },\n        getKey: function(x, y) {\n            if (((((x && x.props)) && ((x.props.key != null))))) {\n                return ((\"\" + x.props.key));\n            }\n        ;\n        ;\n            return ((\"\" + y));\n        },\n        LifeCycle: s,\n        DOMIDOperations: h,\n        ReactReconcileTransaction: l,\n        setDOMOperations: function(x) {\n            w.DOMIDOperations = x;\n        },\n        setReactReconcileTransaction: function(x) {\n            w.ReactReconcileTransaction = x;\n        },\n        Mixin: {\n            isMounted: function() {\n                return ((this._lifeCycleState === s.MOUNTED));\n            },\n            getDOMNode: function() {\n                n(this.isMounted());\n                return i.getNode(this._rootNodeID);\n            },\n            setProps: function(x, y) {\n                this.replaceProps(p(((this._pendingProps || this.props)), x), y);\n            },\n            replaceProps: function(x, y) {\n                n(!this.props[q]);\n                this._pendingProps = x;\n                m.enqueueUpdate(this, y);\n            },\n            construct: function(x, y) {\n                this.props = ((x || {\n                }));\n                this.props[q] = g.current;\n                this._lifeCycleState = s.UNMOUNTED;\n                this._pendingProps = null;\n                this._pendingCallbacks = null;\n                var z = ((arguments.length - 1));\n                if (((z === 1))) {\n                    this.props.children = y;\n                }\n                 else if (((z > 1))) {\n                    var aa = Array(z);\n                    for (var ba = 0; ((ba < z)); ba++) {\n                        aa[ba] = arguments[((ba + 1))];\n                    ;\n                    };\n                ;\n                    this.props.children = aa;\n                }\n                \n            ;\n            ;\n            },\n            mountComponent: function(x, y) {\n                n(!this.isMounted());\n                var z = this.props;\n                if (((z.ref != null))) {\n                    k.addComponentAsRefTo(this, z.ref, z[q]);\n                }\n            ;\n            ;\n                this._rootNodeID = x;\n                this._lifeCycleState = s.MOUNTED;\n            },\n            unmountComponent: function() {\n                n(this.isMounted());\n                var x = this.props;\n                if (((x.ref != null))) {\n                    k.removeComponentAsRefFrom(this, x.ref, x[q]);\n                }\n            ;\n            ;\n                i.purgeID(this._rootNodeID);\n                this._rootNodeID = null;\n                this._lifeCycleState = s.UNMOUNTED;\n            },\n            receiveProps: function(x, y) {\n                n(this.isMounted());\n                this._pendingProps = x;\n                this._performUpdateIfNecessary(y);\n            },\n            performUpdateIfNecessary: function() {\n                var x = w.ReactReconcileTransaction.getPooled();\n                x.perform(this._performUpdateIfNecessary, this, x);\n                w.ReactReconcileTransaction.release(x);\n            },\n            _performUpdateIfNecessary: function(x) {\n                if (((this._pendingProps == null))) {\n                    return;\n                }\n            ;\n            ;\n                var y = this.props;\n                this.props = this._pendingProps;\n                this._pendingProps = null;\n                this.updateComponent(x, y);\n            },\n            updateComponent: function(x, y) {\n                var z = this.props;\n                if (((((z[q] !== y[q])) || ((z.ref !== y.ref))))) {\n                    if (((y.ref != null))) {\n                        k.removeComponentAsRefFrom(this, y.ref, y[q]);\n                    }\n                ;\n                ;\n                    if (((z.ref != null))) {\n                        k.addComponentAsRefTo(this, z.ref, z[q]);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            },\n            mountComponentIntoNode: function(x, y, z) {\n                var aa = w.ReactReconcileTransaction.getPooled();\n                aa.perform(this._mountComponentIntoNode, this, x, y, aa, z);\n                w.ReactReconcileTransaction.release(aa);\n            },\n            _mountComponentIntoNode: function(x, y, z, aa) {\n                n(((y && ((y.nodeType === 1)))));\n                var ba = JSBNG__Date.now(), ca = this.mountComponent(x, z);\n                j.totalInstantiationTime += ((JSBNG__Date.now() - ba));\n                if (aa) {\n                    return;\n                }\n            ;\n            ;\n                var da = JSBNG__Date.now(), ea = y.parentNode;\n                if (ea) {\n                    var fa = y.nextSibling;\n                    ea.removeChild(y);\n                    y.innerHTML = ca;\n                    if (fa) {\n                        ea.insertBefore(y, fa);\n                    }\n                     else ea.appendChild(y);\n                ;\n                ;\n                }\n                 else y.innerHTML = ca;\n            ;\n            ;\n                j.totalInjectionTime += ((JSBNG__Date.now() - da));\n            },\n            unmountComponentFromNode: function(x) {\n                this.unmountComponent();\n                while (x.lastChild) {\n                    x.removeChild(x.lastChild);\n                ;\n                };\n            ;\n            },\n            isOwnedBy: function(x) {\n                return ((this.props[q] === x));\n            },\n            getSiblingByRef: function(x) {\n                var y = this.props[q];\n                if (((!y || !y.refs))) {\n                    return null;\n                }\n            ;\n            ;\n                return y.refs[x];\n            }\n        }\n    };\n    e.exports = w;\n});\n__d(\"joinClasses\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if (!h) {\n            h = \"\";\n        }\n    ;\n    ;\n        var i, j = arguments.length;\n        if (((j > 1))) {\n            for (var k = 1; ((k < j)); k++) {\n                i = arguments[k];\n                ((i && (h += ((\" \" + i)))));\n            };\n        }\n    ;\n    ;\n        return h;\n    };\n;\n    e.exports = g;\n});\n__d(\"ReactPropTransferer\", [\"emptyFunction\",\"joinClasses\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"emptyFunction\"), h = b(\"joinClasses\"), i = b(\"merge\");\n    function j(m) {\n        return function(n, o, p) {\n            if (!n.hasOwnProperty(o)) {\n                n[o] = p;\n            }\n             else n[o] = m(n[o], p);\n        ;\n        ;\n        };\n    };\n;\n    var k = {\n        children: g,\n        className: j(h),\n        ref: g,\n        style: j(i)\n    }, l = {\n        TransferStrategies: k,\n        Mixin: {\n            transferPropsTo: function(m) {\n                var n = {\n                };\n                {\n                    var fin68keys = ((window.top.JSBNG_Replay.forInKeys)((m.props))), fin68i = (0);\n                    var o;\n                    for (; (fin68i < fin68keys.length); (fin68i++)) {\n                        ((o) = (fin68keys[fin68i]));\n                        {\n                            if (m.props.hasOwnProperty(o)) {\n                                n[o] = m.props[o];\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n                {\n                    var fin69keys = ((window.top.JSBNG_Replay.forInKeys)((this.props))), fin69i = (0);\n                    var p;\n                    for (; (fin69i < fin69keys.length); (fin69i++)) {\n                        ((p) = (fin69keys[fin69i]));\n                        {\n                            if (!this.props.hasOwnProperty(p)) {\n                                continue;\n                            }\n                        ;\n                        ;\n                            var q = k[p];\n                            if (q) {\n                                q(n, p, this.props[p]);\n                            }\n                             else if (!n.hasOwnProperty(p)) {\n                                n[p] = this.props[p];\n                            }\n                            \n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n                m.props = n;\n                return m;\n            }\n        }\n    };\n    e.exports = l;\n});\n__d(\"ReactCompositeComponent\", [\"ReactComponent\",\"ReactCurrentOwner\",\"ReactOwner\",\"ReactPropTransferer\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\"), h = b(\"ReactCurrentOwner\"), i = b(\"ReactOwner\"), j = b(\"ReactPropTransferer\"), k = b(\"ReactUpdates\"), l = b(\"invariant\"), m = b(\"keyMirror\"), n = b(\"merge\"), o = b(\"mixInto\"), p = m({\n        DEFINE_ONCE: null,\n        DEFINE_MANY: null,\n        OVERRIDE_BASE: null\n    }), q = {\n        mixins: p.DEFINE_MANY,\n        props: p.DEFINE_ONCE,\n        getDefaultProps: p.DEFINE_ONCE,\n        getInitialState: p.DEFINE_ONCE,\n        render: p.DEFINE_ONCE,\n        componentWillMount: p.DEFINE_MANY,\n        componentDidMount: p.DEFINE_MANY,\n        componentWillReceiveProps: p.DEFINE_MANY,\n        shouldComponentUpdate: p.DEFINE_ONCE,\n        componentWillUpdate: p.DEFINE_MANY,\n        componentDidUpdate: p.DEFINE_MANY,\n        componentWillUnmount: p.DEFINE_MANY,\n        updateComponent: p.OVERRIDE_BASE\n    }, r = {\n        displayName: function(aa, ba) {\n            aa.displayName = ba;\n        },\n        mixins: function(aa, ba) {\n            if (ba) {\n                for (var ca = 0; ((ca < ba.length)); ca++) {\n                    u(aa, ba[ca]);\n                ;\n                };\n            }\n        ;\n        ;\n        },\n        props: function(aa, ba) {\n            aa.propDeclarations = ba;\n        }\n    };\n    function s(aa, ba) {\n        var ca = q[ba];\n        if (x.hasOwnProperty(ba)) {\n            l(((ca === p.OVERRIDE_BASE)));\n        }\n    ;\n    ;\n        if (aa.hasOwnProperty(ba)) {\n            l(((ca === p.DEFINE_MANY)));\n        }\n    ;\n    ;\n    };\n;\n    function t(aa) {\n        var ba = aa._compositeLifeCycleState;\n        l(((aa.isMounted() || ((ba === w.MOUNTING)))));\n        l(((((ba !== w.RECEIVING_STATE)) && ((ba !== w.UNMOUNTING)))));\n    };\n;\n    function u(aa, ba) {\n        var ca = aa.prototype;\n        {\n            var fin70keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin70i = (0);\n            var da;\n            for (; (fin70i < fin70keys.length); (fin70i++)) {\n                ((da) = (fin70keys[fin70i]));\n                {\n                    var ea = ba[da];\n                    if (((!ba.hasOwnProperty(da) || !ea))) {\n                        continue;\n                    }\n                ;\n                ;\n                    s(ca, da);\n                    if (r.hasOwnProperty(da)) {\n                        r[da](aa, ea);\n                    }\n                     else {\n                        var fa = ((da in q)), ga = ((da in ca)), ha = ea.__reactDontBind, ia = ((typeof ea === \"function\")), ja = ((((((ia && !fa)) && !ga)) && !ha));\n                        if (ja) {\n                            if (!ca.__reactAutoBindMap) {\n                                ca.__reactAutoBindMap = {\n                                };\n                            }\n                        ;\n                        ;\n                            ca.__reactAutoBindMap[da] = ea;\n                            ca[da] = ea;\n                        }\n                         else if (ga) {\n                            ca[da] = v(ca[da], ea);\n                        }\n                         else ca[da] = ea;\n                        \n                    ;\n                    ;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function v(aa, ba) {\n        return function ca() {\n            aa.apply(this, arguments);\n            ba.apply(this, arguments);\n        };\n    };\n;\n    var w = m({\n        MOUNTING: null,\n        UNMOUNTING: null,\n        RECEIVING_PROPS: null,\n        RECEIVING_STATE: null\n    }), x = {\n        construct: function(aa, ba) {\n            g.Mixin.construct.apply(this, arguments);\n            this.state = null;\n            this._pendingState = null;\n            this._compositeLifeCycleState = null;\n        },\n        isMounted: function() {\n            return ((g.Mixin.isMounted.call(this) && ((this._compositeLifeCycleState !== w.MOUNTING))));\n        },\n        mountComponent: function(aa, ba) {\n            g.Mixin.mountComponent.call(this, aa, ba);\n            this._compositeLifeCycleState = w.MOUNTING;\n            this._defaultProps = ((this.getDefaultProps ? this.getDefaultProps() : null));\n            this._processProps(this.props);\n            if (this.__reactAutoBindMap) {\n                this._bindAutoBindMethods();\n            }\n        ;\n        ;\n            this.state = ((this.getInitialState ? this.getInitialState() : null));\n            this._pendingState = null;\n            this._pendingForceUpdate = false;\n            if (this.componentWillMount) {\n                this.componentWillMount();\n                if (this._pendingState) {\n                    this.state = this._pendingState;\n                    this._pendingState = null;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this._renderedComponent = this._renderValidatedComponent();\n            this._compositeLifeCycleState = null;\n            var ca = this._renderedComponent.mountComponent(aa, ba);\n            if (this.componentDidMount) {\n                ba.getReactOnDOMReady().enqueue(this, this.componentDidMount);\n            }\n        ;\n        ;\n            return ca;\n        },\n        unmountComponent: function() {\n            this._compositeLifeCycleState = w.UNMOUNTING;\n            if (this.componentWillUnmount) {\n                this.componentWillUnmount();\n            }\n        ;\n        ;\n            this._compositeLifeCycleState = null;\n            this._defaultProps = null;\n            g.Mixin.unmountComponent.call(this);\n            this._renderedComponent.unmountComponent();\n            this._renderedComponent = null;\n            if (this.refs) {\n                this.refs = null;\n            }\n        ;\n        ;\n        },\n        setState: function(aa, ba) {\n            this.replaceState(n(((this._pendingState || this.state)), aa), ba);\n        },\n        replaceState: function(aa, ba) {\n            t.call(null, this);\n            this._pendingState = aa;\n            k.enqueueUpdate(this, ba);\n        },\n        _processProps: function(aa) {\n            var ba, ca = this._defaultProps;\n            {\n                var fin71keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin71i = (0);\n                (0);\n                for (; (fin71i < fin71keys.length); (fin71i++)) {\n                    ((ba) = (fin71keys[fin71i]));\n                    {\n                        if (!((ba in aa))) {\n                            aa[ba] = ca[ba];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var da = this.constructor.propDeclarations;\n            if (da) {\n                var ea = this.constructor.displayName;\n                {\n                    var fin72keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin72i = (0);\n                    (0);\n                    for (; (fin72i < fin72keys.length); (fin72i++)) {\n                        ((ba) = (fin72keys[fin72i]));\n                        {\n                            var fa = da[ba];\n                            if (fa) {\n                                fa(aa, ba, ea);\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n        },\n        performUpdateIfNecessary: function() {\n            var aa = this._compositeLifeCycleState;\n            if (((((aa === w.MOUNTING)) || ((aa === w.RECEIVING_PROPS))))) {\n                return;\n            }\n        ;\n        ;\n            g.Mixin.performUpdateIfNecessary.call(this);\n        },\n        _performUpdateIfNecessary: function(aa) {\n            if (((((((this._pendingProps == null)) && ((this._pendingState == null)))) && !this._pendingForceUpdate))) {\n                return;\n            }\n        ;\n        ;\n            var ba = this.props;\n            if (((this._pendingProps != null))) {\n                ba = this._pendingProps;\n                this._processProps(ba);\n                this._pendingProps = null;\n                this._compositeLifeCycleState = w.RECEIVING_PROPS;\n                if (this.componentWillReceiveProps) {\n                    this.componentWillReceiveProps(ba, aa);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this._compositeLifeCycleState = w.RECEIVING_STATE;\n            var ca = ((this._pendingState || this.state));\n            this._pendingState = null;\n            if (((((this._pendingForceUpdate || !this.shouldComponentUpdate)) || this.shouldComponentUpdate(ba, ca)))) {\n                this._pendingForceUpdate = false;\n                this._performComponentUpdate(ba, ca, aa);\n            }\n             else {\n                this.props = ba;\n                this.state = ca;\n            }\n        ;\n        ;\n            this._compositeLifeCycleState = null;\n        },\n        _performComponentUpdate: function(aa, ba, ca) {\n            var da = this.props, ea = this.state;\n            if (this.componentWillUpdate) {\n                this.componentWillUpdate(aa, ba, ca);\n            }\n        ;\n        ;\n            this.props = aa;\n            this.state = ba;\n            this.updateComponent(ca, da, ea);\n            if (this.componentDidUpdate) {\n                ca.getReactOnDOMReady().enqueue(this, this.componentDidUpdate.bind(this, da, ea));\n            }\n        ;\n        ;\n        },\n        updateComponent: function(aa, ba, ca) {\n            g.Mixin.updateComponent.call(this, aa, ba);\n            var da = this._renderedComponent, ea = this._renderValidatedComponent();\n            if (((da.constructor === ea.constructor))) {\n                da.receiveProps(ea.props, aa);\n            }\n             else {\n                var fa = this._rootNodeID, ga = da._rootNodeID;\n                da.unmountComponent();\n                var ha = ea.mountComponent(fa, aa);\n                g.DOMIDOperations.dangerouslyReplaceNodeWithMarkupByID(ga, ha);\n                this._renderedComponent = ea;\n            }\n        ;\n        ;\n        },\n        forceUpdate: function(aa) {\n            var ba = this._compositeLifeCycleState;\n            l(((this.isMounted() || ((ba === w.MOUNTING)))));\n            l(((((ba !== w.RECEIVING_STATE)) && ((ba !== w.UNMOUNTING)))));\n            this._pendingForceUpdate = true;\n            k.enqueueUpdate(this, aa);\n        },\n        _renderValidatedComponent: function() {\n            var aa;\n            h.current = this;\n            try {\n                aa = this.render();\n            } catch (ba) {\n                throw ba;\n            } finally {\n                h.current = null;\n            };\n        ;\n            l(g.isValidComponent(aa));\n            return aa;\n        },\n        _bindAutoBindMethods: function() {\n            {\n                var fin73keys = ((window.top.JSBNG_Replay.forInKeys)((this.__reactAutoBindMap))), fin73i = (0);\n                var aa;\n                for (; (fin73i < fin73keys.length); (fin73i++)) {\n                    ((aa) = (fin73keys[fin73i]));\n                    {\n                        if (!this.__reactAutoBindMap.hasOwnProperty(aa)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var ba = this.__reactAutoBindMap[aa];\n                        this[aa] = this._bindAutoBindMethod(ba);\n                    };\n                };\n            };\n        ;\n        },\n        _bindAutoBindMethod: function(aa) {\n            var ba = this;\n            return function() {\n                return aa.apply(ba, arguments);\n            };\n        }\n    }, y = function() {\n    \n    };\n    o(y, g.Mixin);\n    o(y, i.Mixin);\n    o(y, j.Mixin);\n    o(y, x);\n    var z = {\n        LifeCycle: w,\n        Base: y,\n        createClass: function(aa) {\n            var ba = function() {\n            \n            };\n            ba.prototype = new y();\n            ba.prototype.constructor = ba;\n            u(ba, aa);\n            l(ba.prototype.render);\n            var ca = function(da, ea) {\n                var fa = new ba();\n                fa.construct.apply(fa, arguments);\n                return fa;\n            };\n            ca.componentConstructor = ba;\n            ca.originalSpec = aa;\n            return ca;\n        },\n        autoBind: function(aa) {\n            return aa;\n        }\n    };\n    e.exports = z;\n});\n__d(\"ReactMultiChild\", [\"ReactComponent\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\");\n    function h(k, l) {\n        return ((((k && l)) && ((k.constructor === l.constructor))));\n    };\n;\n    var i = {\n        enqueueMarkupAt: function(k, l) {\n            this.domOperations = ((this.domOperations || []));\n            this.domOperations.push({\n                insertMarkup: k,\n                finalIndex: l\n            });\n        },\n        enqueueMove: function(k, l) {\n            this.domOperations = ((this.domOperations || []));\n            this.domOperations.push({\n                moveFrom: k,\n                finalIndex: l\n            });\n        },\n        enqueueUnmountChildByName: function(k, l) {\n            if (g.isValidComponent(l)) {\n                this.domOperations = ((this.domOperations || []));\n                this.domOperations.push({\n                    removeAt: l._domIndex\n                });\n                ((l.unmountComponent && l.unmountComponent()));\n                delete this._renderedChildren[k];\n            }\n        ;\n        ;\n        },\n        processChildDOMOperationsQueue: function() {\n            if (this.domOperations) {\n                g.DOMIDOperations.manageChildrenByParentID(this._rootNodeID, this.domOperations);\n                this.domOperations = null;\n            }\n        ;\n        ;\n        },\n        unmountMultiChild: function() {\n            var k = this._renderedChildren;\n            {\n                var fin74keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin74i = (0);\n                var l;\n                for (; (fin74i < fin74keys.length); (fin74i++)) {\n                    ((l) = (fin74keys[fin74i]));\n                    {\n                        if (((k.hasOwnProperty(l) && k[l]))) {\n                            var m = k[l];\n                            ((m.unmountComponent && m.unmountComponent()));\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            this._renderedChildren = null;\n        },\n        mountMultiChild: function(k, l) {\n            var m = \"\", n = 0;\n            {\n                var fin75keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin75i = (0);\n                var o;\n                for (; (fin75i < fin75keys.length); (fin75i++)) {\n                    ((o) = (fin75keys[fin75i]));\n                    {\n                        var p = k[o];\n                        if (((k.hasOwnProperty(o) && p))) {\n                            m += p.mountComponent(((((this._rootNodeID + \".\")) + o)), l);\n                            p._domIndex = n;\n                            n++;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            this._renderedChildren = k;\n            this.domOperations = null;\n            return m;\n        },\n        updateMultiChild: function(k, l) {\n            if (((!k && !this._renderedChildren))) {\n                return;\n            }\n             else if (((k && !this._renderedChildren))) {\n                this._renderedChildren = {\n                };\n            }\n             else if (((!k && this._renderedChildren))) {\n                k = {\n                };\n            }\n            \n            \n        ;\n        ;\n            var m = ((this._rootNodeID + \".\")), n = null, o = 0, p = 0, q = 0;\n            {\n                var fin76keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin76i = (0);\n                var r;\n                for (; (fin76i < fin76keys.length); (fin76i++)) {\n                    ((r) = (fin76keys[fin76i]));\n                    {\n                        if (!k.hasOwnProperty(r)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var s = this._renderedChildren[r], t = k[r];\n                        if (h(s, t)) {\n                            if (n) {\n                                this.enqueueMarkupAt(n, ((p - o)));\n                                n = null;\n                            }\n                        ;\n                        ;\n                            o = 0;\n                            if (((s._domIndex < q))) {\n                                this.enqueueMove(s._domIndex, p);\n                            }\n                        ;\n                        ;\n                            q = Math.max(s._domIndex, q);\n                            s.receiveProps(t.props, l);\n                            s._domIndex = p;\n                        }\n                         else {\n                            if (s) {\n                                this.enqueueUnmountChildByName(r, s);\n                                q = Math.max(s._domIndex, q);\n                            }\n                        ;\n                        ;\n                            if (t) {\n                                this._renderedChildren[r] = t;\n                                var u = t.mountComponent(((m + r)), l);\n                                n = ((n ? ((n + u)) : u));\n                                o++;\n                                t._domIndex = p;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                        p = ((t ? ((p + 1)) : p));\n                    };\n                };\n            };\n        ;\n            if (n) {\n                this.enqueueMarkupAt(n, ((p - o)));\n            }\n        ;\n        ;\n            {\n                var fin77keys = ((window.top.JSBNG_Replay.forInKeys)((this._renderedChildren))), fin77i = (0);\n                var v;\n                for (; (fin77i < fin77keys.length); (fin77i++)) {\n                    ((v) = (fin77keys[fin77i]));\n                    {\n                        if (!this._renderedChildren.hasOwnProperty(v)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var w = this._renderedChildren[v];\n                        if (((w && !k[v]))) {\n                            this.enqueueUnmountChildByName(v, w);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            this.processChildDOMOperationsQueue();\n        }\n    }, j = {\n        Mixin: i\n    };\n    e.exports = j;\n});\n__d(\"ReactTextComponent\", [\"ReactComponent\",\"ReactID\",\"escapeTextForBrowser\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\"), h = b(\"ReactID\"), i = b(\"escapeTextForBrowser\"), j = b(\"mixInto\"), k = function(l) {\n        this.construct({\n            text: l\n        });\n    };\n    j(k, g.Mixin);\n    j(k, {\n        mountComponent: function(l) {\n            g.Mixin.mountComponent.call(this, l);\n            return ((((((((((((\"\\u003Cspan \" + h.ATTR_NAME)) + \"=\\\"\")) + l)) + \"\\\"\\u003E\")) + i(this.props.text))) + \"\\u003C/span\\u003E\"));\n        },\n        receiveProps: function(l, m) {\n            if (((l.text !== this.props.text))) {\n                this.props.text = l.text;\n                g.DOMIDOperations.updateTextContentByID(this._rootNodeID, l.text);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = k;\n});\n__d(\"flattenChildren\", [\"ReactComponent\",\"ReactTextComponent\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactComponent\"), h = b(\"ReactTextComponent\"), i = b(\"throwIf\"), j = \"INVALID_CHILD\", k = ((\"You have two children with identical keys. Make sure that you set the \" + \"\\\"key\\\" property to a unique value such as a row ID.\")), l = function(n, o, p) {\n        if (Array.isArray(o)) {\n            for (var q = 0; ((q < o.length)); q++) {\n                var r = o[q];\n                l(n, r, ((((((p + \"[\")) + g.getKey(r, q))) + \"]\")));\n            };\n        ;\n        }\n         else {\n            var s = typeof o, t = ((p === \"\")), u = ((t ? ((((\"[\" + g.getKey(o, 0))) + \"]\")) : p));\n            if (((((((o === null)) || ((o === undefined)))) || ((s === \"boolean\"))))) {\n                n[u] = null;\n            }\n             else if (o.mountComponentIntoNode) {\n                n[u] = o;\n            }\n             else if (((s === \"object\"))) {\n                i(((o && ((o.nodeType === 1)))), j);\n                {\n                    var fin78keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin78i = (0);\n                    var v;\n                    for (; (fin78i < fin78keys.length); (fin78i++)) {\n                        ((v) = (fin78keys[fin78i]));\n                        {\n                            if (o.hasOwnProperty(v)) {\n                                l(n, o[v], ((((((p + \"{\")) + v)) + \"}\")));\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            }\n             else if (((s === \"string\"))) {\n                n[u] = new h(o);\n            }\n             else if (((s === \"number\"))) {\n                n[u] = new h(((\"\" + o)));\n            }\n            \n            \n            \n            \n        ;\n        ;\n        }\n    ;\n    ;\n    };\n    function m(n) {\n        if (((((n === null)) || ((n === undefined))))) {\n            return n;\n        }\n    ;\n    ;\n        var o = {\n        };\n        l(o, n, \"\");\n        return o;\n    };\n;\n    e.exports = m;\n});\n__d(\"ReactNativeComponent\", [\"CSSPropertyOperations\",\"DOMPropertyOperations\",\"ReactComponent\",\"ReactEventEmitter\",\"ReactMultiChild\",\"ReactID\",\"escapeTextForBrowser\",\"flattenChildren\",\"invariant\",\"keyOf\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSSPropertyOperations\"), h = b(\"DOMPropertyOperations\"), i = b(\"ReactComponent\"), j = b(\"ReactEventEmitter\"), k = b(\"ReactMultiChild\"), l = b(\"ReactID\"), m = b(\"escapeTextForBrowser\"), n = b(\"flattenChildren\"), o = b(\"invariant\"), p = b(\"keyOf\"), q = b(\"merge\"), r = b(\"mixInto\"), s = j.putListener, t = j.deleteListener, u = j.registrationNames, v = {\n        string: true,\n        number: true\n    }, w = p({\n        dangerouslySetInnerHTML: null\n    }), x = p({\n        style: null\n    });\n    function y(aa) {\n        if (!aa) {\n            return;\n        }\n    ;\n    ;\n        o(((((aa.children == null)) || ((aa.dangerouslySetInnerHTML == null)))));\n        o(((((aa.style == null)) || ((typeof aa.style === \"object\")))));\n    };\n;\n    function z(aa, ba) {\n        this._tagOpen = ((((\"\\u003C\" + aa)) + \" \"));\n        this._tagClose = ((ba ? \"\" : ((((\"\\u003C/\" + aa)) + \"\\u003E\"))));\n        this.tagName = aa.toUpperCase();\n    };\n;\n    z.Mixin = {\n        mountComponent: function(aa, ba) {\n            i.Mixin.mountComponent.call(this, aa, ba);\n            y(this.props);\n            return ((((this._createOpenTagMarkup() + this._createContentMarkup(ba))) + this._tagClose));\n        },\n        _createOpenTagMarkup: function() {\n            var aa = this.props, ba = this._tagOpen;\n            {\n                var fin79keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin79i = (0);\n                var ca;\n                for (; (fin79i < fin79keys.length); (fin79i++)) {\n                    ((ca) = (fin79keys[fin79i]));\n                    {\n                        if (!aa.hasOwnProperty(ca)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var da = aa[ca];\n                        if (((da == null))) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        if (u[ca]) {\n                            s(this._rootNodeID, ca, da);\n                        }\n                         else {\n                            if (((ca === x))) {\n                                if (da) {\n                                    da = aa.style = q(aa.style);\n                                }\n                            ;\n                            ;\n                                da = g.createMarkupForStyles(da);\n                            }\n                        ;\n                        ;\n                            var ea = h.createMarkupForProperty(ca, da);\n                            if (ea) {\n                                ba += ((\" \" + ea));\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var fa = m(this._rootNodeID);\n            return ((((((((((ba + \" \")) + l.ATTR_NAME)) + \"=\\\"\")) + fa)) + \"\\\"\\u003E\"));\n        },\n        _createContentMarkup: function(aa) {\n            var ba = this.props.dangerouslySetInnerHTML;\n            if (((ba != null))) {\n                if (((ba.__html != null))) {\n                    return ba.__html;\n                }\n            ;\n            ;\n            }\n             else {\n                var ca = ((v[typeof this.props.children] ? this.props.children : null)), da = ((((ca != null)) ? null : this.props.children));\n                if (((ca != null))) {\n                    return m(ca);\n                }\n                 else if (((da != null))) {\n                    return this.mountMultiChild(n(da), aa);\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            return \"\";\n        },\n        receiveProps: function(aa, ba) {\n            y(aa);\n            i.Mixin.receiveProps.call(this, aa, ba);\n        },\n        updateComponent: function(aa, ba) {\n            i.Mixin.updateComponent.call(this, aa, ba);\n            this._updateDOMProperties(ba);\n            this._updateDOMChildren(ba, aa);\n        },\n        _updateDOMProperties: function(aa) {\n            var ba = this.props, ca, da, ea;\n            {\n                var fin80keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin80i = (0);\n                (0);\n                for (; (fin80i < fin80keys.length); (fin80i++)) {\n                    ((ca) = (fin80keys[fin80i]));\n                    {\n                        if (((ba.hasOwnProperty(ca) || !aa.hasOwnProperty(ca)))) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        if (((ca === x))) {\n                            var fa = aa[ca];\n                            {\n                                var fin81keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin81i = (0);\n                                (0);\n                                for (; (fin81i < fin81keys.length); (fin81i++)) {\n                                    ((da) = (fin81keys[fin81i]));\n                                    {\n                                        if (fa.hasOwnProperty(da)) {\n                                            ea = ((ea || {\n                                            }));\n                                            ea[da] = \"\";\n                                        }\n                                    ;\n                                    ;\n                                    };\n                                };\n                            };\n                        ;\n                        }\n                         else if (((ca === w))) {\n                            i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n                        }\n                         else if (u[ca]) {\n                            t(this._rootNodeID, ca);\n                        }\n                         else i.DOMIDOperations.deletePropertyByID(this._rootNodeID, ca);\n                        \n                        \n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            {\n                var fin82keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin82i = (0);\n                (0);\n                for (; (fin82i < fin82keys.length); (fin82i++)) {\n                    ((ca) = (fin82keys[fin82i]));\n                    {\n                        var ga = ba[ca], ha = aa[ca];\n                        if (((!ba.hasOwnProperty(ca) || ((ga === ha))))) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        if (((ca === x))) {\n                            if (ga) {\n                                ga = ba.style = q(ga);\n                            }\n                        ;\n                        ;\n                            if (ha) {\n                                {\n                                    var fin83keys = ((window.top.JSBNG_Replay.forInKeys)((ha))), fin83i = (0);\n                                    (0);\n                                    for (; (fin83i < fin83keys.length); (fin83i++)) {\n                                        ((da) = (fin83keys[fin83i]));\n                                        {\n                                            if (((ha.hasOwnProperty(da) && !ga.hasOwnProperty(da)))) {\n                                                ea = ((ea || {\n                                                }));\n                                                ea[da] = \"\";\n                                            }\n                                        ;\n                                        ;\n                                        };\n                                    };\n                                };\n                            ;\n                                {\n                                    var fin84keys = ((window.top.JSBNG_Replay.forInKeys)((ga))), fin84i = (0);\n                                    (0);\n                                    for (; (fin84i < fin84keys.length); (fin84i++)) {\n                                        ((da) = (fin84keys[fin84i]));\n                                        {\n                                            if (((ga.hasOwnProperty(da) && ((ha[da] !== ga[da]))))) {\n                                                ea = ((ea || {\n                                                }));\n                                                ea[da] = ga[da];\n                                            }\n                                        ;\n                                        ;\n                                        };\n                                    };\n                                };\n                            ;\n                            }\n                             else ea = ga;\n                        ;\n                        ;\n                        }\n                         else if (((ca === w))) {\n                            var ia = ((ha && ha.__html)), ja = ((ga && ga.__html));\n                            if (((ia !== ja))) {\n                                i.DOMIDOperations.updateInnerHTMLByID(this._rootNodeID, ga);\n                            }\n                        ;\n                        ;\n                        }\n                         else if (u[ca]) {\n                            s(this._rootNodeID, ca, ga);\n                        }\n                         else i.DOMIDOperations.updatePropertyByID(this._rootNodeID, ca, ga);\n                        \n                        \n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (ea) {\n                i.DOMIDOperations.updateStylesByID(this._rootNodeID, ea);\n            }\n        ;\n        ;\n        },\n        _updateDOMChildren: function(aa, ba) {\n            var ca = this.props, da = ((v[typeof aa.children] ? aa.children : null)), ea = ((v[typeof ca.children] ? ca.children : null)), fa = ((((da != null)) ? null : aa.children)), ga = ((((ea != null)) ? null : ca.children));\n            if (((ea != null))) {\n                var ha = ((((fa != null)) && ((ga == null))));\n                if (ha) {\n                    this.updateMultiChild(null, ba);\n                }\n            ;\n            ;\n                if (((da !== ea))) {\n                    i.DOMIDOperations.updateTextContentByID(this._rootNodeID, ((\"\" + ea)));\n                }\n            ;\n            ;\n            }\n             else {\n                var ia = ((((da != null)) && ((ea == null))));\n                if (ia) {\n                    i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n                }\n            ;\n            ;\n                this.updateMultiChild(n(ca.children), ba);\n            }\n        ;\n        ;\n        },\n        unmountComponent: function() {\n            j.deleteAllListeners(this._rootNodeID);\n            i.Mixin.unmountComponent.call(this);\n            this.unmountMultiChild();\n        }\n    };\n    r(z, i.Mixin);\n    r(z, z.Mixin);\n    r(z, k.Mixin);\n    e.exports = z;\n});\n__d(\"objMapKeyVal\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        if (!h) {\n            return null;\n        }\n    ;\n    ;\n        var k = 0, l = {\n        };\n        {\n            var fin85keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin85i = (0);\n            var m;\n            for (; (fin85i < fin85keys.length); (fin85i++)) {\n                ((m) = (fin85keys[fin85i]));\n                {\n                    if (h.hasOwnProperty(m)) {\n                        l[m] = i.call(j, m, h[m], k++);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        return l;\n    };\n;\n    e.exports = g;\n});\n__d(\"ReactDOM\", [\"ReactNativeComponent\",\"mergeInto\",\"objMapKeyVal\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactNativeComponent\"), h = b(\"mergeInto\"), i = b(\"objMapKeyVal\");\n    function j(m, n) {\n        var o = function() {\n        \n        };\n        o.prototype = new g(m, n);\n        o.prototype.constructor = o;\n        var p = function(q, r) {\n            var s = new o();\n            s.construct.apply(s, arguments);\n            return s;\n        };\n        p.componentConstructor = o;\n        return p;\n    };\n;\n    var k = i({\n        a: false,\n        abbr: false,\n        address: false,\n        audio: false,\n        b: false,\n        blockquote: false,\n        body: false,\n        br: true,\n        button: false,\n        code: false,\n        col: true,\n        colgroup: false,\n        dd: false,\n        div: false,\n        section: false,\n        dl: false,\n        dt: false,\n        em: false,\n        embed: true,\n        fieldset: false,\n        figcaption: false,\n        figure: false,\n        footer: false,\n        form: false,\n        h1: false,\n        h2: false,\n        h3: false,\n        h4: false,\n        h5: false,\n        h6: false,\n        header: false,\n        hr: true,\n        i: false,\n        iframe: false,\n        img: true,\n        input: true,\n        label: false,\n        legend: false,\n        li: false,\n        line: false,\n        nav: false,\n        object: false,\n        ol: false,\n        optgroup: false,\n        option: false,\n        p: false,\n        param: true,\n        pre: false,\n        select: false,\n        small: false,\n        source: false,\n        span: false,\n        sub: false,\n        sup: false,\n        strong: false,\n        table: false,\n        tbody: false,\n        td: false,\n        textarea: false,\n        tfoot: false,\n        th: false,\n        thead: false,\n        time: false,\n        title: false,\n        tr: false,\n        u: false,\n        ul: false,\n        video: false,\n        wbr: false,\n        circle: false,\n        g: false,\n        path: false,\n        polyline: false,\n        rect: false,\n        svg: false,\n        text: false\n    }, j), l = {\n        injectComponentClasses: function(m) {\n            h(k, m);\n        }\n    };\n    k.injection = l;\n    e.exports = k;\n});\n__d(\"ReactProps\", [\"createObjectFrom\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"createObjectFrom\"), h = b(\"invariant\"), i = {\n        array: k(\"array\"),\n        bool: k(\"boolean\"),\n        func: k(\"function\"),\n        number: k(\"number\"),\n        object: k(\"object\"),\n        string: k(\"string\"),\n        oneOf: l,\n        instanceOf: m\n    }, j = \"\\u003C\\u003Canonymous\\u003E\\u003E\";\n    function k(o) {\n        function p(q, r, s) {\n            var t = typeof q;\n            if (((((t === \"object\")) && Array.isArray(q)))) {\n                t = \"array\";\n            }\n        ;\n        ;\n            h(((t === o)));\n        };\n    ;\n        return n(p);\n    };\n;\n    function l(o) {\n        var p = g(o);\n        function q(r, s, t) {\n            h(p[r]);\n        };\n    ;\n        return n(q);\n    };\n;\n    function m(o) {\n        function p(q, r, s) {\n            h(((q instanceof o)));\n        };\n    ;\n        return n(p);\n    };\n;\n    function n(o) {\n        function p(q) {\n            function r(s, t, u) {\n                var v = s[t];\n                if (((v != null))) {\n                    o(v, t, ((u || j)));\n                }\n                 else h(!q);\n            ;\n            ;\n            };\n        ;\n            if (!q) {\n                r.isRequired = p(true);\n            }\n        ;\n        ;\n            return r;\n        };\n    ;\n        return p(false);\n    };\n;\n    e.exports = i;\n});\n__d(\"ReactServerRendering\", [\"ReactReconcileTransaction\",\"ReactInstanceHandles\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactReconcileTransaction\"), h = b(\"ReactInstanceHandles\");\n    function i(j, k) {\n        var l = h.createReactRootID(), m = g.getPooled();\n        m.reinitializeTransaction();\n        try {\n            m.perform(function() {\n                k(j.mountComponent(l, m));\n            }, null);\n        } finally {\n            g.release(m);\n        };\n    ;\n    };\n;\n    e.exports = {\n        renderComponentToString: i\n    };\n});\n__d(\"ReactDOMForm\", [\"ReactCompositeComponent\",\"ReactDOM\",\"ReactEventEmitter\",\"EventConstants\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactCompositeComponent\"), h = b(\"ReactDOM\"), i = b(\"ReactEventEmitter\"), j = b(\"EventConstants\"), k = h.form, l = g.createClass({\n        render: function() {\n            return this.transferPropsTo(k(null, this.props.children));\n        },\n        componentDidMount: function(m) {\n            i.trapBubbledEvent(j.topLevelTypes.topSubmit, \"submit\", m);\n        }\n    });\n    e.exports = l;\n});\n__d(\"ReactDOMInput\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"merge\"), k = i.input, l = h.createClass({\n        getInitialState: function() {\n            return {\n                checked: ((this.props.defaultChecked || false)),\n                value: ((this.props.defaultValue || \"\"))\n            };\n        },\n        shouldComponentUpdate: function() {\n            return !this._isChanging;\n        },\n        getChecked: function() {\n            return ((((this.props.checked != null)) ? this.props.checked : this.state.checked));\n        },\n        getValue: function() {\n            return ((((this.props.value != null)) ? this.props.value : this.state.value));\n        },\n        render: function() {\n            var m = j(this.props);\n            m.checked = this.getChecked();\n            m.value = this.getValue();\n            m.onChange = this.handleChange;\n            return k(m, this.props.children);\n        },\n        componentDidUpdate: function(m, n, o) {\n            if (((this.props.checked != null))) {\n                g.setValueForProperty(o, \"checked\", ((this.props.checked || false)));\n            }\n        ;\n        ;\n            if (((this.props.value != null))) {\n                g.setValueForProperty(o, \"value\", ((this.props.value || \"\")));\n            }\n        ;\n        ;\n        },\n        handleChange: h.autoBind(function(JSBNG__event) {\n            var m;\n            if (this.props.onChange) {\n                this._isChanging = true;\n                m = this.props.onChange(JSBNG__event);\n                this._isChanging = false;\n            }\n        ;\n        ;\n            this.setState({\n                checked: JSBNG__event.target.checked,\n                value: JSBNG__event.target.value\n            });\n            return m;\n        })\n    });\n    e.exports = l;\n});\n__d(\"ReactDOMTextarea\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"invariant\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"invariant\"), k = b(\"merge\"), l = i.textarea, m = {\n        string: true,\n        number: true\n    }, n = h.createClass({\n        getInitialState: function() {\n            var o = this.props.defaultValue, p = this.props.children;\n            if (((p != null))) {\n                j(((o == null)));\n                if (Array.isArray(p)) {\n                    j(((p.length <= 1)));\n                    p = p[0];\n                }\n            ;\n            ;\n                j(m[typeof p]);\n                o = ((\"\" + p));\n            }\n        ;\n        ;\n            o = ((o || \"\"));\n            return {\n                initialValue: ((((this.props.value != null)) ? this.props.value : o)),\n                value: o\n            };\n        },\n        shouldComponentUpdate: function() {\n            return !this._isChanging;\n        },\n        getValue: function() {\n            return ((((this.props.value != null)) ? this.props.value : this.state.value));\n        },\n        render: function() {\n            var o = k(this.props);\n            j(((o.dangerouslySetInnerHTML == null)));\n            o.value = this.getValue();\n            o.onChange = this.handleChange;\n            return l(o, this.state.initialValue);\n        },\n        componentDidUpdate: function(o, p, q) {\n            if (((this.props.value != null))) {\n                g.setValueForProperty(q, \"value\", ((this.props.value || \"\")));\n            }\n        ;\n        ;\n        },\n        handleChange: h.autoBind(function(JSBNG__event) {\n            var o;\n            if (this.props.onChange) {\n                this._isChanging = true;\n                o = this.props.onChange(JSBNG__event);\n                this._isChanging = false;\n            }\n        ;\n        ;\n            this.setState({\n                value: JSBNG__event.target.value\n            });\n            return o;\n        })\n    });\n    e.exports = n;\n});\n__d(\"DefaultDOMPropertyConfig\", [\"DOMProperty\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMProperty\"), h = g.injection.MUST_USE_ATTRIBUTE, i = g.injection.MUST_USE_PROPERTY, j = g.injection.HAS_BOOLEAN_VALUE, k = g.injection.HAS_SIDE_EFFECTS, l = {\n        isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n        Properties: {\n            accept: null,\n            action: null,\n            ajaxify: h,\n            allowFullScreen: ((h | j)),\n            alt: null,\n            autoComplete: null,\n            autoplay: j,\n            cellPadding: null,\n            cellSpacing: null,\n            checked: ((i | j)),\n            className: i,\n            colSpan: null,\n            contentEditable: null,\n            controls: ((i | j)),\n            data: null,\n            dir: null,\n            disabled: ((i | j)),\n            draggable: null,\n            enctype: null,\n            height: h,\n            hidden: ((h | j)),\n            href: null,\n            htmlFor: null,\n            id: i,\n            max: null,\n            method: null,\n            min: null,\n            multiple: ((i | j)),\n            JSBNG__name: null,\n            poster: null,\n            preload: null,\n            placeholder: null,\n            rel: null,\n            required: j,\n            role: h,\n            scrollLeft: i,\n            scrollTop: i,\n            selected: ((i | j)),\n            spellCheck: null,\n            src: null,\n            step: null,\n            style: null,\n            tabIndex: null,\n            target: null,\n            title: null,\n            type: null,\n            value: ((i | k)),\n            width: h,\n            wmode: h,\n            cx: i,\n            cy: i,\n            d: i,\n            fill: i,\n            fx: i,\n            fy: i,\n            points: i,\n            r: i,\n            stroke: i,\n            strokeLinecap: i,\n            strokeWidth: i,\n            transform: i,\n            x: i,\n            x1: i,\n            x2: i,\n            version: i,\n            viewBox: i,\n            y: i,\n            y1: i,\n            y2: i,\n            spreadMethod: i,\n            offset: i,\n            stopColor: i,\n            stopOpacity: i,\n            gradientUnits: i,\n            gradientTransform: i\n        },\n        DOMAttributeNames: {\n            className: \"class\",\n            htmlFor: \"for\",\n            strokeLinecap: \"stroke-linecap\",\n            strokeWidth: \"stroke-width\",\n            stopColor: \"stop-color\",\n            stopOpacity: \"stop-opacity\"\n        },\n        DOMPropertyNames: {\n            autoComplete: \"autocomplete\",\n            spellCheck: \"spellcheck\"\n        },\n        DOMMutationMethods: {\n            className: function(m, n) {\n                m.className = ((n || \"\"));\n            }\n        }\n    };\n    e.exports = l;\n});\n__d(\"DefaultEventPluginOrder\", [\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyOf\"), h = [g({\n        ResponderEventPlugin: null\n    }),g({\n        SimpleEventPlugin: null\n    }),g({\n        TapEventPlugin: null\n    }),g({\n        EnterLeaveEventPlugin: null\n    }),g({\n        ChangeEventPlugin: null\n    }),g({\n        AnalyticsEventPlugin: null\n    }),];\n    e.exports = h;\n});\n__d(\"SyntheticEvent\", [\"PooledClass\",\"emptyFunction\",\"getEventTarget\",\"merge\",\"mergeInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"PooledClass\"), h = b(\"emptyFunction\"), i = b(\"getEventTarget\"), j = b(\"merge\"), k = b(\"mergeInto\"), l = {\n        type: null,\n        target: i,\n        currentTarget: null,\n        eventPhase: null,\n        bubbles: null,\n        cancelable: null,\n        timeStamp: function(JSBNG__event) {\n            return ((JSBNG__event.timeStamp || JSBNG__Date.now()));\n        },\n        defaultPrevented: null,\n        isTrusted: null\n    };\n    function m(n, o, p) {\n        this.dispatchConfig = n;\n        this.dispatchMarker = o;\n        this.nativeEvent = p;\n        var q = this.constructor.Interface;\n        {\n            var fin86keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin86i = (0);\n            var r;\n            for (; (fin86i < fin86keys.length); (fin86i++)) {\n                ((r) = (fin86keys[fin86i]));\n                {\n                    var s = q[r];\n                    if (s) {\n                        this[r] = s(p);\n                    }\n                     else this[r] = p[r];\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        if (((p.defaultPrevented || ((p.returnValue === false))))) {\n            this.isDefaultPrevented = h.thatReturnsTrue;\n        }\n         else this.isDefaultPrevented = h.thatReturnsFalse;\n    ;\n    ;\n        this.isPropagationStopped = h.thatReturnsFalse;\n    };\n;\n    k(m.prototype, {\n        preventDefault: function() {\n            this.defaultPrevented = true;\n            var JSBNG__event = this.nativeEvent;\n            ((JSBNG__event.preventDefault ? JSBNG__event.preventDefault() : JSBNG__event.returnValue = false));\n            this.isDefaultPrevented = h.thatReturnsTrue;\n        },\n        stopPropagation: function() {\n            var JSBNG__event = this.nativeEvent;\n            ((JSBNG__event.stopPropagation ? JSBNG__event.stopPropagation() : JSBNG__event.cancelBubble = true));\n            this.isPropagationStopped = h.thatReturnsTrue;\n        },\n        persist: function() {\n            this.isPersistent = h.thatReturnsTrue;\n        },\n        isPersistent: h.thatReturnsFalse,\n        destructor: function() {\n            var n = this.constructor.Interface;\n            {\n                var fin87keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin87i = (0);\n                var o;\n                for (; (fin87i < fin87keys.length); (fin87i++)) {\n                    ((o) = (fin87keys[fin87i]));\n                    {\n                        this[o] = null;\n                    ;\n                    };\n                };\n            };\n        ;\n            this.dispatchConfig = null;\n            this.dispatchMarker = null;\n            this.nativeEvent = null;\n        }\n    });\n    m.Interface = l;\n    m.augmentClass = function(n, o) {\n        var p = this, q = Object.create(p.prototype);\n        k(q, n.prototype);\n        n.prototype = q;\n        n.prototype.constructor = n;\n        n.Interface = j(p.Interface, o);\n        n.augmentClass = p.augmentClass;\n        g.addPoolingTo(n, g.threeArgumentPooler);\n    };\n    g.addPoolingTo(m, g.threeArgumentPooler);\n    e.exports = m;\n});\n__d(\"SyntheticUIEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticEvent\"), h = {\n        view: null,\n        detail: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n;\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticMouseEvent\", [\"SyntheticUIEvent\",\"ViewportMetrics\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = b(\"ViewportMetrics\"), i = {\n        JSBNG__screenX: null,\n        JSBNG__screenY: null,\n        clientX: null,\n        clientY: null,\n        ctrlKey: null,\n        shiftKey: null,\n        altKey: null,\n        metaKey: null,\n        button: function(JSBNG__event) {\n            var k = JSBNG__event.button;\n            if (((\"which\" in JSBNG__event))) {\n                return k;\n            }\n        ;\n        ;\n            return ((((k === 2)) ? 2 : ((((k === 4)) ? 1 : 0))));\n        },\n        buttons: null,\n        relatedTarget: function(JSBNG__event) {\n            return ((JSBNG__event.relatedTarget || ((((JSBNG__event.fromElement === JSBNG__event.srcElement)) ? JSBNG__event.toElement : JSBNG__event.fromElement))));\n        },\n        pageX: function(JSBNG__event) {\n            return ((((\"pageX\" in JSBNG__event)) ? JSBNG__event.pageX : ((JSBNG__event.clientX + h.currentScrollLeft))));\n        },\n        pageY: function(JSBNG__event) {\n            return ((((\"pageY\" in JSBNG__event)) ? JSBNG__event.pageY : ((JSBNG__event.clientY + h.currentScrollTop))));\n        }\n    };\n    function j(k, l, m) {\n        g.call(this, k, l, m);\n    };\n;\n    g.augmentClass(j, i);\n    e.exports = j;\n});\n__d(\"EnterLeaveEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"ExecutionEnvironment\",\"ReactInstanceHandles\",\"SyntheticMouseEvent\",\"ReactID\",\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"ExecutionEnvironment\"), j = b(\"ReactInstanceHandles\"), k = b(\"SyntheticMouseEvent\"), l = b(\"ReactID\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = j.getFirstReactDOM, p = {\n        mouseEnter: {\n            registrationName: m({\n                onMouseEnter: null\n            })\n        },\n        mouseLeave: {\n            registrationName: m({\n                onMouseLeave: null\n            })\n        }\n    }, q = {\n        eventTypes: p,\n        extractEvents: function(r, s, t, u) {\n            if (((((r === n.topMouseOver)) && ((u.relatedTarget || u.fromElement))))) {\n                return null;\n            }\n        ;\n        ;\n            if (((((r !== n.topMouseOut)) && ((r !== n.topMouseOver))))) {\n                return null;\n            }\n        ;\n        ;\n            var v, w;\n            if (((r === n.topMouseOut))) {\n                v = s;\n                w = ((o(((u.relatedTarget || u.toElement))) || i.global));\n            }\n             else {\n                v = i.global;\n                w = s;\n            }\n        ;\n        ;\n            if (((v === w))) {\n                return null;\n            }\n        ;\n        ;\n            var x = ((v ? l.getID(v) : \"\")), y = ((w ? l.getID(w) : \"\")), z = k.getPooled(p.mouseLeave, x, u), aa = k.getPooled(p.mouseEnter, y, u);\n            h.accumulateEnterLeaveDispatches(z, aa, x, y);\n            return [z,aa,];\n        }\n    };\n    e.exports = q;\n});\n__d(\"ChangeEventPlugin\", [\"EventConstants\",\"EventPluginHub\",\"EventPropagators\",\"ExecutionEnvironment\",\"SyntheticEvent\",\"isEventSupported\",\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventPluginHub\"), i = b(\"EventPropagators\"), j = b(\"ExecutionEnvironment\"), k = b(\"SyntheticEvent\"), l = b(\"isEventSupported\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = {\n        change: {\n            phasedRegistrationNames: {\n                bubbled: m({\n                    onChange: null\n                }),\n                captured: m({\n                    onChangeCapture: null\n                })\n            }\n        }\n    }, p = null, q = null, r = null, s = null;\n    function t(na) {\n        return ((((na.nodeName === \"SELECT\")) || ((((na.nodeName === \"INPUT\")) && ((na.type === \"file\"))))));\n    };\n;\n    var u = false;\n    if (j.canUseDOM) {\n        u = ((l(\"change\") && ((!((\"documentMode\" in JSBNG__document)) || ((JSBNG__document.documentMode > 8))))));\n    }\n;\n;\n    function v(na) {\n        var JSBNG__event = k.getPooled(o.change, q, na);\n        i.accumulateTwoPhaseDispatches(JSBNG__event);\n        h.enqueueEvents(JSBNG__event);\n        h.processEventQueue();\n    };\n;\n    function w(na, oa) {\n        p = na;\n        q = oa;\n        p.JSBNG__attachEvent(\"JSBNG__onchange\", v);\n    };\n;\n    function x() {\n        if (!p) {\n            return;\n        }\n    ;\n    ;\n        p.JSBNG__detachEvent(\"JSBNG__onchange\", v);\n        p = null;\n        q = null;\n    };\n;\n    function y(na, oa, pa) {\n        if (((na === n.topChange))) {\n            return pa;\n        }\n    ;\n    ;\n    };\n;\n    function z(na, oa, pa) {\n        if (((na === n.topFocus))) {\n            x();\n            w(oa, pa);\n        }\n         else if (((na === n.topBlur))) {\n            x();\n        }\n        \n    ;\n    ;\n    };\n;\n    var aa = false;\n    if (j.canUseDOM) {\n        aa = ((l(\"input\") && ((!((\"documentMode\" in JSBNG__document)) || ((JSBNG__document.documentMode > 9))))));\n    }\n;\n;\n    var ba = {\n        color: true,\n        date: true,\n        datetime: true,\n        \"datetime-local\": true,\n        email: true,\n        month: true,\n        number: true,\n        password: true,\n        range: true,\n        search: true,\n        tel: true,\n        text: true,\n        time: true,\n        url: true,\n        week: true\n    };\n    function ca(na) {\n        return ((((((na.nodeName === \"INPUT\")) && ba[na.type])) || ((na.nodeName === \"TEXTAREA\"))));\n    };\n;\n    var da = {\n        get: function() {\n            return s.get.call(this);\n        },\n        set: function(na) {\n            r = na;\n            s.set.call(this, na);\n        }\n    };\n    function ea(na, oa) {\n        p = na;\n        q = oa;\n        r = na.value;\n        s = Object.getOwnPropertyDescriptor(na.constructor.prototype, \"value\");\n        Object.defineProperty(p, \"value\", da);\n        p.JSBNG__attachEvent(\"onpropertychange\", ga);\n    };\n;\n    function fa() {\n        if (!p) {\n            return;\n        }\n    ;\n    ;\n        delete p.value;\n        p.JSBNG__detachEvent(\"onpropertychange\", ga);\n        p = null;\n        q = null;\n        r = null;\n        s = null;\n    };\n;\n    function ga(na) {\n        if (((na.propertyName !== \"value\"))) {\n            return;\n        }\n    ;\n    ;\n        var oa = na.srcElement.value;\n        if (((oa === r))) {\n            return;\n        }\n    ;\n    ;\n        r = oa;\n        v(na);\n    };\n;\n    function ha(na, oa, pa) {\n        if (((na === n.topInput))) {\n            return pa;\n        }\n    ;\n    ;\n    };\n;\n    function ia(na, oa, pa) {\n        if (((na === n.topFocus))) {\n            fa();\n            ea(oa, pa);\n        }\n         else if (((na === n.topBlur))) {\n            fa();\n        }\n        \n    ;\n    ;\n    };\n;\n    function ja(na, oa, pa) {\n        if (((((((na === n.topSelectionChange)) || ((na === n.topKeyUp)))) || ((na === n.topKeyDown))))) {\n            if (((p && ((p.value !== r))))) {\n                r = p.value;\n                return q;\n            }\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function ka(na) {\n        return ((((na.nodeName === \"INPUT\")) && ((((na.type === \"checkbox\")) || ((na.type === \"radio\"))))));\n    };\n;\n    function la(na, oa, pa) {\n        if (((na === n.topClick))) {\n            return pa;\n        }\n    ;\n    ;\n    };\n;\n    var ma = {\n        eventTypes: o,\n        extractEvents: function(na, oa, pa, qa) {\n            var ra, sa;\n            if (t(oa)) {\n                if (u) {\n                    ra = y;\n                }\n                 else sa = z;\n            ;\n            ;\n            }\n             else if (ca(oa)) {\n                if (aa) {\n                    ra = ha;\n                }\n                 else {\n                    ra = ja;\n                    sa = ia;\n                }\n            ;\n            ;\n            }\n             else if (ka(oa)) {\n                ra = la;\n            }\n            \n            \n        ;\n        ;\n            if (ra) {\n                var ta = ra(na, oa, pa);\n                if (ta) {\n                    var JSBNG__event = k.getPooled(o.change, ta, qa);\n                    i.accumulateTwoPhaseDispatches(JSBNG__event);\n                    return JSBNG__event;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (sa) {\n                sa(na, oa, pa);\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = ma;\n});\n__d(\"SyntheticFocusEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = {\n        relatedTarget: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n;\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticKeyboardEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = {\n        char: null,\n        key: null,\n        JSBNG__location: null,\n        ctrlKey: null,\n        shiftKey: null,\n        altKey: null,\n        metaKey: null,\n        repeat: null,\n        locale: null,\n        charCode: null,\n        keyCode: null,\n        which: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n;\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticMutationEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticEvent\"), h = {\n        relatedNode: null,\n        prevValue: null,\n        newValue: null,\n        attrName: null,\n        attrChange: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n;\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticTouchEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticUIEvent\"), h = {\n        touches: null,\n        targetTouches: null,\n        changedTouches: null,\n        altKey: null,\n        metaKey: null,\n        ctrlKey: null,\n        shiftKey: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n;\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SyntheticWheelEvent\", [\"SyntheticMouseEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SyntheticMouseEvent\"), h = {\n        deltaX: function(JSBNG__event) {\n            return ((((\"deltaX\" in JSBNG__event)) ? JSBNG__event.deltaX : ((((\"wheelDeltaX\" in JSBNG__event)) ? -JSBNG__event.wheelDeltaX : 0))));\n        },\n        deltaY: function(JSBNG__event) {\n            return ((((\"deltaY\" in JSBNG__event)) ? -JSBNG__event.deltaY : ((((\"wheelDeltaY\" in JSBNG__event)) ? JSBNG__event.wheelDeltaY : ((((\"wheelDelta\" in JSBNG__event)) ? JSBNG__event.wheelData : 0))))));\n        },\n        deltaZ: null,\n        deltaMode: null\n    };\n    function i(j, k, l) {\n        g.call(this, j, k, l);\n    };\n;\n    g.augmentClass(i, h);\n    e.exports = i;\n});\n__d(\"SimpleEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"SyntheticEvent\",\"SyntheticFocusEvent\",\"SyntheticKeyboardEvent\",\"SyntheticMouseEvent\",\"SyntheticMutationEvent\",\"SyntheticTouchEvent\",\"SyntheticUIEvent\",\"SyntheticWheelEvent\",\"invariant\",\"keyOf\",], function(a, b, c, d, e, f) {\n    var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"SyntheticEvent\"), j = b(\"SyntheticFocusEvent\"), k = b(\"SyntheticKeyboardEvent\"), l = b(\"SyntheticMouseEvent\"), m = b(\"SyntheticMutationEvent\"), n = b(\"SyntheticTouchEvent\"), o = b(\"SyntheticUIEvent\"), p = b(\"SyntheticWheelEvent\"), q = b(\"invariant\"), r = b(\"keyOf\"), s = g.topLevelTypes, t = {\n        JSBNG__blur: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onBlur: true\n                }),\n                captured: r({\n                    onBlurCapture: true\n                })\n            }\n        },\n        click: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onClick: true\n                }),\n                captured: r({\n                    onClickCapture: true\n                })\n            }\n        },\n        doubleClick: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDoubleClick: true\n                }),\n                captured: r({\n                    onDoubleClickCapture: true\n                })\n            }\n        },\n        drag: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDrag: true\n                }),\n                captured: r({\n                    onDragCapture: true\n                })\n            }\n        },\n        dragEnd: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragEnd: true\n                }),\n                captured: r({\n                    onDragEndCapture: true\n                })\n            }\n        },\n        dragEnter: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragEnter: true\n                }),\n                captured: r({\n                    onDragEnterCapture: true\n                })\n            }\n        },\n        dragExit: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragExit: true\n                }),\n                captured: r({\n                    onDragExitCapture: true\n                })\n            }\n        },\n        dragLeave: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragLeave: true\n                }),\n                captured: r({\n                    onDragLeaveCapture: true\n                })\n            }\n        },\n        dragOver: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragOver: true\n                }),\n                captured: r({\n                    onDragOverCapture: true\n                })\n            }\n        },\n        dragStart: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDragStart: true\n                }),\n                captured: r({\n                    onDragStartCapture: true\n                })\n            }\n        },\n        drop: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDrop: true\n                }),\n                captured: r({\n                    onDropCapture: true\n                })\n            }\n        },\n        DOMCharacterDataModified: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onDOMCharacterDataModified: true\n                }),\n                captured: r({\n                    onDOMCharacterDataModifiedCapture: true\n                })\n            }\n        },\n        JSBNG__focus: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onFocus: true\n                }),\n                captured: r({\n                    onFocusCapture: true\n                })\n            }\n        },\n        input: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onInput: true\n                }),\n                captured: r({\n                    onInputCapture: true\n                })\n            }\n        },\n        keyDown: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onKeyDown: true\n                }),\n                captured: r({\n                    onKeyDownCapture: true\n                })\n            }\n        },\n        keyPress: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onKeyPress: true\n                }),\n                captured: r({\n                    onKeyPressCapture: true\n                })\n            }\n        },\n        keyUp: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onKeyUp: true\n                }),\n                captured: r({\n                    onKeyUpCapture: true\n                })\n            }\n        },\n        mouseDown: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onMouseDown: true\n                }),\n                captured: r({\n                    onMouseDownCapture: true\n                })\n            }\n        },\n        mouseMove: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onMouseMove: true\n                }),\n                captured: r({\n                    onMouseMoveCapture: true\n                })\n            }\n        },\n        mouseUp: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onMouseUp: true\n                }),\n                captured: r({\n                    onMouseUpCapture: true\n                })\n            }\n        },\n        JSBNG__scroll: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onScroll: true\n                }),\n                captured: r({\n                    onScrollCapture: true\n                })\n            }\n        },\n        submit: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onSubmit: true\n                }),\n                captured: r({\n                    onSubmitCapture: true\n                })\n            }\n        },\n        touchCancel: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchCancel: true\n                }),\n                captured: r({\n                    onTouchCancelCapture: true\n                })\n            }\n        },\n        touchEnd: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchEnd: true\n                }),\n                captured: r({\n                    onTouchEndCapture: true\n                })\n            }\n        },\n        touchMove: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchMove: true\n                }),\n                captured: r({\n                    onTouchMoveCapture: true\n                })\n            }\n        },\n        touchStart: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onTouchStart: true\n                }),\n                captured: r({\n                    onTouchStartCapture: true\n                })\n            }\n        },\n        wheel: {\n            phasedRegistrationNames: {\n                bubbled: r({\n                    onWheel: true\n                }),\n                captured: r({\n                    onWheelCapture: true\n                })\n            }\n        }\n    }, u = {\n        topBlur: t.JSBNG__blur,\n        topClick: t.click,\n        topDoubleClick: t.doubleClick,\n        topDOMCharacterDataModified: t.DOMCharacterDataModified,\n        topDrag: t.drag,\n        topDragEnd: t.dragEnd,\n        topDragEnter: t.dragEnter,\n        topDragExit: t.dragExit,\n        topDragLeave: t.dragLeave,\n        topDragOver: t.dragOver,\n        topDragStart: t.dragStart,\n        topDrop: t.drop,\n        topFocus: t.JSBNG__focus,\n        topInput: t.input,\n        topKeyDown: t.keyDown,\n        topKeyPress: t.keyPress,\n        topKeyUp: t.keyUp,\n        topMouseDown: t.mouseDown,\n        topMouseMove: t.mouseMove,\n        topMouseUp: t.mouseUp,\n        topScroll: t.JSBNG__scroll,\n        topSubmit: t.submit,\n        topTouchCancel: t.touchCancel,\n        topTouchEnd: t.touchEnd,\n        topTouchMove: t.touchMove,\n        topTouchStart: t.touchStart,\n        topWheel: t.wheel\n    }, v = {\n        eventTypes: t,\n        executeDispatch: function(JSBNG__event, w, x) {\n            var y = w(JSBNG__event, x);\n            if (((y === false))) {\n                JSBNG__event.stopPropagation();\n                JSBNG__event.preventDefault();\n            }\n        ;\n        ;\n        },\n        extractEvents: function(w, x, y, z) {\n            var aa = u[w];\n            if (!aa) {\n                return null;\n            }\n        ;\n        ;\n            var ba;\n            switch (w) {\n              case s.topInput:\n            \n              case s.topSubmit:\n                ba = i;\n                break;\n              case s.topKeyDown:\n            \n              case s.topKeyPress:\n            \n              case s.topKeyUp:\n                ba = k;\n                break;\n              case s.topBlur:\n            \n              case s.topFocus:\n                ba = j;\n                break;\n              case s.topClick:\n            \n              case s.topDoubleClick:\n            \n              case s.topDrag:\n            \n              case s.topDragEnd:\n            \n              case s.topDragEnter:\n            \n              case s.topDragExit:\n            \n              case s.topDragLeave:\n            \n              case s.topDragOver:\n            \n              case s.topDragStart:\n            \n              case s.topDrop:\n            \n              case s.topMouseDown:\n            \n              case s.topMouseMove:\n            \n              case s.topMouseUp:\n                ba = l;\n                break;\n              case s.topDOMCharacterDataModified:\n                ba = m;\n                break;\n              case s.topTouchCancel:\n            \n              case s.topTouchEnd:\n            \n              case s.topTouchMove:\n            \n              case s.topTouchStart:\n                ba = n;\n                break;\n              case s.topScroll:\n                ba = o;\n                break;\n              case s.topWheel:\n                ba = p;\n                break;\n            };\n        ;\n            q(ba);\n            var JSBNG__event = ba.getPooled(aa, y, z);\n            h.accumulateTwoPhaseDispatches(JSBNG__event);\n            return JSBNG__event;\n        }\n    };\n    e.exports = v;\n});\n__d(\"ReactDefaultInjection\", [\"ReactDOM\",\"ReactDOMForm\",\"ReactDOMInput\",\"ReactDOMTextarea\",\"DefaultDOMPropertyConfig\",\"DOMProperty\",\"DefaultEventPluginOrder\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"EventPluginHub\",\"ReactInstanceHandles\",\"SimpleEventPlugin\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactDOM\"), h = b(\"ReactDOMForm\"), i = b(\"ReactDOMInput\"), j = b(\"ReactDOMTextarea\"), k = b(\"DefaultDOMPropertyConfig\"), l = b(\"DOMProperty\"), m = b(\"DefaultEventPluginOrder\"), n = b(\"EnterLeaveEventPlugin\"), o = b(\"ChangeEventPlugin\"), p = b(\"EventPluginHub\"), q = b(\"ReactInstanceHandles\"), r = b(\"SimpleEventPlugin\");\n    function s() {\n        p.injection.injectEventPluginOrder(m);\n        p.injection.injectInstanceHandle(q);\n        p.injection.injectEventPluginsByName({\n            SimpleEventPlugin: r,\n            EnterLeaveEventPlugin: n,\n            ChangeEventPlugin: o\n        });\n        g.injection.injectComponentClasses({\n            form: h,\n            input: i,\n            textarea: j\n        });\n        l.injection.injectDOMPropertyConfig(k);\n    };\n;\n    e.exports = {\n        inject: s\n    };\n});\n__d(\"React\", [\"ReactCompositeComponent\",\"ReactComponent\",\"ReactDOM\",\"ReactMount\",\"ReactProps\",\"ReactServerRendering\",\"ReactDefaultInjection\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactCompositeComponent\"), h = b(\"ReactComponent\"), i = b(\"ReactDOM\"), j = b(\"ReactMount\"), k = b(\"ReactProps\"), l = b(\"ReactServerRendering\"), m = b(\"ReactDefaultInjection\");\n    m.inject();\n    var n = {\n        DOM: i,\n        Props: k,\n        initializeTouchEvents: function(o) {\n            j.useTouchEvents = o;\n        },\n        autoBind: g.autoBind,\n        createClass: g.createClass,\n        constructAndRenderComponent: j.constructAndRenderComponent,\n        constructAndRenderComponentByID: j.constructAndRenderComponentByID,\n        renderComponent: j.renderComponent,\n        renderComponentToString: l.renderComponentToString,\n        unmountAndReleaseReactRootNode: j.unmountAndReleaseReactRootNode,\n        isValidComponent: h.isValidComponent\n    };\n    e.exports = n;\n});\n__d(\"TrackingNodes\", [], function(a, b, c, d, e, f) {\n    var g = {\n        types: {\n            USER_NAME: 2,\n            LIKE_LINK: 5,\n            UNLIKE_LINK: 6,\n            ATTACHMENT: 15,\n            SHARE_LINK: 17,\n            USER_MESSAGE: 18,\n            SOURCE: 21,\n            BLINGBOX: 22,\n            VIEW_ALL_COMMENTS: 24,\n            COMMENT: 25,\n            COMMENT_LINK: 26,\n            SMALL_ACTOR_PHOTO: 27,\n            XBUTTON: 29,\n            HIDE_LINK: 30,\n            REPORT_SPAM_LINK: 31,\n            HIDE_ALL_LINK: 32,\n            ADD_COMMENT_BOX: 34,\n            UFI: 36,\n            DROPDOWN_BUTTON: 55,\n            UNHIDE_LINK: 71\n        },\n        BASE_CODE_START: 58,\n        BASE_CODE_END: 126,\n        BASE_CODE_SIZE: 69,\n        PREFIX_CODE_START: 42,\n        PREFIX_CODE_END: 47,\n        PREFIX_CODE_SIZE: 6,\n        encodeTrackingInfo: function(h, i) {\n            var j = ((((h - 1)) % g.BASE_CODE_SIZE)), k = parseInt(((((h - 1)) / g.BASE_CODE_SIZE)), 10);\n            if (((((h < 1)) || ((k > g.PREFIX_CODE_SIZE))))) {\n                throw Error(((\"Invalid tracking node: \" + h)));\n            }\n        ;\n        ;\n            var l = \"\";\n            if (((k > 0))) {\n                l += String.fromCharCode(((((k - 1)) + g.PREFIX_CODE_START)));\n            }\n        ;\n        ;\n            l += String.fromCharCode(((j + g.BASE_CODE_START)));\n            if (((((typeof i != \"undefined\")) && ((i > 0))))) {\n                l += String.fromCharCode(((((48 + Math.min(i, 10))) - 1)));\n            }\n        ;\n        ;\n            return l;\n        },\n        decodeTN: function(h) {\n            if (((h.length === 0))) {\n                return [0,];\n            }\n        ;\n        ;\n            var i = h.charCodeAt(0), j = 1, k, l;\n            if (((((i >= g.PREFIX_CODE_START)) && ((i <= g.PREFIX_CODE_END))))) {\n                if (((h.length == 1))) {\n                    return [0,];\n                }\n            ;\n            ;\n                l = ((((i - g.PREFIX_CODE_START)) + 1));\n                k = h.charCodeAt(1);\n                j = 2;\n            }\n             else {\n                l = 0;\n                k = i;\n            }\n        ;\n        ;\n            if (((((k < g.BASE_CODE_START)) || ((k > g.BASE_CODE_END))))) {\n                return [0,];\n            }\n        ;\n        ;\n            var m = ((((((l * g.BASE_CODE_SIZE)) + ((k - g.BASE_CODE_START)))) + 1));\n            if (((((h.length > j)) && ((((h.charAt(j) >= \"0\")) && ((h.charAt(j) <= \"9\"))))))) {\n                return [((j + 1)),[m,((parseInt(h.charAt(j), 10) + 1)),],];\n            }\n        ;\n        ;\n            return [j,[m,],];\n        },\n        parseTrackingNodeString: function(h) {\n            var i = [];\n            while (((h.length > 0))) {\n                var j = g.decodeTN(h);\n                if (((j.length == 1))) {\n                    return [];\n                }\n            ;\n            ;\n                i.push(j[1]);\n                h = h.substring(j[0]);\n            };\n        ;\n            return i;\n        },\n        getTrackingInfo: function(h, i) {\n            return ((((\"{\\\"tn\\\":\\\"\" + g.encodeTrackingInfo(h, i))) + \"\\\"}\"));\n        }\n    };\n    e.exports = g;\n});\n__d(\"NumberFormat\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = /(\\d{3})(?=\\d)/g, i = 10000, j = function(l) {\n        return ((\"\" + l)).split(\"\").reverse().join(\"\");\n    }, k = {\n        formatIntegerWithDelimiter: function(l, m) {\n            if (((((((g.locale == \"nb_NO\")) || ((g.locale == \"nn_NO\")))) && ((Math.abs(l) < i))))) {\n                return l.toString();\n            }\n        ;\n        ;\n            var n = j(l);\n            return j(n.replace(h, ((\"$1\" + m))));\n        }\n    };\n    e.exports = k;\n});\n__d(\"UFIBlingItem.react\", [\"React\",\"NumberFormat\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"NumberFormat\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = g.createClass({\n        displayName: \"UFIBlingItem\",\n        render: function() {\n            var l = j(this.props.className, this.props.iconClassName, \"UFIBlingBoxSprite\"), m = h.formatIntegerWithDelimiter(this.props.count, ((this.props.contextArgs.numberdelimiter || \",\")));\n            return (g.DOM.span(null, g.DOM.i({\n                className: l\n            }), g.DOM.span({\n                className: \"UFIBlingBoxText\"\n            }, m)));\n        }\n    });\n    e.exports = k;\n});\n__d(\"UFIConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        COMMENT_LIKE: \"fa-type:comment-like\",\n        COMMENT_SET_SPAM: \"fa-type:mark-spam\",\n        DELETE_COMMENT: \"fa-type:delete-comment\",\n        LIVE_DELETE_COMMENT: \"fa-type:live-delete-comment\",\n        LIKE_ACTION: \"fa-type:like\",\n        REMOVE_PREVIEW: \"fa-type:remove-preview\",\n        CONFIRM_COMMENT_REMOVAL: \"fa-type:confirm-remove\",\n        TRANSLATE_COMMENT: \"fa-type:translate-comment\",\n        SUBSCRIBE_ACTION: \"fa-type:subscribe\",\n        GIFT_SUGGESTION: \"fa-type:gift-suggestion\",\n        UNDO_DELETE_COMMENT: \"fa-type:undo-delete-comment\"\n    }, h = {\n        DELETED: \"status:deleted\",\n        SPAM: \"status:spam\",\n        SPAM_DISPLAY: \"status:spam-display\",\n        LIVE_DELETED: \"status:live-deleted\",\n        FAILED_ADD: \"status:failed-add\",\n        FAILED_EDIT: \"status:failed-edit\",\n        PENDING_EDIT: \"status:pending-edit\",\n        PENDING_UNDO_DELETE: \"status:pending-undo-delete\"\n    }, i = {\n        MOBILE: 1,\n        SMS: 3,\n        EMAIL: 4\n    }, j = {\n        PROFILE: 0,\n        NEWS_FEED: 1,\n        OBJECT: 2,\n        MOBILE: 3,\n        EMAIL: 4,\n        PROFILE_APROVAL: 10,\n        TICKER: 12,\n        NONE: 13,\n        INTERN: 14,\n        ADS: 15,\n        PHOTOS_SNOWLIFT: 17\n    }, k = {\n        UNKNOWN: 0,\n        INITIAL_SERVER: 1,\n        LIVE_SEND: 2,\n        USER_ACTION: 3,\n        COLLAPSED_UFI: 4,\n        ENDPOINT_LIKE: 10,\n        ENDPOINT_COMMENT_LIKE: 11,\n        ENDPOINT_ADD_COMMENT: 12,\n        ENDPOINT_EDIT_COMMENT: 13,\n        ENDPOINT_DELETE_COMMENT: 14,\n        ENDPOINT_UNDO_DELETE_COMMENT: 15,\n        ENDPOINT_COMMENT_SPAM: 16,\n        ENDPOINT_REMOVE_PREVIEW: 17,\n        ENDPOINT_ID_COMMENT_FETCH: 18,\n        ENDPOINT_COMMENT_FETCH: 19,\n        ENDPOINT_TRANSLATE_COMMENT: 20,\n        ENDPOINT_BAN: 21,\n        ENDPOINT_SUBSCRIBE: 22\n    }, l = {\n        CHRONOLOGICAL: \"chronological\",\n        RANKED_THREADED: \"ranked_threaded\",\n        TOPLEVEL: \"toplevel\",\n        RECENT_ACTIVITY: \"recent_activity\"\n    }, m = 50, n = 97244, o = 420, p = 5, q = 80, r = 2;\n    e.exports = {\n        UFIActionType: g,\n        UFIStatus: h,\n        UFISourceType: i,\n        UFIFeedbackSourceType: j,\n        UFIPayloadSourceType: k,\n        UFICommentOrderingMode: l,\n        defaultPageSize: m,\n        commentTruncationLength: o,\n        commentTruncationPercent: n,\n        commentTruncationMaxLines: p,\n        attachmentTruncationLength: q,\n        minCommentsForOrderingModeSelector: r\n    };\n});\n__d(\"UFIBlingBox.react\", [\"React\",\"UFIBlingItem.react\",\"UFIConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UFIBlingItem.react\"), i = b(\"UFIConstants\"), j = b(\"cx\"), k = b(\"tx\"), l = g.createClass({\n        displayName: \"UFIBlingBox\",\n        render: function() {\n            var m = [], n = \"\";\n            if (this.props.likes) {\n                m.push(h({\n                    count: this.props.likes,\n                    className: ((((m.length > 0)) ? \"mls\" : \"\")),\n                    iconClassName: \"UFIBlingBoxLikeIcon\",\n                    contextArgs: this.props.contextArgs\n                }));\n                n += ((((this.props.likes == 1)) ? \"1 like\" : k._(\"{count} likes\", {\n                    count: this.props.likes\n                })));\n                n += \" \";\n            }\n        ;\n        ;\n            if (this.props.comments) {\n                m.push(h({\n                    count: this.props.comments,\n                    className: ((((m.length > 0)) ? \"mls\" : \"\")),\n                    iconClassName: \"UFIBlingBoxCommentIcon\",\n                    contextArgs: this.props.contextArgs\n                }));\n                n += ((((this.props.comments == 1)) ? \"1 comment\" : k._(\"{count} comments\", {\n                    count: this.props.comments\n                })));\n                n += \" \";\n            }\n        ;\n        ;\n            if (this.props.reshares) {\n                m.push(h({\n                    count: this.props.reshares,\n                    className: ((((m.length > 0)) ? \"mls\" : \"\")),\n                    iconClassName: \"UFIBlingBoxReshareIcon\",\n                    contextArgs: this.props.contextArgs\n                }));\n                n += ((((this.props.reshares == 1)) ? \"1 share\" : k._(\"{count} shares\", {\n                    count: this.props.reshares\n                })));\n            }\n        ;\n        ;\n            var o = g.DOM.a({\n                className: \"UFIBlingBox uiBlingBox feedbackBling\",\n                href: this.props.permalink,\n                \"data-ft\": this.props[\"data-ft\"],\n                \"aria-label\": n\n            }, m);\n            if (((this.props.comments < i.defaultPageSize))) {\n                o.props.onClick = this.props.onClick;\n                o.props.rel = \"ignore\";\n            }\n        ;\n        ;\n            return o;\n        }\n    });\n    e.exports = l;\n});\n__d(\"UFICentralUpdates\", [\"Arbiter\",\"ChannelConstants\",\"LiveTimer\",\"ShortProfiles\",\"UFIConstants\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"LiveTimer\"), j = b(\"ShortProfiles\"), k = b(\"UFIConstants\"), l = b(\"copyProperties\"), m = b(\"tx\"), n = 0, o = {\n    }, p = {\n    }, q = {\n    }, r = {\n    }, s = [];\n    g.subscribe(h.getArbiterType(\"live-data\"), function(x, y) {\n        if (((y && y.obj))) {\n            var z = y.obj, aa = ((z.comments || []));\n            aa.forEach(function(ba) {\n                ba.timestamp.text = \"a few seconds ago\";\n            });\n            w.handleUpdate(k.UFIPayloadSourceType.LIVE_SEND, z);\n        }\n    ;\n    ;\n    });\n    function t() {\n        if (!n) {\n            var x = q, y = o, z = p, aa = r;\n            q = {\n            };\n            o = {\n            };\n            p = {\n            };\n            r = {\n            };\n            if (Object.keys(x).length) {\n                v(\"feedback-id-changed\", x);\n            }\n        ;\n        ;\n            if (Object.keys(y).length) {\n                v(\"feedback-updated\", y);\n            }\n        ;\n        ;\n            if (Object.keys(z).length) {\n                v(\"comments-updated\", z);\n            }\n        ;\n        ;\n            if (Object.keys(aa).length) {\n                v(\"instance-updated\", aa);\n            }\n        ;\n        ;\n            s.pop();\n        }\n    ;\n    ;\n    };\n;\n    function u() {\n        if (s.length) {\n            return s[((s.length - 1))];\n        }\n         else return k.UFIPayloadSourceType.UNKNOWN\n    ;\n    };\n;\n    function v(JSBNG__event, x) {\n        w.inform(JSBNG__event, {\n            updates: x,\n            payloadSource: u()\n        });\n    };\n;\n    var w = l(new g(), {\n        handleUpdate: function(x, y) {\n            if (Object.keys(y).length) {\n                this.synchronizeInforms(function() {\n                    s.push(x);\n                    var z = l({\n                        payloadsource: u()\n                    }, y);\n                    this.inform(\"update-feedback\", z);\n                    this.inform(\"update-comment-lists\", z);\n                    this.inform(\"update-comments\", z);\n                    this.inform(\"update-actions\", z);\n                    ((y.profiles || [])).forEach(function(aa) {\n                        j.set(aa.id, aa);\n                    });\n                    if (y.servertime) {\n                        i.restart(y.servertime);\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        didUpdateFeedback: function(x) {\n            o[x] = true;\n            t();\n        },\n        didUpdateComment: function(x) {\n            p[x] = true;\n            t();\n        },\n        didUpdateFeedbackID: function(x, y) {\n            q[x] = y;\n            t();\n        },\n        didUpdateInstanceState: function(x, y) {\n            if (!r[x]) {\n                r[x] = {\n                };\n            }\n        ;\n        ;\n            r[x][y] = true;\n            t();\n        },\n        synchronizeInforms: function(x) {\n            n++;\n            try {\n                x();\n            } catch (y) {\n                throw y;\n            } finally {\n                n--;\n                t();\n            };\n        ;\n        }\n    });\n    e.exports = w;\n});\n__d(\"randomInt\", [\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"invariant\");\n    function h(i, j) {\n        var k = arguments.length;\n        g(((((k > 0)) && ((k <= 2)))));\n        if (((k === 1))) {\n            j = i;\n            i = 0;\n        }\n    ;\n    ;\n        g(((j > i)));\n        var l = ((this.JSBNG__random || Math.JSBNG__random));\n        return Math.floor(((i + ((l() * ((j - i)))))));\n    };\n;\n    e.exports = h;\n});\n__d(\"ClientIDs\", [\"randomInt\",], function(a, b, c, d, e, f) {\n    var g = b(\"randomInt\"), h = {\n    }, i = {\n        getNewClientID: function() {\n            var j = JSBNG__Date.now(), k = ((((j + \":\")) + ((g(0, 4294967295) + 1))));\n            h[k] = true;\n            return k;\n        },\n        isExistingClientID: function(j) {\n            return !!h[j];\n        }\n    };\n    e.exports = i;\n});\n__d(\"ImmutableObject\", [\"keyMirror\",\"merge\",\"mergeInto\",\"mergeHelpers\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"keyMirror\"), h = b(\"merge\"), i = b(\"mergeInto\"), j = b(\"mergeHelpers\"), k = b(\"throwIf\"), l = j.checkMergeObjectArgs, m = j.isTerminal, n, o;\n    n = g({\n        INVALID_MAP_SET_ARG: null\n    });\n    o = function(q) {\n        i(this, q);\n    };\n    o.set = function(q, r) {\n        k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n        var s = new o(q);\n        i(s, r);\n        return s;\n    };\n    o.setField = function(q, r, s) {\n        var t = {\n        };\n        t[r] = s;\n        return o.set(q, t);\n    };\n    o.setDeep = function(q, r) {\n        k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n        return p(q, r);\n    };\n    function p(q, r) {\n        l(q, r);\n        var s = {\n        }, t = Object.keys(q);\n        for (var u = 0; ((u < t.length)); u++) {\n            var v = t[u];\n            if (!r.hasOwnProperty(v)) {\n                s[v] = q[v];\n            }\n             else if (((m(q[v]) || m(r[v])))) {\n                s[v] = r[v];\n            }\n             else s[v] = p(q[v], r[v]);\n            \n        ;\n        ;\n        };\n    ;\n        var w = Object.keys(r);\n        for (u = 0; ((u < w.length)); u++) {\n            var x = w[u];\n            if (q.hasOwnProperty(x)) {\n                continue;\n            }\n        ;\n        ;\n            s[x] = r[x];\n        };\n    ;\n        return ((((((q instanceof o)) || ((r instanceof o)))) ? new o(s) : s));\n    };\n;\n    e.exports = o;\n});\n__d(\"debounceAcrossTransitions\", [\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"debounce\");\n    function h(i, j, k) {\n        return g(i, j, k, true);\n    };\n;\n    e.exports = h;\n});\n__d(\"MercuryServerDispatcher\", [\"AsyncRequest\",\"FBAjaxRequest\",\"Env\",\"JSLogger\",\"Run\",\"areObjectsEqual\",\"copyProperties\",\"debounceAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"FBAjaxRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"Run\"), l = b(\"areObjectsEqual\"), m = b(\"copyProperties\"), n = b(\"debounceAcrossTransitions\"), o = {\n    }, p = j.create(\"mercury_dispatcher\"), q = false, r = {\n        IMMEDIATE: \"immediate\",\n        IDEMPOTENT: \"idempotent\",\n        BATCH_SUCCESSIVE: \"batch-successive\",\n        BATCH_SUCCESSIVE_UNIQUE: \"batch-successive-unique\",\n        BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR: \"batch-successive-piggyback-retry\",\n        BATCH_DEFERRED_MULTI: \"batch-deferred-multi\",\n        BATCH_CONDITIONAL: \"batch-conditional\",\n        registerEndpoints: function(v) {\n            {\n                var fin88keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin88i = (0);\n                var w;\n                for (; (fin88i < fin88keys.length); (fin88i++)) {\n                    ((w) = (fin88keys[fin88i]));\n                    {\n                        var x = v[w], y = ((x.request_user_id || i.user));\n                        if (!o[w]) {\n                            o[w] = {\n                            };\n                        }\n                    ;\n                    ;\n                        if (!o[w][y]) {\n                            o[w][y] = {\n                            };\n                        }\n                    ;\n                    ;\n                        o[w][y] = new s(w, x);\n                    };\n                };\n            };\n        ;\n        },\n        trySend: function(v, w, x, y) {\n            y = ((y || i.user));\n            if (((((v == \"/ajax/mercury/client_reliability.php\")) && !o[v][y]))) {\n                o[v][y] = o[v][undefined];\n            }\n        ;\n        ;\n            o[v][y].trySend(w, x);\n        }\n    };\n    function s(v, w) {\n        var x = ((w.mode || r.IMMEDIATE));\n        switch (x) {\n          case r.IMMEDIATE:\n        \n          case r.IDEMPOTENT:\n        \n          case r.BATCH_SUCCESSIVE:\n        \n          case r.BATCH_SUCCESSIVE_UNIQUE:\n        \n          case r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR:\n        \n          case r.BATCH_DEFERRED_MULTI:\n        \n          case r.BATCH_CONDITIONAL:\n            break;\n          default:\n            throw new Error(((\"Invalid MercuryServerDispatcher mode \" + x)));\n        };\n    ;\n        this._endpoint = v;\n        this._mode = x;\n        this._requestUserID = w.request_user_id;\n        this._combineData = w.batch_function;\n        this._combineDataIf = w.batch_if;\n        this._batchSizeLimit = w.batch_size_limit;\n        this._batches = [];\n        this._handler = w.handler;\n        this._errorHandler = w.error_handler;\n        this._transportErrorHandler = ((w.transport_error_handler || w.error_handler));\n        this._connectionRetries = ((w.connection_retries || 0));\n        this._timeoutHandler = w.timeout_handler;\n        this._timeout = w.timeout;\n        this._serverDialogCancelHandler = ((w.server_dialog_cancel_handler || w.error_handler));\n        this._deferredSend = n(this._batchSend, 0, this);\n        if (this._batchSizeLimit) {\n            k.onUnload(function() {\n                p.bump(((\"unload_batches_count_\" + u(this._batches.length))));\n            }.bind(this));\n        }\n    ;\n    ;\n    };\n;\n    m(s.prototype, {\n        _inFlight: 0,\n        _handler: null,\n        _errorHandler: null,\n        _transportErrorHandler: null,\n        _timeoutHandler: null,\n        _timeout: null,\n        _serverDialogCancelHandler: null,\n        _combineData: null,\n        trySend: function(v, w) {\n            if (q) {\n                return;\n            }\n        ;\n        ;\n            if (((typeof v == \"undefined\"))) {\n                v = null;\n            }\n        ;\n        ;\n            var x = ((w || this._mode));\n            if (((x == r.IMMEDIATE))) {\n                this._send(v);\n            }\n             else if (((x == r.IDEMPOTENT))) {\n                if (!this._inFlight) {\n                    this._send(v);\n                }\n            ;\n            ;\n            }\n             else if (((((x == r.BATCH_SUCCESSIVE)) || ((x == r.BATCH_SUCCESSIVE_UNIQUE))))) {\n                if (!this._inFlight) {\n                    this._send(v);\n                }\n                 else this._batchData(v);\n            ;\n            ;\n            }\n             else if (((x == r.BATCH_CONDITIONAL))) {\n                var y = ((this._batches[0] && this._batches[0].getData()));\n                if (((this._inFlight && ((this._combineDataIf(this._pendingRequestData, v) || this._combineDataIf(y, v)))))) {\n                    this._batchData(v);\n                }\n                 else this._send(v);\n            ;\n            ;\n            }\n             else if (((x == r.BATCH_DEFERRED_MULTI))) {\n                this._batchData(v);\n                this._deferredSend();\n            }\n             else if (((x == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR))) {\n                this._batchData(v);\n                if (!this._inFlight) {\n                    this._batchSend();\n                }\n            ;\n            ;\n            }\n            \n            \n            \n            \n            \n        ;\n        ;\n        },\n        _send: function(v) {\n            this._inFlight++;\n            this._pendingRequestData = m({\n            }, v);\n            if (((this._requestUserID != i.user))) {\n                v.request_user_id = this._requestUserID;\n            }\n        ;\n        ;\n            p.log(\"send\", {\n                endpoint: this._endpoint,\n                data: v,\n                inflight_count: this._inFlight\n            });\n            var w = null;\n            if (i.worker_context) {\n                w = new h(\"POST\", this._endpoint, v);\n                w.onError = function(x) {\n                    x.getPayload = function() {\n                        return x.errorText;\n                    };\n                    x.getRequest = function() {\n                        var y = x;\n                        x.getData = function() {\n                            return v;\n                        };\n                        return y;\n                    };\n                    x.getError = function() {\n                        return x.errorText;\n                    };\n                    x.getErrorDescription = function() {\n                        return x.errorText;\n                    };\n                    x.isTransient = function() {\n                        return false;\n                    };\n                    this._handleError(x);\n                }.bind(this);\n                w.onJSON = function(x) {\n                    x.getPayload = function() {\n                        return x.json;\n                    };\n                    x.getRequest = function() {\n                        return w;\n                    };\n                    this._handleResponse(x);\n                }.bind(this);\n                w.getData = function() {\n                    return v;\n                };\n                w.send();\n            }\n             else {\n                w = new g(this._endpoint).setData(v).setOption(\"retries\", this._connectionRetries).setHandler(this._handleResponse.bind(this)).setErrorHandler(this._handleError.bind(this)).setTransportErrorHandler(this._handleTransportError.bind(this)).setServerDialogCancelHandler(this._handleServerDialogCancel.bind(this)).setAllowCrossPageTransition(true);\n                if (((this._timeout && this._timeoutHandler))) {\n                    w.setTimeoutHandler(this._timeout, this._handleTimeout.bind(this));\n                }\n            ;\n            ;\n                w.send();\n            }\n        ;\n        ;\n        },\n        _batchData: function(v, w) {\n            if (((((((this._mode == r.BATCH_SUCCESSIVE_UNIQUE)) && ((typeof this._pendingRequestData != \"undefined\")))) && l(v, this._pendingRequestData)))) {\n                return;\n            }\n             else {\n                var x = ((this._batches.length - 1));\n                if (((((x >= 0)) && !this._hasReachedBatchLimit(this._batches[x])))) {\n                    ((w ? this._batches[x].combineWithOlder(v, this._combineData) : this._batches[x].combineWith(v, this._combineData)));\n                }\n                 else {\n                    this._batches.push(new t(v));\n                    p.bump(((\"batches_count_\" + u(this._batches.length))));\n                }\n            ;\n            ;\n                p.debug(\"batch\", {\n                    endpoint: this._endpoint,\n                    batches: this._batches,\n                    batch_limit: this._batchSizeLimit\n                });\n            }\n        ;\n        ;\n        },\n        _hasReachedBatchLimit: function(v) {\n            return ((this._batchSizeLimit && ((v.getSize() >= this._batchSizeLimit))));\n        },\n        _batchSend: function() {\n            if (this._batches[0]) {\n                this._send(this._batches[0].getData());\n                this._batches.shift();\n            }\n        ;\n        ;\n        },\n        _handleResponse: function(v) {\n            this._inFlight--;\n            p.log(\"response\", {\n                endpoint: this._endpoint,\n                inflight_count: this._inFlight\n            });\n            var w = v.getPayload();\n            q = ((w && w.kill_chat));\n            if (q) {\n                p.log(\"killswitch_enabled\", {\n                    endpoint: this._endpoint,\n                    inflight_count: this._inFlight\n                });\n            }\n        ;\n        ;\n            if (((w && w.error_payload))) {\n                if (this._errorHandler) {\n                    this._errorHandler(v);\n                }\n            ;\n            ;\n            }\n             else ((this._handler && this._handler(w, v.getRequest())));\n        ;\n        ;\n            if (((((((((this._mode == r.BATCH_SUCCESSIVE)) || ((this._mode == r.BATCH_SUCCESSIVE_UNIQUE)))) || ((this._mode == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)))) || ((this._mode == r.BATCH_CONDITIONAL))))) {\n                this._batchSend();\n            }\n        ;\n        ;\n            delete this._pendingRequestData;\n        },\n        _postErrorHandler: function() {\n            p.error(\"error\", {\n                endpoint: this._endpoint,\n                inflight_count: ((this._inFlight - 1))\n            });\n            this._inFlight--;\n            var v = this._mode;\n            if (((((((v == r.BATCH_SUCCESSIVE)) || ((v == r.BATCH_SUCCESSIVE_UNIQUE)))) || ((v == r.BATCH_CONDITIONAL))))) {\n                this._batchSend();\n            }\n             else if (((v == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR))) {\n                if (this._batches[0]) {\n                    this._batchData(this._pendingRequestData, true);\n                    this._batchSend();\n                }\n                 else this._batchData(this._pendingRequestData, true);\n            ;\n            }\n            \n        ;\n        ;\n            delete this._pendingRequestData;\n        },\n        _handleError: function(v) {\n            ((this._errorHandler && this._errorHandler(v)));\n            this._postErrorHandler();\n        },\n        _handleTransportError: function(v) {\n            ((this._transportErrorHandler && this._transportErrorHandler(v)));\n            this._postErrorHandler();\n        },\n        _handleTimeout: function(v) {\n            ((this._timeoutHandler && this._timeoutHandler(v)));\n            this._postErrorHandler();\n        },\n        _handleServerDialogCancel: function(v) {\n            ((this._serverDialogCancelHandler && this._serverDialogCancelHandler(v)));\n            this._postErrorHandler();\n        }\n    });\n    function t(v) {\n        this._data = v;\n        this._size = 1;\n    };\n;\n    m(t.prototype, {\n        getData: function() {\n            return this._data;\n        },\n        getSize: function() {\n            return this._size;\n        },\n        combineWith: function(v, w) {\n            this._data = w(this._data, v);\n            this._size++;\n        },\n        combineWithOlder: function(v, w) {\n            this._data = w(v, this._data);\n            this._size++;\n        }\n    });\n    function u(v) {\n        if (((v === 1))) {\n            return \"equals1\";\n        }\n         else if (((((v >= 2)) && ((v <= 3))))) {\n            return \"between2and3\";\n        }\n         else return \"over4\"\n        \n    ;\n    };\n;\n    e.exports = r;\n});\n__d(\"UFIFeedbackTargets\", [\"ClientIDs\",\"KeyedCallbackManager\",\"UFICentralUpdates\",\"UFIConstants\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ClientIDs\"), h = b(\"KeyedCallbackManager\"), i = b(\"UFICentralUpdates\"), j = b(\"UFIConstants\"), k = b(\"copyProperties\"), l = new h();\n    function m(v) {\n        var w = {\n        };\n        v.forEach(function(x) {\n            var y = k({\n            }, x);\n            delete y.commentlist;\n            delete y.commentcount;\n            w[x.entidentifier] = y;\n            i.didUpdateFeedback(x.entidentifier);\n        });\n        l.addResourcesAndExecute(w);\n    };\n;\n    function n(v) {\n        for (var w = 0; ((w < v.length)); w++) {\n            var x = v[w];\n            switch (x.actiontype) {\n              case j.UFIActionType.LIKE_ACTION:\n                p(x);\n                break;\n              case j.UFIActionType.SUBSCRIBE_ACTION:\n                q(x);\n                break;\n              case j.UFIActionType.GIFT_SUGGESTION:\n                r(x);\n                break;\n            };\n        ;\n        };\n    ;\n    };\n;\n    function o(v) {\n        for (var w = 0; ((w < v.length)); w++) {\n            var x = v[w];\n            if (x.orig_ftentidentifier) {\n                t(x.orig_ftentidentifier, x.ftentidentifier);\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function p(v) {\n        var w = s(v);\n        if (w) {\n            v.hasviewerliked = !!v.hasviewerliked;\n            if (((((v.clientid && g.isExistingClientID(v.clientid))) && ((v.hasviewerliked != w.hasviewerliked))))) {\n                return;\n            }\n        ;\n        ;\n            w.likecount = ((v.likecount || 0));\n            w.likesentences = v.likesentences;\n            if (((v.actorid == w.actorforpost))) {\n                w.hasviewerliked = v.hasviewerliked;\n            }\n             else if (((v.hasviewerliked != w.hasviewerliked))) {\n                w.likesentences = {\n                    current: v.likesentences.alternate,\n                    alternate: v.likesentences.current\n                };\n                if (w.hasviewerliked) {\n                    w.likecount++;\n                }\n                 else w.likecount--;\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            if (((v.actorid != w.actorforpost))) {\n                w.likesentences.isunseen = true;\n            }\n        ;\n        ;\n            m([w,]);\n        }\n    ;\n    ;\n    };\n;\n    function q(v) {\n        var w = s(v);\n        if (w) {\n            v.hasviewersubscribed = !!v.hasviewersubscribed;\n            if (((((v.clientid && g.isExistingClientID(v.clientid))) && ((v.hasviewersubscribed != w.hasviewersubscribed))))) {\n                return;\n            }\n        ;\n        ;\n            if (((v.actorid == w.actorforpost))) {\n                w.hasviewersubscribed = v.hasviewersubscribed;\n            }\n        ;\n        ;\n            m([w,]);\n        }\n    ;\n    ;\n    };\n;\n    function r(v) {\n        var w = s(v);\n        if (!w) {\n            return;\n        }\n    ;\n    ;\n        if (((((v.clientid && g.isExistingClientID(v.clientid))) && ((v.hasviewerliked != w.hasviewerliked))))) {\n            return;\n        }\n    ;\n    ;\n        w.giftdata = v.giftdata;\n        m([w,]);\n    };\n;\n    function s(v) {\n        if (v.orig_entidentifier) {\n            t(v.orig_entidentifier, v.entidentifier);\n        }\n    ;\n    ;\n        return l.getResource(v.entidentifier);\n    };\n;\n    function t(v, w) {\n        var x = l.getResource(v);\n        if (x) {\n            l.setResource(v, null);\n            x.entidentifier = w;\n            l.setResource(w, x);\n            i.didUpdateFeedbackID(v, w);\n        }\n    ;\n    ;\n    };\n;\n    var u = {\n        getFeedbackTarget: function(v, w) {\n            var x = l.executeOrEnqueue(v, w), y = l.getUnavailableResources(x);\n            if (!y.length) {\n                return;\n            }\n        ;\n        ;\n        }\n    };\n    i.subscribe(\"update-feedback\", function(v, w) {\n        var x = w.feedbacktargets;\n        if (((x && x.length))) {\n            m(x);\n        }\n    ;\n    ;\n    });\n    i.subscribe(\"update-actions\", function(v, w) {\n        if (((w.actions && w.actions.length))) {\n            n(w.actions);\n        }\n    ;\n    ;\n    });\n    i.subscribe(\"update-comments\", function(v, w) {\n        if (((w.comments && w.comments.length))) {\n            o(w.comments);\n        }\n    ;\n    ;\n    });\n    e.exports = u;\n});\n__d(\"UFIInstanceState\", [\"UFICentralUpdates\",], function(a, b, c, d, e, f) {\n    var g = b(\"UFICentralUpdates\"), h = {\n    };\n    function i(k) {\n        if (!h[k]) {\n            h[k] = {\n            };\n        }\n    ;\n    ;\n    };\n;\n    var j = {\n        getKeyForInstance: function(k, l) {\n            i(k);\n            return h[k][l];\n        },\n        updateState: function(k, l, m) {\n            i(k);\n            h[k][l] = m;\n            g.didUpdateInstanceState(k, l);\n        },\n        updateStateField: function(k, l, m, n) {\n            var o = ((this.getKeyForInstance(k, l) || {\n            }));\n            o[m] = n;\n            this.updateState(k, l, o);\n        }\n    };\n    e.exports = j;\n});\n__d(\"UFIComments\", [\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryServerDispatcher\",\"UFICentralUpdates\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"URI\",\"keyMirror\",\"merge\",\"randomInt\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"ClientIDs\"), h = b(\"ImmutableObject\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryServerDispatcher\"), l = b(\"UFICentralUpdates\"), m = b(\"UFIConstants\"), n = b(\"UFIFeedbackTargets\"), o = b(\"UFIInstanceState\"), p = b(\"URI\"), q = b(\"keyMirror\"), r = b(\"merge\"), s = b(\"randomInt\"), t = b(\"throwIf\"), u = q({\n        INVALID_COMMENT_TYPE: null\n    }), v = i.create(\"UFIComments\"), w = {\n    }, x = {\n    }, y = {\n    }, z = {\n    }, aa = {\n    }, ba = {\n    }, ca = \"unavailable_comment_key\";\n    function da(ab) {\n        return ((((ab in ba)) ? ba[ab] : ab));\n    };\n;\n    function ea(ab, bb) {\n        if (!x[ab]) {\n            x[ab] = {\n            };\n        }\n    ;\n    ;\n        if (!x[ab][bb]) {\n            x[ab][bb] = new j();\n        }\n    ;\n    ;\n        return x[ab][bb];\n    };\n;\n    function fa(ab) {\n        var bb = [];\n        if (x[ab]) {\n            {\n                var fin89keys = ((window.top.JSBNG_Replay.forInKeys)((x[ab]))), fin89i = (0);\n                var cb;\n                for (; (fin89i < fin89keys.length); (fin89i++)) {\n                    ((cb) = (fin89keys[fin89i]));\n                    {\n                        bb.push(x[ab][cb]);\n                    ;\n                    };\n                };\n            };\n        }\n    ;\n    ;\n        return bb;\n    };\n;\n    function ga(ab) {\n        if (!y[ab]) {\n            y[ab] = new j();\n        }\n    ;\n    ;\n        return y[ab];\n    };\n;\n    function ha(ab) {\n        var bb = fa(ab);\n        bb.forEach(function(cb) {\n            cb.reset();\n        });\n    };\n;\n    function ia(ab, bb) {\n        ab.forEach(function(cb) {\n            var db = cb.ftentidentifier, eb = ((cb.parentcommentid || db));\n            n.getFeedbackTarget(db, function(fb) {\n                var gb = m.UFIPayloadSourceType, hb = cb.clientid, ib = false, jb = r({\n                }, cb);\n                if (hb) {\n                    delete jb.clientid;\n                    ib = g.isExistingClientID(hb);\n                    if (((ib && ba[hb]))) {\n                        return;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (((((((bb === gb.LIVE_SEND)) && cb.parentcommentid)) && ((z[eb] === undefined))))) {\n                    return;\n                }\n            ;\n            ;\n                if (((((((((bb === gb.LIVE_SEND)) || ((bb === gb.USER_ACTION)))) || ((bb === gb.ENDPOINT_ADD_COMMENT)))) || ((bb === gb.ENDPOINT_EDIT_COMMENT))))) {\n                    jb.isunseen = true;\n                }\n            ;\n            ;\n                if (((((bb === gb.ENDPOINT_COMMENT_FETCH)) || ((bb === gb.ENDPOINT_ID_COMMENT_FETCH))))) {\n                    jb.fromfetch = true;\n                }\n            ;\n            ;\n                if (ib) {\n                    if (w[hb].ufiinstanceid) {\n                        o.updateStateField(w[hb].ufiinstanceid, \"locallycomposed\", cb.id, true);\n                    }\n                ;\n                ;\n                    jb.ufiinstanceid = w[hb].ufiinstanceid;\n                    ba[hb] = cb.id;\n                    w[cb.id] = w[hb];\n                    delete w[hb];\n                    l.didUpdateComment(hb);\n                }\n            ;\n            ;\n                var kb, lb;\n                if (cb.parentcommentid) {\n                    lb = [ga(eb),];\n                }\n                 else lb = fa(eb);\n            ;\n            ;\n                var mb = false;\n                lb.forEach(function(qb) {\n                    var rb = qb.getAllResources(), sb = {\n                    };\n                    {\n                        var fin90keys = ((window.top.JSBNG_Replay.forInKeys)((rb))), fin90i = (0);\n                        var tb;\n                        for (; (fin90i < fin90keys.length); (fin90i++)) {\n                            ((tb) = (fin90keys[fin90i]));\n                            {\n                                var ub = rb[tb];\n                                sb[ub] = tb;\n                            };\n                        };\n                    };\n                ;\n                    if (ib) {\n                        if (((hb in sb))) {\n                            sb[cb.id] = sb[hb];\n                            var vb = sb[hb];\n                            qb.setResource(vb, cb.id);\n                        }\n                    ;\n                    }\n                ;\n                ;\n                    if (sb[cb.id]) {\n                        mb = true;\n                    }\n                     else {\n                        var wb = ((z[eb] || 0));\n                        sb[cb.id] = wb;\n                        qb.setResource(wb, cb.id);\n                    }\n                ;\n                ;\n                    kb = sb[cb.id];\n                });\n                if (!mb) {\n                    var nb = ((z[eb] || 0));\n                    z[eb] = ((nb + 1));\n                    qa(eb);\n                }\n            ;\n            ;\n                if (((cb.JSBNG__status === m.UFIStatus.FAILED_ADD))) {\n                    aa[eb] = ((aa[eb] + 1));\n                }\n            ;\n            ;\n                var ob = z[eb];\n                jb.replycount = ((((z[cb.id] || 0)) - ((aa[cb.id] || 0))));\n                var pb = ja(kb, ob);\n                if (((cb.parentcommentid && w[cb.parentcommentid]))) {\n                    jb.permalink = p(fb.permalink).addQueryData({\n                        comment_id: w[cb.parentcommentid].legacyid,\n                        reply_comment_id: cb.legacyid,\n                        total_comments: ob\n                    }).toString();\n                }\n                 else jb.permalink = p(fb.permalink).addQueryData({\n                    comment_id: cb.legacyid,\n                    offset: pb,\n                    total_comments: ob\n                }).toString();\n            ;\n            ;\n                za.setComment(cb.id, new h(jb));\n                l.didUpdateComment(cb.id);\n                l.didUpdateFeedback(db);\n            });\n        });\n    };\n;\n    function ja(ab, bb) {\n        return ((Math.floor(((((((bb - ab)) - 1)) / m.defaultPageSize))) * m.defaultPageSize));\n    };\n;\n    function ka(ab) {\n        for (var bb = 0; ((bb < ab.length)); bb++) {\n            var cb = ab[bb];\n            switch (cb.actiontype) {\n              case m.UFIActionType.COMMENT_LIKE:\n                na(cb);\n                break;\n              case m.UFIActionType.DELETE_COMMENT:\n                ra(cb);\n                break;\n              case m.UFIActionType.LIVE_DELETE_COMMENT:\n                sa(cb);\n                break;\n              case m.UFIActionType.UNDO_DELETE_COMMENT:\n                ta(cb);\n                break;\n              case m.UFIActionType.REMOVE_PREVIEW:\n                ua(cb);\n                break;\n              case m.UFIActionType.COMMENT_SET_SPAM:\n                va(cb);\n                break;\n              case m.UFIActionType.CONFIRM_COMMENT_REMOVAL:\n                wa(cb);\n                break;\n              case m.UFIActionType.TRANSLATE_COMMENT:\n                oa(cb);\n                break;\n            };\n        ;\n        };\n    ;\n    };\n;\n    function la(ab, bb, cb) {\n        var db = bb.range, eb = bb.values;\n        if (!db) {\n            v.error(\"nullrange\", {\n                target: ab,\n                commentList: bb\n            });\n            return;\n        }\n    ;\n    ;\n        var fb = {\n        };\n        for (var gb = 0; ((gb < db.length)); gb++) {\n            fb[((db.offset + gb))] = ((eb[gb] || ca));\n        ;\n        };\n    ;\n        var hb, ib;\n        if (cb) {\n            hb = ea(ab, cb);\n            ib = ab;\n        }\n         else {\n            hb = ga(ab);\n            ib = bb.ftentidentifier;\n            if (((bb.count !== undefined))) {\n                z[ab] = bb.count;\n                aa[ab] = 0;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        hb.addResourcesAndExecute(fb);\n        l.didUpdateFeedback(ib);\n    };\n;\n    function ma(ab) {\n        ab.forEach(function(bb) {\n            z[bb.entidentifier] = bb.commentcount;\n            aa[bb.entidentifier] = 0;\n            l.didUpdateFeedback(bb.entidentifier);\n        });\n    };\n;\n    function na(ab) {\n        var bb = za.getComment(ab.commentid);\n        if (bb) {\n            var cb = {\n            }, db = ((ab.clientid && g.isExistingClientID(ab.clientid)));\n            if (!db) {\n                cb.hasviewerliked = ab.viewerliked;\n                cb.likecount = ab.likecount;\n            }\n        ;\n        ;\n            cb.likeconfirmhash = s(0, 1024);\n            ya(ab.commentid, cb);\n        }\n    ;\n    ;\n    };\n;\n    function oa(ab) {\n        var bb = ab.commentid, cb = za.getComment(ab.commentid);\n        if (cb) {\n            ya(bb, {\n                translatedtext: ab.translatedtext\n            });\n        }\n    ;\n    ;\n    };\n;\n    function pa(ab) {\n        var bb = {\n            reportLink: ab.reportLink,\n            commenterIsFOF: ab.commenterIsFOF,\n            userIsMinor: ab.userIsMinor\n        };\n        if (ab.undoData) {\n            bb.undoData = ab.undoData;\n        }\n    ;\n    ;\n        return bb;\n    };\n;\n    function qa(ab, bb) {\n        if (ab) {\n            if (((bb !== undefined))) {\n                var cb = ((((aa[ab] || 0)) + ((bb ? 1 : -1))));\n                aa[ab] = Math.max(cb, 0);\n            }\n        ;\n        ;\n            var db = za.getComment(ab);\n            if (db) {\n                var eb = {\n                    replycount: za.getDisplayedCommentCount(ab)\n                };\n                ya(ab, eb);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function ra(ab) {\n        var bb = za.getComment(ab.commentid);\n        if (((bb.JSBNG__status !== m.UFIStatus.DELETED))) {\n            var cb = ((bb.parentcommentid || bb.ftentidentifier));\n            if (((bb.JSBNG__status === m.UFIStatus.FAILED_ADD))) {\n                qa(cb);\n            }\n             else qa(cb, true);\n        ;\n        ;\n        }\n    ;\n    ;\n        xa(bb, m.UFIStatus.DELETED);\n    };\n;\n    function sa(ab) {\n        var bb = za.getComment(ab.commentid);\n        if (((bb && ((bb.JSBNG__status !== m.UFIStatus.DELETED))))) {\n            xa(bb, m.UFIStatus.LIVE_DELETED);\n        }\n    ;\n    ;\n    };\n;\n    function ta(ab) {\n        var bb = za.getComment(ab.commentid);\n        if (((bb.JSBNG__status === m.UFIStatus.DELETED))) {\n            var cb = ((bb.parentcommentid || bb.ftentidentifier));\n            qa(cb, false);\n        }\n    ;\n    ;\n        xa(bb, m.UFIStatus.PENDING_UNDO_DELETE);\n    };\n;\n    function ua(ab) {\n        ya(ab.commentid, {\n            attachment: null\n        });\n    };\n;\n    function va(ab) {\n        var bb = za.getComment(ab.commentid), cb = ((ab.shouldHideAsSpam ? m.UFIStatus.SPAM_DISPLAY : null));\n        xa(bb, cb);\n    };\n;\n    function wa(ab) {\n        ya(ab.commentid, pa(ab));\n    };\n;\n    function xa(ab, bb) {\n        ya(ab.id, {\n            priorstatus: ab.JSBNG__status,\n            JSBNG__status: bb\n        });\n    };\n;\n    function ya(ab, bb) {\n        var cb = ((za.getComment(ab) || new h({\n        })));\n        za.setComment(ab, h.set(cb, bb));\n        l.didUpdateComment(cb.id);\n        l.didUpdateFeedback(cb.ftentidentifier);\n    };\n;\n    var za = {\n        getComments: function(ab) {\n            var bb = {\n            };\n            for (var cb = 0; ((cb < ab.length)); cb++) {\n                bb[ab[cb]] = za.getComment(ab[cb]);\n            ;\n            };\n        ;\n            return bb;\n        },\n        getComment: function(ab) {\n            return w[da(ab)];\n        },\n        setComment: function(ab, bb) {\n            w[da(ab)] = bb;\n        },\n        resetFeedbackTarget: function(ab) {\n            var bb = fa(ab), cb = {\n            };\n            bb.forEach(function(eb) {\n                var fb = eb.getAllResources();\n                {\n                    var fin91keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin91i = (0);\n                    var gb;\n                    for (; (fin91i < fin91keys.length); (fin91i++)) {\n                        ((gb) = (fin91keys[fin91i]));\n                        {\n                            var hb = fb[gb];\n                            cb[hb] = 1;\n                        };\n                    };\n                };\n            ;\n            });\n            {\n                var fin92keys = ((window.top.JSBNG_Replay.forInKeys)((cb))), fin92i = (0);\n                var db;\n                for (; (fin92i < fin92keys.length); (fin92i++)) {\n                    ((db) = (fin92keys[fin92i]));\n                    {\n                        delete w[da(db)];\n                    ;\n                    };\n                };\n            };\n        ;\n            ha(ab);\n        },\n        getCommentsInRange: function(ab, bb, cb, db, eb) {\n            var fb = ea(ab, cb);\n            n.getFeedbackTarget(ab, function(gb) {\n                var hb = [];\n                for (var ib = 0; ((ib < bb.length)); ib++) {\n                    hb.push(((bb.offset + ib)));\n                ;\n                };\n            ;\n                var jb = function(pb) {\n                    var qb = [], rb = bb.offset, sb = ((((bb.offset + bb.length)) - 1));\n                    for (var tb = 0; ((tb < bb.length)); tb++) {\n                        var ub = ((gb.isranked ? ((sb - tb)) : ((rb + tb))));\n                        if (((pb[ub] != ca))) {\n                            var vb = this.getComment(pb[ub]);\n                            if (vb) {\n                                qb.push(vb);\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                    eb(qb);\n                }, kb = fb.getUnavailableResourcesFromRequest(hb);\n                if (kb.length) {\n                    var lb = Math.min.apply(Math, kb), mb = Math.max.apply(Math, kb), nb = lb, ob = ((((mb - lb)) + 1));\n                    k.trySend(\"/ajax/ufi/comment_fetch.php\", {\n                        ft_ent_identifier: gb.entidentifier,\n                        viewas: db,\n                        source: null,\n                        offset: nb,\n                        length: ob,\n                        orderingmode: cb\n                    });\n                }\n                 else fb.deferredExecuteOrEnqueue(hb).addCallback(jb, this);\n            ;\n            ;\n            }.bind(this));\n        },\n        getRepliesInRanges: function(ab, bb, cb) {\n            var db = {\n            }, eb = {\n            }, fb = {\n            }, gb = false;\n            n.getFeedbackTarget(ab, function(hb) {\n                {\n                    var fin93keys = ((window.top.JSBNG_Replay.forInKeys)((bb))), fin93i = (0);\n                    var ib;\n                    for (; (fin93i < fin93keys.length); (fin93i++)) {\n                        ((ib) = (fin93keys[fin93i]));\n                        {\n                            var jb = ga(ib), kb = bb[ib], lb = [];\n                            for (var mb = 0; ((mb < kb.length)); mb++) {\n                                lb.push(((kb.offset + mb)));\n                            ;\n                            };\n                        ;\n                            db[ib] = jb.executeOrEnqueue(lb, function(wb) {\n                                var xb = [];\n                                for (var yb = 0; ((yb < kb.length)); yb++) {\n                                    var zb = ((kb.offset + yb));\n                                    if (((wb[zb] != ca))) {\n                                        var ac = this.getComment(wb[zb]);\n                                        if (ac) {\n                                            xb.push(ac);\n                                        }\n                                    ;\n                                    ;\n                                    }\n                                ;\n                                ;\n                                };\n                            ;\n                                eb[ib] = xb;\n                            }.bind(this));\n                            fb[ib] = jb.getUnavailableResources(db[ib]);\n                            if (fb[ib].length) {\n                                gb = true;\n                                jb.unsubscribe(db[ib]);\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n                if (!gb) {\n                    cb(eb);\n                }\n                 else {\n                    var nb = [], ob = [], pb = [];\n                    {\n                        var fin94keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin94i = (0);\n                        var qb;\n                        for (; (fin94i < fin94keys.length); (fin94i++)) {\n                            ((qb) = (fin94keys[fin94i]));\n                            {\n                                var rb = fb[qb];\n                                if (rb.length) {\n                                    var sb = Math.min.apply(Math, rb), tb = Math.max.apply(Math, rb), ub = sb, vb = ((((tb - sb)) + 1));\n                                    nb.push(qb);\n                                    ob.push(ub);\n                                    pb.push(vb);\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    k.trySend(\"/ajax/ufi/reply_fetch.php\", {\n                        ft_ent_identifier: hb.entidentifier,\n                        parent_comment_ids: nb,\n                        source: null,\n                        offsets: ob,\n                        lengths: pb\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n            return db;\n        },\n        getCommentCount: function(ab) {\n            return ((z[ab] || 0));\n        },\n        getDeletedCount: function(ab) {\n            return ((aa[ab] || 0));\n        },\n        getDisplayedCommentCount: function(ab) {\n            return ((((z[ab] || 0)) - ((aa[ab] || 0))));\n        },\n        _dump: function() {\n            var ab = {\n                _comments: w,\n                _commentLists: x,\n                _replyLists: y,\n                _commentCounts: z,\n                _deletedCounts: aa,\n                _localIDMap: ba\n            };\n            return JSON.stringify(ab);\n        }\n    };\n    k.registerEndpoints({\n        \"/ajax/ufi/comment_fetch.php\": {\n            mode: k.IMMEDIATE,\n            handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n        },\n        \"/ajax/ufi/reply_fetch.php\": {\n            mode: k.IMMEDIATE,\n            handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n        }\n    });\n    l.subscribe(\"update-comments\", function(ab, bb) {\n        if (((bb.comments && bb.comments.length))) {\n            ia(bb.comments, bb.payloadsource);\n        }\n    ;\n    ;\n    });\n    l.subscribe(\"update-actions\", function(ab, bb) {\n        if (((bb.actions && bb.actions.length))) {\n            ka(bb.actions);\n        }\n    ;\n    ;\n    });\n    l.subscribe(\"update-comment-lists\", function(ab, bb) {\n        var cb = bb.commentlists;\n        if (((cb && Object.keys(cb).length))) {\n            if (cb.comments) {\n                {\n                    var fin95keys = ((window.top.JSBNG_Replay.forInKeys)((cb.comments))), fin95i = (0);\n                    var db;\n                    for (; (fin95i < fin95keys.length); (fin95i++)) {\n                        ((db) = (fin95keys[fin95i]));\n                        {\n                            {\n                                var fin96keys = ((window.top.JSBNG_Replay.forInKeys)((cb.comments[db]))), fin96i = (0);\n                                var eb;\n                                for (; (fin96i < fin96keys.length); (fin96i++)) {\n                                    ((eb) = (fin96keys[fin96i]));\n                                    {\n                                        la(db, cb.comments[db][eb], eb);\n                                    ;\n                                    };\n                                };\n                            };\n                        ;\n                        };\n                    };\n                };\n            }\n        ;\n        ;\n            if (cb.replies) {\n                {\n                    var fin97keys = ((window.top.JSBNG_Replay.forInKeys)((cb.replies))), fin97i = (0);\n                    var fb;\n                    for (; (fin97i < fin97keys.length); (fin97i++)) {\n                        ((fb) = (fin97keys[fin97i]));\n                        {\n                            la(fb, cb.replies[fb]);\n                        ;\n                        };\n                    };\n                };\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    });\n    l.subscribe(\"update-feedback\", function(ab, bb) {\n        var cb = bb.feedbacktargets;\n        if (((cb && cb.length))) {\n            ma(cb);\n        }\n    ;\n    ;\n    });\n    e.exports = za;\n});\n__d(\"UFILikeLink.react\", [\"React\",\"TrackingNodes\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"tx\"), j = g.createClass({\n        displayName: \"UFILikeLink\",\n        render: function() {\n            var k = ((this.props.likeAction ? \"Like\" : \"Unlike\")), l = h.getTrackingInfo(((this.props.likeAction ? h.types.LIKE_LINK : h.types.UNLIKE_LINK))), m = ((this.props.likeAction ? \"Like this\" : \"Unlike this\"));\n            return (g.DOM.a({\n                className: \"UFILikeLink\",\n                href: \"#\",\n                role: \"button\",\n                \"aria-live\": \"polite\",\n                title: m,\n                onClick: this.props.onClick,\n                \"data-ft\": l\n            }, k));\n        }\n    });\n    e.exports = j;\n});\n__d(\"UFISubscribeLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n        displayName: \"UFISubscribeLink\",\n        render: function() {\n            var j = ((this.props.subscribeAction ? \"Follow Post\" : \"Unfollow Post\")), k = ((this.props.subscribeAction ? \"Get notified when someone comments\" : \"Stop getting notified when someone comments\"));\n            return (g.DOM.a({\n                className: \"UFISubscribeLink\",\n                href: \"#\",\n                role: \"button\",\n                \"aria-live\": \"polite\",\n                title: k,\n                onClick: this.props.onClick\n            }, j));\n        }\n    });\n    e.exports = i;\n});\n__d(\"ProfileBrowserLink\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = \"/ajax/browser/dialog/\", i = \"/browse/\", j = function(l, m, n) {\n        return new g(((l + m))).setQueryData(n);\n    }, k = {\n        constructPageURI: function(l, m) {\n            return j(i, l, m);\n        },\n        constructDialogURI: function(l, m) {\n            return j(h, l, m);\n        }\n    };\n    e.exports = k;\n});\n__d(\"ProfileBrowserTypes\", [], function(a, b, c, d, e, f) {\n    var g = {\n        LIKES: \"likes\",\n        GROUP_MESSAGE_VIEWERS: \"group_message_viewers\",\n        MUTUAL_FRIENDS: \"mutual_friends\"\n    };\n    e.exports = g;\n});\n__d(\"UFITimelineBlingBox.react\", [\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIBlingItem.react\",\"URI\",\"cx\",\"fbt\",], function(a, b, c, d, e, f) {\n    var g = b(\"ProfileBrowserLink\"), h = b(\"ProfileBrowserTypes\"), i = b(\"React\"), j = b(\"UFIBlingItem.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"fbt\"), n = i.createClass({\n        displayName: \"UFITimelineBlingBox\",\n        render: function() {\n            var o = [];\n            if (((this.props.likes && this.props.enableShowLikes))) {\n                var p = this._getProfileBrowserURI(), q = \"See who likes this\", r = i.DOM.a({\n                    ajaxify: p.dialog,\n                    className: this._getItemClassName(o),\n                    \"data-ft\": this.props[\"data-ft\"],\n                    \"data-gt\": this.props[\"data-gt\"],\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"right\",\n                    \"data-tooltip-uri\": this._getLikeToolTipURI(),\n                    href: p.page,\n                    rel: \"dialog\",\n                    role: \"button\",\n                    title: q\n                }, j({\n                    contextArgs: this.props.contextArgs,\n                    count: this.props.likes,\n                    iconClassName: \"UFIBlingBoxTimelineLikeIcon\"\n                }));\n                o.push(r);\n            }\n        ;\n        ;\n            if (((this.props.comments && this.props.enableShowComments))) {\n                var s = \"Show comments\", t = i.DOM.a({\n                    \"aria-label\": s,\n                    className: this._getItemClassName(o),\n                    \"data-ft\": this.props[\"data-ft\"],\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"right\",\n                    href: \"#\",\n                    onClick: this.props.commentOnClick\n                }, j({\n                    contextArgs: this.props.contextArgs,\n                    count: this.props.comments,\n                    iconClassName: \"UFIBlingBoxTimelineCommentIcon\"\n                }));\n                o.push(t);\n            }\n        ;\n        ;\n            if (this.props.reshares) {\n                var u = \"Show shares\", v = this._getShareViewURI(), w = i.DOM.a({\n                    ajaxify: v.dialog,\n                    \"aria-label\": u,\n                    className: this._getItemClassName(o),\n                    \"data-ft\": this.props[\"data-ft\"],\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"right\",\n                    href: v.page,\n                    rel: \"async\"\n                }, j({\n                    contextArgs: this.props.contextArgs,\n                    count: this.props.reshares,\n                    iconClassName: \"UFIBlingBoxTimelineReshareIcon\"\n                }));\n                o.push(w);\n            }\n        ;\n        ;\n            return (i.DOM.span(null, o));\n        },\n        _getItemClassName: function(o) {\n            return ((((((o.length > 0)) ? \"mls\" : \"\")) + ((\" \" + \"UFIBlingBoxTimelineItem\"))));\n        },\n        _getLikeToolTipURI: function() {\n            if (this.props.feedbackFBID) {\n                var o = new k(\"/ajax/timeline/likestooltip.php\").setQueryData({\n                    obj_fbid: this.props.feedbackFBID\n                });\n                return o.toString();\n            }\n             else return null\n        ;\n        },\n        _getProfileBrowserURI: function() {\n            if (this.props.feedbackFBID) {\n                var o = h.LIKES, p = {\n                    id: this.props.feedbackFBID\n                }, q = g.constructDialogURI(o, p), r = g.constructPageURI(o, p), s = {\n                    dialog: q.toString(),\n                    page: r.toString()\n                };\n                return s;\n            }\n        ;\n        ;\n        },\n        _getShareViewURI: function() {\n            if (this.props.feedbackFBID) {\n                var o = new k(\"/ajax/shares/view\").setQueryData({\n                    target_fbid: this.props.feedbackFBID\n                }), p = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n                    id: this.props.feedbackFBID\n                }), q = {\n                    dialog: o.toString(),\n                    page: p.toString()\n                };\n                return q;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"UFIUserActions\", [\"AsyncResponse\",\"CLoggerX\",\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"Nectar\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"MercuryServerDispatcher\",\"collectDataAttributes\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncResponse\"), h = b(\"CLoggerX\"), i = b(\"ClientIDs\"), j = b(\"ImmutableObject\"), k = b(\"JSLogger\"), l = b(\"Nectar\"), m = b(\"UFICentralUpdates\"), n = b(\"UFIComments\"), o = b(\"UFIConstants\"), p = b(\"UFIFeedbackTargets\"), q = b(\"MercuryServerDispatcher\"), r = b(\"collectDataAttributes\"), s = b(\"copyProperties\"), t = b(\"tx\"), u = k.create(\"UFIUserActions\"), v = {\n        BAN: \"ban\",\n        UNDO_BAN: \"undo_ban\"\n    }, w = {\n        changeCommentLike: function(ka, la, ma) {\n            var na = n.getComment(ka);\n            if (((na.hasviewerliked != la))) {\n                var oa = x(ma.target), pa = ((la ? 1 : -1)), qa = {\n                    commentid: ka,\n                    actiontype: o.UFIActionType.COMMENT_LIKE,\n                    viewerliked: la,\n                    likecount: ((na.likecount + pa))\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    actions: [qa,]\n                });\n                q.trySend(\"/ajax/ufi/comment_like.php\", s({\n                    comment_id: ka,\n                    legacy_id: na.legacyid,\n                    like_action: la,\n                    ft_ent_identifier: na.ftentidentifier,\n                    source: ma.source,\n                    client_id: i.getNewClientID()\n                }, oa));\n            }\n        ;\n        ;\n        },\n        addComment: function(ka, la, ma, na) {\n            p.getFeedbackTarget(ka, function(oa) {\n                var pa = x(na.target), qa = i.getNewClientID();\n                if (!oa.actorforpost) {\n                    return;\n                }\n            ;\n            ;\n                var ra = {\n                    ftentidentifier: ka,\n                    body: {\n                        text: la\n                    },\n                    author: oa.actorforpost,\n                    id: qa,\n                    islocal: true,\n                    ufiinstanceid: na.ufiinstanceid,\n                    likecount: 0,\n                    hasviewerliked: false,\n                    parentcommentid: na.replyid,\n                    photo_comment: na.attachedphoto,\n                    timestamp: {\n                        time: JSBNG__Date.now(),\n                        text: \"a few seconds ago\"\n                    }\n                }, sa = {\n                    actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n                    actorid: oa.actorforpost,\n                    hasviewersubscribed: true,\n                    entidentifier: ka\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    comments: [ra,],\n                    actions: [sa,]\n                });\n                var ta = null;\n                if (na.replyid) {\n                    ta = (n.getComment(na.replyid)).fbid;\n                }\n            ;\n            ;\n                var ua = h.getCLParamsForTarget(na.target, ta);\n                q.trySend(\"/ajax/ufi/add_comment.php\", s({\n                    ft_ent_identifier: oa.entidentifier,\n                    comment_text: ma,\n                    source: na.source,\n                    client_id: qa,\n                    reply_fbid: ta,\n                    parent_comment_id: na.replyid,\n                    timeline_log_data: na.timelinelogdata,\n                    rootid: na.rootid,\n                    clp: ua,\n                    attached_photo_fbid: ((na.attachedphoto ? na.attachedphoto.fbid : 0)),\n                    giftoccasion: na.giftoccasion\n                }, pa));\n            });\n        },\n        editComment: function(ka, la, ma, na) {\n            var oa = x(na.target), pa = n.getComment(ka);\n            pa = j.set(pa, {\n                JSBNG__status: o.UFIStatus.PENDING_EDIT,\n                body: {\n                    text: la\n                },\n                timestamp: {\n                    time: JSBNG__Date.now(),\n                    text: \"a few seconds ago\"\n                },\n                originalTimestamp: pa.timestamp.time,\n                editnux: null,\n                attachment: null\n            });\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                comments: [pa,]\n            });\n            q.trySend(\"/ajax/ufi/edit_comment.php\", s({\n                ft_ent_identifier: pa.ftentidentifier,\n                comment_text: ma,\n                source: na.source,\n                comment_id: pa.id,\n                parent_comment_id: pa.parentcommentid,\n                attached_photo_fbid: ((na.attachedPhoto ? na.attachedPhoto.fbid : 0))\n            }, oa));\n        },\n        translateComment: function(ka, la) {\n            q.trySend(\"/ajax/ufi/translate_comment.php\", {\n                ft_ent_identifier: ka.ftentidentifier,\n                comment_ids: [ka.id,],\n                source: la.source\n            });\n        },\n        setHideAsSpam: function(ka, la, ma) {\n            var na = x(ma.target), oa = n.getComment(ka), pa = {\n                commentid: ka,\n                actiontype: o.UFIActionType.COMMENT_SET_SPAM,\n                shouldHideAsSpam: la\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [pa,]\n            });\n            q.trySend(\"/ajax/ufi/comment_spam.php\", s({\n                comment_id: ka,\n                spam_action: la,\n                ft_ent_identifier: oa.ftentidentifier,\n                source: ma.source\n            }, na));\n        },\n        removeComment: function(ka, la) {\n            var ma = x(la.target), na = n.getComment(ka), oa = {\n                actiontype: o.UFIActionType.DELETE_COMMENT,\n                commentid: ka,\n                oneclick: la.oneclick\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [oa,]\n            });\n            q.trySend(\"/ajax/ufi/delete_comment.php\", s({\n                comment_id: na.id,\n                comment_legacyid: na.legacyid,\n                ft_ent_identifier: na.ftentidentifier,\n                one_click: la.oneclick,\n                source: la.source,\n                client_id: i.getNewClientID(),\n                timeline_log_data: la.timelinelogdata\n            }, ma));\n        },\n        undoRemoveComment: function(ka, la, ma) {\n            var na = n.getComment(ka);\n            if (!na.undoData) {\n                u.error(\"noundodata\", {\n                    comment: ka\n                });\n                return;\n            }\n        ;\n        ;\n            var oa = x(ma.target), pa = {\n                actiontype: o.UFIActionType.UNDO_DELETE_COMMENT,\n                commentid: ka\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [pa,]\n            });\n            var qa = na.undoData;\n            qa.page_admin = la;\n            var ra = s(oa, qa);\n            q.trySend(\"/ajax/ufi/undo_delete_comment.php\", ra);\n        },\n        banUser: function(ka, la, ma, na) {\n            var oa = ((ma ? v.BAN : v.UNDO_BAN));\n            q.trySend(\"/ajax/ufi/ban_user.php\", {\n                page_id: la,\n                commenter_id: ka.author,\n                action: oa,\n                comment_id: ka.id,\n                client_side: true\n            });\n        },\n        changeLike: function(ka, la, ma) {\n            p.getFeedbackTarget(ka, function(na) {\n                var oa = x(ma.target);\n                if (((na.hasviewerliked !== la))) {\n                    var pa = ((la ? 1 : -1)), qa = {\n                        actiontype: o.UFIActionType.LIKE_ACTION,\n                        actorid: na.actorforpost,\n                        hasviewerliked: la,\n                        likecount: ((na.likecount + pa)),\n                        entidentifier: ka,\n                        likesentences: {\n                            current: na.likesentences.alternate,\n                            alternate: na.likesentences.current\n                        }\n                    };\n                    m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                        actions: [qa,]\n                    });\n                    q.trySend(\"/ajax/ufi/like.php\", s({\n                        like_action: la,\n                        ft_ent_identifier: ka,\n                        source: ma.source,\n                        client_id: i.getNewClientID(),\n                        rootid: ma.rootid,\n                        giftoccasion: ma.giftoccasion\n                    }, oa));\n                }\n            ;\n            ;\n            });\n        },\n        changeSubscribe: function(ka, la, ma) {\n            p.getFeedbackTarget(ka, function(na) {\n                var oa = x(ma.target);\n                if (((na.hasviewersubscribed !== la))) {\n                    var pa = {\n                        actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n                        actorid: na.actorforpost,\n                        hasviewersubscribed: la,\n                        entidentifier: ka\n                    };\n                    m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                        actions: [pa,]\n                    });\n                    q.trySend(\"/ajax/ufi/subscribe.php\", s({\n                        subscribe_action: la,\n                        ft_ent_identifier: ka,\n                        source: ma.source,\n                        client_id: i.getNewClientID(),\n                        rootid: ma.rootid,\n                        comment_expand_mode: ma.commentexpandmode\n                    }, oa));\n                }\n            ;\n            ;\n            });\n        },\n        fetchSpamComments: function(ka, la, ma, na) {\n            q.trySend(\"/ajax/ufi/id_comment_fetch.php\", {\n                ft_ent_identifier: ka,\n                viewas: na,\n                comment_ids: la,\n                parent_comment_id: ma,\n                source: null\n            });\n        },\n        removePreview: function(ka, la) {\n            var ma = x(la.target), na = {\n                commentid: ka.id,\n                actiontype: o.UFIActionType.REMOVE_PREVIEW\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [na,]\n            });\n            q.trySend(\"/ajax/ufi/remove_preview.php\", s({\n                comment_id: ka.id,\n                ft_ent_identifier: ka.ftentidentifier,\n                source: la.source\n            }, ma));\n        }\n    };\n    function x(ka) {\n        if (!ka) {\n            return {\n                ft: {\n                }\n            };\n        }\n    ;\n    ;\n        var la = {\n            ft: r(ka, [\"ft\",]).ft\n        };\n        l.addModuleData(la, ka);\n        return la;\n    };\n;\n    function y(ka) {\n        var la = ka.request.data;\n        g.defaultErrorHandler(ka);\n        var ma = ((la.client_id || la.comment_id)), na = n.getComment(ma), oa = ((((na.JSBNG__status === o.UFIStatus.PENDING_EDIT)) ? o.UFIStatus.FAILED_EDIT : o.UFIStatus.FAILED_ADD));\n        na = j.setDeep(na, {\n            JSBNG__status: oa,\n            allowRetry: z(ka),\n            body: {\n                mentionstext: la.comment_text\n            }\n        });\n        m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n            comments: [na,]\n        });\n    };\n;\n    function z(ka) {\n        var la = ka.getError();\n        if (((la === 1404102))) {\n            return false;\n        }\n    ;\n    ;\n        if (ka.silentError) {\n            return true;\n        }\n    ;\n    ;\n        if (((((la === 1357012)) || ((la === 1357006))))) {\n            return false;\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    function aa(ka) {\n        var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n        na = j.set(na, {\n            JSBNG__status: ((na.priorstatus || null)),\n            priorstatus: undefined\n        });\n        m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n            comments: [na,]\n        });\n    };\n;\n    function ba(ka) {\n        var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n        if (((la.like_action === na.hasviewerliked))) {\n            var oa = ((na.hasviewerliked ? -1 : 1)), pa = {\n                commentid: ma,\n                actiontype: o.UFIActionType.COMMENT_LIKE,\n                viewerliked: !na.hasviewerliked,\n                likecount: ((na.likecount + oa))\n            };\n            m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                actions: [pa,]\n            });\n        }\n    ;\n    ;\n        g.defaultErrorHandler(ka);\n    };\n;\n    function ca(ka) {\n        var la = ka.request.data, ma = la.ft_ent_identifier;\n        p.getFeedbackTarget(ma, function(na) {\n            if (((na.hasviewerliked === la.like_action))) {\n                var oa = ((na.hasviewerliked ? -1 : 1)), pa = {\n                    actiontype: o.UFIActionType.LIKE_ACTION,\n                    actorid: na.actorforpost,\n                    hasviewerliked: !na.hasviewerliked,\n                    likecount: ((na.likecount + oa)),\n                    entidentifier: ma,\n                    likesentences: {\n                        current: na.likesentences.alternate,\n                        alternate: na.likesentences.current\n                    }\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    actions: [pa,]\n                });\n            }\n        ;\n        ;\n        });\n        g.defaultErrorHandler(ka);\n    };\n;\n    function da(ka) {\n        var la = ka.request.data, ma = la.ft_ent_identifier;\n        p.getFeedbackTarget(ma, function(na) {\n            if (((na.hasviewersubscribed === la.subscribe_action))) {\n                var oa = {\n                    actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n                    actorid: na.actorforpost,\n                    hasviewersubscribed: !na.hasviewersubscribed,\n                    entidentifier: ma\n                };\n                m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n                    actions: [oa,]\n                });\n            }\n        ;\n        ;\n        });\n        g.defaultErrorHandler(ka);\n    };\n;\n    var ea = function(ka) {\n        return m.handleUpdate.bind(m, ka);\n    }, fa = o.UFIPayloadSourceType;\n    q.registerEndpoints({\n        \"/ajax/ufi/comment_like.php\": {\n            mode: q.BATCH_CONDITIONAL,\n            handler: ea(fa.ENDPOINT_COMMENT_LIKE),\n            error_handler: ba,\n            batch_if: ga,\n            batch_function: ja\n        },\n        \"/ajax/ufi/comment_spam.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_COMMENT_SPAM),\n            error_handler: aa\n        },\n        \"/ajax/ufi/add_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_ADD_COMMENT),\n            error_handler: y\n        },\n        \"/ajax/ufi/delete_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_DELETE_COMMENT),\n            error_handler: aa\n        },\n        \"/ajax/ufi/undo_delete_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_UNDO_DELETE_COMMENT),\n            error_handler: aa\n        },\n        \"/ajax/ufi/ban_user.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_BAN)\n        },\n        \"/ajax/ufi/edit_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_EDIT_COMMENT),\n            error_handler: y\n        },\n        \"/ajax/ufi/like.php\": {\n            mode: q.BATCH_CONDITIONAL,\n            handler: ea(fa.ENDPOINT_LIKE),\n            error_handler: ca,\n            batch_if: ha,\n            batch_function: ja\n        },\n        \"/ajax/ufi/subscribe.php\": {\n            mode: q.BATCH_CONDITIONAL,\n            handler: ea(fa.ENDPOINT_SUBSCRIBE),\n            error_handler: da,\n            batch_if: ia,\n            batch_function: ja\n        },\n        \"/ajax/ufi/id_comment_fetch.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_ID_COMMENT_FETCH)\n        },\n        \"/ajax/ufi/remove_preview.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_REMOVE_PREVIEW)\n        },\n        \"/ajax/ufi/translate_comment.php\": {\n            mode: q.IMMEDIATE,\n            handler: ea(fa.ENDPOINT_TRANSLATE_COMMENT)\n        }\n    });\n    function ga(ka, la) {\n        return ((((ka && ((ka.ft_ent_identifier == la.ft_ent_identifier)))) && ((ka.comment_id == la.comment_id))));\n    };\n;\n    function ha(ka, la) {\n        return ((ka && ((ka.ft_ent_identifier == la.ft_ent_identifier))));\n    };\n;\n    function ia(ka, la) {\n        return ((ka && ((ka.ft_ent_identifier == la.ft_ent_identifier))));\n    };\n;\n    function ja(ka, la) {\n        return la;\n    };\n;\n    e.exports = w;\n});\n__d(\"UFIActionLinkController\", [\"Arbiter\",\"ClickTTIIdentifiers\",\"CSS\",\"DOMQuery\",\"Parent\",\"React\",\"TrackingNodes\",\"UFIBlingBox.react\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFILikeLink.react\",\"UFISubscribeLink.react\",\"UFITimelineBlingBox.react\",\"UFIUserActions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ClickTTIIdentifiers\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"Parent\"), l = b(\"React\"), m = b(\"TrackingNodes\"), n = b(\"UFIBlingBox.react\"), o = b(\"UFICentralUpdates\"), p = b(\"UFIComments\"), q = b(\"UFIConstants\"), r = b(\"UFIFeedbackTargets\"), s = b(\"UFILikeLink.react\"), t = b(\"UFISubscribeLink.react\"), u = b(\"UFITimelineBlingBox.react\"), v = b(\"UFIUserActions\"), w = b(\"copyProperties\");\n    function x(z, aa, ba) {\n        if (this._root) {\n            throw new Error(((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\")));\n        }\n    ;\n    ;\n        var ca = j.scry(z, aa)[0];\n        if (ca) {\n            var da = JSBNG__document.createElement(\"span\");\n            ca.parentNode.replaceChild(da, ca);\n            da.appendChild(ca);\n            if (((typeof ba === \"function\"))) {\n                ba(da);\n            }\n        ;\n        ;\n        }\n         else var ea = g.subscribe(\"PhotoSnowlift.DATA_CHANGE\", function() {\n            g.unsubscribe(ea);\n            x(z, aa, ba);\n        }, g.SUBSCRIBE_NEW)\n    ;\n    };\n;\n    var y = function(z, aa, ba) {\n        this._id = aa.ftentidentifier;\n        this._ftFBID = ba.targetfbid;\n        this._source = aa.source;\n        this._contextArgs = aa;\n        this._ufiRoot = z;\n        if (this._isSourceProfile(this._contextArgs.source)) {\n            this._attemptInitializeTimelineBling();\n        }\n         else this._attemptInitializeBling();\n    ;\n    ;\n        if (ba.viewercanlike) {\n            this._attemptInitializeLike();\n        }\n    ;\n    ;\n        if (ba.viewercansubscribetopost) {\n            this._attemptInitializeSubscribe();\n        }\n    ;\n    ;\n        o.subscribe(\"feedback-updated\", function(ca, da) {\n            var ea = da.updates;\n            if (((this._id in ea))) {\n                this.render();\n            }\n        ;\n        ;\n        }.bind(this));\n        o.subscribe(\"feedback-id-changed\", function(ca, da) {\n            var ea = da.updates;\n            if (((this._id in ea))) {\n                this._id = ea[this._id];\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n    w(y.prototype, {\n        _attemptInitializeBling: function() {\n            x(this._ufiRoot, \"^form .uiBlingBox\", function(z) {\n                this._blingRoot = z;\n                if (this._dataReady) {\n                    this._renderBling();\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _attemptInitializeTimelineBling: function() {\n            if (this._root) {\n                throw new Error(((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\")));\n            }\n        ;\n        ;\n            var z = j.scry(this._ufiRoot, \"^form .fbTimelineFeedbackActions span\")[0];\n            if (z) {\n                i.addClass(z, \"UFIBlingBoxTimeline\");\n                var aa = j.scry(z, \".fbTimelineFeedbackLikes\")[0];\n                this._enableShowLikes = ((aa ? true : false));\n                var ba = j.scry(z, \".fbTimelineFeedbackComments\")[0];\n                this._enableShowComments = ((ba ? true : false));\n            }\n        ;\n        ;\n            this._blingTimelineRoot = z;\n            if (this._dataReady) {\n                this._renderTimelineBling();\n            }\n        ;\n        ;\n        },\n        _attemptInitializeLike: function() {\n            x(this._ufiRoot, \"^form .like_link\", function(z) {\n                this._likeRoot = z;\n                if (this._dataReady) {\n                    this._renderLike();\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _attemptInitializeSubscribe: function() {\n            x(this._ufiRoot, \"^form .unsub_link\", function(z) {\n                this._subscribeRoot = z;\n                if (this._dataReady) {\n                    this._renderSubscribe();\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        render: function() {\n            this._dataReady = true;\n            if (this._isSourceProfile(this._contextArgs.source)) {\n                this._renderTimelineBling();\n            }\n             else this._renderBling();\n        ;\n        ;\n            this._renderLike();\n            this._renderSubscribe();\n        },\n        _renderBling: function() {\n            if (this._blingRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = function(JSBNG__event) {\n                        var da = k.byTag(JSBNG__event.target, \"form\");\n                        i.toggleClass(da, \"collapsed_comments\");\n                        i.toggleClass(da, \"hidden_add_comment\");\n                        JSBNG__event.preventDefault();\n                    }.bind(this), ba = m.getTrackingInfo(m.types.BLINGBOX), ca = n({\n                        likes: z.likecount,\n                        comments: p.getDisplayedCommentCount(this._id),\n                        reshares: z.sharecount,\n                        permalink: z.permalink,\n                        contextArgs: this._contextArgs,\n                        onClick: aa,\n                        \"data-ft\": ba\n                    });\n                    this._blingBox = l.renderComponent(ca, this._blingRoot);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _renderTimelineBling: function() {\n            if (this._blingTimelineRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = m.getTrackingInfo(m.types.BLINGBOX), ba = h.getUserActionID(h.types.TIMELINE_SEE_LIKERS), ca = function(JSBNG__event) {\n                        var ea = k.byTag(JSBNG__event.target, \"form\");\n                        i.removeClass(ea, \"collapsed_comments\");\n                        var fa = j.scry(ea, \"a.UFIPagerLink\");\n                        if (fa.length) {\n                            fa[0].click();\n                        }\n                    ;\n                    ;\n                        JSBNG__event.preventDefault();\n                    }.bind(this), da = u({\n                        comments: p.getDisplayedCommentCount(this._id),\n                        commentOnClick: ca,\n                        contextArgs: this._contextArgs,\n                        \"data-ft\": aa,\n                        \"data-gt\": ba,\n                        enableShowComments: this._enableShowComments,\n                        enableShowLikes: this._enableShowLikes,\n                        feedbackFBID: this._ftFBID,\n                        likes: z.likecount,\n                        reshares: z.sharecount\n                    });\n                    l.renderComponent(da, this._blingTimelineRoot);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _renderLike: function() {\n            if (this._likeRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = !z.hasviewerliked, ba = function(JSBNG__event) {\n                        v.changeLike(this._id, aa, {\n                            source: this._source,\n                            target: JSBNG__event.target,\n                            rootid: this._contextArgs.rootid,\n                            giftoccasion: this._contextArgs.giftoccasion\n                        });\n                        JSBNG__event.preventDefault();\n                    }.bind(this), ca = s({\n                        onClick: ba,\n                        likeAction: aa\n                    });\n                    this._likeLink = l.renderComponent(ca, this._likeRoot);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _renderSubscribe: function() {\n            if (this._subscribeRoot) {\n                r.getFeedbackTarget(this._id, function(z) {\n                    var aa = !z.hasviewersubscribed, ba = function(JSBNG__event) {\n                        v.changeSubscribe(this._id, aa, {\n                            source: this._source,\n                            target: JSBNG__event.target,\n                            rootid: this._contextArgs.rootid,\n                            commentexpandmode: z.commentexpandmode\n                        });\n                        JSBNG__event.preventDefault();\n                    }.bind(this), ca = t({\n                        onClick: ba,\n                        subscribeAction: aa\n                    });\n                    this._subscribeLink = l.renderComponent(ca, this._subscribeRoot);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _isSourceProfile: function(z) {\n            return ((z === q.UFIFeedbackSourceType.PROFILE));\n        }\n    });\n    e.exports = y;\n});\n__d(\"MentionsInputUtils\", [], function(a, b, c, d, e, f) {\n    var g = {\n        generateDataFromTextWithEntities: function(h) {\n            var i = h.text, j = [];\n            ((h.ranges || [])).forEach(function(l) {\n                var m = l.entities[0];\n                if (!m.JSBNG__external) {\n                    j.push({\n                        uid: m.id,\n                        text: i.substr(l.offset, l.length),\n                        offset: l.offset,\n                        length: l.length,\n                        weakreference: !!m.weakreference\n                    });\n                }\n            ;\n            ;\n            });\n            var k = {\n                value: i,\n                mentions: j\n            };\n            return k;\n        }\n    };\n    e.exports = g;\n});\n__d(\"ClipboardPhotoUploader\", [\"ArbiterMixin\",\"AsyncRequest\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\");\n    function j(k, l) {\n        this.uploadURIString = k;\n        this.data = l;\n    };\n;\n    i(j.prototype, g, {\n        handlePaste: function(JSBNG__event) {\n            if (!JSBNG__event.JSBNG__clipboardData) {\n                return;\n            }\n        ;\n        ;\n            var k = JSBNG__event.JSBNG__clipboardData.items;\n            if (!k) {\n                return;\n            }\n        ;\n        ;\n            for (var l = 0; ((l < k.length)); ++l) {\n                var m = k[l];\n                if (((((m.kind === \"file\")) && ((m.type.indexOf(\"image/\") !== -1))))) {\n                    var n = new JSBNG__FormData();\n                    n.append(\"pasted_file\", m.getAsFile());\n                    var o = new h();\n                    o.setURI(this.uploadURIString).setData(this.data).setRawData(n).setHandler(function(p) {\n                        this.inform(\"upload_success\", p);\n                    }.bind(this)).setErrorHandler(function(p) {\n                        this.inform(\"upload_error\", p);\n                    }.bind(this));\n                    this.inform(\"upload_start\");\n                    o.send();\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"CloseButton.react\", [\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"cx\"), i = g.createClass({\n        displayName: \"CloseButton\",\n        render: function() {\n            var j = this.props, k = ((j.size || \"medium\")), l = ((j.appearance || \"normal\")), m = ((k === \"small\")), n = ((k === \"huge\")), o = ((l === \"dark\")), p = ((l === \"inverted\")), q = (((((((((((((\"uiCloseButton\") + ((m ? ((\" \" + \"uiCloseButtonSmall\")) : \"\")))) + ((n ? ((\" \" + \"uiCloseButtonHuge\")) : \"\")))) + ((((m && o)) ? ((\" \" + \"uiCloseButtonSmallDark\")) : \"\")))) + ((((m && p)) ? ((\" \" + \"uiCloseButtonSmallInverted\")) : \"\")))) + ((((!m && o)) ? ((\" \" + \"uiCloseButtonDark\")) : \"\")))) + ((((!m && p)) ? ((\" \" + \"uiCloseButtonInverted\")) : \"\"))));\n            return this.transferPropsTo(g.DOM.a({\n                href: \"#\",\n                role: \"button\",\n                \"aria-label\": j.tooltip,\n                \"data-hover\": ((j.tooltip && \"tooltip\")),\n                \"data-tooltip-alignh\": ((j.tooltip && \"center\")),\n                className: q\n            }));\n        }\n    });\n    e.exports = i;\n});\n__d(\"LoadingIndicator.react\", [\"React\",\"joinClasses\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"joinClasses\"), i = b(\"keyMirror\"), j = b(\"merge\"), k = i({\n        white: true,\n        blue: true,\n        black: true\n    }), l = i({\n        small: true,\n        medium: true,\n        large: true\n    }), m = {\n        white: {\n            large: \"/images/loaders/indicator_blue_large.gif\",\n            medium: \"/images/loaders/indicator_blue_medium.gif\",\n            small: \"/images/loaders/indicator_blue_small.gif\"\n        },\n        blue: {\n            large: \"/images/loaders/indicator_white_large.gif\",\n            small: \"/images/loaders/indicator_white_small.gif\"\n        },\n        black: {\n            large: \"/images/loaders/indicator_black.gif\"\n        }\n    }, n = g.createClass({\n        displayName: \"LoadingIndicator\",\n        render: function() {\n            var o = this.props.color, p = this.props.size;\n            if (!m[o]) {\n                return g.DOM.span(null);\n            }\n        ;\n        ;\n            if (!m[o][p]) {\n                return g.DOM.span(null);\n            }\n        ;\n        ;\n            var q = ((this.props.showonasync ? \"uiLoadingIndicatorAsync\" : \"\"));\n            if (this.props.className) {\n                q = h(this.props.className, q);\n            }\n        ;\n        ;\n            var r = m[o][p], s = g.DOM.img({\n                src: r,\n                className: q\n            });\n            s.props = j(this.props, s.props);\n            return s;\n        }\n    });\n    n.SIZES = l;\n    n.COLORS = k;\n    e.exports = n;\n});\n__d(\"LegacyMentionsInput.react\", [\"PlaceholderListener\",\"Bootloader\",\"JSBNG__Event\",\"Keys\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    b(\"PlaceholderListener\");\n    var g = b(\"Bootloader\"), h = b(\"JSBNG__Event\"), i = b(\"Keys\"), j = b(\"React\"), k = b(\"cx\"), l = j.createClass({\n        displayName: \"ReactLegacyMentionsInput\",\n        componentDidMount: function(m) {\n            ((this.props.initialData && this._initializeTextarea(m)));\n        },\n        hasEnteredText: function() {\n            return !!((this._mentionsInput && this._mentionsInput.getValue().trim()));\n        },\n        _handleKeydown: function(JSBNG__event) {\n            var m = JSBNG__event.nativeEvent, n = this.props.onEnterSubmit, o = ((((h.getKeyCode(m) == i.RETURN)) && !h.$E(m).getModifiers().any)), p = ((this._mentionsInput && this._mentionsInput.getTypeahead().getView().JSBNG__getSelection()));\n            if (((((n && o)) && !p))) {\n                if (this.props.isLoadingPhoto) {\n                    return false;\n                }\n            ;\n            ;\n                var q = JSBNG__event.target, r = ((q.value && q.value.trim()));\n                if (((r || this.props.acceptEmptyInput))) {\n                    var s = {\n                        visibleValue: r,\n                        encodedValue: r,\n                        attachedPhoto: null\n                    };\n                    if (this._mentionsInput) {\n                        s.encodedValue = this._mentionsInput.getRawValue().trim();\n                        this._mentionsInput.reset();\n                    }\n                ;\n                ;\n                    n(s, JSBNG__event);\n                }\n            ;\n            ;\n                JSBNG__event.preventDefault();\n            }\n        ;\n        ;\n        },\n        _handleFocus: function() {\n            ((this.props.onFocus && this.props.onFocus()));\n            this._initializeTextarea(this.refs.root.getDOMNode());\n        },\n        _handleBlur: function() {\n            ((this.props.onBlur && this.props.onBlur()));\n        },\n        _initializeTextarea: function(m) {\n            if (((this._mentionsInput || this._bootloadingMentions))) {\n                return;\n            }\n        ;\n        ;\n            this._bootloadingMentions = true;\n            g.loadModules([\"CompactTypeaheadRenderer\",\"ContextualTypeaheadView\",\"InputSelection\",\"MentionsInput\",\"TextAreaControl\",\"Typeahead\",\"TypeaheadAreaCore\",\"TypeaheadBestName\",\"TypeaheadHoistFriends\",\"TypeaheadMetrics\",\"TypingDetector\",], function(n, o, p, q, r, s, t, u, v, w, x) {\n                var y = this.refs.textarea.getDOMNode();\n                new r(y);\n                if (this.props.onTypingStateChange) {\n                    var z = new x(y);\n                    z.init();\n                    z.subscribe(\"change\", this.props.onTypingStateChange);\n                }\n            ;\n            ;\n                var aa = {\n                    autoSelect: true,\n                    renderer: n,\n                    causalElement: y\n                };\n                if (this.props.viewOptionsTypeObjects) {\n                    aa.typeObjects = this.props.viewOptionsTypeObjects;\n                }\n            ;\n            ;\n                if (this.props.viewOptionsTypeObjectsOrder) {\n                    aa.typeObjectsOrder = this.props.viewOptionsTypeObjectsOrder;\n                }\n            ;\n            ;\n                var ba = new s(this.props.datasource, {\n                    ctor: o,\n                    options: aa\n                }, {\n                    ctor: t\n                }, this.refs.typeahead.getDOMNode()), ca = [u,v,], da = new w({\n                    extraData: {\n                        event_name: \"mentions\"\n                    }\n                });\n                s.initNow(ba, ca, da);\n                this._mentionsInput = new q(m, ba, y, {\n                    hashtags: this.props.sht\n                });\n                this._mentionsInput.init({\n                    max: 6\n                }, this.props.initialData);\n                if (this.props.initialData) {\n                    p.set(y, y.value.length);\n                }\n            ;\n            ;\n                if (this.props.onPaste) {\n                    h.listen(y, \"paste\", this.props.onPaste);\n                }\n            ;\n            ;\n                this._bootloadingMentions = false;\n            }.bind(this));\n        },\n        JSBNG__focus: function() {\n            try {\n                this.refs.textarea.getDOMNode().JSBNG__focus();\n            } catch (m) {\n            \n            };\n        ;\n        },\n        render: function() {\n            var m = (((((((((((\"textInput\") + ((\" \" + \"mentionsTextarea\")))) + ((\" \" + \"uiTextareaAutogrow\")))) + ((\" \" + \"uiTextareaNoResize\")))) + ((\" \" + \"UFIAddCommentInput\")))) + ((\" \" + \"DOMControl_placeholder\"))));\n            return (j.DOM.div({\n                ref: \"root\",\n                className: \"uiMentionsInput textBoxContainer ReactLegacyMentionsInput\"\n            }, j.DOM.div({\n                className: \"highlighter\"\n            }, j.DOM.div(null, j.DOM.span({\n                className: \"highlighterContent hidden_elem\"\n            }))), j.DOM.div({\n                ref: \"typeahead\",\n                className: \"uiTypeahead mentionsTypeahead\"\n            }, j.DOM.div({\n                className: \"wrap\"\n            }, j.DOM.input({\n                type: \"hidden\",\n                autocomplete: \"off\",\n                className: \"hiddenInput\"\n            }), j.DOM.div({\n                className: \"innerWrap\"\n            }, j.DOM.textarea({\n                ref: \"textarea\",\n                JSBNG__name: \"add_comment_text\",\n                className: m,\n                title: this.props.placeholder,\n                placeholder: this.props.placeholder,\n                onFocus: this._handleFocus,\n                onBlur: this._handleBlur,\n                onKeyDown: this._handleKeydown,\n                defaultValue: this.props.placeholder\n            })))), j.DOM.input({\n                type: \"hidden\",\n                autocomplete: \"off\",\n                className: \"mentionsHidden\",\n                defaultValue: \"\"\n            })));\n        }\n    });\n    e.exports = l;\n});\n__d(\"UFIClassNames\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\");\n    e.exports = {\n        ACTOR_IMAGE: \"img UFIActorImage _54ru\",\n        ROW: \"UFIRow\",\n        UNSEEN_ITEM: \"UFIUnseenItem\"\n    };\n});\n__d(\"LeftRight.react\", [\"React\",\"cx\",\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"cx\"), i = b(\"keyMirror\"), j = b(\"throwIf\"), k = i({\n        left: true,\n        right: true,\n        both: true\n    });\n    function l(n) {\n        j(((((!n.children || ((n.children.length < 1)))) || ((n.children.length > 2)))), \"LeftRight component must have one or two children.\");\n    };\n;\n    var m = g.createClass({\n        displayName: \"LeftRight\",\n        render: function() {\n            l(this.props);\n            var n = ((this.props.direction || k.both)), o = ((n === k.both)), p = g.DOM.div({\n                key: \"left\",\n                className: ((((o || ((n === k.left)))) ? \"lfloat\" : \"\"))\n            }, this.props.children[0]), q = ((((this.props.children.length < 2)) ? null : g.DOM.div({\n                key: \"right\",\n                className: ((((o || ((n === k.right)))) ? \"rfloat\" : \"\"))\n            }, this.props.children[1]))), r = ((((((n === k.right)) && q)) ? [q,p,] : [p,q,]));\n            return this.transferPropsTo(g.DOM.div({\n                className: \"clearfix\"\n            }, r));\n        }\n    });\n    m.DIRECTION = k;\n    e.exports = m;\n});\n__d(\"ImageBlock.react\", [\"LeftRight.react\",\"React\",\"cx\",\"joinClasses\",\"throwIf\",], function(a, b, c, d, e, f) {\n    var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"throwIf\");\n    function l(p) {\n        k(((((!p.children || ((p.children.length > 3)))) || ((p.children.length < 1)))), \"ImageBlock requires two or three children.\");\n    };\n;\n    function m(p) {\n        return (((((((((\"img\") + ((\" \" + \"_8o\")))) + ((((p === \"small\")) ? ((\" \" + \"_8r\")) : \"\")))) + ((((p === \"medium\")) ? ((\" \" + \"_8s\")) : \"\")))) + ((((p === \"large\")) ? ((\" \" + \"_8t\")) : \"\"))));\n    };\n;\n    function n(p, q, r) {\n        p.props.className = j(m(q), p.props.className, r);\n    };\n;\n    var o = h.createClass({\n        displayName: \"ImageBlock\",\n        render: function() {\n            l(this.props);\n            var p = this.props.children[0], q = this.props.children[1], r = this.props.children[2], s = ((this.props.spacing || \"small\"));\n            n(p, s, this.props.imageClassName);\n            var t = j(this.props.contentClassName, (((\"_42ef\") + ((((s === \"small\")) ? ((\" \" + \"_8u\")) : \"\")))));\n            if (((p.tagName == \"IMG\"))) {\n                if (((p.props.alt === undefined))) {\n                    p.props.alt = \"\";\n                }\n            ;\n            ;\n            }\n             else if (((((((((((p.tagName == \"A\")) || ((p.tagName == \"LINK\")))) && ((p.props.tabIndex === undefined)))) && ((p.props.title === undefined)))) && ((p.props[\"aria-label\"] === undefined))))) {\n                p.props.tabIndex = \"-1\";\n                p.props[\"aria-hidden\"] = \"true\";\n            }\n            \n        ;\n        ;\n            var u;\n            if (!r) {\n                u = h.DOM.div({\n                    className: t\n                }, q);\n            }\n             else u = g({\n                className: t,\n                direction: g.DIRECTION.right\n            }, q, r);\n        ;\n        ;\n            return this.transferPropsTo(g({\n                direction: g.DIRECTION.left\n            }, p, u));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFIImageBlock.react\", [\"ImageBlock.react\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ImageBlock.react\"), h = b(\"React\"), i = b(\"cx\"), j = h.createClass({\n        displayName: \"UFIImageBlock\",\n        render: function() {\n            return this.transferPropsTo(g({\n                imageClassName: \"UFIImageBlockImage\",\n                contentClassName: \"UFIImageBlockContent\"\n            }, this.props.children));\n        }\n    });\n    e.exports = j;\n});\n__d(\"UFIAddComment.react\", [\"Bootloader\",\"CLogConfig\",\"ClipboardPhotoUploader\",\"CloseButton.react\",\"JSBNG__Event\",\"Keys\",\"LoadingIndicator.react\",\"React\",\"LegacyMentionsInput.react\",\"TrackingNodes\",\"Run\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CLogConfig\"), i = b(\"ClipboardPhotoUploader\"), j = b(\"CloseButton.react\"), k = b(\"JSBNG__Event\"), l = b(\"Keys\"), m = b(\"LoadingIndicator.react\"), n = b(\"React\"), o = b(\"LegacyMentionsInput.react\"), p = b(\"TrackingNodes\"), q = b(\"Run\"), r = b(\"UFIClassNames\"), s = b(\"UFIImageBlock.react\"), t = b(\"cx\"), u = b(\"joinClasses\"), v = b(\"tx\"), w = \"Write a comment...\", x = \"Write a reply...\", y = \"fcg fss UFICommentTip\", z = 19, aa = \"/ajax/ufi/upload/\", ba = n.createClass({\n        displayName: \"UFIAddComment\",\n        getInitialState: function() {\n            if (this.props.attachedPhoto) {\n                this.props.contextArgs.attachedphoto = this.props.attachedPhoto;\n            }\n        ;\n        ;\n            return {\n                attachedPhoto: ((this.props.attachedPhoto ? this.props.attachedPhoto : null)),\n                isCommenting: false,\n                isLoadingPhoto: false,\n                isOnBeforeUnloadListenerAdded: false\n            };\n        },\n        _onKeyDown: function(JSBNG__event) {\n            if (((this.props.isEditing && ((k.getKeyCode(JSBNG__event.nativeEvent) === l.ESC))))) {\n                this.props.onCancel();\n            }\n        ;\n        ;\n            if (((this.isMounted() && !this.state.isOnBeforeUnloadListenerAdded))) {\n                q.onBeforeUnload(this._handleUnsavedChanges);\n                this.setState({\n                    isOnBeforeUnloadListenerAdded: true\n                });\n            }\n        ;\n        ;\n        },\n        _handleUnsavedChanges: function() {\n            var ca = a.PageTransitions;\n            if (ca) {\n                var da = ca.getNextURI(), ea = ca.getMostRecentURI();\n                if (((da.getQueryData().hasOwnProperty(\"theater\") || ea.getQueryData().hasOwnProperty(\"theater\")))) {\n                    return;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((((this.refs && this.refs.mentionsinput)) && this.refs.mentionsinput.hasEnteredText()))) {\n                return \"You haven't finished your comment yet. Do you want to leave without finishing?\";\n            }\n        ;\n        ;\n        },\n        _blur: function() {\n            if (((this.refs.mentionsinput && this.refs.mentionsinput.hasEnteredText()))) {\n                return;\n            }\n        ;\n        ;\n            this.setState({\n                isCommenting: false\n            });\n        },\n        _onPaste: function(JSBNG__event) {\n            var ca = new i(aa, this._getPhotoUploadData());\n            this._cancelCurrentSubscriptions();\n            this._subscriptions = [ca.subscribe(\"upload_start\", this._prepareForAttachedPhotoPreview),ca.subscribe(\"upload_error\", this._onRemoveAttachedPhotoPreviewClicked),ca.subscribe(\"upload_success\", function(da, ea) {\n                this._onPhotoUploadComplete(ea);\n            }.bind(this)),];\n            ca.handlePaste(JSBNG__event);\n        },\n        _cancelCurrentSubscriptions: function() {\n            if (this._subscriptions) {\n                this._subscriptions.forEach(function(ca) {\n                    ca.unsubscribe();\n                });\n            }\n        ;\n        ;\n        },\n        componentWillUnmount: function() {\n            this._cancelCurrentSubscriptions();\n        },\n        JSBNG__focus: function() {\n            if (((this.refs && this.refs.mentionsinput))) {\n                this.refs.mentionsinput.JSBNG__focus();\n            }\n        ;\n        ;\n        },\n        render: function() {\n            var ca = ((!this.props.contextArgs.collapseaddcomment || this.state.isCommenting)), da = null;\n            if (this.props.isEditing) {\n                da = n.DOM.span({\n                    className: y\n                }, \"Press Esc to cancel.\");\n            }\n             else if (this.props.showSendOnEnterTip) {\n                da = n.DOM.span({\n                    className: y\n                }, \"Press Enter to post.\");\n            }\n             else if (this.props.subtitle) {\n                da = n.DOM.span({\n                    className: y\n                }, this.props.subtitle);\n            }\n            \n            \n        ;\n        ;\n            var ea = null, fa = this.state.attachedPhoto, ga = null;\n            if (this.props.allowPhotoAttachments) {\n                ga = this._onPaste;\n                var ha = n.DOM.input({\n                    ref: \"PhotoInput\",\n                    accept: \"image/*\",\n                    className: \"_n\",\n                    JSBNG__name: \"file[]\",\n                    type: \"file\",\n                    multiple: false\n                }), ia = ((fa ? \"UFICommentPhotoAttachedIcon\" : \"UFICommentPhotoIcon\")), ja = \"UFIPhotoAttachLinkWrapper _m\";\n                ea = n.DOM.div({\n                    ref: \"PhotoInputContainer\",\n                    className: ja,\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"center\",\n                    \"aria-label\": \"Attach a Photo\"\n                }, n.DOM.i({\n                    ref: \"PhotoInputControl\",\n                    className: ia\n                }), ha);\n            }\n        ;\n        ;\n            var ka = p.getTrackingInfo(p.types.ADD_COMMENT_BOX), la = u(r.ACTOR_IMAGE, ((!ca ? \"hidden_elem\" : \"\"))), ma = n.DOM.div({\n                className: \"UFIReplyActorPhotoWrapper\"\n            }, n.DOM.img({\n                className: la,\n                src: this.props.viewerActor.thumbSrc\n            })), na = u(r.ROW, ((((((((((((this.props.hide ? \"noDisplay\" : \"\")) + ((\" \" + \"UFIAddComment\")))) + ((this.props.allowPhotoAttachments ? ((\" \" + \"UFIAddCommentWithPhotoAttacher\")) : \"\")))) + ((this.props.withoutSeparator ? ((\" \" + \"UFIAddCommentWithoutSeparator\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), oa = ((!!this.props.replyCommentID ? x : w)), pa = ((this.props.contextArgs.entstream ? this._blur : null)), qa = this.props.contextArgs.viewoptionstypeobjects, ra = this.props.contextArgs.viewoptionstypeobjectsorder, sa = null, ta = this.props.onCommentSubmit;\n            if (fa) {\n                sa = n.DOM.div({\n                    isStatic: true,\n                    dangerouslySetInnerHTML: ((this.state.attachedPhoto.markupPreview ? this.state.attachedPhoto.markupPreview : this.state.attachedPhoto.markup))\n                });\n                da = null;\n            }\n             else if (this.state.isLoadingPhoto) {\n                sa = m({\n                    color: \"white\",\n                    className: \"UFICommentPhotoAttachedPreviewLoadingIndicator\",\n                    size: \"medium\"\n                });\n            }\n            \n        ;\n        ;\n            var ua;\n            if (((sa != null))) {\n                ua = n.DOM.div({\n                    className: \"UFICommentPhotoAttachedPreview pas\"\n                }, sa, j({\n                    onClick: this._onRemoveAttachedPhotoPreviewClicked\n                }));\n                ta = function(va, JSBNG__event) {\n                    this.setState({\n                        isLoadingPhoto: false,\n                        attachedPhoto: null\n                    });\n                    va.attachedPhoto = this.props.contextArgs.attachedphoto;\n                    this.props.onCommentSubmit(va, JSBNG__event);\n                }.bind(this);\n            }\n        ;\n        ;\n            return (n.DOM.li({\n                className: na,\n                onKeyDown: this._onKeyDown,\n                \"data-ft\": ka\n            }, s({\n                className: \"UFIMentionsInputWrap\"\n            }, ma, n.DOM.div(null, o({\n                initialData: this.props.initialData,\n                placeholder: oa,\n                ref: \"mentionsinput\",\n                datasource: this.props.mentionsDataSource,\n                acceptEmptyInput: ((this.props.isEditing || this.props.contextArgs.attachedphoto)),\n                onEnterSubmit: ta,\n                onFocus: this.setState.bind(this, {\n                    isCommenting: true\n                }),\n                viewOptionsTypeObjects: qa,\n                viewOptionsTypeObjectsOrder: ra,\n                onBlur: pa,\n                onTypingStateChange: this.props.onTypingStateChange,\n                onPaste: ga,\n                sht: this.props.contextArgs.sht,\n                isLoadingPhoto: this.state.isLoadingPhoto\n            }), ea, ua, da))));\n        },\n        componentDidMount: function(ca) {\n            if (h.gkResults) {\n                var da = this.props.replyCommentID;\n                if (((this.refs && this.refs.mentionsinput))) {\n                    var ea = this.refs.mentionsinput.refs.textarea.getDOMNode();\n                    g.loadModules([\"CLoggerX\",\"UFIComments\",], function(ja, ka) {\n                        var la = ka.getComment(da), ma = ((la ? la.fbid : null));\n                        ja.trackMentionsInput(ea, ma);\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (!this.props.allowPhotoAttachments) {\n                return;\n            }\n        ;\n        ;\n            var fa = this.refs.PhotoInputContainer.getDOMNode(), ga = this.refs.PhotoInputControl.getDOMNode(), ha = this.refs.PhotoInput.getDOMNode(), ia = k.listen(fa, \"click\", function(JSBNG__event) {\n                g.loadModules([\"FileInput\",\"FileInputUploader\",\"Input\",], function(ja, ka, la) {\n                    var ma = new ja(fa, ga, ha), na = new ka().setURI(aa).setData(this._getPhotoUploadData());\n                    ma.subscribe(\"change\", function(JSBNG__event) {\n                        if (ma.getValue()) {\n                            this._prepareForAttachedPhotoPreview();\n                            na.setInput(ma.getInput()).send();\n                        }\n                    ;\n                    ;\n                    }.bind(this));\n                    na.subscribe(\"success\", function(oa, pa) {\n                        ma.clear();\n                        this._onPhotoUploadComplete(pa.response);\n                    }.bind(this));\n                }.bind(this));\n                ia.remove();\n            }.bind(this));\n        },\n        _getPhotoUploadData: function() {\n            return {\n                profile_id: this.props.viewerActor.id,\n                source: z\n            };\n        },\n        _onPhotoUploadComplete: function(ca) {\n            if (!this.state.isLoadingPhoto) {\n                return;\n            }\n        ;\n        ;\n            var da = ca.getPayload();\n            if (((da && da.fbid))) {\n                this.props.contextArgs.attachedphoto = da;\n                this.setState({\n                    attachedPhoto: da,\n                    isLoadingPhoto: false\n                });\n            }\n        ;\n        ;\n        },\n        _onRemoveAttachedPhotoPreviewClicked: function(JSBNG__event) {\n            this.props.contextArgs.attachedphoto = null;\n            this.setState({\n                attachedPhoto: null,\n                isLoadingPhoto: false\n            });\n        },\n        _prepareForAttachedPhotoPreview: function() {\n            this.props.contextArgs.attachedphoto = null;\n            this.setState({\n                attachedPhoto: null,\n                isLoadingPhoto: true\n            });\n        }\n    });\n    e.exports = ba;\n});\n__d(\"UFIAddCommentController\", [\"Arbiter\",\"copyProperties\",\"MentionsInputUtils\",\"Parent\",\"UFIAddComment.react\",\"React\",\"ShortProfiles\",\"UFICentralUpdates\",\"UFIComments\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"MentionsInputUtils\"), j = b(\"Parent\"), k = b(\"UFIAddComment.react\"), l = b(\"React\"), m = b(\"ShortProfiles\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIFeedbackTargets\"), q = b(\"UFIInstanceState\"), r = b(\"UFIUserActions\");\n    function s(t, u, v, w) {\n        this.id = u;\n        this._ufiInstanceID = w.instanceid;\n        this._contextArgs = w;\n        this._replyCommentID = v;\n        if (t) {\n            this.root = t;\n            if (!this._contextArgs.rootid) {\n                this._contextArgs.rootid = t.id;\n            }\n        ;\n        ;\n            this.render();\n            n.subscribe(\"instance-updated\", function(x, y) {\n                var z = y.updates;\n                if (((this._ufiInstanceID in z))) {\n                    this.render();\n                }\n            ;\n            ;\n            }.bind(this));\n        }\n    ;\n    ;\n        n.subscribe(\"feedback-id-changed\", function(x, y) {\n            var z = y.updates;\n            if (((this.id in z))) {\n                this.id = z[this.id];\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n;\n    h(s.prototype, {\n        _onCommentSubmit: function(t, JSBNG__event) {\n            r.addComment(this.id, t.visibleValue, t.encodedValue, {\n                source: this._contextArgs.source,\n                ufiinstanceid: this._ufiInstanceID,\n                target: JSBNG__event.target,\n                replyid: this._replyCommentID,\n                timelinelogdata: this._contextArgs.timelinelogdata,\n                rootid: this._contextArgs.rootid,\n                attachedphoto: this._contextArgs.attachedphoto,\n                giftoccasion: this._contextArgs.giftoccasion\n            });\n            this._contextArgs.attachedphoto = null;\n            p.getFeedbackTarget(this.id, function(u) {\n                var v = j.byTag(this.root, \"form\");\n                if (v) {\n                    g.inform(\"ufi/comment\", {\n                        form: v,\n                        isranked: u.isranked\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n            return false;\n        },\n        _onTypingStateChange: function(t, u) {\n        \n        },\n        renderAddComment: function(t, u, v, w, x, y, z) {\n            var aa = ((this._contextArgs.logtyping ? this._onTypingStateChange.bind(this) : null)), ba = null, ca = ((q.getKeyForInstance(this._ufiInstanceID, \"isediting\") && !this._replyCommentID));\n            return (k({\n                hide: ca,\n                replyCommentID: this._replyCommentID,\n                viewerActor: t,\n                initialData: ba,\n                ref: w,\n                withoutSeparator: x,\n                onCommentSubmit: this._onCommentSubmit.bind(this),\n                mentionsDataSource: u,\n                onTypingStateChange: aa,\n                showSendOnEnterTip: v,\n                allowPhotoAttachments: y,\n                source: this._contextArgs.source,\n                contextArgs: this._contextArgs,\n                subtitle: z\n            }));\n        },\n        renderEditComment: function(t, u, v, w, x, y) {\n            var z = o.getComment(u), aa = i.generateDataFromTextWithEntities(z.body);\n            return (k({\n                viewerActor: t,\n                initialData: aa,\n                onCommentSubmit: w,\n                onCancel: x,\n                mentionsDataSource: v,\n                source: this._contextArgs.source,\n                contextArgs: this._contextArgs,\n                isEditing: true,\n                editingCommentID: u,\n                attachedPhoto: z.photo_comment,\n                allowPhotoAttachments: y\n            }));\n        },\n        render: function() {\n            if (!this.root) {\n                throw new Error(\"render called on UFIAddCommentController with no root\");\n            }\n        ;\n        ;\n            p.getFeedbackTarget(this.id, function(t) {\n                if (((t.cancomment && t.actorforpost))) {\n                    m.get(t.actorforpost, function(u) {\n                        var v = this.renderAddComment(u, t.mentionsdatasource, t.showsendonentertip, null, null, t.allowphotoattachments, t.subtitle);\n                        this._addComment = l.renderComponent(v, this.root);\n                    }.bind(this));\n                }\n            ;\n            ;\n            }.bind(this));\n        }\n    });\n    e.exports = s;\n});\n__d(\"Scrollable\", [\"JSBNG__Event\",\"Parent\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Parent\"), i = b(\"UserAgent\"), j = function(JSBNG__event) {\n        var m = h.byClass(JSBNG__event.getTarget(), \"scrollable\");\n        if (!m) {\n            return;\n        }\n    ;\n    ;\n        if (((((((((typeof JSBNG__event.axis !== \"undefined\")) && ((JSBNG__event.axis === JSBNG__event.HORIZONTAL_AXIS)))) || ((JSBNG__event.wheelDeltaX && !JSBNG__event.wheelDeltaY)))) || ((JSBNG__event.deltaX && !JSBNG__event.deltaY))))) {\n            return;\n        }\n    ;\n    ;\n        var n = ((((JSBNG__event.wheelDelta || -JSBNG__event.deltaY)) || -JSBNG__event.detail)), o = m.scrollHeight, p = m.clientHeight;\n        if (((o > p))) {\n            var q = m.scrollTop;\n            if (((((((n > 0)) && ((q === 0)))) || ((((n < 0)) && ((q >= ((o - p))))))))) {\n                JSBNG__event.prevent();\n            }\n             else if (((i.ie() < 9))) {\n                if (m.currentStyle) {\n                    var r = m.currentStyle.fontSize;\n                    if (((r.indexOf(\"px\") < 0))) {\n                        var s = JSBNG__document.createElement(\"div\");\n                        s.style.fontSize = r;\n                        s.style.height = \"1em\";\n                        r = s.style.pixelHeight;\n                    }\n                     else r = parseInt(r, 10);\n                ;\n                ;\n                    m.scrollTop = ((q - Math.round(((((n / 120)) * r)))));\n                    JSBNG__event.prevent();\n                }\n            ;\n            }\n            \n        ;\n        ;\n        }\n    ;\n    ;\n    }, k = JSBNG__document.documentElement;\n    if (i.firefox()) {\n        var l = ((((\"JSBNG__WheelEvent\" in window)) ? \"wheel\" : \"DOMMouseScroll\"));\n        k.JSBNG__addEventListener(l, j, false);\n    }\n     else g.listen(k, \"mousewheel\", j);\n;\n;\n});\n__d(\"LegacyScrollableArea.react\", [\"Scrollable\",\"Bootloader\",\"React\",\"Style\",\"cx\",], function(a, b, c, d, e, f) {\n    b(\"Scrollable\");\n    var g = b(\"Bootloader\"), h = b(\"React\"), i = b(\"Style\"), j = b(\"cx\"), k = \"uiScrollableArea native\", l = \"uiScrollableAreaWrap scrollable\", m = \"uiScrollableAreaBody\", n = \"uiScrollableAreaContent\", o = h.createClass({\n        displayName: \"ReactLegacyScrollableArea\",\n        render: function() {\n            var p = {\n                height: ((this.props.height ? ((this.props.height + \"px\")) : \"auto\"))\n            };\n            return (h.DOM.div({\n                className: k,\n                ref: \"root\",\n                style: p\n            }, h.DOM.div({\n                className: l\n            }, h.DOM.div({\n                className: m,\n                ref: \"body\"\n            }, h.DOM.div({\n                className: n\n            }, this.props.children)))));\n        },\n        getArea: function() {\n            return this._area;\n        },\n        componentDidMount: function() {\n            g.loadModules([\"ScrollableArea\",], this._loadScrollableArea);\n        },\n        _loadScrollableArea: function(p) {\n            this._area = p.fromNative(this.refs.root.getDOMNode(), {\n                fade: this.props.fade,\n                persistent: this.props.persistent\n            });\n            var q = this.refs.body.getDOMNode();\n            i.set(q, \"width\", ((this.props.width + \"px\")));\n            ((this.props.onScroll && this._area.subscribe(\"JSBNG__scroll\", this.props.onScroll)));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFIAddCommentLink.react\", [\"React\",\"UFIClassNames\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"tx\"), l = g.createClass({\n        displayName: \"UFIAddCommentLink\",\n        render: function() {\n            var m = j(h.ROW, (((((((((\"UFIAddCommentLink\") + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), n = \"Write a comment...\";\n            return (g.DOM.li({\n                className: m,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, g.DOM.a({\n                className: \"UFICommentLink\",\n                onClick: this.props.onClick,\n                href: \"#\",\n                role: \"button\"\n            }, n)));\n        }\n    });\n    e.exports = l;\n});\n__d(\"HovercardLink\", [\"Bootloader\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"URI\"), i = {\n        getBaseURI: function() {\n            return h(\"/ajax/hovercard/hovercard.php\");\n        },\n        constructEndpoint: function(j, k) {\n            return i.constructEndpointWithGroupAndLocation(j, k, null);\n        },\n        constructEndpointWithLocation: function(j, k) {\n            return i.constructEndpointWithGroupAndLocation(j, null, k);\n        },\n        constructEndpointWithGroupAndLocation: function(j, k, l) {\n            g.loadModules([\"Hovercard\",], function() {\n            \n            });\n            var m = new h(i.getBaseURI()).setQueryData({\n                id: j.id\n            }), n = {\n            };\n            if (((j.weakreference && k))) {\n                n.group_id = k;\n            }\n        ;\n        ;\n            if (l) {\n                n.hc_location = l;\n            }\n        ;\n        ;\n            m.addQueryData({\n                extragetparams: JSON.stringify(n)\n            });\n            return m;\n        }\n    };\n    e.exports = i;\n});\n__d(\"UntrustedLink\", [\"DOM\",\"JSBNG__Event\",\"URI\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"JSBNG__Event\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n    function l(m, n, o, p) {\n        this.dom = m;\n        this.url = m.href;\n        this.hash = n;\n        this.func_get_params = ((p || function() {\n            return {\n            };\n        }));\n        h.listen(this.dom, \"click\", this.JSBNG__onclick.bind(this));\n        h.listen(this.dom, \"mousedown\", this.JSBNG__onmousedown.bind(this));\n        h.listen(this.dom, \"mouseup\", this.JSBNG__onmouseup.bind(this));\n        h.listen(this.dom, \"mouseout\", this.JSBNG__onmouseout.bind(this));\n        this.JSBNG__onmousedown(h.$E(o));\n    };\n;\n    l.bootstrap = function(m, n, o, p) {\n        if (m.__untrusted) {\n            return;\n        }\n    ;\n    ;\n        m.__untrusted = true;\n        new l(m, n, o, p);\n    };\n    l.prototype.getRewrittenURI = function() {\n        var m = k({\n            u: this.url,\n            h: this.hash\n        }, this.func_get_params(this.dom)), n = new i(\"/l.php\");\n        return n.setQueryData(m).setSubdomain(\"www\").setProtocol(\"http\");\n    };\n    l.prototype.JSBNG__onclick = function() {\n        (function() {\n            this.setHref(this.url);\n        }).bind(this).defer(100);\n        this.setHref(this.getRewrittenURI());\n    };\n    l.prototype.JSBNG__onmousedown = function(m) {\n        if (((m.button == 2))) {\n            this.setHref(this.getRewrittenURI());\n        }\n    ;\n    ;\n    };\n    l.prototype.JSBNG__onmouseup = function() {\n        this.setHref(this.getRewrittenURI());\n    };\n    l.prototype.JSBNG__onmouseout = function() {\n        this.setHref(this.url);\n    };\n    l.prototype.setHref = function(m) {\n        if (((j.ie() < 9))) {\n            var n = g.create(\"span\");\n            g.appendContent(this.dom, n);\n            this.dom.href = m;\n            g.remove(n);\n        }\n         else this.dom.href = m;\n    ;\n    ;\n    };\n    e.exports = l;\n});\n__d(\"Link.react\", [\"React\",\"UntrustedLink\",\"mergeInto\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UntrustedLink\"), i = b(\"mergeInto\"), j = g.createClass({\n        displayName: \"Link\",\n        _installLinkshimOnMouseDown: function(JSBNG__event) {\n            var k = this.props.href;\n            if (k.shimhash) {\n                h.bootstrap(this.getDOMNode(), k.shimhash);\n            }\n        ;\n        ;\n            ((this.props.onMouseDown && this.props.onMouseDown(JSBNG__event)));\n        },\n        render: function() {\n            var k = this.props.href, l = g.DOM.a(null);\n            i(l.props, this.props);\n            if (k) {\n                l.props.href = k.url;\n                var m = !!k.shimhash;\n                if (m) {\n                    l.props.rel = ((l.props.rel ? ((l.props.rel + \" nofollow\")) : \"nofollow\"));\n                    l.props.onMouseDown = this._installLinkshimOnMouseDown;\n                }\n            ;\n            ;\n            }\n             else l.props.href = \"#\";\n        ;\n        ;\n            return l;\n        }\n    });\n    e.exports = j;\n});\n__d(\"PubContentTypes\", [], function(a, b, c, d, e, f) {\n    var g = {\n        HASHTAG: \"hashtag\",\n        TOPIC: \"topic\",\n        JSBNG__URL: \"url\"\n    };\n    e.exports = g;\n});\n__d(\"HovercardLinkInterpolator\", [\"Bootloader\",\"CSS\",\"JSBNG__Event\",\"HovercardLink\",\"Link.react\",\"Parent\",\"PubContentTypes\",\"React\",\"URI\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CSS\"), i = b(\"JSBNG__Event\"), j = b(\"HovercardLink\"), k = b(\"Link.react\"), l = b(\"Parent\"), m = b(\"PubContentTypes\"), n = b(\"React\"), o = b(\"URI\"), p = b(\"cx\");\n    function q(r, s, t, u, v) {\n        var w = s.entities[0], x = ((t || ((w.JSBNG__external ? \"_blank\" : null)))), y, z = ((((!w.JSBNG__external ? \"profileLink\" : \"\")) + ((w.weakreference ? ((\" \" + \"weakReference\")) : \"\"))));\n        if (w.hashtag) {\n            var aa = h.hasClass(JSBNG__document.body, \"_6nw\"), ba = function(ea) {\n                if (i.$E(ea.nativeEvent).isDefaultRequested()) {\n                    return;\n                }\n            ;\n            ;\n                ea.preventDefault();\n                var fa = l.byTag(ea.target, \"A\");\n                if (aa) {\n                    g.loadModules([\"EntstreamPubContentOverlay\",], function(ga) {\n                        ga.pubClick(fa);\n                    });\n                }\n                 else g.loadModules([\"HashtagLayerPageController\",], function(ga) {\n                    ga.click(fa);\n                });\n            ;\n            ;\n            }, ca = null;\n            if (aa) {\n                ca = {\n                    type: m.HASHTAG,\n                    id: w.id,\n                    source: \"comment\"\n                };\n            }\n             else ca = {\n                id: w.id\n            };\n        ;\n        ;\n            var da = new o(w.url).setSubdomain(\"www\");\n            y = n.DOM.a({\n                className: \"_58cn\",\n                \"data-pub\": JSON.stringify(ca),\n                href: da.toString(),\n                onClick: ba\n            }, n.DOM.span({\n                className: \"_58cl\"\n            }, r.substring(0, 1)), n.DOM.span({\n                className: \"_58cm\"\n            }, r.substring(1)));\n        }\n         else if (w.weakreference) {\n            y = k({\n                className: z,\n                href: w,\n                target: x\n            }, n.DOM.i({\n                className: \"UFIWeakReferenceIcon\"\n            }), r);\n        }\n         else y = k({\n            className: z,\n            href: w,\n            target: x\n        }, r);\n        \n    ;\n    ;\n        if (((!w.JSBNG__external && !w.hashtag))) {\n            y.props[\"data-hovercard\"] = j.constructEndpointWithGroupAndLocation(w, u, v).toString();\n        }\n    ;\n    ;\n        return y;\n    };\n;\n    e.exports = q;\n});\n__d(\"LinkButton\", [\"cx\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\"), h = b(\"React\"), i = function(j) {\n        var k = ((((j.JSBNG__name && j.value)) ? ((((((j.JSBNG__name + \"[\")) + encodeURIComponent(j.value))) + \"]\")) : null));\n        return (h.DOM.label({\n            className: (((((\"uiLinkButton\") + ((j.subtle ? ((\" \" + \"uiLinkButtonSubtle\")) : \"\")))) + ((j.showSaving ? ((\" \" + \"async_throbber\")) : \"\"))))\n        }, h.DOM.input({\n            type: ((j.inputType || \"button\")),\n            JSBNG__name: k,\n            value: j.label,\n            className: ((j.showSaving ? \"stat_elem\" : \"\"))\n        })));\n    };\n    e.exports = i;\n});\n__d(\"Timestamp.react\", [\"LiveTimer\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"LiveTimer\"), h = b(\"React\"), i = h.createClass({\n        displayName: \"Timestamp\",\n        render: function() {\n            var j = g.renderRelativeTimeToServer(this.props.time);\n            return this.transferPropsTo(h.DOM.abbr({\n                className: \"livetimestamp\",\n                title: this.props.verbose,\n                \"data-utime\": this.props.time\n            }, ((j.text || this.props.text))));\n        }\n    });\n    e.exports = i;\n});\n__d(\"EmoteTypes\", [], function(a, b, c, d, e, f) {\n    f.TEXT = \"text\";\n    f.EMOTE = \"emote\";\n    f.EMOTE_FBID = \"emote_fbid\";\n});\n__d(\"EmoticonsList\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        emotes: {\n            \":)\": \"smile\",\n            \":-)\": \"smile\",\n            \":]\": \"smile\",\n            \"=)\": \"smile\",\n            \":(\": \"frown\",\n            \":-(\": \"frown\",\n            \":[\": \"frown\",\n            \"=(\": \"frown\",\n            \":P\": \"tongue\",\n            \":-P\": \"tongue\",\n            \":-p\": \"tongue\",\n            \":p\": \"tongue\",\n            \"=P\": \"tongue\",\n            \"=D\": \"grin\",\n            \":-D\": \"grin\",\n            \":D\": \"grin\",\n            \":o\": \"gasp\",\n            \":-O\": \"gasp\",\n            \":O\": \"gasp\",\n            \":-o\": \"gasp\",\n            \";)\": \"wink\",\n            \";-)\": \"wink\",\n            \"8)\": \"glasses\",\n            \"8-)\": \"glasses\",\n            \"B)\": \"glasses\",\n            \"B-)\": \"glasses\",\n            \"B|\": \"sunglasses\",\n            \"8-|\": \"sunglasses\",\n            \"8|\": \"sunglasses\",\n            \"B-|\": \"sunglasses\",\n            \"\\u003E:(\": \"grumpy\",\n            \"\\u003E:-(\": \"grumpy\",\n            \":/\": \"unsure\",\n            \":-/\": \"unsure\",\n            \":\\\\\": \"unsure\",\n            \":-\\\\\": \"unsure\",\n            \"=/\": \"unsure\",\n            \"=\\\\\": \"unsure\",\n            \":'(\": \"cry\",\n            \"3:)\": \"devil\",\n            \"3:-)\": \"devil\",\n            \"O:)\": \"angel\",\n            \"O:-)\": \"angel\",\n            \":*\": \"kiss\",\n            \":-*\": \"kiss\",\n            \"\\u003C3\": \"heart\",\n            \"&lt;3\": \"heart\",\n            \"\\u2665\": \"heart\",\n            \"^_^\": \"kiki\",\n            \"-_-\": \"squint\",\n            \"o.O\": \"confused\",\n            \"O.o\": \"confused_rev\",\n            \"\\u003E:o\": \"upset\",\n            \"\\u003E:O\": \"upset\",\n            \"\\u003E:-O\": \"upset\",\n            \"\\u003E:-o\": \"upset\",\n            \"\\u003E_\\u003C\": \"upset\",\n            \"\\u003E.\\u003C\": \"upset\",\n            \":v\": \"pacman\",\n            \":|]\": \"robot\",\n            \":3\": \"colonthree\",\n            \"\\u003C(\\\")\": \"penguin\",\n            \":putnam:\": \"putnam\",\n            \"(^^^)\": \"shark\",\n            \"(y)\": \"like\",\n            \":like:\": \"like\",\n            \"(Y)\": \"like\",\n            \":poop:\": \"poop\"\n        },\n        symbols: {\n            smile: \":)\",\n            frown: \":(\",\n            tongue: \":P\",\n            grin: \"=D\",\n            gasp: \":o\",\n            wink: \";)\",\n            glasses: \"8)\",\n            sunglasses: \"B|\",\n            grumpy: \"\\u003E:(\",\n            unsure: \":/\",\n            cry: \":'(\",\n            devil: \"3:)\",\n            angel: \"O:)\",\n            kiss: \":*\",\n            heart: \"\\u003C3\",\n            kiki: \"^_^\",\n            squint: \"-_-\",\n            confused: \"o.O\",\n            confused_rev: \"O.o\",\n            upset: \"\\u003E:o\",\n            pacman: \":v\",\n            robot: \":|]\",\n            colonthree: \":3\",\n            penguin: \"\\u003C(\\\")\",\n            putnam: \":putnam:\",\n            shark: \"(^^^)\",\n            like: \"(y)\",\n            poop: \":poop:\"\n        },\n        regexp: /(^|[\\s'\".])(:\\)|:\\-\\)|:\\]|=\\)|:\\(|:\\-\\(|:\\[|=\\(|:P|:\\-P|:\\-p|:p|=P|=D|:\\-D|:D|:o|:\\-O|:O|:\\-o|;\\)|;\\-\\)|8\\)|8\\-\\)|B\\)|B\\-\\)|B\\||8\\-\\||8\\||B\\-\\||>:\\(|>:\\-\\(|:\\/|:\\-\\/|:\\\\|:\\-\\\\|=\\/|=\\\\|:'\\(|3:\\)|3:\\-\\)|O:\\)|O:\\-\\)|:\\*|:\\-\\*|<3|&lt;3|\\u2665|\\^_\\^|\\-_\\-|o\\.O|O\\.o|>:o|>:O|>:\\-O|>:\\-o|>_<|>\\.<|:v|:\\|\\]|:3|<\\(\"\\)|:putnam:|\\(\\^\\^\\^\\)|\\(y\\)|:like:|\\(Y\\)|:poop:)([\\s'\".,!?]|<br>|$)/\n    };\n});\n__d(\"createEmoteTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n    var g = b(\"EmoteTypes\"), h = 40;\n    function i(j) {\n        return function(k) {\n            var l = k, m = [], n = h;\n            while (n--) {\n                var o = j.regexp.exec(l);\n                if (((!o || !o.length))) {\n                    break;\n                }\n            ;\n            ;\n                var p = o[2], q = ((o.index + o[1].length)), r = l.substring(0, q);\n                if (r) {\n                    m.push({\n                        type: g.TEXT,\n                        text: r\n                    });\n                }\n            ;\n            ;\n                var s = j.emotes[p];\n                if (s) {\n                    m.push({\n                        type: g.EMOTE,\n                        text: p,\n                        emote: s\n                    });\n                }\n                 else m.push({\n                    type: g.TEXT,\n                    text: p\n                });\n            ;\n            ;\n                l = l.substring(((q + p.length)));\n            };\n        ;\n            if (l) {\n                m.push({\n                    type: g.TEXT,\n                    text: l\n                });\n            }\n        ;\n        ;\n            return m;\n        };\n    };\n;\n    e.exports = i;\n});\n__d(\"emoteFBIDTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n    var g = b(\"EmoteTypes\"), h = /\\[\\[([a-z\\d\\.]+)\\]\\]/gi;\n    function i(j) {\n        return j.split(h).map(function(k, l) {\n            if (((((l % 2)) === 0))) {\n                return {\n                    type: g.TEXT,\n                    text: k\n                };\n            }\n             else return {\n                type: g.EMOTE_FBID,\n                text: ((((\"[[\" + k)) + \"]]\")),\n                value: k\n            }\n        ;\n        });\n    };\n;\n    e.exports = i;\n});\n__d(\"Emote\", [\"DOM\",\"EmoteTypes\",\"EmoticonsList\",\"createEmoteTokenizer\",\"emoteFBIDTokenizer\",\"flattenArray\",\"htmlize\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"EmoteTypes\"), i = b(\"EmoticonsList\"), j = b(\"createEmoteTokenizer\"), k = b(\"emoteFBIDTokenizer\"), l = b(\"flattenArray\"), m = b(\"htmlize\"), n = j(i), o = e.exports = {\n    };\n    o.htmlEmoteWithoutFBID = function(p, q) {\n        if (((typeof q != \"function\"))) {\n            q = m;\n        }\n    ;\n    ;\n        return l(n(p).map(function(r) {\n            if (((r.type === h.TEXT))) {\n                return q(r.text);\n            }\n             else if (((r.type === h.EMOTE))) {\n                return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n                }, g.create(\"span\", {\n                    title: r.text,\n                    className: ((\"emoticon emoticon_\" + r.emote))\n                })).innerHTML,];\n            }\n            \n        ;\n        ;\n        })).join(\"\");\n    };\n    o.htmlEmote = function(p, q) {\n        if (((typeof q != \"function\"))) {\n            q = m;\n        }\n    ;\n    ;\n        return l(k(p).map(function(r) {\n            if (((r.type === h.TEXT))) {\n                return o.htmlEmoteWithoutFBID(r.text, q);\n            }\n             else if (((r.type === h.EMOTE_FBID))) {\n                return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n                }, g.create(\"img\", {\n                    alt: r.text,\n                    className: \"emoticon emoticon_custom\",\n                    src: ((((((window.JSBNG__location.protocol + \"//graph.facebook.com/\")) + encodeURIComponent(r.value))) + \"/picture\"))\n                })).innerHTML,];\n            }\n            \n        ;\n        ;\n        })).join(\"\");\n    };\n});\n__d(\"SupportedEmoji\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\");\n    e.exports = {\n        utf16Regex: /[\\u203C\\u2049\\u2100-\\u21FF\\u2300-\\u27FF\\u2900-\\u29FF\\u2B00-\\u2BFF\\u3000-\\u30FF\\u3200-\\u32FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDEFF]/,\n        emoji: {\n            127744: \"_2b_\",\n            127746: \"_2c0\",\n            127754: \"_2c1\",\n            127769: \"_2c2\",\n            127775: \"_2c3\",\n            127793: \"_2c4\",\n            127796: \"_2c5\",\n            127797: \"_2c6\",\n            127799: \"_2c7\",\n            127800: \"_2c8\",\n            127801: \"_2c9\",\n            127802: \"_2ca\",\n            127803: \"_2cb\",\n            127806: \"_2cc\",\n            127808: \"_2cd\",\n            127809: \"_2ce\",\n            127810: \"_2cf\",\n            127811: \"_2cg\",\n            127818: \"_2ch\",\n            127822: \"_2ci\",\n            127827: \"_2cj\",\n            127828: \"_2ck\",\n            127864: \"_2cl\",\n            127866: \"_2cm\",\n            127873: \"_2cn\",\n            127875: \"_2co\",\n            127876: \"_2cp\",\n            127877: \"_2cq\",\n            127880: \"_2cr\",\n            127881: \"_2cs\",\n            127885: \"_2ct\",\n            127886: \"_2cu\",\n            127887: \"_2cv\",\n            127888: \"_2cw\",\n            127891: \"_2cx\",\n            127925: \"_2cy\",\n            127926: \"_2cz\",\n            127932: \"_2c-\",\n            128013: \"_2c_\",\n            128014: \"_2d0\",\n            128017: \"_2d1\",\n            128018: \"_2d2\",\n            128020: \"_2d3\",\n            128023: \"_2d4\",\n            128024: \"_2d5\",\n            128025: \"_2d6\",\n            128026: \"_2d7\",\n            128027: \"_2d8\",\n            128031: \"_2d9\",\n            128032: \"_2da\",\n            128033: \"_2db\",\n            128037: \"_2dc\",\n            128038: \"_2dd\",\n            128039: \"_2de\",\n            128040: \"_2df\",\n            128041: \"_2dg\",\n            128043: \"_2dh\",\n            128044: \"_2di\",\n            128045: \"_2dj\",\n            128046: \"_2dk\",\n            128047: \"_2dl\",\n            128048: \"_2dm\",\n            128049: \"_2dn\",\n            128051: \"_2do\",\n            128052: \"_2dp\",\n            128053: \"_2dq\",\n            128054: \"_491\",\n            128055: \"_2dr\",\n            128056: \"_2ds\",\n            128057: \"_2dt\",\n            128058: \"_2du\",\n            128059: \"_2dv\",\n            128062: \"_2dw\",\n            128064: \"_2dx\",\n            128066: \"_2dy\",\n            128067: \"_2dz\",\n            128068: \"_2d-\",\n            128069: \"_2d_\",\n            128070: \"_2e0\",\n            128071: \"_2e1\",\n            128072: \"_2e2\",\n            128073: \"_2e3\",\n            128074: \"_2e4\",\n            128075: \"_2e5\",\n            128076: \"_2e6\",\n            128077: \"_2e7\",\n            128078: \"_2e8\",\n            128079: \"_2e9\",\n            128080: \"_2ea\",\n            128102: \"_2eb\",\n            128103: \"_2ec\",\n            128104: \"_2ed\",\n            128105: \"_2ee\",\n            128107: \"_2ef\",\n            128110: \"_2eg\",\n            128111: \"_2eh\",\n            128113: \"_2ei\",\n            128114: \"_2ej\",\n            128115: \"_2ek\",\n            128116: \"_2el\",\n            128117: \"_2em\",\n            128118: \"_2en\",\n            128119: \"_2eo\",\n            128120: \"_2ep\",\n            128123: \"_2eq\",\n            128124: \"_2er\",\n            128125: \"_2es\",\n            128126: \"_2et\",\n            128127: \"_2eu\",\n            128128: \"_2ev\",\n            128130: \"_2ew\",\n            128131: \"_2ex\",\n            128133: \"_2ey\",\n            128139: \"_2ez\",\n            128143: \"_2e-\",\n            128144: \"_2e_\",\n            128145: \"_2f0\",\n            128147: \"_2f1\",\n            128148: \"_2f2\",\n            128150: \"_2f3\",\n            128151: \"_2f4\",\n            128152: \"_2f5\",\n            128153: \"_2f6\",\n            128154: \"_2f7\",\n            128155: \"_2f8\",\n            128156: \"_2f9\",\n            128157: \"_2fa\",\n            128162: \"_2fb\",\n            128164: \"_2fc\",\n            128166: \"_2fd\",\n            128168: \"_2fe\",\n            128169: \"_2ff\",\n            128170: \"_2fg\",\n            128187: \"_2fh\",\n            128189: \"_2fi\",\n            128190: \"_2fj\",\n            128191: \"_2fk\",\n            128192: \"_2fl\",\n            128222: \"_2fm\",\n            128224: \"_2fn\",\n            128241: \"_2fo\",\n            128242: \"_2fp\",\n            128250: \"_2fq\",\n            128276: \"_2fr\",\n            128293: \"_492\",\n            128513: \"_2fs\",\n            128514: \"_2ft\",\n            128515: \"_2fu\",\n            128516: \"_2fv\",\n            128518: \"_2fw\",\n            128521: \"_2fx\",\n            128523: \"_2fy\",\n            128524: \"_2fz\",\n            128525: \"_2f-\",\n            128527: \"_2f_\",\n            128530: \"_2g0\",\n            128531: \"_2g1\",\n            128532: \"_2g2\",\n            128534: \"_2g3\",\n            128536: \"_2g4\",\n            128538: \"_2g5\",\n            128540: \"_2g6\",\n            128541: \"_2g7\",\n            128542: \"_2g8\",\n            128544: \"_2g9\",\n            128545: \"_2ga\",\n            128546: \"_2gb\",\n            128547: \"_2gc\",\n            128548: \"_2gd\",\n            128549: \"_2ge\",\n            128552: \"_2gf\",\n            128553: \"_2gg\",\n            128554: \"_2gh\",\n            128555: \"_2gi\",\n            128557: \"_2gj\",\n            128560: \"_2gk\",\n            128561: \"_2gl\",\n            128562: \"_2gm\",\n            128563: \"_2gn\",\n            128565: \"_2go\",\n            128567: \"_2gp\",\n            128568: \"_2gq\",\n            128569: \"_2gr\",\n            128570: \"_2gs\",\n            128571: \"_2gt\",\n            128572: \"_2gu\",\n            128573: \"_2gv\",\n            128575: \"_2gw\",\n            128576: \"_2gx\",\n            128587: \"_2gy\",\n            128588: \"_2gz\",\n            128589: \"_2g-\",\n            128591: \"_2g_\",\n            9757: \"_2h0\",\n            9786: \"_2h1\",\n            9889: \"_2h2\",\n            9924: \"_2h3\",\n            9994: \"_2h4\",\n            9995: \"_2h5\",\n            9996: \"_2h6\",\n            9728: \"_2h7\",\n            9729: \"_2h8\",\n            9748: \"_2h9\",\n            9749: \"_2ha\",\n            10024: \"_2hb\",\n            10084: \"_2hc\"\n        }\n    };\n});\n__d(\"Utf16\", [], function(a, b, c, d, e, f) {\n    var g = {\n        decode: function(h) {\n            switch (h.length) {\n              case 1:\n                return h.charCodeAt(0);\n              case 2:\n                return ((((65536 | ((((h.charCodeAt(0) - 55296)) * 1024)))) | ((h.charCodeAt(1) - 56320))));\n            };\n        ;\n        },\n        encode: function(h) {\n            if (((h < 65536))) {\n                return String.fromCharCode(h);\n            }\n             else return ((String.fromCharCode(((55296 + ((((h - 65536)) >> 10))))) + String.fromCharCode(((56320 + ((h % 1024)))))))\n        ;\n        }\n    };\n    e.exports = g;\n});\n__d(\"Emoji\", [\"cx\",\"DOM\",\"Emote\",\"SupportedEmoji\",\"htmlize\",\"Utf16\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\"), h = b(\"DOM\"), i = b(\"Emote\"), j = b(\"SupportedEmoji\"), k = b(\"htmlize\"), l = b(\"Utf16\"), m = 40, n = e.exports = {\n        htmlEmojiAndEmote: function(o, p) {\n            return n.htmlEmoji(o, function(q) {\n                return i.htmlEmote(q, p);\n            });\n        },\n        htmlEmoji: function(o, p) {\n            if (((typeof p != \"function\"))) {\n                p = k;\n            }\n        ;\n        ;\n            var q = o, r = [], s = m;\n            while (s--) {\n                var t = j.utf16Regex.exec(q);\n                if (((!t || !t.length))) {\n                    break;\n                }\n            ;\n            ;\n                var u = t[0], v = t.index;\n                r.push(p(q.substring(0, v)));\n                var w = l.decode(u);\n                if (j.emoji[w]) {\n                    var x = ((((\"_1az _1a-\" + \" \")) + j.emoji[w])), y = h.create(\"span\", {\n                        className: x\n                    });\n                    r.push(h.create(\"span\", {\n                    }, y).innerHTML);\n                }\n                 else r.push(p(u));\n            ;\n            ;\n                q = q.substring(((v + u.length)));\n            };\n        ;\n            r.push(p(q));\n            return r.join(\"\");\n        }\n    };\n});\n__d(\"TextWithEmoticons.react\", [\"Emoji\",\"Emote\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"Emoji\"), h = b(\"Emote\"), i = b(\"React\"), j = i.createClass({\n        displayName: \"ReactTextWithEmoticons\",\n        render: function() {\n            if (((!this.props.renderEmoticons && !this.props.renderEmoji))) {\n                return i.DOM.span(null, this.props.text);\n            }\n        ;\n        ;\n            var k;\n            if (((this.props.renderEmoticons && this.props.renderEmoji))) {\n                k = g.htmlEmoji(this.props.text, h.htmlEmoteWithoutFBID);\n            }\n             else if (this.props.renderEmoticons) {\n                k = h.htmlEmoteWithoutFBID(this.props.text);\n            }\n             else k = g.htmlEmoji(this.props.text);\n            \n        ;\n        ;\n            return i.DOM.span({\n                dangerouslySetInnerHTML: {\n                    __html: k\n                }\n            });\n        }\n    });\n    e.exports = j;\n});\n__d(\"TextWithEntities.react\", [\"Link.react\",\"React\",\"TextWithEmoticons.react\",], function(a, b, c, d, e, f) {\n    var g = b(\"Link.react\"), h = b(\"React\"), i = b(\"TextWithEmoticons.react\");\n    function j(o) {\n        return (o).replace(/<3\\b|&hearts;/g, \"\\u2665\");\n    };\n;\n    function k(o, p) {\n        return (g({\n            href: p.entities[0]\n        }, o));\n    };\n;\n    function l(o, p) {\n        return ((o.offset - p.offset));\n    };\n;\n    var m = /(\\r\\n|[\\r\\n])/, n = h.createClass({\n        displayName: \"ReactTextWithEntities\",\n        _formatStandardText: function(o) {\n            var p = o.split(m), q = [];\n            for (var r = 0; ((r < p.length)); r++) {\n                var s = p[r];\n                if (s) {\n                    if (m.test(s)) {\n                        q.push(h.DOM.br(null));\n                    }\n                     else if (((this.props.renderEmoticons || this.props.renderEmoji))) {\n                        q.push(i({\n                            text: s,\n                            renderEmoticons: this.props.renderEmoticons,\n                            renderEmoji: this.props.renderEmoji\n                        }));\n                    }\n                     else q.push(j(s));\n                    \n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            return q;\n        },\n        render: function() {\n            var o = 0, p = this.props.ranges, q = this.props.aggregatedRanges, r = this.props.text, s = null;\n            if (p) {\n                s = ((q ? p.concat(q) : p.slice()));\n            }\n             else if (q) {\n                s = q.slice();\n            }\n            \n        ;\n        ;\n            if (s) {\n                s.sort(l);\n            }\n        ;\n        ;\n            var t = [], u = ((s ? s.length : 0));\n            for (var v = 0, w = u; ((v < w)); v++) {\n                var x = s[v];\n                if (((x.offset < o))) {\n                    continue;\n                }\n            ;\n            ;\n                if (((x.offset > o))) {\n                    t = t.concat(this._formatStandardText(r.substring(o, x.offset)));\n                }\n            ;\n            ;\n                var y = r.substr(x.offset, x.length);\n                t = t.concat([((this.props.interpolator ? this.props.interpolator(y, x) : k(y, x))),]);\n                o = ((x.offset + x.length));\n            };\n        ;\n            if (((r.length > o))) {\n                t = t.concat(this._formatStandardText(r.substr(o)));\n            }\n        ;\n        ;\n            return h.DOM.span(null, t);\n        }\n    });\n    e.exports = n;\n});\n__d(\"SeeMore.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n        displayName: \"SeeMore\",\n        getInitialState: function() {\n            return {\n                isCollapsed: true\n            };\n        },\n        handleClick: function() {\n            this.setState({\n                isCollapsed: false\n            });\n        },\n        render: function() {\n            var j = this.state.isCollapsed, k = ((!j ? null : g.DOM.span(null, \"...\"))), l = this.props.children[0], m = ((j ? null : g.DOM.span(null, this.props.children[1]))), n = ((!j ? null : g.DOM.a({\n                className: \"SeeMoreLink fss\",\n                onClick: this.handleClick,\n                href: \"#\",\n                role: \"button\"\n            }, \"See More\")));\n            return (g.DOM.span({\n                className: this.props.className\n            }, l, k, n, m));\n        }\n    });\n    e.exports = i;\n});\n__d(\"TruncatedTextWithEntities.react\", [\"React\",\"TextWithEntities.react\",\"SeeMore.react\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"TextWithEntities.react\"), i = b(\"SeeMore.react\");\n    function j(n, o) {\n        var p = ((n.offset + n.length));\n        return ((((o > n.offset)) && ((o < p))));\n    };\n;\n    function k(n, o) {\n        for (var p = 0; ((p < n.length)); p++) {\n            var q = n[p];\n            if (j(q, o)) {\n                return q.offset;\n            }\n        ;\n        ;\n        };\n    ;\n        return o;\n    };\n;\n    var l = function(n, o, p) {\n        var q = [], r = [], s = k(o, p);\n        for (var t = 0; ((t < o.length)); t++) {\n            var u = o[t];\n            if (((u.offset < s))) {\n                q.push(u);\n            }\n             else r.push({\n                offset: ((u.offset - s)),\n                length: u.length,\n                entities: u.entities\n            });\n        ;\n        ;\n        };\n    ;\n        return {\n            first: {\n                ranges: q,\n                text: n.substr(0, s)\n            },\n            second: {\n                ranges: r,\n                text: n.substr(s)\n            }\n        };\n    }, m = g.createClass({\n        displayName: \"TruncatedTextWithEntities\",\n        render: function() {\n            var n = this.props.maxLines, o = this.props.maxLength, p = ((this.props.truncationPercent || 175898)), q = Math.floor(((p * o))), r = ((this.props.text || \"\")), s = ((this.props.ranges || [])), t = r.split(\"\\u000a\"), u = ((t.length - 1)), v = ((o && ((r.length > o)))), w = ((n && ((u > n))));\n            if (w) {\n                q = Math.min(t.slice(0, n).join(\"\\u000a\").length, q);\n            }\n        ;\n        ;\n            if (((v || w))) {\n                var x = l(r, s, q);\n                return (g.DOM.span({\n                    \"data-ft\": this.props[\"data-ft\"],\n                    dir: this.props.dir\n                }, i({\n                    className: this.props.className\n                }, h({\n                    interpolator: this.props.interpolator,\n                    ranges: x.first.ranges,\n                    text: x.first.text,\n                    renderEmoticons: this.props.renderEmoticons,\n                    renderEmoji: this.props.renderEmoji\n                }), h({\n                    interpolator: this.props.interpolator,\n                    ranges: x.second.ranges,\n                    text: x.second.text,\n                    renderEmoticons: this.props.renderEmoticons,\n                    renderEmoji: this.props.renderEmoji\n                }))));\n            }\n             else return (g.DOM.span({\n                \"data-ft\": this.props[\"data-ft\"],\n                dir: this.props.dir\n            }, h({\n                className: this.props.className,\n                interpolator: this.props.interpolator,\n                ranges: s,\n                text: r,\n                renderEmoticons: this.props.renderEmoticons,\n                renderEmoji: this.props.renderEmoji\n            })))\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"UFICommentAttachment.react\", [\"DOM\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"React\"), i = h.createClass({\n        displayName: \"UFICommentAttachment\",\n        _attachmentFromCommentData: function(j) {\n            return ((j.photo_comment || j.attachment));\n        },\n        componentDidMount: function(j) {\n            var k = this._attachmentFromCommentData(this.props.comment);\n            if (k) {\n                this.renderAttachment(k);\n            }\n        ;\n        ;\n        },\n        shouldComponentUpdate: function(j, k) {\n            var l = this._attachmentFromCommentData(this.props.comment), m = this._attachmentFromCommentData(j.comment);\n            if (((!l && !m))) {\n                return false;\n            }\n        ;\n        ;\n            if (((((!l || !m)) || ((l.markup != m.markup))))) {\n                return true;\n            }\n             else return false\n        ;\n        },\n        componentDidUpdate: function(j) {\n            var k = this._attachmentFromCommentData(this.props.comment);\n            this.renderAttachment(k);\n        },\n        renderAttachment: function(j) {\n            if (((j && this.refs.contents))) {\n                g.setContent(this.refs.contents.getDOMNode(), j.markup);\n            }\n        ;\n        ;\n        },\n        render: function() {\n            if (this._attachmentFromCommentData(this.props.comment)) {\n                return h.DOM.div({\n                    ref: \"contents\"\n                });\n            }\n             else return h.DOM.span(null)\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"UFIReplyLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n        displayName: \"UFIReplyLink\",\n        render: function() {\n            return (g.DOM.a({\n                className: \"UFIReplyLink\",\n                href: \"#\",\n                onClick: this.props.onClick\n            }, \"Reply\"));\n        }\n    });\n    e.exports = i;\n});\n__d(\"UFISpamCount\", [\"UFISpamCountImpl\",], function(a, b, c, d, e, f) {\n    e.exports = ((b(\"UFISpamCountImpl\").module || {\n        enabled: false\n    }));\n});\n__d(\"UFIComment.react\", [\"function-extensions\",\"Bootloader\",\"CloseButton.react\",\"Env\",\"Focus\",\"HovercardLink\",\"HovercardLinkInterpolator\",\"LinkButton\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"Timestamp.react\",\"TrackingNodes\",\"TruncatedTextWithEntities.react\",\"UFIClassNames\",\"UFICommentAttachment.react\",\"UFIConfig\",\"UFIConstants\",\"UFIImageBlock.react\",\"UFIInstanceState\",\"UFIReplyLink.react\",\"UFISpamCount\",\"URI\",\"cx\",\"keyMirror\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Bootloader\"), h = b(\"CloseButton.react\"), i = b(\"Env\"), j = b(\"Focus\"), k = b(\"HovercardLink\"), l = b(\"HovercardLinkInterpolator\"), m = b(\"LinkButton\"), n = b(\"NumberFormat\"), o = b(\"ProfileBrowserLink\"), p = b(\"ProfileBrowserTypes\"), q = b(\"React\"), r = b(\"Timestamp.react\"), s = b(\"TrackingNodes\"), t = b(\"TruncatedTextWithEntities.react\"), u = b(\"UFIClassNames\"), v = b(\"UFICommentAttachment.react\"), w = b(\"UFIConfig\"), x = b(\"UFIConstants\"), y = b(\"UFIImageBlock.react\"), z = b(\"UFIInstanceState\"), aa = b(\"UFIReplyLink.react\"), ba = b(\"UFISpamCount\"), ca = b(\"URI\"), da = b(\"cx\"), ea = b(\"keyMirror\"), fa = b(\"joinClasses\"), ga = b(\"tx\"), ha = x.UFIStatus, ia = \" \\u00b7 \", ja = ea({\n        edit: true,\n        hide: true,\n        remove: true\n    }), ka = \"UFICommentBody\", la = \"UFICommentActorName\", ma = \"UFICommentNotSpamLink\", na = \"fsm fwn fcg UFICommentActions\", oa = \"UFIDeletedMessageIcon\", pa = \"UFIDeletedMessage\", qa = \"UFIFailureMessageIcon\", ra = \"UFIFailureMessage\", sa = \"UFICommentLikeButton\", ta = \"UFICommentLikeIcon\", ua = \"UFITranslateLink\", va = \"UFITranslatedText\", wa = \"uiLinkSubtle\", xa = \"stat_elem\", ya = \"pls\", za = \"fcg\", ab = 27, bb = null, cb = function(kb, lb) {\n        var mb = new ca(\"/ajax/like/tooltip.php\").setQueryData({\n            comment_fbid: kb.fbid,\n            comment_from: kb.author,\n            cache_buster: ((kb.likeconfirmhash || 0))\n        });\n        if (lb) {\n            mb.addQueryData({\n                viewas: lb\n            });\n        }\n    ;\n    ;\n        return mb;\n    }, db = function(kb) {\n        var lb = kb.JSBNG__status;\n        return ((((lb === ha.FAILED_ADD)) || ((lb === ha.FAILED_EDIT))));\n    };\n    function eb(kb) {\n        return ((((((kb.commenterIsFOF !== undefined)) && ((kb.userIsMinor !== undefined)))) && ((kb.reportLink !== undefined))));\n    };\n;\n    var fb = q.createClass({\n        displayName: \"UFICommentLikeCount\",\n        render: function() {\n            var kb = this.props.comment, lb = n.formatIntegerWithDelimiter(((kb.likecount || 0)), this.props.contextArgs.numberdelimiter), mb = p.LIKES, nb = {\n                id: kb.fbid\n            }, ob = cb(this.props.comment, this.props.viewas), pb = q.DOM.i({\n                className: ta\n            }), qb = q.DOM.span(null, lb);\n            return (q.DOM.a({\n                className: sa,\n                role: \"button\",\n                rel: \"dialog\",\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"data-tooltip-uri\": ob.toString(),\n                ajaxify: o.constructDialogURI(mb, nb).toString(),\n                href: o.constructPageURI(mb, nb).toString()\n            }, pb, qb));\n        }\n    }), gb = q.createClass({\n        displayName: \"UFICommentActions\",\n        render: function() {\n            var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.markedAsSpamHere, ob = ((lb.JSBNG__status === ha.SPAM_DISPLAY)), pb = this.props.showReplyLink, qb = this.props.hideAsSpamForPageAdmin, rb, sb, tb, ub, vb, wb, xb = ((!lb.islocal && ((lb.JSBNG__status !== ha.LIVE_DELETED))));\n            if (xb) {\n                if (((ob && !nb))) {\n                    if (kb.viewerCanMarkNotSpam) {\n                        rb = q.DOM.a({\n                            onClick: kb.onMarkAsNotSpam,\n                            className: ma,\n                            href: \"#\",\n                            role: \"button\"\n                        }, \"Unhide\");\n                    }\n                ;\n                ;\n                    if (((((((qb && mb.isthreaded)) && mb.cancomment)) && pb))) {\n                        vb = aa({\n                            comment: lb,\n                            onClick: kb.onCommentReply,\n                            contextArgs: kb.contextArgs\n                        });\n                    }\n                ;\n                ;\n                }\n                 else {\n                    if (mb.viewercanlike) {\n                        var yb = s.getTrackingInfo(((lb.hasviewerliked ? s.types.UNLIKE_LINK : s.types.LIKE_LINK))), zb = ((lb.hasviewerliked ? \"Unlike this comment\" : \"Like this comment\"));\n                        sb = q.DOM.a({\n                            className: \"UFILikeLink\",\n                            href: \"#\",\n                            role: \"button\",\n                            onClick: kb.onCommentLikeToggle,\n                            \"data-ft\": yb,\n                            title: zb\n                        }, ((lb.hasviewerliked ? \"Unlike\" : \"Like\")));\n                    }\n                ;\n                ;\n                    if (((((mb.isthreaded && mb.cancomment)) && pb))) {\n                        vb = aa({\n                            comment: lb,\n                            onClick: kb.onCommentReply,\n                            contextArgs: kb.contextArgs\n                        });\n                    }\n                ;\n                ;\n                    if (((lb.likecount > 0))) {\n                        tb = fb({\n                            comment: lb,\n                            viewas: this.props.viewas,\n                            contextArgs: this.props.contextArgs\n                        });\n                    }\n                ;\n                ;\n                    if (((lb.spamcount && ba.enabled))) {\n                        ub = ba({\n                            count: lb.spamcount\n                        });\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (((lb.attachment && lb.canremove))) {\n                    wb = q.DOM.a({\n                        onClick: kb.onPreviewRemove,\n                        href: \"#\",\n                        role: \"button\"\n                    }, \"Remove Preview\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var ac = hb({\n                comment: lb,\n                onRetrySubmit: kb.onRetrySubmit,\n                showPermalink: kb.showPermalink\n            }), bc;\n            if (kb.contextArgs.entstream) {\n                bc = [ac,sb,tb,vb,ub,rb,wb,];\n            }\n             else if (mb.isthreaded) {\n                bc = [sb,vb,rb,wb,tb,ub,ac,];\n            }\n             else bc = [ac,sb,tb,ub,vb,rb,wb,];\n            \n        ;\n        ;\n            if (((lb.JSBNG__status === ha.LIVE_DELETED))) {\n                var cc = q.DOM.span({\n                    className: pa\n                }, q.DOM.i({\n                    className: oa,\n                    \"data-hover\": \"tooltip\",\n                    \"aria-label\": \"Comment deleted\"\n                }));\n                bc.push(cc);\n            }\n        ;\n        ;\n            var dc = [];\n            for (var ec = 0; ((ec < bc.length)); ec++) {\n                if (bc[ec]) {\n                    dc.push(ia);\n                    dc.push(bc[ec]);\n                }\n            ;\n            ;\n            };\n        ;\n            dc.shift();\n            return (q.DOM.div({\n                className: na\n            }, dc));\n        }\n    }), hb = q.createClass({\n        displayName: \"UFICommentMetadata\",\n        render: function() {\n            var kb = this.props.comment, lb = this.props.onRetrySubmit, mb, nb;\n            if (db(kb)) {\n                mb = [q.DOM.span({\n                    className: ra\n                }, q.DOM.i({\n                    className: qa\n                }), \"Unable to post comment.\"),((((kb.allowRetry && lb)) ? [\" \",q.DOM.a({\n                    onClick: lb,\n                    href: \"#\",\n                    role: \"button\"\n                }, \"Try Again\"),] : null)),];\n            }\n             else {\n                var ob = ((this.props.showPermalink ? kb.permalink : null)), pb = s.getTrackingInfo(s.types.SOURCE), qb = q.DOM.a({\n                    className: wa,\n                    href: ob,\n                    \"data-ft\": pb\n                }, r({\n                    time: kb.timestamp.time,\n                    text: kb.timestamp.text,\n                    verbose: kb.timestamp.verbose\n                })), rb;\n                switch (kb.source) {\n                  case x.UFISourceType.MOBILE:\n                    rb = q.DOM.a({\n                        className: wa,\n                        href: new ca(\"/mobile/\").setSubdomain(\"www\").toString()\n                    }, \"mobile\");\n                    break;\n                  case x.UFISourceType.SMS:\n                    rb = q.DOM.a({\n                        className: wa,\n                        href: new ca(\"/mobile/?v=texts\").setSubdomain(\"www\").toString()\n                    }, \"text message\");\n                    break;\n                  case x.UFISourceType.EMAIL:\n                    rb = m({\n                        subtle: true,\n                        label: \"email\",\n                        inputType: \"submit\",\n                        JSBNG__name: \"email_explain\",\n                        value: true,\n                        className: xa\n                    });\n                    break;\n                };\n            ;\n                nb = ((rb ? ga._(\"{time} via {source}\", {\n                    time: qb,\n                    source: rb\n                }) : qb));\n            }\n        ;\n        ;\n            var sb = null;\n            if (kb.originalTimestamp) {\n                var tb = new ca(\"/ajax/edits/browser/comment\").addQueryData({\n                    comment_token: kb.id\n                }).toString();\n                sb = [ia,q.DOM.a({\n                    ref: \"EditLink\",\n                    href: \"#\",\n                    role: \"button\",\n                    rel: \"dialog\",\n                    className: \"uiLinkSubtle\",\n                    ajaxify: tb,\n                    \"data-hover\": \"tooltip\",\n                    \"aria-label\": \"Show edit history\",\n                    title: \"Show edit history\"\n                }, \"Edited\"),];\n            }\n        ;\n        ;\n            return (q.DOM.span(null, nb, mb, sb));\n        },\n        componentWillUpdate: function(kb) {\n            var lb = this.props.comment, mb = kb.comment;\n            if (((!lb.editnux && !!mb.editnux))) {\n                g.loadModules([\"LegacyContextualDialog\",], function(nb) {\n                    var ob = new nb();\n                    ob.init(mb.editnux).setContext(this.refs.EditLink.getDOMNode()).setWidth(300).setPosition(\"below\").show();\n                }.bind(this));\n            }\n        ;\n        ;\n        }\n    }), ib = q.createClass({\n        displayName: \"UFISocialContext\",\n        render: function() {\n            var kb = this.props.topMutualFriend, lb = this.props.otherMutualCount, mb = this.props.commentAuthor, nb = k.constructEndpoint(kb).toString(), ob = q.DOM.a({\n                href: kb.uri,\n                \"data-hovercard\": nb\n            }, kb.JSBNG__name), pb = ((mb.JSBNG__name.length + kb.JSBNG__name.length)), qb;\n            if (((lb === 0))) {\n                qb = ga._(\"Friends with {name}\", {\n                    JSBNG__name: ob\n                });\n            }\n             else if (((pb < ab))) {\n                var rb;\n                if (((lb == 1))) {\n                    rb = \"1 other\";\n                }\n                 else rb = ga._(\"{count} others\", {\n                    count: lb\n                });\n            ;\n            ;\n                qb = ga._(\"Friends with {name} and {others}\", {\n                    JSBNG__name: ob,\n                    others: this.getOthersLink(rb, mb, kb)\n                });\n            }\n             else {\n                var sb = ga._(\"{count} mutual friends\", {\n                    count: ((lb + 1))\n                });\n                qb = this.getOthersLink(sb, mb);\n            }\n            \n        ;\n        ;\n            return (q.DOM.span({\n                className: \"UFICommentSocialContext\"\n            }, ia, qb));\n        },\n        getOthersLink: function(kb, lb, mb) {\n            var nb = p.MUTUAL_FRIENDS, ob = {\n                uid: lb.id\n            }, pb = new ca(\"/ajax/mutual_friends/tooltip.php\").setQueryData({\n                friend_id: lb.id\n            });\n            if (mb) {\n                pb.addQueryData({\n                    exclude_id: mb.id\n                });\n            }\n        ;\n        ;\n            var qb = o.constructDialogURI(nb, ob).toString();\n            return (q.DOM.a({\n                rel: \"dialog\",\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"data-tooltip-uri\": pb.toString(),\n                ajaxify: qb,\n                href: o.constructPageURI(nb, ob).toString()\n            }, kb));\n        }\n    }), jb = q.createClass({\n        displayName: \"UFIComment\",\n        getInitialState: function() {\n            return {\n                isHighlighting: this.props.comment.highlightcomment,\n                wasHighlighted: this.props.comment.highlightcomment,\n                markedAsSpamHere: false,\n                oneClickRemovedHere: false,\n                isInlinePageDeleted: false,\n                isInlineBanned: false\n            };\n        },\n        _onHideAsSpam: function(JSBNG__event) {\n            this.props.onHideAsSpam(JSBNG__event);\n            this.setState({\n                markedAsSpamHere: true\n            });\n        },\n        _onMarkAsNotSpam: function(JSBNG__event) {\n            this.props.onMarkAsNotSpam(JSBNG__event);\n            this.setState({\n                markedAsSpamHere: false\n            });\n        },\n        _onDeleteSpam: function(JSBNG__event) {\n            this.props.onOneClickRemove(JSBNG__event);\n            this.setState({\n                isInlinePageDeleted: true\n            });\n        },\n        _onUndoDeleteSpam: function(JSBNG__event) {\n            this.props.onUndoOneClickRemove(JSBNG__event);\n            this.setState({\n                isInlinePageDeleted: false\n            });\n        },\n        _onInlineBan: function(JSBNG__event) {\n            this.props.onInlineBan(JSBNG__event);\n            this.setState({\n                isInlineBanned: true\n            });\n        },\n        _onUndoInlineBan: function(JSBNG__event) {\n            this.props.onUndoInlineBan(JSBNG__event);\n            this.setState({\n                isInlineBanned: false\n            });\n        },\n        _onOneClickRemove: function(JSBNG__event) {\n            this.props.onOneClickRemove(JSBNG__event);\n            this.setState({\n                oneClickRemovedHere: true\n            });\n        },\n        _onUndoOneClickRemove: function(JSBNG__event) {\n            this.props.onUndoOneClickRemove(JSBNG__event);\n            this.setState({\n                oneClickRemovedHere: false\n            });\n        },\n        _onAction: function(JSBNG__event, kb) {\n            if (((kb === ja.remove))) {\n                this.props.onRemove(JSBNG__event);\n            }\n             else if (((kb === ja.edit))) {\n                this.props.onEdit(JSBNG__event);\n            }\n             else if (((kb === ja.hide))) {\n                this._onHideAsSpam(JSBNG__event);\n            }\n            \n            \n        ;\n        ;\n        },\n        _createRemoveReportMenu: function(JSBNG__event) {\n            if (this._removeReportMenu) {\n                return;\n            }\n        ;\n        ;\n            var kb = [{\n                label: \"Delete Comment...\",\n                value: ja.remove\n            },{\n                label: \"Hide Comment\",\n                value: ja.hide\n            },];\n            if (JSBNG__event.persist) {\n                JSBNG__event.persist();\n            }\n             else JSBNG__event = JSBNG__event.constructor.persistentCloneOf(JSBNG__event);\n        ;\n        ;\n            g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n                this._removeReportMenu = lb.createAndShowPopoverMenu(JSBNG__event.target, kb, this._onAction.bind(this, JSBNG__event));\n            }.bind(this));\n        },\n        _createEditDeleteMenu: function(JSBNG__event) {\n            if (JSBNG__event.persist) {\n                JSBNG__event.persist();\n            }\n             else JSBNG__event = JSBNG__event.constructor.persistentCloneOf(JSBNG__event);\n        ;\n        ;\n            if (this._editDeleteMenu) {\n                return;\n            }\n        ;\n        ;\n            var kb = [{\n                label: \"Edit...\",\n                value: ja.edit\n            },{\n                label: \"Delete...\",\n                value: ja.remove\n            },];\n            g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n                this._editDeleteMenu = lb.createAndShowPopoverMenu(JSBNG__event.target, kb, this._onAction.bind(this, JSBNG__event));\n            }.bind(this));\n        },\n        _renderCloseButton: function() {\n            var kb = this.props.comment, lb = this.props.feedback, mb = null, nb = null, ob = false;\n            if (((kb.canremove && !this.props.hideAsSpamForPageAdmin))) {\n                if (this.props.viewerIsAuthor) {\n                    if (kb.canedit) {\n                        nb = \"Edit or Delete\";\n                        mb = this._createEditDeleteMenu;\n                        ob = true;\n                    }\n                     else {\n                        nb = \"Remove\";\n                        mb = this.props.onRemove;\n                    }\n                ;\n                ;\n                }\n                 else if (lb.canremoveall) {\n                    if (this.props.showRemoveReportMenu) {\n                        nb = \"Remove or Report\";\n                        mb = this._createRemoveReportMenu;\n                    }\n                     else {\n                        nb = \"Remove\";\n                        mb = this._onOneClickRemove;\n                    }\n                ;\n                }\n                \n            ;\n            ;\n            }\n             else if (kb.canreport) {\n                nb = \"Hide\";\n                mb = this._onHideAsSpam;\n            }\n            \n        ;\n        ;\n            var pb = (((((\"UFICommentCloseButton\") + ((ob ? ((\" \" + \"UFIEditButton\")) : \"\")))) + ((((mb === null)) ? ((\" \" + \"hdn\")) : \"\"))));\n            return (h({\n                onClick: mb,\n                tooltip: nb,\n                className: pb\n            }));\n        },\n        componentDidMount: function(kb) {\n            var lb = this.props.comment.ufiinstanceid;\n            if (this.state.isHighlighting) {\n                g.loadModules([\"UFIScrollHighlight\",], function(nb) {\n                    nb.actOn.curry(kb).defer();\n                });\n                this.setState({\n                    isHighlighting: false\n                });\n            }\n        ;\n        ;\n            var mb = z.getKeyForInstance(lb, \"autofocus\");\n            if (mb) {\n                j.setWithoutOutline(this.refs.AuthorName.getDOMNode());\n                z.updateState(lb, \"autofocus\", false);\n            }\n        ;\n        ;\n        },\n        shouldComponentUpdate: function(kb) {\n            var lb = this.props;\n            return ((((((((((((((((((((((kb.comment !== lb.comment)) || ((kb.showReplyLink !== lb.showReplyLink)))) || ((kb.showReplies !== lb.showReplies)))) || ((kb.isFirst !== lb.isFirst)))) || ((kb.isLast !== lb.isLast)))) || ((kb.isFirstCommentComponent !== lb.isFirstCommentComponent)))) || ((kb.isLastCommentComponent !== lb.isLastCommentComponent)))) || ((kb.isFirstComponent !== lb.isFirstComponent)))) || ((kb.isLastComponent !== lb.isLastComponent)))) || ((kb.isFeaturedComment !== lb.isFeaturedComment)))) || ((kb.hasPartialBorder !== lb.hasPartialBorder))));\n        },\n        render: function() {\n            var kb = this.props.comment, lb = this.props.feedback, mb = ((kb.JSBNG__status === ha.DELETED)), nb = ((kb.JSBNG__status === ha.LIVE_DELETED)), ob = ((kb.JSBNG__status === ha.SPAM_DISPLAY)), pb = ((kb.JSBNG__status === ha.PENDING_UNDO_DELETE)), qb = this.state.markedAsSpamHere, rb = this.state.oneClickRemovedHere, sb = this.state.isInlinePageDeleted, tb = this.props.hideAsSpamForPageAdmin, ub = this.state.isInlineBanned, vb = eb(kb), wb = ((!kb.JSBNG__status && ((kb.isunseen || kb.islocal))));\n            if (((!kb.JSBNG__status && lb.lastseentime))) {\n                var xb = ((kb.originalTimestamp || kb.timestamp.time));\n                wb = ((wb || ((xb > lb.lastseentime))));\n            }\n        ;\n        ;\n            var yb = this.props.contextArgs.markedcomments;\n            if (((yb && yb[kb.legacyid]))) {\n                wb = true;\n            }\n        ;\n        ;\n            if (vb) {\n                if (bb) {\n                    var zb, ac = null, bc = null, cc = null;\n                    if (tb) {\n                        bc = ((ub ? this._onUndoInlineBan : this._onInlineBan));\n                        if (sb) {\n                            ac = this._onUndoDeleteSpam;\n                            var dc = q.DOM.a({\n                                href: \"#\",\n                                onClick: ac\n                            }, \"Undo\");\n                            zb = ga._(\"You've deleted this comment so no one can see it. {undo}.\", {\n                                undo: dc\n                            });\n                        }\n                         else if (qb) {\n                            zb = \"Now this is only visible to the person who wrote it and their friends.\";\n                            cc = this._onDeleteSpam;\n                            ac = this._onMarkAsNotSpam;\n                        }\n                        \n                    ;\n                    ;\n                    }\n                     else if (qb) {\n                        zb = \"This comment has been hidden.\";\n                        cc = this._onDeleteSpam;\n                        ac = this._onMarkAsNotSpam;\n                    }\n                     else if (rb) {\n                        zb = \"This comment has been removed.\";\n                        ac = this._onUndoOneClickRemove;\n                    }\n                    \n                    \n                ;\n                ;\n                    if (zb) {\n                        return (q.DOM.li({\n                            className: fa(u.ROW, \"UFIHide\")\n                        }, bb({\n                            notice: zb,\n                            comment: this.props.comment,\n                            authorProfiles: this.props.authorProfiles,\n                            onUndo: ac,\n                            onBanAction: bc,\n                            onDeleteAction: cc,\n                            isInlineBanned: ub,\n                            hideAsSpamForPageAdmin: tb\n                        })));\n                    }\n                ;\n                ;\n                }\n                 else g.loadModules([\"UFICommentRemovalControls.react\",], function(gc) {\n                    bb = gc;\n                    JSBNG__setTimeout(function() {\n                        this.forceUpdate();\n                    }.bind(this));\n                }.bind(this));\n            ;\n            }\n        ;\n        ;\n            var ec = fa(u.ROW, (((((((((((((((((((((((((\"UFIComment\") + ((db(kb) ? ((\" \" + \"UFICommentFailed\")) : \"\")))) + ((((((((mb || nb)) || ob)) || pb)) ? ((\" \" + \"UFITranslucentComment\")) : \"\")))) + ((this.state.isHighlighting ? ((\" \" + \"highlightComment\")) : \"\")))) + ((((mb && !rb)) ? ((\" \" + \"noDisplay\")) : \"\")))) + ((((this.props.isFirst && !this.props.isReply)) ? ((\" \" + \"UFIFirstComment\")) : \"\")))) + ((((this.props.isLast && !this.props.isReply)) ? ((\" \" + \"UFILastComment\")) : \"\")))) + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\")))) + ((this.props.isFeatured ? ((\" \" + \"UFIFeaturedComment\")) : \"\")))) + ((((this.props.hasPartialBorder && !this.props.contextArgs.entstream)) ? ((\" \" + \"UFIPartialBorder\")) : \"\"))))), fc = this.renderComment();\n            if (wb) {\n                if (this.props.contextArgs.snowliftredesign) {\n                    fc = q.DOM.div({\n                        className: \"_5cis\"\n                    }, q.DOM.div({\n                        className: \"_5cit\"\n                    }), fc);\n                }\n                 else if (((this.props.contextArgs.entstream && !this.props.isReply))) {\n                    fc = q.DOM.div({\n                        className: \"_52mp\"\n                    }, q.DOM.div({\n                        className: \"_52mq\"\n                    }), fc);\n                }\n                 else ec = fa(ec, u.UNSEEN_ITEM);\n                \n            ;\n            }\n        ;\n        ;\n            return (q.DOM.li({\n                className: ec,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, fc));\n        },\n        renderComment: function() {\n            var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.authorProfiles[lb.author], ob = ((lb.JSBNG__status === ha.SPAM_DISPLAY)), pb = ((lb.JSBNG__status === ha.LIVE_DELETED)), qb = !((ob || pb)), rb = ((mb.canremoveall || lb.hiddenbyviewer)), sb = null, tb = null;\n            if (((((!kb.isLocallyComposed && !this.state.wasHighlighted)) && !lb.fromfetch))) {\n                tb = x.commentTruncationLength;\n                sb = x.commentTruncationMaxLines;\n            }\n        ;\n        ;\n            var ub = s.getTrackingInfo(s.types.SMALL_ACTOR_PHOTO), vb = s.getTrackingInfo(s.types.USER_NAME), wb = s.getTrackingInfo(s.types.USER_MESSAGE), xb = null, yb = null;\n            if (((lb.istranslatable && ((lb.translatedtext === undefined))))) {\n                xb = q.DOM.a({\n                    href: \"#\",\n                    role: \"button\",\n                    title: \"Translate this comment\",\n                    className: ua,\n                    onClick: kb.onCommentTranslate\n                }, \"See Translation\");\n            }\n        ;\n        ;\n            if (lb.translatedtext) {\n                var zb = new ca(\"http://bing.com/translator\").addQueryData({\n                    text: lb.body.text\n                });\n                yb = q.DOM.span({\n                    className: va\n                }, lb.translatedtext, q.DOM.span({\n                    className: ya\n                }, \" (\", q.DOM.a({\n                    href: zb.toString(),\n                    className: za\n                }, \"Translated by Bing\"), \") \"));\n            }\n        ;\n        ;\n            var ac;\n            if (((i.rtl && ((lb.body.dir === \"ltr\"))))) {\n                ac = \"rtl\";\n            }\n             else if (((!i.rtl && ((lb.body.dir === \"rtl\"))))) {\n                ac = \"ltr\";\n            }\n            \n        ;\n        ;\n            var bc = k.constructEndpointWithLocation(nb, \"ufi\").toString(), cc = q.DOM.a({\n                ref: \"AuthorName\",\n                className: la,\n                href: nb.uri,\n                \"data-hovercard\": bc,\n                \"data-ft\": vb,\n                dir: ac\n            }, nb.JSBNG__name), dc = function(ic, jc) {\n                return l(ic, jc, \"_blank\", mb.grouporeventid, \"ufi\");\n            }, ec = t({\n                className: ka,\n                interpolator: dc,\n                ranges: lb.body.ranges,\n                text: lb.body.text,\n                truncationPercent: x.commentTruncationPercent,\n                maxLength: tb,\n                maxLines: sb,\n                renderEmoticons: w.renderEmoticons,\n                renderEmoji: w.renderEmoji,\n                \"data-ft\": wb,\n                dir: lb.body.dir\n            }), fc;\n            if (lb.socialcontext) {\n                var gc = lb.socialcontext, hc = ib({\n                    topMutualFriend: kb.authorProfiles[gc.topmutualid],\n                    otherMutualCount: gc.othermutualcount,\n                    commentAuthor: nb\n                });\n                fc = [cc,hc,q.DOM.div(null, ec),];\n            }\n             else fc = [cc,\" \",ec,];\n        ;\n        ;\n            return (y({\n                spacing: \"medium\"\n            }, q.DOM.a({\n                href: nb.uri,\n                \"data-hovercard\": bc,\n                \"data-ft\": ub\n            }, q.DOM.img({\n                src: nb.thumbSrc,\n                className: u.ACTOR_IMAGE,\n                alt: \"\"\n            })), q.DOM.div(null, q.DOM.div({\n                className: \"UFICommentContent\"\n            }, fc, xb, yb, v({\n                comment: kb.comment\n            })), gb({\n                comment: lb,\n                feedback: mb,\n                onBlingBoxClick: kb.onBlingBoxClick,\n                onCommentLikeToggle: kb.onCommentLikeToggle,\n                onCommentReply: kb.onCommentReply,\n                onPreviewRemove: kb.onPreviewRemove,\n                onRetrySubmit: kb.onRetrySubmit,\n                onMarkAsNotSpam: this._onMarkAsNotSpam,\n                viewerCanMarkNotSpam: rb,\n                viewas: kb.contextArgs.viewas,\n                showPermalink: kb.showPermalink,\n                showReplyLink: kb.showReplyLink,\n                showReplies: kb.showReplies,\n                contextArgs: kb.contextArgs,\n                markedAsSpamHere: this.state.markedAsSpamHere,\n                hideAsSpamForPageAdmin: kb.hideAsSpamForPageAdmin\n            })), ((qb ? this._renderCloseButton() : null))));\n        }\n    });\n    e.exports = jb;\n});\n__d(\"UFIContainer.react\", [\"React\",\"TrackingNodes\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"cx\"), j = g.createClass({\n        displayName: \"UFIContainer\",\n        render: function() {\n            var k = null;\n            if (this.props.hasNub) {\n                k = g.DOM.li({\n                    className: \"UFIArrow\"\n                }, g.DOM.i(null));\n            }\n        ;\n        ;\n            var l = ((((((((((((((!this.props.isReplyList ? \"UFIList\" : \"\")) + ((this.props.isReplyList ? ((\" \" + \"UFIReplyList\")) : \"\")))) + ((this.props.isParentLiveDeleted ? ((\" \" + \"UFITranslucentReplyList\")) : \"\")))) + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))));\n            return (g.DOM.ul({\n                className: l,\n                \"data-ft\": h.getTrackingInfo(h.types.UFI)\n            }, k, this.props.children));\n        }\n    });\n    e.exports = j;\n});\n__d(\"GiftOpportunityLogger\", [\"AsyncRequest\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"JSBNG__Event\"), i = {\n        init: function(k, l, m) {\n            var n = false;\n            h.listen(k, \"click\", function(o) {\n                if (n) {\n                    return true;\n                }\n            ;\n            ;\n                n = true;\n                i.send(l, m);\n            });\n        },\n        send: function(k, l) {\n            if (j[k.opportunity_id]) {\n                return;\n            }\n        ;\n        ;\n            j[k.opportunity_id] = true;\n            return new g().setURI(\"/ajax/gifts/log/opportunity\").setData({\n                data: k,\n                entry_point: l\n            }).send();\n        }\n    }, j = {\n    };\n    e.exports = i;\n});\n__d(\"InlineBlock.react\", [\"ReactProps\",\"React\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"ReactProps\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = {\n        baseline: null,\n        bottom: \"_6d\",\n        middle: \"_6b\",\n        JSBNG__top: \"_6e\"\n    }, l = h.createClass({\n        displayName: \"InlineBlock\",\n        props: {\n            alignv: g.oneOf([\"baseline\",\"bottom\",\"middle\",\"JSBNG__top\",]),\n            height: g.number\n        },\n        getDefaultProps: function() {\n            return {\n                alignv: \"baseline\"\n            };\n        },\n        render: function() {\n            var m = k[this.props.alignv], n = h.DOM.div({\n                className: j(\"_6a\", m)\n            }, this.props.children);\n            if (((this.props.height != null))) {\n                var o = h.DOM.div({\n                    className: j(\"_6a\", m),\n                    style: {\n                        height: ((this.props.height + \"px\"))\n                    }\n                });\n                n = h.DOM.div({\n                    className: \"_6a\",\n                    height: null\n                }, o, n);\n            }\n        ;\n        ;\n            return this.transferPropsTo(n);\n        }\n    });\n    e.exports = l;\n});\n__d(\"JSBNG__Image.react\", [\"React\",\"invariant\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"invariant\"), i = b(\"joinClasses\"), j = g.createClass({\n        displayName: \"ReactImage\",\n        props: {\n            src: function(k, l, m) {\n                var n = k[l];\n                h(((((typeof n === \"string\")) || ((((typeof n === \"object\")) && ((((((n.sprited && n.spriteMapCssClass)) && n.spriteCssClass)) || ((!n.sprited && n.uri)))))))));\n            }\n        },\n        render: function() {\n            var k, l, m = this.props.src, n = \"img\";\n            l = true;\n            if (((typeof m === \"string\"))) {\n                k = g.DOM.img({\n                    className: n,\n                    src: m\n                });\n            }\n             else if (m.sprited) {\n                n = i(n, m.spriteMapCssClass, m.spriteCssClass);\n                k = g.DOM.i({\n                    className: n,\n                    src: null\n                });\n                l = false;\n            }\n             else {\n                k = g.DOM.img({\n                    className: n,\n                    src: m.uri\n                });\n                if (((((typeof this.props.width === \"undefined\")) && ((typeof this.props.height === \"undefined\"))))) {\n                    k.props.width = m.width;\n                    k.props.height = m.height;\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            if (this.props.alt) {\n                if (l) {\n                    k.props.alt = this.props.alt;\n                }\n                 else k.props.children = g.DOM.u(null, this.props.alt);\n            ;\n            }\n        ;\n        ;\n            return this.transferPropsTo(k);\n        }\n    });\n    e.exports = j;\n});\n__d(\"UFIGiftSentence.react\", [\"AsyncRequest\",\"CloseButton.react\",\"GiftOpportunityLogger\",\"ImageBlock.react\",\"InlineBlock.react\",\"LeftRight.react\",\"Link.react\",\"React\",\"JSBNG__Image.react\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"DOM\",\"ix\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CloseButton.react\"), i = b(\"GiftOpportunityLogger\"), j = b(\"ImageBlock.react\"), k = b(\"InlineBlock.react\"), l = b(\"LeftRight.react\"), m = b(\"Link.react\"), n = b(\"React\"), o = b(\"JSBNG__Image.react\"), p = b(\"UFIClassNames\"), q = b(\"UFIImageBlock.react\"), r = b(\"URI\"), s = b(\"DOM\"), t = b(\"ix\"), u = b(\"tx\"), v = n.createClass({\n        displayName: \"UFIGiftSentence\",\n        _entry_point: \"detected_gift_worthy_story_inline\",\n        render: function() {\n            var w = this.props.recipient, x = this.props.giftdata, y = ((x ? x.giftproductid : null)), z = this._getURI(y).toString();\n            this._log();\n            return (n.DOM.li({\n                className: p.ROW,\n                ref: \"UFIGiftSentence\"\n            }, l({\n                direction: \"right\"\n            }, ((x ? this._renderGiftSuggestion(z, w, x) : this._renderGiftLink(z, w))), h({\n                size: \"small\",\n                onClick: function() {\n                    var aa = this.refs.UFIGiftSentence.getDOMNode();\n                    s.remove(aa);\n                    this._requestClose();\n                }.bind(this)\n            }))));\n        },\n        _renderGiftSuggestion: function(w, x, y) {\n            return (q(null, o({\n                src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n                alt: \"invite\"\n            }), n.DOM.div(null, n.DOM.span({\n                className: \"fwb\"\n            }, u._(\"Surprise {name} with a gift\", {\n                JSBNG__name: x.firstName\n            })), j({\n                spacing: \"medium\",\n                className: \"mvs\"\n            }, m({\n                className: \"fwb\",\n                rel: \"async-post\",\n                ajaxify: w,\n                href: {\n                    url: \"#\"\n                }\n            }, o({\n                className: \"UFIGiftProductImg\",\n                src: y.giftproductimgsrc,\n                alt: \"product image\"\n            })), k({\n                alignv: \"middle\",\n                height: 79\n            }, n.DOM.p({\n                className: \"mvs\"\n            }, m({\n                className: \"fwb\",\n                rel: \"async-post\",\n                ajaxify: w,\n                href: {\n                    url: \"#\"\n                }\n            }, y.giftproductname)), n.DOM.p({\n                className: \"mvs fcg\"\n            }, y.giftproductpricerange), n.DOM.p({\n                className: \"mvs\"\n            }, m({\n                rel: \"async-post\",\n                ajaxify: w,\n                href: {\n                    url: \"#\"\n                }\n            }, \"Give This Gift\"), \" \\u00b7 \", m({\n                rel: \"async-post\",\n                ajaxify: this._getURI().toString(),\n                href: {\n                    url: \"#\"\n                }\n            }, \"See All Gifts\")))))));\n        },\n        _renderGiftLink: function(w, x) {\n            return (q(null, m({\n                className: \"UFIGiftIcon\",\n                tabIndex: \"-1\",\n                href: {\n                    url: \"#\"\n                },\n                rel: \"async-post\",\n                ajaxify: w\n            }, o({\n                src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n                alt: \"invite\"\n            })), m({\n                rel: \"async-post\",\n                href: {\n                    url: \"#\"\n                },\n                ajaxify: w\n            }, u._(\"Surprise {name} with a gift\", {\n                JSBNG__name: x.firstName\n            }))));\n        },\n        _log: function() {\n            var w = this.props.giftdata, x = {\n                opportunity_id: this.props.contextArgs.ftentidentifier,\n                sender_id: this.props.sender.id,\n                recipient_id: this.props.recipient.id,\n                link_description: \"UFIGiftSentence\",\n                product_id: ((w ? w.giftproductid : null)),\n                custom: {\n                    gift_occasion: this.props.contextArgs.giftoccasion,\n                    ftentidentifier: this.props.contextArgs.ftentidentifier\n                }\n            };\n            i.send([x,], this._entry_point);\n        },\n        _getURI: function(w) {\n            return r(\"/ajax/gifts/send\").addQueryData({\n                gift_occasion: this.props.contextArgs.giftoccasion,\n                recipient_id: this.props.recipient.id,\n                entry_point: this._entry_point,\n                product_id: w\n            });\n        },\n        _requestClose: function() {\n            var w = r(\"/ajax/gifts/moments/close/\");\n            new g().setMethod(\"POST\").setReadOnly(false).setURI(w).setData({\n                action: \"hide\",\n                data: JSON.stringify({\n                    type: \"detected_moment\",\n                    friend_id: this.props.recipient.id,\n                    ftentidentifier: this.props.contextArgs.ftentidentifier\n                })\n            }).send();\n        }\n    });\n    e.exports = v;\n});\n__d(\"UFILikeSentenceText.react\", [\"HovercardLinkInterpolator\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"TextWithEntities.react\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"HovercardLinkInterpolator\"), h = b(\"ProfileBrowserLink\"), i = b(\"ProfileBrowserTypes\"), j = b(\"React\"), k = b(\"TextWithEntities.react\"), l = b(\"URI\");\n    function m(p, q, r, s) {\n        if (((s.count != null))) {\n            var t = i.LIKES, u = {\n                id: p.targetfbid\n            };\n            return (j.DOM.a({\n                href: h.constructPageURI(t, u).toString(),\n                target: \"_blank\"\n            }, r));\n        }\n         else return g(r, s, \"_blank\", null, \"ufi\")\n    ;\n    };\n;\n    function n(p, q, r, s) {\n        if (((s.count != null))) {\n            var t = i.LIKES, u = {\n                id: p.targetfbid\n            }, v = [];\n            for (var w = 0; ((w < q.length)); w++) {\n                if (!q[w].count) {\n                    v.push(q[w].entities[0].id);\n                }\n            ;\n            ;\n            };\n        ;\n            var x = new l(\"/ajax/like/tooltip.php\").setQueryData({\n                comment_fbid: p.targetfbid,\n                comment_from: p.actorforpost,\n                seen_user_fbids: ((v.length ? v : true))\n            });\n            return (j.DOM.a({\n                rel: \"dialog\",\n                ajaxify: h.constructDialogURI(t, u).toString(),\n                href: h.constructPageURI(t, u).toString(),\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"data-tooltip-uri\": x.toString()\n            }, r));\n        }\n         else return g(r, s, null, null, \"ufi\")\n    ;\n    };\n;\n    var o = j.createClass({\n        displayName: \"UFILikeSentenceText\",\n        render: function() {\n            var p = this.props.feedback, q = this.props.likeSentenceData, r;\n            if (this.props.contextArgs.embedded) {\n                r = m;\n            }\n             else r = n;\n        ;\n        ;\n            r = r.bind(null, p, q.ranges);\n            return (k({\n                interpolator: r,\n                ranges: q.ranges,\n                aggregatedRanges: q.aggregatedranges,\n                text: q.text\n            }));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFILikeSentence.react\", [\"Bootloader\",\"LeftRight.react\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"UFILikeSentenceText.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"LeftRight.react\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"UFIClassNames\"), m = b(\"UFIImageBlock.react\"), n = b(\"UFILikeSentenceText.react\"), o = b(\"URI\"), p = b(\"cx\"), q = b(\"joinClasses\"), r = b(\"tx\"), s = k.createClass({\n        displayName: \"UFILikeSentence\",\n        getInitialState: function() {\n            return {\n                selectorModule: null,\n                bootloadedSelectorModule: false\n            };\n        },\n        componentWillMount: function() {\n            this._bootloadSelectorModule(this.props);\n        },\n        componentWillReceiveProps: function(t) {\n            this._bootloadSelectorModule(t);\n        },\n        _bootloadSelectorModule: function(t) {\n            if (((t.showOrderingModeSelector && !this.state.bootloadedSelectorModule))) {\n                var u = function(v) {\n                    this.setState({\n                        selectorModule: v\n                    });\n                }.bind(this);\n                if (t.contextArgs.entstream) {\n                    g.loadModules([\"UFIEntStreamOrderingModeSelector.react\",], u);\n                }\n                 else g.loadModules([\"UFIOrderingModeSelector.react\",], u);\n            ;\n            ;\n                this.setState({\n                    bootloadedSelectorModule: true\n                });\n            }\n        ;\n        ;\n        },\n        render: function() {\n            var t = this.props.feedback, u = t.likesentences.current, v = this.props.contextArgs.entstream, w = q(l.ROW, ((t.likesentences.isunseen ? l.UNSEEN_ITEM : \"\")), (((((\"UFILikeSentence\") + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), x = null, y = null;\n            if (u.text) {\n                y = k.DOM.div({\n                    className: \"UFILikeSentenceText\"\n                }, n({\n                    contextArgs: this.props.contextArgs,\n                    feedback: t,\n                    likeSentenceData: u\n                }));\n            }\n        ;\n        ;\n            if (((y && !v))) {\n                x = k.DOM.i({\n                    className: \"UFILikeIcon\"\n                });\n                if (((t.viewercanlike && !t.hasviewerliked))) {\n                    x = k.DOM.a({\n                        className: \"UFILikeThumb\",\n                        href: \"#\",\n                        tabIndex: \"-1\",\n                        title: \"Like this\",\n                        onClick: this.props.onTargetLikeToggle\n                    }, x);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var z = y, aa = null;\n            if (((((t.seencount > 0)) && !v))) {\n                var ba = j.GROUP_MESSAGE_VIEWERS, ca = {\n                    id: t.targetfbid\n                }, da = i.constructDialogURI(ba, ca), ea = i.constructPageURI(ba, ca), fa = new o(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n                    ft_ent_identifier: t.entidentifier,\n                    displayed_count: t.seencount\n                }), ga;\n                if (t.seenbyall) {\n                    ga = \"Seen by everyone\";\n                }\n                 else ga = ((((t.seencount == 1)) ? \"Seen by 1\" : r._(\"Seen by {count}\", {\n                    count: t.seencount\n                })));\n            ;\n            ;\n                aa = k.DOM.a({\n                    rel: \"dialog\",\n                    ajaxify: da.toString(),\n                    href: ea.toString(),\n                    tabindex: \"-1\",\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"left\",\n                    \"data-tooltip-uri\": fa.toString(),\n                    className: (((\"UFISeenCount\") + ((!!u.text ? ((\" \" + \"UFISeenCountRight\")) : \"\"))))\n                }, k.DOM.span({\n                    className: \"UFISeenCountIcon\"\n                }), ga);\n            }\n             else if (((this.props.showOrderingModeSelector && this.state.selectorModule))) {\n                var ha = this.state.selectorModule;\n                aa = ha({\n                    currentOrderingMode: this.props.orderingMode,\n                    entstream: v,\n                    orderingmodes: t.orderingmodes,\n                    onOrderChanged: this.props.onOrderingModeChange\n                });\n                if (!z) {\n                    z = k.DOM.div(null);\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            var ia = null;\n            if (((x && y))) {\n                ia = m(null, x, y, aa);\n            }\n             else if (z) {\n                ia = h(null, z, aa);\n            }\n             else ia = aa;\n            \n        ;\n        ;\n            return (k.DOM.li({\n                className: w\n            }, ia));\n        }\n    });\n    e.exports = s;\n});\n__d(\"UFIPager.react\", [\"LeftRight.react\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = h.createClass({\n        displayName: \"UFIPager\",\n        onPagerClick: function(n) {\n            ((((!this.props.isLoading && this.props.onPagerClick)) && this.props.onPagerClick()));\n            n.nativeEvent.prevent();\n        },\n        render: function() {\n            var n = this.onPagerClick, o = ((this.props.isLoading ? \"ufiPagerLoading\" : \"\")), p = l(i.ROW, ((this.props.isUnseen ? i.UNSEEN_ITEM : \"\")), (((((((((\"UFIPagerRow\") + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), q = h.DOM.a({\n                className: \"UFIPagerLink\",\n                onClick: n,\n                href: \"#\",\n                role: \"button\"\n            }, h.DOM.span({\n                className: o\n            }, this.props.pagerLabel)), r = (((\"fcg\") + ((\" \" + \"UFIPagerCount\")))), s = h.DOM.span({\n                className: r\n            }, this.props.countSentence), t;\n            if (this.props.contextArgs.entstream) {\n                t = (g({\n                    direction: g.DIRECTION.right\n                }, q, s));\n            }\n             else t = (j(null, h.DOM.a({\n                className: \"UFIPagerIcon\",\n                onClick: n,\n                href: \"#\",\n                role: \"button\"\n            }), q, s));\n        ;\n        ;\n            return (h.DOM.li({\n                className: p,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, t));\n        }\n    });\n    e.exports = m;\n});\n__d(\"UFIReplySocialSentence.react\", [\"LiveTimer\",\"React\",\"Timestamp.react\",\"UFIClassNames\",\"UFIConstants\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"LiveTimer\"), h = b(\"React\"), i = b(\"Timestamp.react\"), j = b(\"UFIClassNames\"), k = b(\"UFIConstants\"), l = b(\"UFIImageBlock.react\"), m = b(\"cx\"), n = b(\"joinClasses\"), o = b(\"tx\"), p = \" \\u00b7 \", q = 43200, r = h.createClass({\n        displayName: \"UFIReplySocialSentence\",\n        render: function() {\n            var s = ((this.props.isLoading ? \"UFIReplySocialSentenceLoading\" : \"\")), t = n(j.ROW, (((((\"UFIReplySocialSentenceRow\") + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), u, v;\n            if (this.props.isExpanded) {\n                u = ((((this.props.replies > 1)) ? o._(\"Hide {count} Replies\", {\n                    count: this.props.replies\n                }) : \"Hide 1 Reply\"));\n            }\n             else {\n                u = ((((this.props.replies > 1)) ? o._(\"{count} Replies\", {\n                    count: this.props.replies\n                }) : \"1 Reply\"));\n                if (this.props.timestamp) {\n                    var w = ((((g.getApproximateServerTime() / 1000)) - this.props.timestamp.time));\n                    if (((((w < q)) || ((this.props.orderingMode == k.UFICommentOrderingMode.RECENT_ACTIVITY))))) {\n                        v = h.DOM.span({\n                            className: \"fcg\"\n                        }, p, i({\n                            time: this.props.timestamp.time,\n                            text: this.props.timestamp.text,\n                            verbose: this.props.timestamp.verbose\n                        }));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var x = Object.keys(this.props.authors), y = ((x.length && !this.props.isExpanded)), z, aa;\n            if (y) {\n                var ba = this.props.authors[x[0]];\n                z = h.DOM.img({\n                    alt: \"\",\n                    src: ba.thumbSrc,\n                    className: j.ACTOR_IMAGE\n                });\n                aa = [o._(\"{author} replied\", {\n                    author: ba.JSBNG__name\n                }),p,u,];\n            }\n             else {\n                z = h.DOM.i({\n                    className: ((((!this.props.isExpanded ? \"UFIPagerIcon\" : \"\")) + ((this.props.isExpanded ? ((\" \" + \"UFICollapseIcon\")) : \"\"))))\n                });\n                aa = u;\n            }\n        ;\n        ;\n            return (h.DOM.li({\n                className: t,\n                \"data-ft\": this.props[\"data-ft\"]\n            }, h.DOM.a({\n                className: \"UFICommentLink\",\n                onClick: this.props.onClick,\n                href: \"#\",\n                role: \"button\"\n            }, l(null, h.DOM.div({\n                className: ((y ? \"UFIReplyActorPhotoWrapper\" : \"\"))\n            }, z), h.DOM.span({\n                className: s\n            }, h.DOM.span({\n                className: \"UFIReplySocialSentenceLinkText\"\n            }, aa), v)))));\n        }\n    });\n    e.exports = r;\n});\n__d(\"UFIShareRow.react\", [\"NumberFormat\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"joinClasses\"), n = b(\"tx\"), o = h.createClass({\n        displayName: \"UFIShareRow\",\n        render: function() {\n            var p = new k(\"/ajax/shares/view\").setQueryData({\n                target_fbid: this.props.targetID\n            }), q = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n                id: this.props.targetID\n            }), r;\n            if (((this.props.shareCount > 1))) {\n                var s = g.formatIntegerWithDelimiter(this.props.shareCount, ((this.props.contextArgs.numberdelimiter || \",\")));\n                r = n._(\"{count} shares\", {\n                    count: s\n                });\n            }\n             else r = \"1 share\";\n        ;\n        ;\n            var t = m(i.ROW, ((((this.props.isFirstComponent ? \"UFIFirstComponent\" : \"\")) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\")))));\n            return (h.DOM.li({\n                className: t\n            }, j(null, h.DOM.a({\n                className: \"UFIShareIcon\",\n                rel: \"dialog\",\n                ajaxify: p.toString(),\n                href: q.toString()\n            }), h.DOM.a({\n                className: \"UFIShareLink\",\n                rel: \"dialog\",\n                ajaxify: p.toString(),\n                href: q.toString()\n            }, r))));\n        }\n    });\n    e.exports = o;\n});\n__d(\"UFISpamPlaceholder.react\", [\"React\",\"UFIClassNames\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"tx\"), k = g.createClass({\n        displayName: \"UFISpamPlaceholder\",\n        render: function() {\n            var l = (((\"UFISpamCommentWrapper\") + ((this.props.isLoading ? ((\" \" + \"UFISpamCommentLoading\")) : \"\"))));\n            return (g.DOM.li({\n                className: h.ROW\n            }, g.DOM.a({\n                href: \"#\",\n                role: \"button\",\n                className: \"UFISpamCommentLink\",\n                onClick: this.props.onClick\n            }, g.DOM.span({\n                \"data-hover\": \"tooltip\",\n                \"data-tooltip-alignh\": \"center\",\n                \"aria-label\": j._(\"{count} hidden\", {\n                    count: this.props.numHidden\n                }),\n                className: l\n            }, g.DOM.i({\n                className: \"placeholderIcon\"\n            })))));\n        }\n    });\n    e.exports = k;\n});\n__d(\"UFI.react\", [\"NumberFormat\",\"React\",\"LegacyScrollableArea.react\",\"TrackingNodes\",\"UFIAddCommentController\",\"UFIAddCommentLink.react\",\"UFIComment.react\",\"UFIConstants\",\"UFIContainer.react\",\"UFIGiftSentence.react\",\"UFIInstanceState\",\"UFILikeSentence.react\",\"UFIPager.react\",\"UFIReplySocialSentence.react\",\"UFIShareRow.react\",\"UFISpamPlaceholder.react\",\"copyProperties\",\"isEmpty\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"LegacyScrollableArea.react\"), j = b(\"TrackingNodes\"), k = b(\"UFIAddCommentController\"), l = b(\"UFIAddCommentLink.react\"), m = b(\"UFIComment.react\"), n = b(\"UFIConstants\"), o = b(\"UFIContainer.react\"), p = b(\"UFIGiftSentence.react\"), q = b(\"UFIInstanceState\"), r = b(\"UFILikeSentence.react\"), s = b(\"UFIPager.react\"), t = b(\"UFIReplySocialSentence.react\"), u = b(\"UFIShareRow.react\"), v = b(\"UFISpamPlaceholder.react\"), w = b(\"copyProperties\"), x = b(\"isEmpty\"), y = b(\"tx\"), z = h.createClass({\n        displayName: \"UFI\",\n        getInitialState: function() {\n            return {\n                requestRanges: w({\n                }, this.props.availableRanges),\n                instanceShowRepliesMap: {\n                },\n                instanceShowReplySocialSentenceMap: {\n                },\n                loadingSpamIDs: {\n                },\n                isActiveLoading: false,\n                hasPagedToplevel: false\n            };\n        },\n        componentWillReceiveProps: function(aa) {\n            if (this.state.isActiveLoading) {\n                var ba = this.props.availableRanges[this.props.id], ca = aa.availableRanges[this.props.id];\n                if (((((ba.offset != ca.offset)) || ((ba.length != ca.length))))) {\n                    var da = ((((ca.offset < ba.offset)) ? 0 : ba.length));\n                    if (((da < aa.availableComments.length))) {\n                        var ea = aa.availableComments[da].ufiinstanceid;\n                        q.updateState(ea, \"autofocus\", true);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                this.setState({\n                    isActiveLoading: false\n                });\n            }\n        ;\n        ;\n            if (((aa.orderingMode != this.props.orderingMode))) {\n                this.setState({\n                    requestRanges: w({\n                    }, aa.availableRanges)\n                });\n            }\n        ;\n        ;\n        },\n        render: function() {\n            var aa = this.props, ba = aa.feedback, ca = aa.contextArgs, da = ((aa.source != n.UFIFeedbackSourceType.ADS)), ea = ((ba.orderingmodes && ((aa.commentCounts[aa.id] >= n.minCommentsForOrderingModeSelector)))), fa = ((((((!x(ba.likesentences.current) || ((((ba.seencount > 0)) && !ca.entstream)))) || ea)) && da)), ga = null;\n            if (fa) {\n                ga = r({\n                    contextArgs: ca,\n                    feedback: ba,\n                    onTargetLikeToggle: aa.onTargetLikeToggle,\n                    onOrderingModeChange: aa.onOrderingModeChange,\n                    orderingMode: aa.orderingMode,\n                    showOrderingModeSelector: ea\n                });\n            }\n        ;\n        ;\n            var ha = null;\n            if (((aa.feedback.hasviewerliked && this._shouldShowGiftSentence()))) {\n                ha = p({\n                    contextArgs: ca,\n                    recipient: aa.giftRecipient,\n                    sender: aa.authorProfiles[ba.actorforpost],\n                    giftdata: aa.feedback.giftdata\n                });\n            }\n        ;\n        ;\n            var ia = ((((aa.availableComments && aa.availableComments.length)) && da)), ja = null;\n            if (ia) {\n                ja = this.renderCommentMap(aa.availableComments, aa.availableRanges[aa.id].offset);\n            }\n        ;\n        ;\n            var ka = null, la = ba.cancomment, ma = ((((la && ca.showaddcomment)) && ba.actorforpost));\n            if (ma) {\n                var na = new k(null, aa.id, null, ca), oa = aa.authorProfiles[ba.actorforpost];\n                ka = na.renderAddComment(oa, ba.mentionsdatasource, ba.showsendonentertip, \"toplevelcomposer\", null, ba.allowphotoattachments, ba.subtitle);\n            }\n        ;\n        ;\n            var pa = null, qa = ((((ca.showshares && ba.sharecount)) && da));\n            if (((qa && !ca.entstream))) {\n                pa = u({\n                    targetID: ba.targetfbid,\n                    shareCount: ba.sharecount,\n                    contextArgs: ca\n                });\n            }\n        ;\n        ;\n            var ra = ((((((fa || qa)) || ia)) || la)), sa = this.renderPagers();\n            this.applyToUFIComponents([sa.topPager,], ja, [sa.bottomPager,], {\n                isFirstCommentComponent: true\n            }, {\n                isLastCommentComponent: true\n            });\n            var ta = ((ba.commentboxhoisted ? ka : null)), ua = ((ba.commentboxhoisted ? null : ka)), va = null;\n            if (((((ma && ba.hasaddcommentlink)) && this.state.hasPagedToplevel))) {\n                va = l({\n                    onClick: this.onComment\n                });\n            }\n        ;\n        ;\n            this.applyToUFIComponents([ga,pa,ta,sa.topPager,], ja, [sa.bottomPager,ua,va,], {\n                isFirstComponent: true\n            }, {\n                isLastComponent: true\n            });\n            var wa = [sa.topPager,ja,sa.bottomPager,];\n            if (((ca.scrollcomments && ca.scrollwidth))) {\n                wa = h.DOM.li(null, i({\n                    width: ca.scrollwidth\n                }, h.DOM.ul(null, wa)));\n            }\n        ;\n        ;\n            return (o({\n                hasNub: ((ca.shownub && ra))\n            }, ga, ha, pa, ta, wa, ua, va));\n        },\n        applyToUFIComponents: function(aa, ba, ca, da, ea) {\n            var fa = Object.keys(((ba || {\n            }))).map(function(ha) {\n                return ba[ha];\n            }), ga = [].concat(aa, fa, ca);\n            this._applyToFirstComponent(ga, da);\n            ga.reverse();\n            this._applyToFirstComponent(ga, ea);\n        },\n        _applyToFirstComponent: function(aa, ba) {\n            for (var ca = 0; ((ca < ((aa || [])).length)); ca++) {\n                if (aa[ca]) {\n                    w(aa[ca].props, ba);\n                    return;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        renderCommentMap: function(aa, ba) {\n            var ca = this.props, da = {\n            }, ea = aa.length;\n            if (!ea) {\n                return da;\n            }\n        ;\n        ;\n            var fa = aa[0].parentcommentid, ga = [], ha = function() {\n                if (((ga.length > 0))) {\n                    var qa = function(ra, sa) {\n                        this.state.loadingSpamIDs[ra[0]] = true;\n                        this.forceUpdate();\n                        ca.onSpamFetch(ra, sa);\n                    }.bind(this, ga, fa);\n                    da[((\"spam\" + ga[0]))] = v({\n                        onClick: qa,\n                        numHidden: ga.length,\n                        isLoading: !!this.state.loadingSpamIDs[ga[0]]\n                    });\n                    ga = [];\n                }\n            ;\n            ;\n            }.bind(this), ia = ca.instanceid, ja = q.getKeyForInstance(ia, \"editcommentid\"), ka = !!aa[0].parentcommentid, la = false;\n            for (var ma = 0; ((ma < ea)); ma++) {\n                if (((aa[ma].JSBNG__status == n.UFIStatus.SPAM))) {\n                    ga.push(aa[ma].id);\n                }\n                 else {\n                    ha();\n                    var na = Math.max(((((ca.loggingOffset - ma)) - ba)), 0), oa = aa[ma], pa;\n                    if (((oa.id == ja))) {\n                        pa = this.renderEditCommentBox(oa);\n                    }\n                     else {\n                        pa = this.renderComment(oa, na);\n                        pa.props.isFirst = ((ma === 0));\n                        pa.props.isLast = ((ma === ((ea - 1))));\n                        if (!ka) {\n                            pa.props.showReplyLink = true;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    da[((\"comment\" + oa.id))] = pa;\n                    if (((((((((ca.feedback.actorforpost === oa.author)) && !la)) && !ca.feedback.hasviewerliked)) && this._shouldShowGiftSentence()))) {\n                        da[((\"gift\" + oa.id))] = p({\n                            contextArgs: ca.contextArgs,\n                            recipient: ca.giftRecipient,\n                            sender: ca.authorProfiles[ca.feedback.actorforpost],\n                            giftdata: ca.feedback.giftdata\n                        });\n                        la = true;\n                    }\n                ;\n                ;\n                    if (((oa.JSBNG__status !== n.UFIStatus.DELETED))) {\n                        da[((\"replies\" + oa.id))] = this.renderReplyContainer(oa);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            ha();\n            return da;\n        },\n        _shouldShowGiftSentence: function() {\n            var aa = this.props;\n            return ((aa.contextArgs.giftoccasion && !aa.contextArgs.entstream));\n        },\n        renderReplyContainer: function(aa) {\n            var ba = this.props, ca = {\n            };\n            for (var da = 0; ((da < ((aa.replyauthors || [])).length)); da++) {\n                var ea = ba.authorProfiles[aa.replyauthors[da]];\n                if (ea) {\n                    ca[ea.id] = ea;\n                }\n            ;\n            ;\n            };\n        ;\n            var fa = ((((ba.repliesMap && ba.repliesMap[aa.id])) && this._shouldShowCommentReplies(aa.id))), ga, ha = Math.max(((aa.replycount - aa.spamreplycount)), 0);\n            if (((ha && this._shouldShowReplySocialSentence(aa.id)))) {\n                var ia = ((this._shouldShowCommentReplies(aa.id) && ((this.isLoadingPrev(aa.id) || this.isLoadingNext(aa.id)))));\n                ga = t({\n                    authors: ca,\n                    replies: ha,\n                    timestamp: aa.recentreplytimestamp,\n                    onClick: this.onToggleReplies.bind(this, aa),\n                    isLoading: ia,\n                    isExpanded: fa,\n                    orderingMode: this.props.orderingMode\n                });\n            }\n        ;\n        ;\n            var ja, ka, la, ma;\n            if (fa) {\n                var na = this.renderPagers(aa.id);\n                ja = na.topPager;\n                la = na.bottomPager;\n                ka = this.renderCommentMap(ba.repliesMap[aa.id], ba.availableRanges[aa.id].offset);\n                var oa = Object.keys(ka);\n                for (var pa = 0; ((pa < oa.length)); pa++) {\n                    var qa = ka[oa[pa]];\n                    if (qa) {\n                        qa.props.hasPartialBorder = ((pa !== 0));\n                    }\n                ;\n                ;\n                };\n            ;\n                if (ba.feedback.cancomment) {\n                    var ra = false, sa = Object.keys(ka);\n                    for (var da = ((sa.length - 1)); ((da >= 0)); da--) {\n                        var ta = sa[da];\n                        if (((ta && ka[ta]))) {\n                            ra = ka[ta].props.isAuthorReply;\n                            break;\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                    ma = this.renderReplyComposer(aa, !ra);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var ua;\n            if (((((((((ga || ja)) || ka)) || la)) || ma))) {\n                this.applyToUFIComponents([ga,ja,], ka, [la,ma,], {\n                    isFirstComponent: true\n                }, {\n                    isLastComponent: true\n                });\n                var va = ((aa.JSBNG__status === n.UFIStatus.LIVE_DELETED));\n                ua = o({\n                    isParentLiveDeleted: va,\n                    isReplyList: true\n                }, ga, ja, ka, la, ma);\n            }\n        ;\n        ;\n            return ua;\n        },\n        renderReplyComposer: function(aa, ba) {\n            var ca = this.props;\n            return (new k(null, ca.id, aa.id, ca.contextArgs)).renderAddComment(ca.authorProfiles[ca.feedback.actorforpost], ca.feedback.mentionsdatasource, false, ((\"replycomposer-\" + aa.id)), ba, ca.feedback.allowphotoattachments);\n        },\n        renderEditCommentBox: function(aa) {\n            var ba = new k(null, this.props.id, null, {\n            }), ca = ba.renderEditComment(this.props.authorProfiles[this.props.feedback.actorforpost], aa.id, this.props.feedback.mentionsdatasource, this.props.onEditAttempt.bind(null, aa), this.props.onCancelEdit, this.props.feedback.allowphotoattachments);\n            return ca;\n        },\n        _shouldShowCommentReplies: function(aa) {\n            if (((aa in this.state.instanceShowRepliesMap))) {\n                return this.state.instanceShowRepliesMap[aa];\n            }\n             else if (((aa in this.props.showRepliesMap))) {\n                return this.props.showRepliesMap[aa];\n            }\n            \n        ;\n        ;\n            return false;\n        },\n        _shouldShowReplySocialSentence: function(aa) {\n            if (((aa in this.state.instanceShowReplySocialSentenceMap))) {\n                return this.state.instanceShowReplySocialSentenceMap[aa];\n            }\n             else if (((aa in this.props.showReplySocialSentenceMap))) {\n                return this.props.showReplySocialSentenceMap[aa];\n            }\n            \n        ;\n        ;\n            return false;\n        },\n        renderComment: function(aa, ba) {\n            var ca = this.props, da = ca.feedback, ea = ((da.actorforpost === aa.author)), fa = q.getKeyForInstance(this.props.instanceid, \"locallycomposed\"), ga = ((aa.islocal || ((fa && fa[aa.id])))), ha = ((da.showremovemenu || ((da.viewerid === aa.author)))), ia = ((((da.canremoveall && da.isownerpage)) && !ea)), ja = ((ca.source != n.UFIFeedbackSourceType.INTERN)), ka = j.getTrackingInfo(j.types.COMMENT, ba), la = !!aa.parentcommentid, ma = this._shouldShowCommentReplies(aa.id), na = !!aa.isfeatured;\n            return (m({\n                comment: aa,\n                authorProfiles: this.props.authorProfiles,\n                viewerIsAuthor: ea,\n                feedback: da,\n                \"data-ft\": ka,\n                contextArgs: this.props.contextArgs,\n                hideAsSpamForPageAdmin: ia,\n                isLocallyComposed: ga,\n                isReply: la,\n                isFeatured: na,\n                showPermalink: ja,\n                showRemoveReportMenu: ha,\n                showReplies: ma,\n                onCommentLikeToggle: ca.onCommentLikeToggle.bind(null, aa),\n                onCommentReply: this.onCommentReply.bind(this, aa),\n                onCommentTranslate: ca.onCommentTranslate.bind(null, aa),\n                onEdit: ca.onCommentEdit.bind(null, aa),\n                onHideAsSpam: ca.onCommentHideAsSpam.bind(null, aa),\n                onInlineBan: ca.onCommentInlineBan.bind(null, aa),\n                onMarkAsNotSpam: ca.onCommentMarkAsNotSpam.bind(null, aa),\n                onOneClickRemove: ca.onCommentOneClickRemove.bind(null, aa),\n                onPreviewRemove: ca.onPreviewRemove.bind(null, aa),\n                onRemove: ca.onCommentRemove.bind(null, aa),\n                onRetrySubmit: ca.onRetrySubmit.bind(null, aa),\n                onUndoInlineBan: ca.onCommentUndoInlineBan.bind(null, aa),\n                onUndoOneClickRemove: ca.onCommentUndoOneClickRemove.bind(null, aa)\n            }));\n        },\n        _updateRepliesState: function(aa, ba, ca) {\n            var da = this.state.instanceShowRepliesMap;\n            da[aa] = ba;\n            var ea = this.state.instanceShowReplySocialSentenceMap;\n            ea[aa] = ca;\n            this.setState({\n                instanceShowRepliesMap: da,\n                instanceShowReplySocialSentenceMap: ea\n            });\n        },\n        onToggleReplies: function(aa) {\n            var ba = !this._shouldShowCommentReplies(aa.id), ca = ((this._shouldShowReplySocialSentence(aa.id) && !((ba && ((aa.replycount <= this.props.replySocialSentenceMaxReplies))))));\n            this._updateRepliesState(aa.id, ba, ca);\n            var da = ((this.state.requestRanges[aa.id].length - this.props.deletedCounts[aa.id]));\n            if (((ba && ((da === 0))))) {\n                var ea = this.props.commentCounts[aa.id], fa = Math.min(ea, this.props.pageSize);\n                this.onPage(aa.id, {\n                    offset: ((ea - fa)),\n                    length: fa\n                });\n            }\n        ;\n        ;\n        },\n        onPage: function(aa, ba) {\n            var ca = this.state.requestRanges;\n            ca[aa] = ba;\n            var da = ((this.state.hasPagedToplevel || ((aa === this.props.id))));\n            this.setState({\n                requestRanges: ca,\n                isActiveLoading: true,\n                hasPagedToplevel: da\n            });\n            this.props.onChangeRange(aa, ba);\n        },\n        isLoadingPrev: function(aa) {\n            var ba = this.props;\n            aa = ((aa || ba.id));\n            if (!this.state.requestRanges[aa]) {\n                this.state.requestRanges[aa] = ba.availableRanges[aa];\n            }\n        ;\n        ;\n            var ca = this.state.requestRanges[aa].offset, da = ba.availableRanges[aa].offset;\n            return ((ca < da));\n        },\n        isLoadingNext: function(aa) {\n            var ba = this.props;\n            aa = ((aa || ba.id));\n            if (!this.state.requestRanges[aa]) {\n                this.state.requestRanges[aa] = ba.availableRanges[aa];\n            }\n        ;\n        ;\n            var ca = this.state.requestRanges[aa].offset, da = this.state.requestRanges[aa].length, ea = ba.availableRanges[aa].offset, fa = ba.availableRanges[aa].length;\n            return ((((ca + da)) > ((ea + fa))));\n        },\n        renderPagers: function(aa) {\n            var ba = this.props;\n            aa = ((aa || ba.id));\n            var ca = ba.availableRanges[aa].offset, da = ba.availableRanges[aa].length, ea = ba.deletedCounts[aa], fa = ba.commentCounts[aa], ga = ((fa - ea)), ha = ((da - ea)), ia = ((ba.contextArgs.numberdelimiter || \",\")), ja = ((aa !== ba.id)), ka = {\n                topPager: null,\n                bottomPager: null\n            };\n            if (((ba.source == n.UFIFeedbackSourceType.ADS))) {\n                return ka;\n            }\n        ;\n        ;\n            var la = this.isLoadingPrev(aa), ma = this.isLoadingNext(aa);\n            if (((da == fa))) {\n                return ka;\n            }\n        ;\n        ;\n            var na = ((((ca + da)) == fa));\n            if (((((((fa < ba.pageSize)) && na)) || ((ha === 0))))) {\n                var oa = Math.min(fa, ba.pageSize), pa = this.onPage.bind(this, aa, {\n                    offset: ((fa - oa)),\n                    length: oa\n                }), qa, ra;\n                if (((ha === 0))) {\n                    if (((ga == 1))) {\n                        qa = ((ja ? \"View 1 reply\" : \"View 1 comment\"));\n                    }\n                     else {\n                        ra = g.formatIntegerWithDelimiter(ga, ia);\n                        qa = ((ja ? y._(\"View all {count} replies\", {\n                            count: ra\n                        }) : y._(\"View all {count} comments\", {\n                            count: ra\n                        })));\n                    }\n                ;\n                ;\n                }\n                 else if (((((ga - ha)) == 1))) {\n                    qa = ((ja ? \"View 1 more reply\" : \"View 1 more comment\"));\n                }\n                 else {\n                    ra = g.formatIntegerWithDelimiter(((ga - ha)), ia);\n                    qa = ((ja ? y._(\"View {count} more replies\", {\n                        count: ra\n                    }) : y._(\"View {count} more comments\", {\n                        count: ra\n                    })));\n                }\n                \n            ;\n            ;\n                var sa = j.getTrackingInfo(j.types.VIEW_ALL_COMMENTS), ta = s({\n                    contextArgs: ba.contextArgs,\n                    isUnseen: ba.feedback.hasunseencollapsed,\n                    isLoading: la,\n                    pagerLabel: qa,\n                    onPagerClick: pa,\n                    \"data-ft\": sa\n                });\n                if (((ba.feedback.isranked && !ja))) {\n                    ka.bottomPager = ta;\n                }\n                 else ka.topPager = ta;\n            ;\n            ;\n                return ka;\n            }\n        ;\n        ;\n            if (((ca > 0))) {\n                var ua = Math.max(((ca - ba.pageSize)), 0), oa = ((((ca + da)) - ua)), va = this.onPage.bind(this, aa, {\n                    offset: ua,\n                    length: oa\n                }), wa = g.formatIntegerWithDelimiter(ha, ia), xa = g.formatIntegerWithDelimiter(ga, ia), ya = y._(\"{countshown} of {totalcount}\", {\n                    countshown: wa,\n                    totalcount: xa\n                });\n                if (((ba.feedback.isranked && !ja))) {\n                    ka.bottomPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: la,\n                        pagerLabel: \"View more comments\",\n                        onPagerClick: va,\n                        countSentence: ya\n                    });\n                }\n                 else {\n                    var za = ((ja ? \"View previous replies\" : \"View previous comments\"));\n                    ka.topPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: la,\n                        pagerLabel: za,\n                        onPagerClick: va,\n                        countSentence: ya\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((((ca + da)) < fa))) {\n                var ab = Math.min(((da + ba.pageSize)), ((fa - ca))), bb = this.onPage.bind(this, aa, {\n                    offset: ca,\n                    length: ab\n                });\n                if (((ba.feedback.isranked && !ja))) {\n                    ka.topPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: ma,\n                        pagerLabel: \"View previous comments\",\n                        onPagerClick: bb\n                    });\n                }\n                 else {\n                    var cb = ((ja ? \"View more replies\" : \"View more comments\"));\n                    ka.bottomPager = s({\n                        contextArgs: ba.contextArgs,\n                        isLoading: ma,\n                        pagerLabel: cb,\n                        onPagerClick: bb\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return ka;\n        },\n        onCommentReply: function(aa) {\n            var ba = ((aa.parentcommentid || aa.id));\n            if (!this._shouldShowCommentReplies(ba)) {\n                this.onToggleReplies(aa);\n            }\n        ;\n        ;\n            if (((this.refs && this.refs[((\"replycomposer-\" + ba))]))) {\n                this.refs[((\"replycomposer-\" + ba))].JSBNG__focus();\n            }\n        ;\n        ;\n        },\n        onComment: function() {\n            if (((this.refs && this.refs.toplevelcomposer))) {\n                this.refs.toplevelcomposer.JSBNG__focus();\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = z;\n});\n__d(\"UFIController\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"DOMQuery\",\"ImmutableObject\",\"LayerRemoveOnHide\",\"LiveTimer\",\"Parent\",\"React\",\"ReactMount\",\"ShortProfiles\",\"UFI.react\",\"UFIActionLinkController\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",\"URI\",\"copyProperties\",\"isEmpty\",\"tx\",\"UFICommentTemplates\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"ImmutableObject\"), m = b(\"LayerRemoveOnHide\"), n = b(\"LiveTimer\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"ReactMount\"), r = b(\"ShortProfiles\"), s = b(\"UFI.react\"), t = b(\"UFIActionLinkController\"), u = b(\"UFICentralUpdates\"), v = b(\"UFIComments\"), w = b(\"UFIConstants\"), x = b(\"UFIFeedbackTargets\"), y = b(\"UFIInstanceState\"), z = b(\"UFIUserActions\"), aa = b(\"URI\"), ba = b(\"copyProperties\"), ca = b(\"isEmpty\"), da = b(\"tx\"), ea = b(\"UFICommentTemplates\"), fa = function(ia, ja, ka, la) {\n        var ma = ((((ia.offset + ia.length)) === ja));\n        return {\n            offset: ia.offset,\n            length: ((((ma && ga(la))) ? ((ka - ia.offset)) : ia.length))\n        };\n    }, ga = function(ia) {\n        return ((((ia == w.UFIPayloadSourceType.USER_ACTION)) || ((ia == w.UFIPayloadSourceType.LIVE_SEND))));\n    };\n    function ha(ia, ja, ka) {\n        this.root = ia;\n        this.id = ja.ftentidentifier;\n        this.source = ja.source;\n        this._ufiInstanceID = ja.instanceid;\n        this._contextArgs = ja;\n        this._contextArgs.rootid = this.root.id;\n        this._verifiedCommentsExpanded = false;\n        var la = ka.feedbacktargets[0];\n        this.actionLink = new t(ia, this._contextArgs, la);\n        this.orderingMode = la.defaultcommentorderingmode;\n        var ma = ka.commentlists.comments[this.id][this.orderingMode];\n        this.replyRanges = {\n        };\n        this.repliesMap = {\n        };\n        this.showRepliesMap = {\n        };\n        this.showReplySocialSentenceMap = {\n        };\n        this.commentcounts = {\n        };\n        this.commentcounts[this.id] = v.getCommentCount(this.id);\n        var na = {\n        }, oa = ((la.orderingmodes || [{\n            value: this.orderingMode\n        },]));\n        oa.forEach(function(sa) {\n            na[sa.value] = ba({\n            }, ma.range);\n        });\n        this.ranges = na;\n        if (ka.commentlists.replies) {\n            for (var pa = 0; ((pa < ma.values.length)); pa++) {\n                var qa = ma.values[pa], ra = ka.commentlists.replies[qa];\n                if (ra) {\n                    this.commentcounts[qa] = v.getCommentCount(qa);\n                    this.replyRanges[qa] = ba({\n                    }, ra.range);\n                }\n            ;\n            ;\n            };\n        }\n    ;\n    ;\n        this._loggingOffset = null;\n        this._ufi = null;\n        this.ufiCentralUpdatesSubscriptions = [u.subscribe(\"feedback-updated\", function(sa, ta) {\n            var ua = ta.updates, va = ta.payloadSource;\n            if (((((va != w.UFIPayloadSourceType.COLLAPSED_UFI)) && ((this.id in ua))))) {\n                this.fetchAndUpdate(this.render.bind(this), va);\n            }\n        ;\n        ;\n        }.bind(this)),u.subscribe(\"feedback-id-changed\", function(sa, ta) {\n            var ua = ta.updates;\n            if (((this.id in ua))) {\n                this.id = ua[this.id];\n            }\n        ;\n        ;\n        }.bind(this)),u.subscribe(\"instance-updated\", function(sa, ta) {\n            var ua = ta.updates;\n            if (((this._ufiInstanceID in ua))) {\n                var va = ua[this._ufiInstanceID];\n                if (va.editcommentid) {\n                    this.render(ta.payloadSource);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }.bind(this)),u.subscribe(\"update-comment-lists\", function(sa, ta) {\n            if (((ta.commentlists && ta.commentlists.replies))) {\n                var ua = ta.commentlists.replies;\n                {\n                    var fin98keys = ((window.top.JSBNG_Replay.forInKeys)((ua))), fin98i = (0);\n                    var va;\n                    for (; (fin98i < fin98keys.length); (fin98i++)) {\n                        ((va) = (fin98keys[fin98i]));\n                        {\n                            if (((((((((this.id != va)) && ua[va])) && ((ua[va].ftentidentifier == this.id)))) && !this.replyRanges[va]))) {\n                                this.replyRanges[va] = ua[va].range;\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n        }.bind(this)),];\n        this.clearPageletSubscription = g.subscribe(\"pagelet/destroy\", this.onPageletDestroy.bind(this));\n        this.clearPageSubscription = g.subscribe(\"ufi/page_cleared\", this._onDestroy.bind(this));\n        u.handleUpdate(w.UFIPayloadSourceType.INITIAL_SERVER, ka);\n        if (this._contextArgs.viewas) {\n            this.viewasUFICleanSubscription = g.subscribe(\"pre_page_transition\", function(sa, ta) {\n                if (((this._contextArgs.viewas !== aa(ta.to).getQueryData(\"viewas\")))) {\n                    v.resetFeedbackTarget(this.id);\n                }\n            ;\n            ;\n            }.bind(this));\n        }\n    ;\n    ;\n        h.loadModules([\"ScrollAwareDOM\",], function(sa) {\n            q.scrollMonitor = sa.monitor;\n        });\n    };\n;\n    ba(ha.prototype, {\n        _getParentForm: function() {\n            if (!this._form) {\n                this._form = o.byTag(this.root, \"form\");\n            }\n        ;\n        ;\n            return this._form;\n        },\n        _onTargetLikeToggle: function(JSBNG__event) {\n            var ia = !this.feedback.hasviewerliked;\n            z.changeLike(this.id, ia, {\n                source: this.source,\n                target: JSBNG__event.target,\n                rootid: this._contextArgs.rootid\n            });\n            JSBNG__event.preventDefault();\n        },\n        _onCommentLikeToggle: function(ia, JSBNG__event) {\n            var ja = !ia.hasviewerliked;\n            z.changeCommentLike(ia.id, ja, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _onCommentEdit: function(ia) {\n            y.updateState(this._ufiInstanceID, \"isediting\", true);\n            y.updateState(this._ufiInstanceID, \"editcommentid\", ia.id);\n        },\n        _onEditAttempt: function(ia, ja, JSBNG__event) {\n            if (((!ja.visibleValue && !ja.attachedPhoto))) {\n                this._onCommentRemove(ia, JSBNG__event);\n            }\n             else z.editComment(ia.id, ja.visibleValue, ja.encodedValue, {\n                source: this._contextArgs.source,\n                target: JSBNG__event.target,\n                attachedPhoto: ja.attachedPhoto\n            });\n        ;\n        ;\n            y.updateStateField(this._ufiInstanceID, \"locallycomposed\", ia.id, true);\n            this._onEditReset();\n        },\n        _onEditReset: function() {\n            y.updateState(this._ufiInstanceID, \"isediting\", false);\n            y.updateState(this._ufiInstanceID, \"editcommentid\", null);\n        },\n        _onCommentRemove: function(ia, JSBNG__event) {\n            var ja = ea[\":fb:ufi:hide-dialog-template\"].build();\n            j.setContent(ja.getNode(\"body\"), \"Are you sure you want to delete this comment?\");\n            j.setContent(ja.getNode(\"title\"), \"Delete Comment\");\n            h.loadModules([\"DialogX\",], function(ka) {\n                var la = new ka({\n                    modal: true,\n                    width: 465,\n                    addedBehaviors: [m,]\n                }, ja.getRoot());\n                la.subscribe(\"JSBNG__confirm\", function() {\n                    z.removeComment(ia.id, {\n                        source: this.source,\n                        oneclick: false,\n                        target: JSBNG__event.target,\n                        timelinelogdata: this._contextArgs.timelinelogdata\n                    });\n                    la.hide();\n                }.bind(this));\n                la.show();\n            }.bind(this));\n        },\n        _onCommentOneClickRemove: function(ia, JSBNG__event) {\n            z.removeComment(ia.id, {\n                source: this.source,\n                oneclick: true,\n                target: JSBNG__event.target,\n                timelinelogdata: this._contextArgs.timelinelogdata\n            });\n        },\n        _onCommentUndoOneClickRemove: function(ia, JSBNG__event) {\n            var ja = ((((this.feedback.canremoveall && this.feedback.isownerpage)) && ((this.feedback.actorforpost !== this.authorProfiles[ia.author]))));\n            z.undoRemoveComment(ia.id, ja, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _onCommentHideAsSpam: function(ia, JSBNG__event) {\n            z.setHideAsSpam(ia.id, true, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _onCommentMarkAsNotSpam: function(ia, JSBNG__event) {\n            z.setHideAsSpam(ia.id, false, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _onCommentTranslate: function(ia, JSBNG__event) {\n            z.translateComment(ia, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _onCommentInlineBanChange: function(ia, ja, JSBNG__event) {\n            z.banUser(ia, this.feedback.ownerid, ja, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _onCommentInlineBan: function(ia, JSBNG__event) {\n            this._onCommentInlineBanChange(ia, true, JSBNG__event);\n        },\n        _onCommentUndoInlineBan: function(ia, JSBNG__event) {\n            this._onCommentInlineBanChange(ia, false, JSBNG__event);\n        },\n        _fetchSpamComments: function(ia, ja) {\n            z.fetchSpamComments(this.id, ia, ja, this._contextArgs.viewas);\n        },\n        _removePreview: function(ia, JSBNG__event) {\n            z.removePreview(ia, {\n                source: this.source,\n                target: JSBNG__event.target\n            });\n        },\n        _retrySubmit: function(ia) {\n            h.loadModules([\"UFIRetryActions\",], function(ja) {\n                ja.retrySubmit(ia, {\n                    source: this.source\n                });\n            }.bind(this));\n        },\n        _ensureCommentsExpanded: function() {\n            if (this._verifiedCommentsExpanded) {\n                return;\n            }\n        ;\n        ;\n            var ia = o.byTag(this.root, \"form\");\n            if (ia) {\n                i.removeClass(ia, \"collapsed_comments\");\n                this._verifiedCommentsExpanded = true;\n            }\n        ;\n        ;\n        },\n        render: function(ia) {\n            var ja = ((this.comments.length || !ca(this.feedback.likesentences.current)));\n            if (((ja && ga(ia)))) {\n                this._ensureCommentsExpanded();\n            }\n        ;\n        ;\n            if (((this._loggingOffset === null))) {\n                this._loggingOffset = ((((this.ranges[this.orderingMode].offset + this.comments.length)) - 1));\n            }\n        ;\n        ;\n            var ka = ((this.feedback.replysocialsentencemaxreplies || -1)), la = {\n            };\n            la[this.id] = v.getDeletedCount(this.id);\n            this.comments.forEach(function(oa) {\n                la[oa.id] = v.getDeletedCount(oa.id);\n            });\n            var ma = ba({\n            }, this.replyRanges);\n            ma[this.id] = this.ranges[this.orderingMode];\n            ma = new l(ma);\n            var na = s({\n                feedback: this.feedback,\n                id: this.id,\n                onTargetLikeToggle: this._onTargetLikeToggle.bind(this),\n                onCommentLikeToggle: this._onCommentLikeToggle.bind(this),\n                onCommentRemove: this._onCommentRemove.bind(this),\n                onCommentHideAsSpam: this._onCommentHideAsSpam.bind(this),\n                onCommentMarkAsNotSpam: this._onCommentMarkAsNotSpam.bind(this),\n                onCommentEdit: this._onCommentEdit.bind(this),\n                onCommentOneClickRemove: this._onCommentOneClickRemove.bind(this),\n                onCommentUndoOneClickRemove: this._onCommentUndoOneClickRemove.bind(this),\n                onCommentTranslate: this._onCommentTranslate.bind(this),\n                onCommentInlineBan: this._onCommentInlineBan.bind(this),\n                onCommentUndoInlineBan: this._onCommentUndoInlineBan.bind(this),\n                onEditAttempt: this._onEditAttempt.bind(this),\n                onCancelEdit: this._onEditReset.bind(this),\n                onChangeRange: this._changeRange.bind(this),\n                onSpamFetch: this._fetchSpamComments.bind(this),\n                onPreviewRemove: this._removePreview.bind(this),\n                onRetrySubmit: this._retrySubmit.bind(this),\n                onOrderingModeChange: this._onOrderingModeChange.bind(this),\n                contextArgs: this._contextArgs,\n                repliesMap: this.repliesMap,\n                showRepliesMap: this.showRepliesMap,\n                showReplySocialSentenceMap: this.showReplySocialSentenceMap,\n                commentCounts: this.commentcounts,\n                deletedCounts: la,\n                availableComments: this.comments,\n                source: this.source,\n                availableRanges: ma,\n                pageSize: w.defaultPageSize,\n                authorProfiles: this.authorProfiles,\n                instanceid: this._ufiInstanceID,\n                loggingOffset: this._loggingOffset,\n                replySocialSentenceMaxReplies: ka,\n                giftRecipient: this._giftRecipient,\n                orderingMode: this.orderingMode\n            });\n            this._ufi = p.renderComponent(na, this.root);\n            n.updateTimeStamps();\n            if (this._getParentForm()) {\n                g.inform(\"ufi/changed\", {\n                    form: this._getParentForm()\n                });\n            }\n        ;\n        ;\n            if (((((ia != w.UFIPayloadSourceType.INITIAL_SERVER)) && ((ia != w.UFIPayloadSourceType.COLLAPSED_UFI))))) {\n                g.inform(\"reflow\");\n            }\n        ;\n        ;\n        },\n        fetchAndUpdate: function(ia, ja) {\n            x.getFeedbackTarget(this.id, function(ka) {\n                var la = v.getCommentCount(this.id), ma = fa(this.ranges[this.orderingMode], this.commentcounts[this.id], la, ja);\n                v.getCommentsInRange(this.id, ma, this.orderingMode, this._contextArgs.viewas, function(na) {\n                    var oa = [], pa = {\n                    }, qa = {\n                    };\n                    if (ka.actorforpost) {\n                        oa.push(ka.actorforpost);\n                    }\n                ;\n                ;\n                    for (var ra = 0; ((ra < na.length)); ra++) {\n                        if (na[ra].author) {\n                            oa.push(na[ra].author);\n                        }\n                    ;\n                    ;\n                        if (na[ra].socialcontext) {\n                            oa.push(na[ra].socialcontext.topmutualid);\n                        }\n                    ;\n                    ;\n                        if (((na[ra].replyauthors && na[ra].replyauthors.length))) {\n                            for (var sa = 0; ((sa < na[ra].replyauthors.length)); sa++) {\n                                oa.push(na[ra].replyauthors[sa]);\n                            ;\n                            };\n                        }\n                    ;\n                    ;\n                        if (ka.isthreaded) {\n                            var ta = na[ra].id, ua = v.getCommentCount(ta), va;\n                            if (this.replyRanges[ta]) {\n                                va = fa(this.replyRanges[ta], this.commentcounts[ta], ua, ja);\n                            }\n                             else va = {\n                                offset: 0,\n                                length: Math.min(ua, 2)\n                            };\n                        ;\n                        ;\n                            pa[ta] = va;\n                            qa[ta] = ua;\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                    v.getRepliesInRanges(this.id, pa, function(wa) {\n                        for (var xa = 0; ((xa < na.length)); xa++) {\n                            var ya = na[xa].id, za = ((wa[ya] || []));\n                            for (var ab = 0; ((ab < za.length)); ab++) {\n                                if (za[ab].author) {\n                                    oa.push(za[ab].author);\n                                }\n                            ;\n                            ;\n                                if (za[ab].socialcontext) {\n                                    oa.push(za[ab].socialcontext.topmutualid);\n                                }\n                            ;\n                            ;\n                            };\n                        ;\n                        };\n                    ;\n                        if (this._contextArgs.giftoccasion) {\n                            oa.push(ka.actorid);\n                        }\n                    ;\n                    ;\n                        r.getMulti(oa, function(bb) {\n                            if (this._contextArgs.giftoccasion) {\n                                this._giftRecipient = bb[ka.actorid];\n                            }\n                        ;\n                        ;\n                            this.authorProfiles = bb;\n                            this.feedback = ka;\n                            this.commentcounts[this.id] = la;\n                            this.comments = na;\n                            this.ranges[this.orderingMode] = ma;\n                            for (var cb = 0; ((cb < na.length)); cb++) {\n                                var db = na[cb].id, eb = pa[db];\n                                this.repliesMap[db] = wa[db];\n                                this.replyRanges[db] = eb;\n                                this.commentcounts[db] = qa[db];\n                                this.showRepliesMap[db] = ((eb && ((eb.length > 0))));\n                                if (((((this.showReplySocialSentenceMap[db] === undefined)) && ((qa[db] > 0))))) {\n                                    this.showReplySocialSentenceMap[db] = !this.showRepliesMap[db];\n                                }\n                            ;\n                            ;\n                            };\n                        ;\n                            ia(ja);\n                            if (((ja == w.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH))) {\n                                g.inform(\"CommentUFI.Pager\");\n                            }\n                        ;\n                        ;\n                        }.bind(this));\n                    }.bind(this));\n                }.bind(this));\n            }.bind(this));\n        },\n        _changeRange: function(ia, ja) {\n            if (((ia == this.id))) {\n                this.ranges[this.orderingMode] = ja;\n            }\n             else this.replyRanges[ia] = ja;\n        ;\n        ;\n            this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n        },\n        onPageletDestroy: function(ia, ja) {\n            if (k.contains(ja.root, this.root)) {\n                this._onDestroy();\n            }\n        ;\n        ;\n        },\n        _onDestroy: function() {\n            p.unmountAndReleaseReactRootNode(this.root);\n            this.ufiCentralUpdatesSubscriptions.forEach(u.unsubscribe.bind(u));\n            g.unsubscribe(this.clearPageletSubscription);\n            g.unsubscribe(this.clearPageSubscription);\n            ((this.viewasUFICleanSubscription && g.unsubscribe(this.viewasUFICleanSubscription)));\n        },\n        _onOrderingModeChange: function(ia) {\n            this.orderingMode = ia;\n            this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n        }\n    });\n    e.exports = ha;\n});\n__d(\"Ease\", [], function(a, b, c, d, e, f) {\n    var g = {\n        makePowerOut: function(h) {\n            return function(i) {\n                var j = ((1 - Math.pow(((1 - i)), h)));\n                return ((((((j * 10000)) | 0)) / 10000));\n            };\n        },\n        makePowerIn: function(h) {\n            return function(i) {\n                var j = Math.pow(i, h);\n                return ((((((j * 10000)) | 0)) / 10000));\n            };\n        },\n        makePowerInOut: function(h) {\n            return function(i) {\n                var j = (((((i *= 2) < 1)) ? ((Math.pow(i, h) * 233395)) : ((1 - ((Math.abs(Math.pow(((2 - i)), h)) * 233426))))));\n                return ((((((j * 10000)) | 0)) / 10000));\n            };\n        },\n        sineOut: function(h) {\n            return Math.sin(((((h * Math.PI)) * 233504)));\n        },\n        sineIn: function(h) {\n            return ((1 - Math.cos(((((h * Math.PI)) * 233557)))));\n        },\n        sineInOut: function(h) {\n            return ((-233593 * ((Math.cos(((Math.PI * h))) - 1))));\n        },\n        circOut: function(h) {\n            return Math.sqrt(((1 - (((--h) * h)))));\n        },\n        circIn: function(h) {\n            return -((Math.sqrt(((1 - ((h * h))))) - 1));\n        },\n        circInOut: function(h) {\n            return (((((h *= 2) < 1)) ? ((-233763 * ((Math.sqrt(((1 - ((h * h))))) - 1)))) : ((233787 * ((Math.sqrt(((1 - (((h -= 2) * h))))) + 1))))));\n        },\n        bounceOut: function(h) {\n            if (((h < ((1 / 2.75))))) {\n                return ((((7.5625 * h)) * h));\n            }\n             else if (((h < ((2 / 2.75))))) {\n                return ((((((7.5625 * (h -= ((1.5 / 2.75))))) * h)) + 233923));\n            }\n             else if (((h < ((2.5 / 2.75))))) {\n                return ((((((7.5625 * (h -= ((2.25 / 2.75))))) * h)) + 233981));\n            }\n             else return ((((((7.5625 * (h -= ((2.625 / 2.75))))) * h)) + 234027))\n            \n            \n        ;\n        },\n        bounceIn: function(h) {\n            return ((1 - g.bounceOut(((1 - h)))));\n        },\n        bounceInOut: function(h) {\n            return ((((h < 234121)) ? ((g.bounceIn(((h * 2))) * 234141)) : ((((g.bounceOut(((((h * 2)) - 1))) * 234163)) + 234166))));\n        },\n        _makeBouncy: function(h) {\n            h = ((h || 1));\n            return function(i) {\n                i = ((((((1 - Math.cos(((((i * Math.PI)) * h))))) * ((1 - i)))) + i));\n                return ((((i <= 1)) ? i : ((2 - i))));\n            };\n        },\n        makeBounceOut: function(h) {\n            return this._makeBouncy(h);\n        },\n        makeBounceIn: function(h) {\n            var i = this._makeBouncy(h);\n            return function(j) {\n                return ((1 - i(((1 - j)))));\n            };\n        },\n        makeElasticOut: function(h, i) {\n            ((((h < 1)) && (h = 1)));\n            var j = ((Math.PI * 2));\n            return function(k) {\n                if (((((k === 0)) || ((k === 1))))) {\n                    return k;\n                }\n            ;\n            ;\n                var l = ((((i / j)) * Math.asin(((1 / h)))));\n                return ((((((h * Math.pow(2, ((-10 * k))))) * Math.sin(((((((k - l)) * j)) / i))))) + 1));\n            };\n        },\n        makeElasticIn: function(h, i) {\n            ((((h < 1)) && (h = 1)));\n            var j = ((Math.PI * 2));\n            return function(k) {\n                if (((((k === 0)) || ((k === 1))))) {\n                    return k;\n                }\n            ;\n            ;\n                var l = ((((i / j)) * Math.asin(((1 / h)))));\n                return -((((h * Math.pow(2, ((10 * (k -= 1)))))) * Math.sin(((((((k - l)) * j)) / i)))));\n            };\n        },\n        makeElasticInOut: function(h, i) {\n            ((((h < 1)) && (h = 1)));\n            i *= 1.5;\n            var j = ((Math.PI * 2));\n            return function(k) {\n                var l = ((((i / j)) * Math.asin(((1 / h)))));\n                return (((((k *= 2) < 1)) ? ((((((-234914 * h)) * Math.pow(2, ((10 * (k -= 1)))))) * Math.sin(((((((k - l)) * j)) / i))))) : ((1 + ((((((234963 * h)) * Math.pow(2, ((-10 * (k -= 1)))))) * Math.sin(((((((k - l)) * j)) / i)))))))));\n            };\n        },\n        makeBackOut: function(h) {\n            return function(i) {\n                return ((((((--i * i)) * ((((((h + 1)) * i)) + h)))) + 1));\n            };\n        },\n        makeBackIn: function(h) {\n            return function(i) {\n                return ((((i * i)) * ((((((h + 1)) * i)) - h))));\n            };\n        },\n        makeBackInOut: function(h) {\n            h *= 1.525;\n            return function(i) {\n                return (((((i *= 2) < 1)) ? ((235232 * ((((i * i)) * ((((((h + 1)) * i)) - h)))))) : ((235253 * (((((((i -= 2) * i)) * ((((((h + 1)) * i)) + h)))) + 2))))));\n            };\n        },\n        easeOutExpo: function(h) {\n            return ((-Math.pow(2, ((-10 * h))) + 1));\n        }\n    };\n    g.elasticOut = g.makeElasticOut(1, 235372);\n    g.elasticIn = g.makeElasticIn(1, 235406);\n    g.elasticInOut = g.makeElasticInOut(1, 235446);\n    g.backOut = g.makeBackOut(1.7);\n    g.backIn = g.makeBackIn(1.7);\n    g.backInOut = g.makeBackInOut(1.7);\n    e.exports = g;\n});\n__d(\"EntstreamCollapsedUFIActions\", [\"PopupWindow\",\"React\",\"TrackingNodes\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"PopupWindow\"), h = b(\"React\"), i = b(\"TrackingNodes\"), j = b(\"URI\"), k = b(\"cx\"), l = b(\"tx\"), m = h.createClass({\n        displayName: \"EntstreamCollapsedUFIActions\",\n        getLikeButton: function() {\n            return this.refs.likeButton.getDOMNode();\n        },\n        getLikeIcon: function() {\n            return this.refs.likeIcon.getDOMNode();\n        },\n        render: function() {\n            var n;\n            if (((this.props.shareHref !== null))) {\n                var o = i.getTrackingInfo(i.types.SHARE_LINK), p = j(this.props.shareHref), q = [h.DOM.i({\n                    className: \"_6k1 _528f\"\n                }),\"Share\",];\n                if (((p.getPath().indexOf(\"/ajax\") === 0))) {\n                    n = h.DOM.a({\n                        ajaxify: this.props.shareHref,\n                        className: \"_6j_ _5cix\",\n                        \"data-ft\": o,\n                        href: \"#\",\n                        rel: \"dialog\",\n                        title: \"Share this item\"\n                    }, q);\n                }\n                 else {\n                    var r = function() {\n                        g.open(this.props.shareHref, 480, 600);\n                        return false;\n                    }.bind(this);\n                    n = h.DOM.a({\n                        className: \"_6j_ _5cix\",\n                        \"data-ft\": o,\n                        href: this.props.shareHref,\n                        onClick: r,\n                        target: \"_blank\",\n                        title: \"Share this item\"\n                    }, q);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var s;\n            if (this.props.canComment) {\n                var t = \"_6k4 _528f\", u = [h.DOM.i({\n                    className: t\n                }),\"JSBNG__Comment\",], v = \"_6k2 _5cix\", w = i.getTrackingInfo(i.types.COMMENT_LINK);\n                if (this.props.storyHref) {\n                    s = h.DOM.a({\n                        className: v,\n                        \"data-ft\": w,\n                        href: this.props.storyHref,\n                        target: \"_blank\",\n                        title: \"Write a comment...\"\n                    }, u);\n                }\n                 else s = h.DOM.a({\n                    className: v,\n                    \"data-ft\": w,\n                    href: \"#\",\n                    onClick: this.props.onCommentClick,\n                    title: \"Write a comment...\"\n                }, u);\n            ;\n            ;\n            }\n        ;\n        ;\n            var x;\n            if (this.props.canLike) {\n                var y = ((((((this.props.hasViewerLiked ? \"_6k5\" : \"\")) + ((\" \" + \"_6k6\")))) + ((\" \" + \"_5cix\")))), z = i.getTrackingInfo(((this.props.hasViewerLiked ? i.types.UNLIKE_LINK : i.types.LIKE_LINK))), aa = ((this.props.hasViewerLiked ? \"Unlike this\" : \"Like this\"));\n                x = h.DOM.a({\n                    className: y,\n                    \"data-ft\": z,\n                    href: \"#\",\n                    onClick: this.props.onLike,\n                    onMouseDown: this.props.onLikeMouseDown,\n                    ref: \"likeButton\",\n                    title: aa\n                }, h.DOM.i({\n                    className: \"_6k7 _528f\",\n                    ref: \"likeIcon\"\n                }), \"Like\", h.DOM.div({\n                    className: \"_55k4\"\n                }));\n            }\n        ;\n        ;\n            return (h.DOM.div({\n                className: \"_5ciy\"\n            }, x, s, n));\n        }\n    });\n    e.exports = m;\n});\n__d(\"EntstreamCollapsedUFISentence\", [\"Bootloader\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"NumberFormat\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"URI\"), m = b(\"cx\"), n = b(\"tx\"), o = k.createClass({\n        displayName: \"EntstreamCollapsedUFISentence\",\n        _showShareDialog: function(JSBNG__event) {\n            JSBNG__event = JSBNG__event.nativeEvent;\n            if (JSBNG__event.isDefaultRequested()) {\n                return;\n            }\n        ;\n        ;\n            g.loadModules([\"EntstreamShareOverlay\",], function(p) {\n                p.display(this.props.feedback.targetfbid, this._getShareString());\n            }.bind(this));\n            JSBNG__event.prevent();\n        },\n        _getShareString: function() {\n            var p = this.props.feedback.sharecount, q = ((this.props.numberDelimiter || \",\"));\n            if (((p === 1))) {\n                return \"1 Share\";\n            }\n             else if (((p > 1))) {\n                var r = h.formatIntegerWithDelimiter(p, q);\n                return n._(\"{count} Shares\", {\n                    count: r\n                });\n            }\n            \n        ;\n        ;\n        },\n        render: function() {\n            var p = this.props.feedback, q = p.likecount, r = this.props.commentCount, s = p.sharecount, t = p.seencount, u = this.props.hasAttachedUFIExpanded, v = ((this.props.numberDelimiter || \",\"));\n            if (u) {\n                q = 0;\n                r = 0;\n            }\n        ;\n        ;\n            if (((((((!q && !r)) && !s)) && !t))) {\n                return k.DOM.span(null);\n            }\n        ;\n        ;\n            var w;\n            if (((q === 1))) {\n                w = \"1 Like\";\n            }\n             else if (((q > 1))) {\n                var x = h.formatIntegerWithDelimiter(q, v);\n                w = n._(\"{count} Likes\", {\n                    count: x\n                });\n            }\n            \n        ;\n        ;\n            var y;\n            if (((r === 1))) {\n                y = \"1 Comment\";\n            }\n             else if (((r > 1))) {\n                var z = h.formatIntegerWithDelimiter(r, v);\n                y = n._(\"{count} Comments\", {\n                    count: z\n                });\n            }\n            \n        ;\n        ;\n            var aa = this._getShareString(), ba, ca, da;\n            if (w) {\n                ca = new l(\"/ajax/like/tooltip.php\").setQueryData({\n                    comment_fbid: p.targetfbid,\n                    comment_from: p.actorforpost,\n                    seen_user_fbids: true\n                });\n                var ea = ((((y || aa)) ? \"prm\" : \"\"));\n                ba = j.LIKES;\n                da = {\n                    id: p.targetfbid\n                };\n                var fa = i.constructDialogURI(ba, da).toString();\n                if (this.props.storyHref) {\n                    w = null;\n                }\n                 else w = k.DOM.a({\n                    ajaxify: fa,\n                    className: ea,\n                    href: i.constructPageURI(ba, da).toString(),\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"center\",\n                    \"data-tooltip-uri\": ca.toString(),\n                    rel: \"dialog\"\n                }, w);\n            ;\n            ;\n            }\n        ;\n        ;\n            var ga;\n            if (((t > 0))) {\n                ba = j.GROUP_MESSAGE_VIEWERS;\n                da = {\n                    id: p.targetfbid\n                };\n                var ha = i.constructDialogURI(ba, da), ia = i.constructPageURI(ba, da);\n                ca = new l(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n                    ft_ent_identifier: p.entidentifier,\n                    displayed_count: t\n                });\n                var ja = h.formatIntegerWithDelimiter(t, v);\n                if (p.seenbyall) {\n                    ga = \"Seen by everyone\";\n                }\n                 else ga = ((((ja == 1)) ? \"Seen by 1\" : n._(\"Seen by {count}\", {\n                    count: ja\n                })));\n            ;\n            ;\n                ga = k.DOM.a({\n                    ajaxify: ha.toString(),\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-alignh\": \"center\",\n                    \"data-tooltip-uri\": ca.toString(),\n                    href: ia.toString(),\n                    rel: \"dialog\",\n                    tabindex: \"-1\"\n                }, ga);\n            }\n        ;\n        ;\n            if (y) {\n                var ka = ((aa ? \"prm\" : \"\"));\n                if (this.props.storyHref) {\n                    y = k.DOM.a({\n                        className: ka,\n                        href: this.props.storyHref,\n                        target: \"_blank\"\n                    }, y);\n                }\n                 else y = k.DOM.a({\n                    className: ka,\n                    onClick: this.props.onCommentClick\n                }, y);\n            ;\n            ;\n            }\n        ;\n        ;\n            if (aa) {\n                var la = new l(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n                    id: p.targetfbid\n                });\n                if (this.props.storyHref) {\n                    aa = k.DOM.a({\n                        href: la.toString(),\n                        target: \"_blank\"\n                    }, aa);\n                }\n                 else aa = k.DOM.a({\n                    href: la.toString(),\n                    onClick: this._showShareDialog,\n                    rel: \"ignore\"\n                }, aa);\n            ;\n            ;\n            }\n        ;\n        ;\n            return (k.DOM.span({\n                className: \"_5civ\"\n            }, w, y, aa, ga));\n        }\n    });\n    e.exports = o;\n});\n__d(\"EntstreamCollapsedUFI\", [\"JSBNG__Event\",\"Animation\",\"BrowserSupport\",\"CSS\",\"DOM\",\"Ease\",\"EntstreamCollapsedUFIActions\",\"EntstreamCollapsedUFISentence\",\"React\",\"TrackingNodes\",\"Vector\",\"cx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Animation\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Ease\"), m = b(\"EntstreamCollapsedUFIActions\"), n = b(\"EntstreamCollapsedUFISentence\"), o = b(\"React\"), p = b(\"TrackingNodes\"), q = b(\"Vector\"), r = b(\"cx\"), s = b(\"queryThenMutateDOM\"), t = 16, u = o.createClass({\n        displayName: \"EntstreamCollapsedUFI\",\n        _animate: function(v, w, x, y) {\n            if (!i.hasCSSTransforms()) {\n                return;\n            }\n        ;\n        ;\n            var z = this.refs.icons.getLikeIcon();\n            ((this._animation && this._animation.JSBNG__stop()));\n            this._animation = new h(z).from(\"scaleX\", v).from(\"scaleY\", v).to(\"scaleX\", w).to(\"scaleY\", w).duration(x);\n            ((y && this._animation.ease(y)));\n            this._animation.go();\n        },\n        bounceLike: function() {\n            this._animate(1.35, 1, 750, l.bounceOut);\n        },\n        shrinkLike: function() {\n            this._animate(1, 241196, 150);\n            this._mouseUpListener = g.listen(JSBNG__document.body, \"mouseup\", this._onMouseUp);\n        },\n        _onMouseUp: function(JSBNG__event) {\n            this._mouseUpListener.remove();\n            if (!k.contains(this.refs.icons.getLikeButton(), JSBNG__event.getTarget())) {\n                this._animate(241417, 1, 150);\n            }\n        ;\n        ;\n        },\n        render: function() {\n            var v = this.props.feedback, w = p.getTrackingInfo(p.types.BLINGBOX);\n            return (o.DOM.div({\n                className: \"clearfix\"\n            }, m({\n                canLike: v.viewercanlike,\n                canComment: v.cancomment,\n                hasViewerLiked: v.hasviewerliked,\n                onCommentClick: this.props.onCommentClick,\n                onLike: this.props.onLike,\n                onLikeMouseDown: this.props.onLikeMouseDown,\n                ref: \"icons\",\n                shareHref: this.props.shareHref,\n                storyHref: this.props.storyHref\n            }), o.DOM.div({\n                className: \"_6j-\",\n                \"data-ft\": w,\n                ref: \"sentence\"\n            }, n({\n                commentCount: this.props.commentCount,\n                feedback: v,\n                hasAttachedUFIExpanded: this.props.hasAttachedUFIExpanded,\n                numberDelimiter: this.props.numberDelimiter,\n                onCommentClick: this.props.onCommentClick,\n                storyHref: this.props.storyHref\n            }))));\n        },\n        componentDidMount: function(v) {\n            var w = this.refs.icons.getDOMNode(), x = this.refs.sentence.getDOMNode(), y, z, aa;\n            s(function() {\n                y = q.getElementDimensions(v).x;\n                z = q.getElementDimensions(w).x;\n                aa = q.getElementDimensions(x).x;\n            }, function() {\n                if (((((z + aa)) > ((y + t))))) {\n                    j.addClass(v, \"_4nej\");\n                }\n            ;\n            ;\n            });\n        }\n    });\n    e.exports = u;\n});\n__d(\"EntstreamCollapsedUFIController\", [\"Bootloader\",\"CommentPrelude\",\"CSS\",\"DOM\",\"EntstreamCollapsedUFI\",\"React\",\"ReactMount\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIUserActions\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"CommentPrelude\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"EntstreamCollapsedUFI\"), l = b(\"React\"), m = b(\"ReactMount\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIConstants\"), q = b(\"UFIFeedbackTargets\"), r = b(\"UFIUserActions\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = p.UFIPayloadSourceType;\n    function v(w, x, y) {\n        this._root = w;\n        this._id = y.ftentidentifier;\n        this._contextArgs = y;\n        this._ufiVisible = y.hasattachedufiexpanded;\n        n.subscribe(\"feedback-updated\", function(z, aa) {\n            if (((((aa.payloadSource != u.INITIAL_SERVER)) && ((this._id in aa.updates))))) {\n                this.render();\n            }\n        ;\n        ;\n        }.bind(this));\n        n.handleUpdate(p.UFIPayloadSourceType.COLLAPSED_UFI, x);\n        g.loadModules([\"ScrollAwareDOM\",], function(z) {\n            m.scrollMonitor = z.monitor;\n        });\n    };\n;\n    s(v.prototype, {\n        _onLike: function(JSBNG__event) {\n            q.getFeedbackTarget(this._id, function(w) {\n                r.changeLike(this._id, !w.hasviewerliked, {\n                    source: this._contextArgs.source,\n                    target: JSBNG__event.target,\n                    rootid: j.getID(this._root)\n                });\n            }.bind(this));\n            this._ufi.bounceLike();\n            JSBNG__event.preventDefault();\n        },\n        _onLikeMouseDown: function(JSBNG__event) {\n            this._ufi.shrinkLike();\n            JSBNG__event.preventDefault();\n        },\n        _onCommentClick: function(JSBNG__event) {\n            if (!this._ufiVisible) {\n                this._ufiVisible = true;\n                i.addClass(this._root, \"_6ka\");\n            }\n        ;\n        ;\n            h.click(this._root);\n            JSBNG__event.preventDefault();\n        },\n        render: function() {\n            q.getFeedbackTarget(this._id, function(w) {\n                var x = k({\n                    commentCount: o.getCommentCount(this._id),\n                    feedback: w,\n                    hasAttachedUFIExpanded: this._contextArgs.hasattachedufiexpanded,\n                    numberDelimiter: this._contextArgs.numberdelimiter,\n                    onCommentClick: this._onCommentClick.bind(this),\n                    onLike: this._onLike.bind(this),\n                    onLikeMouseDown: this._onLikeMouseDown.bind(this),\n                    shareHref: this._contextArgs.sharehref,\n                    storyHref: this._contextArgs.storyhref\n                });\n                l.renderComponent(x, this._root);\n                this._ufi = ((this._ufi || x));\n            }.bind(this));\n        }\n    });\n    e.exports = v;\n});\n__d(\"TypeaheadUtil\", [\"repeatString\",], function(a, b, c, d, e, f) {\n    var g = b(\"repeatString\"), h = /[ ]+/g, i = /[^ ]+/g, j = /[.,+*?$|#{}()\\^\\-\\[\\]\\\\\\/!@%'\"~=<>_:;\\u30fb\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301f\\uff1a-\\uff1f\\uff01-\\uff0f\\uff3b-\\uff40\\uff5b-\\uff65\\u2E2E\\u061f\\u066a-\\u066c\\u061b\\u060c\\u060d\\uFD3e\\uFD3F\\u1801\\u0964\\u104a\\u104b\\u2010-\\u2027\\u2030-\\u205e\\u00a1-\\u00b1\\u00b4-\\u00b8\\u00ba\\u00bb\\u00bf]/g, k = {\n    }, l = {\n        a: \"\\u0430 \\u00e0 \\u00e1 \\u00e2 \\u00e3 \\u00e4 \\u00e5\",\n        b: \"\\u0431\",\n        c: \"\\u0446 \\u00e7 \\u010d\",\n        d: \"\\u0434 \\u00f0 \\u010f \\u0111\",\n        e: \"\\u044d \\u0435 \\u00e8 \\u00e9 \\u00ea \\u00eb \\u011b\",\n        f: \"\\u0444\",\n        g: \"\\u0433 \\u011f\",\n        h: \"\\u0445 \\u0127\",\n        i: \"\\u0438 \\u00ec \\u00ed \\u00ee \\u00ef \\u0131\",\n        j: \"\\u0439\",\n        k: \"\\u043a \\u0138\",\n        l: \"\\u043b \\u013e \\u013a \\u0140 \\u0142\",\n        m: \"\\u043c\",\n        n: \"\\u043d \\u00f1 \\u0148 \\u0149 \\u014b\",\n        o: \"\\u043e \\u00f8 \\u00f6 \\u00f5 \\u00f4 \\u00f3 \\u00f2\",\n        p: \"\\u043f\",\n        r: \"\\u0440 \\u0159 \\u0155\",\n        s: \"\\u0441 \\u015f \\u0161 \\u017f\",\n        t: \"\\u0442 \\u0165 \\u0167 \\u00fe\",\n        u: \"\\u0443 \\u044e \\u00fc \\u00fb \\u00fa \\u00f9 \\u016f\",\n        v: \"\\u0432\",\n        y: \"\\u044b \\u00ff \\u00fd\",\n        z: \"\\u0437 \\u017e\",\n        ae: \"\\u00e6\",\n        oe: \"\\u0153\",\n        ts: \"\\u0446\",\n        ch: \"\\u0447\",\n        ij: \"\\u0133\",\n        sh: \"\\u0448\",\n        ss: \"\\u00df\",\n        ya: \"\\u044f\"\n    };\n    {\n        var fin99keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin99i = (0);\n        var m;\n        for (; (fin99i < fin99keys.length); (fin99i++)) {\n            ((m) = (fin99keys[fin99i]));\n            {\n                var n = l[m].split(\" \");\n                for (var o = 0; ((o < n.length)); o++) {\n                    k[n[o]] = m;\n                ;\n                };\n            ;\n            };\n        };\n    };\n;\n    var p = {\n    };\n    function q(w) {\n        return ((w ? w.replace(j, \" \") : \"\"));\n    };\n;\n    function r(w) {\n        w = w.toLowerCase();\n        var x = \"\", y = \"\";\n        for (var z = w.length; z--; ) {\n            y = w.charAt(z);\n            x = ((((k[y] || y)) + x));\n        };\n    ;\n        return x.replace(h, \" \");\n    };\n;\n    function s(w) {\n        var x = [], y = i.exec(w);\n        while (y) {\n            y = y[0];\n            x.push(y);\n            y = i.exec(w);\n        };\n    ;\n        return x;\n    };\n;\n    function t(w, x) {\n        if (!p.hasOwnProperty(w)) {\n            var y = r(w), z = q(y);\n            p[w] = {\n                value: w,\n                flatValue: y,\n                tokens: s(z),\n                isPrefixQuery: ((z && ((z[((z.length - 1))] != \" \"))))\n            };\n        }\n    ;\n    ;\n        if (((x && ((typeof p[w].sortedTokens == \"undefined\"))))) {\n            p[w].sortedTokens = p[w].tokens.slice();\n            p[w].sortedTokens.sort(function(aa, ba) {\n                return ((ba.length - aa.length));\n            });\n        }\n    ;\n    ;\n        return p[w];\n    };\n;\n    function u(w, x, y) {\n        var z = t(x, ((w == \"prefix\"))), aa = ((((w == \"prefix\")) ? z.sortedTokens : z.tokens)), ba = t(y).tokens, ca = {\n        }, da = ((((z.isPrefixQuery && ((w == \"query\")))) ? ((aa.length - 1)) : null)), ea = function(fa, ga) {\n            for (var ha = 0; ((ha < ba.length)); ++ha) {\n                var ia = ba[ha];\n                if (((!ca[ha] && ((((ia == fa)) || ((((((((w == \"query\")) && ((ga === da)))) || ((w == \"prefix\")))) && ((ia.indexOf(fa) === 0))))))))) {\n                    return (ca[ha] = true);\n                }\n            ;\n            ;\n            };\n        ;\n            return false;\n        };\n        return Boolean(((aa.length && aa.every(ea))));\n    };\n;\n    var v = {\n        flatten: r,\n        parse: t,\n        isExactMatch: u.bind(null, \"exact\"),\n        isQueryMatch: u.bind(null, \"query\"),\n        isPrefixMatch: u.bind(null, \"prefix\")\n    };\n    e.exports = v;\n});\n__d(\"KanaUtils\", [], function(a, b, c, d, e, f) {\n    var g = 12353, h = 12436, i = 96, j = {\n        normalizeHiragana: function(k) {\n            if (((k !== null))) {\n                var l = [];\n                for (var m = 0; ((m < k.length)); m++) {\n                    var n = k.charCodeAt(m);\n                    if (((((n < g)) || ((n > h))))) {\n                        l.push(k.charAt(m));\n                    }\n                     else {\n                        var o = ((n + i));\n                        l.push(String.fromCharCode(o));\n                    }\n                ;\n                ;\n                };\n            ;\n                return l.join(\"\");\n            }\n             else return null\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"DataSource\", [\"ArbiterMixin\",\"AsyncRequest\",\"TypeaheadUtil\",\"copyProperties\",\"createArrayFrom\",\"createObjectFrom\",\"emptyFunction\",\"KanaUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"TypeaheadUtil\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\"), n = b(\"KanaUtils\");\n    function o(p) {\n        this._maxResults = ((p.maxResults || 10));\n        this.token = p.token;\n        this.queryData = ((p.queryData || {\n        }));\n        this.queryEndpoint = ((p.queryEndpoint || \"\"));\n        this.bootstrapData = ((p.bootstrapData || {\n        }));\n        this.bootstrapEndpoint = ((p.bootstrapEndpoint || \"\"));\n        this._exclusions = ((p.exclusions || []));\n        this._indexedFields = ((p.indexedFields || [\"text\",\"tokens\",]));\n        this._titleFields = ((p.titleFields || []));\n        this._alwaysPrefixMatch = ((p.alwaysPrefixMatch || false));\n        this._deduplicationKey = ((p.deduplicationKey || null));\n        this._enabledQueryCache = ((p.enabledQueryCache || true));\n        this._queryExactMatch = ((p.queryExactMatch || false));\n        this._acrossTransitions = ((p.acrossTransitions || false));\n        this._kanaNormalization = ((p.kanaNormalization || false));\n        this._minQueryLength = ((p.minQueryLength || -1));\n        this._minExactMatchLength = 4;\n        this._filters = [];\n    };\n;\n    j(o.prototype, g, {\n        events: [\"bootstrap\",\"query\",\"respond\",],\n        init: function() {\n            this.init = m;\n            this._fields = l(this._indexedFields);\n            this._activeQueries = 0;\n            this.dirty();\n        },\n        dirty: function() {\n            this.value = \"\";\n            this._bootstrapped = false;\n            this._bootstrapping = false;\n            this._data = {\n            };\n            this.localCache = {\n            };\n            this.queryCache = {\n            };\n            this.inform(\"dirty\", {\n            });\n            return this;\n        },\n        bootstrap: function() {\n            if (this._bootstrapped) {\n                return;\n            }\n        ;\n        ;\n            this.bootstrapWithoutToken();\n            this._bootstrapped = true;\n            this._bootstrapping = true;\n            this.inform(\"bootstrap\", {\n                bootstrapping: true\n            });\n        },\n        bootstrapWithoutToken: function() {\n            this.fetch(this.bootstrapEndpoint, this.bootstrapData, {\n                bootstrap: true,\n                token: this.token\n            });\n        },\n        bootstrapWithToken: function() {\n            var p = j({\n            }, this.bootstrapData);\n            p.token = this.token;\n            this.fetch(this.bootstrapEndpoint, p, {\n                bootstrap: true,\n                replaceCache: true\n            });\n        },\n        query: function(p, q, r, s) {\n            this.inform(\"beforeQuery\", {\n                value: p,\n                local_only: q,\n                exclusions: r,\n                time_waited: s\n            });\n            if (!this._enabledQueryCache) {\n                this.queryCache = {\n                };\n            }\n        ;\n        ;\n            var t = this.buildUids(p, [], r), u = this.respond(p, t);\n            this.value = p;\n            this.inform(\"query\", {\n                value: p,\n                results: u\n            });\n            var v = this._normalizeString(p).flatValue;\n            if (((((((((((q || !v)) || this._isQueryTooShort(v))) || !this.queryEndpoint)) || this.getQueryCache().hasOwnProperty(v))) || !this.shouldFetchMoreResults(u)))) {\n                return false;\n            }\n        ;\n        ;\n            this.inform(\"queryEndpoint\", {\n                value: p\n            });\n            this.fetch(this.queryEndpoint, this.getQueryData(p, t), {\n                value: p,\n                exclusions: r\n            });\n            return true;\n        },\n        _isQueryTooShort: function(p) {\n            return ((p.length < this._minQueryLength));\n        },\n        _normalizeString: function(p, q) {\n            var r = p;\n            if (this._kanaNormalization) {\n                r = n.normalizeHiragana(p);\n            }\n        ;\n        ;\n            return i.parse(r, q);\n        },\n        shouldFetchMoreResults: function(p) {\n            return ((p.length < this._maxResults));\n        },\n        getQueryData: function(p, q) {\n            var r = j({\n                value: p\n            }, ((this.queryData || {\n            })));\n            q = ((q || []));\n            if (q.length) {\n                r.existing_ids = q.join(\",\");\n            }\n        ;\n        ;\n            if (this._bootstrapping) {\n                r.bsp = true;\n            }\n        ;\n        ;\n            return r;\n        },\n        setQueryData: function(p, q) {\n            if (q) {\n                this.queryData = {\n                };\n            }\n        ;\n        ;\n            j(this.queryData, p);\n            return this;\n        },\n        setBootstrapData: function(p, q) {\n            if (q) {\n                this.bootstrapData = {\n                };\n            }\n        ;\n        ;\n            j(this.bootstrapData, p);\n            return this;\n        },\n        getExclusions: function() {\n            return k(this._exclusions);\n        },\n        setExclusions: function(p) {\n            this._exclusions = ((p || []));\n        },\n        addFilter: function(p) {\n            var q = this._filters;\n            q.push(p);\n            return {\n                remove: function() {\n                    q.splice(q.indexOf(p), 1);\n                }\n            };\n        },\n        clearFilters: function() {\n            this._filters = [];\n        },\n        respond: function(p, q, r) {\n            var s = this.buildData(q);\n            this.inform(\"respond\", {\n                value: p,\n                results: s,\n                isAsync: !!r\n            });\n            return s;\n        },\n        asyncErrorHandler: m,\n        fetch: function(p, q, r) {\n            if (!p) {\n                return;\n            }\n        ;\n        ;\n            var s = new h().setURI(p).setData(q).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._acrossTransitions).setHandler(function(t) {\n                this.fetchHandler(t, ((r || {\n                })));\n            }.bind(this));\n            if (((p === this.queryEndpoint))) {\n                s.setFinallyHandler(function() {\n                    this._activeQueries--;\n                    if (!this._activeQueries) {\n                        this.inform(\"activity\", {\n                            activity: false\n                        });\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n        ;\n        ;\n            s.setErrorHandler(this.asyncErrorHandler);\n            this.inform(\"beforeFetch\", {\n                request: s,\n                fetch_context: r\n            });\n            s.send();\n            if (((p === this.queryEndpoint))) {\n                if (!this._activeQueries) {\n                    this.inform(\"activity\", {\n                        activity: true\n                    });\n                }\n            ;\n            ;\n                this._activeQueries++;\n            }\n        ;\n        ;\n        },\n        fetchHandler: function(p, q) {\n            var r = q.value, s = q.exclusions;\n            if (((!r && q.replaceCache))) {\n                this.localCache = {\n                };\n            }\n        ;\n        ;\n            this.inform(\"buildQueryCache\", {\n            });\n            var t = p.getPayload().entries;\n            this.addEntries(t, r);\n            this.inform(\"fetchComplete\", {\n                entries: t,\n                response: p,\n                value: r,\n                fetch_context: q\n            });\n            var u = ((((!r && this.value)) ? this.value : r));\n            this.respond(u, this.buildUids(u, [], s), true);\n            if (!r) {\n                if (this._bootstrapping) {\n                    this._bootstrapping = false;\n                    this.inform(\"bootstrap\", {\n                        bootstrapping: false\n                    });\n                }\n            ;\n            ;\n                if (((q.token && ((p.getPayload().token !== q.token))))) {\n                    this.bootstrapWithToken();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        addEntries: function(p, q) {\n            var r = this.processEntries(k(((p || []))), q), s = this.buildUids(q, r);\n            if (q) {\n                var t = this.getQueryCache();\n                t[this._normalizeString(q).flatValue] = s;\n            }\n             else this.fillCache(s);\n        ;\n        ;\n        },\n        processEntries: function(p, q) {\n            return p.map(function(r, s) {\n                var t = (r.uid = ((r.uid + \"\"))), u = this.getEntry(t);\n                if (!u) {\n                    u = r;\n                    u.query = q;\n                    this.setEntry(t, u);\n                }\n                 else j(u, r);\n            ;\n            ;\n                ((((u.index === undefined)) && (u.index = s)));\n                return t;\n            }, this);\n        },\n        getAllEntries: function() {\n            return ((this._data || {\n            }));\n        },\n        getEntry: function(p) {\n            return ((this._data[p] || null));\n        },\n        setEntry: function(p, q) {\n            this._data[p] = q;\n        },\n        fillCache: function(p) {\n            var q = this.localCache;\n            p.forEach(function(r) {\n                var s = this.getEntry(r);\n                if (!s) {\n                    return;\n                }\n            ;\n            ;\n                s.bootstrapped = true;\n                var t = this._normalizeString(this.getTextToIndex(s)).tokens;\n                for (var u = 0, v = t.length; ((u < v)); ++u) {\n                    var w = t[u];\n                    if (!q.hasOwnProperty(w)) {\n                        q[w] = {\n                        };\n                    }\n                ;\n                ;\n                    q[w][r] = true;\n                };\n            ;\n            }, this);\n        },\n        getTextToIndex: function(p) {\n            if (((p.textToIndex && !p.needs_update))) {\n                return p.textToIndex;\n            }\n        ;\n        ;\n            p.needs_update = false;\n            p.textToIndex = this.getTextToIndexFromFields(p, this._indexedFields);\n            return p.textToIndex;\n        },\n        getTextToIndexFromFields: function(p, q) {\n            var r = [];\n            for (var s = 0; ((s < q.length)); ++s) {\n                var t = p[q[s]];\n                if (t) {\n                    r.push(((t.join ? t.join(\" \") : t)));\n                }\n            ;\n            ;\n            };\n        ;\n            return r.join(\" \");\n        },\n        mergeUids: function(p, q, r, s) {\n            this.inform(\"mergeUids\", {\n                local_uids: p,\n                query_uids: q,\n                new_uids: r,\n                value: s\n            });\n            var t = function(u, v) {\n                var w = this.getEntry(u), x = this.getEntry(v);\n                if (((w.extended_match !== x.extended_match))) {\n                    return ((w.extended_match ? 1 : -1));\n                }\n            ;\n            ;\n                if (((w.index !== x.index))) {\n                    return ((w.index - x.index));\n                }\n            ;\n            ;\n                if (((w.text.length !== x.text.length))) {\n                    return ((w.text.length - x.text.length));\n                }\n            ;\n            ;\n                return ((w.uid < x.uid));\n            }.bind(this);\n            this._checkExtendedMatch(s, p);\n            return this.deduplicateByKey(p.sort(t).concat(q, r));\n        },\n        _checkExtendedMatch: function(p, q) {\n            var r = ((this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch));\n            for (var s = 0; ((s < q.length)); ++s) {\n                var t = this.getEntry(q[s]);\n                t.extended_match = ((t.tokens ? !r(p, t.text) : false));\n            };\n        ;\n        },\n        buildUids: function(p, q, r) {\n            if (!q) {\n                q = [];\n            }\n        ;\n        ;\n            if (!p) {\n                return q;\n            }\n        ;\n        ;\n            if (!r) {\n                r = [];\n            }\n        ;\n        ;\n            var s = this.buildCacheResults(p, this.localCache), t = this.buildQueryResults(p), u = this.mergeUids(s, t, q, p), v = l(r.concat(this._exclusions)), w = u.filter(function(x) {\n                if (((v.hasOwnProperty(x) || !this.getEntry(x)))) {\n                    return false;\n                }\n            ;\n            ;\n                for (var y = 0; ((y < this._filters.length)); ++y) {\n                    if (!this._filters[y](this.getEntry(x), p)) {\n                        return false;\n                    }\n                ;\n                ;\n                };\n            ;\n                return (v[x] = true);\n            }, this);\n            return this.uidsIncludingExact(p, w, v);\n        },\n        uidsIncludingExact: function(p, q, r) {\n            var s = q.length;\n            if (((((p.length < this._minExactMatchLength)) || ((s <= this._maxResults))))) {\n                return q;\n            }\n        ;\n        ;\n            for (var t = 0; ((t < s)); ++t) {\n                var u = this.getEntry(q[t]);\n                ((u.text_lower || (u.text_lower = u.text.toLowerCase())));\n                if (((u.text_lower === this._normalizeString(p).flatValue))) {\n                    if (((t >= this._maxResults))) {\n                        var v = q.splice(t, 1);\n                        q.splice(((this._maxResults - 1)), 0, v);\n                    }\n                ;\n                ;\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n            return q;\n        },\n        buildData: function(p) {\n            var q = [], r = Math.min(p.length, this._maxResults);\n            for (var s = 0; ((s < r)); ++s) {\n                q.push(this.getEntry(p[s]));\n            ;\n            };\n        ;\n            return q;\n        },\n        findQueryCache: function(p) {\n            var q = 0, r = null, s = this.getQueryCache();\n            if (this._queryExactMatch) {\n                return ((s[p] || []));\n            }\n        ;\n        ;\n            {\n                var fin100keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin100i = (0);\n                var t;\n                for (; (fin100i < fin100keys.length); (fin100i++)) {\n                    ((t) = (fin100keys[fin100i]));\n                    {\n                        if (((((p.indexOf(t) === 0)) && ((t.length > q))))) {\n                            q = t.length;\n                            r = t;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return ((s[r] || []));\n        },\n        buildQueryResults: function(p) {\n            var q = this._normalizeString(p).flatValue, r = this.findQueryCache(q);\n            if (this.getQueryCache().hasOwnProperty(q)) {\n                return r;\n            }\n        ;\n        ;\n            return this.filterQueryResults(p, r);\n        },\n        filterQueryResults: function(p, q) {\n            var r = ((this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch));\n            return q.filter(function(s) {\n                return r(p, this.getTextToIndex(this.getEntry(s)));\n            }, this);\n        },\n        buildCacheResults: function(p, q) {\n            var r = this._normalizeString(p, this._alwaysPrefixMatch), s = ((this._alwaysPrefixMatch ? r.sortedTokens : r.tokens)), t = s.length, u = ((r.isPrefixQuery ? ((t - 1)) : null)), v = {\n            }, w = {\n            }, x = {\n            }, y = [], z = false, aa = {\n            }, ba = 0;\n            for (var ca = 0; ((ca < t)); ++ca) {\n                var da = s[ca];\n                if (!aa.hasOwnProperty(da)) {\n                    ba++;\n                    aa[da] = true;\n                }\n                 else continue;\n            ;\n            ;\n                {\n                    var fin101keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin101i = (0);\n                    var ea;\n                    for (; (fin101i < fin101keys.length); (fin101i++)) {\n                        ((ea) = (fin101keys[fin101i]));\n                        {\n                            if (((((!v.hasOwnProperty(ea) && ((ea === da)))) || ((((this._alwaysPrefixMatch || ((u === ca)))) && ((ea.indexOf(da) === 0))))))) {\n                                if (((ea === da))) {\n                                    if (w.hasOwnProperty(ea)) {\n                                        z = true;\n                                    }\n                                ;\n                                ;\n                                    v[ea] = true;\n                                }\n                                 else {\n                                    if (((v.hasOwnProperty(ea) || w.hasOwnProperty(ea)))) {\n                                        z = true;\n                                    }\n                                ;\n                                ;\n                                    w[ea] = true;\n                                }\n                            ;\n                            ;\n                                {\n                                    var fin102keys = ((window.top.JSBNG_Replay.forInKeys)((q[ea]))), fin102i = (0);\n                                    var fa;\n                                    for (; (fin102i < fin102keys.length); (fin102i++)) {\n                                        ((fa) = (fin102keys[fin102i]));\n                                        {\n                                            if (((((ca === 0)) || ((x.hasOwnProperty(fa) && ((x[fa] == ((ba - 1))))))))) {\n                                                x[fa] = ba;\n                                            }\n                                        ;\n                                        ;\n                                        };\n                                    };\n                                };\n                            ;\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            };\n        ;\n            {\n                var fin103keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin103i = (0);\n                var ga;\n                for (; (fin103i < fin103keys.length); (fin103i++)) {\n                    ((ga) = (fin103keys[fin103i]));\n                    {\n                        if (((x[ga] == ba))) {\n                            y.push(ga);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((z || ((ba < t))))) {\n                y = this.filterQueryResults(p, y);\n            }\n        ;\n        ;\n            if (((this._titleFields && ((this._titleFields.length > 0))))) {\n                y = this.filterNonTitleMatchQueryResults(p, y);\n            }\n        ;\n        ;\n            return y;\n        },\n        filterNonTitleMatchQueryResults: function(p, q) {\n            return q.filter(function(r) {\n                var s = this._normalizeString(p), t = s.tokens.length;\n                if (((t === 0))) {\n                    return true;\n                }\n            ;\n            ;\n                var u = this.getTitleTerms(this.getEntry(r)), v = s.tokens[0];\n                return ((((((t === 1)) || this._alwaysPrefixMatch)) ? i.isPrefixMatch(v, u) : i.isQueryMatch(v, u)));\n            }, this);\n        },\n        getTitleTerms: function(p) {\n            if (!p.titleToIndex) {\n                p.titleToIndex = this.getTextToIndexFromFields(p, this._titleFields);\n            }\n        ;\n        ;\n            return p.titleToIndex;\n        },\n        deduplicateByKey: function(p) {\n            if (!this._deduplicationKey) {\n                return p;\n            }\n        ;\n        ;\n            var q = l(p.map(this._getDeduplicationKey.bind(this)), p);\n            return p.filter(function(r) {\n                return ((q[this._getDeduplicationKey(r)] == r));\n            }.bind(this));\n        },\n        _getDeduplicationKey: function(p) {\n            var q = this.getEntry(p);\n            return ((q[this._deduplicationKey] || ((((\"__\" + p)) + \"__\"))));\n        },\n        getQueryCache: function() {\n            return this.queryCache;\n        },\n        setMaxResults: function(p) {\n            this._maxResults = p;\n            ((this.value && this.respond(this.value, this.buildUids(this.value))));\n        },\n        updateToken: function(p) {\n            this.token = p;\n            this.dirty();\n            return this;\n        }\n    });\n    e.exports = o;\n});\n__d(\"BanzaiNectar\", [\"Banzai\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\");\n    function h(j) {\n        return {\n            log: function(k, l, m) {\n                var n = {\n                    e: l,\n                    a: m\n                };\n                g.post(((\"nectar:\" + k)), n, j);\n            }\n        };\n    };\n;\n    var i = h();\n    i.create = h;\n    e.exports = i;\n});\n__d(\"DimensionLogging\", [\"BanzaiNectar\",\"DOMDimensions\",], function(a, b, c, d, e, f) {\n    var g = b(\"BanzaiNectar\"), h = b(\"DOMDimensions\"), i = h.getViewportDimensions();\n    g.log(\"browser_dimension\", \"homeload\", {\n        x: i.width,\n        y: i.height,\n        sw: window.JSBNG__screen.width,\n        sh: window.JSBNG__screen.height,\n        aw: window.JSBNG__screen.availWidth,\n        ah: window.JSBNG__screen.availHeight,\n        at: window.JSBNG__screen.availTop,\n        al: window.JSBNG__screen.availLeft\n    });\n});\n__d(\"MultiBootstrapDataSource\", [\"Class\",\"DataSource\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DataSource\");\n    function i(j) {\n        this._bootstrapEndpoints = j.bootstrapEndpoints;\n        this.parent.construct(this, j);\n    };\n;\n    g.extend(i, h);\n    i.prototype.bootstrapWithoutToken = function() {\n        for (var j = 0; ((j < this._bootstrapEndpoints.length)); j++) {\n            this.fetch(this._bootstrapEndpoints[j].endpoint, ((this._bootstrapEndpoints[j].data || {\n            })), {\n                bootstrap: true\n            });\n        ;\n        };\n    ;\n    };\n    e.exports = i;\n});\n__d(\"XHPTemplate\", [\"DataStore\",\"DOM\",\"HTML\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DataStore\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"copyProperties\");\n    function k(m) {\n        this._model = m;\n    };\n;\n    j(k.prototype, {\n        render: function() {\n            if (i.isHTML(this._model)) {\n                this._model = h.setContent(JSBNG__document.createDocumentFragment(), this._model)[0];\n            }\n        ;\n        ;\n            return this._model.cloneNode(true);\n        },\n        build: function() {\n            return new l(this.render());\n        }\n    });\n    j(k, {\n        getNode: function(m, n) {\n            return k.getNodes(m)[n];\n        },\n        getNodes: function(m) {\n            var n = g.get(m, \"XHPTemplate:nodes\");\n            if (!n) {\n                n = {\n                };\n                var o = h.scry(m, \"[data-jsid]\");\n                o.push(m);\n                var p = o.length;\n                while (p--) {\n                    var q = o[p];\n                    n[q.getAttribute(\"data-jsid\")] = q;\n                    q.removeAttribute(\"data-jsid\");\n                };\n            ;\n                g.set(m, \"XHPTemplate:nodes\", n);\n            }\n        ;\n        ;\n            return n;\n        }\n    });\n    function l(m) {\n        this._root = m;\n        this._populateNodes();\n    };\n;\n    j(l.prototype, {\n        _populateNodes: function() {\n            this._nodes = {\n            };\n            this._leaves = {\n            };\n            var m = this._root.getElementsByTagName(\"*\");\n            for (var n = 0, o = m.length; ((n < o)); n++) {\n                var p = m[n], q = p.getAttribute(\"data-jsid\");\n                if (q) {\n                    p.removeAttribute(\"data-jsid\");\n                    this._nodes[q] = p;\n                    this._leaves[q] = !p.childNodes.length;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getNode: function(m) {\n            return this._nodes[m];\n        },\n        setNodeProperty: function(m, n, o) {\n            this.getNode(m)[n] = o;\n            return this;\n        },\n        setNodeContent: function(m, n) {\n            if (!this._leaves[m]) {\n                throw new Error(((\"Can't setContent on non-leaf node: \" + m)));\n            }\n        ;\n        ;\n            h.setContent(this.getNode(m), n);\n            return this;\n        }\n    });\n    e.exports = k;\n});");
36287 // 1655
36288 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o30,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js",o31);
36289 // undefined
36290 o30 = null;
36291 // undefined
36292 o31 = null;
36293 // 1659
36294 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"KPZ5T\",]);\n}\n;\n__d(\"EntStreamGroupMall\", [\"DOM\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"$\"), i = {\n        replacePager: function(j) {\n            g.setContent(h(\"pagelet_group_pager\"), j);\n        },\n        replaceFilesPager: function(j, k) {\n            g.setContent(h((\"group_files_pager_\" + k)), j);\n        }\n    };\n    e.exports = i;\n});\n__d(\"GroupMall\", [\"Animation\",\"Arbiter\",\"DOM\",\"LiveTimer\",\"NavigationMessage\",\"Run\",\"Vector\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"LiveTimer\"), k = b(\"NavigationMessage\"), l = b(\"Run\"), m = b(\"Vector\"), n = b(\"$\"), o = b(\"copyProperties\"), p = b(\"ge\"), q = {\n    };\n    o(q, {\n        init: function(r, s) {\n            this._mallNode = n((\"group_mall_\" + r));\n            this._composerPublishToken = h.subscribe(\"composer/publish\", function(event, t) {\n                if ((((t.composer_id === s) && t.streamStory) && !p(t.streamStory.id))) {\n                    this._addPostToUI(t.streamStory);\n                };\n            }.bind(this));\n            l.onLeave(this._onleave.bind(this));\n            this._navigationBeginToken = h.subscribe(k.NAVIGATION_BEGIN, this._onleave.bind(this));\n        },\n        _onleave: function() {\n            this._navigationBeginToken.unsubscribe();\n            this._composerPublishToken.unsubscribe();\n        },\n        _addPostToUI: function(r) {\n            var s = m.getElementDimensions(this._mallNode).y;\n            i.prependContent(this._mallNode, r);\n            var t = this._mallNode.firstChild;\n            j.startLoop(0);\n            new g(t).from(\"opacity\", 0).to(\"opacity\", 1).duration(300).go();\n        }\n    });\n    e.exports = q;\n});\n__d(\"LitestandShareAttachment\", [\"CSS\",\"DOM\",\"DOMQuery\",\"csx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"DOMQuery\"), j = b(\"csx\"), k = b(\"queryThenMutateDOM\"), l = 16, m = 22, n = 5, o = {\n        1: 5,\n        2: 4,\n        3: 2,\n        4: 0,\n        5: 0\n    }, p, q = {\n        init: function(u) {\n            var v, w, x;\n            k(function() {\n                v = h.find(u, \"._6m6\");\n                w = h.scry(u, \"._6m7\")[0];\n                x = t(v);\n            }, function() {\n                if (!x) {\n                    r(v, (n * m));\n                }\n                 else if ((w && x)) {\n                    g.show(w);\n                    r(w, (x * l));\n                }\n                \n            ;\n            });\n        }\n    };\n    function r(u, v) {\n        var w = u.scrollHeight;\n        if ((w <= v)) {\n            return u\n        };\n        var x, y = \"...\", z = i.getText(u);\n        while ((w > v)) {\n            x = z.lastIndexOf(\" \");\n            if ((x === -1)) {\n                x = ((z.length - y.length) - 1);\n            };\n            z = (z.substr(0, x).trim() + y);\n            s(u, z);\n            w = u.scrollHeight;\n        };\n    };\n    function s(u, v) {\n        p = (p || (((u.textContent != null) ? \"textContent\" : \"innerText\")));\n        u[p] = v;\n    };\n    function t(u) {\n        var v = Math.round((u.scrollHeight / m));\n        return o[v];\n    };\n    e.exports = q;\n});\n__d(\"highlight\", [\"Animation\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Style\");\n    function i(j, k, l) {\n        new g(j).from(\"background\", \"#fff9d7\").to(\"background\", (l || \"#fff\")).ease(g.ease.both).duration(2000).ondone(function() {\n            h.set(j, \"background\", \"\");\n            (k && k());\n        }).go();\n    };\n    i.highlight = i;\n    e.exports = i;\n});\n__d(\"ScrollHighlight\", [\"DOMScroll\",\"highlight\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMScroll\"), h = b(\"highlight\"), i = {\n        actOn: function(j, k) {\n            g.scrollTo(j);\n            h(j, null, k);\n        }\n    };\n    e.exports = i;\n});\n__d(\"foldl\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        var k = 0, l = i.length;\n        if ((l === 0)) {\n            if ((j === undefined)) {\n                throw new TypeError(\"Reduce of empty array with no initial value\")\n            };\n            return j;\n        }\n    ;\n        if ((j === undefined)) {\n            j = i[k++];\n        };\n        while ((k < l)) {\n            if ((k in i)) {\n                j = h(j, i[k]);\n            };\n            k++;\n        };\n        return j;\n    };\n    e.exports = g;\n});\n__d(\"FacebarStructuredFragment\", [], function(a, b, c, d, e, f) {\n    function g(i, j) {\n        if ((i && j)) {\n            return (i.toLowerCase() == j.toLowerCase());\n        }\n         else return (!i && !j)\n    ;\n    };\n    function h(i) {\n        this._text = String(i.text);\n        this._uid = (i.uid ? String(i.uid) : null);\n        this._type = (i.type ? String(i.type) : null);\n        this._typeParts = null;\n    };\n    h.prototype.getText = function() {\n        return this._text;\n    };\n    h.prototype.getUID = function() {\n        return this._uid;\n    };\n    h.prototype.getType = function() {\n        return this._type;\n    };\n    h.prototype.getTypePart = function(i) {\n        return this._getTypeParts()[i];\n    };\n    h.prototype.getLength = function() {\n        return this._text.length;\n    };\n    h.prototype.isType = function(i) {\n        for (var j = 0; (j < arguments.length); j++) {\n            if (!g(arguments[j], this.getTypePart(j))) {\n                return false\n            };\n        };\n        return true;\n    };\n    h.prototype.isWhitespace = function() {\n        return (/^\\s*$/).test(this._text);\n    };\n    h.prototype.toStruct = function() {\n        return {\n            text: this._text,\n            type: this._type,\n            uid: this._uid\n        };\n    };\n    h.prototype.getHash = function(i) {\n        var j = ((i != null) ? this._getTypeParts().slice(0, i).join(\":\") : this._type);\n        return ((j + \"::\") + this._text);\n    };\n    h.prototype._getTypeParts = function() {\n        if ((this._typeParts === null)) {\n            this._typeParts = (this._type ? this._type.split(\":\") : []);\n        };\n        return this._typeParts;\n    };\n    e.exports = h;\n});\n__d(\"FacebarStructuredText\", [\"createArrayFrom\",\"foldl\",\"FacebarStructuredFragment\",], function(a, b, c, d, e, f) {\n    var g = b(\"createArrayFrom\"), h = b(\"foldl\"), i = b(\"FacebarStructuredFragment\"), j = /\\s+$/;\n    function k(o) {\n        if (!o) {\n            return [];\n        }\n         else if ((o instanceof n)) {\n            return o.toArray();\n        }\n         else return g(o).map(function(p) {\n            return new i(p);\n        })\n        \n    ;\n    };\n    function l(o) {\n        return new i({\n            text: o,\n            type: \"text\"\n        });\n    };\n    function m(o, p, q) {\n        var r = o.getText(), s = r.replace(p, q);\n        if ((r != s)) {\n            return new i({\n                text: s,\n                type: o.getType(),\n                uid: o.getUID()\n            });\n        }\n         else return o\n    ;\n    };\n    function n(o) {\n        this._fragments = (o || []);\n        this._hash = null;\n    };\n    n.prototype.matches = function(o, p) {\n        if (o) {\n            var q = this._fragments, r = o._fragments;\n            return ((q.length == r.length) && !q.some(function(s, t) {\n                if ((!p && s.getUID())) {\n                    return (s.getUID() != r[t].getUID());\n                }\n                 else return ((s.getText() != r[t].getText()) || (s.getType() != r[t].getType()))\n            ;\n            }));\n        }\n    ;\n        return false;\n    };\n    n.prototype.trim = function() {\n        var o = null, p = null;\n        this.forEach(function(r, s) {\n            if (!r.isWhitespace()) {\n                if ((o === null)) {\n                    o = s;\n                };\n                p = s;\n            }\n        ;\n        });\n        if ((p !== null)) {\n            var q = this._fragments.slice(o, (p + 1));\n            q.push(m(q.pop(), j, \"\"));\n            return new n(q);\n        }\n         else return new n([])\n    ;\n    };\n    n.prototype.pad = function() {\n        var o = this.getFragment(-1);\n        if (((o && !j.test(o.getText())) && (o.getText() !== \"\"))) {\n            return new n(this._fragments.concat(l(\" \")));\n        }\n         else return this\n    ;\n    };\n    n.prototype.forEach = function(o) {\n        this._fragments.forEach(o);\n        return this;\n    };\n    n.prototype.matchType = function(o) {\n        var p = null;\n        for (var q = 0; (q < this._fragments.length); q++) {\n            var r = this._fragments[q], s = r.isType.apply(r, arguments);\n            if ((s && !p)) {\n                p = r;\n            }\n             else if ((s || !r.isWhitespace())) {\n                return null\n            }\n        ;\n        };\n        return p;\n    };\n    n.prototype.hasType = function(o) {\n        var p = arguments;\n        return this._fragments.some(function(q) {\n            return (!q.isWhitespace() && q.isType.apply(q, p));\n        });\n    };\n    n.prototype.isEmptyOrWhitespace = function() {\n        return !this._fragments.some(function(o) {\n            return !o.isWhitespace();\n        });\n    };\n    n.prototype.isEmpty = function() {\n        return (this.getLength() === 0);\n    };\n    n.prototype.getFragment = function(o) {\n        return this._fragments[((o >= 0) ? o : (this._fragments.length + o))];\n    };\n    n.prototype.getCount = function() {\n        return this._fragments.length;\n    };\n    n.prototype.getLength = function() {\n        return h(function(o, p) {\n            return (o + p.getLength());\n        }, this._fragments, 0);\n    };\n    n.prototype.toStruct = function() {\n        return this._fragments.map(function(o) {\n            return o.toStruct();\n        });\n    };\n    n.prototype.toArray = function() {\n        return this._fragments.slice();\n    };\n    n.prototype.toString = function() {\n        return this._fragments.map(function(o) {\n            return o.getText();\n        }).join(\"\");\n    };\n    n.prototype.getHash = function() {\n        if ((this._hash === null)) {\n            this._hash = this._fragments.map(function(o) {\n                if (o.getUID()) {\n                    return ((\"[[\" + o.getHash(1)) + \"]]\");\n                }\n                 else return o.getText()\n            ;\n            }).join(\"\");\n        };\n        return this._hash;\n    };\n    n.fromStruct = function(o) {\n        return new n(k(o));\n    };\n    n.fromString = function(o) {\n        return new n([l(o),]);\n    };\n    e.exports = n;\n});\n__d(\"FacebarNavigation\", [\"Arbiter\",\"csx\",\"DOMQuery\",\"FacebarStructuredText\",\"Input\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"csx\"), i = b(\"DOMQuery\"), j = b(\"FacebarStructuredText\"), k = b(\"Input\"), l = b(\"URI\"), m = null, n = null, o = null, p = false, q = true, r = (function() {\n        var v = {\n        }, w = function(x) {\n            return (\"uri-\" + x.getQualifiedURI().toString());\n        };\n        return {\n            set: function(x, y) {\n                v[w(x)] = y;\n            },\n            get: function(x) {\n                return v[w(x)];\n            }\n        };\n    })();\n    function s(v, w) {\n        o = v;\n        p = w;\n        q = false;\n        t();\n    };\n    function t() {\n        if (q) {\n            return;\n        }\n         else if (n) {\n            (p && n.pageTransition());\n            n.setPageQuery(o);\n            q = true;\n        }\n         else if (((m && o) && !k.getValue(m))) {\n            k.setValue(m, (o.structure.toString() + \" \"));\n        }\n        \n    ;\n    };\n    g.subscribe(\"page_transition\", function(v, w) {\n        s(r.get(w.uri), true);\n    });\n    var u = {\n        registerInput: function(v) {\n            m = i.scry(v, \"._586f\")[0];\n            t();\n        },\n        registerBehavior: function(v) {\n            n = v;\n            t();\n        },\n        setPageQuery: function(v) {\n            r.set(l.getNextURI(), v);\n            v.structure = j.fromStruct(v.structure);\n            s(v, false);\n        }\n    };\n    e.exports = u;\n});");
36295 // 1660
36296 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s432d2d37a964b93da04968ef608f9248ba0f3d25");
36297 // 1661
36298 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"KPZ5T\",]);\n}\n;\n;\n__d(\"EntStreamGroupMall\", [\"DOM\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"$\"), i = {\n        replacePager: function(j) {\n            g.setContent(h(\"pagelet_group_pager\"), j);\n        },\n        replaceFilesPager: function(j, k) {\n            g.setContent(h(((\"group_files_pager_\" + k))), j);\n        }\n    };\n    e.exports = i;\n});\n__d(\"GroupMall\", [\"Animation\",\"Arbiter\",\"DOM\",\"LiveTimer\",\"NavigationMessage\",\"Run\",\"Vector\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"LiveTimer\"), k = b(\"NavigationMessage\"), l = b(\"Run\"), m = b(\"Vector\"), n = b(\"$\"), o = b(\"copyProperties\"), p = b(\"ge\"), q = {\n    };\n    o(q, {\n        init: function(r, s) {\n            this._mallNode = n(((\"group_mall_\" + r)));\n            this._composerPublishToken = h.subscribe(\"composer/publish\", function(JSBNG__event, t) {\n                if (((((((t.composer_id === s)) && t.streamStory)) && !p(t.streamStory.id)))) {\n                    this._addPostToUI(t.streamStory);\n                }\n            ;\n            ;\n            }.bind(this));\n            l.onLeave(this._onleave.bind(this));\n            this._navigationBeginToken = h.subscribe(k.NAVIGATION_BEGIN, this._onleave.bind(this));\n        },\n        _onleave: function() {\n            this._navigationBeginToken.unsubscribe();\n            this._composerPublishToken.unsubscribe();\n        },\n        _addPostToUI: function(r) {\n            var s = m.getElementDimensions(this._mallNode).y;\n            i.prependContent(this._mallNode, r);\n            var t = this._mallNode.firstChild;\n            j.startLoop(0);\n            new g(t).from(\"opacity\", 0).to(\"opacity\", 1).duration(300).go();\n        }\n    });\n    e.exports = q;\n});\n__d(\"LitestandShareAttachment\", [\"CSS\",\"DOM\",\"DOMQuery\",\"csx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"DOMQuery\"), j = b(\"csx\"), k = b(\"queryThenMutateDOM\"), l = 16, m = 22, n = 5, o = {\n        1: 5,\n        2: 4,\n        3: 2,\n        4: 0,\n        5: 0\n    }, p, q = {\n        init: function(u) {\n            var v, w, x;\n            k(function() {\n                v = h.JSBNG__find(u, \"._6m6\");\n                w = h.scry(u, \"._6m7\")[0];\n                x = t(v);\n            }, function() {\n                if (!x) {\n                    r(v, ((n * m)));\n                }\n                 else if (((w && x))) {\n                    g.show(w);\n                    r(w, ((x * l)));\n                }\n                \n            ;\n            ;\n            });\n        }\n    };\n    function r(u, v) {\n        var w = u.scrollHeight;\n        if (((w <= v))) {\n            return u;\n        }\n    ;\n    ;\n        var x, y = \"...\", z = i.getText(u);\n        while (((w > v))) {\n            x = z.lastIndexOf(\" \");\n            if (((x === -1))) {\n                x = ((((z.length - y.length)) - 1));\n            }\n        ;\n        ;\n            z = ((z.substr(0, x).trim() + y));\n            s(u, z);\n            w = u.scrollHeight;\n        };\n    ;\n    };\n;\n    function s(u, v) {\n        p = ((p || ((((u.textContent != null)) ? \"textContent\" : \"innerText\"))));\n        u[p] = v;\n    };\n;\n    function t(u) {\n        var v = Math.round(((u.scrollHeight / m)));\n        return o[v];\n    };\n;\n    e.exports = q;\n});\n__d(\"highlight\", [\"Animation\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Style\");\n    function i(j, k, l) {\n        new g(j).from(\"background\", \"#fff9d7\").to(\"background\", ((l || \"#fff\"))).ease(g.ease.both).duration(2000).ondone(function() {\n            h.set(j, \"background\", \"\");\n            ((k && k()));\n        }).go();\n    };\n;\n    i.highlight = i;\n    e.exports = i;\n});\n__d(\"ScrollHighlight\", [\"DOMScroll\",\"highlight\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMScroll\"), h = b(\"highlight\"), i = {\n        actOn: function(j, k) {\n            g.JSBNG__scrollTo(j);\n            h(j, null, k);\n        }\n    };\n    e.exports = i;\n});\n__d(\"foldl\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        var k = 0, l = i.length;\n        if (((l === 0))) {\n            if (((j === undefined))) {\n                throw new TypeError(\"Reduce of empty array with no initial value\");\n            }\n        ;\n        ;\n            return j;\n        }\n    ;\n    ;\n        if (((j === undefined))) {\n            j = i[k++];\n        }\n    ;\n    ;\n        while (((k < l))) {\n            if (((k in i))) {\n                j = h(j, i[k]);\n            }\n        ;\n        ;\n            k++;\n        };\n    ;\n        return j;\n    };\n;\n    e.exports = g;\n});\n__d(\"FacebarStructuredFragment\", [], function(a, b, c, d, e, f) {\n    function g(i, j) {\n        if (((i && j))) {\n            return ((i.toLowerCase() == j.toLowerCase()));\n        }\n         else return ((!i && !j))\n    ;\n    };\n;\n    function h(i) {\n        this._text = String(i.text);\n        this._uid = ((i.uid ? String(i.uid) : null));\n        this._type = ((i.type ? String(i.type) : null));\n        this._typeParts = null;\n    };\n;\n    h.prototype.getText = function() {\n        return this._text;\n    };\n    h.prototype.getUID = function() {\n        return this._uid;\n    };\n    h.prototype.getType = function() {\n        return this._type;\n    };\n    h.prototype.getTypePart = function(i) {\n        return this._getTypeParts()[i];\n    };\n    h.prototype.getLength = function() {\n        return this._text.length;\n    };\n    h.prototype.isType = function(i) {\n        for (var j = 0; ((j < arguments.length)); j++) {\n            if (!g(arguments[j], this.getTypePart(j))) {\n                return false;\n            }\n        ;\n        ;\n        };\n    ;\n        return true;\n    };\n    h.prototype.isWhitespace = function() {\n        return (/^\\s*$/).test(this._text);\n    };\n    h.prototype.toStruct = function() {\n        return {\n            text: this._text,\n            type: this._type,\n            uid: this._uid\n        };\n    };\n    h.prototype.getHash = function(i) {\n        var j = ((((i != null)) ? this._getTypeParts().slice(0, i).join(\":\") : this._type));\n        return ((((j + \"::\")) + this._text));\n    };\n    h.prototype._getTypeParts = function() {\n        if (((this._typeParts === null))) {\n            this._typeParts = ((this._type ? this._type.split(\":\") : []));\n        }\n    ;\n    ;\n        return this._typeParts;\n    };\n    e.exports = h;\n});\n__d(\"FacebarStructuredText\", [\"createArrayFrom\",\"foldl\",\"FacebarStructuredFragment\",], function(a, b, c, d, e, f) {\n    var g = b(\"createArrayFrom\"), h = b(\"foldl\"), i = b(\"FacebarStructuredFragment\"), j = /\\s+$/;\n    function k(o) {\n        if (!o) {\n            return [];\n        }\n         else if (((o instanceof n))) {\n            return o.toArray();\n        }\n         else return g(o).map(function(p) {\n            return new i(p);\n        })\n        \n    ;\n    };\n;\n    function l(o) {\n        return new i({\n            text: o,\n            type: \"text\"\n        });\n    };\n;\n    function m(o, p, q) {\n        var r = o.getText(), s = r.replace(p, q);\n        if (((r != s))) {\n            return new i({\n                text: s,\n                type: o.getType(),\n                uid: o.getUID()\n            });\n        }\n         else return o\n    ;\n    };\n;\n    function n(o) {\n        this._fragments = ((o || []));\n        this._hash = null;\n    };\n;\n    n.prototype.matches = function(o, p) {\n        if (o) {\n            var q = this._fragments, r = o._fragments;\n            return ((((q.length == r.length)) && !q.some(function(s, t) {\n                if (((!p && s.getUID()))) {\n                    return ((s.getUID() != r[t].getUID()));\n                }\n                 else return ((((s.getText() != r[t].getText())) || ((s.getType() != r[t].getType()))))\n            ;\n            })));\n        }\n    ;\n    ;\n        return false;\n    };\n    n.prototype.trim = function() {\n        var o = null, p = null;\n        this.forEach(function(r, s) {\n            if (!r.isWhitespace()) {\n                if (((o === null))) {\n                    o = s;\n                }\n            ;\n            ;\n                p = s;\n            }\n        ;\n        ;\n        });\n        if (((p !== null))) {\n            var q = this._fragments.slice(o, ((p + 1)));\n            q.push(m(q.pop(), j, \"\"));\n            return new n(q);\n        }\n         else return new n([])\n    ;\n    };\n    n.prototype.pad = function() {\n        var o = this.getFragment(-1);\n        if (((((o && !j.test(o.getText()))) && ((o.getText() !== \"\"))))) {\n            return new n(this._fragments.concat(l(\" \")));\n        }\n         else return this\n    ;\n    };\n    n.prototype.forEach = function(o) {\n        this._fragments.forEach(o);\n        return this;\n    };\n    n.prototype.matchType = function(o) {\n        var p = null;\n        for (var q = 0; ((q < this._fragments.length)); q++) {\n            var r = this._fragments[q], s = r.isType.apply(r, arguments);\n            if (((s && !p))) {\n                p = r;\n            }\n             else if (((s || !r.isWhitespace()))) {\n                return null;\n            }\n            \n        ;\n        ;\n        };\n    ;\n        return p;\n    };\n    n.prototype.hasType = function(o) {\n        var p = arguments;\n        return this._fragments.some(function(q) {\n            return ((!q.isWhitespace() && q.isType.apply(q, p)));\n        });\n    };\n    n.prototype.isEmptyOrWhitespace = function() {\n        return !this._fragments.some(function(o) {\n            return !o.isWhitespace();\n        });\n    };\n    n.prototype.isEmpty = function() {\n        return ((this.getLength() === 0));\n    };\n    n.prototype.getFragment = function(o) {\n        return this._fragments[((((o >= 0)) ? o : ((this._fragments.length + o))))];\n    };\n    n.prototype.getCount = function() {\n        return this._fragments.length;\n    };\n    n.prototype.getLength = function() {\n        return h(function(o, p) {\n            return ((o + p.getLength()));\n        }, this._fragments, 0);\n    };\n    n.prototype.toStruct = function() {\n        return this._fragments.map(function(o) {\n            return o.toStruct();\n        });\n    };\n    n.prototype.toArray = function() {\n        return this._fragments.slice();\n    };\n    n.prototype.toString = function() {\n        return this._fragments.map(function(o) {\n            return o.getText();\n        }).join(\"\");\n    };\n    n.prototype.getHash = function() {\n        if (((this._hash === null))) {\n            this._hash = this._fragments.map(function(o) {\n                if (o.getUID()) {\n                    return ((((\"[[\" + o.getHash(1))) + \"]]\"));\n                }\n                 else return o.getText()\n            ;\n            }).join(\"\");\n        }\n    ;\n    ;\n        return this._hash;\n    };\n    n.fromStruct = function(o) {\n        return new n(k(o));\n    };\n    n.fromString = function(o) {\n        return new n([l(o),]);\n    };\n    e.exports = n;\n});\n__d(\"FacebarNavigation\", [\"Arbiter\",\"csx\",\"DOMQuery\",\"FacebarStructuredText\",\"Input\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"csx\"), i = b(\"DOMQuery\"), j = b(\"FacebarStructuredText\"), k = b(\"Input\"), l = b(\"URI\"), m = null, n = null, o = null, p = false, q = true, r = (function() {\n        var v = {\n        }, w = function(x) {\n            return ((\"uri-\" + x.getQualifiedURI().toString()));\n        };\n        return {\n            set: function(x, y) {\n                v[w(x)] = y;\n            },\n            get: function(x) {\n                return v[w(x)];\n            }\n        };\n    })();\n    function s(v, w) {\n        o = v;\n        p = w;\n        q = false;\n        t();\n    };\n;\n    function t() {\n        if (q) {\n            return;\n        }\n         else if (n) {\n            ((p && n.pageTransition()));\n            n.setPageQuery(o);\n            q = true;\n        }\n         else if (((((m && o)) && !k.getValue(m)))) {\n            k.setValue(m, ((o.structure.toString() + \" \")));\n        }\n        \n        \n    ;\n    ;\n    };\n;\n    g.subscribe(\"page_transition\", function(v, w) {\n        s(r.get(w.uri), true);\n    });\n    var u = {\n        registerInput: function(v) {\n            m = i.scry(v, \"._586f\")[0];\n            t();\n        },\n        registerBehavior: function(v) {\n            n = v;\n            t();\n        },\n        setPageQuery: function(v) {\n            r.set(l.getNextURI(), v);\n            v.structure = j.fromStruct(v.structure);\n            s(v, false);\n        }\n    };\n    e.exports = u;\n});");
36299 // 1664
36300 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o32,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/lUdBiFiT5WF.js",o33);
36301 // undefined
36302 o32 = null;
36303 // undefined
36304 o33 = null;
36305 // 1669
36306 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_166[0], o28,o34);
36307 // undefined
36308 o28 = null;
36309 // undefined
36310 o34 = null;
36311 // 1673
36312 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_169[0](false);
36313 // 1679
36314 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_main_column_personal\",],\n    content: {\n        pagelet_escape_hatch: {\n            container_id: \"u_0_r\"\n        }\n    },\n    jsmods: {\n        require: [[\"AddFriendButton\",\"init\",[\"m_0_1o\",],[{\n            __m: \"m_0_1o\"\n        },1055580469,false,\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",null,null,null,false,],],[\"m_0_1p\",],[\"FriendListFlyoutController\",\"init\",[\"m_0_1p\",],[{\n            __m: \"m_0_1p\"\n        },50,],],[\"AddFriendButton\",\"init\",[\"m_0_1r\",],[{\n            __m: \"m_0_1r\"\n        },1055580469,null,\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",\"\",true,null,false,null,0,],],[\"FriendStatus\",\"setSpecialLists\",[],[{\n            close: 1374283956118870,\n            acq: \"100006118350059_124542800973931\"\n        },],],],\n        instances: [[\"m_0_1p\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_1q\",],[{\n            width: 192,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"below\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_1q\"\n        },],3,],],\n        elements: [[\"m_0_1r\",\"u_0_o\",2,],[\"m_0_1o\",\"u_0_q\",2,],],\n        markup: [[\"m_0_1q\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"FriendListFlyoutLoading\\\"\\u003E\\u003Cimg class=\\\"mvl center img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",\"0duP3\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"3SGVa\",],\n    id: \"pagelet_escape_hatch\",\n    phase: 1\n});");
36315 // 1680
36316 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s59777a653b179d9e8cc116abbe8f9965a35842ca");
36317 // 1681
36318 geval("bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_main_column_personal\",],\n    JSBNG__content: {\n        pagelet_escape_hatch: {\n            container_id: \"u_0_r\"\n        }\n    },\n    jsmods: {\n        require: [[\"AddFriendButton\",\"init\",[\"m_0_1o\",],[{\n            __m: \"m_0_1o\"\n        },1055580469,false,\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",null,null,null,false,],],[\"m_0_1p\",],[\"FriendListFlyoutController\",\"init\",[\"m_0_1p\",],[{\n            __m: \"m_0_1p\"\n        },50,],],[\"AddFriendButton\",\"init\",[\"m_0_1r\",],[{\n            __m: \"m_0_1r\"\n        },1055580469,null,\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",\"\",true,null,false,null,0,],],[\"FriendStatus\",\"setSpecialLists\",[],[{\n            close: 1374283956118870,\n            acq: \"100006118350059_124542800973931\"\n        },],],],\n        instances: [[\"m_0_1p\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_1q\",],[{\n            width: 192,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"below\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_1q\"\n        },],3,],],\n        elements: [[\"m_0_1r\",\"u_0_o\",2,],[\"m_0_1o\",\"u_0_q\",2,],],\n        markup: [[\"m_0_1q\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"FriendListFlyoutLoading\\\"\\u003E\\u003Cimg class=\\\"mvl center img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",\"0duP3\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"3SGVa\",],\n    id: \"pagelet_escape_hatch\",\n    phase: 1\n});");
36319 // 1700
36320 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_main_column_personal\",],\n    content: {\n        pagelet_above_header_timeline: \"\"\n    },\n    jsmods: {\n        require: [[\"m_0_1s\",],[\"m_0_1u\",],[\"TimelineCurationNUXController\",\"init\",[\"m_0_1s\",\"m_0_1u\",],[{\n            next_step: \"add_button\",\n            dialogs: {\n                add_button: {\n                    __m: \"m_0_1s\"\n                },\n                privacy: {\n                    __m: \"m_0_1u\"\n                }\n            }\n        },],],],\n        instances: [[\"m_0_1s\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_1t\",],[{\n            width: 300,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"above\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },]\n        },{\n            __m: \"m_0_1t\"\n        },],3,],[\"m_0_1u\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_1v\",],[{\n            width: 300,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"right\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_1v\"\n        },],3,],],\n        define: [[\"AdsCurrencyConfig\",[],{\n            currencies: {\n                ARS: [\"{symbol} {amount}\",\"$\",100,],\n                AUD: [\"{symbol}{amount}\",\"$\",100,],\n                BOB: [\"{symbol} {amount}\",\"$b\",100,],\n                BRL: [\"{symbol} {amount}\",\"R$\",100,],\n                GBP: [\"{symbol}{amount}\",\"\\u00a3\",100,],\n                CAD: [\"{symbol}{amount}\",\"$\",100,],\n                CLP: [\"{symbol} {amount}\",\"$\",1,],\n                CNY: [\"{amount} {symbol}\",\"\\uffe5\",100,],\n                COP: [\"{symbol} {amount}\",\"$\",1,],\n                CRC: [\"{symbol}{amount}\",\"\\u20a1\",1,],\n                CZK: [\"{amount} {symbol}\",\"K\\u010d\",100,],\n                DKK: [\"{symbol} {amount}\",\"DKK\",100,],\n                EUR: [\"{symbol} {amount}\",\"\\u20ac\",100,],\n                GTQ: [\"{symbol}{amount}\",\"Q\",100,],\n                HNL: [\"{symbol} {amount}\",\"L.\",100,],\n                HKD: [\"{symbol}{amount}\",\"$\",100,],\n                HUF: [\"{amount} {symbol}\",\"Ft\",1,],\n                ISK: [\"{amount} {symbol}\",\"kr.\",1,],\n                INR: [\"{symbol} {amount}\",\"\\u0930\\u0941\",100,],\n                IDR: [\"{symbol} {amount}\",\"Rp\",1,],\n                ILS: [\"{symbol} {amount}\",\"\\u20aa\",100,],\n                JPY: [\"{symbol}{amount}\",\"\\u00a5\",1,],\n                KRW: [\"{symbol}{amount}\",\"\\u20a9\",1,],\n                MOP: [\"{symbol}{amount}\",\"MOP\",100,],\n                MYR: [\"{symbol}{amount}\",\"R\",100,],\n                MXN: [\"{symbol}{amount}\",\"$\",100,],\n                NZD: [\"{amount}{symbol}\",\"$\",100,],\n                NIO: [\"{symbol} {amount}\",\"C$\",100,],\n                NOK: [\"{symbol} {amount}\",\"NOK\",100,],\n                PYG: [\"{symbol} {amount}\",\"Gs\",1,],\n                PEN: [\"{symbol} {amount}\",\"S/.\",100,],\n                PHP: [\"{symbol}{amount}\",\"Php\",100,],\n                PLN: [\"{amount} {symbol}\",\"z\\u0142\",100,],\n                QAR: [\"{amount} {symbol}\",\"\\u0631.\\u0642.\",100,],\n                RON: [\"{amount} {symbol}\",\"lei\",100,],\n                RUB: [\"{amount}{symbol}\",\"RUB\",100,],\n                SAR: [\"{amount} {symbol}\",\"\\u0631.\\u0633.\",100,],\n                SGD: [\"{symbol}{amount}\",\"$\",100,],\n                ZAR: [\"{symbol} {amount}\",\"R\",100,],\n                SEK: [\"{amount} {symbol}\",\"kr\",100,],\n                CHF: [\"{symbol} {amount}\",\"CHF\",100,],\n                TWD: [\"{symbol}{amount}\",\"NT$\",1,],\n                THB: [\"{symbol}{amount}\",\"\\u0e3f\",100,],\n                TRY: [\"{amount} {symbol}\",\"TL\",100,],\n                AED: [\"{amount} {symbol}\",\"\\u062f.\\u0625.\",100,],\n                USD: [\"{symbol}{amount}\",\"$\",100,],\n                UYU: [\"{symbol} {amount}\",\"$U\",100,],\n                VEF: [\"{symbol} {amount}\",\"Bs\",100,],\n                VND: [\"{amount} {symbol}\",\"\\u20ab\",1,]\n            }\n        },168,],[\"TimelineDynamicSectionConfig\",[\"m_0_1w\",\"m_0_1x\",\"m_0_1y\",],{\n            smallThrobber: {\n                __m: \"m_0_1w\"\n            },\n            pager: {\n                __m: \"m_0_1x\"\n            },\n            throbber: {\n                __m: \"m_0_1y\"\n            },\n            skmapping: {\n                friends_recent: \"friends\",\n                friends_all: \"friends\",\n                friends_mutual: \"friends\",\n                photos_of: \"photos\",\n                photos_all: \"photos\",\n                photos_albums: \"photos\",\n                likes_recent: null,\n                info_all: \"info\",\n                music_my_music: \"music\",\n                music_favs: \"music\",\n                music_playlists: \"music\",\n                places_all: \"map\",\n                books_read: \"books\",\n                books_favorite: \"books\",\n                books_want: \"books\",\n                places_recent: null,\n                fitness_overview: \"fitness\",\n                fitness_daily_activity: null,\n                fitness_sports_i_play: null,\n                friends_featured: null,\n                places_want: null,\n                info_basic: \"info\",\n                info_contact: null,\n                fitness_running: \"fitness\",\n                fitness_cycling: \"fitness\",\n                friends_followers: \"friends\",\n                friends_following: \"friends\",\n                music_radio: \"music\",\n                info_history: \"info\",\n                games_play: \"games\",\n                products_want: null,\n                photos_archive: \"photos\",\n                notes_my_notes: \"notes\",\n                notes_drafts: \"notes\",\n                notes_about_me: \"notes\",\n                likes_sports_teams: \"likes\",\n                likes_activities: \"likes\",\n                likes_interests: \"likes\",\n                likes_other: \"likes\",\n                video_movies_watch: \"movies\",\n                video_tv_show_watch: \"tv\",\n                music_saved: \"music\",\n                video_movies_want: \"movies\",\n                video_tv_show_want: \"tv\",\n                video_movies_favorite: \"movies\",\n                video_tv_show_favorite: \"tv\",\n                friends_high_school: \"friends\",\n                friends_college: \"friends\",\n                friends_work: \"friends\",\n                friends_suggested: \"friends\",\n                apps_like: \"games\",\n                upcoming_events: \"events\",\n                past_events: \"events\",\n                likes_people: \"likes\",\n                likes_sports: \"likes\",\n                likes_athletes: \"likes\",\n                fitness_report: null,\n                groups_member: \"groups\",\n                music_all_time: \"music\",\n                music_heavy_rotation: \"music\",\n                photos_album: \"photos\",\n                photos_untagged: \"photos\",\n                music_mutual: \"music\",\n                likes_foods: \"likes\",\n                likes_restaurants: \"likes\",\n                restaurants_visited: \"restaurants\",\n                restaurants_want: \"restaurants\",\n                likes_websites: \"likes\",\n                likes_clothing: \"likes\",\n                followers: \"friends\",\n                following: \"friends\",\n                media_set: \"photos\",\n                photos_stream: \"photos\",\n                photos_synced: \"photos\"\n            }\n        },68,],[\"AppSectionCurationState\",[],{\n            showItems: \"show_items\",\n            showApps: \"show_apps\",\n            hide: \"hide\"\n        },145,],[\"NumberFormatConfig\",[],{\n            decimalSeparator: \".\",\n            numberDelimiter: \",\"\n        },54,],],\n        markup: [[\"m_0_1t\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Close\\\" class=\\\"layerButton rfloat uiCloseButton uiCloseButtonSmall\\\" href=\\\"#\\\" role=\\\"button\\\" data-action=\\\"close\\\"\\u003E\\u003C/a\\u003EUse the [+] button or search tool to add a story about movies, books or something else you enjoy.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Ca class=\\\"_42ft _42fu layerButton uiOverlayButton selected _42g-\\\" role=\\\"button\\\" href=\\\"#\\\" data-action=\\\"next\\\"\\u003ENext\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_1v\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Close\\\" class=\\\"layerButton rfloat uiCloseButton uiCloseButtonSmall\\\" href=\\\"#\\\" role=\\\"button\\\" data-action=\\\"done\\\"\\u003E\\u003C/a\\u003EUse the audience selector to choose who can see what you add [+].\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Ca class=\\\"_42ft _42fu layerButton uiOverlayButton selected _42g-\\\" role=\\\"button\\\" href=\\\"#\\\" data-action=\\\"done\\\"\\u003EDone\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_1w\",{\n            __html: \"\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\"\n        },2,],[\"m_0_1x\",{\n            __html: \"\\u003Ca class=\\\"_3t3\\\" href=\\\"#\\\" data-referrer=\\\"timeline_collections_overview_see_all\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"_3t5 fwb\\\"\\u003ESee All\\u003C/span\\u003E\\u003Cimg class=\\\"uiLoadingIndicatorAsync img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003C/a\\u003E\"\n        },2,],[\"m_0_1y\",{\n            __html: \"\\u003Cimg class=\\\"_359 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/jKEcVPZFk-2.gif\\\" alt=\\\"\\\" width=\\\"32\\\" height=\\\"32\\\" /\\u003E\"\n        },2,],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"3SGVa\",\"OJTM4\",],\n    id: \"pagelet_above_header_timeline\",\n    phase: 1\n});");
36321 // 1701
36322 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s44966f4b4efc7bf5a05845d74c60242fea5ee0dd");
36323 // 1702
36324 geval("bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_main_column_personal\",],\n    JSBNG__content: {\n        pagelet_above_header_timeline: \"\"\n    },\n    jsmods: {\n        require: [[\"m_0_1s\",],[\"m_0_1u\",],[\"TimelineCurationNUXController\",\"init\",[\"m_0_1s\",\"m_0_1u\",],[{\n            next_step: \"add_button\",\n            dialogs: {\n                add_button: {\n                    __m: \"m_0_1s\"\n                },\n                privacy: {\n                    __m: \"m_0_1u\"\n                }\n            }\n        },],],],\n        instances: [[\"m_0_1s\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_1t\",],[{\n            width: 300,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"above\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },]\n        },{\n            __m: \"m_0_1t\"\n        },],3,],[\"m_0_1u\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_1v\",],[{\n            width: 300,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"right\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_1v\"\n        },],3,],],\n        define: [[\"AdsCurrencyConfig\",[],{\n            currencies: {\n                ARS: [\"{symbol} {amount}\",\"$\",100,],\n                AUD: [\"{symbol}{amount}\",\"$\",100,],\n                BOB: [\"{symbol} {amount}\",\"$b\",100,],\n                BRL: [\"{symbol} {amount}\",\"R$\",100,],\n                GBP: [\"{symbol}{amount}\",\"\\u00a3\",100,],\n                CAD: [\"{symbol}{amount}\",\"$\",100,],\n                CLP: [\"{symbol} {amount}\",\"$\",1,],\n                CNY: [\"{amount} {symbol}\",\"\\uffe5\",100,],\n                COP: [\"{symbol} {amount}\",\"$\",1,],\n                CRC: [\"{symbol}{amount}\",\"\\u20a1\",1,],\n                CZK: [\"{amount} {symbol}\",\"K\\u010d\",100,],\n                DKK: [\"{symbol} {amount}\",\"DKK\",100,],\n                EUR: [\"{symbol} {amount}\",\"\\u20ac\",100,],\n                GTQ: [\"{symbol}{amount}\",\"Q\",100,],\n                HNL: [\"{symbol} {amount}\",\"L.\",100,],\n                HKD: [\"{symbol}{amount}\",\"$\",100,],\n                HUF: [\"{amount} {symbol}\",\"Ft\",1,],\n                ISK: [\"{amount} {symbol}\",\"kr.\",1,],\n                INR: [\"{symbol} {amount}\",\"\\u0930\\u0941\",100,],\n                IDR: [\"{symbol} {amount}\",\"Rp\",1,],\n                ILS: [\"{symbol} {amount}\",\"\\u20aa\",100,],\n                JPY: [\"{symbol}{amount}\",\"\\u00a5\",1,],\n                KRW: [\"{symbol}{amount}\",\"\\u20a9\",1,],\n                MOP: [\"{symbol}{amount}\",\"MOP\",100,],\n                MYR: [\"{symbol}{amount}\",\"R\",100,],\n                MXN: [\"{symbol}{amount}\",\"$\",100,],\n                NZD: [\"{amount}{symbol}\",\"$\",100,],\n                NIO: [\"{symbol} {amount}\",\"C$\",100,],\n                NOK: [\"{symbol} {amount}\",\"NOK\",100,],\n                PYG: [\"{symbol} {amount}\",\"Gs\",1,],\n                PEN: [\"{symbol} {amount}\",\"S/.\",100,],\n                PHP: [\"{symbol}{amount}\",\"Php\",100,],\n                PLN: [\"{amount} {symbol}\",\"z\\u0142\",100,],\n                QAR: [\"{amount} {symbol}\",\"\\u0631.\\u0642.\",100,],\n                RON: [\"{amount} {symbol}\",\"lei\",100,],\n                RUB: [\"{amount}{symbol}\",\"RUB\",100,],\n                SAR: [\"{amount} {symbol}\",\"\\u0631.\\u0633.\",100,],\n                SGD: [\"{symbol}{amount}\",\"$\",100,],\n                ZAR: [\"{symbol} {amount}\",\"R\",100,],\n                SEK: [\"{amount} {symbol}\",\"kr\",100,],\n                CHF: [\"{symbol} {amount}\",\"CHF\",100,],\n                TWD: [\"{symbol}{amount}\",\"NT$\",1,],\n                THB: [\"{symbol}{amount}\",\"\\u0e3f\",100,],\n                TRY: [\"{amount} {symbol}\",\"TL\",100,],\n                AED: [\"{amount} {symbol}\",\"\\u062f.\\u0625.\",100,],\n                USD: [\"{symbol}{amount}\",\"$\",100,],\n                UYU: [\"{symbol} {amount}\",\"$U\",100,],\n                VEF: [\"{symbol} {amount}\",\"Bs\",100,],\n                VND: [\"{amount} {symbol}\",\"\\u20ab\",1,]\n            }\n        },168,],[\"TimelineDynamicSectionConfig\",[\"m_0_1w\",\"m_0_1x\",\"m_0_1y\",],{\n            smallThrobber: {\n                __m: \"m_0_1w\"\n            },\n            pager: {\n                __m: \"m_0_1x\"\n            },\n            throbber: {\n                __m: \"m_0_1y\"\n            },\n            skmapping: {\n                friends_recent: \"friends\",\n                friends_all: \"friends\",\n                friends_mutual: \"friends\",\n                photos_of: \"photos\",\n                photos_all: \"photos\",\n                photos_albums: \"photos\",\n                likes_recent: null,\n                info_all: \"info\",\n                music_my_music: \"music\",\n                music_favs: \"music\",\n                music_playlists: \"music\",\n                places_all: \"map\",\n                books_read: \"books\",\n                books_favorite: \"books\",\n                books_want: \"books\",\n                places_recent: null,\n                fitness_overview: \"fitness\",\n                fitness_daily_activity: null,\n                fitness_sports_i_play: null,\n                friends_featured: null,\n                places_want: null,\n                info_basic: \"info\",\n                info_contact: null,\n                fitness_running: \"fitness\",\n                fitness_cycling: \"fitness\",\n                friends_followers: \"friends\",\n                friends_following: \"friends\",\n                music_radio: \"music\",\n                info_history: \"info\",\n                games_play: \"games\",\n                products_want: null,\n                photos_archive: \"photos\",\n                notes_my_notes: \"notes\",\n                notes_drafts: \"notes\",\n                notes_about_me: \"notes\",\n                likes_sports_teams: \"likes\",\n                likes_activities: \"likes\",\n                likes_interests: \"likes\",\n                likes_other: \"likes\",\n                video_movies_watch: \"movies\",\n                video_tv_show_watch: \"tv\",\n                music_saved: \"music\",\n                video_movies_want: \"movies\",\n                video_tv_show_want: \"tv\",\n                video_movies_favorite: \"movies\",\n                video_tv_show_favorite: \"tv\",\n                friends_high_school: \"friends\",\n                friends_college: \"friends\",\n                friends_work: \"friends\",\n                friends_suggested: \"friends\",\n                apps_like: \"games\",\n                upcoming_events: \"events\",\n                past_events: \"events\",\n                likes_people: \"likes\",\n                likes_sports: \"likes\",\n                likes_athletes: \"likes\",\n                fitness_report: null,\n                groups_member: \"groups\",\n                music_all_time: \"music\",\n                music_heavy_rotation: \"music\",\n                photos_album: \"photos\",\n                photos_untagged: \"photos\",\n                music_mutual: \"music\",\n                likes_foods: \"likes\",\n                likes_restaurants: \"likes\",\n                restaurants_visited: \"restaurants\",\n                restaurants_want: \"restaurants\",\n                likes_websites: \"likes\",\n                likes_clothing: \"likes\",\n                followers: \"friends\",\n                following: \"friends\",\n                media_set: \"photos\",\n                photos_stream: \"photos\",\n                photos_synced: \"photos\"\n            }\n        },68,],[\"AppSectionCurationState\",[],{\n            showItems: \"show_items\",\n            showApps: \"show_apps\",\n            hide: \"hide\"\n        },145,],[\"NumberFormatConfig\",[],{\n            decimalSeparator: \".\",\n            numberDelimiter: \",\"\n        },54,],],\n        markup: [[\"m_0_1t\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Close\\\" class=\\\"layerButton rfloat uiCloseButton uiCloseButtonSmall\\\" href=\\\"#\\\" role=\\\"button\\\" data-action=\\\"close\\\"\\u003E\\u003C/a\\u003EUse the [+] button or search tool to add a story about movies, books or something else you enjoy.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Ca class=\\\"_42ft _42fu layerButton uiOverlayButton selected _42g-\\\" role=\\\"button\\\" href=\\\"#\\\" data-action=\\\"next\\\"\\u003ENext\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_1v\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Close\\\" class=\\\"layerButton rfloat uiCloseButton uiCloseButtonSmall\\\" href=\\\"#\\\" role=\\\"button\\\" data-action=\\\"done\\\"\\u003E\\u003C/a\\u003EUse the audience selector to choose who can see what you add [+].\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Ca class=\\\"_42ft _42fu layerButton uiOverlayButton selected _42g-\\\" role=\\\"button\\\" href=\\\"#\\\" data-action=\\\"done\\\"\\u003EDone\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_1w\",{\n            __html: \"\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\"\n        },2,],[\"m_0_1x\",{\n            __html: \"\\u003Ca class=\\\"_3t3\\\" href=\\\"#\\\" data-referrer=\\\"timeline_collections_overview_see_all\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"_3t5 fwb\\\"\\u003ESee All\\u003C/span\\u003E\\u003Cimg class=\\\"uiLoadingIndicatorAsync img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003C/a\\u003E\"\n        },2,],[\"m_0_1y\",{\n            __html: \"\\u003Cimg class=\\\"_359 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/jKEcVPZFk-2.gif\\\" alt=\\\"\\\" width=\\\"32\\\" height=\\\"32\\\" /\\u003E\"\n        },2,],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"3SGVa\",\"OJTM4\",],\n    id: \"pagelet_above_header_timeline\",\n    phase: 1\n});");
36325 // 1721
36326 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_main_column_personal\",],\n    is_last: true,\n    content: {\n        pagelet_timeline_profile_actions: {\n            container_id: \"u_0_16\"\n        }\n    },\n    jsmods: {\n        require: [[\"m_0_1z\",],[\"m_0_20\",],[\"ButtonGroupMonitor\",],[\"SelectorDeprecated\",],[\"m_0_24\",],[\"SubscribeButton\",\"init\",[\"m_0_27\",\"m_0_26\",\"m_0_28\",],[{\n            __m: \"m_0_27\"\n        },{\n            __m: \"m_0_26\"\n        },{\n            __m: \"m_0_28\"\n        },\"1055580469\",0,false,],],[\"m_0_27\",],[\"m_0_28\",],[\"m_0_2d\",],[\"m_0_2c\",],[\"AddFriendButton\",\"init\",[\"m_0_2g\",],[{\n            __m: \"m_0_2g\"\n        },1055580469,\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?sk=wall\",\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",\"\",true,null,false,null,0,],],[\"FriendStatus\",\"setSpecialLists\",[],[{\n            close: 1374283956118870,\n            acq: \"100006118350059_124542800973931\"\n        },],],],\n        instances: [[\"m_0_1z\",[\"ButtonGroup\",\"m_0_21\",],[{\n            __m: \"m_0_21\"\n        },],1,],[\"m_0_20\",[\"ButtonGroup\",\"m_0_22\",],[{\n            __m: \"m_0_22\"\n        },],1,],[\"m_0_24\",[\"AsyncMenu\",\"m_0_25\",],[\"/ajax/lists/interests_submenu.php?profile_id=1055580469&list_location=gear_menu\",{\n            __m: \"m_0_25\"\n        },],2,],[\"m_0_27\",[\"SwapButtonDEPRECATED\",\"m_0_26\",\"m_0_29\",],[{\n            __m: \"m_0_26\"\n        },{\n            __m: \"m_0_29\"\n        },false,],3,],[\"m_0_28\",[\"HoverButton\",\"m_0_2a\",\"m_0_2c\",\"m_0_2b\",],[{\n            __m: \"m_0_2a\"\n        },{\n            __m: \"m_0_2c\"\n        },{\n            __m: \"m_0_2b\"\n        },\"/ajax/lists/interests_menu.php?profile_id=1055580469&list_location=follow_1&follow_location=1\",],3,],[\"m_0_2d\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"LayerHideOnEscape\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_2e\",],[{\n            width: null,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"below\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"LayerHideOnEscape\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_2e\"\n        },],3,],[\"m_0_2c\",[\"HoverFlyout\",\"m_0_2d\",\"m_0_2f\",],[{\n            __m: \"m_0_2d\"\n        },{\n            __m: \"m_0_2f\"\n        },150,150,],3,],],\n        elements: [[\"m_0_21\",\"u_0_s\",2,],[\"m_0_22\",\"u_0_t\",2,],[\"m_0_23\",\"u_0_u\",2,],[\"m_0_25\",\"u_0_z\",2,],[\"m_0_26\",\"u_0_10\",4,],[\"m_0_29\",\"u_0_11\",2,],[\"m_0_2b\",\"u_0_12\",2,\"m_0_2e\",],[\"m_0_2a\",\"u_0_11\",2,],[\"m_0_2f\",\"u_0_11\",2,],[\"m_0_2g\",\"u_0_14\",2,],],\n        markup: [[\"m_0_2e\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv id=\\\"u_0_12\\\"\\u003E\\u003Cimg class=\\\"mal pal _52ng center img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },3,],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",\"0duP3\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"bUzfU\",\"3SGVa\",],\n    jscc_map: \"({\\\"jo1F7acLCCEktuSNmv0\\\":function(){return new SubMenu()}})\",\n    onload: [\"JSCC.get(\\\"jo1F7acLCCEktuSNmv0\\\").init($(\\\"u_0_v\\\"), $(\\\"u_0_w\\\"), $(\\\"u_0_x\\\"), $(\\\"u_0_y\\\"));\",\"JSCC.get(\\\"jo1F7acLCCEktuSNmv0\\\").initAsyncChildMenu(require(\\\"m_0_24\\\"));\",],\n    id: \"pagelet_timeline_profile_actions\",\n    phase: 1\n});");
36327 // 1722
36328 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sf92807471072e89943a425892a865905c874a658");
36329 // 1723
36330 geval("bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_main_column_personal\",],\n    is_last: true,\n    JSBNG__content: {\n        pagelet_timeline_profile_actions: {\n            container_id: \"u_0_16\"\n        }\n    },\n    jsmods: {\n        require: [[\"m_0_1z\",],[\"m_0_20\",],[\"ButtonGroupMonitor\",],[\"SelectorDeprecated\",],[\"m_0_24\",],[\"SubscribeButton\",\"init\",[\"m_0_27\",\"m_0_26\",\"m_0_28\",],[{\n            __m: \"m_0_27\"\n        },{\n            __m: \"m_0_26\"\n        },{\n            __m: \"m_0_28\"\n        },\"1055580469\",0,false,],],[\"m_0_27\",],[\"m_0_28\",],[\"m_0_2d\",],[\"m_0_2c\",],[\"AddFriendButton\",\"init\",[\"m_0_2g\",],[{\n            __m: \"m_0_2g\"\n        },1055580469,\"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby?sk=wall\",\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",\"\",true,null,false,null,0,],],[\"FriendStatus\",\"setSpecialLists\",[],[{\n            close: 1374283956118870,\n            acq: \"100006118350059_124542800973931\"\n        },],],],\n        instances: [[\"m_0_1z\",[\"ButtonGroup\",\"m_0_21\",],[{\n            __m: \"m_0_21\"\n        },],1,],[\"m_0_20\",[\"ButtonGroup\",\"m_0_22\",],[{\n            __m: \"m_0_22\"\n        },],1,],[\"m_0_24\",[\"AsyncMenu\",\"m_0_25\",],[\"/ajax/lists/interests_submenu.php?profile_id=1055580469&list_location=gear_menu\",{\n            __m: \"m_0_25\"\n        },],2,],[\"m_0_27\",[\"SwapButtonDEPRECATED\",\"m_0_26\",\"m_0_29\",],[{\n            __m: \"m_0_26\"\n        },{\n            __m: \"m_0_29\"\n        },false,],3,],[\"m_0_28\",[\"HoverButton\",\"m_0_2a\",\"m_0_2c\",\"m_0_2b\",],[{\n            __m: \"m_0_2a\"\n        },{\n            __m: \"m_0_2c\"\n        },{\n            __m: \"m_0_2b\"\n        },\"/ajax/lists/interests_menu.php?profile_id=1055580469&list_location=follow_1&follow_location=1\",],3,],[\"m_0_2d\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"LayerHideOnEscape\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_2e\",],[{\n            width: null,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"below\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"LayerHideOnEscape\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_2e\"\n        },],3,],[\"m_0_2c\",[\"HoverFlyout\",\"m_0_2d\",\"m_0_2f\",],[{\n            __m: \"m_0_2d\"\n        },{\n            __m: \"m_0_2f\"\n        },150,150,],3,],],\n        elements: [[\"m_0_21\",\"u_0_s\",2,],[\"m_0_22\",\"u_0_t\",2,],[\"m_0_23\",\"u_0_u\",2,],[\"m_0_25\",\"u_0_z\",2,],[\"m_0_26\",\"u_0_10\",4,],[\"m_0_29\",\"u_0_11\",2,],[\"m_0_2b\",\"u_0_12\",2,\"m_0_2e\",],[\"m_0_2a\",\"u_0_11\",2,],[\"m_0_2f\",\"u_0_11\",2,],[\"m_0_2g\",\"u_0_14\",2,],],\n        markup: [[\"m_0_2e\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv id=\\\"u_0_12\\\"\\u003E\\u003Cimg class=\\\"mal pal _52ng center img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },3,],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",\"0duP3\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"bUzfU\",\"3SGVa\",],\n    jscc_map: \"({\\\"jo1F7acLCCEktuSNmv0\\\":function(){return new SubMenu()}})\",\n    JSBNG__onload: [\"JSCC.get(\\\"jo1F7acLCCEktuSNmv0\\\").init($(\\\"u_0_v\\\"), $(\\\"u_0_w\\\"), $(\\\"u_0_x\\\"), $(\\\"u_0_y\\\"));\",\"JSCC.get(\\\"jo1F7acLCCEktuSNmv0\\\").initAsyncChildMenu(require(\\\"m_0_24\\\"));\",],\n    id: \"pagelet_timeline_profile_actions\",\n    phase: 1\n});");
36331 // 1742
36332 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        pagelet_timeline_recent: {\n            container_id: \"u_0_19\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"removeSection\",[],[\"month_1969_12\",],],[\"TimelineLogging\",\"init\",[],[1055580469,],],[\"TimelineContentLoader\",\"enableScrollLoadOnClick\",[],[\"u_0_18_scroll_trigger\",\"recent\",250,],],[\"TimelineController\",],[\"Arbiter\",\"inform\",[],[\"TimelineConstants/sectionLoaded\",{\n            key: \"recent\"\n        },],],[\"TimelineStickyRightColumn\",\"init\",[],[],],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"OJTM4\",\"+h1d2\",\"3SGVa\",],\n    id: \"pagelet_timeline_recent\",\n    phase: 2\n});");
36333 // 1743
36334 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sae96e0cef5e25242b9be2e67c82b708f9bc8f291");
36335 // 1744
36336 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        pagelet_timeline_recent: {\n            container_id: \"u_0_19\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"removeSection\",[],[\"month_1969_12\",],],[\"TimelineLogging\",\"init\",[],[1055580469,],],[\"TimelineContentLoader\",\"enableScrollLoadOnClick\",[],[\"u_0_18_scroll_trigger\",\"recent\",250,],],[\"TimelineController\",],[\"Arbiter\",\"inform\",[],[\"TimelineConstants/sectionLoaded\",{\n            key: \"recent\"\n        },],],[\"TimelineStickyRightColumn\",\"init\",[],[],],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"OJTM4\",\"+h1d2\",\"3SGVa\",],\n    id: \"pagelet_timeline_recent\",\n    phase: 2\n});");
36337 // 1751
36338 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    append: \"u_0_17_left\",\n    display_dependency: [\"pagelet_timeline_recent\",],\n    content: {\n        pagelet_timeline_composer: \"\"\n    },\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    id: \"pagelet_timeline_composer\",\n    phase: 2\n});");
36339 // 1752
36340 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s565187d25e949806276f66d0839cfc734c328513");
36341 // 1753
36342 geval("bigPipe.onPageletArrive({\n    append: \"u_0_17_left\",\n    display_dependency: [\"pagelet_timeline_recent\",],\n    JSBNG__content: {\n        pagelet_timeline_composer: \"\"\n    },\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    id: \"pagelet_timeline_composer\",\n    phase: 2\n});");
36343 // 1759
36344 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    append: \"u_0_17_left\",\n    display_dependency: [\"pagelet_timeline_recent\",\"pagelet_timeline_composer\",],\n    is_last: true,\n    content: {\n        pagelet_timeline_recent_segment_0_0_left: {\n            container_id: \"u_0_20\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineCapsule\",\"loadTwoColumnUnits\",[],[\"u_0_17\",],],[\"TimelineStickyRightColumn\",\"adjust\",[],[],],[\"m_0_2h\",],[\"m_0_2j\",],[\"m_0_2k\",],[\"m_0_2m\",],[\"m_0_2o\",],[\"m_0_2p\",],[\"m_0_2r\",],[\"m_0_2t\",],[\"m_0_2u\",],[\"m_0_2w\",],[\"m_0_2y\",],[\"m_0_2z\",],[\"Hovercard\",],[\"m_0_36\",],[\"Tooltip\",],[\"m_0_39\",],[\"m_0_3b\",],[\"m_0_3e\",],],\n        instances: [[\"m_0_2h\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2j\",[\"PopoverAsyncMenu\",\"m_0_2k\",\"m_0_2i\",\"m_0_2h\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2k\"\n        },{\n            __m: \"m_0_2i\"\n        },{\n            __m: \"m_0_2h\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=3&unit_data%5Bhash%5D=3857418892059122853&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1372262734&unit_data%5Bunit_end_time%5D=1372262734&dom_id=u_0_1b&timestamp=1372262734&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2k\",[\"Popover\",\"m_0_2l\",\"m_0_2i\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_2l\"\n        },{\n            __m: \"m_0_2i\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_2m\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2o\",[\"PopoverAsyncMenu\",\"m_0_2p\",\"m_0_2n\",\"m_0_2m\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2p\"\n        },{\n            __m: \"m_0_2n\"\n        },{\n            __m: \"m_0_2m\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=3&unit_data%5Bhash%5D=-6185676099150237519&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1372627013&unit_data%5Bunit_end_time%5D=1372627013&dom_id=u_0_1f&timestamp=1372627013&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2p\",[\"Popover\",\"m_0_2q\",\"m_0_2n\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_2q\"\n        },{\n            __m: \"m_0_2n\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_2r\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2t\",[\"PopoverAsyncMenu\",\"m_0_2u\",\"m_0_2s\",\"m_0_2r\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2u\"\n        },{\n            __m: \"m_0_2s\"\n        },{\n            __m: \"m_0_2r\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=2&unit_data%5Bhash%5D=4498726532280095426&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1372923465&unit_data%5Bunit_end_time%5D=1372923465&dom_id=u_0_1i&timestamp=1372923465&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2u\",[\"Popover\",\"m_0_2v\",\"m_0_2s\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_2v\"\n        },{\n            __m: \"m_0_2s\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_2w\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2y\",[\"PopoverAsyncMenu\",\"m_0_2z\",\"m_0_2x\",\"m_0_2w\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2z\"\n        },{\n            __m: \"m_0_2x\"\n        },{\n            __m: \"m_0_2w\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=2&unit_data%5Bhash%5D=2953496614934485437&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1373055341&unit_data%5Bunit_end_time%5D=1373055341&dom_id=u_0_1l&timestamp=1373055341&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2z\",[\"Popover\",\"m_0_30\",\"m_0_2x\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_30\"\n        },{\n            __m: \"m_0_2x\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_36\",[\"UFIController\",\"m_0_35\",\"m_0_37\",],[{\n            __m: \"m_0_35\"\n        },{\n            ftentidentifier: \"10200303357400658\",\n            instanceid: \"u_0_1o\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQChaL86QisSqs0sUSs8MRUaUotI69G171F9LUzJjbgJ3UzhkCDbngkCSE3LqTXr_kwkpMKYBFjbAFbf3ARkq6WPhwdNggKyVSvV8KV-PNpxpVpn4z-X01gT7qWCefQ74vFJS2ze7QPxN8wBikMPK_87rL9vxxevWGYc6pl6lt9iairELljWGqZ5OVTPh_6betWgKPnueIKl3cfeeu2Wp8JVo_rxtcGLCbGllyAUoOfJQvVl1ip2BW-lSbknT2jNEqF6YODCH8P6runJMeNh1vdnyrKv4tcAfTjIZJTNToVZuwg0_J_mSNRH0A0Pd0n1fwQ7E6tv0rX79Dhg8U_MZ5vNwdHr1A2inl1kF3pwcKlpAKuaPfTvQg9J_b4Er2dOkDYkc_ns-EaFh3HtRioAV4ql\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200303357400658\",\n                entidentifier: \"10200303357400658\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200303357400658\",\n                commentcount: 6,\n                likecount: 0,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                    },\n                    alternate: {\n                        text: \"You like this.\",\n                        ranges: [],\n                        aggregatedranges: []\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_37\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [{\n                id: \"10200303357400658_4912489\",\n                fbid: \"10200304193501560\",\n                legacyid: \"4912489\",\n                body: {\n                    text: \"which one?\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100001619067228\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275695,\n                    text: \"June 26 at 3:41pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:41pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200303357400658_4912495\",\n                fbid: \"10200304196181627\",\n                legacyid: \"4912495\",\n                body: {\n                    text: \"oh! this is what is said... ruin all childhood memories!\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100001619067228\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275736,\n                    text: \"June 26 at 3:42pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:42pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200303357400658_4912503\",\n                fbid: \"10200304201781767\",\n                legacyid: \"4912503\",\n                body: {\n                    text: \"It didn't work for me!!!\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100002461958396\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275825,\n                    text: \"June 26 at 3:43pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:43pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200303357400658_4912511\",\n                fbid: \"10200304206981897\",\n                legacyid: \"4912511\",\n                body: {\n                    text: \"Anyhow, it was nice. Thanks\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100002461958396\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 1,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275890,\n                    text: \"June 26 at 3:44pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:44pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },],\n            profiles: [{\n                id: \"100006118350059\",\n                name: \"Javasee Cript\",\n                firstName: \"Javasee\",\n                vanity: \"javasee.cript\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/275646_100006118350059_324335073_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/javasee.cript\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"100001619067228\",\n                name: \"Baharak Saberidokht\",\n                firstName: \"Baharak\",\n                vanity: \"baharak.saberidokht\",\n                thumbSrc: \"http://jsbngssl.profile-b.xx.fbcdn.net/hprofile-prn2/s32x32/260631_100001619067228_542177443_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/baharak.saberidokht\",\n                gender: 1,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"100002461958396\",\n                name: \"Vida Farsam\",\n                firstName: \"Vida\",\n                vanity: \"vida.farsam\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/s32x32/203461_100002461958396_1397706771_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/vida.farsam\",\n                gender: 1,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200303357400658: {\n                        chronological: {\n                            range: {\n                                offset: 2,\n                                length: 4\n                            },\n                            values: [\"10200303357400658_4912489\",\"10200303357400658_4912495\",\"10200303357400658_4912503\",\"10200303357400658_4912511\",]\n                        }\n                    }\n                },\n                replies: {\n                    \"10200303357400658_4912489\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    },\n                    \"10200303357400658_4912495\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    },\n                    \"10200303357400658_4912503\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    },\n                    \"10200303357400658_4912511\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    }\n                }\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_39\",[\"UFIController\",\"m_0_38\",\"m_0_3c\",],[{\n            __m: \"m_0_38\"\n        },{\n            ftentidentifier: \"10200350995551582\",\n            instanceid: \"u_0_1q\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQA0ygLaoIJHgq67aBT-K1c3pj79g5OygMMsHNzDJu-9etibWoq1ZipXxwv_7rDQYnw7mc7OPjKj5Beyr9GBFDeu4VStyKM9XbyP9Aj0vtj__0Id5nF8bZdAch9fYCTA6Z5HXojmLoKLG9dt6tLzGvMXecj0uIKTkMzqQLePPXxpU1B4-db-2-s3Fh99w9DO1plYSzpabaaYcYw8oo-ejXWEvfGXk3p-qv74e-8VozmoKCDL4y2FEvzILcwwHVgt3obElgmRgnkwQkg4hQ2bZ4fl_dlYe6ISRXOiqnQW5-OOfrkLjdMMB5UcaztBff6fxAxyPURkZBzktcfC5m8jKfdWybdGKs1obIlQzJWki5VmoELTY7QMLjC8T-0UJv9q2zVZ0JBGzEGnpjU8NAQYo9FR\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200350995551582\",\n                entidentifier: \"10200350995551582\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200350995551582\",\n                commentcount: 5,\n                likecount: 1,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                        text: \"Jan Vitek likes this.\",\n                        ranges: [{\n                            offset: 0,\n                            length: 9,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/jvitekjr\",\n                                id: 719575350\n                            },]\n                        },],\n                        aggregatedranges: []\n                    },\n                    alternate: {\n                        text: \"You and Jan Vitek like this.\",\n                        ranges: [{\n                            offset: 8,\n                            length: 9,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/jvitekjr\",\n                                id: 719575350\n                            },]\n                        },],\n                        aggregatedranges: []\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_3c\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [{\n                id: \"10200350995551582_4954379\",\n                fbid: \"10200357365790834\",\n                legacyid: \"4954379\",\n                body: {\n                    text: \"You should have snatched it out of his hands, and played it/\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1710926078\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373168110,\n                    text: \"July 6 at 11:35pm\",\n                    verbose: \"Saturday, July 6, 2013 at 11:35pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200350995551582_4955913\",\n                fbid: \"10200359402281745\",\n                legacyid: \"4955913\",\n                body: {\n                    text: \"I've found that stealing musical instruments in non-English-speaking countries hasn't brought me great luck in the past.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373214256,\n                    text: \"Sunday at 12:24pm\",\n                    verbose: \"Sunday, July 7, 2013 at 12:24pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200350995551582_4955915\",\n                fbid: \"10200359408281895\",\n                legacyid: \"4955915\",\n                body: {\n                    text: \"But in English-speaking countries it's just fine.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"10715287\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373214355,\n                    text: \"Sunday at 12:25pm\",\n                    verbose: \"Sunday, July 7, 2013 at 12:25pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200350995551582_4955918\",\n                fbid: \"10200359410801958\",\n                legacyid: \"4955918\",\n                body: {\n                    text: \"Naturally.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373214375,\n                    text: \"Sunday at 12:26pm\",\n                    verbose: \"Sunday, July 7, 2013 at 12:26pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },],\n            profiles: [{\n                id: \"1710926078\",\n                name: \"Kathy Wertheimer Richards\",\n                firstName: \"Kathy\",\n                vanity: \"kathy.w.richards\",\n                thumbSrc: \"http://jsbngssl.profile-a.xx.fbcdn.net/hprofile-prn2/s32x32/276006_1710926078_512651488_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/kathy.w.richards\",\n                gender: 1,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"1055580469\",\n                name: \"Gregor Richards\",\n                firstName: \"Gregor\",\n                vanity: \"LawlabeeTheWallaby\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/276274_1055580469_962040234_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"10715287\",\n                name: \"Michael A Goss\",\n                firstName: \"Michael\",\n                vanity: \"michael.a.goss\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/s32x32/624179_10715287_1397603425_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/michael.a.goss\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200350995551582: {\n                        chronological: {\n                            range: {\n                                offset: 1,\n                                length: 4\n                            },\n                            values: [\"10200350995551582_4954379\",\"10200350995551582_4955913\",\"10200350995551582_4955915\",\"10200350995551582_4955918\",]\n                        }\n                    }\n                },\n                replies: {\n                    \"10200350995551582_4954379\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    },\n                    \"10200350995551582_4955913\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    },\n                    \"10200350995551582_4955915\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    },\n                    \"10200350995551582_4955918\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    }\n                }\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_3b\",[\"UFIController\",\"m_0_3a\",\"m_0_37\",],[{\n            __m: \"m_0_3a\"\n        },{\n            ftentidentifier: \"10200325012062011\",\n            instanceid: \"u_0_1r\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQAFUCiLAT5RUcefEz2gKoDEw2y45fki1LQIejQbsCIWgwWsHCHMRqEd6NhhEE3HTJZ2JeWFwNWNGpTentE0x92XazUIAtkX7WDrpyxi9lvRDzK82lTMz_-Mi3SE3WjxflxWWcoKMLrhgXNr8_aZGGFiPZMoR9NNj1x_UacSFZb2GTZ-WXhNFIoMR3XpZ0Pz27lrZweBjs2LJCZhbxVEPWJ_zyMrKnZHkx2FTxMwMZsHcYwye7UenkmczH058RJbpEvmjgxS1Gm_mgug6mBvaekggu2f8o4Rr45al2p3_SqwfDej46LHq_iPe0GGAcI4qqYAbF-p79BSdK-YgegB9yVzvHPCboN8aAtfuzDypVKin-tqTXAmmqLB3xV3C7kjQE4TV1nfDtFW2pWKQZP4YUc1kQmo11w5z3YMFqDxoxibhQ\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200325012062011\",\n                entidentifier: \"10200325012062011\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200325012062011\",\n                commentcount: 0,\n                likecount: 1,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                        text: \"Steph Burg likes this.\",\n                        ranges: [{\n                            offset: 0,\n                            length: 10,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/rubolix\",\n                                id: 8621712\n                            },]\n                        },],\n                        aggregatedranges: []\n                    },\n                    alternate: {\n                        text: \"You and Steph Burg like this.\",\n                        ranges: [{\n                            offset: 8,\n                            length: 10,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/rubolix\",\n                                id: 8621712\n                            },]\n                        },],\n                        aggregatedranges: []\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_37\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [],\n            profiles: [],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200325012062011: {\n                        chronological: {\n                            range: {\n                                offset: 0,\n                                length: 0\n                            },\n                            values: []\n                        }\n                    }\n                },\n                replies: null\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_3e\",[\"UFIController\",\"m_0_3d\",\"m_0_37\",],[{\n            __m: \"m_0_3d\"\n        },{\n            ftentidentifier: \"10200343222477260\",\n            instanceid: \"u_0_1u\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQCrvWaeB11JjIMAytH5Nvv3qmEhQbh5baPerOqkyOPG1prNmmgkQAYqxfM8F4KjqFTD35ePAPwvQDoPrrHJTHSjopTAuw4pc583uhw3meWdTKut8CfMnKQqizqrxNnzYyp4oPdWH66yt7nwLvLnUzUvcvAjMWicEEkiNWbuP3BEi1jT5w2dD7zoCGzxzHY_BeJ1PJ9BPrKJxn6P8TCdhb40KyMbyy0_kaWcpo1sksJl-adSjcOMevAoGosEm8ZiQxjcmpajE_jLfhvKfoYMMW3spYJ_rJby1Js3Q_VW7GswwODSD2FCX_pOREfx3p9VXZfl1eZNupMCx6QKcIGU-ExdJPac8H7Lp4XnIPKIpA49Y5Y9rJADGzQX23L_q5IbjhfIntPu29XD5hzwIEpzA6EL\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200343222477260\",\n                entidentifier: \"10200343222477260\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200343222477260\",\n                commentcount: 11,\n                likecount: 7,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                        text: \"7 people like this.\",\n                        ranges: [],\n                        aggregatedranges: [{\n                            offset: 0,\n                            length: 8,\n                            count: 7\n                        },]\n                    },\n                    alternate: {\n                        text: \"You and 7 others like this.\",\n                        ranges: [],\n                        aggregatedranges: [{\n                            offset: 8,\n                            length: 8,\n                            count: 7\n                        },]\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_37\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [{\n                id: \"10200343222477260_4946958\",\n                fbid: \"10200346777686138\",\n                legacyid: \"4946958\",\n                body: {\n                    text: \"Does it have a sense of the surreal or are you just sharing a data point? ;)\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1633181753\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372985540,\n                    text: \"July 4 at 8:52pm\",\n                    verbose: \"Thursday, July 4, 2013 at 8:52pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200343222477260_4947623\",\n                fbid: \"10200347758230651\",\n                legacyid: \"4947623\",\n                body: {\n                    text: \"Merely minor amusement.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373002430,\n                    text: \"July 5 at 1:33am\",\n                    verbose: \"Friday, July 5, 2013 at 1:33am\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200343222477260_4950566\",\n                fbid: \"10200351838652659\",\n                legacyid: \"4950566\",\n                body: {\n                    text: \"Did you wear http://img2.etsystatic.com/005/0/8125869/il_570xN.471485474_swpa.jpg\",\n                    ranges: [{\n                        offset: 13,\n                        length: 68,\n                        entities: [{\n                            url: \"http://img2.etsystatic.com/005/0/8125869/il_570xN.471485474_swpa.jpg\",\n                            shimhash: \"nAQExoxFw\",\n                            id: \"0746af69b9da85d793efe61531abaafe\",\n                            external: true\n                        },]\n                    },],\n                    aggregatedranges: []\n                },\n                author: \"53600996\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373066508,\n                    text: \"July 5 at 7:21pm\",\n                    verbose: \"Friday, July 5, 2013 at 7:21pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200343222477260_4950571\",\n                fbid: \"10200351843052769\",\n                legacyid: \"4950571\",\n                body: {\n                    text: \"That's the most delightfully offensive piece of apparel I've seen in quite some time.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373066594,\n                    text: \"July 5 at 7:23pm\",\n                    verbose: \"Friday, July 5, 2013 at 7:23pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },],\n            profiles: [{\n                id: \"1633181753\",\n                name: \"Robert Nesius\",\n                firstName: \"Robert\",\n                vanity: \"rnesius\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/s32x32/573766_1633181753_1114062672_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/rnesius\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"53600996\",\n                name: \"Harrison Metzger\",\n                firstName: \"Harrison\",\n                vanity: \"harrisonmetz\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/s32x32/195694_53600996_1993816119_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/harrisonmetz\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200343222477260: {\n                        chronological: {\n                            range: {\n                                offset: 7,\n                                length: 4\n                            },\n                            values: [\"10200343222477260_4946958\",\"10200343222477260_4947623\",\"10200343222477260_4950566\",\"10200343222477260_4950571\",]\n                        }\n                    }\n                },\n                replies: {\n                    \"10200343222477260_4946958\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    },\n                    \"10200343222477260_4947623\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    },\n                    \"10200343222477260_4950566\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    },\n                    \"10200343222477260_4950571\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    }\n                }\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_37\",[\"MultiBootstrapDataSource\",],[{\n            maxResults: 3,\n            queryData: {\n                context: \"topics_limited_autosuggest\",\n                viewer: 100006118350059,\n                filter: [\"page\",\"user\",],\n                rsp: \"mentions\"\n            },\n            queryEndpoint: \"/ajax/typeahead/search.php\",\n            bootstrapData: {\n                rsp: \"mentions\"\n            },\n            bootstrapEndpoints: [{\n                endpoint: \"/ajax/typeahead/first_degree.php\",\n                data: {\n                    context: \"mentions\",\n                    viewer: 100006118350059,\n                    token: \"1372173655-7\",\n                    filter: [\"page\",\"group\",\"app\",\"event\",\"user\",],\n                    options: [\"friends_only\",\"nm\",]\n                }\n            },]\n        },],6,],[\"m_0_3c\",[\"MultiBootstrapDataSource\",],[{\n            maxResults: 3,\n            queryData: {\n                context: \"topics_limited_autosuggest\",\n                viewer: 100006118350059,\n                filter: [\"page\",\"user\",],\n                rsp: \"mentions\"\n            },\n            queryEndpoint: \"/ajax/typeahead/search.php\",\n            bootstrapData: {\n                rsp: \"mentions\"\n            },\n            bootstrapEndpoints: [{\n                endpoint: \"/ajax/typeahead/first_degree.php\",\n                data: {\n                    context: \"mentions\",\n                    viewer: 100006118350059,\n                    token: \"1372173655-7\",\n                    filter: [\"page\",\"group\",\"app\",\"event\",\"user\",],\n                    options: [\"friends_only\",\"nm\",]\n                }\n            },]\n        },],2,],[\"m_0_3f\",[\"XHPTemplate\",\"m_0_3g\",],[{\n            __m: \"m_0_3g\"\n        },],2,],],\n        define: [[\"CLogConfig\",[],{\n            gkResults: 0\n        },174,],[\"UFICommentTemplates\",[\"m_0_3f\",],{\n            \":fb:ufi:hide-dialog-template\": {\n                __m: \"m_0_3f\"\n            }\n        },70,],[\"UFISpamCountImpl\",[],{\n            \"module\": null\n        },72,],[\"UFIConfig\",[],{\n            renderEmoji: true,\n            renderEmoticons: 1\n        },71,],],\n        elements: [[\"m_0_2l\",\"u_0_1c\",2,],[\"m_0_2i\",\"u_0_1d\",4,],[\"m_0_2q\",\"u_0_1g\",2,],[\"m_0_2n\",\"u_0_1h\",4,],[\"m_0_2v\",\"u_0_1j\",2,],[\"m_0_2s\",\"u_0_1k\",4,],[\"m_0_30\",\"u_0_1m\",2,],[\"m_0_2x\",\"u_0_1n\",4,],[\"m_0_35\",\"u_0_1p\",2,],[\"m_0_38\",\"u_0_1s\",2,],[\"m_0_3a\",\"u_0_1t\",2,],[\"m_0_3d\",\"u_0_1v\",2,],[\"m_0_32\",\"u_0_1w\",2,],[\"m_0_31\",\"u_0_1x\",2,],[\"m_0_33\",\"u_0_1y\",2,],[\"m_0_34\",\"u_0_1z\",2,],],\n        markup: [[\"m_0_3g\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"pvs phm _1yw\\\" data-jsid=\\\"title\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pam _13\\\" data-jsid=\\\"body\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_14\\\"\\u003E\\u003Cdiv class=\\\"pam uiOverlayFooter uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm uiOverlayButton selected _42g- _42gy\\\" data-jsid=\\\"delete\\\" type=\\\"submit\\\"\\u003EDelete\\u003C/button\\u003E\\u003Ca class=\\\"_42ft _42fu layerCancel uiOverlayButton _42gy\\\" role=\\\"button\\\" href=\\\"#\\\"\\u003ECancel\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",\"0duP3\",],\n    bootloadable: {\n        TypeaheadHoistFriends: {\n            resources: [\"bUzfU\",],\n            \"module\": true\n        },\n        \"UFIEntStreamOrderingModeSelector.react\": {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"0duP3\",\"vzIoO\",\"QI+gv\",\"TOw+q\",],\n            \"module\": true\n        },\n        InputSelection: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n            \"module\": true\n        },\n        FileInputUploader: {\n            resources: [\"AyUu6\",\"AsDOA\",\"LpC/l\",\"FFdfj\",],\n            \"module\": true\n        },\n        DialogX: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",],\n            \"module\": true\n        },\n        ContextualTypeaheadView: {\n            resources: [\"AyUu6\",\"0duP3\",\"u//Ut\",\"W3Ky6\",\"AsDOA\",],\n            \"module\": true\n        },\n        TypeaheadBestName: {\n            resources: [\"OJTM4\",\"u//Ut\",],\n            \"module\": true\n        },\n        TypeaheadMetrics: {\n            resources: [\"AyUu6\",\"bUzfU\",],\n            \"module\": true\n        },\n        MentionsInput: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"OJTM4\",],\n            \"module\": true\n        },\n        TypingDetector: {\n            resources: [\"AyUu6\",\"u//Ut\",],\n            \"module\": true\n        },\n        TypeaheadAreaCore: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"u//Ut\",\"bUzfU\",],\n            \"module\": true\n        },\n        EntstreamPubContentOverlay: {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"SZ74q\",\"7EHvC\",\"TOw+q\",\"0duP3\",\"63VzN\",\"40bIq\",],\n            \"module\": true\n        },\n        CompactTypeaheadRenderer: {\n            resources: [\"AyUu6\",\"0duP3\",\"u//Ut\",\"W3Ky6\",],\n            \"module\": true\n        },\n        ScrollAwareDOM: {\n            resources: [\"AyUu6\",\"AsDOA\",],\n            \"module\": true\n        },\n        \"legacy:live-js\": {\n            resources: [\"AyUu6\",\"OJTM4\",]\n        },\n        collectDataAttributes: {\n            resources: [\"AyUu6\",],\n            \"module\": true\n        },\n        UFIScrollHighlight: {\n            resources: [\"AyUu6\",\"AsDOA\",\"KPZ5T\",\"rSdpp\",],\n            \"module\": true\n        },\n        UFIComments: {\n            resources: [\"OJTM4\",\"AyUu6\",],\n            \"module\": true\n        },\n        UFIRetryActions: {\n            resources: [\"AyUu6\",\"OJTM4\",\"8ay4F\",],\n            \"module\": true\n        },\n        LegacyMenuUtils: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",\"utuxU\",\"NfUUN\",],\n            \"module\": true\n        },\n        HashtagLayerPageController: {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"SZ74q\",\"IxyKh\",\"cq4zB\",\"Lsvc0\",\"7EHvC\",\"BBKr2\",\"iFPko\",\"AMFDz\",\"qRGqD\",],\n            \"module\": true\n        },\n        \"legacy:ufi-tracking-js\": {\n            resources: [\"AyUu6\",]\n        },\n        CLoggerX: {\n            resources: [\"AyUu6\",\"OJTM4\",],\n            \"module\": true\n        },\n        \"UFICommentRemovalControls.react\": {\n            resources: [\"OJTM4\",\"AyUu6\",\"W3Ky6\",\"QE+SD\",],\n            \"module\": true\n        },\n        DOMScroll: {\n            resources: [\"AyUu6\",\"AsDOA\",],\n            \"module\": true\n        },\n        ScrollableArea: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n            \"module\": true\n        },\n        HashtagParser: {\n            resources: [\"u//Ut\",\"hfrQl\",],\n            \"module\": true\n        },\n        TextAreaControl: {\n            resources: [\"AyUu6\",\"LpC/l\",\"W3Ky6\",],\n            \"module\": true\n        },\n        LegacyContextualDialog: {\n            resources: [\"AyUu6\",\"AsDOA\",\"EzMPG\",\"W3Ky6\",],\n            \"module\": true\n        },\n        Typeahead: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"u//Ut\",],\n            \"module\": true\n        },\n        Hovercard: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n            \"module\": true\n        },\n        FileInput: {\n            resources: [\"AyUu6\",\"u//Ut\",\"W3Ky6\",],\n            \"module\": true\n        },\n        \"UFIOrderingModeSelector.react\": {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        AMFDz: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/l0jEiYB1BY4.js\"\n        },\n        BBKr2: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yu/r/AS6izN-qGVZ.js\"\n        },\n        SZ74q: {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yG/r/9E2LeES-RRN.css\"\n        },\n        \"QI+gv\": {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/w_bzJgcyc3W.css\"\n        },\n        \"8ay4F\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/VrfxLTcinh0.js\"\n        },\n        iFPko: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/8h9kPf0GHRH.js\"\n        },\n        vzIoO: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/oUbZBpEktAd.js\"\n        },\n        Lsvc0: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yQ/r/_hmcMOWGDp_.js\"\n        },\n        NfUUN: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/2xf6U6ugHB5.js\"\n        },\n        rSdpp: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yc/r/2PkTFjdVPzc.js\"\n        },\n        \"7EHvC\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/Pey6lNCLBYS.js\"\n        },\n        \"40bIq\": {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/6QVB5ZYkMIN.css\"\n        },\n        qRGqD: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yx/r/7VYwuqZ2nti.js\"\n        },\n        \"QE+SD\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yJ/r/PIykjmSfAPR.js\"\n        },\n        \"TOw+q\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/vux7xKvT3o9.js\"\n        },\n        utuxU: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/NRYuSW1uDUF.js\"\n        },\n        FFdfj: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yp/r/jyBR-Jzbcb5.js\"\n        },\n        IxyKh: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/ZIi5f4O5zUo.js\"\n        },\n        cq4zB: {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yt/r/h721jO007c4.css\"\n        }\n    },\n    ixData: {\n        \"/images/group_gifts/icons/gift_icon_red-13px.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/83ZMt066WCp.png\",\n            width: 13,\n            height: 13\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"OJTM4\",\"+h1d2\",\"3SGVa\",],\n    displayJS: [\"AyUu6\",\"OJTM4\",],\n    onafterload: [\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",\"Bootloader.loadComponents([\\\"legacy:ufi-tracking-js\\\"], function(){ ufi_add_all_link_data(); });\",\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",],\n    id: \"pagelet_timeline_recent_segment_0_0_left\",\n    phase: 2,\n    tti_phase: 2\n});");
36345 // 1760
36346 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s8d5ddf7f4f4f9691c0eab3a887a80a3c868d015e");
36347 // 1761
36348 geval("bigPipe.onPageletArrive({\n    append: \"u_0_17_left\",\n    display_dependency: [\"pagelet_timeline_recent\",\"pagelet_timeline_composer\",],\n    is_last: true,\n    JSBNG__content: {\n        pagelet_timeline_recent_segment_0_0_left: {\n            container_id: \"u_0_20\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineCapsule\",\"loadTwoColumnUnits\",[],[\"u_0_17\",],],[\"TimelineStickyRightColumn\",\"adjust\",[],[],],[\"m_0_2h\",],[\"m_0_2j\",],[\"m_0_2k\",],[\"m_0_2m\",],[\"m_0_2o\",],[\"m_0_2p\",],[\"m_0_2r\",],[\"m_0_2t\",],[\"m_0_2u\",],[\"m_0_2w\",],[\"m_0_2y\",],[\"m_0_2z\",],[\"Hovercard\",],[\"m_0_36\",],[\"Tooltip\",],[\"m_0_39\",],[\"m_0_3b\",],[\"m_0_3e\",],],\n        instances: [[\"m_0_2h\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2j\",[\"PopoverAsyncMenu\",\"m_0_2k\",\"m_0_2i\",\"m_0_2h\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2k\"\n        },{\n            __m: \"m_0_2i\"\n        },{\n            __m: \"m_0_2h\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=3&unit_data%5Bhash%5D=3857418892059122853&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1372262734&unit_data%5Bunit_end_time%5D=1372262734&dom_id=u_0_1b&timestamp=1372262734&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2k\",[\"Popover\",\"m_0_2l\",\"m_0_2i\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_2l\"\n        },{\n            __m: \"m_0_2i\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_2m\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2o\",[\"PopoverAsyncMenu\",\"m_0_2p\",\"m_0_2n\",\"m_0_2m\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2p\"\n        },{\n            __m: \"m_0_2n\"\n        },{\n            __m: \"m_0_2m\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=3&unit_data%5Bhash%5D=-6185676099150237519&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1372627013&unit_data%5Bunit_end_time%5D=1372627013&dom_id=u_0_1f&timestamp=1372627013&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2p\",[\"Popover\",\"m_0_2q\",\"m_0_2n\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_2q\"\n        },{\n            __m: \"m_0_2n\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_2r\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2t\",[\"PopoverAsyncMenu\",\"m_0_2u\",\"m_0_2s\",\"m_0_2r\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2u\"\n        },{\n            __m: \"m_0_2s\"\n        },{\n            __m: \"m_0_2r\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=2&unit_data%5Bhash%5D=4498726532280095426&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1372923465&unit_data%5Bunit_end_time%5D=1372923465&dom_id=u_0_1i&timestamp=1372923465&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2u\",[\"Popover\",\"m_0_2v\",\"m_0_2s\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_2v\"\n        },{\n            __m: \"m_0_2s\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_2w\",[\"PopoverLoadingMenu\",\"MenuTheme\",],[{\n            theme: {\n                __m: \"MenuTheme\"\n            }\n        },],3,],[\"m_0_2y\",[\"PopoverAsyncMenu\",\"m_0_2z\",\"m_0_2x\",\"m_0_2w\",\"PopoverMenuOverlappingBorder\",],[{\n            __m: \"m_0_2z\"\n        },{\n            __m: \"m_0_2x\"\n        },{\n            __m: \"m_0_2w\"\n        },\"/ajax/timeline/curation_menu_new.php?unit_data%5Bunit_type%5D=2&unit_data%5Bhash%5D=2953496614934485437&unit_data%5Bwindow_size%5D=3&unit_data%5Bwindow_start_time%5D=0&unit_data%5Bwindow_end_time%5D=1375340399&unit_data%5Bunit_start_time%5D=1373055341&unit_data%5Bunit_end_time%5D=1373055341&dom_id=u_0_1l&timestamp=1373055341&impression_id=856ec6cb&is_start=1&friendship_page_id=0&is_pinned_page_post=0&profile_id=1055580469&start=0&end=1375340399&query_type=39\",[{\n            __m: \"PopoverMenuOverlappingBorder\"\n        },],],1,],[\"m_0_2z\",[\"Popover\",\"m_0_30\",\"m_0_2x\",\"ContextualLayerAsyncRelative\",],[{\n            __m: \"m_0_30\"\n        },{\n            __m: \"m_0_2x\"\n        },[{\n            __m: \"ContextualLayerAsyncRelative\"\n        },],{\n            alignh: \"right\"\n        },],3,],[\"m_0_36\",[\"UFIController\",\"m_0_35\",\"m_0_37\",],[{\n            __m: \"m_0_35\"\n        },{\n            ftentidentifier: \"10200303357400658\",\n            instanceid: \"u_0_1o\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQChaL86QisSqs0sUSs8MRUaUotI69G171F9LUzJjbgJ3UzhkCDbngkCSE3LqTXr_kwkpMKYBFjbAFbf3ARkq6WPhwdNggKyVSvV8KV-PNpxpVpn4z-X01gT7qWCefQ74vFJS2ze7QPxN8wBikMPK_87rL9vxxevWGYc6pl6lt9iairELljWGqZ5OVTPh_6betWgKPnueIKl3cfeeu2Wp8JVo_rxtcGLCbGllyAUoOfJQvVl1ip2BW-lSbknT2jNEqF6YODCH8P6runJMeNh1vdnyrKv4tcAfTjIZJTNToVZuwg0_J_mSNRH0A0Pd0n1fwQ7E6tv0rX79Dhg8U_MZ5vNwdHr1A2inl1kF3pwcKlpAKuaPfTvQg9J_b4Er2dOkDYkc_ns-EaFh3HtRioAV4ql\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200303357400658\",\n                entidentifier: \"10200303357400658\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200303357400658\",\n                commentcount: 6,\n                likecount: 0,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                    },\n                    alternate: {\n                        text: \"You like this.\",\n                        ranges: [],\n                        aggregatedranges: []\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_37\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [{\n                id: \"10200303357400658_4912489\",\n                fbid: \"10200304193501560\",\n                legacyid: \"4912489\",\n                body: {\n                    text: \"which one?\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100001619067228\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275695,\n                    text: \"June 26 at 3:41pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:41pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200303357400658_4912495\",\n                fbid: \"10200304196181627\",\n                legacyid: \"4912495\",\n                body: {\n                    text: \"oh! this is what is said... ruin all childhood memories!\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100001619067228\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275736,\n                    text: \"June 26 at 3:42pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:42pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200303357400658_4912503\",\n                fbid: \"10200304201781767\",\n                legacyid: \"4912503\",\n                body: {\n                    text: \"It didn't work for me!!!\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100002461958396\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275825,\n                    text: \"June 26 at 3:43pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:43pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200303357400658_4912511\",\n                fbid: \"10200304206981897\",\n                legacyid: \"4912511\",\n                body: {\n                    text: \"Anyhow, it was nice. Thanks\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"100002461958396\",\n                ftentidentifier: \"10200303357400658\",\n                likecount: 1,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372275890,\n                    text: \"June 26 at 3:44pm\",\n                    verbose: \"Wednesday, June 26, 2013 at 3:44pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },],\n            profiles: [{\n                id: \"100006118350059\",\n                JSBNG__name: \"Javasee Cript\",\n                firstName: \"Javasee\",\n                vanity: \"javasee.cript\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/275646_100006118350059_324335073_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/javasee.cript\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"100001619067228\",\n                JSBNG__name: \"Baharak Saberidokht\",\n                firstName: \"Baharak\",\n                vanity: \"baharak.saberidokht\",\n                thumbSrc: \"http://jsbngssl.profile-b.xx.fbcdn.net/hprofile-prn2/s32x32/260631_100001619067228_542177443_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/baharak.saberidokht\",\n                gender: 1,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"100002461958396\",\n                JSBNG__name: \"Vida Farsam\",\n                firstName: \"Vida\",\n                vanity: \"vida.farsam\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/s32x32/203461_100002461958396_1397706771_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/vida.farsam\",\n                gender: 1,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200303357400658: {\n                        chronological: {\n                            range: {\n                                offset: 2,\n                                length: 4\n                            },\n                            values: [\"10200303357400658_4912489\",\"10200303357400658_4912495\",\"10200303357400658_4912503\",\"10200303357400658_4912511\",]\n                        }\n                    }\n                },\n                replies: {\n                    \"10200303357400658_4912489\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    },\n                    \"10200303357400658_4912495\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    },\n                    \"10200303357400658_4912503\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    },\n                    \"10200303357400658_4912511\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200303357400658\"\n                    }\n                }\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_39\",[\"UFIController\",\"m_0_38\",\"m_0_3c\",],[{\n            __m: \"m_0_38\"\n        },{\n            ftentidentifier: \"10200350995551582\",\n            instanceid: \"u_0_1q\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQA0ygLaoIJHgq67aBT-K1c3pj79g5OygMMsHNzDJu-9etibWoq1ZipXxwv_7rDQYnw7mc7OPjKj5Beyr9GBFDeu4VStyKM9XbyP9Aj0vtj__0Id5nF8bZdAch9fYCTA6Z5HXojmLoKLG9dt6tLzGvMXecj0uIKTkMzqQLePPXxpU1B4-db-2-s3Fh99w9DO1plYSzpabaaYcYw8oo-ejXWEvfGXk3p-qv74e-8VozmoKCDL4y2FEvzILcwwHVgt3obElgmRgnkwQkg4hQ2bZ4fl_dlYe6ISRXOiqnQW5-OOfrkLjdMMB5UcaztBff6fxAxyPURkZBzktcfC5m8jKfdWybdGKs1obIlQzJWki5VmoELTY7QMLjC8T-0UJv9q2zVZ0JBGzEGnpjU8NAQYo9FR\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200350995551582\",\n                entidentifier: \"10200350995551582\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200350995551582\",\n                commentcount: 5,\n                likecount: 1,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                        text: \"Jan Vitek likes this.\",\n                        ranges: [{\n                            offset: 0,\n                            length: 9,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/jvitekjr\",\n                                id: 719575350\n                            },]\n                        },],\n                        aggregatedranges: []\n                    },\n                    alternate: {\n                        text: \"You and Jan Vitek like this.\",\n                        ranges: [{\n                            offset: 8,\n                            length: 9,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/jvitekjr\",\n                                id: 719575350\n                            },]\n                        },],\n                        aggregatedranges: []\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_3c\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [{\n                id: \"10200350995551582_4954379\",\n                fbid: \"10200357365790834\",\n                legacyid: \"4954379\",\n                body: {\n                    text: \"You should have snatched it out of his hands, and played it/\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1710926078\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373168110,\n                    text: \"July 6 at 11:35pm\",\n                    verbose: \"Saturday, July 6, 2013 at 11:35pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200350995551582_4955913\",\n                fbid: \"10200359402281745\",\n                legacyid: \"4955913\",\n                body: {\n                    text: \"I've found that stealing musical instruments in non-English-speaking countries hasn't brought me great luck in the past.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373214256,\n                    text: \"Sunday at 12:24pm\",\n                    verbose: \"Sunday, July 7, 2013 at 12:24pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200350995551582_4955915\",\n                fbid: \"10200359408281895\",\n                legacyid: \"4955915\",\n                body: {\n                    text: \"But in English-speaking countries it's just fine.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"10715287\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373214355,\n                    text: \"Sunday at 12:25pm\",\n                    verbose: \"Sunday, July 7, 2013 at 12:25pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200350995551582_4955918\",\n                fbid: \"10200359410801958\",\n                legacyid: \"4955918\",\n                body: {\n                    text: \"Naturally.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200350995551582\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373214375,\n                    text: \"Sunday at 12:26pm\",\n                    verbose: \"Sunday, July 7, 2013 at 12:26pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },],\n            profiles: [{\n                id: \"1710926078\",\n                JSBNG__name: \"Kathy Wertheimer Richards\",\n                firstName: \"Kathy\",\n                vanity: \"kathy.w.richards\",\n                thumbSrc: \"http://jsbngssl.profile-a.xx.fbcdn.net/hprofile-prn2/s32x32/276006_1710926078_512651488_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/kathy.w.richards\",\n                gender: 1,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"1055580469\",\n                JSBNG__name: \"Gregor Richards\",\n                firstName: \"Gregor\",\n                vanity: \"LawlabeeTheWallaby\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/276274_1055580469_962040234_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/LawlabeeTheWallaby\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"10715287\",\n                JSBNG__name: \"Michael A Goss\",\n                firstName: \"Michael\",\n                vanity: \"michael.a.goss\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/s32x32/624179_10715287_1397603425_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/michael.a.goss\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200350995551582: {\n                        chronological: {\n                            range: {\n                                offset: 1,\n                                length: 4\n                            },\n                            values: [\"10200350995551582_4954379\",\"10200350995551582_4955913\",\"10200350995551582_4955915\",\"10200350995551582_4955918\",]\n                        }\n                    }\n                },\n                replies: {\n                    \"10200350995551582_4954379\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    },\n                    \"10200350995551582_4955913\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    },\n                    \"10200350995551582_4955915\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    },\n                    \"10200350995551582_4955918\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200350995551582\"\n                    }\n                }\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_3b\",[\"UFIController\",\"m_0_3a\",\"m_0_37\",],[{\n            __m: \"m_0_3a\"\n        },{\n            ftentidentifier: \"10200325012062011\",\n            instanceid: \"u_0_1r\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQAFUCiLAT5RUcefEz2gKoDEw2y45fki1LQIejQbsCIWgwWsHCHMRqEd6NhhEE3HTJZ2JeWFwNWNGpTentE0x92XazUIAtkX7WDrpyxi9lvRDzK82lTMz_-Mi3SE3WjxflxWWcoKMLrhgXNr8_aZGGFiPZMoR9NNj1x_UacSFZb2GTZ-WXhNFIoMR3XpZ0Pz27lrZweBjs2LJCZhbxVEPWJ_zyMrKnZHkx2FTxMwMZsHcYwye7UenkmczH058RJbpEvmjgxS1Gm_mgug6mBvaekggu2f8o4Rr45al2p3_SqwfDej46LHq_iPe0GGAcI4qqYAbF-p79BSdK-YgegB9yVzvHPCboN8aAtfuzDypVKin-tqTXAmmqLB3xV3C7kjQE4TV1nfDtFW2pWKQZP4YUc1kQmo11w5z3YMFqDxoxibhQ\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200325012062011\",\n                entidentifier: \"10200325012062011\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200325012062011\",\n                commentcount: 0,\n                likecount: 1,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                        text: \"Steph Burg likes this.\",\n                        ranges: [{\n                            offset: 0,\n                            length: 10,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/rubolix\",\n                                id: 8621712\n                            },]\n                        },],\n                        aggregatedranges: []\n                    },\n                    alternate: {\n                        text: \"You and Steph Burg like this.\",\n                        ranges: [{\n                            offset: 8,\n                            length: 10,\n                            entities: [{\n                                url: \"http://jsbngssl.www.facebook.com/rubolix\",\n                                id: 8621712\n                            },]\n                        },],\n                        aggregatedranges: []\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_37\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [],\n            profiles: [],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200325012062012: {\n                        chronological: {\n                            range: {\n                                offset: 0,\n                                length: 0\n                            },\n                            values: []\n                        }\n                    }\n                },\n                replies: null\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_3e\",[\"UFIController\",\"m_0_3d\",\"m_0_37\",],[{\n            __m: \"m_0_3d\"\n        },{\n            ftentidentifier: \"10200343222477260\",\n            instanceid: \"u_0_1u\",\n            source: 0,\n            showaddcomment: true,\n            collapseaddcomment: false,\n            markedcomments: [],\n            scrollcomments: false,\n            scrollwidth: null,\n            showshares: false,\n            shownub: false,\n            numberdelimiter: \",\",\n            showtyping: 0,\n            logtyping: 0,\n            entstream: false,\n            embedded: false,\n            viewoptionstypeobjects: null,\n            viewoptionstypeobjectsorder: null,\n            giftoccasion: null,\n            sht: 1,\n            timelinelogdata: \"AQCrvWaeB11JjIMAytH5Nvv3qmEhQbh5baPerOqkyOPG1prNmmgkQAYqxfM8F4KjqFTD35ePAPwvQDoPrrHJTHSjopTAuw4pc583uhw3meWdTKut8CfMnKQqizqrxNnzYyp4oPdWH66yt7nwLvLnUzUvcvAjMWicEEkiNWbuP3BEi1jT5w2dD7zoCGzxzHY_BeJ1PJ9BPrKJxn6P8TCdhb40KyMbyy0_kaWcpo1sksJl-adSjcOMevAoGosEm8ZiQxjcmpajE_jLfhvKfoYMMW3spYJ_rJby1Js3Q_VW7GswwODSD2FCX_pOREfx3p9VXZfl1eZNupMCx6QKcIGU-ExdJPac8H7Lp4XnIPKIpA49Y5Y9rJADGzQX23L_q5IbjhfIntPu29XD5hzwIEpzA6EL\"\n        },{\n            feedbacktargets: [{\n                targetfbid: \"10200343222477260\",\n                entidentifier: \"10200343222477260\",\n                permalink: \"/LawlabeeTheWallaby/posts/10200343222477260\",\n                commentcount: 11,\n                likecount: 7,\n                viewercanlike: true,\n                hasviewerliked: false,\n                cancomment: false,\n                showremovemenu: false,\n                actorforpost: \"100006118350059\",\n                viewerid: \"100006118350059\",\n                likesentences: {\n                    current: {\n                        text: \"7 people like this.\",\n                        ranges: [],\n                        aggregatedranges: [{\n                            offset: 0,\n                            length: 8,\n                            count: 7\n                        },]\n                    },\n                    alternate: {\n                        text: \"You and 7 others like this.\",\n                        ranges: [],\n                        aggregatedranges: [{\n                            offset: 8,\n                            length: 8,\n                            count: 7\n                        },]\n                    }\n                },\n                sharecount: 0,\n                ownerid: \"1055580469\",\n                lastseentime: null,\n                canremoveall: false,\n                seencount: 0,\n                seenbyall: false,\n                hasunseencollapsed: false,\n                mentionsdatasource: {\n                    __m: \"m_0_37\"\n                },\n                isranked: false,\n                isthreaded: false,\n                isownerpage: false,\n                actorid: \"1055580469\",\n                grouporeventid: null,\n                allowphotoattachments: true,\n                replysocialsentencemaxreplies: 10,\n                showfeaturedreplies: false,\n                viewercansubscribetopost: false,\n                hasviewersubscribed: false,\n                commentboxhoisted: false,\n                hasaddcommentlink: false,\n                defaultcommentorderingmode: \"chronological\",\n                showsendonentertip: true\n            },],\n            comments: [{\n                id: \"10200343222477260_4946958\",\n                fbid: \"10200346777686138\",\n                legacyid: \"4946958\",\n                body: {\n                    text: \"Does it have a sense of the surreal or are you just sharing a data point? ;)\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1633181753\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1372985540,\n                    text: \"July 4 at 8:52pm\",\n                    verbose: \"Thursday, July 4, 2013 at 8:52pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200343222477260_4947623\",\n                fbid: \"10200347758230651\",\n                legacyid: \"4947623\",\n                body: {\n                    text: \"Merely minor amusement.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373002430,\n                    text: \"July 5 at 1:33am\",\n                    verbose: \"Friday, July 5, 2013 at 1:33am\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200343222477260_4950566\",\n                fbid: \"10200351838652659\",\n                legacyid: \"4950566\",\n                body: {\n                    text: \"Did you wear http://img2.etsystatic.com/005/0/8125869/il_570xN.471485474_swpa.jpg\",\n                    ranges: [{\n                        offset: 13,\n                        length: 68,\n                        entities: [{\n                            url: \"http://img2.etsystatic.com/005/0/8125869/il_570xN.471485474_swpa.jpg\",\n                            shimhash: \"nAQExoxFw\",\n                            id: \"0746af69b9da85d793efe61531abaafe\",\n                            JSBNG__external: true\n                        },]\n                    },],\n                    aggregatedranges: []\n                },\n                author: \"53600996\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373066508,\n                    text: \"July 5 at 7:21pm\",\n                    verbose: \"Friday, July 5, 2013 at 7:21pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },{\n                id: \"10200343222477260_4950571\",\n                fbid: \"10200351843052769\",\n                legacyid: \"4950571\",\n                body: {\n                    text: \"That's the most delightfully offensive piece of apparel I've seen in quite some time.\",\n                    ranges: [],\n                    aggregatedranges: []\n                },\n                author: \"1055580469\",\n                ftentidentifier: \"10200343222477260\",\n                likecount: 0,\n                hasviewerliked: false,\n                canremove: false,\n                canreport: true,\n                canedit: false,\n                source: null,\n                istranslatable: false,\n                timestamp: {\n                    time: 1373066594,\n                    text: \"July 5 at 7:23pm\",\n                    verbose: \"Friday, July 5, 2013 at 7:23pm\"\n                },\n                spamreplycount: 0,\n                replyauthors: []\n            },],\n            profiles: [{\n                id: \"1633181753\",\n                JSBNG__name: \"Robert Nesius\",\n                firstName: \"Robert\",\n                vanity: \"rnesius\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/s32x32/573766_1633181753_1114062672_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/rnesius\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },{\n                id: \"53600996\",\n                JSBNG__name: \"Harrison Metzger\",\n                firstName: \"Harrison\",\n                vanity: \"harrisonmetz\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/s32x32/195694_53600996_1993816119_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/harrisonmetz\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null\n            },],\n            actions: [],\n            commentlists: {\n                comments: {\n                    10200343222477260: {\n                        chronological: {\n                            range: {\n                                offset: 7,\n                                length: 4\n                            },\n                            values: [\"10200343222477260_4946958\",\"10200343222477260_4947623\",\"10200343222477260_4950566\",\"10200343222477260_4950571\",]\n                        }\n                    }\n                },\n                replies: {\n                    \"10200343222477260_4946958\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    },\n                    \"10200343222477260_4947623\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    },\n                    \"10200343222477260_4950566\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    },\n                    \"10200343222477260_4950571\": {\n                        range: {\n                            offset: 0,\n                            length: 0\n                        },\n                        values: [],\n                        count: 0,\n                        ftentidentifier: \"10200343222477260\"\n                    }\n                }\n            },\n            servertime: 1373491278\n        },],1,],[\"m_0_37\",[\"MultiBootstrapDataSource\",],[{\n            maxResults: 3,\n            queryData: {\n                context: \"topics_limited_autosuggest\",\n                viewer: 100006118350059,\n                filter: [\"page\",\"user\",],\n                rsp: \"mentions\"\n            },\n            queryEndpoint: \"/ajax/typeahead/search.php\",\n            bootstrapData: {\n                rsp: \"mentions\"\n            },\n            bootstrapEndpoints: [{\n                endpoint: \"/ajax/typeahead/first_degree.php\",\n                data: {\n                    context: \"mentions\",\n                    viewer: 100006118350059,\n                    token: \"1372173655-7\",\n                    filter: [\"page\",\"group\",\"app\",\"JSBNG__event\",\"user\",],\n                    options: [\"friends_only\",\"nm\",]\n                }\n            },]\n        },],6,],[\"m_0_3c\",[\"MultiBootstrapDataSource\",],[{\n            maxResults: 3,\n            queryData: {\n                context: \"topics_limited_autosuggest\",\n                viewer: 100006118350059,\n                filter: [\"page\",\"user\",],\n                rsp: \"mentions\"\n            },\n            queryEndpoint: \"/ajax/typeahead/search.php\",\n            bootstrapData: {\n                rsp: \"mentions\"\n            },\n            bootstrapEndpoints: [{\n                endpoint: \"/ajax/typeahead/first_degree.php\",\n                data: {\n                    context: \"mentions\",\n                    viewer: 100006118350059,\n                    token: \"1372173655-7\",\n                    filter: [\"page\",\"group\",\"app\",\"JSBNG__event\",\"user\",],\n                    options: [\"friends_only\",\"nm\",]\n                }\n            },]\n        },],2,],[\"m_0_3f\",[\"XHPTemplate\",\"m_0_3g\",],[{\n            __m: \"m_0_3g\"\n        },],2,],],\n        define: [[\"CLogConfig\",[],{\n            gkResults: 0\n        },174,],[\"UFICommentTemplates\",[\"m_0_3f\",],{\n            \":fb:ufi:hide-dialog-template\": {\n                __m: \"m_0_3f\"\n            }\n        },70,],[\"UFISpamCountImpl\",[],{\n            \"module\": null\n        },72,],[\"UFIConfig\",[],{\n            renderEmoji: true,\n            renderEmoticons: 1\n        },71,],],\n        elements: [[\"m_0_2l\",\"u_0_1c\",2,],[\"m_0_2i\",\"u_0_1d\",4,],[\"m_0_2q\",\"u_0_1g\",2,],[\"m_0_2n\",\"u_0_1h\",4,],[\"m_0_2v\",\"u_0_1j\",2,],[\"m_0_2s\",\"u_0_1k\",4,],[\"m_0_30\",\"u_0_1m\",2,],[\"m_0_2x\",\"u_0_1n\",4,],[\"m_0_35\",\"u_0_1p\",2,],[\"m_0_38\",\"u_0_1s\",2,],[\"m_0_3a\",\"u_0_1t\",2,],[\"m_0_3d\",\"u_0_1v\",2,],[\"m_0_32\",\"u_0_1w\",2,],[\"m_0_31\",\"u_0_1x\",2,],[\"m_0_33\",\"u_0_1y\",2,],[\"m_0_34\",\"u_0_1z\",2,],],\n        markup: [[\"m_0_3g\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"pvs phm _1yw\\\" data-jsid=\\\"title\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pam _13\\\" data-jsid=\\\"body\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_14\\\"\\u003E\\u003Cdiv class=\\\"pam uiOverlayFooter uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm uiOverlayButton selected _42g- _42gy\\\" data-jsid=\\\"delete\\\" type=\\\"submit\\\"\\u003EDelete\\u003C/button\\u003E\\u003Ca class=\\\"_42ft _42fu layerCancel uiOverlayButton _42gy\\\" role=\\\"button\\\" href=\\\"#\\\"\\u003ECancel\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",\"0duP3\",],\n    bootloadable: {\n        TypeaheadHoistFriends: {\n            resources: [\"bUzfU\",],\n            \"module\": true\n        },\n        \"UFIEntStreamOrderingModeSelector.react\": {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"0duP3\",\"vzIoO\",\"QI+gv\",\"TOw+q\",],\n            \"module\": true\n        },\n        InputSelection: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n            \"module\": true\n        },\n        FileInputUploader: {\n            resources: [\"AyUu6\",\"AsDOA\",\"LpC/l\",\"FFdfj\",],\n            \"module\": true\n        },\n        DialogX: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",],\n            \"module\": true\n        },\n        ContextualTypeaheadView: {\n            resources: [\"AyUu6\",\"0duP3\",\"u//Ut\",\"W3Ky6\",\"AsDOA\",],\n            \"module\": true\n        },\n        TypeaheadBestName: {\n            resources: [\"OJTM4\",\"u//Ut\",],\n            \"module\": true\n        },\n        TypeaheadMetrics: {\n            resources: [\"AyUu6\",\"bUzfU\",],\n            \"module\": true\n        },\n        MentionsInput: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"OJTM4\",],\n            \"module\": true\n        },\n        TypingDetector: {\n            resources: [\"AyUu6\",\"u//Ut\",],\n            \"module\": true\n        },\n        TypeaheadAreaCore: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"u//Ut\",\"bUzfU\",],\n            \"module\": true\n        },\n        EntstreamPubContentOverlay: {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"SZ74q\",\"7EHvC\",\"TOw+q\",\"0duP3\",\"63VzN\",\"40bIq\",],\n            \"module\": true\n        },\n        CompactTypeaheadRenderer: {\n            resources: [\"AyUu6\",\"0duP3\",\"u//Ut\",\"W3Ky6\",],\n            \"module\": true\n        },\n        ScrollAwareDOM: {\n            resources: [\"AyUu6\",\"AsDOA\",],\n            \"module\": true\n        },\n        \"legacy:live-js\": {\n            resources: [\"AyUu6\",\"OJTM4\",]\n        },\n        collectDataAttributes: {\n            resources: [\"AyUu6\",],\n            \"module\": true\n        },\n        UFIScrollHighlight: {\n            resources: [\"AyUu6\",\"AsDOA\",\"KPZ5T\",\"rSdpp\",],\n            \"module\": true\n        },\n        UFIComments: {\n            resources: [\"OJTM4\",\"AyUu6\",],\n            \"module\": true\n        },\n        UFIRetryActions: {\n            resources: [\"AyUu6\",\"OJTM4\",\"8ay4F\",],\n            \"module\": true\n        },\n        LegacyMenuUtils: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",\"utuxU\",\"NfUUN\",],\n            \"module\": true\n        },\n        HashtagLayerPageController: {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"SZ74q\",\"IxyKh\",\"cq4zB\",\"Lsvc0\",\"7EHvC\",\"BBKr2\",\"iFPko\",\"AMFDz\",\"qRGqD\",],\n            \"module\": true\n        },\n        \"legacy:ufi-tracking-js\": {\n            resources: [\"AyUu6\",]\n        },\n        CLoggerX: {\n            resources: [\"AyUu6\",\"OJTM4\",],\n            \"module\": true\n        },\n        \"UFICommentRemovalControls.react\": {\n            resources: [\"OJTM4\",\"AyUu6\",\"W3Ky6\",\"QE+SD\",],\n            \"module\": true\n        },\n        DOMScroll: {\n            resources: [\"AyUu6\",\"AsDOA\",],\n            \"module\": true\n        },\n        ScrollableArea: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n            \"module\": true\n        },\n        HashtagParser: {\n            resources: [\"u//Ut\",\"hfrQl\",],\n            \"module\": true\n        },\n        TextAreaControl: {\n            resources: [\"AyUu6\",\"LpC/l\",\"W3Ky6\",],\n            \"module\": true\n        },\n        LegacyContextualDialog: {\n            resources: [\"AyUu6\",\"AsDOA\",\"EzMPG\",\"W3Ky6\",],\n            \"module\": true\n        },\n        Typeahead: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"u//Ut\",],\n            \"module\": true\n        },\n        Hovercard: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n            \"module\": true\n        },\n        FileInput: {\n            resources: [\"AyUu6\",\"u//Ut\",\"W3Ky6\",],\n            \"module\": true\n        },\n        \"UFIOrderingModeSelector.react\": {\n            resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        AMFDz: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/l0jEiYB1BY4.js\"\n        },\n        BBKr2: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yu/r/AS6izN-qGVZ.js\"\n        },\n        SZ74q: {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yG/r/9E2LeES-RRN.css\"\n        },\n        \"QI+gv\": {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yF/r/w_bzJgcyc3W.css\"\n        },\n        \"8ay4F\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/VrfxLTcinh0.js\"\n        },\n        iFPko: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/8h9kPf0GHRH.js\"\n        },\n        vzIoO: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/oUbZBpEktAd.js\"\n        },\n        Lsvc0: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yQ/r/_hmcMOWGDp_.js\"\n        },\n        NfUUN: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/2xf6U6ugHB5.js\"\n        },\n        rSdpp: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yc/r/2PkTFjdVPzc.js\"\n        },\n        \"7EHvC\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/Pey6lNCLBYS.js\"\n        },\n        \"40bIq\": {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/6QVB5ZYkMIN.css\"\n        },\n        qRGqD: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yx/r/7VYwuqZ2nti.js\"\n        },\n        \"QE+SD\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yJ/r/PIykjmSfAPR.js\"\n        },\n        \"TOw+q\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/vux7xKvT3o9.js\"\n        },\n        utuxU: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/NRYuSW1uDUF.js\"\n        },\n        FFdfj: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yp/r/jyBR-Jzbcb5.js\"\n        },\n        IxyKh: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/ZIi5f4O5zUo.js\"\n        },\n        cq4zB: {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yt/r/h721jO007c4.css\"\n        }\n    },\n    ixData: {\n        \"/images/group_gifts/icons/gift_icon_red-13px.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/83ZMt066WCp.png\",\n            width: 13,\n            height: 13\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"OJTM4\",\"+h1d2\",\"3SGVa\",],\n    displayJS: [\"AyUu6\",\"OJTM4\",],\n    onafterload: [\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",\"Bootloader.loadComponents([\\\"legacy:ufi-tracking-js\\\"], function(){ ufi_add_all_link_data(); });\",\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",\"Bootloader.loadComponents([\\\"legacy:live-js\\\"], function(){ Live.startup() });\",],\n    id: \"pagelet_timeline_recent_segment_0_0_left\",\n    phase: 2,\n    tti_phase: 2\n});");
36349 // 1767
36350 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        pagelet_sidebar: {\n            container_id: \"u_0_2e\"\n        }\n    },\n    jsmods: {\n        require: [[\"ChatSidebar\",\"init\",[\"m_0_3h\",\"m_0_3i\",\"m_0_3j\",],[{\n            __m: \"m_0_3h\"\n        },{\n            __m: \"m_0_3i\"\n        },{\n            __m: \"m_0_3j\"\n        },[],],],[\"ChatSidebarLog\",\"start\",[],[],],[\"m_0_3k\",],[\"m_0_3m\",],[\"m_0_3j\",],[\"Typeahead\",\"init\",[\"m_0_3n\",\"m_0_3j\",],[{\n            __m: \"m_0_3n\"\n        },{\n            __m: \"m_0_3j\"\n        },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_3j\",\"m_0_3p\",],[{\n            __m: \"m_0_3j\"\n        },{\n            __m: \"m_0_3p\"\n        },],],[\"m_0_3s\",],[\"m_0_3t\",],[\"Layer\",\"init\",[\"m_0_3t\",\"m_0_3u\",],[{\n            __m: \"m_0_3t\"\n        },{\n            __m: \"m_0_3u\"\n        },],],[\"m_0_3i\",],[\"PresencePrivacy\",],],\n        instances: [[\"m_0_3m\",[\"ScrollableArea\",\"m_0_3l\",],[{\n            __m: \"m_0_3l\"\n        },{\n            persistent: true\n        },],1,],[\"m_0_3j\",[\"Typeahead\",\"m_0_3q\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_3n\",\"ChatTypeaheadCore\",\"m_0_3o\",],[{\n            __m: \"m_0_3q\"\n        },{\n            node_id: \"u_0_21\",\n            node: null,\n            ctor: {\n                __m: \"ChatTypeaheadView\"\n            },\n            options: {\n                autoSelect: true,\n                renderer: {\n                    __m: \"ChatTypeaheadRenderer\"\n                },\n                causalElement: {\n                    __m: \"m_0_3n\"\n                },\n                minWidth: 0,\n                alignment: \"left\",\n                showBadges: 1\n            }\n        },{\n            ctor: {\n                __m: \"ChatTypeaheadCore\"\n            },\n            options: {\n                keepFocused: false,\n                resetOnSelect: true,\n                setValueOnSelect: false\n            }\n        },{\n            __m: \"m_0_3o\"\n        },],7,],[\"m_0_3s\",[\"ChatSidebarDropdown\",\"m_0_3r\",],[{\n            __m: \"m_0_3r\"\n        },null,],1,],[\"m_0_3t\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n            buildWrapper: false,\n            causalElement: null,\n            addedBehaviors: [{\n                __m: \"AccessibleLayer\"\n            },]\n        },],5,],[\"m_0_3i\",[\"ChatOrderedList\",\"m_0_3v\",\"m_0_3w\",\"m_0_3x\",\"m_0_3t\",],[true,{\n            __m: \"m_0_3v\"\n        },{\n            __m: \"m_0_3w\"\n        },{\n            __m: \"m_0_3x\"\n        },{\n            __m: \"m_0_3t\"\n        },null,],5,],[\"m_0_3k\",[\"LiveBarDark\",\"m_0_3i\",],[{\n            __m: \"m_0_3i\"\n        },[],[\"music\",\"canvas\",\"checkin\",\"travelling\",],],1,],[\"m_0_3q\",[\"ChatTypeaheadDataSource\",],[{\n            alwaysPrefixMatch: true,\n            showOfflineUsers: true\n        },],2,],[\"m_0_3w\",[\"XHPTemplate\",\"m_0_3y\",],[{\n            __m: \"m_0_3y\"\n        },],2,],[\"m_0_3x\",[\"XHPTemplate\",\"m_0_3z\",],[{\n            __m: \"m_0_3z\"\n        },],2,],[\"m_0_40\",[\"XHPTemplate\",\"m_0_44\",],[{\n            __m: \"m_0_44\"\n        },],2,],[\"m_0_41\",[\"XHPTemplate\",\"m_0_45\",],[{\n            __m: \"m_0_45\"\n        },],2,],[\"m_0_42\",[\"XHPTemplate\",\"m_0_47\",],[{\n            __m: \"m_0_47\"\n        },],2,],[\"m_0_43\",[\"XHPTemplate\",\"m_0_49\",],[{\n            __m: \"m_0_49\"\n        },],2,],],\n        define: [[\"ChatOptionsInitialData\",[],{\n            sound: 1,\n            browser_notif: 0,\n            sidebar_mode: true\n        },13,],[\"ChatSidebarCalloutData\",[],{\n            isShown: false\n        },14,],[\"ChannelImplementation\",[\"ChannelConnection\",],{\n            instance: {\n                __m: \"ChannelConnection\"\n            }\n        },150,],[\"ChannelInitialData\",[],{\n            channelConfig: {\n                IFRAME_LOAD_TIMEOUT: 30000,\n                P_TIMEOUT: 30000,\n                STREAMING_TIMEOUT: 70000,\n                PROBE_HEARTBEATS_INTERVAL_LOW: 1000,\n                PROBE_HEARTBEATS_INTERVAL_HIGH: 3000,\n                user_channel: \"p_100006118350059\",\n                seq: -1,\n                retry_interval: 0,\n                max_conn: 6,\n                forceIframe: false,\n                streamProbe: false,\n                tryStreaming: true,\n                bustIframe: false,\n                webrtcSupport: false\n            },\n            reason: 6,\n            state: \"reconnect!\"\n        },143,],[\"MercuryConstants\",[\"MercuryAttachmentType\",\"MercuryPayloadSource\",\"MercuryParticipantTypes\",\"MercuryAttachmentContentType\",\"MercuryThreadlistConstants\",\"MessagingConfig\",\"MercuryTimePassed\",\"MercurySourceType\",\"MessagingEvent\",\"MercuryLogMessageType\",\"MercuryThreadMode\",\"MercuryMessageSourceTags\",\"MercuryActionStatus\",\"MercuryActionTypeConstants\",\"MercuryErrorType\",\"MercuryParticipantsConstants\",\"MessagingTag\",\"MercuryGlobalActionType\",\"MercuryGenericConstants\",\"MercuryAPIArgsSource\",],{\n            MercuryAttachmentType: {\n                __m: \"MercuryAttachmentType\"\n            },\n            VideoChatConstants: {\n                START_SESSION: 1,\n                GET_SKYPE_TOKEN: 2,\n                AWAITING_CALL: 3,\n                CANCELLED_CALL: 4,\n                CONNECTED_CALL: 5,\n                HANDLED_CALL: 6,\n                GOT_START_SESSION: 7,\n                INSTALLING: 8,\n                INSTALLED: 9,\n                INSTALL_CANCELED: 10,\n                ASSOC_CONNECTED_CALL: 118224944915447,\n                ASSOC_VIEWED_CALL_PROMO: 250568041676842,\n                MAX_VC_PROMO_VIEWS: 2,\n                MINIMUM_VC_PROMO_VIEW_INTERVAL: 5184000,\n                MINIMUM_VC_LAST_CALLED_INTERVAL: 5184000\n            },\n            MercuryAttachmentAudioClip: \"fb_voice_message\",\n            MercuryAppIDs: {\n                DESKTOP_NOTIFIER: 220764691281998,\n                DESKTOP_SOCIALFOX: 276729612446445\n            },\n            MercuryPayloadSource: {\n                __m: \"MercuryPayloadSource\"\n            },\n            AttachmentMaxSize: 26214400,\n            MercuryParticipantTypes: {\n                __m: \"MercuryParticipantTypes\"\n            },\n            MercuryTypeaheadConstants: {\n                COMPOSER_FRIENDS_MAX: 4,\n                COMPOSER_NON_FRIENDS_MAX: 2,\n                COMPOSER_SHOW_MORE_LIMIT: 4,\n                COMPOSER_THREADS_INITIAL_LIMIT: 2,\n                USER_TYPE: \"user\",\n                PAGE_TYPE: \"page\",\n                THREAD_TYPE: \"thread\",\n                HEADER_TYPE: \"header\",\n                FRIEND_TYPE: \"friend\",\n                NON_FRIEND_TYPE: \"non_friend\",\n                VALID_EMAIL: \"^([A-Z0-9._%+-]+@((?!facebook\\\\.com))[A-Z0-9.-]+\\\\.[A-Z]{2,4}|(([A-Z._%+-]+[A-Z0-9._%+-]*)|([A-Z0-9._%+-]+[A-Z._%+-]+[A-Z0-9._%+-]*))@(?:facebook\\\\.com))$\"\n            },\n            MercuryAttachmentContentType: {\n                __m: \"MercuryAttachmentContentType\"\n            },\n            MercurySendMessageTimeout: 45000,\n            ChatNotificationConstants: {\n                NORMAL: 0,\n                NO_USER_MESSAGE_NOTIFICATION: 1\n            },\n            MercuryThreadlistConstants: {\n                __m: \"MercuryThreadlistConstants\"\n            },\n            MessagingConfig: {\n                __m: \"MessagingConfig\"\n            },\n            MercuryTimePassed: {\n                __m: \"MercuryTimePassed\"\n            },\n            MercurySourceType: {\n                __m: \"MercurySourceType\"\n            },\n            MessagingEventTypes: {\n                __m: \"MessagingEvent\"\n            },\n            MessagingFilteringType: {\n                LEGACY: \"legacy\",\n                MODERATE: \"moderate\",\n                STRICT: \"strict\"\n            },\n            MercurySupportedShareType: {\n                FB_PHOTO: 2,\n                FB_ALBUM: 3,\n                FB_VIDEO: 11,\n                FB_SONG: 28,\n                FB_MUSIC_ALBUM: 30,\n                FB_PLAYLIST: 31,\n                FB_MUSICIAN: 35,\n                FB_RADIO_STATION: 33,\n                EXTERNAL: 100,\n                FB_TEMPLATE: 300,\n                FB_SOCIAL_REPORT_PHOTO: 48,\n                FB_COUPON: 32,\n                FB_SHARE: 99,\n                FB_HC_QUESTION: 55,\n                FB_HC_ANSWER: 56\n            },\n            Sandbox: {\n                ORIGIN: \"http://jsbngssl.fbstatic-a.akamaihd.net\",\n                PAGE_URL: \"http://jsbngssl.fbstatic-a.akamaihd.net/fbsbx/fbsbx.php?1\"\n            },\n            MercuryLogMessageType: {\n                __m: \"MercuryLogMessageType\"\n            },\n            MercuryThreadMode: {\n                __m: \"MercuryThreadMode\"\n            },\n            MercuryMessageSourceTags: {\n                __m: \"MercuryMessageSourceTags\"\n            },\n            MercuryActionStatus: {\n                __m: \"MercuryActionStatus\"\n            },\n            MercuryActionType: {\n                __m: \"MercuryActionTypeConstants\"\n            },\n            UIPushPhase: \"V3\",\n            MercuryErrorType: {\n                __m: \"MercuryErrorType\"\n            },\n            MercuryParticipantsConstants: {\n                __m: \"MercuryParticipantsConstants\"\n            },\n            MessagingTag: {\n                __m: \"MessagingTag\"\n            },\n            MercuryGlobalActionType: {\n                __m: \"MercuryGlobalActionType\"\n            },\n            MercuryGenericConstants: {\n                __m: \"MercuryGenericConstants\"\n            },\n            MercuryAPIArgsSource: {\n                __m: \"MercuryAPIArgsSource\"\n            }\n        },36,],[\"PresenceInitialData\",[],{\n            serverTime: \"1373491278000\",\n            cookiePollInterval: 500,\n            cookieVersion: 2,\n            dictEncode: true\n        },57,],[\"InitialChatFriendsList\",[],{\n            list: []\n        },26,],[\"BlackbirdUpsellConfig\",[],{\n            EducationTimeOfflineThresdhold: 5184000,\n            UpsellImpressions: 0,\n            UpsellGK: false,\n            UpsellImpressionLimit: 3,\n            TimeOffline: 0,\n            UpsellMinFriendCount: 50,\n            FriendCount: 0,\n            EducationDismissed: 0,\n            EducationGK: 1,\n            UpsellDismissed: 0,\n            EducationImpressionLimit: 2,\n            EducationImpressions: 0\n        },8,],[\"InitialMultichatList\",[],{\n        },132,],[\"BlackbirdUpsellTemplates\",[\"m_0_40\",\"m_0_41\",\"m_0_42\",\"m_0_43\",],{\n            \":fb:chat:blackbird:dialog-frame\": {\n                __m: \"m_0_40\"\n            },\n            \":fb:chat:blackbird:offline-educate\": {\n                __m: \"m_0_41\"\n            },\n            \":fb:chat:blackbird:most-friends-educate\": {\n                __m: \"m_0_42\"\n            },\n            \":fb:chat:blackbird:some-friends-educate\": {\n                __m: \"m_0_43\"\n            }\n        },10,],[\"ChatConfigInitialData\",[],{\n            warning_countdown_threshold_msec: 15000,\n            \"24h_times\": false,\n            livebar_fetch_defer: 1000,\n            \"video.collision_connect\": 1,\n            \"ordered_list.top_mobile\": 5,\n            mute_warning_time_msec: 25000,\n            \"blackbird.min_for_clear_button\": 10,\n            chat_multi_typ_send: 1,\n            web_messenger_suppress_tab_unread: 1,\n            \"ordered_list.top_friends\": 0,\n            chat_impression_logging_with_click: true,\n            channel_manual_reconnect_defer_msec: 2000,\n            \"sidebar.minimum_width\": 1225,\n            \"sound.notif_ogg_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yT/r/q-Drar4Ade6.ogg\",\n            idle_limit: 1800000,\n            \"sidebar.min_friends\": 7,\n            \"sound.notif_mp3_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yb/r/VBbzpp2k5li.mp3\",\n            idle_poll_interval: 300000,\n            activity_limit: 60000,\n            \"sound.ringtone_mp3_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yq/r/Mpd0-fRgh5n.mp3\",\n            \"roger.seen_delay\": 15000,\n            tab_max_load_age: 86400000,\n            typing_notifications: true,\n            show_sticker_nux: true,\n            chat_web_ranking_with_presence: 1,\n            chat_ranked_by_coefficient: 1,\n            \"video.skype_client_log\": 1,\n            \"periodical_impression_logging_config.interval\": 1800000,\n            chat_tab_title_link_timeline: 1,\n            max_sidebar_multichats: 3,\n            tab_auto_close_timeout: 86400000,\n            chat_impression_logging_periodical: true,\n            divebar_has_new_groups_button: true,\n            sound_enabled: true,\n            \"sound.ringtone_ogg_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/y3/r/mbcn6dBHIeX.ogg\",\n            sidebar_ticker: 1\n        },12,],[\"AvailableListInitialData\",[],{\n            chatNotif: 0,\n            pollInterval: 100000,\n            availableList: {\n            },\n            lazyPollInterval: 300000,\n            favoriteList: [],\n            mobileFriends: null,\n            lazyThreshold: 300000,\n            availableCount: 0,\n            lastActiveTimes: null,\n            updateTime: 1373491278000\n        },166,],],\n        elements: [[\"m_0_3h\",\"u_0_22\",2,],[\"m_0_3l\",\"u_0_23\",2,],[\"m_0_3o\",\"u_0_24\",2,],[\"m_0_3p\",\"u_0_25\",2,],[\"m_0_3n\",\"u_0_26\",4,],[\"m_0_3r\",\"u_0_27\",2,],[\"m_0_3v\",\"u_0_29\",2,],[\"m_0_46\",\"u_0_2b\",2,\"m_0_45\",],[\"m_0_48\",\"u_0_2c\",2,\"m_0_47\",],[\"m_0_4a\",\"u_0_2d\",2,\"m_0_49\",],],\n        markup: [[\"m_0_3u\",{\n            __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_28\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_3y\",{\n            __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_3z\",{\n            __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_44\",{\n            __html: \"\\u003Cdiv class=\\\"pam _362\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Ci class=\\\"_8o _8r lfloat img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"clearfix _8u _42ef\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_2a\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"dialogCloseButton\\\" id=\\\"u_0_2a\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"prs\\\" data-jsid=\\\"dialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_45\",{\n            __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=offline&amp;promo_source=educate\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_2b\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E You can turn on chat for just a few friends. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003Cdiv class=\\\"_361\\\"\\u003E\\u003Ca class=\\\"mvm _363 uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" ajaxify=\\\"/ajax/chat/privacy/settings_dialog.php\\\" rel=\\\"dialog\\\" data-jsid=\\\"chatSettingsButton\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EEdit Chat Settings\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n        },3,],[\"m_0_47\",{\n            __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_2c\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E While you have chat turned off for some friends, their messages go to your inbox. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n        },3,],[\"m_0_49\",{\n            __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_2d\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E When chat is off, messages from friends go to your inbox for you to read later. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n        },3,],]\n    },\n    css: [\"W3Ky6\",\"cy4a0\",\"0duP3\",],\n    bootloadable: {\n        SortableGroup: {\n            resources: [\"AyUu6\",\"6tAwh\",\"AsDOA\",],\n            \"module\": true\n        },\n        LitestandSidebarBookmarksDisplay: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"b7cJk\",],\n            \"module\": true\n        },\n        LitestandSidebar: {\n            resources: [\"AyUu6\",\"fvNhh\",\"u//Ut\",\"AsDOA\",\"W3Ky6\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        \"6tAwh\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yV/r/OktjXMyrl5l.js\"\n        },\n        \"H+v1W\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yl/r/OUIW4Mbs_w6.js\"\n        },\n        fvNhh: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/sghigcwX_l-.js\"\n        },\n        b7cJk: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/lI2QSIxa0G3.js\"\n        }\n    },\n    ixData: {\n        \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n            width: 32,\n            height: 32\n        },\n        \"/images/chat/status/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1dc182\"\n        },\n        \"/images/litestand/bookmarks/sidebar/remove.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_76e896\"\n        },\n        \"/images/litestand/sidebar/blended/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6ae2b7\"\n        },\n        \"/images/litestand/sidebar/blended/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_a69036\"\n        },\n        \"/images/litestand/bookmarks/sidebar/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_f57d5d\"\n        },\n        \"/images/litestand/sidebar/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_0b17f3\"\n        },\n        \"/images/litestand/sidebar/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6b87d3\"\n        },\n        \"/images/chat/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_daa3c5\"\n        },\n        \"/images/chat/status/mobile.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6633b3\"\n        },\n        \"/images/chat/sidebar/newGroupChat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/chat/delete.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1bb86f\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"OJTM4\",\"u//Ut\",\"EzMPG\",\"brbS1\",\"H+v1W\",],\n    id: \"pagelet_sidebar\",\n    phase: 3\n});");
36351 // 1768
36352 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s7144c2b4882a7a306a63842ad9110cd8d48b5b57");
36353 // 1769
36354 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        pagelet_sidebar: {\n            container_id: \"u_0_2e\"\n        }\n    },\n    jsmods: {\n        require: [[\"ChatSidebar\",\"init\",[\"m_0_3h\",\"m_0_3i\",\"m_0_3j\",],[{\n            __m: \"m_0_3h\"\n        },{\n            __m: \"m_0_3i\"\n        },{\n            __m: \"m_0_3j\"\n        },[],],],[\"ChatSidebarLog\",\"start\",[],[],],[\"m_0_3k\",],[\"m_0_3m\",],[\"m_0_3j\",],[\"Typeahead\",\"init\",[\"m_0_3n\",\"m_0_3j\",],[{\n            __m: \"m_0_3n\"\n        },{\n            __m: \"m_0_3j\"\n        },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_3j\",\"m_0_3p\",],[{\n            __m: \"m_0_3j\"\n        },{\n            __m: \"m_0_3p\"\n        },],],[\"m_0_3s\",],[\"m_0_3t\",],[\"Layer\",\"init\",[\"m_0_3t\",\"m_0_3u\",],[{\n            __m: \"m_0_3t\"\n        },{\n            __m: \"m_0_3u\"\n        },],],[\"m_0_3i\",],[\"PresencePrivacy\",],],\n        instances: [[\"m_0_3m\",[\"ScrollableArea\",\"m_0_3l\",],[{\n            __m: \"m_0_3l\"\n        },{\n            persistent: true\n        },],1,],[\"m_0_3j\",[\"Typeahead\",\"m_0_3q\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_3n\",\"ChatTypeaheadCore\",\"m_0_3o\",],[{\n            __m: \"m_0_3q\"\n        },{\n            node_id: \"u_0_21\",\n            node: null,\n            ctor: {\n                __m: \"ChatTypeaheadView\"\n            },\n            options: {\n                autoSelect: true,\n                renderer: {\n                    __m: \"ChatTypeaheadRenderer\"\n                },\n                causalElement: {\n                    __m: \"m_0_3n\"\n                },\n                minWidth: 0,\n                alignment: \"left\",\n                showBadges: 1\n            }\n        },{\n            ctor: {\n                __m: \"ChatTypeaheadCore\"\n            },\n            options: {\n                keepFocused: false,\n                resetOnSelect: true,\n                setValueOnSelect: false\n            }\n        },{\n            __m: \"m_0_3o\"\n        },],7,],[\"m_0_3s\",[\"ChatSidebarDropdown\",\"m_0_3r\",],[{\n            __m: \"m_0_3r\"\n        },null,],1,],[\"m_0_3t\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n            buildWrapper: false,\n            causalElement: null,\n            addedBehaviors: [{\n                __m: \"AccessibleLayer\"\n            },]\n        },],5,],[\"m_0_3i\",[\"ChatOrderedList\",\"m_0_3v\",\"m_0_3w\",\"m_0_3x\",\"m_0_3t\",],[true,{\n            __m: \"m_0_3v\"\n        },{\n            __m: \"m_0_3w\"\n        },{\n            __m: \"m_0_3x\"\n        },{\n            __m: \"m_0_3t\"\n        },null,],5,],[\"m_0_3k\",[\"LiveBarDark\",\"m_0_3i\",],[{\n            __m: \"m_0_3i\"\n        },[],[\"music\",\"canvas\",\"checkin\",\"travelling\",],],1,],[\"m_0_3q\",[\"ChatTypeaheadDataSource\",],[{\n            alwaysPrefixMatch: true,\n            showOfflineUsers: true\n        },],2,],[\"m_0_3w\",[\"XHPTemplate\",\"m_0_3y\",],[{\n            __m: \"m_0_3y\"\n        },],2,],[\"m_0_3x\",[\"XHPTemplate\",\"m_0_3z\",],[{\n            __m: \"m_0_3z\"\n        },],2,],[\"m_0_40\",[\"XHPTemplate\",\"m_0_44\",],[{\n            __m: \"m_0_44\"\n        },],2,],[\"m_0_41\",[\"XHPTemplate\",\"m_0_45\",],[{\n            __m: \"m_0_45\"\n        },],2,],[\"m_0_42\",[\"XHPTemplate\",\"m_0_47\",],[{\n            __m: \"m_0_47\"\n        },],2,],[\"m_0_43\",[\"XHPTemplate\",\"m_0_49\",],[{\n            __m: \"m_0_49\"\n        },],2,],],\n        define: [[\"ChatOptionsInitialData\",[],{\n            sound: 1,\n            browser_notif: 0,\n            sidebar_mode: true\n        },13,],[\"ChatSidebarCalloutData\",[],{\n            isShown: false\n        },14,],[\"ChannelImplementation\",[\"ChannelConnection\",],{\n            instance: {\n                __m: \"ChannelConnection\"\n            }\n        },150,],[\"ChannelInitialData\",[],{\n            channelConfig: {\n                IFRAME_LOAD_TIMEOUT: 30000,\n                P_TIMEOUT: 30000,\n                STREAMING_TIMEOUT: 70000,\n                PROBE_HEARTBEATS_INTERVAL_LOW: 1000,\n                PROBE_HEARTBEATS_INTERVAL_HIGH: 3000,\n                user_channel: \"p_100006118350059\",\n                seq: -1,\n                retry_interval: 0,\n                max_conn: 6,\n                forceIframe: false,\n                streamProbe: false,\n                tryStreaming: true,\n                bustIframe: false,\n                webrtcSupport: false\n            },\n            reason: 6,\n            state: \"reconnect!\"\n        },143,],[\"MercuryConstants\",[\"MercuryAttachmentType\",\"MercuryPayloadSource\",\"MercuryParticipantTypes\",\"MercuryAttachmentContentType\",\"MercuryThreadlistConstants\",\"MessagingConfig\",\"MercuryTimePassed\",\"MercurySourceType\",\"MessagingEvent\",\"MercuryLogMessageType\",\"MercuryThreadMode\",\"MercuryMessageSourceTags\",\"MercuryActionStatus\",\"MercuryActionTypeConstants\",\"MercuryErrorType\",\"MercuryParticipantsConstants\",\"MessagingTag\",\"MercuryGlobalActionType\",\"MercuryGenericConstants\",\"MercuryAPIArgsSource\",],{\n            MercuryAttachmentType: {\n                __m: \"MercuryAttachmentType\"\n            },\n            VideoChatConstants: {\n                START_SESSION: 1,\n                GET_SKYPE_TOKEN: 2,\n                AWAITING_CALL: 3,\n                CANCELLED_CALL: 4,\n                CONNECTED_CALL: 5,\n                HANDLED_CALL: 6,\n                GOT_START_SESSION: 7,\n                INSTALLING: 8,\n                INSTALLED: 9,\n                INSTALL_CANCELED: 10,\n                ASSOC_CONNECTED_CALL: 118224944915447,\n                ASSOC_VIEWED_CALL_PROMO: 250568041676842,\n                MAX_VC_PROMO_VIEWS: 2,\n                MINIMUM_VC_PROMO_VIEW_INTERVAL: 5184000,\n                MINIMUM_VC_LAST_CALLED_INTERVAL: 5184000\n            },\n            MercuryAttachmentAudioClip: \"fb_voice_message\",\n            MercuryAppIDs: {\n                DESKTOP_NOTIFIER: 220764691281998,\n                DESKTOP_SOCIALFOX: 276729612446445\n            },\n            MercuryPayloadSource: {\n                __m: \"MercuryPayloadSource\"\n            },\n            AttachmentMaxSize: 26214400,\n            MercuryParticipantTypes: {\n                __m: \"MercuryParticipantTypes\"\n            },\n            MercuryTypeaheadConstants: {\n                COMPOSER_FRIENDS_MAX: 4,\n                COMPOSER_NON_FRIENDS_MAX: 2,\n                COMPOSER_SHOW_MORE_LIMIT: 4,\n                COMPOSER_THREADS_INITIAL_LIMIT: 2,\n                USER_TYPE: \"user\",\n                PAGE_TYPE: \"page\",\n                THREAD_TYPE: \"thread\",\n                HEADER_TYPE: \"header\",\n                FRIEND_TYPE: \"friend\",\n                NON_FRIEND_TYPE: \"non_friend\",\n                VALID_EMAIL: \"^([A-Z0-9._%+-]+@((?!facebook\\\\.com))[A-Z0-9.-]+\\\\.[A-Z]{2,4}|(([A-Z._%+-]+[A-Z0-9._%+-]*)|([A-Z0-9._%+-]+[A-Z._%+-]+[A-Z0-9._%+-]*))@(?:facebook\\\\.com))$\"\n            },\n            MercuryAttachmentContentType: {\n                __m: \"MercuryAttachmentContentType\"\n            },\n            MercurySendMessageTimeout: 45000,\n            ChatNotificationConstants: {\n                NORMAL: 0,\n                NO_USER_MESSAGE_NOTIFICATION: 1\n            },\n            MercuryThreadlistConstants: {\n                __m: \"MercuryThreadlistConstants\"\n            },\n            MessagingConfig: {\n                __m: \"MessagingConfig\"\n            },\n            MercuryTimePassed: {\n                __m: \"MercuryTimePassed\"\n            },\n            MercurySourceType: {\n                __m: \"MercurySourceType\"\n            },\n            MessagingEventTypes: {\n                __m: \"MessagingEvent\"\n            },\n            MessagingFilteringType: {\n                LEGACY: \"legacy\",\n                MODERATE: \"moderate\",\n                STRICT: \"strict\"\n            },\n            MercurySupportedShareType: {\n                FB_PHOTO: 2,\n                FB_ALBUM: 3,\n                FB_VIDEO: 11,\n                FB_SONG: 28,\n                FB_MUSIC_ALBUM: 30,\n                FB_PLAYLIST: 31,\n                FB_MUSICIAN: 35,\n                FB_RADIO_STATION: 33,\n                EXTERNAL: 100,\n                FB_TEMPLATE: 300,\n                FB_SOCIAL_REPORT_PHOTO: 48,\n                FB_COUPON: 32,\n                FB_SHARE: 99,\n                FB_HC_QUESTION: 55,\n                FB_HC_ANSWER: 56\n            },\n            Sandbox: {\n                ORIGIN: \"http://jsbngssl.fbstatic-a.akamaihd.net\",\n                PAGE_URL: \"http://jsbngssl.fbstatic-a.akamaihd.net/fbsbx/fbsbx.php?1\"\n            },\n            MercuryLogMessageType: {\n                __m: \"MercuryLogMessageType\"\n            },\n            MercuryThreadMode: {\n                __m: \"MercuryThreadMode\"\n            },\n            MercuryMessageSourceTags: {\n                __m: \"MercuryMessageSourceTags\"\n            },\n            MercuryActionStatus: {\n                __m: \"MercuryActionStatus\"\n            },\n            MercuryActionType: {\n                __m: \"MercuryActionTypeConstants\"\n            },\n            UIPushPhase: \"V3\",\n            MercuryErrorType: {\n                __m: \"MercuryErrorType\"\n            },\n            MercuryParticipantsConstants: {\n                __m: \"MercuryParticipantsConstants\"\n            },\n            MessagingTag: {\n                __m: \"MessagingTag\"\n            },\n            MercuryGlobalActionType: {\n                __m: \"MercuryGlobalActionType\"\n            },\n            MercuryGenericConstants: {\n                __m: \"MercuryGenericConstants\"\n            },\n            MercuryAPIArgsSource: {\n                __m: \"MercuryAPIArgsSource\"\n            }\n        },36,],[\"PresenceInitialData\",[],{\n            serverTime: \"1373491278000\",\n            cookiePollInterval: 500,\n            cookieVersion: 2,\n            dictEncode: true\n        },57,],[\"InitialChatFriendsList\",[],{\n            list: []\n        },26,],[\"BlackbirdUpsellConfig\",[],{\n            EducationTimeOfflineThresdhold: 5184000,\n            UpsellImpressions: 0,\n            UpsellGK: false,\n            UpsellImpressionLimit: 3,\n            TimeOffline: 0,\n            UpsellMinFriendCount: 50,\n            FriendCount: 0,\n            EducationDismissed: 0,\n            EducationGK: 1,\n            UpsellDismissed: 0,\n            EducationImpressionLimit: 2,\n            EducationImpressions: 0\n        },8,],[\"InitialMultichatList\",[],{\n        },132,],[\"BlackbirdUpsellTemplates\",[\"m_0_40\",\"m_0_41\",\"m_0_42\",\"m_0_43\",],{\n            \":fb:chat:blackbird:dialog-frame\": {\n                __m: \"m_0_40\"\n            },\n            \":fb:chat:blackbird:offline-educate\": {\n                __m: \"m_0_41\"\n            },\n            \":fb:chat:blackbird:most-friends-educate\": {\n                __m: \"m_0_42\"\n            },\n            \":fb:chat:blackbird:some-friends-educate\": {\n                __m: \"m_0_43\"\n            }\n        },10,],[\"ChatConfigInitialData\",[],{\n            warning_countdown_threshold_msec: 15000,\n            \"24h_times\": false,\n            livebar_fetch_defer: 1000,\n            \"video.collision_connect\": 1,\n            \"ordered_list.top_mobile\": 5,\n            mute_warning_time_msec: 25000,\n            \"blackbird.min_for_clear_button\": 10,\n            chat_multi_typ_send: 1,\n            web_messenger_suppress_tab_unread: 1,\n            \"ordered_list.top_friends\": 0,\n            chat_impression_logging_with_click: true,\n            channel_manual_reconnect_defer_msec: 2000,\n            \"sidebar.minimum_width\": 1225,\n            \"sound.notif_ogg_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yT/r/q-Drar4Ade6.ogg\",\n            idle_limit: 1800000,\n            \"sidebar.min_friends\": 7,\n            \"sound.notif_mp3_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yb/r/VBbzpp2k5li.mp3\",\n            idle_poll_interval: 300000,\n            activity_limit: 60000,\n            \"sound.ringtone_mp3_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yq/r/Mpd0-fRgh5n.mp3\",\n            \"roger.seen_delay\": 15000,\n            tab_max_load_age: 86400000,\n            typing_notifications: true,\n            show_sticker_nux: true,\n            chat_web_ranking_with_presence: 1,\n            chat_ranked_by_coefficient: 1,\n            \"video.skype_client_log\": 1,\n            \"periodical_impression_logging_config.interval\": 1800000,\n            chat_tab_title_link_timeline: 1,\n            max_sidebar_multichats: 3,\n            tab_auto_close_timeout: 86400000,\n            chat_impression_logging_periodical: true,\n            divebar_has_new_groups_button: true,\n            sound_enabled: true,\n            \"sound.ringtone_ogg_url\": \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/y3/r/mbcn6dBHIeX.ogg\",\n            sidebar_ticker: 1\n        },12,],[\"AvailableListInitialData\",[],{\n            chatNotif: 0,\n            pollInterval: 100000,\n            availableList: {\n            },\n            lazyPollInterval: 300000,\n            favoriteList: [],\n            mobileFriends: null,\n            lazyThreshold: 300000,\n            availableCount: 0,\n            lastActiveTimes: null,\n            updateTime: 1373491278000\n        },166,],],\n        elements: [[\"m_0_3h\",\"u_0_22\",2,],[\"m_0_3l\",\"u_0_23\",2,],[\"m_0_3o\",\"u_0_24\",2,],[\"m_0_3p\",\"u_0_25\",2,],[\"m_0_3n\",\"u_0_26\",4,],[\"m_0_3r\",\"u_0_27\",2,],[\"m_0_3v\",\"u_0_29\",2,],[\"m_0_46\",\"u_0_2b\",2,\"m_0_45\",],[\"m_0_48\",\"u_0_2c\",2,\"m_0_47\",],[\"m_0_4a\",\"u_0_2d\",2,\"m_0_49\",],],\n        markup: [[\"m_0_3u\",{\n            __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_28\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_3y\",{\n            __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_3z\",{\n            __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_44\",{\n            __html: \"\\u003Cdiv class=\\\"pam _362\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Ci class=\\\"_8o _8r lfloat img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"clearfix _8u _42ef\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_2a\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"dialogCloseButton\\\" id=\\\"u_0_2a\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"prs\\\" data-jsid=\\\"dialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_45\",{\n            __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=offline&amp;promo_source=educate\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_2b\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E You can turn on chat for just a few friends. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003Cdiv class=\\\"_361\\\"\\u003E\\u003Ca class=\\\"mvm _363 uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" ajaxify=\\\"/ajax/chat/privacy/settings_dialog.php\\\" rel=\\\"dialog\\\" data-jsid=\\\"chatSettingsButton\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EEdit Chat Settings\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n        },3,],[\"m_0_47\",{\n            __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_2c\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E While you have chat turned off for some friends, their messages go to your inbox. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n        },3,],[\"m_0_49\",{\n            __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_2d\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E When chat is off, messages from friends go to your inbox for you to read later. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n        },3,],]\n    },\n    css: [\"W3Ky6\",\"cy4a0\",\"0duP3\",],\n    bootloadable: {\n        SortableGroup: {\n            resources: [\"AyUu6\",\"6tAwh\",\"AsDOA\",],\n            \"module\": true\n        },\n        LitestandSidebarBookmarksDisplay: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"b7cJk\",],\n            \"module\": true\n        },\n        LitestandSidebar: {\n            resources: [\"AyUu6\",\"fvNhh\",\"u//Ut\",\"AsDOA\",\"W3Ky6\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        \"6tAwh\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yV/r/OktjXMyrl5l.js\"\n        },\n        \"H+v1W\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yl/r/OUIW4Mbs_w6.js\"\n        },\n        fvNhh: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/sghigcwX_l-.js\"\n        },\n        b7cJk: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/lI2QSIxa0G3.js\"\n        }\n    },\n    ixData: {\n        \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n            width: 32,\n            height: 32\n        },\n        \"/images/chat/status/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1dc182\"\n        },\n        \"/images/litestand/bookmarks/sidebar/remove.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_76e896\"\n        },\n        \"/images/litestand/sidebar/blended/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6ae2b7\"\n        },\n        \"/images/litestand/sidebar/blended/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_a69036\"\n        },\n        \"/images/litestand/bookmarks/sidebar/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_f57d5d\"\n        },\n        \"/images/litestand/sidebar/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_0b17f3\"\n        },\n        \"/images/litestand/sidebar/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6b87d3\"\n        },\n        \"/images/chat/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_daa3c5\"\n        },\n        \"/images/chat/status/mobile.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6633b3\"\n        },\n        \"/images/chat/sidebar/newGroupChat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/chat/delete.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1bb86f\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"OJTM4\",\"u//Ut\",\"EzMPG\",\"brbS1\",\"H+v1W\",],\n    id: \"pagelet_sidebar\",\n    phase: 3\n});");
36355 // 1776
36356 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    append: \"u_0_17_right\",\n    is_last: true,\n    is_second_to_last_phase: true,\n    content: {\n        pagelet_timeline_recent_segment_0_0_right: {\n            container_id: \"u_0_2p\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"markSectionAsLoaded\",[],[\"u_0_18\",\"recent\",\"0\",],],[\"TimelineCapsule\",\"loadTwoColumnUnits\",[],[\"u_0_17\",],],[\"TimelineStickyRightColumn\",\"adjust\",[],[],],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",\"RaYA1\",\"0duP3\",],\n    bootloadable: {\n    },\n    resource_map: {\n        RaYA1: {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yt/r/CFIDS-pTvJ2.css\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"OJTM4\",\"+h1d2\",\"3SGVa\",],\n    id: \"pagelet_timeline_recent_segment_0_0_right\",\n    phase: 3\n});");
36357 // 1777
36358 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s943922c655173e1c90bbc4804674c7de02afa9c1");
36359 // 1778
36360 geval("bigPipe.onPageletArrive({\n    append: \"u_0_17_right\",\n    is_last: true,\n    is_second_to_last_phase: true,\n    JSBNG__content: {\n        pagelet_timeline_recent_segment_0_0_right: {\n            container_id: \"u_0_2p\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"markSectionAsLoaded\",[],[\"u_0_18\",\"recent\",\"0\",],],[\"TimelineCapsule\",\"loadTwoColumnUnits\",[],[\"u_0_17\",],],[\"TimelineStickyRightColumn\",\"adjust\",[],[],],]\n    },\n    css: [\"W3Ky6\",\"ZtiRu\",\"RaYA1\",\"0duP3\",],\n    bootloadable: {\n    },\n    resource_map: {\n        RaYA1: {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yt/r/CFIDS-pTvJ2.css\"\n        }\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"OJTM4\",\"+h1d2\",\"3SGVa\",],\n    id: \"pagelet_timeline_recent_segment_0_0_right\",\n    phase: 3\n});");
36361 // 1785
36362 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        pagelet_side_ads: {\n            container_id: \"u_0_2r\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineSideAds\",\"init\",[\"m_0_4b\",],[{\n            __m: \"m_0_4b\"\n        },1055580469,{\n            refresh_delay: 5000,\n            refresh_threshold: 30000,\n            mouse_move: 1,\n            max_ads: 5\n        },],],],\n        elements: [[\"m_0_4b\",\"u_0_2q\",2,],]\n    },\n    css: [\"W3Ky6\",\"0duP3\",\"ZtiRu\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    id: \"pagelet_side_ads\",\n    phase: 4\n});");
36363 // 1786
36364 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s69cc65dcd57102640a5edcd5771671d565c03fcd");
36365 // 1787
36366 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        pagelet_side_ads: {\n            container_id: \"u_0_2r\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineSideAds\",\"init\",[\"m_0_4b\",],[{\n            __m: \"m_0_4b\"\n        },1055580469,{\n            refresh_delay: 5000,\n            refresh_threshold: 30000,\n            mouse_move: 1,\n            max_ads: 5\n        },],],],\n        elements: [[\"m_0_4b\",\"u_0_2q\",2,],]\n    },\n    css: [\"W3Ky6\",\"0duP3\",\"ZtiRu\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    id: \"pagelet_side_ads\",\n    phase: 4\n});");
36367 // 1794
36368 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        pagelet_dock: {\n            container_id: \"u_0_3g\"\n        }\n    },\n    jsmods: {\n        require: [[\"MusicButtonManager\",\"init\",[],[[\"music.song\",],],],[\"initLiveMessageReceiver\",],[\"Dock\",\"init\",[\"m_0_4c\",],[{\n            __m: \"m_0_4c\"\n        },],],[\"React\",\"constructAndRenderComponent\",[\"NotificationBeeper.react\",\"m_0_4d\",],[{\n            __m: \"NotificationBeeper.react\"\n        },{\n            unseenVsUnread: false,\n            canPause: false,\n            shouldLogImpressions: false,\n            soundPath: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yy/r/odIeERVR1c5.mp3\",\n            soundEnabled: true,\n            tracking: \"{\\\"ref\\\":\\\"beeper\\\",\\\"jewel\\\":\\\"notifications\\\",\\\"type\\\":\\\"click2canvas\\\"}\"\n        },{\n            __m: \"m_0_4d\"\n        },],],[\"ChatApp\",\"init\",[\"m_0_4e\",\"m_0_4f\",],[{\n            __m: \"m_0_4e\"\n        },{\n            __m: \"m_0_4f\"\n        },{\n            payload_source: \"server_initial_data\"\n        },],],[\"ChatOptions\",],[\"ShortProfiles\",\"setMulti\",[],[{\n            100006118350059: {\n                id: \"100006118350059\",\n                name: \"Javasee Cript\",\n                firstName: \"Javasee\",\n                vanity: \"javasee.cript\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/275646_100006118350059_324335073_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/javasee.cript\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null,\n                showVideoPromo: false,\n                searchTokens: [\"Cript\",\"Javasee\",]\n            }\n        },],],[\"m_0_4h\",],[\"m_0_4j\",],[\"Typeahead\",\"init\",[\"m_0_4k\",\"m_0_4j\",],[{\n            __m: \"m_0_4k\"\n        },{\n            __m: \"m_0_4j\"\n        },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_4j\",\"m_0_4m\",],[{\n            __m: \"m_0_4j\"\n        },{\n            __m: \"m_0_4m\"\n        },],],[\"m_0_4p\",],[\"m_0_4q\",],[\"Layer\",\"init\",[\"m_0_4q\",\"m_0_4r\",],[{\n            __m: \"m_0_4q\"\n        },{\n            __m: \"m_0_4r\"\n        },],],[\"m_0_4i\",],[\"m_0_6x\",],[\"Typeahead\",\"init\",[\"m_0_6v\",\"m_0_6x\",],[{\n            __m: \"m_0_6v\"\n        },{\n            __m: \"m_0_6x\"\n        },[],null,],],],\n        instances: [[\"m_0_4h\",[\"BuddyListNub\",\"m_0_4g\",\"m_0_4i\",\"m_0_4j\",],[{\n            __m: \"m_0_4g\"\n        },{\n            __m: \"m_0_4i\"\n        },{\n            __m: \"m_0_4j\"\n        },],1,],[\"m_0_4j\",[\"Typeahead\",\"m_0_4n\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_4k\",\"ChatTypeaheadCore\",\"m_0_4l\",],[{\n            __m: \"m_0_4n\"\n        },{\n            node_id: \"u_0_2v\",\n            node: null,\n            ctor: {\n                __m: \"ChatTypeaheadView\"\n            },\n            options: {\n                autoSelect: true,\n                renderer: {\n                    __m: \"ChatTypeaheadRenderer\"\n                },\n                causalElement: {\n                    __m: \"m_0_4k\"\n                },\n                minWidth: 0,\n                alignment: \"left\",\n                showBadges: 1\n            }\n        },{\n            ctor: {\n                __m: \"ChatTypeaheadCore\"\n            },\n            options: {\n                keepFocused: false,\n                resetOnSelect: true,\n                setValueOnSelect: false\n            }\n        },{\n            __m: \"m_0_4l\"\n        },],7,],[\"m_0_4p\",[\"ChatSidebarDropdown\",\"m_0_4o\",],[{\n            __m: \"m_0_4o\"\n        },null,],1,],[\"m_0_4q\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n            buildWrapper: false,\n            causalElement: null,\n            addedBehaviors: [{\n                __m: \"AccessibleLayer\"\n            },]\n        },],5,],[\"m_0_4i\",[\"ChatOrderedList\",\"m_0_4s\",\"m_0_4t\",\"m_0_4u\",\"m_0_4q\",],[false,{\n            __m: \"m_0_4s\"\n        },{\n            __m: \"m_0_4t\"\n        },{\n            __m: \"m_0_4u\"\n        },{\n            __m: \"m_0_4q\"\n        },null,],3,],[\"m_0_4n\",[\"ChatTypeaheadDataSource\",],[{\n            alwaysPrefixMatch: true,\n            showOfflineUsers: true\n        },],2,],[\"m_0_4t\",[\"XHPTemplate\",\"m_0_4v\",],[{\n            __m: \"m_0_4v\"\n        },],2,],[\"m_0_4u\",[\"XHPTemplate\",\"m_0_4w\",],[{\n            __m: \"m_0_4w\"\n        },],2,],[\"m_0_4x\",[\"XHPTemplate\",\"m_0_62\",],[{\n            __m: \"m_0_62\"\n        },],2,],[\"m_0_4y\",[\"XHPTemplate\",\"m_0_63\",],[{\n            __m: \"m_0_63\"\n        },],2,],[\"m_0_4z\",[\"XHPTemplate\",\"m_0_64\",],[{\n            __m: \"m_0_64\"\n        },],2,],[\"m_0_50\",[\"XHPTemplate\",\"m_0_65\",],[{\n            __m: \"m_0_65\"\n        },],2,],[\"m_0_51\",[\"XHPTemplate\",\"m_0_66\",],[{\n            __m: \"m_0_66\"\n        },],2,],[\"m_0_52\",[\"XHPTemplate\",\"m_0_67\",],[{\n            __m: \"m_0_67\"\n        },],2,],[\"m_0_53\",[\"XHPTemplate\",\"m_0_68\",],[{\n            __m: \"m_0_68\"\n        },],2,],[\"m_0_54\",[\"XHPTemplate\",\"m_0_69\",],[{\n            __m: \"m_0_69\"\n        },],2,],[\"m_0_55\",[\"XHPTemplate\",\"m_0_6a\",],[{\n            __m: \"m_0_6a\"\n        },],2,],[\"m_0_56\",[\"XHPTemplate\",\"m_0_6b\",],[{\n            __m: \"m_0_6b\"\n        },],2,],[\"m_0_57\",[\"XHPTemplate\",\"m_0_6c\",],[{\n            __m: \"m_0_6c\"\n        },],2,],[\"m_0_58\",[\"DataSource\",],[{\n            maxResults: 5,\n            queryData: [],\n            bootstrapData: {\n                viewer: 100006118350059,\n                token: \"1372173655-7\",\n                filter: [\"user\",],\n                options: [\"friends_only\",]\n            },\n            bootstrapEndpoint: \"/ajax/typeahead/first_degree.php\"\n        },],2,],[\"m_0_59\",[\"XHPTemplate\",\"m_0_6d\",],[{\n            __m: \"m_0_6d\"\n        },],2,],[\"m_0_5a\",[\"XHPTemplate\",\"m_0_6e\",],[{\n            __m: \"m_0_6e\"\n        },],2,],[\"m_0_5b\",[\"XHPTemplate\",\"m_0_6f\",],[{\n            __m: \"m_0_6f\"\n        },],2,],[\"m_0_5c\",[\"XHPTemplate\",\"m_0_6g\",],[{\n            __m: \"m_0_6g\"\n        },],2,],[\"m_0_5d\",[\"XHPTemplate\",\"m_0_6h\",],[{\n            __m: \"m_0_6h\"\n        },],2,],[\"m_0_5e\",[\"XHPTemplate\",\"m_0_6i\",],[{\n            __m: \"m_0_6i\"\n        },],2,],[\"m_0_5f\",[\"XHPTemplate\",\"m_0_6j\",],[{\n            __m: \"m_0_6j\"\n        },],2,],[\"m_0_5g\",[\"XHPTemplate\",\"m_0_6k\",],[{\n            __m: \"m_0_6k\"\n        },],2,],[\"m_0_5h\",[\"XHPTemplate\",\"m_0_6l\",],[{\n            __m: \"m_0_6l\"\n        },],2,],[\"m_0_5i\",[\"XHPTemplate\",\"m_0_6m\",],[{\n            __m: \"m_0_6m\"\n        },],2,],[\"m_0_5j\",[\"XHPTemplate\",\"m_0_6n\",],[{\n            __m: \"m_0_6n\"\n        },],2,],[\"m_0_5k\",[\"XHPTemplate\",\"m_0_6o\",],[{\n            __m: \"m_0_6o\"\n        },],2,],[\"m_0_5l\",[\"XHPTemplate\",\"m_0_6p\",],[{\n            __m: \"m_0_6p\"\n        },],2,],[\"m_0_5m\",[\"XHPTemplate\",\"m_0_6q\",],[{\n            __m: \"m_0_6q\"\n        },],2,],[\"m_0_5n\",[\"XHPTemplate\",\"m_0_6r\",],[{\n            __m: \"m_0_6r\"\n        },],2,],[\"m_0_6x\",[\"Typeahead\",\"m_0_6y\",\"ContextualTypeaheadView\",\"m_0_6v\",\"TypeaheadCore\",\"m_0_6w\",],[{\n            __m: \"m_0_6y\"\n        },{\n            node_id: \"\",\n            node: null,\n            ctor: {\n                __m: \"ContextualTypeaheadView\"\n            },\n            options: {\n                causalElement: {\n                    __m: \"m_0_6v\"\n                },\n                minWidth: 0,\n                alignment: \"left\",\n                showBadges: 1\n            }\n        },{\n            ctor: {\n                __m: \"TypeaheadCore\"\n            },\n            options: []\n        },{\n            __m: \"m_0_6w\"\n        },],3,],[\"m_0_5o\",[\"XHPTemplate\",\"m_0_6u\",],[{\n            __m: \"m_0_6u\"\n        },],2,],[\"m_0_5p\",[\"XHPTemplate\",\"m_0_6z\",],[{\n            __m: \"m_0_6z\"\n        },],2,],[\"m_0_5q\",[\"XHPTemplate\",\"m_0_70\",],[{\n            __m: \"m_0_70\"\n        },],2,],[\"m_0_5r\",[\"XHPTemplate\",\"m_0_71\",],[{\n            __m: \"m_0_71\"\n        },],2,],[\"m_0_5s\",[\"XHPTemplate\",\"m_0_72\",],[{\n            __m: \"m_0_72\"\n        },],2,],[\"m_0_5t\",[\"XHPTemplate\",\"m_0_73\",],[{\n            __m: \"m_0_73\"\n        },],2,],[\"m_0_5u\",[\"XHPTemplate\",\"m_0_74\",],[{\n            __m: \"m_0_74\"\n        },],2,],[\"m_0_5v\",[\"XHPTemplate\",\"m_0_75\",],[{\n            __m: \"m_0_75\"\n        },],2,],[\"m_0_5w\",[\"XHPTemplate\",\"m_0_76\",],[{\n            __m: \"m_0_76\"\n        },],2,],[\"m_0_5x\",[\"XHPTemplate\",\"m_0_79\",],[{\n            __m: \"m_0_79\"\n        },],2,],[\"m_0_5y\",[\"XHPTemplate\",\"m_0_7a\",],[{\n            __m: \"m_0_7a\"\n        },],2,],[\"m_0_5z\",[\"XHPTemplate\",\"m_0_7b\",],[{\n            __m: \"m_0_7b\"\n        },],2,],[\"m_0_60\",[\"XHPTemplate\",\"m_0_7c\",],[{\n            __m: \"m_0_7c\"\n        },],2,],[\"m_0_61\",[\"XHPTemplate\",\"m_0_7d\",],[{\n            __m: \"m_0_7d\"\n        },],2,],[\"m_0_6y\",[\"DataSource\",],[[],],2,],],\n        define: [[\"LinkshimHandlerConfig\",[],{\n            supports_meta_referrer: true,\n            render_verification_rate: 1000\n        },27,],[\"MercurySheetTemplates\",[\"m_0_4x\",],{\n            \":fb:mercury:tab-sheet:loading\": {\n                __m: \"m_0_4x\"\n            }\n        },40,],[\"MercuryAttachmentTemplates\",[\"m_0_4y\",\"m_0_4z\",\"m_0_50\",\"m_0_51\",\"m_0_52\",\"m_0_53\",\"m_0_54\",\"m_0_55\",\"m_0_56\",\"m_0_57\",],{\n            \":fb:mercury:attachment:error\": {\n                __m: \"m_0_4y\"\n            },\n            \":fb:mercury:attachment:video-thumb\": {\n                __m: \"m_0_4z\"\n            },\n            \":fb:mercury:attachment:file-name\": {\n                __m: \"m_0_50\"\n            },\n            \":fb:mercury:attachment:external-link\": {\n                __m: \"m_0_51\"\n            },\n            \":fb:mercury:attachment:music\": {\n                __m: \"m_0_52\"\n            },\n            \":fb:mercury:attachment:file-link\": {\n                __m: \"m_0_53\"\n            },\n            \":fb:mercury:attachment:preview\": {\n                __m: \"m_0_54\"\n            },\n            \":fb:mercury:attachment:share-link\": {\n                __m: \"m_0_55\"\n            },\n            \":fb:mercury:upload-file-row\": {\n                __m: \"m_0_56\"\n            },\n            \":fb:mercury:attachment:extended-file-link\": {\n                __m: \"m_0_57\"\n            }\n        },34,],[\"MercuryDataSourceWrapper\",[\"m_0_58\",],{\n            source: {\n                __m: \"m_0_58\"\n            }\n        },37,],[\"MercuryStickersInitialData\",[],{\n            packs: [{\n                id: 126361870881943,\n                name: \"Meep\",\n                icon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/wn5XeO2Rkqj.png\",\n                selectedIcon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yN/r/sZ4spcbuYtY.png\"\n            },{\n                id: 350357561732812,\n                name: \"Pusheen\",\n                icon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/kLIslj7Vlau.png\",\n                selectedIcon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/58FtCc-hDRb.png\"\n            },{\n                id: \"emoticons\",\n                name: \"Emoticons\",\n                icon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y_/r/4Dc6kC7GMzT.png\",\n                selectedIcon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yV/r/d-mu_AVkpiU.png\"\n            },]\n        },144,],[\"ChatTabTemplates\",[\"m_0_59\",\"m_0_5a\",\"m_0_5b\",\"m_0_5c\",\"m_0_5d\",\"m_0_5e\",\"m_0_5f\",\"m_0_5g\",\"m_0_5h\",\"m_0_5i\",\"m_0_5j\",\"m_0_5k\",\"m_0_5l\",\"m_0_5m\",\"m_0_5n\",\"m_0_5o\",\"m_0_5p\",\"m_0_5q\",\"m_0_5r\",\"m_0_5s\",\"m_0_5t\",\"m_0_5u\",\"m_0_5v\",\"m_0_5w\",],{\n            \":fb:chat:conversation:message:event\": {\n                __m: \"m_0_59\"\n            },\n            \":fb:chat:conversation:message-group\": {\n                __m: \"m_0_5a\"\n            },\n            \":fb:chat:conversation:message:undertext\": {\n                __m: \"m_0_5b\"\n            },\n            \":fb:chat:tab:selector:item\": {\n                __m: \"m_0_5c\"\n            },\n            \":fb:mercury:chat:message:forward\": {\n                __m: \"m_0_5d\"\n            },\n            \":fb:chat:tab:selector\": {\n                __m: \"m_0_5e\"\n            },\n            \":fb:mercury:chat:multichat-tooltip-item\": {\n                __m: \"m_0_5f\"\n            },\n            \":fb:chat:conversation:date-break\": {\n                __m: \"m_0_5g\"\n            },\n            \":fb:mercury:call:tour\": {\n                __m: \"m_0_5h\"\n            },\n            \":fb:mercury:chat:tab-sheet:message-icon-sheet\": {\n                __m: \"m_0_5i\"\n            },\n            \":fb:mercury:chat:tab-sheet:clickable-message-icon-sheet\": {\n                __m: \"m_0_5j\"\n            },\n            \":fb:mercury:chat:tab-sheet:user-blocked\": {\n                __m: \"m_0_5k\"\n            },\n            \":fb:chat:conversation:message:subject\": {\n                __m: \"m_0_5l\"\n            },\n            \":fb:mercury:chat:tab-sheet:add-friends-empty-tab\": {\n                __m: \"m_0_5m\"\n            },\n            \":fb:mercury:chat:multichat-tab\": {\n                __m: \"m_0_5n\"\n            },\n            \":fb:mercury:chat:tab-sheet:name-conversation\": {\n                __m: \"m_0_5o\"\n            },\n            \":fb:chat:conversation:message\": {\n                __m: \"m_0_5p\"\n            },\n            \":fb:mercury:call:promo\": {\n                __m: \"m_0_5q\"\n            },\n            \":fb:mercury:chat:tab-sheet:add-friends\": {\n                __m: \"m_0_5r\"\n            },\n            \":fb:chat:conversation:message:status\": {\n                __m: \"m_0_5s\"\n            },\n            \":fb:mercury:chat:tab-sheet:message-mute-sheet\": {\n                __m: \"m_0_5t\"\n            },\n            \":fb:mercury:typing-indicator:typing\": {\n                __m: \"m_0_5u\"\n            },\n            \":fb:mercury:timestamp\": {\n                __m: \"m_0_5v\"\n            },\n            \":fb:mercury:chat:user-tab\": {\n                __m: \"m_0_5w\"\n            }\n        },15,],[\"VideoCallTemplates\",[\"m_0_5x\",],{\n            \":fb:videocall:incoming-dialog\": {\n                __m: \"m_0_5x\"\n            }\n        },74,],[\"MercuryTypeaheadTemplates\",[\"m_0_5y\",\"m_0_5z\",\"m_0_60\",\"m_0_61\",],{\n            \":fb:mercury:tokenizer\": {\n                __m: \"m_0_5y\"\n            },\n            \":fb:mercury:typeahead:header\": {\n                __m: \"m_0_5z\"\n            },\n            \":fb:mercury:typeahead\": {\n                __m: \"m_0_60\"\n            },\n            \":fb:mercury:typeahead:result\": {\n                __m: \"m_0_61\"\n            }\n        },43,],],\n        elements: [[\"m_0_4c\",\"u_0_2s\",2,],[\"m_0_4e\",\"u_0_2t\",2,],[\"m_0_4f\",\"u_0_2u\",2,],[\"m_0_4g\",\"fbDockChatBuddylistNub\",2,],[\"m_0_4l\",\"u_0_2w\",2,],[\"m_0_4m\",\"u_0_2x\",2,],[\"m_0_4k\",\"u_0_2y\",4,],[\"m_0_4o\",\"u_0_2z\",2,],[\"m_0_4s\",\"u_0_31\",2,],[\"m_0_4d\",\"u_0_32\",2,],[\"m_0_6t\",\"u_0_37\",2,\"m_0_6r\",],[\"m_0_6s\",\"u_0_38\",2,\"m_0_6r\",],[\"m_0_6w\",\"u_0_39\",2,\"m_0_6u\",],[\"m_0_6v\",\"u_0_3a\",4,\"m_0_6u\",],[\"m_0_78\",\"u_0_3e\",2,\"m_0_76\",],[\"m_0_77\",\"u_0_3f\",2,\"m_0_76\",],],\n        markup: [[\"m_0_4r\",{\n            __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_30\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_4v\",{\n            __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_4w\",{\n            __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_62\",{\n            __html: \"\\u003Cimg class=\\\"hidden_elem _1sk7 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\"\n        },2,],[\"m_0_63\",{\n            __html: \"\\u003Cdiv class=\\\"mtm pam _4_wc attachment uiBoxGray\\\"\\u003E\\u003Cspan class=\\\"uiIconText MercuryThreadlistIconError\\\" data-jsid=\\\"error\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_25310e\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_64\",{\n            __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca class=\\\"uiVideoThumb videoPreview\\\" href=\\\"#\\\" data-jsid=\\\"thumb\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" /\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_65\",{\n            __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_66\",{\n            __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Cdiv class=\\\"clearfix MercuryExternalLink\\\"\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem lfloat\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"MercuryLinkRight rfloat\\\"\\u003E\\u003Cdiv class=\\\"MercuryLinkTitle\\\"\\u003E\\u003Ca class=\\\"linkTitle\\\" target=\\\"_blank\\\" href=\\\"#\\\" data-jsid=\\\"name\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\" data-jsid=\\\"shortLink\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_67\",{\n            __html: \"\\u003Cdiv class=\\\"musicAttachment\\\"\\u003E\\u003Cdiv class=\\\"_59go _59gq\\\" data-jsid=\\\"icon_link\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_68\",{\n            __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_69\",{\n            __html: \"\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6a\",{\n            __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca data-jsid=\\\"link\\\" target=\\\"_blank\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cspan data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6b\",{\n            __html: \"\\u003Cdiv class=\\\"_2qh _2qe uploadFileRow\\\"\\u003E\\u003Cimg class=\\\"_2qf img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Clabel class=\\\"_2qg uiCloseButton uiCloseButtonSmall uiCloseButtonSmallDark\\\" for=\\\"u_0_33\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeFileUpload\\\" id=\\\"u_0_33\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_4-te\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\" data-jsid=\\\"iconText\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6c\",{\n            __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cdiv class=\\\"_59gs\\\"\\u003E\\u003Cdiv data-jsid=\\\"openLinkContainer\\\" class=\\\"_59gr hidden_elem\\\"\\u003E\\u003Ca class=\\\"_59hm\\\" href=\\\"#\\\" data-jsid=\\\"openFile\\\" role=\\\"button\\\"\\u003Eopen\\u003C/a\\u003E \\u00b7 \\u003C/div\\u003E\\u003Ca class=\\\"_59hn\\\" href=\\\"#\\\" data-jsid=\\\"downloadFile\\\" role=\\\"button\\\"\\u003Edownload\\u003C/a\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_59gp\\\" data-jsid=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6d\",{\n            __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _511o clearfix\\\"\\u003E\\u003Cdiv class=\\\"_1_vw\\\"\\u003E\\u003Cimg class=\\\"_1_vv img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"icon\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vx\\\"\\u003E\\u003Cspan class=\\\"_1_zk fsm fcg\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"mls _1_vz fss fcg\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vy\\\" data-jsid=\\\"attachment\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6e\",{\n            __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _50dw clearfix small\\\"\\u003E\\u003Cdiv class=\\\"_50ke\\\"\\u003E\\u003Cdiv class=\\\"_50x5\\\" data-jsid=\\\"profileName\\\"\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"profileLink\\\" href=\\\"#\\\" data-jsid=\\\"profileLink\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"profilePhoto\\\" src=\\\"/images/spacer.gif\\\" data-jsid=\\\"profilePhoto\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"messages\\\" data-jsid=\\\"messages\\\"\\u003E\\u003Cdiv class=\\\"metaInfoContainer fss fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"reportLinkWithDot\\\" class=\\\"hidden_elem\\\"\\u003E\\u003Ca href=\\\"#\\\" rel=\\\"dialog\\\" data-jsid=\\\"reportLink\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003EReport\\u003C/span\\u003E\\u003C/a\\u003E \\u00b7 \\u003C/span\\u003E\\u003Cspan class=\\\"timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6f\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_542e fwb fcg\\\" data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6g\",{\n            __html: \"\\u003Cli class=\\\"uiMenuItem _51ju\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_34\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeButton\\\" id=\\\"u_0_34\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_51jv\\\"\\u003E\\u003Cspan class=\\\"unreadCount\\\" data-jsid=\\\"unreadCount\\\"\\u003E\\u003C/span\\u003E\\u003Cspan data-jsid=\\\"content\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_6h\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Ca class=\\\"uiIconText _52i4\\\" href=\\\"#\\\" style=\\\"padding-left: 12px;\\\" data-jsid=\\\"forwardLink\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_8448dd\\\" style=\\\"top: 3px;\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"forwardText\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6i\",{\n            __html: \"\\u003Cdiv class=\\\"uiToggle _50-v fbNub _51jt\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"messagesIcon img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"numTabs\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_51jw\\\" data-jsid=\\\"numMessages\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout uiToggleFlyout noTitlebar\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu\\\" data-jsid=\\\"menu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Dummy\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E Dummy \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6j\",{\n            __html: \"\\u003Cdiv class=\\\"clearfix mvs\\\"\\u003E\\u003Ci class=\\\"rfloat img sp_9kaae3 sx_1dc182\\\" data-jsid=\\\"icon\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6k\",{\n            __html: \"\\u003Cdiv class=\\\"_511m mhs mbs fbChatConvItem\\\"\\u003E\\u003Cdiv class=\\\"_511n fss fwb fcg\\\" data-jsid=\\\"date\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6l\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETalk face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EOkay\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6m\",{\n            __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6n\",{\n            __html: \"\\u003Ca href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\"\n        },2,],[\"m_0_6o\",{\n            __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"_1skc img sp_4p6kmz sx_c2c2e3\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_1skd\\\"\\u003E\\u003Cspan class=\\\"fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv\\u003E\\u003Ca href=\\\"#\\\" data-jsid=\\\"actionLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6p\",{\n            __html: \"\\u003Cdiv class=\\\"fbChatMessageSubject fsm fwb\\\" data-jsid=\\\"messageSubject\\\"\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6q\",{\n            __html: \"\\u003Cdiv class=\\\"_54_v\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54_x\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003ETo:\\u003C/span\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop _54_w\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6r\",{\n            __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m-\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_35\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_37\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Edit Conversation Name\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"nameConversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EEdit Conversation Name\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Leave Conversation...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unsubscribeLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ELeave Conversation...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_35\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_36\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_36\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_38\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },4,],[\"m_0_6u\",{\n            __html: \"\\u003Cdiv class=\\\"_56jk\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _56jl\\\"\\u003E\\u003Cdiv class=\\\"uiTypeahead\\\" id=\\\"u_0_39\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput DOMControl_placeholder\\\" data-jsid=\\\"nameInput\\\" placeholder=\\\"Name this group\\\" autocomplete=\\\"off\\\" aria-autocomplete=\\\"list\\\" aria-expanded=\\\"false\\\" aria-owns=\\\"typeahead_list_u_0_39\\\" role=\\\"combobox\\\" spellcheck=\\\"false\\\" value=\\\"Name this group\\\" aria-label=\\\"Name this group\\\" id=\\\"u_0_3a\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu selected _42g-\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\"\\u003EDone\\u003C/button\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n        },4,],[\"m_0_6z\",{\n            __html: \"\\u003Cdiv class=\\\"_kso fsm\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_70\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETry talking face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EClose\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_71\",{\n            __html: \"\\u003Cdiv class=\\\"_54_-\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54__\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Clabel class=\\\"doneButton uiButton uiButtonConfirm\\\" for=\\\"u_0_3b\\\"\\u003E\\u003Cinput value=\\\"Done\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\" id=\\\"u_0_3b\\\" /\\u003E\\u003C/label\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_72\",{\n            __html: \"\\u003Cdiv class=\\\"_542q clearfix\\\"\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_73\",{\n            __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Cspan class=\\\"_1skd _1ske fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Ca class=\\\"pas\\\" data-jsid=\\\"unmuteButton\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003EUnmute\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_74\",{\n            __html: \"\\u003Cdiv class=\\\"_510u\\\"\\u003E\\u003Cdiv class=\\\"_510v\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_75\",{\n            __html: \"\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\"\n        },2,],[\"m_0_76\",{\n            __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m_\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_3c\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Start a video call\\\" class=\\\"videoicon button\\\" href=\\\"#\\\" data-jsid=\\\"videoCallLink\\\" data-gt=\\\"&#123;&quot;videochat&quot;:&quot;call_clicked_chat_tab&quot;&#125;\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" tabindex=\\\"0\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_3e\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"privacyLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Clear Window\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"clearWindowLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EClear Window\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Report as Spam or Abuse...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"reportSpamLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EReport as Spam or Abuse...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_3c\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_3d\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_3d\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_3f\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },4,],[\"m_0_79\",{\n            __html: \"\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cimg class=\\\"mrm _s0 _29h _29i _rw img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" alt=\\\"\\\" data-jsid=\\\"profilePhoto\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_29j _29k\\\"\\u003E\\u003Cdiv class=\\\"mbs fsl fwb fcb\\\" data-jsid=\\\"mainText\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"aux-message fcg\\\" data-jsid=\\\"auxMessage\\\"\\u003EVideo will start as soon as you answer.\\u003C/div\\u003E\\u003Cdiv class=\\\"mts hidden_elem fcg\\\" data-jsid=\\\"slowMessage\\\"\\u003E\\u003Cspan class=\\\"fwb fcb\\\"\\u003EHaving trouble?\\u003C/span\\u003E Your connection may be \\u003Ca href=\\\"/help/214265948627885\\\" target=\\\"_blank\\\"\\u003Etoo slow\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_7a\",{\n            __html: \"\\u003Cdiv class=\\\"clearfix uiTokenizer uiInlineTokenizer\\\"\\u003E\\u003Cdiv class=\\\"tokenarea hidden_elem\\\" data-jsid=\\\"tokenarea\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_7b\",{\n            __html: \"\\u003Cli class=\\\"_2qm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"lfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan\\u003E\\u003Cimg class=\\\"_356 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingSpinner\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Ca class=\\\"_357\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_7c\",{\n            __html: \"\\u003Cdiv class=\\\"uiTypeahead\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput\\\" data-jsid=\\\"textfield\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_7d\",{\n            __html: \"\\u003Cli class=\\\"_2qs\\\"\\u003E\\u003Cdiv class=\\\"clearfix pvs\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage mrm _3ks lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.fbexternal-a.akamaihd.net/safe_image.php?d=AQD8Nn8D0yyraIdI&amp;url=https%3A%2F%2Ffbstatic-a.akamaihd.net%2Frsrc.php%2Fv2%2Fyw%2Fr%2FdrP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_2qr\\\"\\u003E\\u003Cspan class=\\\"_2qn\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"_2qq fsm fwn fcg\\\" data-jsid=\\\"snippet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],]\n    },\n    css: [\"W3Ky6\",\"0duP3\",\"cy4a0\",],\n    bootloadable: {\n        \"legacy:control-textarea\": {\n            resources: [\"AyUu6\",\"LpC/l\",\"W3Ky6\",\"c1+nc\",]\n        },\n        VideoCallController: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"OJTM4\",\"u//Ut\",\"brbS1\",\"EzMPG\",\"gMfWI\",\"bUzfU\",\"KPLqg\",],\n            \"module\": true\n        },\n        ErrorDialog: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",],\n            \"module\": true\n        },\n        FBRTCCallController: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"brbS1\",\"u//Ut\",\"OJTM4\",\"EzMPG\",\"gMfWI\",\"a3inZ\",\"KPLqg\",\"bUzfU\",\"LTaK/\",\"21lHn\",\"+h1d2\",\"9aS3c\",\"MfG6c\",\"LsRx/\",\"3h2ll\",\"Mzbs2\",\"wGXi/\",\"d6Evh\",\"6WF8S\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        \"9aS3c\": {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/5D2UmwASouw.css\"\n        },\n        Mzbs2: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/sM5jkmon6X9.js\"\n        },\n        \"3h2ll\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/8nGweTPJCKZ.js\"\n        },\n        \"6WF8S\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ya/r/cHaSy_1vFQu.js\"\n        },\n        \"4qhP/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/tMfRnsOx-tg.js\"\n        },\n        \"LTaK/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y_/r/3Z79JZzbt1o.js\"\n        },\n        KPLqg: {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/UJCnyWz8q3r.css\"\n        },\n        \"wGXi/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ym/r/usnMgvD8abB.js\"\n        },\n        gMfWI: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yY/r/YnJRD6K1VJA.js\"\n        },\n        \"c1+nc\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y1/r/3A9a-abDc5V.js\"\n        },\n        \"LsRx/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yu/r/kS-r05X6OEA.js\"\n        },\n        a3inZ: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/9ELMM-KdnsD.js\"\n        },\n        d6Evh: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y2/r/jalUIRLBuTe.js\"\n        },\n        MfG6c: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/eKDf9pXbovQ.js\"\n        },\n        \"21lHn\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/QylH5JvJ2tZ.js\"\n        }\n    },\n    ixData: {\n        \"/images/messaging/stickers/selector/leftarrow.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/lM_ryP3lE-X.png\",\n            width: 20,\n            height: 20\n        },\n        \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n            width: 32,\n            height: 32\n        },\n        \"/images/chat/status/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1dc182\"\n        },\n        \"/images/litestand/bookmarks/sidebar/remove.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_76e896\"\n        },\n        \"/images/litestand/sidebar/blended/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6ae2b7\"\n        },\n        \"/images/litestand/sidebar/blended/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_a69036\"\n        },\n        \"/images/litestand/bookmarks/sidebar/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_f57d5d\"\n        },\n        \"/images/litestand/sidebar/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_0b17f3\"\n        },\n        \"/images/litestand/sidebar/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6b87d3\"\n        },\n        \"/images/messaging/stickers/selector/rightarrow.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yt/r/jopyzHwsKtN.png\",\n            width: 20,\n            height: 20\n        },\n        \"/images/chat/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_daa3c5\"\n        },\n        \"/images/chat/status/mobile.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6633b3\"\n        },\n        \"/images/chat/sidebar/newGroupChat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/chat/delete.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1bb86f\"\n        },\n        \"/images/messaging/stickers/selector/store.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/WG0aM70e5Iq.png\",\n            width: 20,\n            height: 20\n        }\n    },\n    js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"H+v1W\",\"LpC/l\",\"brbS1\",\"u//Ut\",\"EzMPG\",],\n    id: \"pagelet_dock\",\n    phase: 4\n});");
36369 // 1795
36370 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s69364f19bb6fa9c0f653371d16ea69f4ba8a1b6e");
36371 // 1796
36372 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        pagelet_dock: {\n            container_id: \"u_0_3g\"\n        }\n    },\n    jsmods: {\n        require: [[\"MusicButtonManager\",\"init\",[],[[\"music.song\",],],],[\"initLiveMessageReceiver\",],[\"Dock\",\"init\",[\"m_0_4c\",],[{\n            __m: \"m_0_4c\"\n        },],],[\"React\",\"constructAndRenderComponent\",[\"NotificationBeeper.react\",\"m_0_4d\",],[{\n            __m: \"NotificationBeeper.react\"\n        },{\n            unseenVsUnread: false,\n            canPause: false,\n            shouldLogImpressions: false,\n            soundPath: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/yy/r/odIeERVR1c5.mp3\",\n            soundEnabled: true,\n            tracking: \"{\\\"ref\\\":\\\"beeper\\\",\\\"jewel\\\":\\\"notifications\\\",\\\"type\\\":\\\"click2canvas\\\"}\"\n        },{\n            __m: \"m_0_4d\"\n        },],],[\"ChatApp\",\"init\",[\"m_0_4e\",\"m_0_4f\",],[{\n            __m: \"m_0_4e\"\n        },{\n            __m: \"m_0_4f\"\n        },{\n            payload_source: \"server_initial_data\"\n        },],],[\"ChatOptions\",],[\"ShortProfiles\",\"setMulti\",[],[{\n            100006118350059: {\n                id: \"100006118350059\",\n                JSBNG__name: \"Javasee Cript\",\n                firstName: \"Javasee\",\n                vanity: \"javasee.cript\",\n                thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/275646_100006118350059_324335073_q.jpg\",\n                uri: \"http://jsbngssl.www.facebook.com/javasee.cript\",\n                gender: 2,\n                type: \"user\",\n                is_friend: false,\n                social_snippets: null,\n                showVideoPromo: false,\n                searchTokens: [\"Cript\",\"Javasee\",]\n            }\n        },],],[\"m_0_4h\",],[\"m_0_4j\",],[\"Typeahead\",\"init\",[\"m_0_4k\",\"m_0_4j\",],[{\n            __m: \"m_0_4k\"\n        },{\n            __m: \"m_0_4j\"\n        },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_4j\",\"m_0_4m\",],[{\n            __m: \"m_0_4j\"\n        },{\n            __m: \"m_0_4m\"\n        },],],[\"m_0_4p\",],[\"m_0_4q\",],[\"Layer\",\"init\",[\"m_0_4q\",\"m_0_4r\",],[{\n            __m: \"m_0_4q\"\n        },{\n            __m: \"m_0_4r\"\n        },],],[\"m_0_4i\",],[\"m_0_6x\",],[\"Typeahead\",\"init\",[\"m_0_6v\",\"m_0_6x\",],[{\n            __m: \"m_0_6v\"\n        },{\n            __m: \"m_0_6x\"\n        },[],null,],],],\n        instances: [[\"m_0_4h\",[\"BuddyListNub\",\"m_0_4g\",\"m_0_4i\",\"m_0_4j\",],[{\n            __m: \"m_0_4g\"\n        },{\n            __m: \"m_0_4i\"\n        },{\n            __m: \"m_0_4j\"\n        },],1,],[\"m_0_4j\",[\"Typeahead\",\"m_0_4n\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_4k\",\"ChatTypeaheadCore\",\"m_0_4l\",],[{\n            __m: \"m_0_4n\"\n        },{\n            node_id: \"u_0_2v\",\n            node: null,\n            ctor: {\n                __m: \"ChatTypeaheadView\"\n            },\n            options: {\n                autoSelect: true,\n                renderer: {\n                    __m: \"ChatTypeaheadRenderer\"\n                },\n                causalElement: {\n                    __m: \"m_0_4k\"\n                },\n                minWidth: 0,\n                alignment: \"left\",\n                showBadges: 1\n            }\n        },{\n            ctor: {\n                __m: \"ChatTypeaheadCore\"\n            },\n            options: {\n                keepFocused: false,\n                resetOnSelect: true,\n                setValueOnSelect: false\n            }\n        },{\n            __m: \"m_0_4l\"\n        },],7,],[\"m_0_4p\",[\"ChatSidebarDropdown\",\"m_0_4o\",],[{\n            __m: \"m_0_4o\"\n        },null,],1,],[\"m_0_4q\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n            buildWrapper: false,\n            causalElement: null,\n            addedBehaviors: [{\n                __m: \"AccessibleLayer\"\n            },]\n        },],5,],[\"m_0_4i\",[\"ChatOrderedList\",\"m_0_4s\",\"m_0_4t\",\"m_0_4u\",\"m_0_4q\",],[false,{\n            __m: \"m_0_4s\"\n        },{\n            __m: \"m_0_4t\"\n        },{\n            __m: \"m_0_4u\"\n        },{\n            __m: \"m_0_4q\"\n        },null,],3,],[\"m_0_4n\",[\"ChatTypeaheadDataSource\",],[{\n            alwaysPrefixMatch: true,\n            showOfflineUsers: true\n        },],2,],[\"m_0_4t\",[\"XHPTemplate\",\"m_0_4v\",],[{\n            __m: \"m_0_4v\"\n        },],2,],[\"m_0_4u\",[\"XHPTemplate\",\"m_0_4w\",],[{\n            __m: \"m_0_4w\"\n        },],2,],[\"m_0_4x\",[\"XHPTemplate\",\"m_0_62\",],[{\n            __m: \"m_0_62\"\n        },],2,],[\"m_0_4y\",[\"XHPTemplate\",\"m_0_63\",],[{\n            __m: \"m_0_63\"\n        },],2,],[\"m_0_4z\",[\"XHPTemplate\",\"m_0_64\",],[{\n            __m: \"m_0_64\"\n        },],2,],[\"m_0_50\",[\"XHPTemplate\",\"m_0_65\",],[{\n            __m: \"m_0_65\"\n        },],2,],[\"m_0_51\",[\"XHPTemplate\",\"m_0_66\",],[{\n            __m: \"m_0_66\"\n        },],2,],[\"m_0_52\",[\"XHPTemplate\",\"m_0_67\",],[{\n            __m: \"m_0_67\"\n        },],2,],[\"m_0_53\",[\"XHPTemplate\",\"m_0_68\",],[{\n            __m: \"m_0_68\"\n        },],2,],[\"m_0_54\",[\"XHPTemplate\",\"m_0_69\",],[{\n            __m: \"m_0_69\"\n        },],2,],[\"m_0_55\",[\"XHPTemplate\",\"m_0_6a\",],[{\n            __m: \"m_0_6a\"\n        },],2,],[\"m_0_56\",[\"XHPTemplate\",\"m_0_6b\",],[{\n            __m: \"m_0_6b\"\n        },],2,],[\"m_0_57\",[\"XHPTemplate\",\"m_0_6c\",],[{\n            __m: \"m_0_6c\"\n        },],2,],[\"m_0_58\",[\"DataSource\",],[{\n            maxResults: 5,\n            queryData: [],\n            bootstrapData: {\n                viewer: 100006118350059,\n                token: \"1372173655-7\",\n                filter: [\"user\",],\n                options: [\"friends_only\",]\n            },\n            bootstrapEndpoint: \"/ajax/typeahead/first_degree.php\"\n        },],2,],[\"m_0_59\",[\"XHPTemplate\",\"m_0_6d\",],[{\n            __m: \"m_0_6d\"\n        },],2,],[\"m_0_5a\",[\"XHPTemplate\",\"m_0_6e\",],[{\n            __m: \"m_0_6e\"\n        },],2,],[\"m_0_5b\",[\"XHPTemplate\",\"m_0_6f\",],[{\n            __m: \"m_0_6f\"\n        },],2,],[\"m_0_5c\",[\"XHPTemplate\",\"m_0_6g\",],[{\n            __m: \"m_0_6g\"\n        },],2,],[\"m_0_5d\",[\"XHPTemplate\",\"m_0_6h\",],[{\n            __m: \"m_0_6h\"\n        },],2,],[\"m_0_5e\",[\"XHPTemplate\",\"m_0_6i\",],[{\n            __m: \"m_0_6i\"\n        },],2,],[\"m_0_5f\",[\"XHPTemplate\",\"m_0_6j\",],[{\n            __m: \"m_0_6j\"\n        },],2,],[\"m_0_5g\",[\"XHPTemplate\",\"m_0_6k\",],[{\n            __m: \"m_0_6k\"\n        },],2,],[\"m_0_5h\",[\"XHPTemplate\",\"m_0_6l\",],[{\n            __m: \"m_0_6l\"\n        },],2,],[\"m_0_5i\",[\"XHPTemplate\",\"m_0_6m\",],[{\n            __m: \"m_0_6m\"\n        },],2,],[\"m_0_5j\",[\"XHPTemplate\",\"m_0_6n\",],[{\n            __m: \"m_0_6n\"\n        },],2,],[\"m_0_5k\",[\"XHPTemplate\",\"m_0_6o\",],[{\n            __m: \"m_0_6o\"\n        },],2,],[\"m_0_5l\",[\"XHPTemplate\",\"m_0_6p\",],[{\n            __m: \"m_0_6p\"\n        },],2,],[\"m_0_5m\",[\"XHPTemplate\",\"m_0_6q\",],[{\n            __m: \"m_0_6q\"\n        },],2,],[\"m_0_5n\",[\"XHPTemplate\",\"m_0_6r\",],[{\n            __m: \"m_0_6r\"\n        },],2,],[\"m_0_6x\",[\"Typeahead\",\"m_0_6y\",\"ContextualTypeaheadView\",\"m_0_6v\",\"TypeaheadCore\",\"m_0_6w\",],[{\n            __m: \"m_0_6y\"\n        },{\n            node_id: \"\",\n            node: null,\n            ctor: {\n                __m: \"ContextualTypeaheadView\"\n            },\n            options: {\n                causalElement: {\n                    __m: \"m_0_6v\"\n                },\n                minWidth: 0,\n                alignment: \"left\",\n                showBadges: 1\n            }\n        },{\n            ctor: {\n                __m: \"TypeaheadCore\"\n            },\n            options: []\n        },{\n            __m: \"m_0_6w\"\n        },],3,],[\"m_0_5o\",[\"XHPTemplate\",\"m_0_6u\",],[{\n            __m: \"m_0_6u\"\n        },],2,],[\"m_0_5p\",[\"XHPTemplate\",\"m_0_6z\",],[{\n            __m: \"m_0_6z\"\n        },],2,],[\"m_0_5q\",[\"XHPTemplate\",\"m_0_70\",],[{\n            __m: \"m_0_70\"\n        },],2,],[\"m_0_5r\",[\"XHPTemplate\",\"m_0_71\",],[{\n            __m: \"m_0_71\"\n        },],2,],[\"m_0_5s\",[\"XHPTemplate\",\"m_0_72\",],[{\n            __m: \"m_0_72\"\n        },],2,],[\"m_0_5t\",[\"XHPTemplate\",\"m_0_73\",],[{\n            __m: \"m_0_73\"\n        },],2,],[\"m_0_5u\",[\"XHPTemplate\",\"m_0_74\",],[{\n            __m: \"m_0_74\"\n        },],2,],[\"m_0_5v\",[\"XHPTemplate\",\"m_0_75\",],[{\n            __m: \"m_0_75\"\n        },],2,],[\"m_0_5w\",[\"XHPTemplate\",\"m_0_76\",],[{\n            __m: \"m_0_76\"\n        },],2,],[\"m_0_5x\",[\"XHPTemplate\",\"m_0_79\",],[{\n            __m: \"m_0_79\"\n        },],2,],[\"m_0_5y\",[\"XHPTemplate\",\"m_0_7a\",],[{\n            __m: \"m_0_7a\"\n        },],2,],[\"m_0_5z\",[\"XHPTemplate\",\"m_0_7b\",],[{\n            __m: \"m_0_7b\"\n        },],2,],[\"m_0_60\",[\"XHPTemplate\",\"m_0_7c\",],[{\n            __m: \"m_0_7c\"\n        },],2,],[\"m_0_61\",[\"XHPTemplate\",\"m_0_7d\",],[{\n            __m: \"m_0_7d\"\n        },],2,],[\"m_0_6y\",[\"DataSource\",],[[],],2,],],\n        define: [[\"LinkshimHandlerConfig\",[],{\n            supports_meta_referrer: true,\n            render_verification_rate: 1000\n        },27,],[\"MercurySheetTemplates\",[\"m_0_4x\",],{\n            \":fb:mercury:tab-sheet:loading\": {\n                __m: \"m_0_4x\"\n            }\n        },40,],[\"MercuryAttachmentTemplates\",[\"m_0_4y\",\"m_0_4z\",\"m_0_50\",\"m_0_51\",\"m_0_52\",\"m_0_53\",\"m_0_54\",\"m_0_55\",\"m_0_56\",\"m_0_57\",],{\n            \":fb:mercury:attachment:error\": {\n                __m: \"m_0_4y\"\n            },\n            \":fb:mercury:attachment:video-thumb\": {\n                __m: \"m_0_4z\"\n            },\n            \":fb:mercury:attachment:file-name\": {\n                __m: \"m_0_50\"\n            },\n            \":fb:mercury:attachment:external-link\": {\n                __m: \"m_0_51\"\n            },\n            \":fb:mercury:attachment:music\": {\n                __m: \"m_0_52\"\n            },\n            \":fb:mercury:attachment:file-link\": {\n                __m: \"m_0_53\"\n            },\n            \":fb:mercury:attachment:preview\": {\n                __m: \"m_0_54\"\n            },\n            \":fb:mercury:attachment:share-link\": {\n                __m: \"m_0_55\"\n            },\n            \":fb:mercury:upload-file-row\": {\n                __m: \"m_0_56\"\n            },\n            \":fb:mercury:attachment:extended-file-link\": {\n                __m: \"m_0_57\"\n            }\n        },34,],[\"MercuryDataSourceWrapper\",[\"m_0_58\",],{\n            source: {\n                __m: \"m_0_58\"\n            }\n        },37,],[\"MercuryStickersInitialData\",[],{\n            packs: [{\n                id: 126361870881943,\n                JSBNG__name: \"Meep\",\n                icon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/wn5XeO2Rkqj.png\",\n                selectedIcon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yN/r/sZ4spcbuYtY.png\"\n            },{\n                id: 350357561732812,\n                JSBNG__name: \"Pusheen\",\n                icon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yy/r/kLIslj7Vlau.png\",\n                selectedIcon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/58FtCc-hDRb.png\"\n            },{\n                id: \"emoticons\",\n                JSBNG__name: \"Emoticons\",\n                icon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y_/r/4Dc6kC7GMzT.png\",\n                selectedIcon: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yV/r/d-mu_AVkpiU.png\"\n            },]\n        },144,],[\"ChatTabTemplates\",[\"m_0_59\",\"m_0_5a\",\"m_0_5b\",\"m_0_5c\",\"m_0_5d\",\"m_0_5e\",\"m_0_5f\",\"m_0_5g\",\"m_0_5h\",\"m_0_5i\",\"m_0_5j\",\"m_0_5k\",\"m_0_5l\",\"m_0_5m\",\"m_0_5n\",\"m_0_5o\",\"m_0_5p\",\"m_0_5q\",\"m_0_5r\",\"m_0_5s\",\"m_0_5t\",\"m_0_5u\",\"m_0_5v\",\"m_0_5w\",],{\n            \":fb:chat:conversation:message:event\": {\n                __m: \"m_0_59\"\n            },\n            \":fb:chat:conversation:message-group\": {\n                __m: \"m_0_5a\"\n            },\n            \":fb:chat:conversation:message:undertext\": {\n                __m: \"m_0_5b\"\n            },\n            \":fb:chat:tab:selector:item\": {\n                __m: \"m_0_5c\"\n            },\n            \":fb:mercury:chat:message:forward\": {\n                __m: \"m_0_5d\"\n            },\n            \":fb:chat:tab:selector\": {\n                __m: \"m_0_5e\"\n            },\n            \":fb:mercury:chat:multichat-tooltip-item\": {\n                __m: \"m_0_5f\"\n            },\n            \":fb:chat:conversation:date-break\": {\n                __m: \"m_0_5g\"\n            },\n            \":fb:mercury:call:tour\": {\n                __m: \"m_0_5h\"\n            },\n            \":fb:mercury:chat:tab-sheet:message-icon-sheet\": {\n                __m: \"m_0_5i\"\n            },\n            \":fb:mercury:chat:tab-sheet:clickable-message-icon-sheet\": {\n                __m: \"m_0_5j\"\n            },\n            \":fb:mercury:chat:tab-sheet:user-blocked\": {\n                __m: \"m_0_5k\"\n            },\n            \":fb:chat:conversation:message:subject\": {\n                __m: \"m_0_5l\"\n            },\n            \":fb:mercury:chat:tab-sheet:add-friends-empty-tab\": {\n                __m: \"m_0_5m\"\n            },\n            \":fb:mercury:chat:multichat-tab\": {\n                __m: \"m_0_5n\"\n            },\n            \":fb:mercury:chat:tab-sheet:name-conversation\": {\n                __m: \"m_0_5o\"\n            },\n            \":fb:chat:conversation:message\": {\n                __m: \"m_0_5p\"\n            },\n            \":fb:mercury:call:promo\": {\n                __m: \"m_0_5q\"\n            },\n            \":fb:mercury:chat:tab-sheet:add-friends\": {\n                __m: \"m_0_5r\"\n            },\n            \":fb:chat:conversation:message:status\": {\n                __m: \"m_0_5s\"\n            },\n            \":fb:mercury:chat:tab-sheet:message-mute-sheet\": {\n                __m: \"m_0_5t\"\n            },\n            \":fb:mercury:typing-indicator:typing\": {\n                __m: \"m_0_5u\"\n            },\n            \":fb:mercury:timestamp\": {\n                __m: \"m_0_5v\"\n            },\n            \":fb:mercury:chat:user-tab\": {\n                __m: \"m_0_5w\"\n            }\n        },15,],[\"VideoCallTemplates\",[\"m_0_5x\",],{\n            \":fb:videocall:incoming-dialog\": {\n                __m: \"m_0_5x\"\n            }\n        },74,],[\"MercuryTypeaheadTemplates\",[\"m_0_5y\",\"m_0_5z\",\"m_0_60\",\"m_0_61\",],{\n            \":fb:mercury:tokenizer\": {\n                __m: \"m_0_5y\"\n            },\n            \":fb:mercury:typeahead:header\": {\n                __m: \"m_0_5z\"\n            },\n            \":fb:mercury:typeahead\": {\n                __m: \"m_0_60\"\n            },\n            \":fb:mercury:typeahead:result\": {\n                __m: \"m_0_61\"\n            }\n        },43,],],\n        elements: [[\"m_0_4c\",\"u_0_2s\",2,],[\"m_0_4e\",\"u_0_2t\",2,],[\"m_0_4f\",\"u_0_2u\",2,],[\"m_0_4g\",\"fbDockChatBuddylistNub\",2,],[\"m_0_4l\",\"u_0_2w\",2,],[\"m_0_4m\",\"u_0_2x\",2,],[\"m_0_4k\",\"u_0_2y\",4,],[\"m_0_4o\",\"u_0_2z\",2,],[\"m_0_4s\",\"u_0_31\",2,],[\"m_0_4d\",\"u_0_32\",2,],[\"m_0_6t\",\"u_0_37\",2,\"m_0_6r\",],[\"m_0_6s\",\"u_0_38\",2,\"m_0_6r\",],[\"m_0_6w\",\"u_0_39\",2,\"m_0_6u\",],[\"m_0_6v\",\"u_0_3a\",4,\"m_0_6u\",],[\"m_0_78\",\"u_0_3e\",2,\"m_0_76\",],[\"m_0_77\",\"u_0_3f\",2,\"m_0_76\",],],\n        markup: [[\"m_0_4r\",{\n            __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_30\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_4v\",{\n            __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_4w\",{\n            __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_62\",{\n            __html: \"\\u003Cimg class=\\\"hidden_elem _1sk7 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\"\n        },2,],[\"m_0_63\",{\n            __html: \"\\u003Cdiv class=\\\"mtm pam _4_wc attachment uiBoxGray\\\"\\u003E\\u003Cspan class=\\\"uiIconText MercuryThreadlistIconError\\\" data-jsid=\\\"error\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_25310e\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_64\",{\n            __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca class=\\\"uiVideoThumb videoPreview\\\" href=\\\"#\\\" data-jsid=\\\"thumb\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" /\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_65\",{\n            __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_66\",{\n            __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Cdiv class=\\\"clearfix MercuryExternalLink\\\"\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem lfloat\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"MercuryLinkRight rfloat\\\"\\u003E\\u003Cdiv class=\\\"MercuryLinkTitle\\\"\\u003E\\u003Ca class=\\\"linkTitle\\\" target=\\\"_blank\\\" href=\\\"#\\\" data-jsid=\\\"name\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\" data-jsid=\\\"shortLink\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_67\",{\n            __html: \"\\u003Cdiv class=\\\"musicAttachment\\\"\\u003E\\u003Cdiv class=\\\"_59go _59gq\\\" data-jsid=\\\"icon_link\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_68\",{\n            __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_69\",{\n            __html: \"\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6a\",{\n            __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca data-jsid=\\\"link\\\" target=\\\"_blank\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cspan data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6b\",{\n            __html: \"\\u003Cdiv class=\\\"_2qh _2qe uploadFileRow\\\"\\u003E\\u003Cimg class=\\\"_2qf img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Clabel class=\\\"_2qg uiCloseButton uiCloseButtonSmall uiCloseButtonSmallDark\\\" for=\\\"u_0_33\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeFileUpload\\\" id=\\\"u_0_33\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_4-te\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\" data-jsid=\\\"iconText\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6c\",{\n            __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cdiv class=\\\"_59gs\\\"\\u003E\\u003Cdiv data-jsid=\\\"openLinkContainer\\\" class=\\\"_59gr hidden_elem\\\"\\u003E\\u003Ca class=\\\"_59hm\\\" href=\\\"#\\\" data-jsid=\\\"openFile\\\" role=\\\"button\\\"\\u003Eopen\\u003C/a\\u003E \\u00b7 \\u003C/div\\u003E\\u003Ca class=\\\"_59hn\\\" href=\\\"#\\\" data-jsid=\\\"downloadFile\\\" role=\\\"button\\\"\\u003Edownload\\u003C/a\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_59gp\\\" data-jsid=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6d\",{\n            __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _511o clearfix\\\"\\u003E\\u003Cdiv class=\\\"_1_vw\\\"\\u003E\\u003Cimg class=\\\"_1_vv img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"icon\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vx\\\"\\u003E\\u003Cspan class=\\\"_1_zk fsm fcg\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"mls _1_vz fss fcg\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vy\\\" data-jsid=\\\"attachment\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6e\",{\n            __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _50dw clearfix small\\\"\\u003E\\u003Cdiv class=\\\"_50ke\\\"\\u003E\\u003Cdiv class=\\\"_50x5\\\" data-jsid=\\\"profileName\\\"\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"profileLink\\\" href=\\\"#\\\" data-jsid=\\\"profileLink\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"profilePhoto\\\" src=\\\"/images/spacer.gif\\\" data-jsid=\\\"profilePhoto\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"messages\\\" data-jsid=\\\"messages\\\"\\u003E\\u003Cdiv class=\\\"metaInfoContainer fss fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"reportLinkWithDot\\\" class=\\\"hidden_elem\\\"\\u003E\\u003Ca href=\\\"#\\\" rel=\\\"dialog\\\" data-jsid=\\\"reportLink\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003EReport\\u003C/span\\u003E\\u003C/a\\u003E \\u00b7 \\u003C/span\\u003E\\u003Cspan class=\\\"timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6f\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_542e fwb fcg\\\" data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6g\",{\n            __html: \"\\u003Cli class=\\\"uiMenuItem _51ju\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_34\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeButton\\\" id=\\\"u_0_34\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_51jv\\\"\\u003E\\u003Cspan class=\\\"unreadCount\\\" data-jsid=\\\"unreadCount\\\"\\u003E\\u003C/span\\u003E\\u003Cspan data-jsid=\\\"content\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_6h\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Ca class=\\\"uiIconText _52i4\\\" href=\\\"#\\\" style=\\\"padding-left: 12px;\\\" data-jsid=\\\"forwardLink\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_8448dd\\\" style=\\\"top: 3px;\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"forwardText\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6i\",{\n            __html: \"\\u003Cdiv class=\\\"uiToggle _50-v fbNub _51jt\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"messagesIcon img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"numTabs\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_51jw\\\" data-jsid=\\\"numMessages\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout uiToggleFlyout noTitlebar\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu\\\" data-jsid=\\\"menu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Dummy\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E Dummy \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6j\",{\n            __html: \"\\u003Cdiv class=\\\"clearfix mvs\\\"\\u003E\\u003Ci class=\\\"rfloat img sp_9kaae3 sx_1dc182\\\" data-jsid=\\\"icon\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6k\",{\n            __html: \"\\u003Cdiv class=\\\"_511m mhs mbs fbChatConvItem\\\"\\u003E\\u003Cdiv class=\\\"_511n fss fwb fcg\\\" data-jsid=\\\"date\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6l\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETalk face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EOkay\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6m\",{\n            __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6n\",{\n            __html: \"\\u003Ca href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\"\n        },2,],[\"m_0_6o\",{\n            __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"_1skc img sp_4p6kmz sx_c2c2e3\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_1skd\\\"\\u003E\\u003Cspan class=\\\"fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv\\u003E\\u003Ca href=\\\"#\\\" data-jsid=\\\"actionLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6p\",{\n            __html: \"\\u003Cdiv class=\\\"fbChatMessageSubject fsm fwb\\\" data-jsid=\\\"messageSubject\\\"\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6q\",{\n            __html: \"\\u003Cdiv class=\\\"_54_v\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54_x\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003ETo:\\u003C/span\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop _54_w\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_6r\",{\n            __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m-\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_35\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_37\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Edit Conversation Name\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"nameConversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EEdit Conversation Name\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Leave Conversation...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unsubscribeLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ELeave Conversation...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_35\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_36\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_36\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_38\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },4,],[\"m_0_6u\",{\n            __html: \"\\u003Cdiv class=\\\"_56jk\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _56jl\\\"\\u003E\\u003Cdiv class=\\\"uiTypeahead\\\" id=\\\"u_0_39\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput DOMControl_placeholder\\\" data-jsid=\\\"nameInput\\\" placeholder=\\\"Name this group\\\" autocomplete=\\\"off\\\" aria-autocomplete=\\\"list\\\" aria-expanded=\\\"false\\\" aria-owns=\\\"typeahead_list_u_0_39\\\" role=\\\"combobox\\\" spellcheck=\\\"false\\\" value=\\\"Name this group\\\" aria-label=\\\"Name this group\\\" id=\\\"u_0_3a\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu selected _42g-\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\"\\u003EDone\\u003C/button\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n        },4,],[\"m_0_6z\",{\n            __html: \"\\u003Cdiv class=\\\"_kso fsm\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_70\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETry talking face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EClose\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_71\",{\n            __html: \"\\u003Cdiv class=\\\"_54_-\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54__\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Clabel class=\\\"doneButton uiButton uiButtonConfirm\\\" for=\\\"u_0_3b\\\"\\u003E\\u003Cinput value=\\\"Done\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\" id=\\\"u_0_3b\\\" /\\u003E\\u003C/label\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_72\",{\n            __html: \"\\u003Cdiv class=\\\"_542q clearfix\\\"\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_73\",{\n            __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Cspan class=\\\"_1skd _1ske fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Ca class=\\\"pas\\\" data-jsid=\\\"unmuteButton\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003EUnmute\\u003C/a\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_74\",{\n            __html: \"\\u003Cdiv class=\\\"_510u\\\"\\u003E\\u003Cdiv class=\\\"_510v\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_75\",{\n            __html: \"\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\"\n        },2,],[\"m_0_76\",{\n            __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m_\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_3c\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Start a video call\\\" class=\\\"videoicon button\\\" href=\\\"#\\\" data-jsid=\\\"videoCallLink\\\" data-gt=\\\"&#123;&quot;videochat&quot;:&quot;call_clicked_chat_tab&quot;&#125;\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" tabindex=\\\"0\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_3e\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"privacyLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Clear Window\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"clearWindowLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EClear Window\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Report as Spam or Abuse...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"reportSpamLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EReport as Spam or Abuse...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_3c\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_3d\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_3d\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_3f\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },4,],[\"m_0_79\",{\n            __html: \"\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cimg class=\\\"mrm _s0 _29h _29i _rw img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" alt=\\\"\\\" data-jsid=\\\"profilePhoto\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_29j _29k\\\"\\u003E\\u003Cdiv class=\\\"mbs fsl fwb fcb\\\" data-jsid=\\\"mainText\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"aux-message fcg\\\" data-jsid=\\\"auxMessage\\\"\\u003EVideo will start as soon as you answer.\\u003C/div\\u003E\\u003Cdiv class=\\\"mts hidden_elem fcg\\\" data-jsid=\\\"slowMessage\\\"\\u003E\\u003Cspan class=\\\"fwb fcb\\\"\\u003EHaving trouble?\\u003C/span\\u003E Your connection may be \\u003Ca href=\\\"/help/214265948627885\\\" target=\\\"_blank\\\"\\u003Etoo slow\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_7a\",{\n            __html: \"\\u003Cdiv class=\\\"clearfix uiTokenizer uiInlineTokenizer\\\"\\u003E\\u003Cdiv class=\\\"tokenarea hidden_elem\\\" data-jsid=\\\"tokenarea\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_7b\",{\n            __html: \"\\u003Cli class=\\\"_2qm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"lfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan\\u003E\\u003Cimg class=\\\"_356 img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingSpinner\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Ca class=\\\"_357\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],[\"m_0_7c\",{\n            __html: \"\\u003Cdiv class=\\\"uiTypeahead\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput\\\" data-jsid=\\\"textfield\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },2,],[\"m_0_7d\",{\n            __html: \"\\u003Cli class=\\\"_2qs\\\"\\u003E\\u003Cdiv class=\\\"clearfix pvs\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage mrm _3ks lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.fbexternal-a.akamaihd.net/safe_image.php?d=AQD8Nn8D0yyraIdI&amp;url=https%3A%2F%2Ffbstatic-a.akamaihd.net%2Frsrc.php%2Fv2%2Fyw%2Fr%2FdrP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_2qr\\\"\\u003E\\u003Cspan class=\\\"_2qn\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"_2qq fsm fwn fcg\\\" data-jsid=\\\"snippet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n        },2,],]\n    },\n    css: [\"W3Ky6\",\"0duP3\",\"cy4a0\",],\n    bootloadable: {\n        \"legacy:control-textarea\": {\n            resources: [\"AyUu6\",\"LpC/l\",\"W3Ky6\",\"c1+nc\",]\n        },\n        VideoCallController: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"OJTM4\",\"u//Ut\",\"brbS1\",\"EzMPG\",\"gMfWI\",\"bUzfU\",\"KPLqg\",],\n            \"module\": true\n        },\n        ErrorDialog: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",],\n            \"module\": true\n        },\n        FBRTCCallController: {\n            resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"brbS1\",\"u//Ut\",\"OJTM4\",\"EzMPG\",\"gMfWI\",\"a3inZ\",\"KPLqg\",\"bUzfU\",\"LTaK/\",\"21lHn\",\"+h1d2\",\"9aS3c\",\"MfG6c\",\"LsRx/\",\"3h2ll\",\"Mzbs2\",\"wGXi/\",\"d6Evh\",\"6WF8S\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n        \"9aS3c\": {\n            type: \"css\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/5D2UmwASouw.css\"\n        },\n        Mzbs2: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/sM5jkmon6X9.js\"\n        },\n        \"3h2ll\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/8nGweTPJCKZ.js\"\n        },\n        \"6WF8S\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ya/r/cHaSy_1vFQu.js\"\n        },\n        \"4qhP/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yv/r/tMfRnsOx-tg.js\"\n        },\n        \"LTaK/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y_/r/3Z79JZzbt1o.js\"\n        },\n        KPLqg: {\n            type: \"css\",\n            permanent: 1,\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/UJCnyWz8q3r.css\"\n        },\n        \"wGXi/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ym/r/usnMgvD8abB.js\"\n        },\n        gMfWI: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yY/r/YnJRD6K1VJA.js\"\n        },\n        \"c1+nc\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y1/r/3A9a-abDc5V.js\"\n        },\n        \"LsRx/\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yu/r/kS-r05X6OEA.js\"\n        },\n        a3inZ: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yO/r/9ELMM-KdnsD.js\"\n        },\n        d6Evh: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y2/r/jalUIRLBuTe.js\"\n        },\n        MfG6c: {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/eKDf9pXbovQ.js\"\n        },\n        \"21lHn\": {\n            type: \"js\",\n            crossOrigin: 1,\n            src: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yP/r/QylH5JvJ2tZ.js\"\n        }\n    },\n    ixData: {\n        \"/images/messaging/stickers/selector/leftarrow.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yS/r/lM_ryP3lE-X.png\",\n            width: 20,\n            height: 20\n        },\n        \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n            width: 32,\n            height: 32\n        },\n        \"/images/chat/status/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1dc182\"\n        },\n        \"/images/litestand/bookmarks/sidebar/remove.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_76e896\"\n        },\n        \"/images/litestand/sidebar/blended/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6ae2b7\"\n        },\n        \"/images/litestand/sidebar/blended/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_a69036\"\n        },\n        \"/images/litestand/bookmarks/sidebar/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_f57d5d\"\n        },\n        \"/images/litestand/sidebar/pushable.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_0b17f3\"\n        },\n        \"/images/litestand/sidebar/online.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6b87d3\"\n        },\n        \"/images/messaging/stickers/selector/rightarrow.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yt/r/jopyzHwsKtN.png\",\n            width: 20,\n            height: 20\n        },\n        \"/images/chat/add.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_daa3c5\"\n        },\n        \"/images/chat/status/mobile.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_6633b3\"\n        },\n        \"/images/chat/sidebar/newGroupChat.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n            width: 28,\n            height: 28\n        },\n        \"/images/chat/delete.png\": {\n            sprited: true,\n            spriteMapCssClass: \"sp_9kaae3\",\n            spriteCssClass: \"sx_1bb86f\"\n        },\n        \"/images/messaging/stickers/selector/store.png\": {\n            sprited: false,\n            uri: \"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/WG0aM70e5Iq.png\",\n            width: 20,\n            height: 20\n        }\n    },\n    js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"H+v1W\",\"LpC/l\",\"brbS1\",\"u//Ut\",\"EzMPG\",],\n    id: \"pagelet_dock\",\n    phase: 4\n});");
36373 // 1803
36374 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        fbRequestsList: {\n            container_id: \"u_0_3h\"\n        }\n    },\n    css: [\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    id: \"fbRequestsList\",\n    phase: 4\n});");
36375 // 1804
36376 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s86b45e82f6e166651b2fac8cb86b6e027787add5");
36377 // 1805
36378 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        fbRequestsList: {\n            container_id: \"u_0_3h\"\n        }\n    },\n    css: [\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    id: \"fbRequestsList\",\n    phase: 4\n});");
36379 // 1812
36380 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        timeline_sticky_header: {\n            container_id: \"u_0_3r\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineStickyHeader\",\"init\",[\"m_0_7e\",],[{\n            __m: \"m_0_7e\"\n        },],],[\"SubscribeButton\",\"init\",[\"m_0_7h\",\"m_0_7g\",\"m_0_7i\",],[{\n            __m: \"m_0_7h\"\n        },{\n            __m: \"m_0_7g\"\n        },{\n            __m: \"m_0_7i\"\n        },\"1055580469\",0,false,],],[\"m_0_7h\",],[\"m_0_7i\",],[\"m_0_7n\",],[\"m_0_7m\",],[\"AddFriendButton\",\"init\",[\"m_0_7q\",],[{\n            __m: \"m_0_7q\"\n        },1055580469,null,\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",\"\",true,null,false,null,0,],],[\"FriendStatus\",\"setSpecialLists\",[],[{\n            close: 1374283956118870,\n            acq: \"100006118350059_124542800973931\"\n        },],],[\"TimelineStickyHeaderNav\",\"init\",[\"m_0_7r\",],[{\n            __m: \"m_0_7r\"\n        },{\n            custom_subsection_menu: false\n        },],],],\n        instances: [[\"m_0_7h\",[\"SwapButtonDEPRECATED\",\"m_0_7g\",\"m_0_7j\",],[{\n            __m: \"m_0_7g\"\n        },{\n            __m: \"m_0_7j\"\n        },false,],3,],[\"m_0_7i\",[\"HoverButton\",\"m_0_7k\",\"m_0_7m\",\"m_0_7l\",],[{\n            __m: \"m_0_7k\"\n        },{\n            __m: \"m_0_7m\"\n        },{\n            __m: \"m_0_7l\"\n        },\"/ajax/lists/interests_menu.php?profile_id=1055580469&list_location=follow_1&follow_location=1\",],3,],[\"m_0_7n\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"LayerHideOnEscape\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_7o\",],[{\n            width: null,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"below\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"LayerHideOnEscape\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_7o\"\n        },],3,],[\"m_0_7m\",[\"HoverFlyout\",\"m_0_7n\",\"m_0_7p\",],[{\n            __m: \"m_0_7n\"\n        },{\n            __m: \"m_0_7p\"\n        },150,150,],3,],],\n        elements: [[\"m_0_7f\",\"u_0_3i\",2,],[\"m_0_7g\",\"u_0_3j\",4,],[\"m_0_7j\",\"u_0_3k\",2,],[\"m_0_7l\",\"u_0_3l\",2,\"m_0_7o\",],[\"m_0_7k\",\"u_0_3k\",2,],[\"m_0_7p\",\"u_0_3k\",2,],[\"m_0_7q\",\"u_0_3n\",2,],[\"m_0_7r\",\"u_0_3p\",4,],[\"m_0_7e\",\"u_0_3q\",2,],],\n        markup: [[\"m_0_7o\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv id=\\\"u_0_3l\\\"\\u003E\\u003Cimg class=\\\"mal pal _52ng center img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },3,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",\"0duP3\",],\n    bootloadable: {\n        StickyController: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"jsIYP\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"bUzfU\",\"3SGVa\",],\n    id: \"timeline_sticky_header\",\n    phase: 4\n});");
36381 // 1813
36382 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s52651095b57e04ea43897033158020b58b7dde09");
36383 // 1814
36384 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        timeline_sticky_header: {\n            container_id: \"u_0_3r\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineStickyHeader\",\"init\",[\"m_0_7e\",],[{\n            __m: \"m_0_7e\"\n        },],],[\"SubscribeButton\",\"init\",[\"m_0_7h\",\"m_0_7g\",\"m_0_7i\",],[{\n            __m: \"m_0_7h\"\n        },{\n            __m: \"m_0_7g\"\n        },{\n            __m: \"m_0_7i\"\n        },\"1055580469\",0,false,],],[\"m_0_7h\",],[\"m_0_7i\",],[\"m_0_7n\",],[\"m_0_7m\",],[\"AddFriendButton\",\"init\",[\"m_0_7q\",],[{\n            __m: \"m_0_7q\"\n        },1055580469,null,\"profile_button\",\"none\",\"/ajax/add_friend/action.php\",\"\",true,null,false,null,0,],],[\"FriendStatus\",\"setSpecialLists\",[],[{\n            close: 1374283956118870,\n            acq: \"100006118350059_124542800973931\"\n        },],],[\"TimelineStickyHeaderNav\",\"init\",[\"m_0_7r\",],[{\n            __m: \"m_0_7r\"\n        },{\n            custom_subsection_menu: false\n        },],],],\n        instances: [[\"m_0_7h\",[\"SwapButtonDEPRECATED\",\"m_0_7g\",\"m_0_7j\",],[{\n            __m: \"m_0_7g\"\n        },{\n            __m: \"m_0_7j\"\n        },false,],3,],[\"m_0_7i\",[\"HoverButton\",\"m_0_7k\",\"m_0_7m\",\"m_0_7l\",],[{\n            __m: \"m_0_7k\"\n        },{\n            __m: \"m_0_7m\"\n        },{\n            __m: \"m_0_7l\"\n        },\"/ajax/lists/interests_menu.php?profile_id=1055580469&list_location=follow_1&follow_location=1\",],3,],[\"m_0_7n\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"LayerHideOnEscape\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_7o\",],[{\n            width: null,\n            context: null,\n            contextID: null,\n            contextSelector: null,\n            position: \"below\",\n            alignment: \"left\",\n            offsetX: 0,\n            offsetY: 0,\n            arrowBehavior: {\n                __m: \"ContextualDialogArrow\"\n            },\n            theme: {\n                __m: \"ContextualDialogDefaultTheme\"\n            },\n            addedBehaviors: [{\n                __m: \"LayerRemoveOnHide\"\n            },{\n                __m: \"LayerHideOnTransition\"\n            },{\n                __m: \"LayerFadeOnShow\"\n            },{\n                __m: \"LayerHideOnEscape\"\n            },{\n                __m: \"ContextualLayerAutoFlip\"\n            },{\n                __m: \"DialogHideOnSuccess\"\n            },]\n        },{\n            __m: \"m_0_7o\"\n        },],3,],[\"m_0_7m\",[\"HoverFlyout\",\"m_0_7n\",\"m_0_7p\",],[{\n            __m: \"m_0_7n\"\n        },{\n            __m: \"m_0_7p\"\n        },150,150,],3,],],\n        elements: [[\"m_0_7f\",\"u_0_3i\",2,],[\"m_0_7g\",\"u_0_3j\",4,],[\"m_0_7j\",\"u_0_3k\",2,],[\"m_0_7l\",\"u_0_3l\",2,\"m_0_7o\",],[\"m_0_7k\",\"u_0_3k\",2,],[\"m_0_7p\",\"u_0_3k\",2,],[\"m_0_7q\",\"u_0_3n\",2,],[\"m_0_7r\",\"u_0_3p\",4,],[\"m_0_7e\",\"u_0_3q\",2,],],\n        markup: [[\"m_0_7o\",{\n            __html: \"\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv id=\\\"u_0_3l\\\"\\u003E\\u003Cimg class=\\\"mal pal _52ng center img\\\" src=\\\"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n        },3,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",\"0duP3\",],\n    bootloadable: {\n        StickyController: {\n            resources: [\"AyUu6\",\"W3Ky6\",\"jsIYP\",],\n            \"module\": true\n        }\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",\"bUzfU\",\"3SGVa\",],\n    id: \"timeline_sticky_header\",\n    phase: 4\n});");
36385 // 1821
36386 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    append: \"timeline_tab_content_extra\",\n    content: {\n        timeline_section_placeholders: {\n            container_id: \"u_0_3z\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7s\",],[{\n            __m: \"m_0_7s\"\n        },\"year_2013\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7t\",],[{\n            __m: \"m_0_7t\"\n        },\"year_2013\",{\n            profile_id: 1055580469,\n            start: 1357027200,\n            end: 1388563199,\n            query_type: 8,\n            filter_after_timestamp: 1359228986,\n            section_pagelet_id: \"pagelet_timeline_year_current\",\n            load_immediately: false\n        },false,null,1,\"1.75\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2013\",{\n            profile_id: 1055580469,\n            start: 1357027200,\n            end: 1388563199,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7u\",],[{\n            __m: \"m_0_7u\"\n        },\"year_2012\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7v\",],[{\n            __m: \"m_0_7v\"\n        },\"year_2012\",{\n            profile_id: 1055580469,\n            start: 1325404800,\n            end: 1357027199,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_last\",\n            load_immediately: false\n        },false,null,2,\"24.648440122605\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2012\",{\n            profile_id: 1055580469,\n            start: 1325404800,\n            end: 1357027199,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7w\",],[{\n            __m: \"m_0_7w\"\n        },\"year_2011\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7x\",],[{\n            __m: \"m_0_7x\"\n        },\"year_2011\",{\n            profile_id: 1055580469,\n            start: 1293868800,\n            end: 1325404799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2011\",\n            load_immediately: false\n        },false,null,3,\"6.5829925537109\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2011\",{\n            profile_id: 1055580469,\n            start: 1293868800,\n            end: 1325404799,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7y\",],[{\n            __m: \"m_0_7y\"\n        },\"year_2008\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7z\",],[{\n            __m: \"m_0_7z\"\n        },\"year_2008\",{\n            profile_id: 1055580469,\n            start: 1199174400,\n            end: 1230796799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2008\",\n            load_immediately: false\n        },false,null,6,\"13.875\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2008\",{\n            profile_id: 1055580469,\n            start: 1199174400,\n            end: 1230796799,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_80\",],[{\n            __m: \"m_0_80\"\n        },\"way_back\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_81\",],[{\n            __m: \"m_0_81\"\n        },\"way_back\",{\n            profile_id: 1055580469,\n            start: 1167638400,\n            end: 1199174399,\n            query_type: 11,\n            section_pagelet_id: \"pagelet_timeline_wayback\",\n            load_immediately: false\n        },false,null,7,-1,],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_82\",],[{\n            __m: \"m_0_82\"\n        },\"year_2009\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_83\",],[{\n            __m: \"m_0_83\"\n        },\"year_2009\",{\n            profile_id: 1055580469,\n            start: 1230796800,\n            end: 1262332799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2009\",\n            load_immediately: false\n        },false,null,5,\"14.0224609375\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2009\",{\n            profile_id: 1055580469,\n            start: 1230796800,\n            end: 1262332799,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_84\",],[{\n            __m: \"m_0_84\"\n        },\"year_2010\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_85\",],[{\n            __m: \"m_0_85\"\n        },\"year_2010\",{\n            profile_id: 1055580469,\n            start: 1262332800,\n            end: 1293868799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2010\",\n            load_immediately: false\n        },false,null,4,\"9.1259155273438\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2010\",{\n            profile_id: 1055580469,\n            start: 1262332800,\n            end: 1293868799,\n            query_type: 9\n        },],],],\n        elements: [[\"m_0_7s\",\"u_0_3s\",2,],[\"m_0_7u\",\"u_0_3t\",2,],[\"m_0_7w\",\"u_0_3u\",2,],[\"m_0_7y\",\"u_0_3v\",2,],[\"m_0_80\",\"u_0_3w\",2,],[\"m_0_82\",\"u_0_3x\",2,],[\"m_0_84\",\"u_0_3y\",2,],[\"m_0_7t\",\"pagelet_timeline_year_current\",2,],[\"m_0_7v\",\"pagelet_timeline_year_last\",2,],[\"m_0_7x\",\"pagelet_timeline_year_2011\",2,],[\"m_0_85\",\"pagelet_timeline_year_2010\",2,],[\"m_0_83\",\"pagelet_timeline_year_2009\",2,],[\"m_0_7z\",\"pagelet_timeline_year_2008\",2,],[\"m_0_81\",\"pagelet_timeline_wayback\",2,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    id: \"timeline_section_placeholders\",\n    phase: 4\n});");
36387 // 1822
36388 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s7a057c195088590cb4874a4a0af4b53a836e06dd");
36389 // 1823
36390 geval("bigPipe.onPageletArrive({\n    append: \"timeline_tab_content_extra\",\n    JSBNG__content: {\n        timeline_section_placeholders: {\n            container_id: \"u_0_3z\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7s\",],[{\n            __m: \"m_0_7s\"\n        },\"year_2013\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7t\",],[{\n            __m: \"m_0_7t\"\n        },\"year_2013\",{\n            profile_id: 1055580469,\n            start: 1357027200,\n            end: 1388563199,\n            query_type: 8,\n            filter_after_timestamp: 1359228986,\n            section_pagelet_id: \"pagelet_timeline_year_current\",\n            load_immediately: false\n        },false,null,1,\"1.75\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2013\",{\n            profile_id: 1055580469,\n            start: 1357027200,\n            end: 1388563199,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7u\",],[{\n            __m: \"m_0_7u\"\n        },\"year_2012\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7v\",],[{\n            __m: \"m_0_7v\"\n        },\"year_2012\",{\n            profile_id: 1055580469,\n            start: 1325404800,\n            end: 1357027199,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_last\",\n            load_immediately: false\n        },false,null,2,\"24.648440122605\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2012\",{\n            profile_id: 1055580469,\n            start: 1325404800,\n            end: 1357027199,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7w\",],[{\n            __m: \"m_0_7w\"\n        },\"year_2011\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7x\",],[{\n            __m: \"m_0_7x\"\n        },\"year_2011\",{\n            profile_id: 1055580469,\n            start: 1293868800,\n            end: 1325404799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2011\",\n            load_immediately: false\n        },false,null,3,\"6.5829925537109\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2011\",{\n            profile_id: 1055580469,\n            start: 1293868800,\n            end: 1325404799,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_7y\",],[{\n            __m: \"m_0_7y\"\n        },\"year_2008\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_7z\",],[{\n            __m: \"m_0_7z\"\n        },\"year_2008\",{\n            profile_id: 1055580469,\n            start: 1199174400,\n            end: 1230796799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2008\",\n            load_immediately: false\n        },false,null,6,\"13.875\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2008\",{\n            profile_id: 1055580469,\n            start: 1199174400,\n            end: 1230796799,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_80\",],[{\n            __m: \"m_0_80\"\n        },\"way_back\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_81\",],[{\n            __m: \"m_0_81\"\n        },\"way_back\",{\n            profile_id: 1055580469,\n            start: 1167638400,\n            end: 1199174399,\n            query_type: 11,\n            section_pagelet_id: \"pagelet_timeline_wayback\",\n            load_immediately: false\n        },false,null,7,-1,],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_82\",],[{\n            __m: \"m_0_82\"\n        },\"year_2009\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_83\",],[{\n            __m: \"m_0_83\"\n        },\"year_2009\",{\n            profile_id: 1055580469,\n            start: 1230796800,\n            end: 1262332799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2009\",\n            load_immediately: false\n        },false,null,5,\"14.0224609375\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2009\",{\n            profile_id: 1055580469,\n            start: 1230796800,\n            end: 1262332799,\n            query_type: 9\n        },],],[\"TimelineContentLoader\",\"loadSectionOnClick\",[\"m_0_84\",],[{\n            __m: \"m_0_84\"\n        },\"year_2010\",],],[\"TimelineContentLoader\",\"registerTimePeriod\",[\"m_0_85\",],[{\n            __m: \"m_0_85\"\n        },\"year_2010\",{\n            profile_id: 1055580469,\n            start: 1262332800,\n            end: 1293868799,\n            query_type: 8,\n            section_pagelet_id: \"pagelet_timeline_year_2010\",\n            load_immediately: false\n        },false,null,4,\"9.1259155273438\",],],[\"TimelineContentLoader\",\"setExpandLoadDataForSection\",[],[\"year_2010\",{\n            profile_id: 1055580469,\n            start: 1262332800,\n            end: 1293868799,\n            query_type: 9\n        },],],],\n        elements: [[\"m_0_7s\",\"u_0_3s\",2,],[\"m_0_7u\",\"u_0_3t\",2,],[\"m_0_7w\",\"u_0_3u\",2,],[\"m_0_7y\",\"u_0_3v\",2,],[\"m_0_80\",\"u_0_3w\",2,],[\"m_0_82\",\"u_0_3x\",2,],[\"m_0_84\",\"u_0_3y\",2,],[\"m_0_7t\",\"pagelet_timeline_year_current\",2,],[\"m_0_7v\",\"pagelet_timeline_year_last\",2,],[\"m_0_7x\",\"pagelet_timeline_year_2011\",2,],[\"m_0_85\",\"pagelet_timeline_year_2010\",2,],[\"m_0_83\",\"pagelet_timeline_year_2009\",2,],[\"m_0_7z\",\"pagelet_timeline_year_2008\",2,],[\"m_0_81\",\"pagelet_timeline_wayback\",2,],]\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    id: \"timeline_section_placeholders\",\n    phase: 4\n});");
36391 // 1830
36392 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    content: {\n        pagelet_timeline_recent_more_pager: {\n            container_id: \"u_0_41\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"updatePagerAfterLoad\",[\"m_0_86\",],[{\n            __m: \"m_0_86\"\n        },\"u_0_18\",\"recent\",\"0\",true,],],],\n        elements: [[\"m_0_86\",\"pagelet_timeline_recent_pager_1\",2,],]\n    },\n    css: [\"ZtiRu\",\"0duP3\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    jscc_map: \"({\\\"jo1YixfNw93Ap09ygDm0\\\":function(){return new ScrollingPager(\\\"u_0_40\\\", \\\"ProfileTimelineSectionPagelet\\\", {\\\"profile_id\\\":1055580469,\\\"start\\\":0,\\\"end\\\":1375340399,\\\"query_type\\\":39,\\\"page_index\\\":1,\\\"section_container_id\\\":\\\"u_0_18\\\",\\\"section_pagelet_id\\\":\\\"pagelet_timeline_recent\\\",\\\"unit_container_id\\\":\\\"u_0_17\\\",\\\"current_scrubber_key\\\":\\\"recent\\\",\\\"time_cutoff\\\":null,\\\"buffer\\\":50,\\\"require_click\\\":false,\\\"showing_esc\\\":false,\\\"adjust_buffer\\\":true,\\\"tipld\\\":{\\\"sc\\\":4,\\\"rc\\\":13},\\\"num_visible_units\\\":7,\\\"remove_dupes\\\":true}, {\\\"usePipe\\\":true,\\\"jsNonblock\\\":true,\\\"buffer\\\":50,\\\"constHeight\\\":true,\\\"target_id\\\":\\\"u_0_17\\\"});}})\",\n    onload: [\"JSCC.get(\\\"jo1YixfNw93Ap09ygDm0\\\").register();\",],\n    id: \"pagelet_timeline_recent_more_pager\",\n    phase: 4\n});");
36393 // 1831
36394 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sc6b0399da9f730ec700d42e38f00a80a82b32c68");
36395 // 1832
36396 geval("bigPipe.onPageletArrive({\n    JSBNG__content: {\n        pagelet_timeline_recent_more_pager: {\n            container_id: \"u_0_41\"\n        }\n    },\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"updatePagerAfterLoad\",[\"m_0_86\",],[{\n            __m: \"m_0_86\"\n        },\"u_0_18\",\"recent\",\"0\",true,],],],\n        elements: [[\"m_0_86\",\"pagelet_timeline_recent_pager_1\",2,],]\n    },\n    css: [\"ZtiRu\",\"0duP3\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    jscc_map: \"({\\\"jo1YixfNw93Ap09ygDm0\\\":function(){return new ScrollingPager(\\\"u_0_40\\\", \\\"ProfileTimelineSectionPagelet\\\", {\\\"profile_id\\\":1055580469,\\\"start\\\":0,\\\"end\\\":1375340399,\\\"query_type\\\":39,\\\"page_index\\\":1,\\\"section_container_id\\\":\\\"u_0_18\\\",\\\"section_pagelet_id\\\":\\\"pagelet_timeline_recent\\\",\\\"unit_container_id\\\":\\\"u_0_17\\\",\\\"current_scrubber_key\\\":\\\"recent\\\",\\\"time_cutoff\\\":null,\\\"buffer\\\":50,\\\"require_click\\\":false,\\\"showing_esc\\\":false,\\\"adjust_buffer\\\":true,\\\"tipld\\\":{\\\"sc\\\":4,\\\"rc\\\":13},\\\"num_visible_units\\\":7,\\\"remove_dupes\\\":true}, {\\\"usePipe\\\":true,\\\"jsNonblock\\\":true,\\\"buffer\\\":50,\\\"constHeight\\\":true,\\\"target_id\\\":\\\"u_0_17\\\"});}})\",\n    JSBNG__onload: [\"JSCC.get(\\\"jo1YixfNw93Ap09ygDm0\\\").register();\",],\n    id: \"pagelet_timeline_recent_more_pager\",\n    phase: 4\n});");
36397 // 1839
36398 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    append: \"rightColContent\",\n    content: {\n        pagelet_timeline_scrubber: {\n            container_id: \"u_0_43\"\n        }\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"jsIYP\",\"AsDOA\",],\n    jscc_map: \"({\\\"jp1kb9bkjloUQHYlRF80\\\":function(){return new TimelineMainScrubber($(\\\"u_0_42\\\"));}})\",\n    onload: [\"JSCC.get(\\\"jp1kb9bkjloUQHYlRF80\\\")\",],\n    id: \"pagelet_timeline_scrubber\",\n    phase: 4\n});");
36399 // 1840
36400 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s0bca8d2d4acc19abfba8e616cbd94eb1c1449f00");
36401 // 1841
36402 geval("bigPipe.onPageletArrive({\n    append: \"rightColContent\",\n    JSBNG__content: {\n        pagelet_timeline_scrubber: {\n            container_id: \"u_0_43\"\n        }\n    },\n    css: [\"ZtiRu\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"jsIYP\",\"AsDOA\",],\n    jscc_map: \"({\\\"jp1kb9bkjloUQHYlRF80\\\":function(){return new TimelineMainScrubber($(\\\"u_0_42\\\"));}})\",\n    JSBNG__onload: [\"JSCC.get(\\\"jp1kb9bkjloUQHYlRF80\\\")\",],\n    id: \"pagelet_timeline_scrubber\",\n    phase: 4\n});");
36403 // 1848
36404 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_side_ads\",],\n    content: {\n        u_0_2q: {\n            container_id: \"u_0_45\"\n        }\n    },\n    jsmods: {\n        require: [[\"Arbiter\",\"inform\",[],[\"netego_loaded\",null,],],[\"NetEgo\",\"setup\",[],[6010069360965,],],[\"NetEgo\",\"setup\",[],[6008291652839,],],[\"NetEgo\",\"setup\",[],[6008916062318,],],[\"NetEgo\",\"setup\",[],[6010037469977,],],[\"NetEgo\",\"setup\",[],[6008948705864,],],[\"AdblockDetectorLogging\",\"assertUnblocked\",[\"m_0_87\",],[{\n            __m: \"m_0_87\"\n        },],],[\"TimelineController\",\"setAdsTracking\",[],[{\n            6010069360965: \"AQLbmP60eMgrcRKD1n0iNPI3rEJypxhSsWe9OK3TEwO7BVgxc6QQKwnakQAQI3orulou1PD-qpHI5wCUVGLAxnrt8wOvshETaxEJ1sLGFUpUY1P5L1XkKD08rgHoNbdP49921HWPkUq9zl956uZN0B6ppiBvk5K4N0-xN28WbsOolp86XrFx-3JM0Q5kdlOF2c6bP2P4QATsezJ66B7x9AYUlu0EP_oXTm9QKiz-qU_vJoeU08w2dMq_ilvBF1Ql_pD3Z72LQyN34jkjhcvzOBWQziwhUUIoGDvS9hkP6N2GKh_lBfPiZUS3naKm1Z_kPRXsBZgnSNgHZYTcbautyag2uCfwzap9jj5GWduyyDvrsT087ffLwU2-bK2IQrDVfX4s3ZYqGn8Bw07iUHGDYBrO2pUVfRHpO0PgjDMqx81p34YcSl5gCgycaYvl2ucTQoG3qOa1432N23t2GDetziVF0zUa4MiswULJGHP3JWcWqyYMFFlglD-o5c9XLwn2M1bzcqhcKPa2qOulwAGsqI1AFF4GqhsMUyAmzaEWXz1iAZxpWMVc_63eDLlYwCvQYllTa3aEBAeaTnD2vpLEH9IyyEFZeE6-pQgX9I4t8bpzbnUj6r2-oRxJCrxemyfCHoIkJ-G-j616dXmW25uZ1I5ELdLweNWoq-Xjl-R-RKfWM7gCvLv_j9r7m6yv6bPmCrniu8XwY8JpXUr9kkLiM6AGlZG2DURm6uzpODQDeEkmt87HHo60DpuwSVYJ3iA5N10J9_qgNKkbhQZy3CtUh-z0AkqZCl0a4fOa8F-Qpvomdu5w4BA5_4w9WfiZBQ3JOEVpqaBHhtx_xnnG7JhBVoIfz-bE7rJdU3cXsfltsGs1tfvA7W7_jiSYWj9DZD5A8vdp9asPOrd_WrALKaxK28hi\",\n            6008291652839: \"AQK2JCkebZg-304wmP1Dt4OZiq1R0zBVNi60e4kmzoblTj9ZIpl8yHSoikJBlVaqR5DUIlWq3YjZw2vAs9A2vpHmYqbO2XnwLZu-vEBRBAnppzlz6PSHYKUEyGZOPv3w3NBB73eMlXKmDcnugfeBCSxsJ03WAYT8PyIRpwRBohfNi8Cn8-Q7wfZvNPD1rR0ZV8l6a47oaZcmerncQU-a8_VqakT2N5yb3IoXxgp4BVjT87Y6SrwczaqvKQIdzPvstWhI7f3itV-WMeIeaM8pSQs4C1fyzb4b4XoY_bIuGsqyXWtkNbP4IeXy7nvCYDMODhBN2GE18saReegNSYGg5ZibQml0HW2nfKqrRC0bqWOJ2AWPaOazWIB3UzCnY8JVkNfnN4ZN1L8Z4agU-r0EOwAa0Ci0DSZwK3NqrZREmX4vQWqZ2SPMiML9P7yyG8eoDlzq25HArSmGIQNt2MORzCKFNXjDYK0moRdDkygGOjZbaBB_oqV0wYIaA_rJZZsk8IEFgal8_Zv0mMIMHWMt2U-v8Hc3oUUYYI9SBn0IxU19faiRgmPr829b7jVhi2eacvPVA0xHOjiAreaE_HplczjKgEyg-MK93lnFMy0t7jBWhz0J5LDrECqRBmO2bt8_wqHim8arn3TjylHbLy9_g9ur1f0w7S04eYT0lL7FViy6r--uMeCXhnnrauA0T9YNIg0F2h-QEoEjOrKqNU_JTcz_u5ul2CI8Hf_9WACDntxJanwUMpVZ2yLzqfSNOGWZYRdPt3U2eEX5GwD7w29JMg84XiaTe1_nTdFQBbPiCe9Hr9Oo-U3kFCealIZQUrV_7sAslu96-zJepOUIeyOpf6JWQ5LdbyO7OspnnYWFOTG2HQl7MFad5kgKUmhHkSyM8VnfHHXXg9RL2NHjG_WsrpDK\",\n            6008916062318: \"AQL7RzfFwNInah9q3QXCnlQ0J-X_CbBOJTqcjJV0weNEBz_C5uAcLMf8k2mubs16TPAkUKvx9LikmysjVfEVkPkpGd-m5vB3bRwszmGd0HL9sSMouRAB8-NL89N9cogM7BXls1z5ezGvAe1aifJF4c0k46nLC9XHCTufa6E7yYYDzpYu8tDjD9vGJIEOWO3gxGkEO4kQNEtWLInGy-z7jiKkPtwugTSsIX2qpMdRmWcIgocVhycuOxzITg2AMM8Np3Obntkh3juE52ZPskNp6YOPPUVg5Tkm3lD3pP7xRbLW3WUr8T7cpcuThrb9MtODZWLaBA0IWKkZWoVkCOCIkRDZvATFXPPXHq8uJi73Btmw-bTkzmRkeqLyHUMlXtdgPz3ne0FBjAotaWMhh7gcoG2JnzGyPFRZUuVhk7rLDT794x-BlCzsefRwXyC95dRm3tUsOx_3B3aldhugawxX8SyQPr6Wb0SG3h7XHJqV2MAXqo24Ql7NLQiXYx3Z7uTsctIv1peKYuOrcNWEhAdmnPaaVPloK-662wZViJvQfunzptNVZVLGBcj7bfpsaBaGkwuWqF7kOfv_HbkedRp5pehBDbKpaGRG_Hf66zaYIPk-b8gYDNE35C0NoKEMH8Rct3hkeLiAAmIdn12qR0dcfxR5ReJwnrkFNAICp2TxgcJqdispTVeVVj_NowgOVe5NFk8BjpdMgXkhGhL8tmQSJV3w4Zbf-4QpsxS1oYpqcjSZwIKrXo-ttTSOQSIJvfVMVd66CW8AWB2i8q9eOSpoT-4Ddh_rNSg8k5ln6j3euEb6QeQJ5N9HLZEp5BvuJ4zuQw2Jc5yNuheLkqP6x3nYqbR1fHoRZICS2fuiHWhiTizcMA282WPCd-nn_CTCc41xowx5XAs7q5V0T-okQWbu5wbmu3k_D_bOy2UQlYsrPQvbjCVront6wwthuWYVF-jNJ-Q\",\n            6010037469977: \"AQJEqQpJ9IbDt_NxB0QkgLDbRr1fFa_K3WFVk2ML-TdapfyzQJjJ10K7kXwXJV-9C8HofFltnZyoD_flyZQC1yGtiexVBtCuYMaN77hambAITBv-PAzbgnI6BExtMYBIU7FFoJhdv4BHVJKGXlwLEGIYk-JvY31Zo9TRo07GWudeK3pguvbMoaKrJdHEjGwnvF8jhwubHrdEQ6NA7iNRinLMik7V4AYkzCYA_vhlCueTAWZINsqK_2nZTIXLD0JMrtkSCyLLJFdcj1JPVmQ8NikRLQHHif-Tq0YShvffXvUXrwQ4CrX8JjKAO_lJ3p80U41ShHJdm5ICTEub-k5N3th7LbeGugaA4zQGJzWzHl-ABASedUPiWEAvceCG_ybZ8pP-IyySn7Pq-w1noR--jsCDwwdgtmm-MNPt0wms2uTjh4B9LKo6VtIk-MaebfXb66Oe12xKhUXaTgyNHn9GRbHnC9kjYrf1l9LDlu8JgQ8RnU2DfkKUt1Gpgsy7qXvxuGgPuyKP3_qaIYy6oivRGFt7XFEvewljZ91Z4TwJu43tAfuuqPpPYaG_pEs7bU2QvW9XQLQYkYldvO6Bnxrrbwy91C8Wp-BzAqMv6VvDHsQub64MVZegvxZPSYhVZKTN2qQQDrIAtOm_kSKAGaa95iuxu5Ol5jbkaDG6az4Re2_jaXXssFr62ano4rxftlGe0rBxKCYZIMW8FNkrZlwzWv0KESWHjxA6pWL4d9OqibWiGbPQO0QieSG_CcLgvbheU2VuauxzHj5PcGMQodm_fNNvVKGrBBotuEoi0LUHNvxcYjlfmedeXg2Uyul5gzr5v29JJ0QHm8ajxlMTvM__deiAvdQOjcykjZ59ydEsLZJhs6YXITuvLLtuGCtTSGSE9leRTDInwnqtO29YJsJPAUM2uC-baKXzvunPRzMKi4jGXg\",\n            6008948705864: \"AQLP71CE_gU9zcF13ctX_43YAY5s1-_Fhlibdf1VX1WTKpFonhYx2lnQuox3kDCVMluFrmlMAl6R5bXUpjeX5HWu9bXSMje7A5Z7uXvFWdjD0lFQ3ad-kPDkIeQ8VF1afF_Cv95W9TfJdlpJThwj3kY-aitTqB0NigF2-t3GAG02zllCQ-Ythp5LZCxzG7nI9tJ8J18jOMT8OkIDIHL9SbijxuleqrqewjszbhR-GhuoaR6w9eRrlF7BWNsQJ7C_9-zP7XoNiVM9u7XUlzFdfAfq0UDPupJgKPo6OeBDgYoIbdN50BunNAKI3G3Ykht16vJfXhPLrvQeHfGsyWwAnF0HoYJJLagvWZwJMpc34huL9iwq-R2ZZ4CA02-DTuIGVCE2BJxUI7xyH4uYjwKHSmJnXo9TLdhkSxjGRcIqegyzyf2V-kQ39ljSSupNMzk0lrVj_Wz2N_kqwf_wOkdgWEiIPoE5Z-NWm5bSz1MrAwcuuxNgeXWAvXKo27E2uxtFshus0lt9QFzytzkNffoQtkg5Y4fFSLzfefwTtBQq2lklj_qZ3kDehX69OIwvNBvubLAnlxjoJLtIlR55T0WjY45FmeV8S96ptgnzuDNWVAyDthioPjdhPonQf1Wi-UwZypxVkJ1JB1anpRMe9dzHsCUumoCSPvEvOWHPlG_7IigdQ6GEOsivnPu1yJ2KW78K3EOMDgX6d0JFgv9k6BXiMiRnXABAN4a6UB3M4HSv3KVEqJ8mg1xDEjxmOlNsaG2tfIFYowH2Qzc-x1oaZg_rO82sChY_qyHjfJISXjTzhql6fk2ypT7nWfNjdaLnYCUIAbzCEaZj_1RjMTHQ7SvKdK2olvdvQ6Fa8W5wawufBzjwc4o8PF9dwvsdrLyte_zrnl_ksXsNDkS1bfZ03G3l4GAvv-GWiQRvuvMlgF7etHmkJen85cSTrOL7lcAdCQKBGSg\"\n        },],],],\n        elements: [[\"m_0_87\",\"u_0_44\",2,],]\n    },\n    css: [\"0duP3\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    onload: [\"new EmuController(\\\"6010069360965-id_51ddd04f4b2ff8432881967\\\", \\\"AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl--nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A\\\")\",\"new EmuController(\\\"6008291652839-id_51ddd04f4b40f3b54921268\\\", \\\"AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ\\\")\",\"new EmuController(\\\"6008916062318-id_51ddd04f4b4974851446951\\\", \\\"AQJGJvOnYZukufXE1r_V1Je4--yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk\\\")\",\"new EmuController(\\\"6010037469977-id_51ddd04f4b5207180068485\\\", \\\"AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9--Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op--d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY\\\")\",\"new EmuController(\\\"6008948705864-id_51ddd04f4b59a3268404703\\\", \\\"AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE\\\")\",],\n    id: \"u_0_2q\",\n    phase: 4\n});");
36405 // 1849
36406 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s3384546c050c84c47757d73b92c422e36cb04d63");
36407 // 1850
36408 geval("bigPipe.onPageletArrive({\n    display_dependency: [\"pagelet_side_ads\",],\n    JSBNG__content: {\n        u_0_2q: {\n            container_id: \"u_0_45\"\n        }\n    },\n    jsmods: {\n        require: [[\"Arbiter\",\"inform\",[],[\"netego_loaded\",null,],],[\"NetEgo\",\"setup\",[],[6010069360965,],],[\"NetEgo\",\"setup\",[],[6008291652839,],],[\"NetEgo\",\"setup\",[],[6008916062318,],],[\"NetEgo\",\"setup\",[],[6010037469977,],],[\"NetEgo\",\"setup\",[],[6008948705864,],],[\"AdblockDetectorLogging\",\"assertUnblocked\",[\"m_0_87\",],[{\n            __m: \"m_0_87\"\n        },],],[\"TimelineController\",\"setAdsTracking\",[],[{\n            6010069360965: \"AQLbmP60eMgrcRKD1n0iNPI3rEJypxhSsWe9OK3TEwO7BVgxc6QQKwnakQAQI3orulou1PD-qpHI5wCUVGLAxnrt8wOvshETaxEJ1sLGFUpUY1P5L1XkKD08rgHoNbdP49921HWPkUq9zl956uZN0B6ppiBvk5K4N0-xN28WbsOolp86XrFx-3JM0Q5kdlOF2c6bP2P4QATsezJ66B7x9AYUlu0EP_oXTm9QKiz-qU_vJoeU08w2dMq_ilvBF1Ql_pD3Z72LQyN34jkjhcvzOBWQziwhUUIoGDvS9hkP6N2GKh_lBfPiZUS3naKm1Z_kPRXsBZgnSNgHZYTcbautyag2uCfwzap9jj5GWduyyDvrsT087ffLwU2-bK2IQrDVfX4s3ZYqGn8Bw07iUHGDYBrO2pUVfRHpO0PgjDMqx81p34YcSl5gCgycaYvl2ucTQoG3qOa1432N23t2GDetziVF0zUa4MiswULJGHP3JWcWqyYMFFlglD-o5c9XLwn2M1bzcqhcKPa2qOulwAGsqI1AFF4GqhsMUyAmzaEWXz1iAZxpWMVc_63eDLlYwCvQYllTa3aEBAeaTnD2vpLEH9IyyEFZeE6-pQgX9I4t8bpzbnUj6r2-oRxJCrxemyfCHoIkJ-G-j616dXmW25uZ1I5ELdLweNWoq-Xjl-R-RKfWM7gCvLv_j9r7m6yv6bPmCrniu8XwY8JpXUr9kkLiM6AGlZG2DURm6uzpODQDeEkmt87HHo60DpuwSVYJ3iA5N10J9_qgNKkbhQZy3CtUh-z0AkqZCl0a4fOa8F-Qpvomdu5w4BA5_4w9WfiZBQ3JOEVpqaBHhtx_xnnG7JhBVoIfz-bE7rJdU3cXsfltsGs1tfvA7W7_jiSYWj9DZD5A8vdp9asPOrd_WrALKaxK28hi\",\n            6008291652839: \"AQK2JCkebZg-304wmP1Dt4OZiq1R0zBVNi60e4kmzoblTj9ZIpl8yHSoikJBlVaqR5DUIlWq3YjZw2vAs9A2vpHmYqbO2XnwLZu-vEBRBAnppzlz6PSHYKUEyGZOPv3w3NBB73eMlXKmDcnugfeBCSxsJ03WAYT8PyIRpwRBohfNi8Cn8-Q7wfZvNPD1rR0ZV8l6a47oaZcmerncQU-a8_VqakT2N5yb3IoXxgp4BVjT87Y6SrwczaqvKQIdzPvstWhI7f3itV-WMeIeaM8pSQs4C1fyzb4b4XoY_bIuGsqyXWtkNbP4IeXy7nvCYDMODhBN2GE18saReegNSYGg5ZibQml0HW2nfKqrRC0bqWOJ2AWPaOazWIB3UzCnY8JVkNfnN4ZN1L8Z4agU-r0EOwAa0Ci0DSZwK3NqrZREmX4vQWqZ2SPMiML9P7yyG8eoDlzq25HArSmGIQNt2MORzCKFNXjDYK0moRdDkygGOjZbaBB_oqV0wYIaA_rJZZsk8IEFgal8_Zv0mMIMHWMt2U-v8Hc3oUUYYI9SBn0IxU19faiRgmPr829b7jVhi2eacvPVA0xHOjiAreaE_HplczjKgEyg-MK93lnFMy0t7jBWhz0J5LDrECqRBmO2bt8_wqHim8arn3TjylHbLy9_g9ur1f0w7S04eYT0lL7FViy6r--uMeCXhnnrauA0T9YNIg0F2h-QEoEjOrKqNU_JTcz_u5ul2CI8Hf_9WACDntxJanwUMpVZ2yLzqfSNOGWZYRdPt3U2eEX5GwD7w29JMg84XiaTe1_nTdFQBbPiCe9Hr9Oo-U3kFCealIZQUrV_7sAslu96-zJepOUIeyOpf6JWQ5LdbyO7OspnnYWFOTG2HQl7MFad5kgKUmhHkSyM8VnfHHXXg9RL2NHjG_WsrpDK\",\n            6008916062318: \"AQL7RzfFwNInah9q3QXCnlQ0J-X_CbBOJTqcjJV0weNEBz_C5uAcLMf8k2mubs16TPAkUKvx9LikmysjVfEVkPkpGd-m5vB3bRwszmGd0HL9sSMouRAB8-NL89N9cogM7BXls1z5ezGvAe1aifJF4c0k46nLC9XHCTufa6E7yYYDzpYu8tDjD9vGJIEOWO3gxGkEO4kQNEtWLInGy-z7jiKkPtwugTSsIX2qpMdRmWcIgocVhycuOxzITg2AMM8Np3Obntkh3juE52ZPskNp6YOPPUVg5Tkm3lD3pP7xRbLW3WUr8T7cpcuThrb9MtODZWLaBA0IWKkZWoVkCOCIkRDZvATFXPPXHq8uJi73Btmw-bTkzmRkeqLyHUMlXtdgPz3ne0FBjAotaWMhh7gcoG2JnzGyPFRZUuVhk7rLDT794x-BlCzsefRwXyC95dRm3tUsOx_3B3aldhugawxX8SyQPr6Wb0SG3h7XHJqV2MAXqo24Ql7NLQiXYx3Z7uTsctIv1peKYuOrcNWEhAdmnPaaVPloK-662wZViJvQfunzptNVZVLGBcj7bfpsaBaGkwuWqF7kOfv_HbkedRp5pehBDbKpaGRG_Hf66zaYIPk-b8gYDNE35C0NoKEMH8Rct3hkeLiAAmIdn12qR0dcfxR5ReJwnrkFNAICp2TxgcJqdispTVeVVj_NowgOVe5NFk8BjpdMgXkhGhL8tmQSJV3w4Zbf-4QpsxS1oYpqcjSZwIKrXo-ttTSOQSIJvfVMVd66CW8AWB2i8q9eOSpoT-4Ddh_rNSg8k5ln6j3euEb6QeQJ5N9HLZEp5BvuJ4zuQw2Jc5yNuheLkqP6x3nYqbR1fHoRZICS2fuiHWhiTizcMA282WPCd-nn_CTCc41xowx5XAs7q5V0T-okQWbu5wbmu3k_D_bOy2UQlYsrPQvbjCVront6wwthuWYVF-jNJ-Q\",\n            6010037469977: \"AQJEqQpJ9IbDt_NxB0QkgLDbRr1fFa_K3WFVk2ML-TdapfyzQJjJ10K7kXwXJV-9C8HofFltnZyoD_flyZQC1yGtiexVBtCuYMaN77hambAITBv-PAzbgnI6BExtMYBIU7FFoJhdv4BHVJKGXlwLEGIYk-JvY31Zo9TRo07GWudeK3pguvbMoaKrJdHEjGwnvF8jhwubHrdEQ6NA7iNRinLMik7V4AYkzCYA_vhlCueTAWZINsqK_2nZTIXLD0JMrtkSCyLLJFdcj1JPVmQ8NikRLQHHif-Tq0YShvffXvUXrwQ4CrX8JjKAO_lJ3p80U41ShHJdm5ICTEub-k5N3th7LbeGugaA4zQGJzWzHl-ABASedUPiWEAvceCG_ybZ8pP-IyySn7Pq-w1noR--jsCDwwdgtmm-MNPt0wms2uTjh4B9LKo6VtIk-MaebfXb66Oe12xKhUXaTgyNHn9GRbHnC9kjYrf1l9LDlu8JgQ8RnU2DfkKUt1Gpgsy7qXvxuGgPuyKP3_qaIYy6oivRGFt7XFEvewljZ91Z4TwJu43tAfuuqPpPYaG_pEs7bU2QvW9XQLQYkYldvO6Bnxrrbwy91C8Wp-BzAqMv6VvDHsQub64MVZegvxZPSYhVZKTN2qQQDrIAtOm_kSKAGaa95iuxu5Ol5jbkaDG6az4Re2_jaXXssFr62ano4rxftlGe0rBxKCYZIMW8FNkrZlwzWv0KESWHjxA6pWL4d9OqibWiGbPQO0QieSG_CcLgvbheU2VuauxzHj5PcGMQodm_fNNvVKGrBBotuEoi0LUHNvxcYjlfmedeXg2Uyul5gzr5v29JJ0QHm8ajxlMTvM__deiAvdQOjcykjZ59ydEsLZJhs6YXITuvLLtuGCtTSGSE9leRTDInwnqtO29YJsJPAUM2uC-baKXzvunPRzMKi4jGXg\",\n            6008948705864: \"AQLP71CE_gU9zcF13ctX_43YAY5s1-_Fhlibdf1VX1WTKpFonhYx2lnQuox3kDCVMluFrmlMAl6R5bXUpjeX5HWu9bXSMje7A5Z7uXvFWdjD0lFQ3ad-kPDkIeQ8VF1afF_Cv95W9TfJdlpJThwj3kY-aitTqB0NigF2-t3GAG02zllCQ-Ythp5LZCxzG7nI9tJ8J18jOMT8OkIDIHL9SbijxuleqrqewjszbhR-GhuoaR6w9eRrlF7BWNsQJ7C_9-zP7XoNiVM9u7XUlzFdfAfq0UDPupJgKPo6OeBDgYoIbdN50BunNAKI3G3Ykht16vJfXhPLrvQeHfGsyWwAnF0HoYJJLagvWZwJMpc34huL9iwq-R2ZZ4CA02-DTuIGVCE2BJxUI7xyH4uYjwKHSmJnXo9TLdhkSxjGRcIqegyzyf2V-kQ39ljSSupNMzk0lrVj_Wz2N_kqwf_wOkdgWEiIPoE5Z-NWm5bSz1MrAwcuuxNgeXWAvXKo27E2uxtFshus0lt9QFzytzkNffoQtkg5Y4fFSLzfefwTtBQq2lklj_qZ3kDehX69OIwvNBvubLAnlxjoJLtIlR55T0WjY45FmeV8S96ptgnzuDNWVAyDthioPjdhPonQf1Wi-UwZypxVkJ1JB1anpRMe9dzHsCUumoCSPvEvOWHPlG_7IigdQ6GEOsivnPu1yJ2KW78K3EOMDgX6d0JFgv9k6BXiMiRnXABAN4a6UB3M4HSv3KVEqJ8mg1xDEjxmOlNsaG2tfIFYowH2Qzc-x1oaZg_rO82sChY_qyHjfJISXjTzhql6fk2ypT7nWfNjdaLnYCUIAbzCEaZj_1RjMTHQ7SvKdK2olvdvQ6Fa8W5wawufBzjwc4o8PF9dwvsdrLyte_zrnl_ksXsNDkS1bfZ03G3l4GAvv-GWiQRvuvMlgF7etHmkJen85cSTrOL7lcAdCQKBGSg\"\n        },],],],\n        elements: [[\"m_0_87\",\"u_0_44\",2,],]\n    },\n    css: [\"0duP3\",\"W3Ky6\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"AsDOA\",\"jsIYP\",],\n    JSBNG__onload: [\"new EmuController(\\\"6010069360965-id_51ddd04f4b2ff8432881967\\\", \\\"AQImwNUhGWEdpxtbkvIo1XeZdXEJCbnUliRgBk-VjzyF9x_sRKX5KkfadkdzeU0OYGCk-6TBWIQSN5KzhOYoKjVlo4kTAXaIrVwpryZutdNpoebhwCxm335cl9OPRfK09xRh4Y0LhYHkwbguwrbCU9Q-xXnQWfSF77ZWyXIVGn1UNoTLBXwEVFVOTa4cx0J1ahfjWT78k25lBrHWBgosZ6OIfarUrONZma0tgqTA23dfX05cx0d2_-hJmyGJ3oi0-j3kuHdF7pqG6w5V5_hkT1FQ3hdSMhZN-w4U-WLh_Y_mcrtwnWDuSl1BRcLv1IutgYQwnxToVQM5ybpIIWLnaArXiPAcoiCaMdG8TUoj_NhJOfabT5OFaqRc0r_h42Jgbbsgw6zmag-qunA9rZmuDukrfz8B2v3Zxe40tDWjZPkflOc86jOu6qXzOhh988Tqm8_1iJ0HE9F1uHJnZ02Ixn2R6W5ufWmZm1qPkkF9fqSwdqjcxe3zHt892q18k9Q3zshsNZKxJ1clp4-eYVxD1G0v-FF66tMfniEWCbrzZHRhHIKBNn-2_0Omah9tD2FvDBiyK2UNQ2j8rLeapu6grh5xaeTTXA4VN2PaupbwY51nqoKgZF5K-OCLLgVOgmg26iYtq0SmvQ-iYZZke3YFfzhmNku9b_uDx5Kybyb3zI9M7ZZb3gBSbIjixin2vCo-KXqCy0QZ9NEGx3N2qY8tdpYSQ771yiMQuVrs4-C202l4rzLoqQ2wb_MmQph6g3gg2XtzNAksclUHD7ow2jObx9XduHIbOoNF97W8DqXbPf155_eeNLApheFI8ylWSFnl054AGnzXB6yM-IcB-1ywdLU2eikQ5HhPrTC0xjlEX1Oa_CJYOnHcoCCYmXWjeAyGPwYC4mA4OA83LUFiGFrY3l7Ktauyjs236xp9fYDl--nxDgO1rP8Bm85L4cgE_hJ2xorp56xzHaj23PcAGj96HJwiw5O5TcyN4fJEsdZlXJKKAT0augBxDLo3Kia2tDrSJ5Y41nBmqvaPUnaGLz06VWI_OYm8kWlzzszKL_EwYlzhraKQ79ERahSXdSgX8T83Ssnyx8FZW2HMckb5QDAejgDSon2tNiRDdLSqtnEb4ITvknaS4P6WFxzAiimm_e0Vd7A\\\")\",\"new EmuController(\\\"6008291652839-id_51ddd04f4b40f3b54921268\\\", \\\"AQLU3ia2O2tSXcTyZF1S-m9ygoUHiN3bm1ko05o4JTKBeSUdBGMvDM9NFdb665C7Omjd8pBKRBujLFSfEs2pyk0VuuZULVUDMANj_CxfQ4olt9vV8kPyMKtOdYXzEZhHhTSnPb6x-GRdfaMiJgbCQWTGEMNt_zGVfL9wnfzHkyG7SLjHcj0oYPQIn57OvP-jym7jA_aLhuMMPt2nmJUiZr6oiJioS8zTo_5uRy92fACLirEu1NaVSmHZ6maRJO_wl7fGRFNPABOVagzRGyRDYxDrM3y3at3tIjh85q3g_fZosaZ6do85XNoXrLs7E19IQONnT35cpCsJwcTnufpDUmxzzxwzcn8v_Ljx8iDT6_OB3IHHCx1NSMRXpGcuHLbWEvhYwQ4Zw5cDOfaxO-FM6mdlCNmrwnXSuMOxNeYLh9mrvx0ZauKzEbgW4OM5XPKaXbBeGA_2xk3LvIS2pLyI64ZZ5LhlhNDURh3sxm9KtT71-BDzVN11ub-Ss8dRFHIdgflTiHpEgDCK2Y0EGeEePyk2t5BZSmMU5_VG7cWIfE19SKkgiGdpUvJ589nczcPTSlxzHrOYrUvuAEIOszwO8HQ_c5-C-iyC3oMzyuEpUH-w22Al4tM2rRpVMq7j_lmzWFYfms6qDSpWUuzH_pD1fkXlJ95W68vQkIeHMo8EPchdVBprsdhM6moT_bBuei2OaqthIa075zQoiKGy8992jBq2XnY7ucwiWsPtTu9tkniXf4DOwR4lxw-UuAi4gs0R05wFS2KmlQq8BrJLtQR2n4xP3QZRpt1RVMjNSkScHUg0ijLJTaX8wm2mI35QggY4UZLKy0ge9iYRW-Q5CDjr6IhTJTnnCQsf4WRWgbQmD2BQCDUbSEbLjSCahTyn3vlzvTGNCzdxzvGJQhuH1wvZnrhwlfbeMtf7RatnLXBdVpFn0cn6_y60J7ZnHPsRPs7xNa1rAJyT3je8nZ44pXP6sWX3xOK254R7xy4iLFrbU0Cu3i4DwACvxT7feEwdqffxIqOUgS8yzToxFDMF-39PfWKqblBId2IiHARQu1uzY9QByj7Z4uf0GHK954XZ6-1a_ykWvdVPC_h3sb_2zoHTNK1uR_XNvrq8_xTALaqZNcrbEmo5brUvzkqOqCH5ZsTEwmTyara0pzUHrQdMkTw0_VGav5oQwUq7xD4X3ptEXQMcmQ\\\")\",\"new EmuController(\\\"6008916062318-id_51ddd04f4b4974851446951\\\", \\\"AQJGJvOnYZukufXE1r_V1Je4--yXbyhh5Q3z3eGIaBR82I_qO9CvM05NtO5v6wk63rBuEWdg8CziEwH64ob6GbBDs5tftO7CTKcsolCZ_-ewPnydNAPt5Toc5Q831MXKSjUJTe1Tixboky_IWQxRzYqFWWiYvyQJ7F02Y9Tam0xYH40Az8lAfEX8jLmCv-zgfGAapedwVz_mhy86fHV_w6skg85CNbutvnpU5J90gkkpLGyn-VYiJ78ICtgHFdkh2EIbR8FOwE8TjB1OBoa02Xl16425PXowjNG7VzR_1-hgx_kflmiqjvYOqGjTrbWiAm31n-MhBI1h8EsafPSC0o831XJw2btIAr-l5Uko5rjDq6M2nEte_s9Dvgu_xoSUZP_msK4DbXD-kZpnRif4QJaixS6ReLDJexDKmai6jgcOGodR9QqOs2LyEcd__V1BW-0btEfHvmfhzQXG5_7aWS5X-OAzFyuoFHVL5lPcDBa3OZ_JOnrUE5k_MEZsauZoeJ58TSVX0yG9o2HfpEGLjcUaKGCkJNNON7vfWxVZUShX-d3mYCKhKMFtihEYKN9VoS13KF_lRMDuz_cGWtaqLrKqxYxTWpwW_ymYFMw1bAOFXNxpMHFlFxaJ3E6IPkWGCcqfOKhCbcLf44md4WdNzRDg0IMWkDH_p9VSUYqB3jYCqo0qZP2hCvDXejEttr7B-VvT1ZAOgThX4s4WPNMpPOKuPL540FE3LhFxMDdfghPDQ4NIlhJjgtXneS9lLWxBS0xHZMY4yxHQMeZbR-KoMs4wxXk9ZjuvTMNh6RDr87V7XJ6MrTJjkE4QG96W_U91wL8u-kFCrs21nSSa0jhoZ9dva0Zgaj4V35lprB20UPEQIuTBo8X-qRoOSeZVMoqgKF7IkZHq2lhkWW_D6MpQRltKnAjsahfWd-sAmtJ8O6W7UjsRMYxY2docYD2XFgi6MPtzVm4X5I8205fsTRS1Z5LP1IuhRA5rw3AOClNyJJga17cFwF_-O_4BaG0sZVOS7XdUubnvhxqjLOoAO9cSIcHgs7BRDswzOr-Pfmfe_JyuQVponbkDRlJut7weddUFG2z_nJ-725A4GL2GNg4q1MjegEFPAfVEnVsi1JL2y_CBvhWd0RXXYb_ccwyCEPCvzDB3lYF5JS-8vL1Ygquo4KfWra8PUDwAziKvqCvJnUVFrOrbjRhvoZi1MWuUmMOjIKAp-tfkt30I3h69iub2fzirkyrK5tJd_Iv22Jxl9xHS22-g4pdzv7af4IPgy2CooVk\\\")\",\"new EmuController(\\\"6010037469977-id_51ddd04f4b5207180068485\\\", \\\"AQI5MS3p7PmoZOkYz1-g1bhcl_ihn4Me_qxkz6ExYyZ6Ptcc8YBk7zVSepS3t2VJaPYX4hangH0-ljBRqDpoJOa93hz_L9--Dht1_ed3yX9GClqUUFM2cqMqxvSVwxS3TfF3eNPJIv9hnQ8X8MgGQ9DaBkdVrQIt-t4kITCIpzoiDPe8F-D8d6sSllyxuQ3GUuk853fOQiwNt8BJkhbx24v0mMGM00G6tNnt99sTwBAlVb94zM23M6SHbMq2rOXBJ063K4L19AI5lZ02BHv_1_EF9dSVwoI9Vp22_oX_p6CDbPtqZJMb3yFp8EoDUOtSgopKSm0STXuLme3ITvV2SrCG0F9tk_atLtgGw8nQgCNkK_hKbs11EdIcVrz0YsVhy0vPaV5AywPLqM1PL_JjFNuPa4AzYOBZQSQvlOvEh-rD4lsQHn5nCZUmhSzjgs8s9lN7kc97LQJko0NUfEpW6A38y_1lhxtU2UdyS1vpiB5_E2fjWasz0sZ-LMCU3w5L2eurooyNpA5lmSlTFCZDw97s4Cl6Ea2MY3yKeG9USM_j__uNDmw-Ky2t5tS73heObkCginQdOzFr0bi570RPHbpIr9gJr1Pz-WxLsmvO7FVHeYJnwSItyNDNZwg9zmZeMNjrbnbvKkAgFu2qiWF_IPdH3etIDGbSco9BXsWTfs313VjaAAkbGcty2xe4MvxiFW4nB8-PkWW_UOjQwepjA8rc6Kw6akeI2Q7jJAvRc9CHdjgafRJxeK4ajl1M84swoGGwWRMtfheU-fO3raIM1S4uOREZCntZ-QAvVH36PuvlDlhyXPQActDMUCiOg-RAo-FoxoWrCkmPfnvFjsiaYfFwr5oZ_QHX5m0rIRjAzav4m7LZgNHpCEqWxbp-m4yQs4cTuZVRVC4Op--d4zie7eCZvNnSUvc8OaJs1UPjq9hZuoP1D9k1upnQ9um94jl3Ao3XO_wq7C24Y9WhJWoTo5ruUq0tAcpyr7g4oXAmLYaYaVdz31I_SbWqdxlON1bL5Hh5Jfhq9Y8Oh_txkhyYqUr73X9afte2tSoCDZia4Zszfzi-EQsQX9HMl85aETVtcpZWQTiXlDet_WddSuYkEmOrwNuPqNFCCZmbd8E9NG0XQDwkT4F-2rPgeQORouZ-nTug-uxSZGqOxLkVJb9_aSUTYPUisB9iFggbslTgLu2r3Fgaq0VCeSWGChXNQ6xUJgS2Lo5w4yQJ8AUHnuhqmv8qL8YeyrgFCHkjQWV9M0GzcqHFo409aYD2P7n822yyvoY\\\")\",\"new EmuController(\\\"6008948705864-id_51ddd04f4b59a3268404703\\\", \\\"AQJitB_HcoNKErKtrE1sFhSrP-tJFXEaNq2L9DGjGez_P-aWdI7tb3MQm3rKVU8GGq31CKIdLSfV9Da0z9htTnIlE8v0zWpIG2uga9AQ91KRFjegyqUemEZX5TBJfS-gzxI6STRlpJzAduP1XXzH3_GVuf6Q5oDNvMkhG8yRibyI5SMbprQr3A7FNtxCc50MT_Z9Q3uN1CHzijuyo7YzbleWb_kSUVovVvqNdIX0MM8JQ17BRs29aPQuZCi2HmAmgR0P_9k0jVBaKfSFDyAJejchw8vMr6OZLS_0siapgQpdDkZeoGE7aiorw3lnV-6VAdeA3A7aiYU7rnEikQV9eHA96htHndp_8lc3ka8EyV_lRc46WCsa5-SVj3HVWj_I3pfzQeLKQp214smdOUCLGLHKGPGuUiIcKx4PYL-ewY74gOFIN1yxBWMmvJP5GrGFiw7kK45tOgnBQmnfcmMXIcBfXlVVOk1q-5o1w3pYsHZw1ZgbmKpP_hRIj0u0HuN6n9q9moAJ0mfL6iYlELp-PIeAiBzA8THivuMrKRSdSvxW4M9dxBqyI5TwKSdxfIn53KKwrLkRN5tHjhp-XkAjG9VVfCag5xK44A_SwgFd4Y7M1VPb5g5x_CC-7HIRMBm4QCTMVFz2KS4Zk42I6-FhpRmw0RHsrp8erbOzpd11nxmnL-Yf7fK-TPIsnheUbmFRmLjlUNmMeQT_z3rNTyOBj-qqvnK0IG3IonJVtHknSLvhRYmNkS6__8C0kU2cMvm-KJHdc8dX5FQ06y0evFOFKx-qngoiuaIv_AcDzvW4y3ByUnurF-2jE9ju1DQH9HoTPKu4yvlB6ppvMnOQ51fpLMW1xO7bTJlu5stUxLR-2Ijq9nuNTH4qKkwSAHR3U_oaehsFPksTtYxgA0T7o96rP_7tS3IEUwtuIieP0VsReFAAPrfElIQ07QuK2882l3KgRajixpFP0Vv-APJQrBikDlFlaiCuOp5zCV2g-s0B1eoo6cuP6CqKWaX0G6XrT9Y3CtFLCowNTYiQ0sZeMEzH58lBAWvlsCyjX62os4-278WMX3sp8bEV6NPOwWkzpurwm4lYpQ0LuRCjEfnzpDDR6OxNXNBve6pHB1_NP8Xh0vbkYNkQQpi1hxwh__OTpP232_P9wi1pc6yu1suD1Fp2Dm-vADs_5NmxHBT_EwqAwYzti4dbaT6ritCOMJRtX9ngPBes9z1DU2LKG7vLyuanLJ3pai8IKROpgAZRWwdm0MdYudjhpaAQCxVeNjPHpI0LRSE\\\")\",],\n    id: \"u_0_2q\",\n    phase: 4\n});");
36409 // 1856
36410 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"bigPipe.onPageletArrive({\n    id: \"\",\n    phase: 4,\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"setParallelLoadConfig\",[],[{\n            required_units: 5,\n            max_parallelism: 3\n        },],],]\n    },\n    is_last: true,\n    css: [\"W3Ky6\",\"0duP3\",\"ZtiRu\",\"aQ3gA\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"OJTM4\",\"KPZ5T\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"hfrQl\",\"C6rJk\",\"jsIYP\",],\n    the_end: true\n});");
36411 // 1857
36412 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s6de83c457bb48e650172c981b18e87e39bf333f3");
36413 // 1858
36414 geval("bigPipe.onPageletArrive({\n    id: \"\",\n    phase: 4,\n    jsmods: {\n        require: [[\"TimelineContentLoader\",\"setParallelLoadConfig\",[],[{\n            required_units: 5,\n            max_parallelism: 3\n        },],],]\n    },\n    is_last: true,\n    css: [\"W3Ky6\",\"0duP3\",\"ZtiRu\",\"aQ3gA\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n    bootloadable: {\n    },\n    resource_map: {\n    },\n    js: [\"AyUu6\",\"OJTM4\",\"KPZ5T\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"hfrQl\",\"C6rJk\",\"jsIYP\",],\n    the_end: true\n});");
36415 // 1866
36416 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_222[0], o0,o35);
36417 // undefined
36418 o0 = null;
36419 // undefined
36420 o35 = null;
36421 // 1868
36422 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_225[0](o36);
36423 // undefined
36424 o36 = null;
36425 // 1870
36426 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_169[0](false);
36427 // 5476
36428 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"AsDOA\",]);\n}\n;\n__d(\"AdblockDetector\", [], function(a, b, c, d, e, f) {\n    var g = \"data-adblock-hash\", h = {\n    }, i = 0;\n    function j(k, l) {\n        var m = k.getAttribute(g);\n        if (!m) {\n            m = ++i;\n            k.setAttribute(g, m);\n        }\n         else if (h[m]) {\n            clearTimeout(h[m]);\n            h[m] = null;\n        }\n        \n    ;\n        h[m] = setTimeout(function() {\n            h[m] = null;\n            if (!k.offsetHeight) {\n                var n = k, o = document.getElementsByTagName(\"body\")[0];\n                while ((n && (n !== o))) {\n                    if ((((((n.style.display === \"none\") || (n.style.height === \"0px\")) || (n.style.height === 0)) || (n.style.height === \"0\")) || (n.childNodes.length === 0))) {\n                        return\n                    };\n                    n = n.parentNode;\n                };\n                if ((n === o)) {\n                    (l && l(k));\n                };\n            }\n        ;\n        }, 3000);\n    };\n    f.assertUnblocked = j;\n});\n__d(\"EagleEye\", [\"Arbiter\",\"Env\",\"OnloadEvent\",\"isInIframe\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"OnloadEvent\"), j = b(\"isInIframe\"), k = (h.eagleEyeConfig || {\n    }), l = \"_e_\", m = ((window.name || \"\")).toString();\n    if (((m.length == 7) && (m.substr(0, 3) == l))) {\n        m = m.substr(3);\n    }\n     else {\n        m = k.seed;\n        if (!j()) {\n            window.name = (l + m);\n        };\n    }\n;\n    var n = ((((window.location.protocol == \"https:\") && document.cookie.match(/\\bcsm=1/))) ? \"; secure\" : \"\"), o = ((l + m) + \"_\"), p = new Date((Date.now() + 604800000)).toGMTString(), q = window.location.hostname.replace(/^.*(facebook\\..*)$/i, \"$1\"), r = ((((\"; expires=\" + p) + \";path=/; domain=\") + q) + n), s = 0, t, u = (k.sessionStorage && a.sessionStorage), v = document.cookie.length, w = false, x = Date.now();\n    function y(ca) {\n        return ((((o + (s++)) + \"=\") + encodeURIComponent(ca)) + r);\n    };\n    function z() {\n        var ca = [], da = false, ea = 0, fa = 0;\n        this.isEmpty = function() {\n            return !ca.length;\n        };\n        this.enqueue = function(ga, ha) {\n            if (ha) {\n                ca.unshift(ga);\n            }\n             else ca.push(ga);\n        ;\n        };\n        this.dequeue = function() {\n            ca.shift();\n        };\n        this.peek = function() {\n            return ca[0];\n        };\n        this.clear = function(ga) {\n            v = Math.min(v, document.cookie.length);\n            if ((!w && (((new Date() - x) > 60000)))) {\n                w = true;\n            };\n            var ha = (!ga && ((document.cookie.search(l) >= 0))), ia = !!h.cookie_header_limit, ja = (h.cookie_count_limit || 19), ka = (h.cookie_header_limit || 3950), la = (ja - 5), ma = (ka - 1000);\n            while (!this.isEmpty()) {\n                var na = y(this.peek());\n                if ((ia && (((na.length > ka) || ((w && ((na.length + v) > ka))))))) {\n                    this.dequeue();\n                    continue;\n                }\n            ;\n                if ((((ha || ia)) && (((((document.cookie.length + na.length) > ka)) || ((document.cookie.split(\";\").length > ja)))))) {\n                    break;\n                };\n                document.cookie = na;\n                ha = true;\n                this.dequeue();\n            };\n            var oa = Date.now();\n            if ((ga || ((((!da && ha) && ((((fa > 0)) && (((Math.min((10 * Math.pow(2, (fa - 1))), 60000) + ea) < oa))))) && g.query(i.ONLOAD)) && (((!this.isEmpty() || ((document.cookie.length > ma))) || ((document.cookie.split(\";\").length > la))))))) {\n                var pa = new Image(), qa = this, ra = (h.tracking_domain || \"\");\n                da = true;\n                pa.onload = function ua() {\n                    da = false;\n                    fa = 0;\n                    qa.clear();\n                };\n                pa.onerror = pa.onabort = function ua() {\n                    da = false;\n                    ea = Date.now();\n                    fa++;\n                };\n                var sa = (h.fb_isb ? (\"&fb_isb=\" + h.fb_isb) : \"\"), ta = (\"&__user=\" + h.user);\n                pa.src = (((((((ra + \"/ajax/nectar.php?asyncSignal=\") + ((Math.floor((Math.random() * 10000)) + 1))) + sa) + ta) + \"&\") + ((!ga ? \"\" : \"s=\"))) + oa);\n            }\n        ;\n        };\n    };\n    t = new z();\n    if (u) {\n        var aa = function() {\n            var ca = 0, da = ca;\n            function ea() {\n                var ha = sessionStorage.getItem(\"_e_ids\");\n                if (ha) {\n                    var ia = ((ha + \"\")).split(\";\");\n                    if ((ia.length == 2)) {\n                        ca = parseInt(ia[0], 10);\n                        da = parseInt(ia[1], 10);\n                    }\n                ;\n                }\n            ;\n            };\n            function fa() {\n                var ha = ((ca + \";\") + da);\n                sessionStorage.setItem(\"_e_ids\", ha);\n            };\n            function ga(ha) {\n                return (\"_e_\" + ((((ha !== undefined)) ? ha : ca++)));\n            };\n            this.isEmpty = function() {\n                return (da === ca);\n            };\n            this.enqueue = function(ha, ia) {\n                var ja = (ia ? ga(--da) : ga());\n                sessionStorage.setItem(ja, ha);\n                fa();\n            };\n            this.dequeue = function() {\n                this.isEmpty();\n                sessionStorage.removeItem(ga(da));\n                da++;\n                fa();\n            };\n            this.peek = function() {\n                var ha = sessionStorage.getItem(ga(da));\n                return (ha ? ((ha + \"\")) : ha);\n            };\n            this.clear = t.clear;\n            ea();\n        };\n        t = new aa();\n    }\n;\n    var ba = {\n        log: function(ca, da, ea) {\n            if (h.no_cookies) {\n                return\n            };\n            var fa = [m,Date.now(),ca,].concat(da);\n            fa.push(fa.length);\n            function ga() {\n                var ha = JSON.stringify(fa);\n                try {\n                    t.enqueue(ha, !!ea);\n                    t.clear(!!ea);\n                } catch (ia) {\n                    if ((u && ((ia.code === 1000)))) {\n                        t = new z();\n                        u = false;\n                        ga();\n                    }\n                ;\n                };\n            };\n            ga();\n        },\n        getSessionID: function() {\n            return m;\n        }\n    };\n    e.exports = ba;\n    a.EagleEye = ba;\n}, 3);\n__d(\"AdblockDetectorLogging\", [\"AdblockDetector\",\"EagleEye\",], function(a, b, c, d, e, f) {\n    var g = b(\"AdblockDetector\"), h = b(\"EagleEye\");\n    function i(j) {\n        g.assertUnblocked(j, h.log.bind(h, \"ads\", {\n            event: \"ads_blocked\"\n        }));\n    };\n    f.assertUnblocked = i;\n});\n__d(\"EgoAdsObjectSet\", [\"copyProperties\",\"csx\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"csx\"), i = b(\"DOM\");\n    function j() {\n        this._allEgoUnits = [];\n        this._egoUnits = [];\n    };\n    g(j.prototype, {\n        init: function(l) {\n            this._allEgoUnits = l;\n            this._egoUnits = [];\n            this._allEgoUnits.forEach(function(m) {\n                var n = k(m);\n                if ((!n || !n.holdout)) {\n                    this._egoUnits.push(m);\n                };\n            }, this);\n        },\n        getCount: function() {\n            return this._egoUnits.length;\n        },\n        forEach: function(l, m) {\n            this._egoUnits.forEach(l, m);\n        },\n        getUnit: function(l) {\n            return this._egoUnits[l];\n        },\n        getHoldoutAdIDsForSpace: function(l, m) {\n            if ((!l || !m)) {\n                return []\n            };\n            var n = [];\n            for (var o = 0; ((l > 0) && (o < this._allEgoUnits.length)); o++) {\n                var p = this._allEgoUnits[o], q = m(p), r = k(p);\n                if ((((l >= q) && r) && r.holdout)) {\n                    n.push(r.adid);\n                };\n                l -= q;\n            };\n            return n;\n        },\n        getHoldoutAdIDsForNumAds: function(l) {\n            l = Math.min(l, this._allEgoUnits.length);\n            var m = [];\n            for (var n = 0; (n < l); n++) {\n                var o = this._allEgoUnits[n], p = k(o);\n                if ((p && p.holdout)) {\n                    m.push(p.adid);\n                };\n            };\n            return m;\n        }\n    });\n    function k(l) {\n        var m = i.scry(l, \"div._4u8\")[0], n = (m && m.getAttribute(\"data-ad\"));\n        return ((n && JSON.parse(n)) || undefined);\n    };\n    e.exports = j;\n});\n__d(\"EmuController\", [\"AsyncRequest\",\"DataStore\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"DataStore\"), i = b(\"URI\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\"), l = b(\"ge\"), m = b(\"goURI\");\n    function n(o, p) {\n        var q = l(o);\n        if (!q) {\n            return null\n        };\n        this.impression = p;\n        this.containerId = o;\n        h.set(q, \"emuController\", this);\n        return this;\n    };\n    j(n, {\n        fromContainer: function(o) {\n            var p = l(o);\n            if (!p) {\n                return null\n            };\n            return h.get(p, \"emuController\");\n        },\n        getEventClass: function(o) {\n            return (\"emuEvent\" + String(o).trim());\n        }\n    });\n    j(n.prototype, {\n        EVENT_HANDLER_PATH: \"/ajax/emu/end.php\",\n        CLICK: 1,\n        FAN: \"fad_fan\",\n        event: function(o, p, q, r) {\n            var s = {\n                eid: this.impression,\n                f: 0,\n                ui: this.containerId,\n                en: o,\n                a: 1\n            };\n            if (p) {\n                s.ed = JSON.stringify(p);\n            };\n            if (!r) {\n                r = k;\n            };\n            var t = new g().setURI(this.EVENT_HANDLER_PATH).setData(s).setErrorHandler(r);\n            if (q) {\n                t.setHandler(q);\n            };\n            t.send();\n        },\n        redirect: function() {\n            var o = {\n                eid: this.impression,\n                f: 0,\n                ui: this.containerId,\n                en: this.CLICK,\n                a: 0,\n                sig: (Math.floor((Math.random() * 65535)) + 65536)\n            }, p = new i(this.EVENT_HANDLER_PATH);\n            p.setQueryData(o);\n            m(p);\n        }\n    });\n    e.exports = n;\n});\n__d(\"legacy:ad-units-base-js\", [\"EmuController\",], function(a, b, c, d) {\n    a.EmuController = b(\"EmuController\");\n}, 3);\n__d(\"ChatConfig\", [\"ChatConfigInitialData\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatConfigInitialData\"), h = b(\"copyProperties\"), i = {\n    }, j = {\n        get: function(k, l) {\n            return ((k in i) ? i[k] : l);\n        },\n        set: function(k) {\n            if ((arguments.length > 1)) {\n                var l = {\n                };\n                l[k] = arguments[1];\n                k = l;\n            }\n        ;\n            h(i, k);\n        },\n        getDebugInfo: function() {\n            return i;\n        }\n    };\n    j.set(g);\n    e.exports = j;\n});\n__d(\"cancelAnimationFrame\", [], function(a, b, c, d, e, f) {\n    var g = (((((a.cancelAnimationFrame || a.webkitCancelAnimationFrame) || a.mozCancelAnimationFrame) || a.oCancelAnimationFrame) || a.msCancelAnimationFrame) || a.clearTimeout);\n    e.exports = g;\n});\n__d(\"XUISpinner.react\", [\"BrowserSupport\",\"ReactProps\",\"React\",\"cancelAnimationFrame\",\"cx\",\"joinClasses\",\"requestAnimationFrame\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BrowserSupport\"), h = b(\"ReactProps\"), i = b(\"React\"), j = b(\"cancelAnimationFrame\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = b(\"requestAnimationFrame\"), n = b(\"tx\"), o = g.hasCSSAnimations(), p = {\n        SMALL: 16,\n        LARGE: 32\n    }, q = {\n        SMALL: 2,\n        LARGE: 4\n    }, r = 5, s = 8, t = (r * s), u = 1200, v = (u / t), w = i.createClass({\n        displayName: \"XUISpinner\",\n        props: {\n            size: h.oneOf([\"small\",\"large\",]),\n            background: h.oneOf([\"light\",\"dark\",])\n        },\n        getDefaultProps: function() {\n            return {\n                size: \"small\",\n                background: \"light\"\n            };\n        },\n        getInitialState: function() {\n            if (!o) {\n                return {\n                    frame: 0,\n                    timer: Date.now()\n                }\n            };\n        },\n        componentDidMount: function() {\n            if (!o) {\n                this._step();\n            };\n        },\n        componentWillUnmount: function() {\n            (this._requestID && j(this._requestID));\n        },\n        _step: function() {\n            this._requestID = m(this._step);\n            var x = Date.now();\n            if (((x - v) > this.state.timer)) {\n                this.setState({\n                    frame: (((this.state.frame + 1)) % t),\n                    timer: x\n                });\n            };\n        },\n        _renderWithCSSAnimation: function(x) {\n            return this.transferPropsTo(i.DOM.span({\n                className: x\n            }, \"Loading...\"));\n        },\n        _renderWithJavaScriptAnimation: function(x) {\n            var y = Math.floor((this.state.frame / s)), z = (this.state.frame % s), aa = ((this.props.size == \"small\") ? p.SMALL : p.LARGE), ba = ((this.props.size == \"small\") ? q.SMALL : q.LARGE), ca = {\n                backgroundPosition: (((((\"-\" + ((((z * aa)) + ba))) + \"px \") + \"-\") + ((((y * aa)) + ba))) + \"px\")\n            }, da = l((\"_55yr\"), x);\n            return this.transferPropsTo(i.DOM.span({\n                className: da,\n                style: ca\n            }, \"Loading...\"));\n        },\n        render: function() {\n            var x = ((((((\"_55ym\") + (((this.props.size == \"small\") ? (\" \" + \"_55yn\") : \"\"))) + (((this.props.size == \"large\") ? (\" \" + \"_55yq\") : \"\"))) + (((this.props.background == \"light\") ? (\" \" + \"_55yo\") : \"\"))) + (((this.props.background == \"dark\") ? (\" \" + \"_55yp\") : \"\"))));\n            return (o ? this._renderWithCSSAnimation(x) : this._renderWithJavaScriptAnimation(x));\n        }\n    });\n    e.exports = w;\n});\n__d(\"ViewportBounds\", [\"Style\",\"Vector\",\"emptyFunction\",\"ge\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\"), h = b(\"Vector\"), i = b(\"emptyFunction\"), j = b(\"ge\"), k = b(\"removeFromArray\"), l = {\n        top: [],\n        right: [],\n        bottom: [],\n        left: []\n    };\n    function m(q) {\n        return function() {\n            var r = 0;\n            l[q].forEach(function(s) {\n                r = Math.max(r, s.getSize());\n            });\n            return r;\n        };\n    };\n    function n(q) {\n        return function(r) {\n            return new o(q, r);\n        };\n    };\n    function o(q, r) {\n        this.getSide = i.thatReturns(q);\n        this.getSize = function() {\n            return ((typeof r === \"function\") ? r() : r);\n        };\n        l[q].push(this);\n    };\n    o.prototype.remove = function() {\n        k(l[this.getSide()], this);\n    };\n    var p = {\n        getTop: m(\"top\"),\n        getRight: m(\"right\"),\n        getBottom: m(\"bottom\"),\n        getLeft: m(\"left\"),\n        getElementPosition: function(q) {\n            var r = h.getElementPosition(q);\n            r.y -= p.getTop();\n            return r;\n        },\n        addTop: n(\"top\"),\n        addRight: n(\"right\"),\n        addBottom: n(\"bottom\"),\n        addLeft: n(\"left\")\n    };\n    p.addTop(function() {\n        var q = j(\"blueBar\");\n        if ((q && g.isFixed(q))) {\n            return j(\"blueBarHolder\").offsetHeight\n        };\n        return 0;\n    });\n    e.exports = p;\n});\n__d(\"isAsyncScrollQuery\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\"), h = null;\n    function i() {\n        if ((h === null)) {\n            h = (((g.osx() >= 10.8) && (g.webkit() >= 536.25)) && !g.chrome());\n        };\n        return h;\n    };\n    e.exports = i;\n});\n__d(\"ScrollAwareDOM\", [\"ArbiterMixin\",\"CSS\",\"DOM\",\"DOMDimensions\",\"DOMPosition\",\"DOMQuery\",\"HTML\",\"Vector\",\"ViewportBounds\",\"copyProperties\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMDimensions\"), k = b(\"DOMPosition\"), l = b(\"DOMQuery\"), m = b(\"HTML\"), n = b(\"Vector\"), o = b(\"ViewportBounds\"), p = b(\"copyProperties\"), q = b(\"isAsyncScrollQuery\");\n    function r(w, x) {\n        return function() {\n            v.monitor(arguments[w], x.curry.apply(x, arguments));\n        };\n    };\n    function s(w) {\n        if (!((w instanceof Array))) {\n            w = [w,];\n        };\n        for (var x = 0; (x < w.length); x++) {\n            var y = m.replaceJSONWrapper(w[x]);\n            if ((y instanceof m)) {\n                return y.getRootNode();\n            }\n             else if (i.isNode(y)) {\n                return y\n            }\n        ;\n        };\n        return null;\n    };\n    function t(w) {\n        return (k.getElementPosition(w).y > o.getTop());\n    };\n    function u(w) {\n        var x = (k.getElementPosition(w).y + j.getElementDimensions(w).height), y = (j.getViewportDimensions().height - o.getBottom());\n        return (x >= y);\n    };\n    var v = p({\n        monitor: function(w, x) {\n            if (q()) {\n                return x()\n            };\n            var y = s(w);\n            if (y) {\n                var z = !!y.offsetParent;\n                if ((z && ((t(y) || u(y))))) {\n                    return x()\n                };\n                var aa = n.getDocumentDimensions(), ba = x();\n                if ((z || ((y.offsetParent && !t(y))))) {\n                    var ca = n.getDocumentDimensions().sub(aa), da = {\n                        delta: ca,\n                        target: y\n                    };\n                    if ((v.inform(\"scroll\", da) !== false)) {\n                        ca.scrollElementBy(l.getDocumentScrollElement());\n                    };\n                }\n            ;\n                return ba;\n            }\n             else return x()\n        ;\n        },\n        replace: function(w, x) {\n            var y = s(x);\n            if ((!y || h.hasClass(y, \"hidden_elem\"))) {\n                y = w;\n            };\n            return v.monitor(y, function() {\n                i.replace(w, x);\n            });\n        },\n        prependContent: r(1, i.prependContent),\n        insertAfter: r(1, i.insertAfter),\n        insertBefore: r(1, i.insertBefore),\n        setContent: r(0, i.setContent),\n        appendContent: r(1, i.appendContent),\n        remove: r(0, i.remove),\n        empty: r(0, i.empty)\n    }, g);\n    e.exports = v;\n});\n__d(\"legacy:ScrollAwareDOM\", [\"ScrollAwareDOM\",], function(a, b, c, d) {\n    a.ScrollAwareDOM = b(\"ScrollAwareDOM\");\n}, 3);\n__d(\"Base64\", [], function(a, b, c, d, e, f) {\n    var g = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n    function h(l) {\n        l = ((((l.charCodeAt(0) << 16)) | ((l.charCodeAt(1) << 8))) | l.charCodeAt(2));\n        return String.fromCharCode(g.charCodeAt((l >>> 18)), g.charCodeAt((((l >>> 12)) & 63)), g.charCodeAt((((l >>> 6)) & 63)), g.charCodeAt((l & 63)));\n    };\n    var i = ((\"\\u003E___?456789:;\\u003C=_______\" + \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\u0009\\u000a\\u000b\\u000c\\u000d\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\") + \"______\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123\");\n    function j(l) {\n        l = (((((i.charCodeAt((l.charCodeAt(0) - 43)) << 18)) | ((i.charCodeAt((l.charCodeAt(1) - 43)) << 12))) | ((i.charCodeAt((l.charCodeAt(2) - 43)) << 6))) | i.charCodeAt((l.charCodeAt(3) - 43)));\n        return String.fromCharCode((l >>> 16), (((l >>> 8)) & 255), (l & 255));\n    };\n    var k = {\n        encode: function(l) {\n            l = unescape(encodeURI(l));\n            var m = (((l.length + 2)) % 3);\n            l = ((l + \"\\u0000\\u0000\".slice(m))).replace(/[\\s\\S]{3}/g, h);\n            return (l.slice(0, ((l.length + m) - 2)) + \"==\".slice(m));\n        },\n        decode: function(l) {\n            l = l.replace(/[^A-Za-z0-9+\\/]/g, \"\");\n            var m = (((l.length + 3)) & 3);\n            l = ((l + \"AAA\".slice(m))).replace(/..../g, j);\n            l = l.slice(0, ((l.length + m) - 3));\n            try {\n                return decodeURIComponent(escape(l));\n            } catch (n) {\n                throw new Error(\"Not valid UTF-8\");\n            };\n        },\n        encodeObject: function(l) {\n            return k.encode(JSON.stringify(l));\n        },\n        decodeObject: function(l) {\n            return JSON.parse(k.decode(l));\n        },\n        encodeNums: function(l) {\n            return String.fromCharCode.apply(String, l.map(function(m) {\n                return g.charCodeAt(((((m | -((m > 63)))) & -((m > 0))) & 63));\n            }));\n        }\n    };\n    e.exports = k;\n});\n__d(\"legacy:base64\", [\"Base64\",], function(a, b, c, d) {\n    a.Base64 = b(\"Base64\");\n}, 3);\n__d(\"legacy:css\", [\"CSS\",], function(a, b, c, d) {\n    a.CSS = b(\"CSS\");\n}, 3);\n__d(\"legacy:dom\", [\"DOM\",], function(a, b, c, d) {\n    a.DOM = b(\"DOM\");\n}, 3);\n__d(\"FBDesktopDetect\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\"), h = \"facebook.desktopplugin\", i = {\n        mimeType: \"application/x-facebook-desktop-1\",\n        isPluginInstalled: function() {\n            if (g.osx()) {\n                return false\n            };\n            var j = null;\n            if (a.ActiveXObject) {\n                try {\n                    j = new a.ActiveXObject(h);\n                    if (j) {\n                        return true\n                    };\n                } catch (k) {\n                \n                };\n            }\n             else if ((a.navigator && a.navigator.plugins)) {\n                a.navigator.plugins.refresh(false);\n                for (var l = 0, m = a.navigator.plugins.length; (l < m); l++) {\n                    j = a.navigator.plugins[l];\n                    if ((j.length && (j[0].type === this.mimeType))) {\n                        return true\n                    };\n                };\n            }\n            \n        ;\n            return false;\n        }\n    };\n    e.exports = i;\n});\n__d(\"NavigationMessage\", [], function(a, b, c, d, e, f) {\n    var g = {\n        NAVIGATION_BEGIN: \"NavigationMessage/navigationBegin\",\n        NAVIGATION_SELECT: \"NavigationMessage/navigationSelect\",\n        NAVIGATION_FIRST_RESPONSE: \"NavigationMessage/navigationFirstResponse\",\n        NAVIGATION_COMPLETED: \"NavigationMessage/navigationCompleted\",\n        NAVIGATION_FAILED: \"NavigationMessage/navigationFailed\",\n        NAVIGATION_COUNT_UPDATE: \"NavigationMessage/navigationCount\",\n        NAVIGATION_FAVORITE_UPDATE: \"NavigationMessage/navigationFavoriteUpdate\",\n        NAVIGATION_ITEM_REMOVED: \"NavigationMessage/navigationItemRemoved\",\n        NAVIGATION_ITEM_HIDDEN: \"NavigationMessage/navigationItemHidden\",\n        INTERNAL_LOADING_BEGIN: \"NavigationMessage/internalLoadingBegin\",\n        INTERNAL_LOADING_COMPLETED: \"NavigationMessage/internalLoadingCompleted\"\n    };\n    e.exports = g;\n});\n__d(\"SimpleDrag\", [\"Event\",\"ArbiterMixin\",\"UserAgent\",\"Vector\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"UserAgent\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n    function m(n) {\n        this.minDragDistance = 0;\n        g.listen(n, \"mousedown\", this._start.bind(this));\n    };\n    k(m.prototype, h, {\n        setMinDragDistance: function(n) {\n            this.minDragDistance = n;\n        },\n        _start: function(event) {\n            var n = false, o = true, p = null;\n            if (this.inform(\"mousedown\", event)) {\n                o = false;\n            };\n            if (this.minDragDistance) {\n                p = j.getEventPosition(event);\n            }\n             else {\n                n = true;\n                var q = this.inform(\"start\", event);\n                if ((q === true)) {\n                    o = false;\n                }\n                 else if ((q === false)) {\n                    n = false;\n                    return;\n                }\n                \n            ;\n            }\n        ;\n            var r = ((i.ie() < 9) ? document.documentElement : window), s = g.listen(r, {\n                selectstart: (o ? g.prevent : l),\n                mousemove: function(event) {\n                    if (!n) {\n                        var t = j.getEventPosition(event);\n                        if ((p.distanceTo(t) < this.minDragDistance)) {\n                            return\n                        };\n                        n = true;\n                        if ((this.inform(\"start\", event) === false)) {\n                            n = false;\n                            return;\n                        }\n                    ;\n                    }\n                ;\n                    this.inform(\"update\", event);\n                }.bind(this),\n                mouseup: function(event) {\n                    for (var t in s) {\n                        s[t].remove();;\n                    };\n                    if (n) {\n                        this.inform(\"end\", event);\n                    }\n                     else this.inform(\"click\", event);\n                ;\n                }.bind(this)\n            });\n            (o && event.prevent());\n        }\n    });\n    e.exports = m;\n});\n__d(\"legacy:async-signal\", [\"AsyncSignal\",], function(a, b, c, d) {\n    a.AsyncSignal = b(\"AsyncSignal\");\n}, 3);\n__d(\"FlipDirectionOnKeypress\", [\"Event\",\"DOM\",\"Input\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"Input\"), j = b(\"Style\");\n    function k(event) {\n        var l = event.getTarget(), m = (h.isNodeOfType(l, \"input\") && ((l.type == \"text\"))), n = h.isNodeOfType(l, \"textarea\");\n        if ((!((m || n)) || l.getAttribute(\"data-prevent-auto-flip\"))) {\n            return\n        };\n        var o = i.getValue(l), p = ((l.style && l.style.direction));\n        if (!p) {\n            var q = 0, r = true;\n            for (var s = 0; (s < o.length); s++) {\n                var t = o.charCodeAt(s);\n                if ((t >= 48)) {\n                    if (r) {\n                        r = false;\n                        q++;\n                    }\n                ;\n                    if (((t >= 1470) && (t <= 1920))) {\n                        j.set(l, \"direction\", \"rtl\");\n                        return;\n                    }\n                ;\n                    if ((q == 5)) {\n                        j.set(l, \"direction\", \"ltr\");\n                        return;\n                    }\n                ;\n                }\n                 else r = true;\n            ;\n            };\n        }\n         else if ((o.length === 0)) {\n            j.set(l, \"direction\", \"\");\n        }\n    ;\n    };\n    g.listen(document.documentElement, {\n        keyup: k,\n        input: k\n    });\n});\n__d(\"PlaceholderOnsubmitFormListener\", [\"Event\",\"Input\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Input\");\n    g.listen(document.documentElement, \"submit\", function(i) {\n        var j = i.getTarget().getElementsByTagName(\"*\");\n        for (var k = 0; (k < j.length); k++) {\n            if ((j[k].getAttribute(\"placeholder\") && h.isEmpty(j[k]))) {\n                h.setValue(j[k], \"\");\n            };\n        };\n    });\n});\n__d(\"ARIA\", [\"DOM\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"emptyFunction\"), i = b(\"ge\"), j, k, l = function() {\n        j = i(\"ariaAssertiveAlert\");\n        if (!j) {\n            j = g.create(\"div\", {\n                id: \"ariaAssertiveAlert\",\n                className: \"accessible_elem\",\n                \"aria-live\": \"assertive\"\n            });\n            g.appendContent(document.body, j);\n        }\n    ;\n        k = i(\"ariaPoliteAlert\");\n        if (!k) {\n            k = j.cloneNode(false);\n            k.setAttribute(\"id\", \"ariaPoliteAlert\");\n            k.setAttribute(\"aria-live\", \"polite\");\n            g.appendContent(document.body, k);\n        }\n    ;\n        l = h;\n    };\n    function m(o, p) {\n        l();\n        var q = (p ? j : k);\n        g.setContent(q, o);\n    };\n    var n = {\n        owns: function(o, p) {\n            o.setAttribute(\"aria-owns\", g.getID(p));\n        },\n        setPopup: function(o, p) {\n            var q = g.getID(p);\n            o.setAttribute(\"aria-owns\", q);\n            o.setAttribute(\"aria-haspopup\", \"true\");\n            if ((o.tabIndex == -1)) {\n                o.tabIndex = 0;\n            };\n        },\n        announce: function(o) {\n            m(o, true);\n        },\n        notify: function(o) {\n            m(o);\n        }\n    };\n    e.exports = n;\n});\n__d(\"ScriptPathState\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h, i, j, k, l = 100, m = {\n        setIsUIPageletRequest: function(n) {\n            j = n;\n        },\n        setUserURISampleRate: function(n) {\n            k = n;\n        },\n        reset: function() {\n            h = null;\n            i = false;\n            j = false;\n        },\n        _shouldUpdateScriptPath: function() {\n            return ((i && !j));\n        },\n        _shouldSendURI: function() {\n            return ((Math.random() < k));\n        },\n        getParams: function() {\n            var n = {\n            };\n            if (m._shouldUpdateScriptPath()) {\n                if ((m._shouldSendURI() && (h !== null))) {\n                    n.user_uri = h.substring(0, l);\n                };\n            }\n             else n.no_script_path = 1;\n        ;\n            return n;\n        }\n    };\n    g.subscribe(\"pre_page_transition\", function(n, o) {\n        i = true;\n        h = o.to.getUnqualifiedURI().toString();\n    });\n    e.exports = a.ScriptPathState = m;\n});\n__d(\"goOrReplace\", [\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = b(\"UserAgent\");\n    function i(j, k, l) {\n        var m = new g(k), n = a.Quickling;\n        if ((((((j.pathname == \"/\") && (m.getPath() != \"/\")) && n) && n.isActive()) && n.isPageActive(m))) {\n            var o = (j.search ? {\n            } : {\n                q: \"\"\n            });\n            m = new g().setPath(\"/\").setQueryData(o).setFragment(m.getUnqualifiedURI().toString());\n            k = m.toString();\n        }\n    ;\n        if ((l && !((h.ie() < 8)))) {\n            j.replace(k);\n        }\n         else if ((j.href == k)) {\n            j.reload();\n        }\n         else j.href = k;\n        \n    ;\n    };\n    e.exports = i;\n});\n__d(\"AjaxPipeRequest\", [\"Arbiter\",\"AsyncRequest\",\"BigPipe\",\"CSS\",\"DOM\",\"Env\",\"PageletSet\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"goOrReplace\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"BigPipe\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"PageletSet\"), n = b(\"ScriptPathState\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"goOrReplace\"), r = b(\"ge\"), s;\n    function t(w, x) {\n        var y = r(w);\n        if (!y) {\n            return\n        };\n        if (!x) {\n            y.style.minHeight = \"600px\";\n        };\n        var z = m.getPageletIDs();\n        for (var aa = 0; (aa < z.length); aa++) {\n            var ba = z[aa];\n            if (k.contains(y, ba)) {\n                m.removePagelet(ba);\n            };\n        };\n        k.empty(y);\n    };\n    function u(w, x) {\n        var y = r(w);\n        if ((y && !x)) {\n            y.style.minHeight = \"100px\";\n        };\n    };\n    function v(w, x) {\n        this._uri = w;\n        this._query_data = x;\n        this._request = new h();\n        this._canvas_id = null;\n        this._allow_cross_page_transition = true;\n    };\n    p(v.prototype, {\n        setCanvasId: function(w) {\n            this._canvas_id = w;\n            return this;\n        },\n        setURI: function(w) {\n            this._uri = w;\n            return this;\n        },\n        setData: function(w) {\n            this._query_data = w;\n            return this;\n        },\n        getData: function(w) {\n            return this._query_data;\n        },\n        setAllowCrossPageTransition: function(w) {\n            this._allow_cross_page_transition = w;\n            return this;\n        },\n        setAppend: function(w) {\n            this._append = w;\n            return this;\n        },\n        send: function() {\n            var w = {\n                ajaxpipe: 1,\n                ajaxpipe_token: l.ajaxpipe_token\n            };\n            p(w, n.getParams());\n            n.reset();\n            this._request.setOption(\"useIframeTransport\", true).setURI(this._uri).setData(p(w, this._query_data)).setPreBootloadHandler(this._preBootloadHandler.bind(this)).setInitialHandler(this._onInitialResponse.bind(this)).setHandler(this._onResponse.bind(this)).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._allow_cross_page_transition);\n            if (this._automatic) {\n                this._relevantRequest = s;\n            }\n             else s = this._request;\n        ;\n            this._request.send();\n            return this;\n        },\n        _preBootloadFirstResponse: function(w) {\n            return false;\n        },\n        _fireDomContentCallback: function() {\n            this._arbiter.inform(\"ajaxpipe/domcontent_callback\", true, g.BEHAVIOR_STATE);\n        },\n        _fireOnloadCallback: function() {\n            this._arbiter.inform(\"ajaxpipe/onload_callback\", true, g.BEHAVIOR_STATE);\n        },\n        _isRelevant: function(w) {\n            return (((this._request == s) || ((this._automatic && (this._relevantRequest == s)))) || this._jsNonBlock);\n        },\n        _preBootloadHandler: function(w) {\n            var x = w.getPayload();\n            if (((!x || x.redirect) || !this._isRelevant(w))) {\n                return false\n            };\n            var y = false;\n            if (w.is_first) {\n                ((!this._append && !this._displayCallback) && t(this._canvas_id, this._constHeight));\n                this._arbiter = new g();\n                y = this._preBootloadFirstResponse(w);\n                this.pipe = new i({\n                    arbiter: this._arbiter,\n                    rootNodeID: this._canvas_id,\n                    lid: this._request.lid,\n                    isAjax: true,\n                    domContentCallback: this._fireDomContentCallback.bind(this),\n                    onloadCallback: this._fireOnloadCallback.bind(this),\n                    domContentEvt: \"ajaxpipe/domcontent_callback\",\n                    onloadEvt: \"ajaxpipe/onload_callback\",\n                    jsNonBlock: this._jsNonBlock,\n                    automatic: this._automatic,\n                    displayCallback: this._displayCallback\n                });\n            }\n        ;\n            return y;\n        },\n        _redirect: function(w) {\n            if (w.redirect) {\n                if ((w.force || !this.isPageActive(w.redirect))) {\n                    var x = [\"ajaxpipe\",\"ajaxpipe_token\",].concat(this.getSanitizedParameters());\n                    q(window.location, o(w.redirect).removeQueryData(x), true);\n                }\n                 else {\n                    var y = a.PageTransitions;\n                    y.go(w.redirect, true);\n                }\n            ;\n                return true;\n            }\n             else return false\n        ;\n        },\n        isPageActive: function(w) {\n            return true;\n        },\n        getSanitizedParameters: function() {\n            return [];\n        },\n        _versionCheck: function(w) {\n            return true;\n        },\n        _onInitialResponse: function(w) {\n            var x = w.getPayload();\n            if (!this._isRelevant(w)) {\n                return false\n            };\n            if (!x) {\n                return true\n            };\n            if ((this._redirect(x) || !this._versionCheck(x))) {\n                return false\n            };\n            return true;\n        },\n        _processFirstResponse: function(w) {\n            var x = w.getPayload();\n            if ((r(this._canvas_id) && (x.canvas_class != null))) {\n                j.setClass(this._canvas_id, x.canvas_class);\n            };\n        },\n        setFirstResponseCallback: function(w) {\n            this._firstResponseCallback = w;\n            return this;\n        },\n        setFirstResponseHandler: function(w) {\n            this._processFirstResponse = w;\n            return this;\n        },\n        _onResponse: function(w) {\n            var x = w.payload;\n            if (!this._isRelevant(w)) {\n                return h.suppressOnloadToken\n            };\n            if (w.is_first) {\n                this._processFirstResponse(w);\n                (this._firstResponseCallback && this._firstResponseCallback());\n                x.provides = (x.provides || []);\n                x.provides.push(\"uipage_onload\");\n                if (this._append) {\n                    x.append = this._canvas_id;\n                };\n            }\n        ;\n            if (x) {\n                if ((((\"content\" in x.content) && (this._canvas_id !== null)) && (this._canvas_id != \"content\"))) {\n                    x.content[this._canvas_id] = x.content.content;\n                    delete x.content.content;\n                }\n            ;\n                this.pipe.onPageletArrive(x);\n            }\n        ;\n            if (w.is_last) {\n                u(this._canvas_id, this._constHeight);\n            };\n            return h.suppressOnloadToken;\n        },\n        setNectarModuleDataSafe: function(w) {\n            this._request.setNectarModuleDataSafe(w);\n            return this;\n        },\n        setFinallyHandler: function(w) {\n            this._request.setFinallyHandler(w);\n            return this;\n        },\n        setErrorHandler: function(w) {\n            this._request.setErrorHandler(w);\n            return this;\n        },\n        abort: function() {\n            this._request.abort();\n            if ((s == this._request)) {\n                s = null;\n            };\n            this._request = null;\n            return this;\n        },\n        setJSNonBlock: function(w) {\n            this._jsNonBlock = w;\n            return this;\n        },\n        setAutomatic: function(w) {\n            this._automatic = w;\n            return this;\n        },\n        setDisplayCallback: function(w) {\n            this._displayCallback = w;\n            return this;\n        },\n        setConstHeight: function(w) {\n            this._constHeight = w;\n            return this;\n        },\n        getAsyncRequest: function() {\n            return this._request;\n        }\n    });\n    p(v, {\n        getCurrentRequest: function() {\n            return s;\n        },\n        setCurrentRequest: function(w) {\n            s = w;\n        }\n    });\n    e.exports = v;\n});\n__d(\"AsyncRequestNectarLogging\", [\"AsyncRequest\",\"Nectar\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Nectar\"), i = b(\"copyProperties\");\n    i(g.prototype, {\n        setNectarModuleData: function(j) {\n            if ((this.method == \"POST\")) {\n                h.addModuleData(this.data, j);\n            };\n        },\n        setNectarImpressionId: function() {\n            if ((this.method == \"POST\")) {\n                h.addImpressionID(this.data);\n            };\n        }\n    });\n});\n__d(\"CSSClassTransition\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = [];\n    function i() {\n    \n    };\n    g(i, {\n        go: function(j, k, l, m) {\n            var n;\n            for (var o = 0; (o < h.length); o++) {\n                if ((h[o](j, k, l, m) === true)) {\n                    n = true;\n                };\n            };\n            if (!n) {\n                j.className = k;\n            };\n        },\n        registerHandler: function(j) {\n            h.push(j);\n            return {\n                remove: function() {\n                    var k = h.indexOf(j);\n                    if ((k >= 0)) {\n                        h.splice(k, 1);\n                    };\n                }\n            };\n        }\n    });\n    e.exports = i;\n});\n__d(\"DOMScroll\", [\"Animation\",\"Arbiter\",\"DOM\",\"DOMQuery\",\"Vector\",\"ViewportBounds\",\"ge\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"Vector\"), l = b(\"ViewportBounds\"), m = b(\"ge\"), n = b(\"isAsyncScrollQuery\"), o = {\n        SCROLL: \"dom-scroll\",\n        getScrollState: function() {\n            var p = k.getViewportDimensions(), q = k.getDocumentDimensions(), r = ((q.x > p.x)), s = ((q.y > p.y));\n            r += 0;\n            s += 0;\n            return new k(r, s);\n        },\n        _scrollbarSize: null,\n        _initScrollbarSize: function() {\n            var p = i.create(\"p\");\n            p.style.width = \"100%\";\n            p.style.height = \"200px\";\n            var q = i.create(\"div\");\n            q.style.position = \"absolute\";\n            q.style.top = \"0px\";\n            q.style.left = \"0px\";\n            q.style.visibility = \"hidden\";\n            q.style.width = \"200px\";\n            q.style.height = \"150px\";\n            q.style.overflow = \"hidden\";\n            q.appendChild(p);\n            document.body.appendChild(q);\n            var r = p.offsetWidth;\n            q.style.overflow = \"scroll\";\n            var s = p.offsetWidth;\n            if ((r == s)) {\n                s = q.clientWidth;\n            };\n            document.body.removeChild(q);\n            o._scrollbarSize = (r - s);\n        },\n        getScrollbarSize: function() {\n            if ((o._scrollbarSize === null)) {\n                o._initScrollbarSize();\n            };\n            return o._scrollbarSize;\n        },\n        scrollTo: function(p, q, r, s, t) {\n            if (((typeof q == \"undefined\") || (q === true))) {\n                q = 750;\n            };\n            if (n()) {\n                q = false;\n            };\n            if (!((p instanceof k))) {\n                var u = k.getScrollPosition().x, v = k.getElementPosition(m(p)).y;\n                p = new k(u, v, \"document\");\n                if (!s) {\n                    p.y -= (l.getTop() / ((r ? 2 : 1)));\n                };\n            }\n        ;\n            if (r) {\n                p.y -= (k.getViewportDimensions().y / 2);\n            }\n             else if (s) {\n                p.y -= k.getViewportDimensions().y;\n                p.y += s;\n            }\n            \n        ;\n            p = p.convertTo(\"document\");\n            if (q) {\n                return new g(document.body).to(\"scrollTop\", p.y).to(\"scrollLeft\", p.x).ease(g.ease.end).duration(q).ondone(t).go();\n            }\n             else if (window.scrollTo) {\n                window.scrollTo(p.x, p.y);\n                (t && t());\n            }\n            \n        ;\n            h.inform(o.SCROLL);\n        },\n        ensureVisible: function(p, q, r, s, t) {\n            if ((r === undefined)) {\n                r = 10;\n            };\n            p = m(p);\n            if (q) {\n                p = j.find(p, q);\n            };\n            var u = k.getScrollPosition().x, v = k.getScrollPosition().y, w = (v + k.getViewportDimensions().y), x = k.getElementPosition(p).y, y = (x + k.getElementDimensions(p).y);\n            x -= l.getTop();\n            x -= r;\n            y += r;\n            if ((x < v)) {\n                o.scrollTo(new k(u, x, \"document\"), s, false, false, t);\n            }\n             else if ((y > w)) {\n                if (((x - ((y - w))) < v)) {\n                    o.scrollTo(new k(u, x, \"document\"), s, false, false, t);\n                }\n                 else o.scrollTo(new k(u, y, \"document\"), s, false, true, t);\n            \n            }\n        ;\n        },\n        scrollToTop: function(p) {\n            var q = k.getScrollPosition();\n            o.scrollTo(new k(q.x, 0, \"document\"), (p !== false));\n        }\n    };\n    e.exports = o;\n});\n__d(\"Button\", [\"CSS\",\"DataStore\",\"DOM\",\"Event\",\"Parent\",\"cx\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"Parent\"), l = b(\"cx\"), m = b(\"emptyFunction\"), n = \"uiButtonDisabled\", o = \"uiButtonDepressed\", p = \"_42fr\", q = \"_42fs\", r = \"button:blocker\", s = \"href\", t = \"ajaxify\";\n    function u(aa, ba) {\n        var ca = h.get(aa, r);\n        if (ba) {\n            if (ca) {\n                ca.remove();\n                h.remove(aa, r);\n            }\n        ;\n        }\n         else if (!ca) {\n            h.set(aa, r, j.listen(aa, \"click\", m.thatReturnsFalse, j.Priority.URGENT));\n        }\n    ;\n    };\n    function v(aa) {\n        var ba = (k.byClass(aa, \"uiButton\") || k.byClass(aa, \"_42ft\"));\n        if (!ba) {\n            throw new Error(\"invalid use case\")\n        };\n        return ba;\n    };\n    function w(aa) {\n        return i.isNodeOfType(aa, \"a\");\n    };\n    function x(aa) {\n        return i.isNodeOfType(aa, \"button\");\n    };\n    function y(aa) {\n        return g.hasClass(aa, \"_42ft\");\n    };\n    var z = {\n        getInputElement: function(aa) {\n            aa = v(aa);\n            if (w(aa)) {\n                throw new Error(\"invalid use case\")\n            };\n            return (x(aa) ? aa : i.find(aa, \"input\"));\n        },\n        isEnabled: function(aa) {\n            return !((g.hasClass(v(aa), n) || g.hasClass(v(aa), p)));\n        },\n        setEnabled: function(aa, ba) {\n            aa = v(aa);\n            var ca = (y(aa) ? p : n);\n            g.conditionClass(aa, ca, !ba);\n            if (w(aa)) {\n                var da = aa.getAttribute(\"href\"), ea = aa.getAttribute(\"ajaxify\"), fa = h.get(aa, s, \"#\"), ga = h.get(aa, t);\n                if (ba) {\n                    if (!da) {\n                        aa.setAttribute(\"href\", fa);\n                    };\n                    if ((!ea && ga)) {\n                        aa.setAttribute(\"ajaxify\", ga);\n                    };\n                    aa.removeAttribute(\"tabIndex\");\n                }\n                 else {\n                    if ((da && (da !== fa))) {\n                        h.set(aa, s, da);\n                    };\n                    if ((ea && (ea !== ga))) {\n                        h.set(aa, t, ea);\n                    };\n                    aa.removeAttribute(\"href\");\n                    aa.removeAttribute(\"ajaxify\");\n                    aa.setAttribute(\"tabIndex\", \"-1\");\n                }\n            ;\n                u(aa, ba);\n            }\n             else {\n                var ha = z.getInputElement(aa);\n                ha.disabled = !ba;\n                u(ha, ba);\n            }\n        ;\n        },\n        setDepressed: function(aa, ba) {\n            aa = v(aa);\n            var ca = (y(aa) ? q : o);\n            g.conditionClass(aa, ca, ba);\n        },\n        isDepressed: function(aa) {\n            aa = v(aa);\n            var ba = (y(aa) ? q : o);\n            return g.hasClass(aa, ba);\n        },\n        setLabel: function(aa, ba) {\n            aa = v(aa);\n            if (y(aa)) {\n                var ca = [];\n                if (ba) {\n                    ca.push(ba);\n                };\n                var da = i.scry(aa, \".img\")[0];\n                if (da) {\n                    if ((aa.firstChild == da)) {\n                        ca.unshift(da);\n                    }\n                     else ca.push(da);\n                \n                };\n                i.setContent(aa, ca);\n            }\n             else if (w(aa)) {\n                var ea = i.find(aa, \"span.uiButtonText\");\n                i.setContent(ea, ba);\n            }\n             else z.getInputElement(aa).value = ba;\n            \n        ;\n            var fa = (y(aa) ? \"_42fv\" : \"uiButtonNoText\");\n            g.conditionClass(aa, fa, !ba);\n        },\n        setIcon: function(aa, ba) {\n            if ((ba && !i.isNode(ba))) {\n                return\n            };\n            aa = v(aa);\n            var ca = i.scry(aa, \".img\")[0];\n            if (!ba) {\n                (ca && i.remove(ca));\n                return;\n            }\n        ;\n            g.addClass(ba, \"customimg\");\n            if ((ca != ba)) {\n                if (ca) {\n                    i.replace(ca, ba);\n                }\n                 else i.prependContent(aa, ba);\n            \n            };\n        }\n    };\n    e.exports = z;\n});\n__d(\"Form\", [\"Event\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"DOMPosition\",\"DOMQuery\",\"DataStore\",\"Env\",\"Input\",\"Parent\",\"URI\",\"createArrayFrom\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMPosition\"), m = b(\"DOMQuery\"), n = b(\"DataStore\"), o = b(\"Env\"), p = b(\"Input\"), q = b(\"Parent\"), r = b(\"URI\"), s = b(\"createArrayFrom\"), t = b(\"trackReferrer\"), u = (\"FileList\" in window), v = (\"FormData\" in window);\n    function w(y) {\n        var z = {\n        };\n        r.implodeQuery(y).split(\"&\").forEach(function(aa) {\n            if (aa) {\n                var ba = /^([^=]*)(?:=(.*))?$/.exec(aa), ca = r.decodeComponent(ba[1]), da = (ba[2] ? r.decodeComponent(ba[2]) : null);\n                z[ca] = da;\n            }\n        ;\n        });\n        return z;\n    };\n    var x = {\n        getInputs: function(y) {\n            y = (y || document);\n            return [].concat(s(m.scry(y, \"input\")), s(m.scry(y, \"select\")), s(m.scry(y, \"textarea\")), s(m.scry(y, \"button\")));\n        },\n        getInputsByName: function(y) {\n            var z = {\n            };\n            x.getInputs(y).forEach(function(aa) {\n                var ba = z[aa.name];\n                z[aa.name] = ((typeof ba === \"undefined\") ? aa : [aa,].concat(ba));\n            });\n            return z;\n        },\n        getSelectValue: function(y) {\n            return y.options[y.selectedIndex].value;\n        },\n        setSelectValue: function(y, z) {\n            for (var aa = 0; (aa < y.options.length); ++aa) {\n                if ((y.options[aa].value == z)) {\n                    y.selectedIndex = aa;\n                    break;\n                }\n            ;\n            };\n        },\n        getRadioValue: function(y) {\n            for (var z = 0; (z < y.length); z++) {\n                if (y[z].checked) {\n                    return y[z].value\n                };\n            };\n            return null;\n        },\n        getElements: function(y) {\n            return s(((y.tagName == \"FORM\") ? y.elements : x.getInputs(y)));\n        },\n        getAttribute: function(y, z) {\n            return (((y.getAttributeNode(z) || {\n            })).value || null);\n        },\n        setDisabled: function(y, z) {\n            x.getElements(y).forEach(function(aa) {\n                if ((aa.disabled !== undefined)) {\n                    var ba = n.get(aa, \"origDisabledState\");\n                    if (z) {\n                        if ((ba === undefined)) {\n                            n.set(aa, \"origDisabledState\", aa.disabled);\n                        };\n                        aa.disabled = z;\n                    }\n                     else if ((ba !== true)) {\n                        aa.disabled = false;\n                    }\n                ;\n                }\n            ;\n            });\n        },\n        bootstrap: function(y, z) {\n            var aa = ((x.getAttribute(y, \"method\") || \"GET\")).toUpperCase();\n            z = (q.byTag(z, \"button\") || z);\n            var ba = (q.byClass(z, \"stat_elem\") || y);\n            if (j.hasClass(ba, \"async_saving\")) {\n                return\n            };\n            if ((z && ((((z.form !== y) || (((z.nodeName != \"INPUT\") && (z.nodeName != \"BUTTON\")))) || (z.type != \"submit\"))))) {\n                var ca = m.scry(y, \".enter_submit_target\")[0];\n                (ca && (z = ca));\n            }\n        ;\n            var da = x.serialize(y, z);\n            x.setDisabled(y, true);\n            var ea = (x.getAttribute(y, \"ajaxify\") || x.getAttribute(y, \"action\"));\n            t(y, ea);\n            var fa = new h(ea);\n            fa.setData(da).setNectarModuleDataSafe(y).setReadOnly((aa == \"GET\")).setMethod(aa).setRelativeTo(y).setStatusElement(ba).setInitialHandler(x.setDisabled.curry(y, false)).setHandler(function(ga) {\n                g.fire(y, \"success\", {\n                    response: ga\n                });\n            }).setErrorHandler(function(ga) {\n                if ((g.fire(y, \"error\", {\n                    response: ga\n                }) !== false)) {\n                    i.defaultErrorHandler(ga);\n                };\n            }).setFinallyHandler(x.setDisabled.curry(y, false)).send();\n        },\n        forEachValue: function(y, z, aa) {\n            x.getElements(y).forEach(function(ba) {\n                if (((ba.name && !ba.disabled) && (ba.type !== \"submit\"))) {\n                    if ((((((!ba.type || (((((ba.type === \"radio\") || (ba.type === \"checkbox\"))) && ba.checked))) || (ba.type === \"text\")) || (ba.type === \"password\")) || (ba.type === \"hidden\")) || (ba.nodeName === \"TEXTAREA\"))) {\n                        aa(ba.type, ba.name, p.getValue(ba));\n                    }\n                     else if ((ba.nodeName === \"SELECT\")) {\n                        for (var ca = 0, da = ba.options.length; (ca < da); ca++) {\n                            var ea = ba.options[ca];\n                            if (ea.selected) {\n                                aa(\"select\", ba.name, ea.value);\n                            };\n                        };\n                    }\n                     else if ((u && (ba.type === \"file\"))) {\n                        var fa = ba.files;\n                        for (var ga = 0; (ga < fa.length); ga++) {\n                            aa(\"file\", ba.name, fa.item(ga));;\n                        };\n                    }\n                    \n                    \n                \n                };\n            });\n            if (((((z && z.name) && (z.type === \"submit\")) && m.contains(y, z)) && m.isNodeOfType(z, [\"input\",\"button\",]))) {\n                aa(\"submit\", z.name, z.value);\n            };\n        },\n        createFormData: function(y, z) {\n            if (!v) {\n                return null\n            };\n            var aa = new FormData();\n            if (y) {\n                if (m.isNode(y)) {\n                    x.forEachValue(y, z, function(da, ea, fa) {\n                        aa.append(ea, fa);\n                    });\n                }\n                 else {\n                    var ba = w(y);\n                    for (var ca in ba) {\n                        aa.append(ca, ba[ca]);;\n                    };\n                }\n            \n            };\n            return aa;\n        },\n        serialize: function(y, z) {\n            var aa = {\n            };\n            x.forEachValue(y, z, function(ba, ca, da) {\n                if ((ba === \"file\")) {\n                    return\n                };\n                x._serializeHelper(aa, ca, da);\n            });\n            return x._serializeFix(aa);\n        },\n        _serializeHelper: function(y, z, aa) {\n            var ba = Object.prototype.hasOwnProperty, ca = /([^\\]]+)\\[([^\\]]*)\\](.*)/.exec(z);\n            if (ca) {\n                if ((!y[ca[1]] || !ba.call(y, ca[1]))) {\n                    var da;\n                    y[ca[1]] = da = {\n                    };\n                    if ((y[ca[1]] !== da)) {\n                        return\n                    };\n                }\n            ;\n                var ea = 0;\n                if ((ca[2] === \"\")) {\n                    while ((y[ca[1]][ea] !== undefined)) {\n                        ea++;;\n                    };\n                }\n                 else ea = ca[2];\n            ;\n                if ((ca[3] === \"\")) {\n                    y[ca[1]][ea] = aa;\n                }\n                 else x._serializeHelper(y[ca[1]], ea.concat(ca[3]), aa);\n            ;\n            }\n             else y[z] = aa;\n        ;\n        },\n        _serializeFix: function(y) {\n            for (var z in y) {\n                if ((y[z] instanceof Object)) {\n                    y[z] = x._serializeFix(y[z]);\n                };\n            };\n            var aa = Object.keys(y);\n            if (((aa.length === 0) || aa.some(isNaN))) {\n                return y\n            };\n            aa.sort(function(da, ea) {\n                return (da - ea);\n            });\n            var ba = 0, ca = aa.every(function(da) {\n                return (+da === ba++);\n            });\n            if (ca) {\n                return aa.map(function(da) {\n                    return y[da];\n                })\n            };\n            return y;\n        },\n        post: function(y, z, aa) {\n            var ba = document.createElement(\"form\");\n            ba.action = y.toString();\n            ba.method = \"POST\";\n            ba.style.display = \"none\";\n            if (aa) {\n                ba.target = aa;\n            };\n            z.fb_dtsg = o.fb_dtsg;\n            x.createHiddenInputs(z, ba);\n            m.getRootElement().appendChild(ba);\n            ba.submit();\n            return false;\n        },\n        createHiddenInputs: function(y, z, aa, ba) {\n            aa = (aa || {\n            });\n            var ca = w(y);\n            for (var da in ca) {\n                if ((ca[da] === null)) {\n                    continue;\n                };\n                if ((aa[da] && ba)) {\n                    aa[da].value = ca[da];\n                }\n                 else {\n                    var ea = k.create(\"input\", {\n                        type: \"hidden\",\n                        name: da,\n                        value: ca[da]\n                    });\n                    aa[da] = ea;\n                    z.appendChild(ea);\n                }\n            ;\n            };\n            return aa;\n        },\n        getFirstElement: function(y, z) {\n            z = (z || [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",\"input[type=\\\"button\\\"]\",\"input[type=\\\"submit\\\"]\",]);\n            var aa = [];\n            for (var ba = 0; (ba < z.length); ba++) {\n                aa = m.scry(y, z[ba]);\n                for (var ca = 0; (ca < aa.length); ca++) {\n                    var da = aa[ca];\n                    try {\n                        var fa = l.getElementPosition(da);\n                        if (((fa.y > 0) && (fa.x > 0))) {\n                            return da\n                        };\n                    } catch (ea) {\n                    \n                    };\n                };\n            };\n            return null;\n        },\n        focusFirst: function(y) {\n            var z = x.getFirstElement(y);\n            if (z) {\n                z.focus();\n                return true;\n            }\n        ;\n            return false;\n        }\n    };\n    e.exports = x;\n});\n__d(\"Locale\", [\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\"), h, i = {\n        isRTL: function() {\n            if ((h === undefined)) {\n                h = ((\"rtl\" === g.get(document.body, \"direction\")));\n            };\n            return h;\n        }\n    };\n    e.exports = i;\n});\n__d(\"getOverlayZIndex\", [\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\");\n    function h(i, j) {\n        j = (j || document.body);\n        var k = [];\n        while ((i && (i !== j))) {\n            k.push(i);\n            i = i.parentNode;\n        };\n        if ((i !== j)) {\n            return 0\n        };\n        for (var l = (k.length - 1); (l >= 0); l--) {\n            var m = k[l];\n            if ((g.get(m, \"position\") != \"static\")) {\n                var n = parseInt(g.get(m, \"z-index\"), 10);\n                if (!isNaN(n)) {\n                    return n\n                };\n            }\n        ;\n        };\n        return 0;\n    };\n    e.exports = h;\n});\n__d(\"Dialog\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"Bootloader\",\"Button\",\"ContextualThing\",\"CSS\",\"DOM\",\"Event\",\"Focus\",\"Form\",\"HTML\",\"Keys\",\"Locale\",\"Parent\",\"Run\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"bind\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"getObjectValues\",\"getOverlayZIndex\",\"removeFromArray\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Button\"), l = b(\"ContextualThing\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Event\"), p = b(\"Focus\"), q = b(\"Form\"), r = b(\"HTML\"), s = b(\"Keys\"), t = b(\"Locale\"), u = b(\"Parent\"), v = b(\"Run\"), w = b(\"Style\"), x = b(\"URI\"), y = b(\"UserAgent\"), z = b(\"Vector\"), aa = b(\"bind\"), ba = b(\"copyProperties\"), ca = b(\"createArrayFrom\"), da = b(\"emptyFunction\"), ea = b(\"getObjectValues\"), fa = b(\"getOverlayZIndex\"), ga = b(\"removeFromArray\"), ha = b(\"shield\"), ia = b(\"tx\"), ja = function() {\n        var la = document.body, ma = document.createElement(\"div\"), na = document.createElement(\"div\");\n        la.insertBefore(ma, la.firstChild);\n        la.insertBefore(na, la.firstChild);\n        ma.style.position = \"fixed\";\n        ma.style.top = \"20px\";\n        var oa = (ma.offsetTop !== na.offsetTop);\n        la.removeChild(ma);\n        la.removeChild(na);\n        ja = da.thatReturns(oa);\n        return oa;\n    };\n    function ka(la) {\n        this._show_loading = true;\n        this._auto_focus = true;\n        this._submit_on_enter = false;\n        this._fade_enabled = true;\n        this._onload_handlers = [];\n        this._top = 125;\n        this._uniqueID = (\"dialog_\" + ka._globalCount++);\n        this._content = null;\n        this._obj = null;\n        this._popup = null;\n        this._overlay = null;\n        this._shim = null;\n        this._causal_elem = null;\n        this._previous_focus = null;\n        this._buttons = [];\n        this._buildDialog();\n        if (la) {\n            this._setFromModel(la);\n        };\n        ka._init();\n    };\n    ba(ka, {\n        OK: {\n            name: \"ok\",\n            label: \"Okay\"\n        },\n        CANCEL: {\n            name: \"cancel\",\n            label: \"Cancel\",\n            className: \"inputaux\"\n        },\n        CLOSE: {\n            name: \"close\",\n            label: \"Close\"\n        },\n        NEXT: {\n            name: \"next\",\n            label: \"Next\"\n        },\n        SAVE: {\n            name: \"save\",\n            label: \"Save\"\n        },\n        SUBMIT: {\n            name: \"submit\",\n            label: \"Submit\"\n        },\n        CONFIRM: {\n            name: \"confirm\",\n            label: \"Confirm\"\n        },\n        DELETE: {\n            name: \"delete\",\n            label: \"Delete\"\n        },\n        _globalCount: 0,\n        _bottoms: [0,],\n        max_bottom: 0,\n        _updateMaxBottom: function() {\n            ka.max_bottom = Math.max.apply(Math, ka._bottoms);\n        }\n    });\n    ba(ka, {\n        OK_AND_CANCEL: [ka.OK,ka.CANCEL,],\n        _STANDARD_BUTTONS: [ka.OK,ka.CANCEL,ka.CLOSE,ka.SAVE,ka.SUBMIT,ka.CONFIRM,ka.DELETE,],\n        SIZE: {\n            WIDE: 555,\n            STANDARD: 445\n        },\n        _HALO_WIDTH: 10,\n        _BORDER_WIDTH: 1,\n        _PADDING_WIDTH: 10,\n        _PAGE_MARGIN: 40,\n        _stack: [],\n        _isUsingCSSBorders: function() {\n            return (y.ie() < 7);\n        },\n        newButton: function(la, ma, na, oa) {\n            var pa = {\n                name: la,\n                label: ma\n            };\n            if (na) {\n                pa.className = na;\n            };\n            if (oa) {\n                pa.handler = oa;\n            };\n            return pa;\n        },\n        getCurrent: function() {\n            var la = ka._stack;\n            return (la.length ? la[(la.length - 1)] : null);\n        },\n        hideCurrent: function() {\n            var la = ka.getCurrent();\n            (la && la.hide());\n        },\n        bootstrap: function(la, ma, na, oa, pa, qa) {\n            ma = (ma || {\n            });\n            ba(ma, new x(la).getQueryData());\n            oa = (oa || ((na ? \"GET\" : \"POST\")));\n            var ra = (u.byClass(qa, \"stat_elem\") || qa);\n            if ((ra && m.hasClass(ra, \"async_saving\"))) {\n                return false\n            };\n            var sa = new i().setReadOnly(!!na).setMethod(oa).setRelativeTo(qa).setStatusElement(ra).setURI(la).setNectarModuleDataSafe(qa).setData(ma), ta = new ka(pa).setCausalElement(qa).setAsync(sa);\n            ta.show();\n            return false;\n        },\n        showFromModel: function(la, ma) {\n            var na = new ka(la).setCausalElement(ma).show();\n            if (la.hiding) {\n                na.hide();\n            };\n        },\n        _init: function() {\n            this._init = da;\n            v.onLeave(ha(ka._tearDown, null, false));\n            h.subscribe(\"page_transition\", ha(ka._tearDown, null, true));\n            o.listen(document.documentElement, \"keydown\", function(event) {\n                if (((o.getKeyCode(event) == s.ESC) && !event.getModifiers().any)) {\n                    if (ka._escape()) {\n                        event.kill();\n                    };\n                }\n                 else if (((o.getKeyCode(event) == s.RETURN) && !event.getModifiers().any)) {\n                    if (ka._enter()) {\n                        event.kill();\n                    }\n                }\n            ;\n            });\n            o.listen(window, \"resize\", function(event) {\n                var la = ka.getCurrent();\n                (la && la._resetDialogObj());\n            });\n        },\n        _findButton: function(la, ma) {\n            if (la) {\n                for (var na = 0; (na < la.length); ++na) {\n                    if ((la[na].name == ma)) {\n                        return la[na]\n                    };\n                }\n            };\n            return null;\n        },\n        _tearDown: function(la) {\n            var ma = ka._stack.slice();\n            for (var na = (ma.length - 1); (na >= 0); na--) {\n                if ((((la && !ma[na]._cross_transition)) || ((!la && !ma[na]._cross_quickling)))) {\n                    ma[na].hide();\n                };\n            };\n        },\n        _escape: function() {\n            var la = ka.getCurrent();\n            if (!la) {\n                return false\n            };\n            var ma = la._semi_modal, na = la._buttons;\n            if ((!na.length && !ma)) {\n                return false\n            };\n            if ((ma && !na.length)) {\n                la.hide();\n                return true;\n            }\n        ;\n            var oa, pa = ka._findButton(na, \"cancel\");\n            if (la._cancelHandler) {\n                la.cancel();\n                return true;\n            }\n             else if (pa) {\n                oa = pa;\n            }\n             else if ((na.length == 1)) {\n                oa = na[0];\n            }\n             else return false\n            \n            \n        ;\n            la._handleButton(oa);\n            return true;\n        },\n        _enter: function() {\n            var la = ka.getCurrent();\n            if ((!la || !la._submit_on_enter)) {\n                return false\n            };\n            if ((document.activeElement != la._frame)) {\n                return false\n            };\n            var ma = la._buttons;\n            if (!ma) {\n                return false\n            };\n            la._handleButton(ma[0]);\n            return true;\n        },\n        call_or_eval: function(la, ma, na) {\n            if (!ma) {\n                return undefined\n            };\n            na = (na || {\n            });\n            if ((typeof ma == \"string\")) {\n                var oa = Object.keys(na).join(\", \");\n                ma = (eval)(((((\"({f: function(\" + oa) + \") { \") + ma) + \"}})\")).f;\n            }\n        ;\n            return ma.apply(la, ea(na));\n        }\n    });\n    ba(ka.prototype, {\n        _cross_quickling: false,\n        _cross_transition: false,\n        _loading: false,\n        _showing: false,\n        show: function() {\n            this._showing = true;\n            if (this._async_request) {\n                if (this._show_loading) {\n                    this.showLoading();\n                };\n            }\n             else this._update();\n        ;\n            return this;\n        },\n        showLoading: function() {\n            this._loading = true;\n            m.addClass(this._frame, \"dialog_loading_shown\");\n            this._renderDialog();\n            return this;\n        },\n        hide: function() {\n            if ((!this._showing && !this._loading)) {\n                return this\n            };\n            this._showing = false;\n            if (this._autohide_timeout) {\n                clearTimeout(this._autohide_timeout);\n                this._autohide_timeout = null;\n            }\n        ;\n            if ((this._fade_enabled && (ka._stack.length <= 1))) {\n                this._fadeOut();\n            }\n             else this._hide();\n        ;\n            return this;\n        },\n        cancel: function() {\n            if ((!this._cancelHandler || (this._cancelHandler() !== false))) {\n                this.hide();\n            };\n        },\n        getRoot: function() {\n            return this._obj;\n        },\n        getBody: function() {\n            return n.scry(this._obj, \"div.dialog_body\")[0];\n        },\n        getButtonElement: function(la) {\n            if ((typeof la == \"string\")) {\n                la = ka._findButton(this._buttons, la);\n            };\n            if ((!la || !la.name)) {\n                return null\n            };\n            var ma = n.scry(this._popup, \"input\"), na = function(oa) {\n                return (oa.name == la.name);\n            };\n            return (ma.filter(na)[0] || null);\n        },\n        getContentNode: function() {\n            return n.find(this._content, \"div.dialog_content\");\n        },\n        getFormData: function() {\n            return q.serialize(this.getContentNode());\n        },\n        setAllowCrossPageTransition: function(la) {\n            this._cross_transition = la;\n            return this;\n        },\n        setAllowCrossQuicklingNavigation: function(la) {\n            this._cross_quickling = la;\n            return this;\n        },\n        setShowing: function() {\n            this.show();\n            return this;\n        },\n        setHiding: function() {\n            this.hide();\n            return this;\n        },\n        setTitle: function(la) {\n            var ma = this._nodes.title, na = this._nodes.title_inner, oa = this._nodes.content;\n            n.setContent(na, this._format((la || \"\")));\n            m.conditionShow(ma, !!la);\n            m.conditionClass(oa, \"dialog_content_titleless\", !la);\n            return this;\n        },\n        setBody: function(la) {\n            n.setContent(this._nodes.body, this._format(la));\n            return this;\n        },\n        setExtraData: function(la) {\n            this._extra_data = la;\n            return this;\n        },\n        setReturnData: function(la) {\n            this._return_data = la;\n            return this;\n        },\n        setShowLoading: function(la) {\n            this._show_loading = la;\n            return this;\n        },\n        setCustomLoading: function(la) {\n            var ma = n.create(\"div\", {\n                className: \"dialog_loading\"\n            }, la);\n            n.setContent(this._frame, [this._nodes.title,this._nodes.content,ma,]);\n            return this;\n        },\n        setFullBleed: function(la) {\n            this._full_bleed = la;\n            this._updateWidth();\n            m.conditionClass(this._obj, \"full_bleed\", la);\n            return this;\n        },\n        setCausalElement: function(la) {\n            this._causal_elem = la;\n            return this;\n        },\n        setUserData: function(la) {\n            this._user_data = la;\n            return this;\n        },\n        getUserData: function() {\n            return this._user_data;\n        },\n        setAutohide: function(la) {\n            if (la) {\n                if (this._showing) {\n                    this._autohide_timeout = setTimeout(ha(this.hide, this), la);\n                }\n                 else this._autohide = la;\n            ;\n            }\n             else {\n                this._autohide = null;\n                if (this._autohide_timeout) {\n                    clearTimeout(this._autohide_timeout);\n                    this._autohide_timeout = null;\n                }\n            ;\n            }\n        ;\n            return this;\n        },\n        setSummary: function(la) {\n            var ma = this._nodes.summary;\n            n.setContent(ma, this._format((la || \"\")));\n            m.conditionShow(ma, !!la);\n            return this;\n        },\n        setButtons: function(la) {\n            var ma, na;\n            if (!((la instanceof Array))) {\n                ma = ca(arguments);\n            }\n             else ma = la;\n        ;\n            for (var oa = 0; (oa < ma.length); ++oa) {\n                if ((typeof ma[oa] == \"string\")) {\n                    na = ka._findButton(ka._STANDARD_BUTTONS, ma[oa]);\n                    ma[oa] = na;\n                }\n            ;\n            };\n            this._buttons = ma;\n            var pa = [];\n            if ((ma && (ma.length > 0))) {\n                for (var qa = 0; (qa < ma.length); qa++) {\n                    na = ma[qa];\n                    var ra = n.create(\"input\", {\n                        type: \"button\",\n                        name: (na.name || \"\"),\n                        value: na.label\n                    }), sa = n.create(\"label\", {\n                        className: \"uiButton uiButtonLarge uiButtonConfirm\"\n                    }, ra);\n                    if (na.className) {\n                        na.className.split(/\\s+/).forEach(function(ua) {\n                            m.addClass(sa, ua);\n                        });\n                        if (m.hasClass(sa, \"inputaux\")) {\n                            m.removeClass(sa, \"inputaux\");\n                            m.removeClass(sa, \"uiButtonConfirm\");\n                        }\n                    ;\n                        if (m.hasClass(sa, \"uiButtonSpecial\")) {\n                            m.removeClass(sa, \"uiButtonConfirm\");\n                        };\n                    }\n                ;\n                    if (na.icon) {\n                        n.prependContent(sa, n.create(\"img\", {\n                            src: na.icon,\n                            className: \"img mrs\"\n                        }));\n                    };\n                    if (na.disabled) {\n                        k.setEnabled(sa, false);\n                    };\n                    o.listen(ra, \"click\", this._handleButton.bind(this, na.name));\n                    for (var ta in na) {\n                        if (((ta.indexOf(\"data-\") === 0) && (ta.length > 5))) {\n                            ra.setAttribute(ta, na[ta]);\n                        };\n                    };\n                    pa.push(sa);\n                }\n            };\n            n.setContent(this._nodes.buttons, pa);\n            this._updateButtonVisibility();\n            return this;\n        },\n        setButtonsMessage: function(la) {\n            n.setContent(this._nodes.button_message, this._format((la || \"\")));\n            this._has_button_message = !!la;\n            this._updateButtonVisibility();\n            return this;\n        },\n        _updateButtonVisibility: function() {\n            var la = ((this._buttons.length > 0) || this._has_button_message);\n            m.conditionShow(this._nodes.button_wrapper, la);\n            m.conditionClass(this._obj, \"omitDialogFooter\", !la);\n        },\n        setClickButtonOnEnter: function(la, ma) {\n            this._clickOnEnterTarget = la;\n            if (!this._clickOnEnterListener) {\n                this._clickOnEnterListener = o.listen(this._nodes.body, \"keypress\", function(event) {\n                    var na = event.getTarget();\n                    if ((na && (na.id === this._clickOnEnterTarget))) {\n                        if ((o.getKeyCode(event) == s.RETURN)) {\n                            this._handleButton(ma);\n                            event.kill();\n                        }\n                    \n                    };\n                    return true;\n                }.bind(this));\n            };\n            return this;\n        },\n        setStackable: function(la, ma) {\n            this._is_stackable = la;\n            this._shown_while_stacked = (la && ma);\n            return this;\n        },\n        setHandler: function(la) {\n            this._handler = la;\n            return this;\n        },\n        setCancelHandler: function(la) {\n            this._cancelHandler = ka.call_or_eval.bind(null, this, la);\n            return this;\n        },\n        setCloseHandler: function(la) {\n            this._close_handler = ka.call_or_eval.bind(null, this, la);\n            return this;\n        },\n        clearHandler: function() {\n            return this.setHandler(null);\n        },\n        setPostURI: function(la, ma) {\n            if ((ma === undefined)) {\n                ma = true;\n            };\n            if (ma) {\n                this.setHandler(this._submitForm.bind(this, \"POST\", la));\n            }\n             else this.setHandler(function() {\n                q.post(la, this.getFormData());\n                this.hide();\n            }.bind(this));\n        ;\n            return this;\n        },\n        setGetURI: function(la) {\n            this.setHandler(this._submitForm.bind(this, \"GET\", la));\n            return this;\n        },\n        setModal: function(la) {\n            this._modal = la;\n            m.conditionClass(this._obj, \"generic_dialog_modal\", la);\n            return this;\n        },\n        setSemiModal: function(la) {\n            if (la) {\n                this.setModal(true);\n                this._semiModalListener = o.listen(this._obj, \"click\", function(ma) {\n                    if (!n.contains(this._popup, ma.getTarget())) {\n                        this.hide();\n                    };\n                }.bind(this));\n            }\n             else (this._semiModalListener && this._semiModalListener.remove());\n        ;\n            this._semi_modal = la;\n            return this;\n        },\n        setWideDialog: function(la) {\n            this._wide_dialog = la;\n            this._updateWidth();\n            return this;\n        },\n        setContentWidth: function(la) {\n            this._content_width = la;\n            this._updateWidth();\n            return this;\n        },\n        setTitleLoading: function(la) {\n            if ((la === undefined)) {\n                la = true;\n            };\n            var ma = n.find(this._popup, \"h2.dialog_title\");\n            if (ma) {\n                m.conditionClass(ma, \"loading\", la);\n            };\n            return this;\n        },\n        setSecure: function(la) {\n            m.conditionClass(this._nodes.title, \"secure\", la);\n            return this;\n        },\n        setClassName: function(la) {\n            la.split(/\\s+/).forEach(m.addClass.bind(m, this._obj));\n            return this;\n        },\n        setFadeEnabled: function(la) {\n            this._fade_enabled = la;\n            return this;\n        },\n        setFooter: function(la) {\n            var ma = this._nodes.footer;\n            n.setContent(ma, this._format((la || \"\")));\n            m.conditionShow(ma, !!la);\n            return this;\n        },\n        setAutoFocus: function(la) {\n            this._auto_focus = la;\n            return this;\n        },\n        setTop: function(la) {\n            this._top = la;\n            this._resetDialogObj();\n            return this;\n        },\n        onloadRegister: function(la) {\n            ca(la).forEach(function(ma) {\n                if ((typeof ma == \"string\")) {\n                    ma = new Function(ma);\n                };\n                this._onload_handlers.push(ma.bind(this));\n            }.bind(this));\n            return this;\n        },\n        setAsyncURL: function(la) {\n            return this.setAsync(new i(la));\n        },\n        setAsync: function(la) {\n            var ma = function(ua) {\n                if ((this._async_request != la)) {\n                    return\n                };\n                this._async_request = null;\n                var va = ua.getPayload(), wa = va;\n                if (this._loading) {\n                    this._showing = true;\n                };\n                if ((typeof wa == \"string\")) {\n                    this.setBody(wa);\n                }\n                 else this._setFromModel(wa);\n            ;\n                this._update();\n            }.bind(this), na = la.getData();\n            na.__d = 1;\n            la.setData(na);\n            var oa = (la.getHandler() || da);\n            la.setHandler(function(ua) {\n                oa(ua);\n                ma(ua);\n            });\n            var pa = la, qa = (pa.getErrorHandler() || da), ra = (pa.getTransportErrorHandler() || da), sa = function() {\n                this._async_request = null;\n                this._loading = false;\n                if ((this._showing && this._shown_while_stacked)) {\n                    this._update();\n                }\n                 else this._hide(this._is_stackable);\n            ;\n            }.bind(this), ta = (pa.getServerDialogCancelHandler() || sa);\n            pa.setAllowCrossPageTransition(this._cross_transition).setErrorHandler(function(ua) {\n                sa();\n                qa(ua);\n            }).setTransportErrorHandler(function(ua) {\n                sa();\n                ra(ua);\n            }).setServerDialogCancelHandler(ta);\n            la.send();\n            this._async_request = la;\n            if (this._showing) {\n                this.show();\n            };\n            return this;\n        },\n        _format: function(la) {\n            if ((typeof la == \"string\")) {\n                la = r(la);\n            }\n             else la = r.replaceJSONWrapper(la);\n        ;\n            if ((la instanceof r)) {\n                la.setDeferred(true);\n            };\n            return la;\n        },\n        _update: function() {\n            if (!this._showing) {\n                return\n            };\n            if (((this._autohide && !this._async_request) && !this._autohide_timeout)) {\n                this._autohide_timeout = setTimeout(aa(this, \"hide\"), this._autohide);\n            };\n            m.removeClass(this._frame, \"dialog_loading_shown\");\n            this._loading = false;\n            this._renderDialog();\n            this._runOnloads();\n            this._previous_focus = document.activeElement;\n            p.set(this._frame);\n        },\n        _runOnloads: function() {\n            for (var la = 0; (la < this._onload_handlers.length); ++la) {\n                try {\n                    this._onload_handlers[la]();\n                } catch (ma) {\n                \n                };\n            };\n            this._onload_handlers = [];\n        },\n        _updateWidth: function() {\n            var la = (2 * ka._BORDER_WIDTH);\n            if (ka._isUsingCSSBorders()) {\n                la += (2 * ka._HALO_WIDTH);\n            };\n            if (this._content_width) {\n                la += this._content_width;\n                if (!this._full_bleed) {\n                    la += (2 * ka._PADDING_WIDTH);\n                };\n            }\n             else if (this._wide_dialog) {\n                la += ka.SIZE.WIDE;\n            }\n             else la += ka.SIZE.STANDARD;\n            \n        ;\n            this._popup.style.width = (la + \"px\");\n        },\n        _updateZIndex: function() {\n            if ((!this._hasSetZIndex && this._causal_elem)) {\n                var la = fa(this._causal_elem), ma = this._causal_elem;\n                while ((!la && (ma = l.getContext(ma)))) {\n                    la = fa(ma);;\n                };\n                this._hasSetZIndex = (la > ((this._modal ? 400 : 200)));\n                w.set(this._obj, \"z-index\", (this._hasSetZIndex ? la : \"\"));\n            }\n        ;\n        },\n        _renderDialog: function() {\n            this._updateZIndex();\n            this._pushOntoStack();\n            this._obj.style.height = (((this._modal && (y.ie() < 7))) ? (z.getDocumentDimensions().y + \"px\") : null);\n            if ((this._obj && this._obj.style.display)) {\n                this._obj.style.visibility = \"hidden\";\n                this._obj.style.display = \"\";\n                this.resetDialogPosition();\n                this._obj.style.visibility = \"\";\n                this._obj.dialog = this;\n            }\n             else this.resetDialogPosition();\n        ;\n            clearInterval(this.active_hiding);\n            this.active_hiding = setInterval(this._activeResize.bind(this), 500);\n            this._submit_on_enter = false;\n            if (this._auto_focus) {\n                var la = q.getFirstElement(this._content, [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",]);\n                if (la) {\n                    q.focusFirst.bind(this, this._content).defer();\n                }\n                 else this._submit_on_enter = true;\n            ;\n            }\n        ;\n            var ma = (z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y);\n            ka._bottoms.push(ma);\n            this._bottom = ma;\n            ka._updateMaxBottom();\n            return this;\n        },\n        _buildDialog: function() {\n            this._obj = n.create(\"div\", {\n                className: \"generic_dialog\",\n                id: this._uniqueID\n            });\n            this._obj.style.display = \"none\";\n            n.appendContent(document.body, this._obj);\n            if (!this._popup) {\n                this._popup = n.create(\"div\", {\n                    className: \"generic_dialog_popup\"\n                });\n            };\n            this._obj.appendChild(this._popup);\n            if (((y.ie() < 7) && !this._shim)) {\n                j.loadModules([\"IframeShim\",], function(xa) {\n                    this._shim = new xa(this._popup);\n                });\n            };\n            m.addClass(this._obj, \"pop_dialog\");\n            if (t.isRTL()) {\n                m.addClass(this._obj, \"pop_dialog_rtl\");\n            };\n            var la;\n            if (ka._isUsingCSSBorders()) {\n                la = ((\"\\u003Cdiv class=\\\"pop_container_advanced\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_content\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003C/div\\u003E\");\n            }\n             else la = ((((((((\"\\u003Cdiv class=\\\"pop_container\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_verticalslab\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003Cdiv class=\\\"pop_horizontalslab\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003Cdiv class=\\\"pop_topleft\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003Cdiv class=\\\"pop_topright\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003Cdiv class=\\\"pop_bottomright\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003Cdiv class=\\\"pop_bottomleft\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003Cdiv class=\\\"pop_content pop_content_old\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\") + \"\\u003C/div\\u003E\");\n        ;\n            n.setContent(this._popup, r(la));\n            var ma = n.find(this._popup, \"div.pop_content\");\n            ma.setAttribute(\"tabIndex\", \"0\");\n            ma.setAttribute(\"role\", \"alertdialog\");\n            this._frame = this._content = ma;\n            var na = n.create(\"div\", {\n                className: \"dialog_loading\"\n            }, \"Loading...\"), oa = n.create(\"span\"), pa = n.create(\"h2\", {\n                className: \"dialog_title hidden_elem\",\n                id: (\"title_\" + this._uniqueID)\n            }, oa), qa = n.create(\"div\", {\n                className: \"dialog_summary hidden_elem\"\n            }), ra = n.create(\"div\", {\n                className: \"dialog_body\"\n            }), sa = n.create(\"div\", {\n                className: \"rfloat mlm\"\n            }), ta = n.create(\"div\", {\n                className: \"dialog_buttons_msg\"\n            }), ua = n.create(\"div\", {\n                className: \"dialog_buttons clearfix hidden_elem\"\n            }, [sa,ta,]), va = n.create(\"div\", {\n                className: \"dialog_footer hidden_elem\"\n            }), wa = n.create(\"div\", {\n                className: \"dialog_content\"\n            }, [qa,ra,ua,va,]);\n            this._nodes = {\n                summary: qa,\n                body: ra,\n                buttons: sa,\n                button_message: ta,\n                button_wrapper: ua,\n                footer: va,\n                content: wa,\n                title: pa,\n                title_inner: oa\n            };\n            n.setContent(this._frame, [pa,wa,na,]);\n        },\n        _updateShim: function() {\n            return (this._shim && this._shim.show());\n        },\n        _activeResize: function() {\n            if ((this.last_offset_height != this._content.offsetHeight)) {\n                this.last_offset_height = this._content.offsetHeight;\n                this.resetDialogPosition();\n            }\n        ;\n        },\n        resetDialogPosition: function() {\n            if (!this._popup) {\n                return\n            };\n            this._resetDialogObj();\n            this._updateShim();\n        },\n        _resetDialogObj: function() {\n            var la = (2 * ka._PAGE_MARGIN), ma = z.getViewportDimensions(), na = (ma.x - la), oa = (ma.y - la), pa = (2 * ka._HALO_WIDTH), qa = z.getElementDimensions(this._content), ra = (qa.x + pa), sa = (qa.y + pa), ta = this._top, ua = (na - ra), va = (oa - sa);\n            if ((va < 0)) {\n                ta = ka._PAGE_MARGIN;\n            }\n             else if ((ta > va)) {\n                ta = (ka._PAGE_MARGIN + ((Math.max(va, 0) / 2)));\n            }\n        ;\n            var wa = ja();\n            if (!wa) {\n                ta += z.getScrollPosition().y;\n            };\n            w.set(this._popup, \"marginTop\", (ta + \"px\"));\n            var xa = (wa && (((ua < 0) || (va < 0))));\n            m.conditionClass(this._obj, \"generic_dialog_fixed_overflow\", xa);\n            m.conditionClass(document.documentElement, \"generic_dialog_overflow_mode\", xa);\n        },\n        _fadeOut: function(la) {\n            if (!this._popup) {\n                return\n            };\n            try {\n                new g(this._obj).duration(0).checkpoint().to(\"opacity\", 0).hide().duration(250).ondone(this._hide.bind(this, la)).go();\n            } catch (ma) {\n                this._hide(la);\n            };\n        },\n        _hide: function(la) {\n            if (this._obj) {\n                this._obj.style.display = \"none\";\n            };\n            m.removeClass(document.documentElement, \"generic_dialog_overflow_mode\");\n            this._updateShim();\n            clearInterval(this.active_hiding);\n            if (this._bottom) {\n                var ma = ka._bottoms;\n                ma.splice(ma.indexOf(this._bottom), 1);\n                ka._updateMaxBottom();\n            }\n        ;\n            if (((this._previous_focus && document.activeElement) && n.contains(this._obj, document.activeElement))) {\n                p.set(this._previous_focus);\n            };\n            if (la) {\n                return\n            };\n            this.destroy();\n        },\n        destroy: function() {\n            this._popFromStack();\n            clearInterval(this.active_hiding);\n            if (this._obj) {\n                n.remove(this._obj);\n                this._obj = null;\n                (this._shim && this._shim.hide());\n                this._shim = null;\n            }\n        ;\n            (this._clickOnEnterListener && this._clickOnEnterListener.remove());\n            if (this._close_handler) {\n                this._close_handler({\n                    return_data: this._return_data\n                });\n            };\n        },\n        _handleButton: function(la) {\n            if ((typeof la == \"string\")) {\n                la = ka._findButton(this._buttons, la);\n            };\n            var ma = ka.call_or_eval(la, la.handler);\n            if ((ma === false)) {\n                return\n            };\n            if ((la.name == \"cancel\")) {\n                this.cancel();\n            }\n             else if ((ka.call_or_eval(this, this._handler, {\n                button: la\n            }) !== false)) {\n                this.hide();\n            }\n        ;\n        },\n        _submitForm: function(la, ma, na) {\n            var oa = this.getFormData();\n            if (na) {\n                oa[na.name] = na.label;\n            };\n            if (this._extra_data) {\n                ba(oa, this._extra_data);\n            };\n            var pa = new i().setURI(ma).setData(oa).setMethod(la).setNectarModuleDataSafe(this._causal_elem).setReadOnly((la == \"GET\"));\n            this.setAsync(pa);\n            return false;\n        },\n        _setFromModel: function(la) {\n            var ma = {\n            };\n            ba(ma, la);\n            for (var na in ma) {\n                if ((na == \"onloadRegister\")) {\n                    this.onloadRegister(ma[na]);\n                    continue;\n                }\n            ;\n                var oa = this[((\"set\" + na.substr(0, 1).toUpperCase()) + na.substr(1))];\n                oa.apply(this, ca(ma[na]));\n            };\n        },\n        _updateBottom: function() {\n            var la = (z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y);\n            ka._bottoms[(ka._bottoms.length - 1)] = la;\n            ka._updateMaxBottom();\n        },\n        _pushOntoStack: function() {\n            var la = ka._stack;\n            if (!la.length) {\n                h.inform(\"layer_shown\", {\n                    type: \"Dialog\"\n                });\n            };\n            ga(la, this);\n            la.push(this);\n            for (var ma = (la.length - 2); (ma >= 0); ma--) {\n                var na = la[ma];\n                if ((!na._is_stackable && !na._async_request)) {\n                    na._hide();\n                }\n                 else if (!na._shown_while_stacked) {\n                    na._hide(true);\n                }\n            ;\n            };\n        },\n        _popFromStack: function() {\n            var la = ka._stack, ma = ((la[(la.length - 1)] === this));\n            ga(la, this);\n            if (la.length) {\n                if (ma) {\n                    la[(la.length - 1)].show();\n                };\n            }\n             else h.inform(\"layer_hidden\", {\n                type: \"Dialog\"\n            });\n        ;\n        }\n    });\n    e.exports = ka;\n    a.Dialog = ka;\n});\n__d(\"DialogHideOnSuccess\", [\"copyProperties\",\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"CSS\"), i = b(\"cx\");\n    function j(k) {\n        this._layer = k;\n    };\n    g(j.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"success\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(k, event) {\n            if (h.hasClass(event.getTarget(), \"_s\")) {\n                this._layer.hide();\n            };\n        }\n    });\n    e.exports = j;\n});\n__d(\"DocumentTitle\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = document.title, i = null, j = 1500, k = [], l = 0, m = null, n = false;\n    function o() {\n        if ((k.length > 0)) {\n            if (!n) {\n                p(k[l].title);\n                l = (++l % k.length);\n            }\n             else q();\n        ;\n        }\n         else {\n            clearInterval(m);\n            m = null;\n            q();\n        }\n    ;\n    };\n    function p(s) {\n        document.title = s;\n        n = true;\n    };\n    function q() {\n        r.set((i || h), true);\n        n = false;\n    };\n    var r = {\n        get: function() {\n            return h;\n        },\n        set: function(s, t) {\n            document.title = s;\n            if (!t) {\n                h = s;\n                i = null;\n                g.inform(\"update_title\", s);\n            }\n             else i = s;\n        ;\n        },\n        blink: function(s) {\n            var t = {\n                title: s\n            };\n            k.push(t);\n            if ((m === null)) {\n                m = setInterval(o, j);\n            };\n            return {\n                stop: function() {\n                    var u = k.indexOf(t);\n                    if ((u >= 0)) {\n                        k.splice(u, 1);\n                        if ((l > u)) {\n                            l--;\n                        }\n                         else if (((l == u) && (l == k.length))) {\n                            l = 0;\n                        }\n                    ;\n                    }\n                ;\n                }\n            };\n        }\n    };\n    e.exports = r;\n});\n__d(\"DoublyLinkedListMap\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h() {\n        this._head = null;\n        this._tail = null;\n        this._nodes = {\n        };\n        this._nodeCount = 0;\n    };\n    g(h.prototype, {\n        get: function(i) {\n            return (this._nodes[i] ? this._nodes[i].data : null);\n        },\n        getIndex: function(i) {\n            for (var j = this._head, k = 0; j; j = j.next, k++) {\n                if ((j.key === i)) {\n                    return k\n                };\n            };\n            return null;\n        },\n        _insert: function(i, j, k, l) {\n            ((k && !this._nodes[k]) && (k = null));\n            var m = (((k && this._nodes[k])) || ((l ? this._head : this._tail))), n = {\n                data: j,\n                key: i,\n                next: null,\n                prev: null\n            };\n            if (m) {\n                this.remove(i);\n                if (l) {\n                    n.prev = m.prev;\n                    (m.prev && (m.prev.next = n));\n                    m.prev = n;\n                    n.next = m;\n                }\n                 else {\n                    n.next = m.next;\n                    (m.next && (m.next.prev = n));\n                    m.next = n;\n                    n.prev = m;\n                }\n            ;\n            }\n        ;\n            ((n.prev === null) && (this._head = n));\n            ((n.next === null) && (this._tail = n));\n            this._nodes[i] = n;\n            this._nodeCount++;\n            return this;\n        },\n        insertBefore: function(i, j, k) {\n            return this._insert(i, j, k, true);\n        },\n        insertAfter: function(i, j, k) {\n            return this._insert(i, j, k, false);\n        },\n        prepend: function(i, j) {\n            return this.insertBefore(i, j, (this._head && this._head.key));\n        },\n        append: function(i, j) {\n            return this.insertAfter(i, j, (this._tail && this._tail.key));\n        },\n        remove: function(i) {\n            var j = this._nodes[i];\n            if (j) {\n                var k = j.next, l = j.prev;\n                (k && (k.prev = l));\n                (l && (l.next = k));\n                ((this._head === j) && (this._head = k));\n                ((this._tail === j) && (this._tail = l));\n                delete this._nodes[i];\n                this._nodeCount--;\n            }\n        ;\n            return this;\n        },\n        find: function(i) {\n            for (var j = this._head; j; j = j.next) {\n                if (i(j.data)) {\n                    return j.key\n                };\n            };\n            return null;\n        },\n        reduce: function(i, j) {\n            for (var k = this._head; k; k = k.next) {\n                j = i(k.data, j);;\n            };\n            return j;\n        },\n        exists: function(i) {\n            return !!this._nodes[i];\n        },\n        isEmpty: function() {\n            return !this._head;\n        },\n        reset: function() {\n            this._head = null;\n            this._tail = null;\n            this._nodes = {\n            };\n            this._nodeCount = 0;\n        },\n        map: function(i) {\n            for (var j = this._head; j; j = j.next) {\n                i(j.data);;\n            };\n        },\n        getCount: function() {\n            return this._nodeCount;\n        },\n        getHead: function() {\n            return (this._head && this._head.data);\n        },\n        getTail: function() {\n            return (this._tail && this._tail.data);\n        },\n        getNext: function(i) {\n            var j = this._nodes[i];\n            if ((j && j.next)) {\n                return j.next.data\n            };\n            return null;\n        },\n        getPrev: function(i) {\n            var j = this._nodes[i];\n            if ((j && j.prev)) {\n                return j.prev.data\n            };\n            return null;\n        }\n    });\n    e.exports = h;\n});\n__d(\"throttle\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(j, k, l) {\n        return i(j, k, l, false, false);\n    };\n    g(h, {\n        acrossTransitions: function(j, k, l) {\n            return i(j, k, l, true, false);\n        },\n        withBlocking: function(j, k, l) {\n            return i(j, k, l, false, true);\n        }\n    });\n    function i(j, k, l, m, n) {\n        if ((k == null)) {\n            k = 100;\n        };\n        var o, p, q;\n        function r() {\n            p = Date.now();\n            if (o) {\n                j.apply(l, o);\n                o = null;\n                q = setTimeout(r, k, !m);\n            }\n             else q = false;\n        ;\n        };\n        return function s() {\n            o = arguments;\n            if ((!q || (((Date.now() - p) > k)))) {\n                if (n) {\n                    r();\n                }\n                 else q = setTimeout(r, 0, !m);\n            \n            };\n        };\n    };\n    e.exports = h;\n});\n__d(\"FullScreen\", [\"Event\",\"Arbiter\",\"CSS\",\"UserAgent\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = b(\"throttle\"), m = {\n    }, n = k(new h(), {\n        listenForEvent: function(p) {\n            var q = l(this.onChange, 0, this);\n            if (!m[p.id]) {\n                m[p.id] = true;\n                g.listen(p, {\n                    webkitfullscreenchange: q,\n                    mozfullscreenchange: q,\n                    fullscreenchange: q\n                });\n            }\n        ;\n        },\n        enableFullScreen: function(p) {\n            this.listenForEvent(p);\n            if (p.webkitRequestFullScreen) {\n                if (j.chrome()) {\n                    p.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);\n                }\n                 else p.webkitRequestFullScreen();\n            ;\n            }\n             else if (p.mozRequestFullScreen) {\n                p.mozRequestFullScreen();\n            }\n             else if (p.requestFullScreen) {\n                p.requestFullScreen();\n            }\n             else return false\n            \n            \n        ;\n            return true;\n        },\n        disableFullScreen: function() {\n            if (document.webkitCancelFullScreen) {\n                document.webkitCancelFullScreen();\n            }\n             else if (document.mozCancelFullScreen) {\n                document.mozCancelFullScreen();\n            }\n             else if (document.cancelFullScreen) {\n                document.cancelFullScreen();\n            }\n             else if (document.exitFullScreen) {\n                document.exitFullScreen();\n            }\n             else return false\n            \n            \n            \n        ;\n            return true;\n        },\n        isFullScreen: function() {\n            return (((document.webkitIsFullScreen || document.fullScreen) || document.mozFullScreen));\n        },\n        toggleFullScreen: function(p) {\n            if (this.isFullScreen()) {\n                this.disableFullScreen();\n                return false;\n            }\n             else return this.enableFullScreen(p)\n        ;\n            return false;\n        },\n        onChange: function() {\n            var p = this.isFullScreen();\n            i.conditionClass(document.body, \"fullScreen\", p);\n            this.inform(\"changed\");\n        },\n        isSupported: function() {\n            return (((((document.webkitCancelFullScreen && j.chrome())) || document.mozCancelFullScreen) || document.cancelFullScreen) || document.exitFullScreen);\n        }\n    }), o = l(n.onChange, 0, n);\n    g.listen(document, {\n        webkitfullscreenchange: o,\n        mozfullscreenchange: o,\n        fullscreenchange: o\n    });\n    e.exports = n;\n});\n__d(\"HistoryManager\", [\"Event\",\"function-extensions\",\"Cookie\",\"Env\",\"URI\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"goOrReplace\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Cookie\"), i = b(\"Env\"), j = b(\"URI\"), k = b(\"UserAgent\"), l = b(\"copyProperties\"), m = b(\"emptyFunction\"), n = b(\"goOrReplace\"), o = {\n        _IFRAME_BASE_URI: \"http://static.ak.facebook.com/common/history_manager.php\",\n        history: null,\n        current: 0,\n        fragment: null,\n        _setIframeSrcFragment: function(p) {\n            p = p.toString();\n            var q = (o.history.length - 1);\n            o.iframe.src = ((((o._IFRAME_BASE_URI + \"?|index=\") + q) + \"#\") + encodeURIComponent(p));\n            return o;\n        },\n        getIframeSrcFragment: function() {\n            return decodeURIComponent(j(o.iframe.contentWindow.document.location.href).getFragment());\n        },\n        nextframe: function(p, q) {\n            if (q) {\n                o._setIframeSrcFragment(p);\n                return;\n            }\n        ;\n            if ((p !== undefined)) {\n                o.iframeQueue.push(p);\n            }\n             else {\n                o.iframeQueue.splice(0, 1);\n                o.iframeTimeout = null;\n                o.checkURI();\n            }\n        ;\n            if ((o.iframeQueue.length && !o.iframeTimeout)) {\n                var r = o.iframeQueue[0];\n                o.iframeTimeout = setTimeout(function() {\n                    o._setIframeSrcFragment(r);\n                }, 100, false);\n            }\n        ;\n        },\n        isInitialized: function() {\n            return !!o._initialized;\n        },\n        init: function() {\n            if ((!i.ALLOW_TRANSITION_IN_IFRAME && (window != window.top))) {\n                return\n            };\n            if (o._initialized) {\n                return o\n            };\n            var p = j(), q = (p.getFragment() || \"\");\n            if ((q.charAt(0) === \"!\")) {\n                q = q.substr(1);\n                p.setFragment(q);\n            }\n        ;\n            if ((j.getRequestURI(false).getProtocol().toLowerCase() == \"https\")) {\n                o._IFRAME_BASE_URI = \"https://s-static.ak.facebook.com/common/history_manager.php\";\n            };\n            l(o, {\n                _initialized: true,\n                fragment: q,\n                orig_fragment: q,\n                history: [p,],\n                callbacks: [],\n                lastChanged: Date.now(),\n                canonical: j(\"#\"),\n                fragmentTimeout: null,\n                user: 0,\n                iframeTimeout: null,\n                iframeQueue: [],\n                enabled: true,\n                debug: m\n            });\n            if ((window.history && history.pushState)) {\n                this.lastURI = document.URL;\n                window.history.replaceState(this.lastURI, null);\n                g.listen(window, \"popstate\", function(r) {\n                    if (((r && r.state) && (o.lastURI != r.state))) {\n                        o.lastURI = r.state;\n                        o.lastChanged = Date.now();\n                        o.notify(j(r.state).getUnqualifiedURI().toString());\n                    }\n                ;\n                }.bind(o));\n                if (((k.webkit() < 534) || (k.chrome() <= 13))) {\n                    setInterval(o.checkURI, 42, false);\n                    o._updateRefererURI(this.lastURI);\n                }\n            ;\n                return o;\n            }\n        ;\n            o._updateRefererURI(j.getRequestURI(false));\n            if (((k.webkit() < 500) || (k.firefox() < 2))) {\n                o.enabled = false;\n                return o;\n            }\n        ;\n            if ((k.ie() < 8)) {\n                o.iframe = document.createElement(\"iframe\");\n                l(o.iframe.style, {\n                    width: \"0\",\n                    height: \"0\",\n                    frameborder: \"0\",\n                    left: \"0\",\n                    top: \"0\",\n                    position: \"absolute\"\n                });\n                o._setIframeSrcFragment(q);\n                document.body.insertBefore(o.iframe, document.body.firstChild);\n            }\n             else if ((\"onhashchange\" in window)) {\n                g.listen(window, \"hashchange\", function() {\n                    o.checkURI.bind(o).defer();\n                });\n            }\n             else setInterval(o.checkURI, 42, false);\n            \n        ;\n            return o;\n        },\n        registerURIHandler: function(p) {\n            o.callbacks.push(p);\n            return o;\n        },\n        setCanonicalLocation: function(p) {\n            o.canonical = j(p);\n            return o;\n        },\n        notify: function(p) {\n            if ((p == o.orig_fragment)) {\n                p = o.canonical.getFragment();\n            };\n            for (var q = 0; (q < o.callbacks.length); q++) {\n                try {\n                    if (o.callbacks[q](p)) {\n                        return true\n                    };\n                } catch (r) {\n                \n                };\n            };\n            return false;\n        },\n        checkURI: function() {\n            if (((Date.now() - o.lastChanged) < 400)) {\n                return\n            };\n            if ((window.history && history.pushState)) {\n                var p = j(document.URL).removeQueryData(\"ref\").toString(), q = j(o.lastURI).removeQueryData(\"ref\").toString();\n                if ((p != q)) {\n                    o.lastChanged = Date.now();\n                    o.lastURI = p;\n                    if ((k.webkit() < 534)) {\n                        o._updateRefererURI(p);\n                    };\n                    o.notify(j(p).getUnqualifiedURI().toString());\n                }\n            ;\n                return;\n            }\n        ;\n            if (((k.ie() < 8) && o.iframeQueue.length)) {\n                return\n            };\n            if ((k.webkit() && (window.history.length == 200))) {\n                if (!o.warned) {\n                    o.warned = true;\n                };\n                return;\n            }\n        ;\n            var r = j().getFragment();\n            if ((r.charAt(0) == \"!\")) {\n                r = r.substr(1);\n            };\n            if ((k.ie() < 8)) {\n                r = o.getIframeSrcFragment();\n            };\n            r = r.replace(/%23/g, \"#\");\n            if ((r != o.fragment.replace(/%23/g, \"#\"))) {\n                o.debug([r,\" vs \",o.fragment,\"whl: \",window.history.length,\"QHL: \",o.history.length,].join(\" \"));\n                for (var s = (o.history.length - 1); (s >= 0); --s) {\n                    if ((o.history[s].getFragment().replace(/%23/g, \"#\") == r)) {\n                        break;\n                    };\n                };\n                ++o.user;\n                if ((s >= 0)) {\n                    o.go((s - o.current));\n                }\n                 else o.go((\"#\" + r));\n            ;\n                --o.user;\n            }\n        ;\n        },\n        _updateRefererURI: function(p) {\n            p = p.toString();\n            if (((p.charAt(0) != \"/\") && (p.indexOf(\"//\") == -1))) {\n                return\n            };\n            var q = new j(window.location);\n            if (q.isFacebookURI()) {\n                var r = (q.getPath() + window.location.search);\n            }\n             else var r = \"\"\n        ;\n            var s = j(p).getQualifiedURI().setFragment(r).toString(), t = 2048;\n            if ((s.length > t)) {\n                s = (s.substring(0, t) + \"...\");\n            };\n            h.set(\"x-referer\", s);\n        },\n        go: function(p, q, r) {\n            if ((window.history && history.pushState)) {\n                (q || (typeof (p) == \"number\"));\n                var s = j(p).removeQueryData(\"ref\").toString();\n                o.lastChanged = Date.now();\n                this.lastURI = s;\n                if (r) {\n                    window.history.replaceState(p, null, s);\n                }\n                 else window.history.pushState(p, null, s);\n            ;\n                if ((k.webkit() < 534)) {\n                    o._updateRefererURI(p);\n                };\n                return false;\n            }\n        ;\n            o.debug((\"go: \" + p));\n            if ((q === undefined)) {\n                q = true;\n            };\n            if (!o.enabled) {\n                if (!q) {\n                    return false\n                }\n            };\n            if ((typeof (p) == \"number\")) {\n                if (!p) {\n                    return false\n                };\n                var t = (p + o.current), u = Math.max(0, Math.min((o.history.length - 1), t));\n                o.current = u;\n                t = (o.history[u].getFragment() || o.orig_fragment);\n                t = j(t).removeQueryData(\"ref\").getUnqualifiedURI().toString();\n                o.fragment = t;\n                o.lastChanged = Date.now();\n                if ((k.ie() < 8)) {\n                    if (o.fragmentTimeout) {\n                        clearTimeout(o.fragmentTimeout);\n                    };\n                    o._temporary_fragment = t;\n                    o.fragmentTimeout = setTimeout(function() {\n                        window.location.hash = (\"#!\" + t);\n                        delete o._temporary_fragment;\n                    }, 750, false);\n                    if (!o.user) {\n                        o.nextframe(t, r);\n                    };\n                }\n                 else if (!o.user) {\n                    n(window.location, ((window.location.href.split(\"#\")[0] + \"#!\") + t), r);\n                }\n            ;\n                if (q) {\n                    o.notify(t);\n                };\n                o._updateRefererURI(t);\n                return false;\n            }\n        ;\n            p = j(p);\n            if ((p.getDomain() == j().getDomain())) {\n                p = j((\"#\" + p.getUnqualifiedURI()));\n            };\n            var v = o.history[o.current].getFragment(), w = p.getFragment();\n            if (((w == v) || (((v == o.orig_fragment) && (w == o.canonical.getFragment()))))) {\n                if (q) {\n                    o.notify(w);\n                };\n                o._updateRefererURI(w);\n                return false;\n            }\n        ;\n            if (r) {\n                o.current--;\n            };\n            var x = (((o.history.length - o.current)) - 1);\n            o.history.splice((o.current + 1), x);\n            o.history.push(j(p));\n            return o.go(1, q, r);\n        },\n        getCurrentFragment: function() {\n            var p = ((o._temporary_fragment !== undefined) ? o._temporary_fragment : j.getRequestURI(false).getFragment());\n            return ((p == o.orig_fragment) ? o.canonical.getFragment() : p);\n        }\n    };\n    e.exports = o;\n});\n__d(\"InputSelection\", [\"DOM\",\"Focus\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Focus\"), i = {\n        get: function(j) {\n            if (!document.selection) {\n                return {\n                    start: j.selectionStart,\n                    end: j.selectionEnd\n                }\n            };\n            var k = document.selection.createRange();\n            if ((k.parentElement() !== j)) {\n                return {\n                    start: 0,\n                    end: 0\n                }\n            };\n            var l = j.value.length;\n            if (g.isNodeOfType(j, \"input\")) {\n                return {\n                    start: -k.moveStart(\"character\", -l),\n                    end: -k.moveEnd(\"character\", -l)\n                };\n            }\n             else {\n                var m = k.duplicate();\n                m.moveToElementText(j);\n                m.setEndPoint(\"StartToEnd\", k);\n                var n = (l - m.text.length);\n                m.setEndPoint(\"StartToStart\", k);\n                return {\n                    start: (l - m.text.length),\n                    end: n\n                };\n            }\n        ;\n        },\n        set: function(j, k, l) {\n            if ((typeof l == \"undefined\")) {\n                l = k;\n            };\n            if (document.selection) {\n                if ((j.tagName == \"TEXTAREA\")) {\n                    var m = ((j.value.slice(0, k).match(/\\r/g) || [])).length, n = ((j.value.slice(k, l).match(/\\r/g) || [])).length;\n                    k -= m;\n                    l -= (m + n);\n                }\n            ;\n                var o = j.createTextRange();\n                o.collapse(true);\n                o.moveStart(\"character\", k);\n                o.moveEnd(\"character\", (l - k));\n                o.select();\n            }\n             else {\n                j.selectionStart = k;\n                j.selectionEnd = Math.min(l, j.value.length);\n                h.set(j);\n            }\n        ;\n        }\n    };\n    e.exports = i;\n});\n__d(\"JSONPTransport\", [\"ArbiterMixin\",\"DOM\",\"HTML\",\"URI\",\"asyncCallback\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"URI\"), k = b(\"asyncCallback\"), l = b(\"copyProperties\"), m = {\n    }, n = 2, o = \"jsonp\", p = \"iframe\";\n    function q(s) {\n        delete m[s];\n    };\n    function r(s, t) {\n        this._type = s;\n        this._uri = t;\n        m[this.getID()] = this;\n    };\n    l(r, {\n        respond: function(s, t, u) {\n            var v = m[s];\n            if (v) {\n                if (!u) {\n                    q(s);\n                };\n                if ((v._type == p)) {\n                    t = JSON.parse(JSON.stringify(t));\n                };\n                k(v.handleResponse.bind(v), \"json\")(t);\n            }\n             else {\n                var w = a.ErrorSignal;\n                if ((w && !u)) {\n                    w.logJSError(\"ajax\", {\n                        error: \"UnexpectedJsonResponse\",\n                        extra: {\n                            id: s,\n                            uri: (((t.payload && t.payload.uri)) || \"\")\n                        }\n                    });\n                };\n            }\n        ;\n        }\n    });\n    l(r.prototype, g, {\n        getID: function() {\n            return (this._id || (this._id = n++));\n        },\n        hasFinished: function() {\n            return !((this.getID() in m));\n        },\n        getRequestURI: function() {\n            return j(this._uri).addQueryData({\n                __a: 1,\n                __adt: this.getID(),\n                __req: (\"jsonp_\" + this.getID())\n            });\n        },\n        getTransportFrame: function() {\n            if (this._iframe) {\n                return this._iframe\n            };\n            var s = (\"transport_frame_\" + this.getID()), t = i(((\"\\u003Ciframe class=\\\"hidden_elem\\\" name=\\\"\" + s) + \"\\\" src=\\\"javascript:void(0)\\\" /\\u003E\"));\n            return this._iframe = h.appendContent(document.body, t)[0];\n        },\n        send: function() {\n            if ((this._type === o)) {\n                (function() {\n                    h.appendContent(document.body, h.create(\"script\", {\n                        src: this.getRequestURI().toString(),\n                        type: \"text/javascript\"\n                    }));\n                }).bind(this).defer();\n            }\n             else this.getTransportFrame().src = this.getRequestURI().toString();\n        ;\n        },\n        handleResponse: function(s) {\n            this.inform(\"response\", s);\n            if (this.hasFinished()) {\n                this._cleanup.bind(this).defer();\n            };\n        },\n        abort: function() {\n            if (this._aborted) {\n                return\n            };\n            this._aborted = true;\n            this._cleanup();\n            q(this.getID());\n            this.inform(\"abort\");\n        },\n        _cleanup: function() {\n            if (this._iframe) {\n                h.remove(this._iframe);\n                this._iframe = null;\n            }\n        ;\n        }\n    });\n    e.exports = r;\n});\n__d(\"JSXDOM\", [\"DOM\",\"flattenArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"flattenArray\"), i = [\"a\",\"br\",\"button\",\"canvas\",\"checkbox\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"iframe\",\"img\",\"input\",\"label\",\"li\",\"option\",\"p\",\"pre\",\"select\",\"span\",\"strong\",\"table\",\"tbody\",\"thead\",\"td\",\"textarea\",\"th\",\"tr\",\"ul\",\"video\",], j = {\n    };\n    i.forEach(function(k) {\n        var l = function(m, n) {\n            if ((arguments.length > 2)) {\n                n = Array.prototype.slice.call(arguments, 1);\n            };\n            if ((!n && m)) {\n                n = m.children;\n                delete m.children;\n            }\n        ;\n            if (n) {\n                n = (Array.isArray(n) ? h(n) : h([n,]));\n            };\n            return g.create(k, m, n);\n        };\n        j[k] = l;\n    });\n    e.exports = j;\n});\n__d(\"LinkController\", [\"Event\",\"DataStore\",\"Parent\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DataStore\"), i = b(\"Parent\"), j = b(\"trackReferrer\"), k = \"LinkControllerHandler\", l = [], m = [];\n    function n(event) {\n        var r = i.byTag(event.getTarget(), \"a\"), s = (r && r.getAttribute(\"href\", 2));\n        if ((((!s || r.rel) || !p(s)) || h.get(r, k))) {\n            return\n        };\n        var t = g.listen(r, \"click\", function(u) {\n            if ((s.charAt((s.length - 1)) == \"#\")) {\n                u.prevent();\n                return;\n            }\n        ;\n            j(r, s);\n            o(r, u);\n        });\n        h.set(r, k, t);\n    };\n    function o(r, event) {\n        if ((((r.target || r.rel) || event.getModifiers().any) || ((event.which && (event.which != 1))))) {\n            return\n        };\n        var s = l.concat(m);\n        for (var t = 0, u = s.length; (t < u); t++) {\n            if ((s[t](r, event) === false)) {\n                return event.prevent()\n            };\n        };\n    };\n    function p(r) {\n        var s = r.match(/^(\\w+):/);\n        return (!s || s[1].match(/^http/i));\n    };\n    var q = {\n        registerHandler: function(r) {\n            l.push(r);\n        },\n        registerFallbackHandler: function(r) {\n            m.push(r);\n        }\n    };\n    g.listen(document.documentElement, \"mousedown\", n);\n    g.listen(document.documentElement, \"keydown\", n);\n    e.exports = q;\n});\n__d(\"MenuDeprecated\", [\"Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"Keys\",\"Parent\",\"Style\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"Parent\"), o = b(\"Style\"), p = b(\"UserAgent\"), q = b(\"copyProperties\"), r = b(\"emptyFunction\"), s = \"menu:mouseover\", t = null;\n    function u(ea) {\n        if (i.hasClass(ea, \"uiMenuContainer\")) {\n            return ea\n        };\n        return n.byClass(ea, \"uiMenu\");\n    };\n    function v(ea) {\n        return n.byClass(ea, \"uiMenuItem\");\n    };\n    function w(ea) {\n        if (document.activeElement) {\n            var fa = v(document.activeElement);\n            return ea.indexOf(fa);\n        }\n    ;\n        return -1;\n    };\n    function x(ea) {\n        return k.find(ea, \"a.itemAnchor\");\n    };\n    function y(ea) {\n        return i.hasClass(ea, \"checked\");\n    };\n    function z(ea) {\n        return (!i.hasClass(ea, \"disabled\") && (o.get(ea, \"display\") !== \"none\"));\n    };\n    function aa(event) {\n        var ea = document.activeElement;\n        if (((!ea || !n.byClass(ea, \"uiMenu\")) || !k.isInputNode(ea))) {\n            var fa = v(event.getTarget());\n            (fa && da.focusItem(fa));\n        }\n    ;\n    };\n    function ba(ea) {\n        (p.firefox() && x(ea).blur());\n        da.inform(\"select\", {\n            menu: u(ea),\n            item: ea\n        });\n    };\n    var ca = function() {\n        ca = r;\n        var ea = {\n        };\n        ea.click = function(event) {\n            var fa = v(event.getTarget());\n            if ((fa && z(fa))) {\n                ba(fa);\n                var ga = x(fa), ha = ga.href, ia = ga.getAttribute(\"rel\");\n                return (((ia && (ia !== \"ignore\"))) || ((ha && (ha.charAt((ha.length - 1)) !== \"#\"))));\n            }\n        ;\n        };\n        ea.keydown = function(event) {\n            var fa = event.getTarget();\n            if (event.getModifiers().any) {\n                return\n            };\n            if ((!t || k.isInputNode(fa))) {\n                return\n            };\n            var ga = g.getKeyCode(event), ha;\n            switch (ga) {\n              case m.UP:\n            \n              case m.DOWN:\n                var ia = da.getEnabledItems(t);\n                ha = w(ia);\n                da.focusItem(ia[(ha + (((ga === m.UP) ? -1 : 1)))]);\n                return false;\n              case m.SPACE:\n                var ja = v(fa);\n                if (ja) {\n                    ba(ja);\n                    event.prevent();\n                }\n            ;\n                break;\n              default:\n                var ka = String.fromCharCode(ga).toLowerCase(), la = da.getEnabledItems(t);\n                ha = w(la);\n                var ma = ha, na = la.length;\n                while ((((~ha && ((ma = (++ma % na)) !== ha))) || ((!~ha && (++ma < na))))) {\n                    var oa = da.getItemLabel(la[ma]);\n                    if ((oa && (oa.charAt(0).toLowerCase() === ka))) {\n                        da.focusItem(la[ma]);\n                        return false;\n                    }\n                ;\n                };\n            };\n        };\n        g.listen(document.body, ea);\n    }, da = q(new h(), {\n        focusItem: function(ea) {\n            if ((ea && z(ea))) {\n                this._removeSelected(u(ea));\n                i.addClass(ea, \"selected\");\n                x(ea).focus();\n            }\n        ;\n        },\n        getEnabledItems: function(ea) {\n            return da.getItems(ea).filter(z);\n        },\n        getCheckedItems: function(ea) {\n            return da.getItems(ea).filter(y);\n        },\n        getItems: function(ea) {\n            return k.scry(ea, \"li.uiMenuItem\");\n        },\n        getItemLabel: function(ea) {\n            return (ea.getAttribute(\"data-label\", 2) || \"\");\n        },\n        isItemChecked: function(ea) {\n            return i.hasClass(ea, \"checked\");\n        },\n        autoregister: function(ea, fa, ga) {\n            ea.subscribe(\"show\", function() {\n                da.register(fa, ga);\n            });\n            ea.subscribe(\"hide\", function() {\n                da.unregister(fa);\n            });\n        },\n        register: function(ea, fa) {\n            ea = u(ea);\n            ca();\n            if (!j.get(ea, s)) {\n                j.set(ea, s, g.listen(ea, \"mouseover\", aa));\n            };\n            if ((fa !== false)) {\n                t = ea;\n            };\n        },\n        setItemEnabled: function(ea, fa) {\n            if ((!fa && !k.scry(ea, \"span.disabledAnchor\")[0])) {\n                k.appendContent(ea, k.create(\"span\", {\n                    className: (k.find(ea, \"a\").className + \" disabledAnchor\")\n                }, l(x(ea).innerHTML)));\n            };\n            i.conditionClass(ea, \"disabled\", !fa);\n        },\n        toggleItem: function(ea) {\n            var fa = !da.isItemChecked(ea);\n            da.setItemChecked(ea, fa);\n        },\n        setItemChecked: function(ea, fa) {\n            i.conditionClass(ea, \"checked\", fa);\n            x(ea).setAttribute(\"aria-checked\", fa);\n        },\n        unregister: function(ea) {\n            ea = u(ea);\n            var fa = j.remove(ea, s);\n            (fa && fa.remove());\n            t = null;\n            this._removeSelected(ea);\n        },\n        _removeSelected: function(ea) {\n            da.getItems(ea).filter(function(fa) {\n                return i.hasClass(fa, \"selected\");\n            }).forEach(function(fa) {\n                i.removeClass(fa, \"selected\");\n            });\n        }\n    });\n    e.exports = da;\n});\n__d(\"coalesce\", [], function(a, b, c, d, e, f) {\n    function g() {\n        for (var h = 0; (h < arguments.length); ++h) {\n            if ((arguments[h] != null)) {\n                return arguments[h]\n            };\n        };\n        return null;\n    };\n    e.exports = g;\n});\n__d(\"OnVisible\", [\"Arbiter\",\"DOM\",\"Event\",\"Parent\",\"Run\",\"Vector\",\"ViewportBounds\",\"coalesce\",\"copyProperties\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"Event\"), j = b(\"Parent\"), k = b(\"Run\"), l = b(\"Vector\"), m = b(\"ViewportBounds\"), n = b(\"coalesce\"), o = b(\"copyProperties\"), p = b(\"queryThenMutateDOM\"), q = [], r, s = 0, t = [], u, v, w, x, y;\n    function z() {\n        q.forEach(function(fa) {\n            fa.remove();\n        });\n        if (v) {\n            v.remove();\n            u.remove();\n            r.unsubscribe();\n            v = u = r = null;\n        }\n    ;\n        s = 0;\n        q.length = 0;\n    };\n    function aa() {\n        if (!q.length) {\n            z();\n            return;\n        }\n    ;\n        t.length = 0;\n        w = l.getScrollPosition().y;\n        x = l.getViewportDimensions().y;\n        y = m.getTop();\n        for (var fa = 0; (fa < q.length); ++fa) {\n            var ga = q[fa];\n            if (isNaN(ga.elementHeight)) {\n                t.push(fa);\n            };\n            ga.elementHeight = l.getElementDimensions(ga.element).y;\n            ga.elementPos = l.getElementPosition(ga.element);\n            ga.hidden = j.byClass(ga.element, \"hidden_elem\");\n            if (ga.scrollArea) {\n                ga.scrollAreaHeight = l.getElementDimensions(ga.scrollArea).y;\n                ga.scrollAreaY = l.getElementPosition(ga.scrollArea).y;\n            }\n        ;\n        };\n        s = fa;\n    };\n    function ba() {\n        for (var fa = (Math.min(q.length, s) - 1); (fa >= 0); --fa) {\n            var ga = q[fa];\n            if (((!ga.elementPos || ga.removed) || ga.hidden)) {\n                q.splice(fa, 1);\n                continue;\n            }\n        ;\n            var ha = ((w + x) + ga.buffer), ia = false;\n            if ((ha > ga.elementPos.y)) {\n                var ja = (!ga.strict || ((((w + y) - ga.buffer) < ((ga.elementPos.y + ga.elementHeight)))));\n                ia = ja;\n                if ((ia && ga.scrollArea)) {\n                    var ka = ((ga.scrollAreaY + ga.scrollAreaHeight) + ga.buffer);\n                    ia = (((ga.elementPos.y > (ga.scrollAreaY - ga.buffer))) && ((ga.elementPos.y < ka)));\n                }\n            ;\n            }\n        ;\n            if ((ga.inverse ? !ia : ia)) {\n                ga.remove();\n                ga.handler((t.indexOf(fa) !== -1));\n            }\n        ;\n        };\n    };\n    function ca() {\n        da();\n        if (q.length) {\n            return\n        };\n        v = i.listen(window, \"scroll\", da);\n        u = i.listen(window, \"resize\", da);\n        r = g.subscribe(\"dom-scroll\", da);\n    };\n    function da() {\n        p(aa, ba, \"OnVisible/positionCheck\");\n    };\n    function ea(fa, ga, ha, ia, ja, ka) {\n        this.element = fa;\n        this.handler = ga;\n        this.strict = ha;\n        this.buffer = n(ia, 300);\n        this.inverse = n(ja, false);\n        this.scrollArea = (ka || null);\n        if (this.scrollArea) {\n            this.scrollAreaListener = i.listen(h.find(ka, \".uiScrollableAreaWrap\"), \"scroll\", this.checkBuffer);\n        };\n        if ((q.length === 0)) {\n            k.onLeave(z);\n        };\n        ca();\n        q.push(this);\n    };\n    o(ea, {\n        checkBuffer: da\n    });\n    o(ea.prototype, {\n        remove: function() {\n            this.removed = true;\n            if (this.scrollAreaListener) {\n                this.scrollAreaListener.remove();\n            };\n        },\n        reset: function() {\n            this.elementHeight = null;\n            this.removed = false;\n            ((q.indexOf(this) === -1) && q.push(this));\n            ca();\n        },\n        setBuffer: function(fa) {\n            this.buffer = fa;\n            da();\n        },\n        checkBuffer: function() {\n            da();\n        }\n    });\n    e.exports = ea;\n});\n__d(\"OnloadHooks\", [\"Arbiter\",\"ErrorUtils\",\"InitialJSLoader\",\"OnloadEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"InitialJSLoader\"), j = b(\"OnloadEvent\");\n    function k() {\n        var r = a.CavalryLogger;\n        if ((!window.loaded && r)) {\n            r.getInstance().setTimeStamp(\"t_prehooks\");\n        };\n        n(\"onloadhooks\");\n        if ((!window.loaded && r)) {\n            r.getInstance().setTimeStamp(\"t_hooks\");\n        };\n        window.loaded = true;\n        g.inform(\"uipage_onload\", true, g.BEHAVIOR_STATE);\n    };\n    function l() {\n        n(\"onafterloadhooks\");\n        window.afterloaded = true;\n    };\n    function m(r, s) {\n        return h.applyWithGuard(r, null, null, function(t) {\n            t.event_type = s;\n            t.category = \"runhook\";\n        });\n    };\n    function n(r) {\n        var s = (((r == \"onbeforeleavehooks\")) || ((r == \"onbeforeunloadhooks\")));\n        do {\n            var t = window[r];\n            if (!t) {\n                break;\n            };\n            if (!s) {\n                window[r] = null;\n            };\n            for (var u = 0; (u < t.length); u++) {\n                var v = m(t[u], r);\n                if ((s && v)) {\n                    return v\n                };\n            };\n        } while ((!s && window[r]));\n    };\n    function o() {\n        if (!window.loaded) {\n            window.loaded = true;\n            n(\"onloadhooks\");\n        }\n    ;\n        if (!window.afterloaded) {\n            window.afterloaded = true;\n            n(\"onafterloadhooks\");\n        }\n    ;\n    };\n    function p() {\n        g.registerCallback(k, [j.ONLOAD_DOMCONTENT_CALLBACK,i.INITIAL_JS_READY,]);\n        g.registerCallback(l, [j.ONLOAD_DOMCONTENT_CALLBACK,j.ONLOAD_CALLBACK,i.INITIAL_JS_READY,]);\n        g.subscribe(j.ONBEFOREUNLOAD, function(r, s) {\n            s.warn = (n(\"onbeforeleavehooks\") || n(\"onbeforeunloadhooks\"));\n            if (!s.warn) {\n                window.loaded = false;\n                window.afterloaded = false;\n            }\n        ;\n        }, g.SUBSCRIBE_NEW);\n        g.subscribe(j.ONUNLOAD, function(r, s) {\n            n(\"onunloadhooks\");\n            n(\"onafterunloadhooks\");\n        }, g.SUBSCRIBE_NEW);\n    };\n    var q = {\n        _onloadHook: k,\n        _onafterloadHook: l,\n        runHook: m,\n        runHooks: n,\n        keepWindowSetAsLoaded: o\n    };\n    p();\n    a.OnloadHooks = e.exports = q;\n});\n__d(\"areEqual\", [], function(a, b, c, d, e, f) {\n    var g = function(k, l, m, n) {\n        if ((k === l)) {\n            return ((k !== 0) || ((1 / k) == (1 / l)))\n        };\n        if (((k == null) || (l == null))) {\n            return false\n        };\n        if (((typeof k != \"object\") || (typeof l != \"object\"))) {\n            return false\n        };\n        var o = Object.prototype.toString, p = o.call(k);\n        if ((p != o.call(l))) {\n            return false\n        };\n        switch (p) {\n          case \"[object String]\":\n            return (k == String(l));\n          case \"[object Number]\":\n            return ((isNaN(k) || isNaN(l)) ? false : (k == Number(l)));\n          case \"[object Date]\":\n        \n          case \"[object Boolean]\":\n            return (+k == +l);\n          case \"[object RegExp]\":\n            return ((((k.source == l.source) && (k.global == l.global)) && (k.multiline == l.multiline)) && (k.ignoreCase == l.ignoreCase));\n        };\n        var q = m.length;\n        while (q--) {\n            if ((m[q] == k)) {\n                return (n[q] == l)\n            };\n        };\n        m.push(k);\n        n.push(l);\n        var r = 0;\n        if ((p === \"[object Array]\")) {\n            r = k.length;\n            if ((r !== l.length)) {\n                return false\n            };\n            while (r--) {\n                if (!g(k[r], l[r], m, n)) {\n                    return false\n                };\n            };\n        }\n         else {\n            if ((k.constructor !== l.constructor)) {\n                return false\n            };\n            if ((k.hasOwnProperty(\"valueOf\") && l.hasOwnProperty(\"valueOf\"))) {\n                return (k.valueOf() == l.valueOf())\n            };\n            var s = Object.keys(k);\n            if ((s.length != Object.keys(l).length)) {\n                return false\n            };\n            for (var t = 0; (t < s.length); t++) {\n                if (!g(k[s[t]], l[s[t]], m, n)) {\n                    return false\n                };\n            };\n        }\n    ;\n        m.pop();\n        n.pop();\n        return true;\n    }, h = [], i = [], j = function(k, l) {\n        var m = (h.length ? h.pop() : []), n = (i.length ? i.pop() : []), o = g(k, l, m, n);\n        m.length = 0;\n        n.length = 0;\n        h.push(m);\n        i.push(n);\n        return o;\n    };\n    e.exports = j;\n});\n__d(\"computeRelativeURI\", [\"URI\",\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = b(\"isEmpty\");\n    function i(k, l) {\n        if (!l) {\n            return k\n        };\n        if ((l.charAt(0) == \"/\")) {\n            return l\n        };\n        var m = k.split(\"/\").slice(0, -1);\n        (m[0] !== \"\");\n        l.split(\"/\").forEach(function(n) {\n            if (!((n == \".\"))) {\n                if ((n == \"..\")) {\n                    if ((m.length > 1)) {\n                        m = m.slice(0, -1);\n                    };\n                }\n                 else m.push(n);\n            \n            };\n        });\n        return m.join(\"/\");\n    };\n    function j(k, l) {\n        var m = new g(), n = l;\n        k = new g(k);\n        l = new g(l);\n        if ((l.getDomain() && !l.isFacebookURI())) {\n            return n\n        };\n        var o = k, p = [\"Protocol\",\"Domain\",\"Port\",\"Path\",\"QueryData\",\"Fragment\",];\n        p.forEach(function(q) {\n            var r = ((q == \"Path\") && (o === k));\n            if (r) {\n                m.setPath(i(k.getPath(), l.getPath()));\n            };\n            if (!h(l[(\"get\" + q)]())) {\n                o = l;\n            };\n            if (!r) {\n                m[(\"set\" + q)](o[(\"get\" + q)]());\n            };\n        });\n        return m;\n    };\n    e.exports = j;\n});\n__d(\"escapeJSQuotes\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if ((((typeof h == \"undefined\") || (h == null)) || !h.valueOf())) {\n            return \"\"\n        };\n        return h.toString().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\"/g, \"\\\\x22\").replace(/'/g, \"\\\\'\").replace(/</g, \"\\\\x3c\").replace(/>/g, \"\\\\x3e\").replace(/&/g, \"\\\\x26\");\n    };\n    e.exports = g;\n});\n__d(\"PageTransitions\", [\"Arbiter\",\"Dialog\",\"DOMQuery\",\"DOMScroll\",\"Env\",\"Event\",\"Form\",\"HistoryManager\",\"JSLogger\",\"LinkController\",\"OnloadHooks\",\"Parent\",\"URI\",\"UserAgent\",\"Vector\",\"areEqual\",\"clickRefAction\",\"computeRelativeURI\",\"copyProperties\",\"escapeJSQuotes\",\"ge\",\"goOrReplace\",\"htmlize\",\"setTimeoutAcrossTransitions\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Dialog\"), i = b(\"DOMQuery\"), j = b(\"DOMScroll\"), k = b(\"Env\"), l = b(\"Event\"), m = b(\"Form\"), n = b(\"HistoryManager\"), o = b(\"JSLogger\"), p = b(\"LinkController\"), q = b(\"OnloadHooks\"), r = b(\"Parent\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"areEqual\"), w = b(\"clickRefAction\"), x = b(\"computeRelativeURI\"), y = b(\"copyProperties\"), z = b(\"escapeJSQuotes\"), aa = b(\"ge\"), ba = b(\"goOrReplace\"), ca = b(\"htmlize\"), da = b(\"setTimeoutAcrossTransitions\"), ea = b(\"startsWith\"), fa = b(\"tx\"), ga = b(\"userAction\"), ha = {\n    };\n    function ia(ta, ua) {\n        ha[ta.getUnqualifiedURI()] = ua;\n    };\n    function ja(ta) {\n        return ha[ta.getUnqualifiedURI()];\n    };\n    function ka(ta) {\n        delete ha[ta.getUnqualifiedURI()];\n    };\n    var la = null, ma = null;\n    function na(ta) {\n        ma = ta;\n        da(function() {\n            ma = null;\n        }, 0);\n    };\n    function oa(event) {\n        if (ma) {\n            if (!event.isDefaultPrevented()) {\n                pa(ma);\n                sa.lookBusy(ma);\n                ra.go(ma.getAttribute(\"href\"));\n            }\n        ;\n            event.prevent();\n        }\n         else {\n            la = event.getTarget();\n            da(function() {\n                la = null;\n            }, 0);\n        }\n    ;\n    };\n    function pa(ta) {\n        var ua = ta.getAttribute(\"href\"), va = x(ra._most_recent_uri.getQualifiedURI(), ua).toString();\n        if ((ua != va)) {\n            ta.setAttribute(\"href\", va);\n        };\n    };\n    function qa(event) {\n        var ta = event.getTarget();\n        if ((m.getAttribute(ta, \"rel\") || m.getAttribute(ta, \"target\"))) {\n            return\n        };\n        w(\"form\", ta, event).set_namespace(\"page_transition\");\n        var ua = ga(\"page_transitions\", ta, event, {\n            mode: \"DEDUP\"\n        }).uai_fallback(null, \"form\"), va = a.ArbiterMonitor;\n        if (va) {\n            va.initUA(ua, [ta,]);\n        };\n        var wa = new s((m.getAttribute(ta, \"action\") || \"\")), xa = x(ra._most_recent_uri, wa);\n        ta.setAttribute(\"action\", xa.toString());\n        if ((((m.getAttribute(ta, \"method\") || \"GET\")).toUpperCase() === \"GET\")) {\n            var ya = m.serialize(ta), za = la;\n            if (((za && (((i.isNodeOfType(za, \"input\") && (za.type === \"submit\")) || (za = r.byTag(za, \"button\"))))) && za.name)) {\n                ya[za.name] = za.value;\n            };\n            ra.go(xa.addQueryData(ya));\n            event.kill();\n        }\n    ;\n    };\n    var ra = {\n        _transition_handlers: [],\n        _scroll_locked: false,\n        isInitialized: function() {\n            return !!ra._initialized;\n        },\n        _init: function() {\n            if (k.DISABLE_PAGE_TRANSITIONS) {\n                return\n            };\n            if ((!k.ALLOW_TRANSITION_IN_IFRAME && (window != window.top))) {\n                return\n            };\n            if (ra._initialized) {\n                return ra\n            };\n            ra._initialized = true;\n            var ta = s.getRequestURI(false), ua = ta.getUnqualifiedURI(), va = s(ua).setFragment(null), wa = ua.getFragment();\n            if (((wa.charAt(0) === \"!\") && (va.toString() === wa.substr(1)))) {\n                ua = va;\n            };\n            y(ra, {\n                _current_uri: ua,\n                _most_recent_uri: ua,\n                _next_uri: ua\n            });\n            var xa;\n            if (ea(ta.getFragment(), \"/\")) {\n                xa = ta.getFragment();\n            }\n             else xa = ua;\n        ;\n            n.init().setCanonicalLocation((\"#\" + xa)).registerURIHandler(ra._historyManagerHandler);\n            p.registerFallbackHandler(na);\n            l.listen(document, \"click\", oa, l.Priority._BUBBLE);\n            l.listen(document, \"submit\", qa, l.Priority._BUBBLE);\n            l.listen(window, \"scroll\", function() {\n                if (!ra._scroll_locked) {\n                    ia(ra._current_uri, u.getScrollPosition());\n                };\n            });\n            return ra;\n        },\n        registerHandler: function(ta, ua) {\n            ra._init();\n            ua = (ua || 5);\n            if (!ra._transition_handlers[ua]) {\n                ra._transition_handlers[ua] = [];\n            };\n            ra._transition_handlers[ua].push(ta);\n        },\n        getCurrentURI: function(ta) {\n            if ((!ra._current_uri && !ta)) {\n                return new s(ra._most_recent_uri)\n            };\n            return new s(ra._current_uri);\n        },\n        getMostRecentURI: function() {\n            return new s(ra._most_recent_uri);\n        },\n        getNextURI: function() {\n            return new s(ra._next_uri);\n        },\n        go: function(ta, ua) {\n            var va = new s(ta).removeQueryData(\"quickling\").getQualifiedURI();\n            o.create(\"pagetransition\").debug(\"go\", {\n                uri: va.toString()\n            });\n            ka(va);\n            (!ua && w(\"uri\", {\n                href: va.toString()\n            }, null, \"INDIRECT\"));\n            sa.lookBusy();\n            ra._loadPage(va, function(wa) {\n                if (wa) {\n                    n.go(va.toString(), false, ua);\n                }\n                 else ba(window.location, va, ua);\n            ;\n            });\n        },\n        _historyManagerHandler: function(ta) {\n            if ((ta.charAt(0) != \"/\")) {\n                return false\n            };\n            w(\"h\", {\n                href: ta\n            });\n            ga(\"page_transitions\").uai(null, \"history_manager\");\n            ra._loadPage(new s(ta), function(ua) {\n                if (!ua) {\n                    ba(window.location, ta, true);\n                };\n            });\n            return true;\n        },\n        _loadPage: function(ta, ua) {\n            if ((s(ta).getFragment() && v(s(ta).setFragment(null).getQualifiedURI(), s(ra._current_uri).setFragment(null).getQualifiedURI()))) {\n                if (ra.restoreScrollPosition(ta)) {\n                    ra._current_uri = ra._most_recent_uri = ta;\n                    sa.stopLookingBusy();\n                    return;\n                }\n            \n            };\n            var va;\n            if (ra._current_uri) {\n                va = ja(ra._current_uri);\n            };\n            ra._current_uri = null;\n            ra._next_uri = ta;\n            if (va) {\n                j.scrollTo(va, false);\n            };\n            var wa = function() {\n                ra._scroll_locked = true;\n                var ya = ra._handleTransition(ta);\n                (ua && ua(ya));\n            }, xa = q.runHooks(\"onbeforeleavehooks\");\n            if (xa) {\n                sa.stopLookingBusy();\n                ra._warnBeforeLeaving(xa, wa);\n            }\n             else wa();\n        ;\n        },\n        _handleTransition: function(ta) {\n            window.onbeforeleavehooks = undefined;\n            sa.lookBusy();\n            if (!ta.isSameOrigin()) {\n                return false\n            };\n            var ua = (window.AsyncRequest && window.AsyncRequest.getLastID());\n            g.inform(\"pre_page_transition\", {\n                from: ra.getMostRecentURI(),\n                to: ta\n            });\n            for (var va = (ra._transition_handlers.length - 1); (va >= 0); --va) {\n                var wa = ra._transition_handlers[va];\n                if (!wa) {\n                    continue;\n                };\n                for (var xa = (wa.length - 1); (xa >= 0); --xa) {\n                    if ((wa[xa](ta) === true)) {\n                        var ya = {\n                            sender: this,\n                            uri: ta,\n                            id: ua\n                        };\n                        try {\n                            g.inform(\"page_transition\", ya);\n                        } catch (za) {\n                        \n                        };\n                        return true;\n                    }\n                     else wa.splice(xa, 1);\n                ;\n                };\n            };\n            return false;\n        },\n        unifyURI: function() {\n            ra._current_uri = ra._most_recent_uri = ra._next_uri;\n        },\n        transitionComplete: function(ta) {\n            ra._executeCompletionCallback();\n            sa.stopLookingBusy();\n            ra.unifyURI();\n            if (!ta) {\n                ra.restoreScrollPosition(ra._current_uri);\n            };\n            try {\n                if ((document.activeElement && (document.activeElement.nodeName === \"A\"))) {\n                    document.activeElement.blur();\n                };\n            } catch (ua) {\n            \n            };\n        },\n        _executeCompletionCallback: function() {\n            if (ra._completionCallback) {\n                ra._completionCallback();\n            };\n            ra._completionCallback = null;\n        },\n        setCompletionCallback: function(ta) {\n            ra._completionCallback = ta;\n        },\n        rewriteCurrentURI: function(ta, ua) {\n            ra.registerHandler(function() {\n                if ((ta == ra.getMostRecentURI().getUnqualifiedURI().toString())) {\n                    ra.transitionComplete();\n                    return true;\n                }\n            ;\n            });\n            ra.go(ua, true);\n        },\n        _warnBeforeLeaving: function(ta, ua) {\n            new h().setTitle(\"Are you sure you want to leave this page?\").setBody(ca(ta)).setButtons([{\n                name: \"leave_page\",\n                label: \"Leave this Page\",\n                handler: ua\n            },{\n                name: \"continue_editing\",\n                label: \"Stay on this Page\",\n                className: \"inputaux\"\n            },]).setModal(true).show();\n        },\n        restoreScrollPosition: function(ta) {\n            ra._scroll_locked = false;\n            var ua = ja(ta);\n            if (ua) {\n                j.scrollTo(ua, false);\n                return true;\n            }\n        ;\n            function va(ya) {\n                if (!ya) {\n                    return null\n                };\n                var za = ((\"a[name='\" + z(ya)) + \"']\");\n                return (i.scry(document.body, za)[0] || aa(ya));\n            };\n            var wa = va(s(ta).getFragment());\n            if (wa) {\n                var xa = u.getElementPosition(wa);\n                xa.x = 0;\n                j.scrollTo(xa);\n                return true;\n            }\n        ;\n            return false;\n        }\n    }, sa = (window._BusyUIManager || {\n        _looking_busy: false,\n        _original_cursors: [],\n        lookBusy: function(ta) {\n            if (ta) {\n                sa._giveProgressCursor(ta);\n            };\n            if (sa._looking_busy) {\n                return\n            };\n            sa._looking_busy = true;\n            sa._giveProgressCursor(document.documentElement);\n        },\n        stopLookingBusy: function() {\n            if (!sa._looking_busy) {\n                return\n            };\n            sa._looking_busy = false;\n            while (sa._original_cursors.length) {\n                var ta = sa._original_cursors.pop(), ua = ta[0], va = ta[1];\n                if (ua.style) {\n                    ua.style.cursor = (va || \"\");\n                };\n            };\n        },\n        _giveProgressCursor: function(ta) {\n            if (!t.webkit()) {\n                sa._original_cursors.push([ta,ta.style.cursor,]);\n                ta.style.cursor = \"progress\";\n            }\n        ;\n        }\n    });\n    e.exports = ra;\n    a.PageTransitions = ra;\n});\n__d(\"PixelRatio\", [\"Arbiter\",\"Cookie\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Cookie\"), i = b(\"Run\"), j = \"dpr\", k, l;\n    function m() {\n        return (window.devicePixelRatio || 1);\n    };\n    function n() {\n        h.set(j, m());\n    };\n    function o() {\n        h.clear(j);\n    };\n    function p() {\n        var r = m();\n        if ((r !== k)) {\n            n();\n        }\n         else o();\n    ;\n    };\n    var q = {\n        startDetecting: function(r) {\n            k = (r || 1);\n            o();\n            if (l) {\n                return\n            };\n            l = [g.subscribe(\"pre_page_transition\", p),];\n            i.onBeforeUnload(p);\n        }\n    };\n    e.exports = q;\n});\n__d(\"LayerHideOnTransition\", [\"function-extensions\",\"PageTransitions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"PageTransitions\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n    h(i.prototype, {\n        _enabled: false,\n        _subscribed: false,\n        enable: function() {\n            this._enabled = true;\n            if (!this._subscribed) {\n                this._subscribe.bind(this).defer();\n                this._subscribed = true;\n            }\n        ;\n        },\n        disable: function() {\n            this._enabled = false;\n        },\n        _subscribe: function() {\n            g.registerHandler(function() {\n                if (this._enabled) {\n                    this._layer.hide();\n                };\n                this._subscribed = false;\n            }.bind(this));\n        }\n    });\n    e.exports = i;\n});\n__d(\"Rect\", [\"Vector\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Vector\"), h = b(\"$\"), i = b(\"copyProperties\");\n    function j(k, l, m, n, o) {\n        if ((arguments.length === 1)) {\n            if ((k instanceof j)) {\n                return k\n            };\n            if ((k instanceof g)) {\n                return new j(k.y, k.x, k.y, k.x, k.domain)\n            };\n            return j.getElementBounds(h(k));\n        }\n    ;\n        i(this, {\n            t: k,\n            r: l,\n            b: m,\n            l: n,\n            domain: (o || \"pure\")\n        });\n    };\n    i(j.prototype, {\n        w: function() {\n            return (this.r - this.l);\n        },\n        h: function() {\n            return (this.b - this.t);\n        },\n        toString: function() {\n            return ((((((((\"((\" + this.l) + \", \") + this.t) + \"), (\") + this.r) + \", \") + this.b) + \"))\");\n        },\n        contains: function(k) {\n            k = new j(k).convertTo(this.domain);\n            var l = this;\n            return (((((l.l <= k.l) && (l.r >= k.r)) && (l.t <= k.t)) && (l.b >= k.b)));\n        },\n        add: function(k, l) {\n            if ((arguments.length == 1)) {\n                if ((k.domain != \"pure\")) {\n                    k = k.convertTo(this.domain);\n                };\n                return this.add(k.x, k.y);\n            }\n        ;\n            var m = parseFloat(k), n = parseFloat(l);\n            return new j((this.t + n), (this.r + m), (this.b + n), (this.l + m), this.domain);\n        },\n        sub: function(k, l) {\n            if ((arguments.length == 1)) {\n                return this.add(k.mul(-1));\n            }\n             else return this.add(-k, -l)\n        ;\n        },\n        rotateAroundOrigin: function(k) {\n            var l = this.getCenter().rotate(((k * Math.PI) / 2)), m, n;\n            if ((k % 2)) {\n                m = this.h();\n                n = this.w();\n            }\n             else {\n                m = this.w();\n                n = this.h();\n            }\n        ;\n            var o = (l.y - (n / 2)), p = (l.x - (m / 2)), q = (o + n), r = (p + m);\n            return new j(o, r, q, p);\n        },\n        boundWithin: function(k) {\n            var l = 0, m = 0;\n            if ((this.l < k.l)) {\n                l = (k.l - this.l);\n            }\n             else if ((this.r > k.r)) {\n                l = (k.r - this.r);\n            }\n        ;\n            if ((this.t < k.t)) {\n                m = (k.t - this.t);\n            }\n             else if ((this.b > k.b)) {\n                m = (k.b - this.b);\n            }\n        ;\n            return this.add(l, m);\n        },\n        getCenter: function() {\n            return new g((this.l + (this.w() / 2)), (this.t + (this.h() / 2)), this.domain);\n        },\n        getPositionVector: function() {\n            return new g(this.l, this.t, this.domain);\n        },\n        getDimensionVector: function() {\n            return new g(this.w(), this.h(), \"pure\");\n        },\n        convertTo: function(k) {\n            if ((this.domain == k)) {\n                return this\n            };\n            if ((k == \"pure\")) {\n                return new j(this.t, this.r, this.b, this.l, \"pure\")\n            };\n            if ((this.domain == \"pure\")) {\n                return new j(0, 0, 0, 0)\n            };\n            var l = new g(this.l, this.t, this.domain).convertTo(k);\n            return new j(l.y, (l.x + this.w()), (l.y + this.h()), l.x, k);\n        }\n    });\n    i(j, {\n        deserialize: function(k) {\n            var l = k.split(\":\");\n            return new j(parseFloat(l[1]), parseFloat(l[2]), parseFloat(l[3]), parseFloat(l[0]));\n        },\n        newFromVectors: function(k, l) {\n            return new j(k.y, (k.x + l.x), (k.y + l.y), k.x, k.domain);\n        },\n        getElementBounds: function(k) {\n            return j.newFromVectors(g.getElementPosition(k), g.getElementDimensions(k));\n        },\n        getViewportBounds: function() {\n            return j.newFromVectors(g.getScrollPosition(), g.getViewportDimensions());\n        },\n        minimumBoundingBox: function(k) {\n            var l = new j(Math.min(), Math.max(), Math.max(), Math.min()), m;\n            for (var n = 0; (n < k.length); n++) {\n                m = k[n];\n                l.t = Math.min(l.t, m.t);\n                l.r = Math.max(l.r, m.r);\n                l.b = Math.max(l.b, m.b);\n                l.l = Math.min(l.l, m.l);\n            };\n            return l;\n        }\n    });\n    e.exports = j;\n});\n__d(\"SVGChecker\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        isSVG: function(g) {\n            return (!!g.ownerSVGElement || (g.tagName.toLowerCase() === \"svg\"));\n        },\n        isDisplayed: function(g) {\n            try {\n                var i = g.getBBox();\n                if ((i && (((i.height === 0) || (i.width === 0))))) {\n                    return false\n                };\n            } catch (h) {\n                return false;\n            };\n            return true;\n        }\n    };\n});\n__d(\"arrayContains\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return (h.indexOf(i) != -1);\n    };\n    e.exports = g;\n});\n__d(\"ContextualLayer\", [\"Event\",\"Arbiter\",\"ARIA\",\"Class\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"Layer\",\"LayerHideOnTransition\",\"Locale\",\"Parent\",\"Rect\",\"Style\",\"Vector\",\"SVGChecker\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",\"getOverlayZIndex\",\"removeFromArray\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ARIA\"), j = b(\"Class\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Layer\"), p = b(\"LayerHideOnTransition\"), q = b(\"Locale\"), r = b(\"Parent\"), s = b(\"Rect\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"SVGChecker\"), w = b(\"arrayContains\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"getOverlayZIndex\"), aa = b(\"removeFromArray\"), ba = b(\"throttle\");\n    function ca(ja) {\n        return ((ja.getPosition() === \"left\") || ((ja.isVertical() && (ja.getAlignment() === \"right\"))));\n    };\n    function da(ja) {\n        var ka = ja.parentNode;\n        if (ka) {\n            var la = t.get(ka, \"position\");\n            if ((la === \"static\")) {\n                if ((ka === document.body)) {\n                    ka = document.documentElement;\n                }\n                 else ka = da(ka);\n            ;\n            }\n             else return ka\n        ;\n        }\n         else ka = document.documentElement;\n    ;\n        return ka;\n    };\n    function ea(ja, ka) {\n        this.parent.construct(this, ja, ka);\n    };\n    var fa = [];\n    h.subscribe(\"reflow\", function() {\n        fa.forEach(function(ja) {\n            if ((ja.updatePosition() === false)) {\n                ja.hide();\n            };\n        });\n    });\n    j.extend(ea, o);\n    x(ea.prototype, {\n        _contentWrapper: null,\n        _content: null,\n        _contextNode: null,\n        _contextBounds: null,\n        _contextSelector: null,\n        _parentLayer: null,\n        _parentSubscription: null,\n        _orientation: null,\n        _orientationClass: null,\n        _shouldSetARIAProperties: true,\n        _configure: function(ja, ka) {\n            this.parent._configure(ja, ka);\n            if (ja.context) {\n                this.setContext(ja.context);\n            }\n             else if (ja.contextID) {\n                this._setContextID(ja.contextID);\n            }\n             else if (ja.contextSelector) {\n                this._setContextSelector(ja.contextSelector);\n            }\n            \n        ;\n            this.setPosition(ja.position);\n            this.setAlignment(ja.alignment);\n            this.setOffsetX(ja.offsetX);\n            this.setOffsetY(ja.offsetY);\n            this._content = ka;\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([p,]);\n        },\n        _buildWrapper: function(ja, ka) {\n            this._contentWrapper = n.create(\"div\", {\n                className: \"uiContextualLayer\"\n            }, ka);\n            return n.create(\"div\", {\n                className: \"uiContextualLayerPositioner\"\n            }, this._contentWrapper);\n        },\n        getInsertParent: function() {\n            var ja = this._insertParent;\n            if (!ja) {\n                var ka = this.getContext();\n                if (ka) {\n                    ja = r.byClass(ka, \"uiContextualLayerParent\");\n                };\n            }\n        ;\n            return (ja || this.parent.getInsertParent());\n        },\n        setContent: function(ja) {\n            this._content = ja;\n            n.setContent(this._contentWrapper, this._content);\n            (this._shown && this.updatePosition());\n            return this;\n        },\n        setContext: function(ja) {\n            return this.setContextWithBounds(ja, null);\n        },\n        setContextWithBounds: function(ja, ka) {\n            this._contextNode = ja;\n            this._contextBounds = (ka || null);\n            this._contextSelector = this._contextScrollParent = null;\n            if (this._shown) {\n                k.register(this.getRoot(), this._contextNode);\n                this.updatePosition();\n            }\n        ;\n            this._setParentSubscription();\n            this.setARIAProperties();\n            return this;\n        },\n        shouldSetARIAProperties: function(ja) {\n            this._shouldSetARIAProperties = ja;\n            return this;\n        },\n        setARIAProperties: function() {\n            if (this._shouldSetARIAProperties) {\n                i.setPopup(this.getCausalElement(), this.getRoot());\n            };\n            return this;\n        },\n        _setContextID: function(ja) {\n            this._contextSelector = (\"#\" + ja);\n            this._contextNode = null;\n        },\n        _setContextSelector: function(ja) {\n            this._contextSelector = ja;\n            this._contextNode = null;\n        },\n        getCausalElement: function() {\n            return (this.parent.getCausalElement() || this.getContext());\n        },\n        _setParentSubscription: function() {\n            var ja = this.getContext(), ka = null;\n            while ((ja !== null)) {\n                ka = m.get(ja, \"layer\");\n                if (ka) {\n                    break;\n                };\n                ja = ja.parentNode;\n            };\n            if ((ka === this._parentLayer)) {\n                return\n            };\n            if ((this._parentLayer && this._parentSubscription)) {\n                this._parentLayer.unsubscribe(this._parentSubscription);\n                this._parentSubscription = null;\n            }\n        ;\n            if (ka) {\n                this._parentSubscription = ka.subscribe(\"hide\", this.hide.bind(this));\n            };\n            this._parentLayer = ka;\n        },\n        setPosition: function(ja) {\n            if (this._getOrientation().setDefaultPosition(ja)) {\n                (this._shown && this.updatePosition());\n            };\n            return this;\n        },\n        setAlignment: function(ja) {\n            if (this._getOrientation().setDefaultAlignment(ja)) {\n                (this._shown && this.updatePosition());\n            };\n            return this;\n        },\n        setOffsetX: function(ja) {\n            if (this._getOrientation().setDefaultOffsetX(ja)) {\n                (this._shown && this.updatePosition());\n            };\n            return this;\n        },\n        setOffsetY: function(ja) {\n            if (this._getOrientation().setDefaultOffsetY(ja)) {\n                (this._shown && this.updatePosition());\n            };\n            return this;\n        },\n        _getOrientation: function() {\n            if (!this._orientation) {\n                this._orientation = new ia();\n            };\n            return this._orientation;\n        },\n        getContentRoot: function() {\n            return this._contentWrapper;\n        },\n        getContent: function() {\n            return this._content;\n        },\n        getContext: function() {\n            if (!this._contextNode) {\n                this._contextNode = n.find(document, this._contextSelector);\n            };\n            return this._contextNode;\n        },\n        getContextBounds: function(ja) {\n            if (this._contextBounds) {\n                return this._contextBounds.convertTo(ja)\n            };\n            var ka = this.getContext();\n            return s.newFromVectors(u.getElementPosition(ka, ja), u.getElementDimensions(ka));\n        },\n        getContextScrollParent: function() {\n            if (!this._contextScrollParent) {\n                this._contextScrollParent = t.getScrollParent(this.getContext());\n            };\n            return this._contextScrollParent;\n        },\n        setInsertParent: function(ja) {\n            this._insertScrollParent = null;\n            return this.parent.setInsertParent(ja);\n        },\n        getInsertScrollParent: function() {\n            if (!this._insertScrollParent) {\n                this._insertScrollParent = t.getScrollParent(this.getInsertParent());\n            };\n            return this._insertScrollParent;\n        },\n        show: function() {\n            if (this._shown) {\n                return this\n            };\n            this.parent.show();\n            if (this._shown) {\n                k.register(this.getRoot(), this.getContext());\n                fa.push(this);\n                this._resizeListener = (this._resizeListener || g.listen(window, \"resize\", ba(this.updatePosition.bind(this))));\n            }\n        ;\n            return this;\n        },\n        finishHide: function() {\n            aa(fa, this);\n            (this._resizeListener && this._resizeListener.remove());\n            this._resizeListener = null;\n            return this.parent.finishHide();\n        },\n        isFixed: function() {\n            return ((t.isFixed(this.getContext()) && !t.isFixed(this.getInsertParent())));\n        },\n        updatePosition: function() {\n            var ja = this.getContext();\n            if (!ja) {\n                return false\n            };\n            var ka = this.isFixed();\n            if ((!ka && !((ja.offsetParent || ((v.isSVG(ja) && v.isDisplayed(ja))))))) {\n                return false\n            };\n            var la = this.getRoot();\n            t.set(la, \"width\", (u.getViewportDimensions().x + \"px\"));\n            var ma = this._getOrientation();\n            this.inform(\"adjust\", ma.reset());\n            if (!ma.isValid()) {\n                return false\n            };\n            this._updateWrapperPosition(ma);\n            this._updateWrapperClass(ma);\n            l.conditionClass(la, \"uiContextualLayerPositionerFixed\", ka);\n            var na, oa, pa = (ka ? \"viewport\" : \"document\"), qa = (ka ? document.documentElement : da(la));\n            if ((qa === document.documentElement)) {\n                na = new u(0, 0);\n                oa = document.documentElement.clientWidth;\n            }\n             else if (!la.offsetParent) {\n                return false;\n            }\n             else {\n                na = u.getElementPosition(qa, pa);\n                oa = qa.offsetWidth;\n                if ((qa !== document.body)) {\n                    na = na.sub(new u(qa.scrollLeft, qa.scrollTop));\n                };\n            }\n            \n        ;\n            var ra = this.getContextBounds(pa), sa = (ra.l - na.x), ta = (ra.t - na.y), ua = ra.h(), va = ra.w(), wa = q.isRTL();\n            if ((ma.getPosition() === \"below\")) {\n                ta += ua;\n            };\n            if (((((ma.getPosition() === \"right\") || ((ma.isVertical() && (ma.getAlignment() === \"right\"))))) != wa)) {\n                sa += va;\n            };\n            var xa = ma.getOffsetX();\n            if ((ma.isVertical() && (ma.getAlignment() === \"center\"))) {\n                xa += (((va - this.getContentRoot().offsetWidth)) / 2);\n            };\n            if (wa) {\n                xa *= -1;\n            };\n            var ya = \"left\", za = Math.floor((sa + xa));\n            if ((ca(ma) !== wa)) {\n                ya = \"right\";\n                za = (oa - za);\n            }\n        ;\n            t.set(la, ya, (za + \"px\"));\n            t.set(la, ((ya === \"left\") ? \"right\" : \"left\"), \"\");\n            var ab = this.getInsertScrollParent(), bb;\n            if ((ab !== window)) {\n                bb = ab.clientWidth;\n            }\n             else bb = document.documentElement.clientWidth;\n        ;\n            var cb = u.getElementPosition(la).x;\n            if ((ya === \"left\")) {\n                if (((bb - cb) > 0)) {\n                    t.set(la, \"width\", (((bb - cb)) + \"px\"));\n                }\n                 else t.set(la, \"width\", \"\");\n            ;\n            }\n             else t.set(la, \"width\", ((cb + la.offsetWidth) + \"px\"));\n        ;\n            t.set(la, \"top\", (((ta + ma.getOffsetY())) + \"px\"));\n            var db = z(ja, this.getInsertParent());\n            t.set(la, \"z-index\", ((db > 200) ? db : \"\"));\n            this.inform(\"reposition\", ma);\n            return true;\n        },\n        _updateWrapperPosition: function(ja) {\n            var ka = (ja.getPosition() === \"above\");\n            t.set(this._contentWrapper, \"bottom\", (ka ? \"0\" : null));\n            var la = (q.isRTL() ? \"left\" : \"right\"), ma = ca(ja);\n            t.set(this._contentWrapper, la, (ma ? \"0\" : null));\n        },\n        _updateWrapperClass: function(ja) {\n            var ka = ja.getClassName();\n            if ((ka === this._orientationClass)) {\n                return\n            };\n            if (this._orientationClass) {\n                l.removeClass(this._contentWrapper, this._orientationClass);\n            };\n            this._orientationClass = ka;\n            l.addClass(this._contentWrapper, ka);\n        },\n        simulateOrientation: function(ja, ka) {\n            var la = ja.getClassName();\n            if ((la === this._orientationClass)) {\n                return ka();\n            }\n             else {\n                if (this._orientationClass) {\n                    l.removeClass(this._contentWrapper, this._orientationClass);\n                };\n                l.addClass(this._contentWrapper, la);\n                var ma = ka();\n                l.removeClass(this._contentWrapper, la);\n                if (this._orientationClass) {\n                    l.addClass(this._contentWrapper, this._orientationClass);\n                };\n                return ma;\n            }\n        ;\n        },\n        destroy: function() {\n            this.parent.destroy();\n            this._contentWrapper = null;\n            this._content = null;\n            return this;\n        }\n    });\n    var ga = y.thatReturnsArgument, ha = y.thatReturnsArgument;\n    function ia() {\n        this._default = {\n            _position: \"above\",\n            _alignment: \"left\",\n            _offsetX: 0,\n            _offsetY: 0,\n            _valid: true\n        };\n        this.reset();\n    };\n    ia.OPPOSITE = {\n        above: \"below\",\n        below: \"above\",\n        left: \"right\",\n        right: \"left\"\n    };\n    x(ia.prototype, {\n        setPosition: function(ja) {\n            this._position = ga(ja);\n            return this;\n        },\n        setAlignment: function(ja) {\n            this._alignment = ha(ja);\n            return this;\n        },\n        getOppositePosition: function() {\n            return ia.OPPOSITE[this.getPosition()];\n        },\n        invalidate: function() {\n            this._valid = false;\n            return this;\n        },\n        getPosition: function() {\n            return (this._position || \"above\");\n        },\n        getAlignment: function() {\n            return (this._alignment || \"left\");\n        },\n        getOffsetX: function() {\n            var ja = (this._offsetX || 0);\n            if (!this.isVertical()) {\n                if ((this._default._position !== this._position)) {\n                    ja *= -1;\n                };\n            }\n             else if ((this._default._alignment !== this._alignment)) {\n                ja *= -1;\n            }\n        ;\n            return ja;\n        },\n        getOffsetY: function() {\n            var ja = (this._offsetY || 0);\n            if ((this.isVertical() && (this._default._position !== this._position))) {\n                ja *= -1;\n            };\n            return ja;\n        },\n        getClassName: function() {\n            var ja = this.getAlignment(), ka = this.getPosition();\n            if ((ka === \"below\")) {\n                if ((ja === \"left\")) {\n                    return \"uiContextualLayerBelowLeft\";\n                }\n                 else if ((ja === \"right\")) {\n                    return \"uiContextualLayerBelowRight\";\n                }\n                 else return \"uiContextualLayerBelowCenter\"\n                \n            ;\n            }\n             else if ((ka === \"above\")) {\n                if ((ja === \"left\")) {\n                    return \"uiContextualLayerAboveLeft\";\n                }\n                 else if ((ja === \"right\")) {\n                    return \"uiContextualLayerAboveRight\";\n                }\n                 else return \"uiContextualLayerAboveCenter\"\n                \n            ;\n            }\n             else if ((ka === \"left\")) {\n                return \"uiContextualLayerLeft\";\n            }\n             else return \"uiContextualLayerRight\"\n            \n            \n        ;\n        },\n        isValid: function() {\n            return this._valid;\n        },\n        isVertical: function() {\n            return ((this.getPosition() === \"above\") || (this.getPosition() === \"below\"));\n        },\n        reset: function(ja, ka) {\n            x(this, this._default);\n            return this;\n        },\n        setDefaultPosition: function(ja) {\n            var ka = this._default._position;\n            this._default._position = ga(ja);\n            return (ka !== ja);\n        },\n        setDefaultAlignment: function(ja) {\n            var ka = this._default._alignment;\n            this._default._alignment = ha(ja);\n            return (ka !== ja);\n        },\n        setDefaultOffsetX: function(ja) {\n            var ka = this._default._offsetX;\n            this._default._offsetX = ja;\n            return (ka !== ja);\n        },\n        setDefaultOffsetY: function(ja) {\n            var ka = this._default._offsetY;\n            this._default._offsetY = ja;\n            return (ka !== ja);\n        }\n    });\n    e.exports = ea;\n});\n__d(\"ContextualLayerHideOnScroll\", [\"Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n    h(i.prototype, {\n        _subscriptions: [],\n        enable: function() {\n            this._subscriptions = [this._layer.subscribe(\"contextchange\", this._handleContextChange.bind(this)),this._layer.subscribe(\"show\", this.attach.bind(this)),this._layer.subscribe(\"hide\", this.detach.bind(this)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();;\n            };\n            this.detach();\n        },\n        attach: function() {\n            if (this._listener) {\n                return\n            };\n            var j = this._layer.getContextScrollParent();\n            if ((j === window)) {\n                return\n            };\n            this._listener = g.listen(j, \"scroll\", this._layer.hide.bind(this._layer));\n        },\n        detach: function() {\n            (this._listener && this._listener.remove());\n            this._listener = null;\n        },\n        _handleContextChange: function() {\n            this.detach();\n            if (this._layer.isShown()) {\n                this.attach();\n            };\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerHideOnEscape\", [\"Event\",\"copyProperties\",\"Keys\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\"), i = b(\"Keys\");\n    function j(k) {\n        this._layer = k;\n    };\n    h(j.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"key\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(k, event) {\n            if ((g.getKeyCode(event) === i.ESC)) {\n                this._layer.hide();\n                return false;\n            }\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"TabbableElements\", [\"Style\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\"), h = b(\"createArrayFrom\");\n    function i(l) {\n        if ((l.tabIndex >= 0)) {\n            return true\n        };\n        switch (l.tagName) {\n          case \"A\":\n            return (l.href && (l.rel != \"ignore\"));\n          case \"INPUT\":\n            return (((l.type != \"hidden\") && (l.type != \"file\")) && !l.disabled);\n          case \"BUTTON\":\n        \n          case \"SELECT\":\n        \n          case \"TEXTAREA\":\n            return !l.disabled;\n        };\n        return false;\n    };\n    function j(l) {\n        if (((l.offsetHeight === 0) && (l.offsetWidth === 0))) {\n            return false\n        };\n        while (((l !== document) && (g.get(l, \"visibility\") != \"hidden\"))) {\n            l = l.parentNode;;\n        };\n        return (l === document);\n    };\n    var k = {\n        find: function(l) {\n            var m = h(l.getElementsByTagName(\"*\"));\n            return m.filter(k.isTabbable);\n        },\n        isTabbable: function(l) {\n            return (i(l) && j(l));\n        }\n    };\n    e.exports = k;\n});\n__d(\"Toggler\", [\"Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualThing\",\"CSS\",\"DataStore\",\"Dialog\",\"DOM\",\"DOMQuery\",\"Focus\",\"Parent\",\"TabbableElements\",\"arrayContains\",\"cx\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"ge\",\"getContextualParent\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualThing\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"Dialog\"), n = b(\"DOM\"), o = b(\"DOMQuery\"), p = b(\"Focus\"), q = b(\"Parent\"), r = b(\"TabbableElements\"), s = b(\"arrayContains\"), t = b(\"cx\"), u = b(\"copyProperties\"), v = b(\"createArrayFrom\"), w = b(\"emptyFunction\"), x = b(\"ge\"), y = b(\"getContextualParent\"), z = b(\"getObjectValues\"), aa = [], ba;\n    function ca() {\n        ca = w;\n        g.listen(document.documentElement, \"click\", function(event) {\n            var ga = event.getTarget();\n            aa.forEach(function(ha) {\n                ha.clickedTarget = ga;\n                ((((((ha.active && !ha.sticky) && !j.containsIncludingLayers(ha.getActive(), ga)) && !ha.inTargetFlyout(ga)) && ha.inActiveDialog()) && !ha.isIgnoredByModalLayer(ga)) && ha.hide());\n            });\n        }, g.Priority.URGENT);\n    };\n    var da = function() {\n        this.active = null;\n        this.togglers = {\n        };\n        this.setSticky(false);\n        aa.push(this);\n        this.subscribe([\"show\",\"hide\",], da.inform.bind(da));\n        return ca();\n    };\n    u(da.prototype, i, {\n        show: function(ga) {\n            var ha = ea(this, ga), ia = ha.active;\n            if ((ga !== ia)) {\n                (ia && ha.hide());\n                ha.active = ga;\n                k.addClass(ga, \"openToggler\");\n                var ja = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n                if (((ja.length > 0) && ja[0].getAttribute(\"data-target\"))) {\n                    k.removeClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n                };\n                var ka = o.scry(ga, \".uiToggleFlyout\")[0];\n                if (ka) {\n                    var la = (r.find(ka)[0] || ka);\n                    if ((la.tabIndex == -1)) {\n                        la.tabIndex = 0;\n                    };\n                    p.setWithoutOutline(la);\n                }\n            ;\n                n.appendContent(ga, ha.getToggler(\"next\"));\n                n.prependContent(ga, ha.getToggler(\"prev\"));\n                ha.inform(\"show\", ha);\n            }\n        ;\n        },\n        hide: function(ga) {\n            var ha = ea(this, ga), ia = ha.active;\n            if ((ia && ((!ga || (ga === ia))))) {\n                k.removeClass(ia, \"openToggler\");\n                var ja = n.scry(ia, \"a[rel=\\\"toggle\\\"]\");\n                if (((ja.length > 0) && ja[0].getAttribute(\"data-target\"))) {\n                    k.addClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n                };\n                z(ha.togglers).forEach(n.remove);\n                ha.inform(\"hide\", ha);\n                ha.active = null;\n            }\n        ;\n        },\n        toggle: function(ga) {\n            var ha = ea(this, ga);\n            if ((ha.active === ga)) {\n                ha.hide();\n            }\n             else ha.show(ga);\n        ;\n        },\n        getActive: function() {\n            return ea(this).active;\n        },\n        isShown: function() {\n            return (ea(this).active && k.hasClass(ea(this).active, \"openToggler\"));\n        },\n        inTargetFlyout: function(ga) {\n            var ha = fa(this.getActive());\n            return (ha && j.containsIncludingLayers(ha, ga));\n        },\n        inActiveDialog: function() {\n            var ga = m.getCurrent();\n            return (!ga || n.contains(ga.getRoot(), this.getActive()));\n        },\n        isIgnoredByModalLayer: function(ga) {\n            return (q.byClass(ga, \"_3qw\") && !q.byClass(this.getActive(), \"_3qw\"));\n        },\n        getToggler: function(ga) {\n            var ha = ea(this);\n            if (!ha.togglers[ga]) {\n                ha.togglers[ga] = n.create(\"button\", {\n                    className: \"hideToggler\",\n                    onfocus: function() {\n                        var ia = n.scry(ha.active, \"a[rel=\\\"toggle\\\"]\")[0];\n                        (ia && ia.focus());\n                        ha.hide();\n                    }\n                });\n                ha.togglers[ga].setAttribute(\"type\", \"button\");\n            }\n        ;\n            return this.togglers[ga];\n        },\n        setSticky: function(ga) {\n            var ha = ea(this);\n            ga = (ga !== false);\n            if ((ga !== ha.sticky)) {\n                ha.sticky = ga;\n                if (ga) {\n                    (ha._pt && ha._pt.unsubscribe());\n                }\n                 else ha._pt = h.subscribe(\"pre_page_transition\", ha.hide.bind(ha, null));\n            ;\n            }\n        ;\n            return ha;\n        }\n    });\n    u(da, da.prototype);\n    u(da, {\n        bootstrap: function(ga) {\n            var ha = ga.parentNode;\n            da.getInstance(ha).toggle(ha);\n        },\n        createInstance: function(ga) {\n            var ha = new da().setSticky(true);\n            l.set(ga, \"toggler\", ha);\n            return ha;\n        },\n        destroyInstance: function(ga) {\n            l.remove(ga, \"toggler\");\n        },\n        getInstance: function(ga) {\n            while (ga) {\n                var ha = l.get(ga, \"toggler\");\n                if (ha) {\n                    return ha\n                };\n                if (k.hasClass(ga, \"uiToggleContext\")) {\n                    return da.createInstance(ga)\n                };\n                ga = y(ga);\n            };\n            return (ba = (ba || new da()));\n        },\n        listen: function(ga, ha, ia) {\n            return da.subscribe(v(ga), function(ja, ka) {\n                if ((ka.getActive() === ha)) {\n                    return ia(ja, ka)\n                };\n            });\n        },\n        subscribe: (function(ga) {\n            return function(ha, ia) {\n                ha = v(ha);\n                if (s(ha, \"show\")) {\n                    aa.forEach(function(ja) {\n                        if (ja.getActive()) {\n                            ia.curry(\"show\", ja).defer();\n                        };\n                    });\n                };\n                return ga(ha, ia);\n            };\n        })(da.subscribe.bind(da))\n    });\n    function ea(ga, ha) {\n        if ((ga instanceof da)) {\n            return ga\n        };\n        return da.getInstance(ha);\n    };\n    function fa(ga) {\n        var ha = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n        if (((ha.length > 0) && ha[0].getAttribute(\"data-target\"))) {\n            return x(ha[0].getAttribute(\"data-target\"))\n        };\n    };\n    e.exports = da;\n});\n__d(\"curry\", [\"bind\",], function(a, b, c, d, e, f) {\n    var g = b(\"bind\"), h = g(null, g, null);\n    e.exports = h;\n});\n__d(\"Popover\", [\"Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualLayer\",\"ContextualLayerHideOnScroll\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"Keys\",\"KeyStatus\",\"LayerHideOnEscape\",\"Toggler\",\"copyProperties\",\"curry\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerHideOnScroll\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Focus\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"LayerHideOnEscape\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"curry\");\n    s.subscribe([\"show\",\"hide\",], function(w, x) {\n        var y = m.get(x.getActive(), \"Popover\");\n        if (y) {\n            if ((w === \"show\")) {\n                y.showLayer();\n            }\n             else y.hideLayer();\n        \n        };\n    });\n    function v(w, x, y, z) {\n        this._root = w;\n        this._triggerElem = x;\n        this._behaviors = y;\n        this._config = (z || {\n        });\n        this._disabled = !!this._config.disabled;\n        this._listeners = [];\n        if ((!this._disabled && (((x.nodeName !== \"A\") || (x.rel !== \"toggle\"))))) {\n            this._setupClickListener();\n        };\n        this._setupKeyListener();\n        x.setAttribute(\"role\", \"button\");\n        m.set(w, \"Popover\", this);\n    };\n    t(v.prototype, i, {\n        _layer: null,\n        ensureInit: function() {\n            if (!this._layer) {\n                this._init();\n            };\n        },\n        showLayer: function() {\n            this.ensureInit();\n            this._layer.show();\n            s.show(this._root);\n            l.addClass(this._root, \"selected\");\n            this.inform(\"show\");\n            this._triggerElem.setAttribute(\"aria-expanded\", \"true\");\n        },\n        getLayer: function() {\n            return this._layer;\n        },\n        hideLayer: function() {\n            this._layer.hide();\n            this._triggerElem.setAttribute(\"aria-expanded\", \"false\");\n        },\n        isShown: function() {\n            return (this._layer && this._layer.isShown());\n        },\n        setLayerContent: function(w) {\n            this.ensureInit();\n            this._layer.setContent(w);\n        },\n        _init: function() {\n            var w = new j({\n                context: this._triggerElem,\n                position: \"below\"\n            }, n.create(\"div\"));\n            w.enableBehaviors([k,r,]);\n            s.createInstance(w.getRoot()).setSticky(false);\n            w.subscribe(\"hide\", this._onLayerHide.bind(this));\n            (this._behaviors && w.enableBehaviors(this._behaviors));\n            this._layer = w;\n            if (this._config.alignh) {\n                this._layer.setAlignment(this._config.alignh);\n            };\n            if (this._config.layer_content) {\n                this._layer.setContent(this._config.layer_content);\n            };\n            this.inform(\"init\", null, h.BEHAVIOR_PERSISTENT);\n        },\n        _onLayerHide: function() {\n            s.hide(this._root);\n            l.removeClass(this._root, \"selected\");\n            this.inform(\"hide\");\n            if ((q.getKeyDownCode() === p.ESC)) {\n                o.set(this._triggerElem);\n            };\n        },\n        enable: function() {\n            if (!this._disabled) {\n                return\n            };\n            this._setupClickListener();\n            this._setupKeyListener();\n            this._disabled = false;\n        },\n        disable: function() {\n            if (this._disabled) {\n                return\n            };\n            if (this.isShown()) {\n                this.hideLayer();\n            };\n            while (this._listeners.length) {\n                this._listeners.pop().remove();;\n            };\n            if ((this._triggerElem.getAttribute(\"rel\") === \"toggle\")) {\n                this._triggerElem.removeAttribute(\"rel\");\n            };\n            this._disabled = true;\n        },\n        _setupClickListener: function() {\n            this._listeners.push(g.listen(this._triggerElem, \"click\", u(s.bootstrap, this._triggerElem)));\n        },\n        _setupKeyListener: function() {\n            this._listeners.push(g.listen(this._triggerElem, \"keydown\", this._handleKeyEvent.bind(this)));\n        },\n        _handleKeyEvent: function(event) {\n            if (event.getModifiers().any) {\n                return\n            };\n            switch (g.getKeyCode(event)) {\n              case p.DOWN:\n            \n              case p.UP:\n                s.bootstrap(this._triggerElem);\n                break;\n              default:\n                return;\n            };\n            event.prevent();\n        }\n    });\n    e.exports = v;\n});\n__d(\"PopoverMenu\", [\"Event\",\"Arbiter\",\"ArbiterMixin\",\"ARIA\",\"BehaviorsMixin\",\"Focus\",\"Keys\",\"KeyStatus\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ARIA\"), k = b(\"BehaviorsMixin\"), l = b(\"Focus\"), m = b(\"Keys\"), n = b(\"KeyStatus\"), o = b(\"copyProperties\");\n    function p(q, r, s, t) {\n        this._popover = q;\n        this._triggerElem = r;\n        this._initialMenu = s;\n        q.subscribe(\"init\", this._onLayerInit.bind(this));\n        q.subscribe(\"show\", this._onPopoverShow.bind(this));\n        q.subscribe(\"hide\", this._onPopoverHide.bind(this));\n        g.listen(this._triggerElem, \"keydown\", this._handleKeyEventOnTrigger.bind(this));\n        (t && this.enableBehaviors(t));\n    };\n    o(p.prototype, i, k);\n    o(p.prototype, {\n        _popoverShown: false,\n        setMenu: function(q) {\n            this._menu = q;\n            var r = q.getRoot();\n            this._popover.setLayerContent(r);\n            q.subscribe(\"done\", this._onMenuDone.bind(this));\n            if (this._popoverShown) {\n                this._menu.onShow();\n            };\n            j.owns(this._triggerElem, r);\n            this.inform(\"setMenu\", null, h.BEHAVIOR_PERSISTENT);\n        },\n        getPopover: function() {\n            return this._popover;\n        },\n        getTriggerElem: function() {\n            return this._triggerElem;\n        },\n        getMenu: function() {\n            return this._menu;\n        },\n        _onLayerInit: function() {\n            this.setMenu(this._initialMenu);\n            this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n        },\n        _onPopoverShow: function() {\n            if (this._menu) {\n                this._menu.onShow();\n            };\n            this._popoverShown = true;\n        },\n        _onPopoverHide: function() {\n            if (this._menu) {\n                this._menu.onHide();\n            };\n            this._popoverShown = false;\n        },\n        _handleKeyEvent: function(q, r) {\n            var s = g.getKeyCode(r);\n            if ((s === m.TAB)) {\n                this._popover.hideLayer();\n                l.set(this._triggerElem);\n                return;\n            }\n        ;\n            if (r.getModifiers().any) {\n                return\n            };\n            switch (s) {\n              case m.RETURN:\n                return;\n              case m.UP:\n            \n              case m.DOWN:\n                this._menu.handleKeydown(s, r);\n                break;\n              default:\n                if ((this._menu.handleKeydown(s, r) === false)) {\n                    this._menu.blur();\n                    this._menu.handleKeydown(s, r);\n                }\n            ;\n                break;\n            };\n            r.prevent();\n        },\n        _handleKeyEventOnTrigger: function(q) {\n            var r = g.getKeyCode(q);\n            switch (r) {\n              case m.DOWN:\n            \n              case m.UP:\n                break;\n              default:\n                var s = String.fromCharCode(r).toLowerCase();\n                if (!/^\\s?$/.test(s)) {\n                    this._popover.showLayer();\n                    this._menu.blur();\n                    if ((this._menu.handleKeydown(r, q) === false)) {\n                        this._popover.hideLayer();\n                        l.set(this._triggerElem);\n                    }\n                ;\n                }\n            ;\n            };\n        },\n        _onMenuDone: function(q) {\n            this._popover.hideLayer.bind(this._popover).defer();\n            if (n.isKeyDown()) {\n                l.set(this._triggerElem);\n            };\n        },\n        enable: function() {\n            this._popover.enable();\n        },\n        disable: function() {\n            this._popover.disable();\n        }\n    });\n    e.exports = p;\n});\n__d(\"PopoverAsyncMenu\", [\"Event\",\"AsyncRequest\",\"Class\",\"PopoverMenu\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"Class\"), j = b(\"PopoverMenu\"), k = b(\"copyProperties\"), l = {\n    }, m = 0;\n    function n(o, p, q, r, s) {\n        this._endpoint = r;\n        this._loadingMenu = q;\n        this._instanceId = m++;\n        l[this._instanceId] = this;\n        this._mouseoverListener = g.listen(p, \"mouseover\", this._fetchMenu.bind(this));\n        this.parent.construct(this, o, p, null, s);\n    };\n    n.setMenu = function(o, p) {\n        l[o].setMenu(p);\n    };\n    n.getInstance = function(o) {\n        return l[o];\n    };\n    i.extend(n, j);\n    k(n.prototype, {\n        _fetched: false,\n        _mouseoverListener: null,\n        _onLayerInit: function() {\n            if (!this._menu) {\n                this.setMenu(this._loadingMenu);\n            };\n            this._fetchMenu();\n            this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n        },\n        _fetchMenu: function() {\n            if (this._fetched) {\n                return\n            };\n            new h().setURI(this._endpoint).setData({\n                pmid: this._instanceId\n            }).send();\n            this._fetched = true;\n            if (this._mouseoverListener) {\n                this._mouseoverListener.remove();\n                this._mouseoverListener = null;\n            }\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"PopoverMenuInterface\", [\"ArbiterMixin\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j() {\n    \n    };\n    h(j.prototype, g, {\n        getRoot: i,\n        onShow: i,\n        onHide: i,\n        focusAnItem: i.thatReturnsFalse,\n        blur: i,\n        handleKeydown: i.thatReturnsFalse,\n        done: function() {\n            this.inform(\"done\");\n        }\n    });\n    e.exports = j;\n});\n__d(\"PopoverMenuOverlappingBorder\", [\"CSS\",\"DOM\",\"Style\",\"copyProperties\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"Style\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"shield\");\n    function m(n) {\n        this._popoverMenu = n;\n        this._popover = n.getPopover();\n        this._triggerElem = n.getTriggerElem();\n    };\n    j(m.prototype, {\n        _shortBorder: null,\n        _setMenuSubscription: null,\n        _showSubscription: null,\n        _menuSubscription: null,\n        enable: function() {\n            this._setMenuSubscription = this._popoverMenu.subscribe(\"setMenu\", l(this._onSetMenu, this));\n        },\n        disable: function() {\n            this._popoverMenu.unsubscribe(this._setMenuSubscription);\n            this._setMenuSubscription = null;\n            this._removeBorderSubscriptions();\n            this._removeShortBorder();\n        },\n        _onSetMenu: function() {\n            this._removeBorderSubscriptions();\n            this._menu = this._popoverMenu.getMenu();\n            this._renderShortBorder(this._menu.getRoot());\n            this._showSubscription = this._popover.subscribe(\"show\", l(this._updateBorder, this));\n            this._menuSubscription = this._menu.subscribe([\"change\",\"resize\",], l(Function.prototype.defer, l(this._updateBorder, this)));\n            this._updateBorder();\n        },\n        _updateBorder: function() {\n            var n = this._menu.getRoot(), o = this._triggerElem.offsetWidth, p = Math.max((n.offsetWidth - o), 0);\n            i.set(this._shortBorder, \"width\", (p + \"px\"));\n        },\n        _renderShortBorder: function(n) {\n            this._shortBorder = h.create(\"div\", {\n                className: \"_54hx\"\n            });\n            h.appendContent(n, this._shortBorder);\n            g.addClass(n, \"_54hy\");\n        },\n        _removeShortBorder: function() {\n            if (this._shortBorder) {\n                h.remove(this._shortBorder);\n                this._shortBorder = null;\n                g.removeClass(this._popoverMenu.getMenu().getRoot(), \"_54hy\");\n            }\n        ;\n        },\n        _removeBorderSubscriptions: function() {\n            if (this._showSubscription) {\n                this._popover.unsubscribe(this._showSubscription);\n                this._showSubscription = null;\n            }\n        ;\n            if (this._menuSubscription) {\n                this._menu.unsubscribe(this._menuSubscription);\n                this._menuSubscription = null;\n            }\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"PostLoadJS\", [\"Bootloader\",\"Run\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Run\"), i = b(\"emptyFunction\");\n    function j(l, m) {\n        h.onAfterLoad(function() {\n            g.loadModules.call(g, [l,], m);\n        });\n    };\n    var k = {\n        loadAndRequire: function(l) {\n            j(l, i);\n        },\n        loadAndCall: function(l, m, n) {\n            j(l, function(o) {\n                o[m].apply(o, n);\n            });\n        }\n    };\n    e.exports = k;\n});\n__d(\"ContextualLayerDimensions\", [\"DOM\",\"Locale\",\"Rect\",\"Vector\",\"ViewportBounds\",\"ge\",\"getOverlayZIndex\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Locale\"), i = b(\"Rect\"), j = b(\"Vector\"), k = b(\"ViewportBounds\"), l = b(\"ge\"), m = b(\"getOverlayZIndex\"), n = {\n        getViewportRect: function(o) {\n            var p = l(\"globalContainer\"), q = o.getContext(), r = (((p && g.contains(p, q))) || (m(q) < 300)), s = i.getViewportBounds();\n            if (r) {\n                s.t += k.getTop();\n                if (h.isRTL()) {\n                    s.r -= k.getLeft();\n                    s.l += k.getRight();\n                }\n                 else {\n                    s.r -= k.getRight();\n                    s.l += k.getLeft();\n                }\n            ;\n            }\n        ;\n            return s;\n        },\n        getLayerRect: function(o, p) {\n            var q = o.getContextBounds(\"viewport\"), r = o.simulateOrientation(p, function() {\n                return j.getElementDimensions(o.getContent());\n            }), s = (q.t + p.getOffsetY());\n            if ((p.getPosition() === \"above\")) {\n                s -= r.y;\n            }\n             else if ((p.getPosition() === \"below\")) {\n                s += (q.b - q.t);\n            }\n        ;\n            var t = (q.l + p.getOffsetX()), u = (q.r - q.l);\n            if (p.isVertical()) {\n                var v = p.getAlignment();\n                if ((v === \"center\")) {\n                    t += (((u - r.x)) / 2);\n                }\n                 else if ((((v === \"right\")) !== h.isRTL())) {\n                    t += (u - r.x);\n                }\n            ;\n            }\n             else if ((((p.getPosition() === \"right\")) !== h.isRTL())) {\n                t += u;\n            }\n             else t -= r.x;\n            \n        ;\n            return new i(s, (t + r.x), (s + r.y), t, \"viewport\");\n        }\n    };\n    e.exports = n;\n});\n__d(\"ContextualLayerAutoFlip\", [\"ContextualLayerDimensions\",\"DOM\",\"Vector\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ContextualLayerDimensions\"), h = b(\"DOM\"), i = b(\"Vector\"), j = b(\"arrayContains\"), k = b(\"copyProperties\");\n    function l(m) {\n        this._layer = m;\n    };\n    k(l.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"adjust\", this._adjustOrientation.bind(this));\n            if (this._layer.isShown()) {\n                this._layer.updatePosition();\n            };\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n            if (this._layer.isShown()) {\n                this._layer.updatePosition();\n            };\n        },\n        _adjustOrientation: function(m, n) {\n            var o = this._getValidPositions(n);\n            if (!o.length) {\n                n.invalidate();\n                return;\n            }\n        ;\n            var p = g.getViewportRect(this._layer), q = this._getValidAlignments(n), r, s, t;\n            for (r = 0; (r < q.length); r++) {\n                n.setAlignment(q[r]);\n                for (s = 0; (s < o.length); s++) {\n                    n.setPosition(o[s]);\n                    t = g.getLayerRect(this._layer, n);\n                    if (p.contains(t)) {\n                        return\n                    };\n                };\n            };\n            n.setPosition((j(o, \"below\") ? \"below\" : o[0]));\n            for (r = 0; (r < q.length); r++) {\n                n.setAlignment(q[r]);\n                t = g.getLayerRect(this._layer, n);\n                if (((t.l >= p.l) && (t.r <= p.r))) {\n                    return\n                };\n            };\n            n.setAlignment(q[0]);\n        },\n        _getValidPositions: function(m) {\n            var n = [m.getPosition(),m.getOppositePosition(),], o = this._layer.getContextScrollParent();\n            if (((o === window) || (o === h.getDocumentScrollElement()))) {\n                return n\n            };\n            var p = this._layer.getContext(), q = i.getElementPosition(o, \"viewport\").y, r = i.getElementPosition(p, \"viewport\").y;\n            if (m.isVertical()) {\n                return n.filter(function(t) {\n                    if ((t === \"above\")) {\n                        return (r >= q);\n                    }\n                     else {\n                        var u = (q + o.offsetHeight), v = (r + p.offsetHeight);\n                        return (v <= u);\n                    }\n                ;\n                });\n            }\n             else {\n                var s = (q + o.offsetHeight);\n                if (((r >= q) && ((r + p.offsetHeight) <= s))) {\n                    return n;\n                }\n                 else return []\n            ;\n            }\n        ;\n        },\n        _getValidAlignments: function(m) {\n            var n = [\"left\",\"right\",\"center\",], o = m.getAlignment(), p = n.indexOf(o);\n            if ((p > 0)) {\n                n.splice(p, 1);\n                n.unshift(o);\n            }\n        ;\n            return n;\n        }\n    });\n    e.exports = l;\n});\n__d(\"Tooltip\", [\"Event\",\"AsyncRequest\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"URI\",\"copyProperties\",\"emptyFunction\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"ContextualLayer\"), j = b(\"ContextualLayerAutoFlip\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Style\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"cx\"), s = b(\"tx\"), t = null, u = null, v = null, w = [], x;\n    function y() {\n        if (!u) {\n            v = m.create(\"div\", {\n                className: \"tooltipContent\"\n            });\n            var fa = m.create(\"i\", {\n                className: \"arrow\"\n            }), ga = m.create(\"div\", {\n                className: \"uiTooltipX\"\n            }, [v,fa,]);\n            u = new i({\n            }, ga);\n            u.shouldSetARIAProperties(false);\n            u.enableBehavior(j);\n        }\n    ;\n    };\n    function z(fa) {\n        return p({\n            content: fa.getAttribute(\"aria-label\"),\n            position: (fa.getAttribute(\"data-tooltip-position\") || \"above\"),\n            alignH: (fa.getAttribute(\"data-tooltip-alignh\") || \"left\")\n        }, l.get(fa, \"tooltip\"));\n    };\n    function aa(fa, ga) {\n        var ha = z(fa);\n        l.set(fa, \"tooltip\", {\n            content: (ga.content || ha.content),\n            position: (ga.position || ha.position),\n            alignH: (ga.alignH || ha.alignH),\n            suspend: (ga.suspend || ha.suspend)\n        });\n        fa.setAttribute(\"data-hover\", \"tooltip\");\n    };\n    function ba(fa, ga) {\n        ea.set(fa, \"Loading...\");\n        new h(ga).setHandler(function(ha) {\n            ea.set(fa, ha.getPayload());\n        }).setErrorHandler(q).send();\n    };\n    var ca = /(\\r\\n|[\\r\\n])/;\n    function da(fa) {\n        return fa.split(ca).map(function(ga) {\n            return (ca.test(ga) ? m.create(\"br\") : ga);\n        });\n    };\n    var ea = {\n        process: function(fa, ga) {\n            if (!m.contains(fa, ga)) {\n                return\n            };\n            if (((fa !== t) && !fa.getAttribute(\"data-tooltip-suspend\"))) {\n                var ha = fa.getAttribute(\"data-tooltip-uri\");\n                if (ha) {\n                    fa.removeAttribute(\"data-tooltip-uri\");\n                    ba(fa, ha);\n                }\n            ;\n                ea.show(fa);\n            }\n        ;\n        },\n        remove: function(fa) {\n            l.remove(fa, \"tooltip\");\n            fa.removeAttribute(\"data-hover\");\n            fa.removeAttribute(\"data-tooltip-position\");\n            fa.removeAttribute(\"data-tooltip-alignh\");\n            ((fa === t) && ea.hide());\n        },\n        suspend: function(fa) {\n            fa.setAttribute(\"data-tooltip-suspend\", true);\n            ((fa === t) && ea.hide());\n        },\n        unsuspend: function(fa) {\n            fa.removeAttribute(\"data-tooltip-suspend\");\n        },\n        hide: function() {\n            if (t) {\n                u.hide();\n                t = null;\n                while (w.length) {\n                    w.pop().remove();;\n                };\n            }\n        ;\n        },\n        set: function(fa, ga, ha, ia) {\n            if ((ha || ia)) {\n                aa(fa, {\n                    position: ha,\n                    alignH: ia\n                });\n            };\n            if ((ga instanceof o)) {\n                if ((fa === t)) {\n                    ba(fa, ga);\n                }\n                 else fa.setAttribute(\"data-tooltip-uri\", ga);\n            ;\n            }\n             else {\n                if ((typeof ga !== \"string\")) {\n                    ga = m.create(\"div\", {\n                    }, ga);\n                    fa.setAttribute(\"aria-label\", m.getText(ga));\n                }\n                 else fa.setAttribute(\"aria-label\", ga);\n            ;\n                aa(fa, {\n                    content: ga\n                });\n                ((fa === t) && ea.show(fa));\n            }\n        ;\n        },\n        show: function(fa) {\n            y();\n            ea.hide();\n            var ga = z(fa);\n            if (!ga.content) {\n                return\n            };\n            var ha = 0, ia = 0;\n            if (((ga.position === \"left\") || (ga.position === \"right\"))) {\n                x = (x || k.hasClass(document.body, \"_6nw\"));\n                var ja = (x ? 28 : 20);\n                ia = (((fa.offsetHeight - ja)) / 2);\n            }\n             else if ((ga.alignH !== \"center\")) {\n                var ka = fa.offsetWidth;\n                if ((ka < 18)) {\n                    ha = ((((ka - 18)) / 2) * (((ga.alignH === \"right\") ? -1 : 1)));\n                };\n            }\n            \n        ;\n            u.setContext(fa).setOffsetX(ha).setOffsetY(ia).setPosition(ga.position).setAlignment(ga.alignH);\n            if ((typeof ga.content === \"string\")) {\n                k.addClass(u.getRoot(), \"invisible_elem\");\n                var la = m.create(\"span\", {\n                }, da(ga.content)), ma = m.create(\"div\", {\n                    className: \"tooltipText\"\n                }, la);\n                m.setContent(v, ma);\n                u.show();\n                var na;\n                if (ma.getClientRects) {\n                    var oa = ma.getClientRects()[0];\n                    if (oa) {\n                        na = Math.round((oa.right - oa.left));\n                    };\n                }\n            ;\n                if (!na) {\n                    na = ma.offsetWidth;\n                };\n                if ((na < la.offsetWidth)) {\n                    k.addClass(ma, \"tooltipWrap\");\n                    u.updatePosition();\n                }\n            ;\n                k.removeClass(u.getRoot(), \"invisible_elem\");\n            }\n             else {\n                m.setContent(v, ga.content);\n                u.show();\n            }\n        ;\n            var pa = function(ra) {\n                if (!m.contains(t, ra.getTarget())) {\n                    ea.hide();\n                };\n            };\n            w.push(g.listen(document.documentElement, \"mouseover\", pa), g.listen(document.documentElement, \"focusin\", pa));\n            var qa = n.getScrollParent(fa);\n            if ((qa !== window)) {\n                w.push(g.listen(qa, \"scroll\", ea.hide));\n            };\n            w.push(g.listen(fa, \"click\", ea.hide));\n            t = fa;\n        }\n    };\n    g.listen(window, \"scroll\", ea.hide);\n    e.exports = ea;\n});\n__d(\"SelectorDeprecated\", [\"Event\",\"Arbiter\",\"Button\",\"ContextualLayer\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"HTML\",\"Keys\",\"KeyStatus\",\"MenuDeprecated\",\"Parent\",\"Style\",\"Toggler\",\"Tooltip\",\"Vector\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"Button\"), j = b(\"ContextualLayer\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Focus\"), o = b(\"HTML\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"MenuDeprecated\"), s = b(\"Parent\"), t = b(\"Style\"), u = b(\"Toggler\"), v = b(\"Tooltip\"), w = b(\"Vector\"), x = b(\"arrayContains\"), y = b(\"copyProperties\"), z = b(\"emptyFunction\"), aa, ba, ca = [], da;\n    function ea(pa) {\n        return s.byClass(pa, \"uiSelector\");\n    };\n    function fa(pa) {\n        return s.byClass(pa, \"uiSelectorButton\");\n    };\n    function ga() {\n        if (!ba) {\n            ba = new j({\n                position: \"below\"\n            }, m.create(\"div\"));\n            k.addClass(ba.getRoot(), \"uiSelectorContextualLayer\");\n        }\n    ;\n        return ba;\n    };\n    function ha(pa) {\n        return m.scry(pa, \"select\")[0];\n    };\n    function ia(pa) {\n        return m.find(pa, \"div.uiSelectorMenuWrapper\");\n    };\n    function ja() {\n        ja = z;\n        r.subscribe(\"select\", function(pa, qa) {\n            if (((!aa || !qa) || (qa.menu !== oa.getSelectorMenu(aa)))) {\n                return\n            };\n            var ra = ka(aa), sa = la(qa.item);\n            if (sa) {\n                var ta = aa, ua = oa.isOptionSelected(qa.item), va = oa.inform(\"select\", {\n                    selector: ta,\n                    option: qa.item,\n                    clone: da\n                });\n                if ((va === false)) {\n                    return\n                };\n                if ((ra || !ua)) {\n                    oa.setSelected(ta, oa.getOptionValue(qa.item), !ua);\n                    oa.inform(\"toggle\", {\n                        selector: ta,\n                        option: qa.item\n                    });\n                    oa.inform(\"change\", {\n                        selector: ta\n                    });\n                    h.inform(\"Form/change\", {\n                        node: ta\n                    });\n                    if (ma(ta)) {\n                        l.set(ta, \"dirty\", true);\n                    };\n                }\n            ;\n            }\n        ;\n            if ((!ra || !sa)) {\n                (aa && oa.toggle(aa));\n            };\n        });\n    };\n    function ka(pa) {\n        return !!pa.getAttribute(\"data-multiple\");\n    };\n    function la(pa) {\n        return k.hasClass(pa, \"uiSelectorOption\");\n    };\n    function ma(pa) {\n        return !!pa.getAttribute(\"data-autosubmit\");\n    };\n    var na = function() {\n        na = z;\n        var pa = {\n            keydown: function(event) {\n                var qa = event.getTarget();\n                if (m.isInputNode(qa)) {\n                    return\n                };\n                switch (g.getKeyCode(event)) {\n                  case p.DOWN:\n                \n                  case p.SPACE:\n                \n                  case p.UP:\n                    if (fa(qa)) {\n                        var ra = ea(qa);\n                        oa.toggle(ra);\n                        return false;\n                    }\n                ;\n                    break;\n                  case p.ESC:\n                    if (aa) {\n                        var sa = oa.getSelectorButton(aa);\n                        oa.toggle(aa);\n                        (sa && n.set(sa));\n                        return false;\n                    }\n                ;\n                    break;\n                };\n            },\n            mouseover: function(event) {\n                var qa = s.byAttribute(event.getTarget(), \"ajaxify\");\n                if ((qa && k.hasClass(qa, \"uiSelectorButton\"))) {\n                    oa.loadMenu(ea(qa));\n                };\n            }\n        };\n        g.listen(document.body, pa);\n    };\n    u.subscribe([\"show\",\"hide\",], function(pa, qa) {\n        var ra = ea(qa.getActive());\n        if (ra) {\n            na();\n            ja();\n            var sa = oa.getSelectorButton(ra), ta = oa.getSelectorMenu(ra), ua = (pa === \"show\");\n            sa.setAttribute(\"aria-expanded\", (ua ? \"true\" : \"false\"));\n            if (ua) {\n                aa = ra;\n                if (k.hasClass(sa, \"uiButtonDisabled\")) {\n                    oa.setEnabled(ra, false);\n                    return false;\n                }\n            ;\n                ta = (ta || oa.loadMenu(ra));\n                var va = t.getScrollParent(ra), wa = ((va !== window) && (va !== m.getDocumentScrollElement()));\n                if ((wa || k.hasClass(ra, \"uiSelectorUseLayer\"))) {\n                    if (wa) {\n                        ca.push(g.listen(va, \"scroll\", function() {\n                            qa.hide();\n                        }));\n                    };\n                    da = m.create(\"div\", {\n                        className: ra.className\n                    });\n                    k.addClass(da, \"invisible_elem\");\n                    w.getElementDimensions(ra).setElementDimensions(da);\n                    m.replace(ra, da);\n                    var xa = k.hasClass(ra, \"uiSelectorRight\"), ya = k.hasClass(ra, \"uiSelectorBottomUp\");\n                    ga().setContext(da).setContent(ra).setPosition((ya ? \"above\" : \"below\")).setAlignment((xa ? \"right\" : \"left\")).show();\n                }\n            ;\n                r.register(ta);\n                if (q.isKeyDown()) {\n                    var za = r.getCheckedItems(ta);\n                    if (!za.length) {\n                        za = r.getEnabledItems(ta);\n                    };\n                    r.focusItem(za[0]);\n                }\n            ;\n            }\n             else {\n                aa = null;\n                if (da) {\n                    while (ca.length) {\n                        ca.pop().remove();;\n                    };\n                    m.replace(da, ra);\n                    ga().hide();\n                    da = null;\n                }\n            ;\n                (ta && r.unregister(ta));\n                if ((ma(ra) && l.get(ra, \"dirty\"))) {\n                    var ab = m.scry(ra, \"input.submitButton\")[0];\n                    (ab && ab.click());\n                    l.remove(ra, \"dirty\");\n                }\n            ;\n            }\n        ;\n            k.conditionClass(oa.getSelectorButton(ra), \"selected\", ua);\n            oa.inform((ua ? \"open\" : \"close\"), {\n                selector: ra,\n                clone: da\n            });\n        }\n    ;\n    });\n    var oa = y(new h(), {\n        attachMenu: function(pa, qa, ra) {\n            pa = ea(pa);\n            if (pa) {\n                (aa && r.unregister(oa.getSelectorMenu(aa)));\n                m.setContent(ia(pa), qa);\n                (aa && r.register(oa.getSelectorMenu(pa)));\n                (da && ga().updatePosition());\n                if (ra) {\n                    var sa = pa.getAttribute(\"data-name\");\n                    (sa && ra.setAttribute(\"name\", sa));\n                    if (!ka(pa)) {\n                        ra.setAttribute(\"multiple\", false);\n                    };\n                    var ta = ha(pa);\n                    if (ta) {\n                        m.replace(ta, ra);\n                    }\n                     else m.insertAfter(pa.firstChild, ra);\n                ;\n                }\n            ;\n                return true;\n            }\n        ;\n        },\n        getOption: function(pa, qa) {\n            var ra = oa.getOptions(pa), sa = ra.length;\n            while (sa--) {\n                if ((qa === oa.getOptionValue(ra[sa]))) {\n                    return ra[sa]\n                };\n            };\n            return null;\n        },\n        getOptions: function(pa) {\n            var qa = r.getItems(oa.getSelectorMenu(pa));\n            return qa.filter(la);\n        },\n        getEnabledOptions: function(pa) {\n            var qa = r.getEnabledItems(oa.getSelectorMenu(pa));\n            return qa.filter(la);\n        },\n        getSelectedOptions: function(pa) {\n            return r.getCheckedItems(oa.getSelectorMenu(pa));\n        },\n        getOptionText: function(pa) {\n            return r.getItemLabel(pa);\n        },\n        getOptionValue: function(pa) {\n            var qa = ea(pa), ra = ha(qa), sa = oa.getOptions(qa).indexOf(pa);\n            return ((sa >= 0) ? ra.options[(sa + 1)].value : \"\");\n        },\n        getSelectorButton: function(pa) {\n            return m.find(pa, \"a.uiSelectorButton\");\n        },\n        getSelectorMenu: function(pa) {\n            return m.scry(pa, \"div.uiSelectorMenu\")[0];\n        },\n        getValue: function(pa) {\n            var qa = ha(pa);\n            if (!qa) {\n                return null\n            };\n            if (!ka(pa)) {\n                return qa.value\n            };\n            var ra = [], sa = qa.options;\n            for (var ta = 1, ua = sa.length; (ta < ua); ta++) {\n                if (sa[ta].selected) {\n                    ra.push(sa[ta].value);\n                };\n            };\n            return ra;\n        },\n        isOptionSelected: function(pa) {\n            return r.isItemChecked(pa);\n        },\n        listen: function(pa, qa, ra) {\n            return this.subscribe(qa, function(sa, ta) {\n                if ((ta.selector === pa)) {\n                    return ra(ta, sa)\n                };\n            });\n        },\n        loadMenu: function(pa) {\n            var qa = oa.getSelectorMenu(pa);\n            if (!qa) {\n                var ra = oa.getSelectorButton(pa), sa = ra.getAttribute(\"ajaxify\");\n                if (sa) {\n                    d([\"AsyncRequest\",], function(ua) {\n                        ua.bootstrap(sa, ra);\n                    });\n                    var ta = o(((((((\"\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\" + \"\\u003Cdiv class=\\\"uiMenu uiSelectorMenu loading\\\"\\u003E\") + \"\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\") + \"\\u003Cli\\u003E\\u003Cspan\\u003E\\u003C/span\\u003E\\u003C/li\\u003E\") + \"\\u003C/ul\\u003E\") + \"\\u003C/div\\u003E\") + \"\\u003C/div\\u003E\"));\n                    m.appendContent(ra.parentNode, ta);\n                    qa = oa.getSelectorMenu(pa);\n                    ra.removeAttribute(\"onmouseover\");\n                }\n            ;\n            }\n        ;\n            return qa;\n        },\n        setButtonLabel: function(pa, qa) {\n            var ra = oa.getSelectorButton(pa), sa = parseInt(ra.getAttribute(\"data-length\"), 10);\n            qa = ((qa || ra.getAttribute(\"data-label\")) || \"\");\n            i.setLabel(ra, qa);\n            if ((typeof qa === \"string\")) {\n                k.conditionClass(ra, \"uiSelectorBigButtonLabel\", (qa.length > sa));\n                if ((sa && (qa.length > sa))) {\n                    ra.setAttribute(\"title\", qa);\n                }\n                 else ra.removeAttribute(\"title\");\n            ;\n            }\n        ;\n        },\n        setButtonTooltip: function(pa, qa) {\n            var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n            (sa && v.set(sa, ((qa || ra.getAttribute(\"data-tooltip\")) || \"\")));\n        },\n        updateButtonARIALabel: function(pa, qa) {\n            var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n            if (sa) {\n                var ta = ra.getAttribute(\"data-ariaprefix\");\n                if (ta) {\n                    ra.setAttribute(\"aria-label\", ((ta + \": \") + qa));\n                };\n            }\n        ;\n        },\n        setEnabled: function(pa, qa) {\n            if (((!qa && aa) && (ea(pa) === aa))) {\n                oa.toggle(pa);\n            };\n            i.setEnabled(oa.getSelectorButton(pa), qa);\n        },\n        setOptionEnabled: function(pa, qa) {\n            r.setItemEnabled(pa, qa);\n        },\n        setSelected: function(pa, qa, ra) {\n            ra = (ra !== false);\n            var sa = oa.getOption(pa, qa);\n            if (!sa) {\n                return\n            };\n            var ta = oa.isOptionSelected(sa);\n            if ((ra !== ta)) {\n                if ((!ka(pa) && !ta)) {\n                    var ua = oa.getSelectedOptions(pa)[0];\n                    (ua && r.toggleItem(ua));\n                }\n            ;\n                r.toggleItem(sa);\n            }\n        ;\n            oa.updateSelector(pa);\n        },\n        toggle: function(pa) {\n            u.toggle(m.scry(ea(pa), \"div.wrap\")[0]);\n        },\n        updateSelector: function(pa) {\n            var qa = oa.getOptions(pa), ra = oa.getSelectedOptions(pa), sa = ha(pa).options, ta = [], ua = [];\n            for (var va = 0, wa = qa.length; (va < wa); va++) {\n                var xa = x(ra, qa[va]);\n                sa[(va + 1)].selected = xa;\n                if (xa) {\n                    var ya = oa.getOptionText(qa[va]);\n                    ta.push(ya);\n                    ua.push((qa[va].getAttribute(\"data-tooltip\") || ya));\n                }\n            ;\n            };\n            sa[0].selected = !ra.length;\n            var za = k.hasClass(pa, \"uiSelectorDynamicLabel\"), ab = k.hasClass(pa, \"uiSelectorDynamicTooltip\");\n            if ((za || ab)) {\n                var bb = \"\";\n                if (ka(pa)) {\n                    var cb = oa.getSelectorButton(pa);\n                    bb = (cb.getAttribute(\"data-delimiter\") || \", \");\n                }\n            ;\n                ta = ta.join(bb);\n                ua = ua.join(bb);\n                if (za) {\n                    oa.setButtonLabel(pa, ta);\n                    oa.updateButtonARIALabel(pa, ta);\n                }\n            ;\n                (ab && oa.setButtonTooltip(pa, ua));\n            }\n        ;\n        }\n    });\n    e.exports = oa;\n});\n__d(\"SubscriptionsHandler\", [\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSLogger\"), h = b(\"copyProperties\"), i = g.create(\"subscriptions_handler\");\n    function j(k) {\n        this._name = (k || \"unnamed\");\n        this._subscriptions = [];\n    };\n    h(j.prototype, {\n        addSubscriptions: function() {\n            if (this._subscriptions) {\n                Array.prototype.push.apply(this._subscriptions, arguments);\n            }\n             else {\n                i.warn((this._name + \".subscribe_while_released\"));\n                for (var k = 0, l = arguments.length; (k < l); k++) {\n                    this._unsubscribe(arguments[k]);;\n                };\n            }\n        ;\n        },\n        engage: function() {\n            this._subscriptions = (this._subscriptions || []);\n        },\n        release: function() {\n            if (this._subscriptions) {\n                this._subscriptions.forEach(this._unsubscribe.bind(this));\n            };\n            this._subscriptions = null;\n        },\n        _unsubscribe: function(k) {\n            if (k.remove) {\n                k.remove();\n            }\n             else if (k.reset) {\n                k.reset();\n            }\n             else if (k.unsubscribe) {\n                k.unsubscribe();\n            }\n             else i.error((this._name + \".invalid\"), k);\n            \n            \n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"UserActivity\", [\"Arbiter\",\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Event\"), i = 5000, j = 500, k = -5, l = Date.now(), m = l, n = {\n        subscribeOnce: function(p) {\n            var q = n.subscribe(function() {\n                n.unsubscribe(q);\n                p();\n            });\n        },\n        subscribe: function(p) {\n            return g.subscribe(\"useractivity/activity\", p);\n        },\n        unsubscribe: function(p) {\n            p.unsubscribe();\n        },\n        isActive: function(p) {\n            return (((new Date() - l) < ((p || i))));\n        },\n        getLastInformTime: function() {\n            return m;\n        }\n    };\n    function o(event) {\n        l = Date.now();\n        var p = (l - m);\n        if ((p > j)) {\n            m = l;\n            g.inform(\"useractivity/activity\", {\n                event: event,\n                idleness: p,\n                last_inform: m\n            });\n        }\n         else if ((p < k)) {\n            m = l;\n        }\n    ;\n    };\n    h.listen(window, \"scroll\", o);\n    h.listen(window, \"focus\", o);\n    h.listen(document.documentElement, {\n        DOMMouseScroll: o,\n        mousewheel: o,\n        keydown: o,\n        mouseover: o,\n        mousemove: o,\n        click: o\n    });\n    g.subscribe(\"Event/stop\", function(p, q) {\n        o(q.event);\n    });\n    e.exports = n;\n});\n__d(\"enforceMaxLength\", [\"Event\",\"function-extensions\",\"DOM\",\"Input\",\"InputSelection\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"DOM\"), i = b(\"Input\"), j = b(\"InputSelection\"), k = function(n, o) {\n        var p = i.getValue(n), q = p.length, r = (q - o);\n        if ((r > 0)) {\n            var s, t;\n            try {\n                s = j.get(n);\n                t = s.end;\n            } catch (u) {\n                s = null;\n                t = 0;\n            };\n            if ((t >= r)) {\n                q = t;\n            };\n            var v = (q - r);\n            if ((v && (((p.charCodeAt((v - 1)) & 64512)) === 55296))) {\n                v--;\n            };\n            t = Math.min(t, v);\n            i.setValue(n, (p.slice(0, v) + p.slice(q)));\n            if (s) {\n                j.set(n, Math.min(s.start, t), t);\n            };\n        }\n    ;\n    }, l = function(event) {\n        var n = event.getTarget(), o = (n.getAttribute && parseInt(n.getAttribute(\"maxlength\"), 10));\n        if (((o > 0) && h.isNodeOfType(n, [\"input\",\"textarea\",]))) {\n            k.bind(null, n, o).defer();\n        };\n    }, m = ((\"maxLength\" in h.create(\"input\")) && (\"maxLength\" in h.create(\"textarea\")));\n    if (!m) {\n        g.listen(document.documentElement, {\n            keydown: l,\n            paste: l\n        });\n    };\n    e.exports = k;\n});\n__d(\"guid\", [], function(a, b, c, d, e, f) {\n    function g() {\n        return (\"f\" + ((Math.random() * ((1 << 30)))).toString(16).replace(\".\", \"\"));\n    };\n    e.exports = g;\n});\n__d(\"reportData\", [\"EagleEye\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"EagleEye\"), h = b(\"userAction\");\n    function i(j, k) {\n        k = (k || {\n        });\n        var l = {\n            ft: ((k.ft || {\n            })),\n            gt: ((k.gt || {\n            }))\n        }, m = \"-\", n = a.ArbiterMonitor, o = ((!!n) ? n.getActFields() : []), p = ((!n) ? \"r\" : \"a\"), q = [Date.now(),h.getCurrentUECount(),m,j,m,m,p,(a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((location.pathname + location.search) + location.hash)),l,0,0,0,0,].concat(o);\n        g.log(\"act\", q);\n    };\n    e.exports = i;\n});\n__d(\"NetEgo\", [\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"ge\",\"Animation\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"URI\"), k = b(\"ge\"), l = b(\"Animation\"), m = {\n        setup: function(n) {\n            g.subscribe([\"page/liked\",\"FriendRequest/sending\",], function(o, p) {\n                if (((n == p.id) || (n == p.uid))) {\n                    var q = k(document.body, \".ego_unit_container\");\n                    if (q) {\n                        var r = i.scry(q, \".ego_unit\"), s = r.length;\n                        for (var t = 0; (t < s); t++) {\n                            var u = r[t].getAttribute(\"data-ego-fbid\");\n                            if (((u == p.id) || (u == p.uid))) {\n                                var v = i.find(r[t], \".ego_action a\");\n                                if (v) {\n                                    v.click();\n                                };\n                                break;\n                            }\n                        ;\n                        };\n                    }\n                ;\n                }\n            ;\n            });\n        },\n        updateXids: function(n, o) {\n            if (((n.length == 0) && (o.length == 0))) {\n                return\n            };\n            var p = function(z) {\n                return function(aa) {\n                    var ba = aa.getAttribute(z);\n                    if (!ba) {\n                        return false\n                    };\n                    var ca = new j(ba).getQueryData();\n                    return !!ca.xids;\n                };\n            }, q = i.scry(document.body, \".ego_unit a\");\n            q = q.filter(p(\"ajaxify\"));\n            if ((q.length == 0)) {\n                return\n            };\n            var r = new j(q[0].getAttribute(\"ajaxify\")), s = r.getQueryData();\n            if (!s.xids) {\n                return\n            };\n            try {\n                var u = JSON.parse(s.xids);\n            } catch (t) {\n                return;\n            };\n            for (var v = 0; (v < n.length); ++v) {\n                delete u[n[v]];;\n            };\n            for (v = 0; (v < o.length); ++v) {\n                u[o[v]] = 1;;\n            };\n            var w = JSON.stringify(u), x = function(z, aa) {\n                r = new j(z.getAttribute(aa));\n                s = r.getQueryData();\n                s.xids = w;\n                r.setQueryData(s);\n                z.setAttribute(aa, r.toString());\n            };\n            for (v = 0; (v < q.length); ++v) {\n                x(q[v], \"ajaxify\");;\n            };\n            var y = i.scry(document.body, \".ego_unit form\");\n            y = y.filter(p(\"action\"));\n            for (v = 0; (v < y.length); ++v) {\n                x(y[v], \"action\");;\n            };\n        },\n        replaceUnit: function(n, o, p, q) {\n            var r = i.insertAfter(n, o);\n            r.forEach(h.hide);\n            if (((q !== undefined) && (q !== null))) {\n                (function() {\n                    m._replaceUnitFadeout(n, r, p);\n                }).defer(q);\n            }\n             else m._replaceUnitFadeout(n, r, p);\n        ;\n        },\n        _replaceUnitFadeout: function(n, o, p) {\n            if (p) {\n                new l(n).from(\"opacity\", 1).to(\"opacity\", 0).duration(p).checkpoint(1, function() {\n                    m._replaceUnitElement(n, o);\n                }).go();\n            }\n             else m._replaceUnitElement(n, o);\n        ;\n        },\n        _replaceUnitElement: function(n, o) {\n            i.remove(n);\n            o.forEach(h.show);\n            g.inform(\"netego_replacedUnit\");\n            m.clearHeader();\n        },\n        clearHeader: function() {\n            var n = i.scry(document.body, \".ego_column\"), o = [];\n            for (var p = 0; (p < n.length); ++p) {\n                o = o.concat(i.scry(n[p], \".uiHeader\"));;\n            };\n            for (p = 0; (p < o.length); ++p) {\n                var q = o[p].nextSibling;\n                if ((!q || (q.childNodes.length === 0))) {\n                    i.remove(o[p]);\n                }\n                 else if ((q.childNodes.length === 1)) {\n                    var r = q.childNodes[0];\n                    if ((h.hasClass(r, \"ego_appended_units\") && (r.childNodes.length === 0))) {\n                        i.remove(o[p]);\n                    };\n                }\n                \n            ;\n            };\n        }\n    };\n    e.exports = m;\n});\n__d(\"ControlledReferer\", [\"Event\",\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"URI\"), i = b(\"UserAgent\"), j = {\n        useFacebookReferer: function(k, l, m) {\n            var n = false;\n            function o() {\n                if (n) {\n                    return\n                };\n                var q = k.contentWindow.location.pathname;\n                if (((q !== \"/intern/common/referer_frame.php\") && (q !== \"/common/referer_frame.php\"))) {\n                    return\n                };\n                n = true;\n                k.contentWindow.document.body.style.margin = 0;\n                l();\n            };\n            var p;\n            if ((document.domain !== \"facebook.com\")) {\n                p = \"/intern/common/referer_frame.php\";\n            }\n             else if (i.opera()) {\n                p = \"/common/referer_frame.php\";\n            }\n             else if (h().isSecure()) {\n                p = \"https://s-static.ak.facebook.com/common/referer_frame.php\";\n            }\n             else p = \"http://static.ak.facebook.com/common/referer_frame.php\";\n            \n            \n        ;\n            if (m) {\n                p += (\"?fb_source=\" + m);\n            };\n            g.listen(k, \"load\", o);\n            k.src = p;\n        },\n        useFacebookRefererHtml: function(k, l, m) {\n            j.useFacebookReferer(k, function() {\n                k.contentWindow.document.body.innerHTML = l;\n            }, m);\n        }\n    };\n    e.exports = j;\n});\n__d(\"UIIntentionalStreamMessage\", [], function(a, b, c, d, e, f) {\n    var g = {\n        SET_AUTO_INSERT: \"UIIntentionalStream/setAutoInsert\",\n        UPDATE_STREAM: \"UIIntentionalStreamRefresh/updateStream\",\n        REFRESH_STREAM: \"UIIntentionalStreamRefresh/refreshStream\",\n        UPDATE_AUTOREFRESH_CONFIG: \"UIIntentionalStream/updateAutoRefreshConfig\",\n        UPDATE_HTML_CONTENT: \"UIIntentionalStream/updateHtmlContent\",\n        UPDATE_LAST_REFRESH_TIME: \"UIIntentionalStream/updateLastRefreshTime\",\n        INSERT_STORIES: \"UIIntentionalStream/updateLastRefreshTime\",\n        UNLOAD: \"UIIntentionalStream/unload\"\n    };\n    e.exports = g;\n});\n__d(\"UIPagelet\", [\"AjaxPipeRequest\",\"AsyncRequest\",\"DOM\",\"HTML\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"AjaxPipeRequest\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"ScriptPathState\"), l = b(\"URI\"), m = b(\"copyProperties\"), n = b(\"emptyFunction\"), o = b(\"ge\");\n    function p(q, r, s) {\n        var t = ((q && i.isElementNode(q)) ? q.id : q);\n        this._id = (t || null);\n        this._element = o((q || i.create(\"div\")));\n        this._src = (r || null);\n        this._context_data = (s || {\n        });\n        this._data = {\n        };\n        this._handler = n;\n        this._request = null;\n        this._use_ajaxpipe = false;\n        this._is_bundle = true;\n        this._allow_cross_page_transition = false;\n        this._append = false;\n    };\n    p.loadFromEndpoint = function(q, r, s, t) {\n        t = (t || {\n        });\n        var u = (\"/ajax/pagelet/generic.php/\" + q);\n        if (t.intern) {\n            u = (\"/intern\" + u);\n        };\n        var v = new l(u.replace(/\\/+/g, \"/\"));\n        if (t.subdomain) {\n            v.setSubdomain(t.subdomain);\n        };\n        var w = new p(r, v, s).setUseAjaxPipe(t.usePipe).setBundleOption((t.bundle !== false)).setAppend(t.append).setJSNonBlock(t.jsNonblock).setAutomatic(t.automatic).setDisplayCallback(t.displayCallback).setConstHeight(t.constHeight).setAllowCrossPageTransition(t.crossPage).setFinallyHandler((t.finallyHandler || n)).setTransportErrorHandler(t.transportErrorHandler);\n        (t.handler && w.setHandler(t.handler));\n        w.go();\n        return w;\n    };\n    m(p.prototype, {\n        getElement: function() {\n            return this._element;\n        },\n        setHandler: function(q) {\n            this._handler = q;\n            return this;\n        },\n        go: function(q, r) {\n            if (((arguments.length >= 2) || (typeof q == \"string\"))) {\n                this._src = q;\n                this._data = (r || {\n                });\n            }\n             else if ((arguments.length == 1)) {\n                this._data = q;\n            }\n        ;\n            this.refresh();\n            return this;\n        },\n        setAllowCrossPageTransition: function(q) {\n            this._allow_cross_page_transition = q;\n            return this;\n        },\n        setBundleOption: function(q) {\n            this._is_bundle = q;\n            return this;\n        },\n        setTransportErrorHandler: function(q) {\n            this.transportErrorHandler = q;\n            return this;\n        },\n        refresh: function() {\n            if (this._use_ajaxpipe) {\n                k.setIsUIPageletRequest(true);\n                this._request = new g();\n                this._request.setCanvasId(this._id).setAppend(this._append).setConstHeight(this._constHeight).setJSNonBlock(this._jsNonblock).setAutomatic(this._automatic).setDisplayCallback(this._displayCallback).setFinallyHandler(this._finallyHandler);\n            }\n             else {\n                var q = function(t) {\n                    this._request = null;\n                    var u = j(t.getPayload());\n                    if (this._append) {\n                        i.appendContent(this._element, u);\n                    }\n                     else i.setContent(this._element, u);\n                ;\n                    this._handler();\n                }.bind(this), r = this._displayCallback;\n                this._request = new h().setMethod(\"GET\").setReadOnly(true).setOption(\"bundle\", this._is_bundle).setHandler(function(t) {\n                    if (r) {\n                        r(q.curry(t));\n                    }\n                     else q(t);\n                ;\n                    if (this._finallyHandler) {\n                        this._finallyHandler();\n                    };\n                });\n                if (this.transportErrorHandler) {\n                    this._request.setTransportErrorHandler(this.transportErrorHandler);\n                };\n            }\n        ;\n            var s = {\n            };\n            m(s, this._context_data);\n            m(s, this._data);\n            this._request.setURI(this._src).setAllowCrossPageTransition(this._allow_cross_page_transition).setData({\n                data: JSON.stringify(s)\n            }).send();\n            return this;\n        },\n        cancel: function() {\n            if (this._request) {\n                this._request.abort();\n            };\n        },\n        setUseAjaxPipe: function(q) {\n            this._use_ajaxpipe = !!q;\n            return this;\n        },\n        setAppend: function(q) {\n            this._append = !!q;\n            return this;\n        },\n        setJSNonBlock: function(q) {\n            this._jsNonblock = !!q;\n            return this;\n        },\n        setAutomatic: function(q) {\n            this._automatic = !!q;\n            return this;\n        },\n        setDisplayCallback: function(q) {\n            this._displayCallback = q;\n            return this;\n        },\n        setConstHeight: function(q) {\n            this._constHeight = !!q;\n            return this;\n        },\n        setFinallyHandler: function(q) {\n            this._finallyHandler = q;\n            return this;\n        }\n    });\n    e.exports = p;\n});\n__d(\"ScrollableArea\", [\"Animation\",\"ArbiterMixin\",\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"Event\",\"Parent\",\"Run\",\"SimpleDrag\",\"Style\",\"UserAgent\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"Event\"), n = b(\"Parent\"), o = b(\"Run\"), p = b(\"SimpleDrag\"), q = b(\"Style\"), r = b(\"UserAgent\"), s = b(\"Vector\"), t = b(\"copyProperties\"), u = b(\"throttle\"), v = 12;\n    function w(x, y) {\n        if (!x) {\n            return\n        };\n        y = (y || {\n        });\n        this._elem = x;\n        this._wrap = l.find(x, \"div.uiScrollableAreaWrap\");\n        this._body = l.find(this._wrap, \"div.uiScrollableAreaBody\");\n        this._content = l.find(this._body, \"div.uiScrollableAreaContent\");\n        this._track = l.find(x, \"div.uiScrollableAreaTrack\");\n        this._gripper = l.find(this._track, \"div.uiScrollableAreaGripper\");\n        this._options = y;\n        this._throttledComputeHeights = u.withBlocking(this._computeHeights, 250, this);\n        this.throttledAdjustGripper = u.withBlocking(this.adjustGripper, 250, this);\n        this._throttledShowGripperAndShadows = u.withBlocking(this._showGripperAndShadows, 250, this);\n        this._throttledRespondMouseMove = u(this._respondMouseMove, 250, this);\n        this.adjustGripper.bind(this).defer();\n        this._listeners = [m.listen(this._wrap, \"scroll\", this._handleScroll.bind(this)),m.listen(x, \"mousemove\", this._handleMouseMove.bind(this)),m.listen(this._track, \"click\", this._handleClickOnTrack.bind(this)),];\n        if (i.hasPointerEvents()) {\n            this._listeners.push(m.listen(x, \"click\", this._handleClickOnTrack.bind(this)));\n        };\n        if ((y.fade !== false)) {\n            this._listeners.push(m.listen(x, \"mouseenter\", this._handleMouseEnter.bind(this)), m.listen(x, \"mouseleave\", this._handleMouseLeave.bind(this)), m.listen(x, \"focusin\", this.showScrollbar.bind(this, false)), m.listen(x, \"focusout\", this.hideScrollbar.bind(this)));\n        }\n         else if (i.hasPointerEvents()) {\n            this._listeners.push(m.listen(x, \"mouseleave\", j.removeClass.curry(x, \"uiScrollableAreaTrackOver\")));\n        }\n    ;\n        if ((r.webkit() || r.chrome())) {\n            this._listeners.push(m.listen(x, \"mousedown\", function() {\n                var z = m.listen(window, \"mouseup\", function() {\n                    if (x.scrollLeft) {\n                        x.scrollLeft = 0;\n                    };\n                    z.remove();\n                });\n            }));\n        }\n         else if (r.firefox()) {\n            this._wrap.addEventListener(\"DOMMouseScroll\", function(event) {\n                ((event.axis === event.HORIZONTAL_AXIS) && event.preventDefault());\n            }, false);\n        }\n    ;\n        this.initDrag();\n        k.set(this._elem, \"ScrollableArea\", this);\n        if (!y.persistent) {\n            o.onLeave(this.destroy.bind(this));\n        };\n        if ((y.shadow !== false)) {\n            j.addClass(this._elem, \"uiScrollableAreaWithShadow\");\n        };\n    };\n    t(w, {\n        renderDOM: function() {\n            var x = l.create(\"div\", {\n                className: \"uiScrollableAreaContent\"\n            }), y = l.create(\"div\", {\n                className: \"uiScrollableAreaBody\"\n            }, x), z = l.create(\"div\", {\n                className: \"uiScrollableAreaWrap\"\n            }, y), aa = l.create(\"div\", {\n                className: \"uiScrollableArea native\"\n            }, z);\n            return {\n                root: aa,\n                wrap: z,\n                body: y,\n                content: x\n            };\n        },\n        fromNative: function(x, y) {\n            if ((!j.hasClass(x, \"uiScrollableArea\") || !j.hasClass(x, \"native\"))) {\n                return\n            };\n            y = (y || {\n            });\n            j.removeClass(x, \"native\");\n            var z = l.create(\"div\", {\n                className: \"uiScrollableAreaTrack\"\n            }, l.create(\"div\", {\n                className: \"uiScrollableAreaGripper\"\n            }));\n            if ((y.fade !== false)) {\n                j.addClass(x, \"fade\");\n                j.addClass(z, \"invisible_elem\");\n            }\n             else j.addClass(x, \"nofade\");\n        ;\n            l.appendContent(x, z);\n            var aa = new w(x, y);\n            aa.resize();\n            return aa;\n        },\n        getInstance: function(x) {\n            var y = n.byClass(x, \"uiScrollableArea\");\n            return (y ? k.get(y, \"ScrollableArea\") : null);\n        },\n        poke: function(x) {\n            var y = w.getInstance(x);\n            (y && y.poke());\n        }\n    });\n    t(w.prototype, h, {\n        initDrag: function() {\n            var x = i.hasPointerEvents(), y = new p((x ? this._elem : this._gripper));\n            y.subscribe(\"start\", function(z, event) {\n                if (!((((event.which && (event.which === 1))) || ((event.button && (event.button === 1)))))) {\n                    return\n                };\n                var aa = s.getEventPosition(event, \"viewport\");\n                if (x) {\n                    var ba = this._gripper.getBoundingClientRect();\n                    if (((((aa.x < ba.left) || (aa.x > ba.right)) || (aa.y < ba.top)) || (aa.y > ba.bottom))) {\n                        return false\n                    };\n                }\n            ;\n                this.inform(\"grip_start\");\n                var ca = aa.y, da = this._gripper.offsetTop;\n                j.addClass(this._elem, \"uiScrollableAreaDragging\");\n                var ea = y.subscribe(\"update\", function(ga, event) {\n                    var ha = (s.getEventPosition(event, \"viewport\").y - ca);\n                    this._throttledComputeHeights();\n                    var ia = (this._contentHeight - this._containerHeight), ja = (da + ha), ka = (this._trackHeight - this._gripperHeight);\n                    ja = Math.max(Math.min(ja, ka), 0);\n                    var la = ((ja / ka) * ia);\n                    this._wrap.scrollTop = la;\n                }.bind(this)), fa = y.subscribe(\"end\", function() {\n                    y.unsubscribe(ea);\n                    y.unsubscribe(fa);\n                    j.removeClass(this._elem, \"uiScrollableAreaDragging\");\n                    this.inform(\"grip_end\");\n                }.bind(this));\n            }.bind(this));\n        },\n        adjustGripper: function() {\n            if (this._needsGripper()) {\n                q.set(this._gripper, \"height\", (this._gripperHeight + \"px\"));\n                this._slideGripper();\n            }\n        ;\n            this._throttledShowGripperAndShadows();\n            return this;\n        },\n        _computeHeights: function() {\n            this._containerHeight = this._elem.clientHeight;\n            this._contentHeight = this._content.offsetHeight;\n            this._trackHeight = this._track.offsetHeight;\n            this._gripperHeight = Math.max(((this._containerHeight / this._contentHeight) * this._trackHeight), v);\n        },\n        _needsGripper: function() {\n            this._throttledComputeHeights();\n            return (this._gripperHeight < this._trackHeight);\n        },\n        _slideGripper: function() {\n            var x = ((this._wrap.scrollTop / ((this._contentHeight - this._containerHeight))) * ((this._trackHeight - this._gripperHeight)));\n            q.set(this._gripper, \"top\", (x + \"px\"));\n        },\n        _showGripperAndShadows: function() {\n            j.conditionShow(this._gripper, this._needsGripper());\n            j.conditionClass(this._elem, \"contentBefore\", (this._wrap.scrollTop > 0));\n            j.conditionClass(this._elem, \"contentAfter\", !this.isScrolledToBottom());\n        },\n        destroy: function() {\n            this._listeners.forEach(function(x) {\n                x.remove();\n            });\n            this._listeners.length = 0;\n        },\n        _handleClickOnTrack: function(event) {\n            var x = s.getEventPosition(event, \"viewport\"), y = this._gripper.getBoundingClientRect();\n            if (((x.x < y.right) && (x.x > y.left))) {\n                if ((x.y < y.top)) {\n                    this.setScrollTop((this.getScrollTop() - this._elem.clientHeight));\n                }\n                 else if ((x.y > y.bottom)) {\n                    this.setScrollTop((this.getScrollTop() + this._elem.clientHeight));\n                }\n            ;\n                event.prevent();\n            }\n        ;\n        },\n        _handleMouseMove: function(event) {\n            var x = (this._options.fade !== false);\n            if ((i.hasPointerEvents() || x)) {\n                this._mousePos = s.getEventPosition(event);\n                this._throttledRespondMouseMove();\n            }\n        ;\n        },\n        _respondMouseMove: function() {\n            if (!this._mouseOver) {\n                return\n            };\n            var x = (this._options.fade !== false), y = this._mousePos, z = s.getElementPosition(this._track).x, aa = s.getElementDimensions(this._track).x, ba = Math.abs(((z + (aa / 2)) - y.x));\n            j.conditionClass(this._elem, \"uiScrollableAreaTrackOver\", (i.hasPointerEvents() && (ba <= 10)));\n            if (x) {\n                if ((ba < 25)) {\n                    this.showScrollbar(false);\n                }\n                 else if (!this._options.no_fade_on_hover) {\n                    this.hideScrollbar();\n                }\n            \n            };\n        },\n        _handleScroll: function(event) {\n            if (this._needsGripper()) {\n                this._slideGripper();\n            };\n            this.throttledAdjustGripper();\n            if ((this._options.fade !== false)) {\n                this.showScrollbar();\n            };\n            this.inform(\"scroll\");\n        },\n        _handleMouseLeave: function() {\n            this._mouseOver = false;\n            this.hideScrollbar();\n        },\n        _handleMouseEnter: function() {\n            this._mouseOver = true;\n            this.showScrollbar();\n        },\n        hideScrollbar: function(x) {\n            if (!this._scrollbarVisible) {\n                return this\n            };\n            this._scrollbarVisible = false;\n            if (this._hideTimeout) {\n                clearTimeout(this._hideTimeout);\n                this._hideTimeout = null;\n            }\n        ;\n            if (x) {\n                q.set(this._track, \"opacity\", 0);\n                j.addClass.curry(this._track, \"invisible_elem\");\n            }\n             else this._hideTimeout = function() {\n                if (this._hideAnimation) {\n                    this._hideAnimation.stop();\n                    this._hideAnimation = null;\n                }\n            ;\n                this._hideAnimation = (new g(this._track)).from(\"opacity\", 1).to(\"opacity\", 0).duration(250).ondone(j.addClass.curry(this._track, \"invisible_elem\")).go();\n            }.bind(this).defer(750);\n        ;\n            return this;\n        },\n        resize: function() {\n            var x = s.getElementDimensions(this._elem).x;\n            if ((this._options.fade === false)) {\n                x -= 10;\n            };\n            x = Math.max(0, x);\n            q.set(this._body, \"width\", (x + \"px\"));\n            return this;\n        },\n        showScrollbar: function(x) {\n            this.throttledAdjustGripper();\n            if (this._scrollbarVisible) {\n                return this\n            };\n            this._scrollbarVisible = true;\n            if (this._hideTimeout) {\n                clearTimeout(this._hideTimeout);\n                this._hideTimeout = null;\n            }\n        ;\n            if (this._hideAnimation) {\n                this._hideAnimation.stop();\n                this._hideAnimation = null;\n            }\n        ;\n            q.set(this._track, \"opacity\", 1);\n            j.removeClass(this._track, \"invisible_elem\");\n            if ((((x !== false)) && !this._options.no_fade_on_hover)) {\n                this.hideScrollbar();\n            };\n            return this;\n        },\n        isScrolledToBottom: function() {\n            return (this._wrap.scrollTop >= (this._contentHeight - this._containerHeight));\n        },\n        isScrolledToTop: function() {\n            return (this._wrap.scrollTop === 0);\n        },\n        scrollToBottom: function(x) {\n            this.setScrollTop(this._wrap.scrollHeight, x);\n        },\n        scrollToTop: function(x) {\n            this.setScrollTop(0, x);\n        },\n        scrollIntoView: function(x, y) {\n            var z = this._wrap.clientHeight, aa = x.offsetHeight, ba = this._wrap.scrollTop, ca = (ba + z), da = x.offsetTop, ea = (da + aa);\n            if (((da < ba) || (z < aa))) {\n                this.setScrollTop(da, y);\n            }\n             else if ((ea > ca)) {\n                this.setScrollTop((ba + ((ea - ca))), y);\n            }\n        ;\n        },\n        poke: function() {\n            var x = this._wrap.scrollTop;\n            this._wrap.scrollTop += 1;\n            this._wrap.scrollTop -= 1;\n            this._wrap.scrollTop = x;\n            return this.showScrollbar(false);\n        },\n        getScrollTop: function() {\n            return this._wrap.scrollTop;\n        },\n        getScrollHeight: function() {\n            return this._wrap.scrollHeight;\n        },\n        setScrollTop: function(x, y, z) {\n            if ((y !== false)) {\n                if (this._scrollTopAnimation) {\n                    this._scrollTopAnimation.stop();\n                };\n                z = (z || {\n                });\n                var aa = (z.duration || 250), ba = (z.ease || g.ease.end);\n                this._scrollTopAnimation = (new g(this._wrap)).to(\"scrollTop\", x).ease(ba).duration(aa).go();\n            }\n             else this._wrap.scrollTop = x;\n        ;\n        }\n    });\n    e.exports = w;\n});\n__d(\"Menu\", [\"CSS\",\"Class\",\"DataStore\",\"DOM\",\"Event\",\"Keys\",\"Parent\",\"PopoverMenuInterface\",\"ScrollableArea\",\"Style\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"Class\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"Event\"), l = b(\"Keys\"), m = b(\"Parent\"), n = b(\"PopoverMenuInterface\"), o = b(\"ScrollableArea\"), p = b(\"Style\"), q = b(\"copyProperties\"), r = b(\"cx\");\n    function s(t, u) {\n        this.parent.construct(this);\n        this._items = [];\n        for (var v = 0; (v < t.length); v++) {\n            this._items[v] = new t[v].ctor(t[v]);;\n        };\n        this._config = (u || {\n        });\n        this._theme = (u.theme || {\n        });\n    };\n    h.extend(s, n);\n    q(s.prototype, {\n        _focused: null,\n        _root: null,\n        addItem: function(t) {\n            this._addItem(t);\n        },\n        addItemBefore: function(t, u) {\n            this._addItem(t, u, false);\n        },\n        addItemAfter: function(t, u) {\n            this._addItem(t, u, true);\n        },\n        _addItem: function(t, u, v) {\n            var w = this._items.indexOf(t);\n            if ((w >= 0)) {\n                var x = (v ? -1 : 1);\n                if ((this._items[(w + x)] == u)) {\n                    return\n                };\n                this._items.splice(w, 1);\n            }\n        ;\n            if (u) {\n                w = this._items.indexOf(u);\n                if ((w < 0)) {\n                    throw new Error(\"reference item must already be in the menu\")\n                };\n                if (v) {\n                    w++;\n                };\n                this._items.splice(w, 0, t);\n            }\n             else this._items.push(t);\n        ;\n            if (this._root) {\n                this._insertItem(t, u, v);\n            };\n        },\n        removeItem: function(t) {\n            var u = this._items.indexOf(t);\n            if ((u < 0)) {\n                return\n            };\n            this._items.splice(u, 1);\n            (this._root && j.remove(t.getRoot()));\n        },\n        forEachItem: function(t) {\n            this._items.forEach(t);\n        },\n        getItemAt: function(t) {\n            return (this._items[t] || null);\n        },\n        getRoot: function() {\n            if (!this._root) {\n                this._render();\n            };\n            return this._root;\n        },\n        onShow: function() {\n            if (this._config.maxheight) {\n                if (!this._scrollableArea) {\n                    this._scrollableArea = o.fromNative(this._scrollableElems.root, {\n                        fade: true\n                    });\n                }\n                 else this._scrollableArea.resize();\n            \n            };\n            this.focusAnItem();\n        },\n        onHide: function() {\n            this.blur();\n        },\n        focusAnItem: function() {\n            return this._attemptFocus(0, 1);\n        },\n        blur: function() {\n            if (this._focused) {\n                this._focused.blur();\n                this._focused = null;\n                this.inform(\"blur\");\n            }\n        ;\n        },\n        handleKeydown: function(t, u) {\n            var v = this._items.indexOf(this._focused);\n            switch (t) {\n              case l.UP:\n            \n              case l.DOWN:\n                var w = ((t === l.UP) ? -1 : 1);\n                if ((v !== -1)) {\n                    return this._attemptFocus((v + w), w);\n                }\n                 else if ((t === l.UP)) {\n                    return this._attemptFocus((this._items.length - 1), -1);\n                }\n                 else return this._attemptFocus(0, 1)\n                \n            ;\n                break;\n              case l.SPACE:\n                if ((this._items.indexOf(this._focused) !== -1)) {\n                    this._handleItemClick(this._focused, u);\n                    return true;\n                }\n            ;\n                return false;\n              default:\n                var x = String.fromCharCode(t).toLowerCase(), y;\n                for (var z = (v + 1); (z < this._items.length); z++) {\n                    y = this._items[z].getAccessKey();\n                    if ((y && (y.charAt(0).toLowerCase() === x))) {\n                        if (this._focusItem(this._items[z])) {\n                            return true\n                        }\n                    };\n                };\n                return false;\n            };\n        },\n        _render: function() {\n            this._ul = j.create(\"ul\", {\n                className: \"_54nf\"\n            });\n            this._ul.setAttribute(\"role\", \"menu\");\n            this._items.forEach(function(v) {\n                this._insertItem(v, null);\n            }.bind(this));\n            k.listen(this._ul, \"click\", this._handleClick.bind(this));\n            k.listen(this._ul, \"mouseover\", this._handleMouseOver.bind(this));\n            k.listen(this._ul, \"mouseout\", this._handleMouseOut.bind(this));\n            var t = this._ul;\n            if (this._config.maxheight) {\n                this._scrollableElems = o.renderDOM();\n                j.setContent(this._scrollableElems.content, this._ul);\n                t = this._scrollableElems.root;\n                p.set(this._scrollableElems.wrap, \"max-height\", (this._config.maxheight + \"px\"));\n            }\n        ;\n            var u = ((\"_54nq\" + ((this._config.className ? (\" \" + this._config.className) : \"\"))) + ((this._theme.className ? (\" \" + this._theme.className) : \"\")));\n            this._root = j.create(\"div\", {\n                className: u\n            }, j.create(\"div\", {\n                className: \"_54ng\"\n            }, t));\n            (this._config.id && this._root.setAttribute(\"id\", this._config.id));\n            this.inform(\"rendered\", this._root);\n        },\n        _needsDefaultBehavior: function(t) {\n            if ((t.isDefaultRequested && t.isDefaultRequested())) {\n                var u = m.byTag(t.getTarget(), \"a\"), v = (u && u.getAttribute(\"href\"));\n                return (v && (v[0] !== \"#\"));\n            }\n        ;\n            return false;\n        },\n        _handleClick: function(t) {\n            if (!this._needsDefaultBehavior(t)) {\n                var u = this._getItemInstance(t.getTarget());\n                if (u) {\n                    return this._handleItemClick(u, t)\n                };\n            }\n        ;\n        },\n        _handleItemClick: function(t, u) {\n            this.inform(\"itemclick\", {\n                item: t,\n                event: u\n            });\n            if (t.hasAction()) {\n                this.done();\n            };\n            return t.handleClick();\n        },\n        _handleMouseOver: function(t) {\n            var u = this._getItemInstance(t.getTarget());\n            (u && this._focusItem(u, true));\n        },\n        _handleMouseOut: function(t) {\n            var u = this._getItemInstance(t.getTarget());\n            if ((u && (this._focused === u))) {\n                this.blur();\n            };\n        },\n        _insertItem: function(t, u, v) {\n            var w = t.getRoot();\n            g.addClass(w, \"__MenuItem\");\n            i.set(w, \"MenuItem\", t);\n            if (u) {\n                var x = (v ? j.insertAfter : j.insertBefore);\n                x(u.getRoot(), w);\n            }\n             else j.appendContent(this._ul, w);\n        ;\n        },\n        _attemptFocus: function(t, u) {\n            var v = this.getItemAt(t);\n            if (v) {\n                if (this._focusItem(v)) {\n                    return true;\n                }\n                 else return this._attemptFocus((t + u), u)\n            \n            };\n            return false;\n        },\n        _focusItem: function(t, u) {\n            if ((t.focus(u) !== false)) {\n                if ((this._focused !== t)) {\n                    this.blur();\n                    this._focused = t;\n                    this.inform(\"focus\");\n                }\n            ;\n                return true;\n            }\n        ;\n            return false;\n        },\n        _getItemInstance: function(t) {\n            var u = m.byClass(t, \"__MenuItem\");\n            return (u ? i.get(u, \"MenuItem\") : null);\n        }\n    });\n    e.exports = s;\n});\n__d(\"MenuItemInterface\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n    function i() {\n    \n    };\n    g(i.prototype, {\n        _root: null,\n        getRoot: function() {\n            if (!this._root) {\n                this._root = this.render();\n            };\n            return this._root;\n        },\n        render: h,\n        getAccessKey: h,\n        hasAction: h.thatReturnsFalse,\n        focus: h.thatReturnsFalse,\n        blur: h.thatReturnsFalse,\n        handleClick: h.thatReturnsFalse\n    });\n    e.exports = i;\n});\n__d(\"MenuItemBase\", [\"Class\",\"DOM\",\"HTML\",\"MenuItemInterface\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"MenuItemInterface\"), k = b(\"copyProperties\"), l = b(\"cx\");\n    function m(n) {\n        this.parent.construct(this);\n        this._data = n;\n    };\n    g.extend(m, j);\n    k(m.prototype, {\n        render: function() {\n            var n = \"_54ni\";\n            if (this._data.className) {\n                n += (\" \" + this._data.className);\n            };\n            var o = {\n                className: n,\n                \"aria-selected\": \"false\"\n            };\n            for (var p in this._data) {\n                if ((p.indexOf(\"data-\") === 0)) {\n                    o[p] = this._data[p];\n                };\n            };\n            return h.create(\"li\", o, this._renderItemContent());\n        },\n        _renderItemContent: function() {\n            return i(this._data.markup).getNodes();\n        }\n    });\n    e.exports = m;\n});\n__d(\"MenuItem\", [\"Class\",\"CSS\",\"DOM\",\"MenuItemBase\",\"React\",\"copyProperties\",\"cx\",\"emptyFunction\",\"startsWith\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MenuItemBase\"), k = b(\"React\"), l = b(\"copyProperties\"), m = b(\"cx\"), n = b(\"emptyFunction\"), o = b(\"startsWith\");\n    function p(q) {\n        this.parent.construct(this, q);\n        this._disabled = !!this._data.disabled;\n    };\n    g.extend(p, j);\n    l(p.prototype, {\n        getValue: function() {\n            return this._data.value;\n        },\n        getAccessKey: function() {\n            return (this._data.label && this._data.label.charAt(0));\n        },\n        hasAction: n.thatReturnsTrue,\n        focus: function(q) {\n            if ((this.isDisabled() || !this._root.offsetParent)) {\n                return false\n            };\n            h.addClass(this._root, \"_54ne\");\n            h.addClass(this._root, \"selected\");\n            this._root.setAttribute(\"aria-selected\", \"true\");\n            (q || this._anchor.focus());\n        },\n        blur: function() {\n            h.removeClass(this._root, \"_54ne\");\n            h.removeClass(this._root, \"selected\");\n            this._root.setAttribute(\"aria-selected\", \"false\");\n        },\n        handleClick: function() {\n            if (this.isDisabled()) {\n                return false\n            };\n            if ((typeof this._onclickHandler === \"function\")) {\n                return this._onclickHandler()\n            };\n            return !!((((this._data.rel && (this._data.rel !== \"ignore\"))) || this._data.href));\n        },\n        setOnClickHandler: function(q) {\n            this._onclickHandler = q;\n        },\n        _renderItemContent: function() {\n            this._anchor = i.create(\"a\", {\n                className: \"_54nc\"\n            });\n            if (this._data.reactChildren) {\n                k.renderComponent(k.DOM.span({\n                    className: \"_54nh\"\n                }, this._data.reactChildren), this._anchor);\n                this._data.label = (this._anchor.innerText || this._anchor.textContent);\n            }\n             else i.setContent(this._anchor, i.create(\"span\", {\n                className: \"_54nh\"\n            }, (this._data.markup || this._data.label)));\n        ;\n            if (this._data.icon) {\n                i.prependContent(this._anchor, this._data.icon);\n                h.addClass(this._anchor, \"_54nu\");\n            }\n        ;\n            if (!this.isDisabled()) {\n                this._anchor.setAttribute(\"href\", (this._data.href || \"#\"));\n            };\n            if (this._data.rel) {\n                this._anchor.setAttribute(\"rel\", this._data.rel);\n            }\n             else if (!this._data.href) {\n                this._anchor.setAttribute(\"rel\", \"ignore\");\n            }\n        ;\n            if (this._data.ajaxify) {\n                this._anchor.setAttribute(\"ajaxify\", this._data.ajaxify);\n            };\n            if (this._data.target) {\n                this._anchor.setAttribute(\"target\", this._data.target);\n            };\n            for (var q in this._data) {\n                if (((typeof q === \"string\") && o(q, \"data-\"))) {\n                    this._anchor.setAttribute(q, this._data[q]);\n                };\n            };\n            this._anchor.setAttribute(\"role\", \"menuitem\");\n            this._anchor.setAttribute(\"title\", this._data.title);\n            return this._anchor;\n        },\n        isDisabled: function() {\n            return this._disabled;\n        },\n        enable: function() {\n            this._anchor.setAttribute(\"href\", (this._data.href || \"#\"));\n            h.removeClass(this._root, \"_5arm\");\n            this._disabled = false;\n        },\n        disable: function() {\n            this._anchor.removeAttribute(\"href\");\n            h.addClass(this._root, \"_5arm\");\n            this._disabled = true;\n        },\n        render: function() {\n            var q = this.parent.render();\n            if (this._data.disabled) {\n                h.addClass(q, \"_5arm\");\n            };\n            return q;\n        }\n    });\n    e.exports = p;\n});\n__d(\"MenuSelectableItem\", [\"Class\",\"CSS\",\"MenuItem\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"MenuItem\"), j = b(\"copyProperties\"), k = b(\"cx\");\n    function l(m) {\n        this.parent.construct(this, m);\n        this._selected = !!this._data.selected;\n    };\n    g.extend(l, i);\n    j(l.prototype, {\n        _selected: false,\n        getLabel: function() {\n            return this._data.label;\n        },\n        getIcon: function() {\n            return this._data.icon;\n        },\n        isSelected: function() {\n            return this._selected;\n        },\n        select: function() {\n            if (this.isDisabled()) {\n                return false\n            };\n            h.addClass(this._root, \"_54nd\");\n            this._selected = true;\n        },\n        deselect: function() {\n            h.removeClass(this._root, \"_54nd\");\n            this._selected = false;\n        },\n        render: function() {\n            var m = this.parent.render();\n            if (this._data.selected) {\n                h.addClass(m, \"_54nd\");\n            };\n            return m;\n        }\n    });\n    e.exports = l;\n});\n__d(\"SelectableMenu\", [\"Class\",\"Menu\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"Menu\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\");\n    function l(o, p) {\n        this.parent.construct(this, o, p);\n    };\n    function m(o) {\n        return ((o.select && o.deselect) && o.isSelected);\n    };\n    function n(o) {\n        return (m(o) && o.isSelected());\n    };\n    g.extend(l, h);\n    j(l.prototype, {\n        focusAnItem: function() {\n            for (var o = 0; (o < this._items.length); o++) {\n                if (n(this._items[o])) {\n                    if ((this._focusItem(this._items[o]) !== false)) {\n                        return true\n                    }\n                };\n            };\n            return this.parent.focusAnItem();\n        },\n        setValue: function(o) {\n            if (!this._root) {\n                this._render();\n            };\n            var p = k(o);\n            this._items.forEach(function(q) {\n                if (m(q)) {\n                    if (i(p, q.getValue())) {\n                        q.select();\n                    }\n                     else if (n(q)) {\n                        q.deselect();\n                    }\n                \n                };\n            });\n            this.inform(\"change\", this._getSelection());\n        },\n        _handleItemClick: function(o, p) {\n            if (!m(o)) {\n                return this.parent._handleItemClick(o, p)\n            };\n            this.inform(\"itemclick\", {\n                item: o,\n                event: p\n            });\n            if (this._config.multiple) {\n                var q = (n(o) ? o.deselect() : o.select());\n                if ((q !== false)) {\n                    this.inform(\"change\", this._getSelection());\n                };\n            }\n             else {\n                if (!n(o)) {\n                    if ((o.select() !== false)) {\n                        this._items.forEach(function(r) {\n                            if ((n(r) && (r !== o))) {\n                                r.deselect();\n                            };\n                        });\n                        this.inform(\"change\", this._getSelection());\n                    }\n                \n                };\n                this.done();\n            }\n        ;\n            return o.handleClick();\n        },\n        _getSelection: function() {\n            var o = [];\n            this._items.forEach(function(p) {\n                if (n(p)) {\n                    o.push({\n                        label: p.getLabel(),\n                        value: p.getValue(),\n                        item: p\n                    });\n                };\n            });\n            if (!this._config.multiple) {\n                o = o[0];\n            };\n            return o;\n        }\n    });\n    e.exports = l;\n});\n__d(\"PopoverLoadingMenu\", [\"Class\",\"DOM\",\"PopoverMenuInterface\",\"copyProperties\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"PopoverMenuInterface\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"joinClasses\");\n    function m(n) {\n        this.parent.construct(this);\n        this._config = (n || {\n        });\n        this._theme = (n.theme || {\n        });\n    };\n    g.extend(m, i);\n    j(m.prototype, {\n        _root: null,\n        getRoot: function() {\n            if (!this._root) {\n                this._root = h.create(\"div\", {\n                    className: l(\"_54nq\", this._config.className, this._theme.className)\n                }, h.create(\"div\", {\n                    className: \"_54ng\"\n                }, h.create(\"div\", {\n                    className: \"_54nf _54af\"\n                }, h.create(\"span\", {\n                    className: \"_54ag\"\n                }))));\n            };\n            return this._root;\n        }\n    });\n    e.exports = m;\n});\n__d(\"TabIsolation\", [\"Event\",\"DOMQuery\",\"Focus\",\"Keys\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOMQuery\"), i = b(\"Focus\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"copyProperties\"), m = [], n = 0;\n    function o(p) {\n        this._root = p;\n        this._eventHandler = null;\n        this._identifier = n++;\n    };\n    l(o.prototype, {\n        enable: function() {\n            m.unshift(this._identifier);\n            this._eventHandler = g.listen(window, \"keydown\", function(p) {\n                if ((m[0] === this._identifier)) {\n                    this._tabHandler(p);\n                };\n            }.bind(this), g.Priority.URGENT);\n        },\n        disable: function() {\n            var p;\n            if (this._eventHandler) {\n                p = m.indexOf(this._identifier);\n                if ((p > -1)) {\n                    m.splice(p, 1);\n                };\n                this._eventHandler.remove();\n                this._eventHandler = null;\n            }\n        ;\n        },\n        _tabHandler: function(p) {\n            if ((g.getKeyCode(p) !== j.TAB)) {\n                return\n            };\n            var q = p.getTarget();\n            if (!q) {\n                return\n            };\n            var r = k.find(this._root), s = r[0], t = r[(r.length - 1)], u = p.getModifiers().shift;\n            if ((u && (q === s))) {\n                p.preventDefault();\n                i.set(t);\n            }\n             else if ((((!u && (q === t))) || !h.contains(this._root, q))) {\n                p.preventDefault();\n                i.set(s);\n            }\n            \n        ;\n        }\n    });\n    e.exports = o;\n});\n__d(\"AccessibleLayer\", [\"Event\",\"DOM\",\"Focus\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"Focus\"), j = b(\"copyProperties\"), k = b(\"tx\");\n    function l(m) {\n        this._layer = m;\n    };\n    j(l.prototype, {\n        enable: function() {\n            this._afterShowSubscription = this._layer.subscribe(\"aftershow\", this._onAfterShow.bind(this));\n        },\n        disable: function() {\n            (this._listener && this._listener.remove());\n            this._afterShowSubscription.unsubscribe();\n            this._listener = this._afterShowSubscription = null;\n        },\n        _closeListener: function(event) {\n            var m = this._layer.getCausalElement();\n            if (m) {\n                if ((m.tabIndex == -1)) {\n                    m.tabIndex = 0;\n                    i.setWithoutOutline(m);\n                }\n                 else i.set(m);\n            \n            };\n            this._layer.hide();\n        },\n        _onAfterShow: function() {\n            var m = this._layer.getContentRoot();\n            if (h.scry(m, \".layer_close_elem\")[0]) {\n                return\n            };\n            var n = h.create(\"a\", {\n                className: \"accessible_elem layer_close_elem\",\n                href: \"#\"\n            }, [\"Close popup and return\",]);\n            h.appendContent(m, n);\n            this._listener = g.listen(n, \"click\", this._closeListener.bind(this));\n        }\n    });\n    e.exports = l;\n});\n__d(\"ContextualLayerAsyncRelative\", [\"Event\",\"copyProperties\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\"), i = b(\"Parent\");\n    function j(k) {\n        this._layer = k;\n    };\n    h(j.prototype, {\n        _layerSubscription: null,\n        _listener: null,\n        enable: function() {\n            this._layerSubscription = this._layer.subscribe(\"show\", this._attachListener.bind(this));\n            if (this._layer.isShown()) {\n                this._attachListener();\n            };\n        },\n        disable: function() {\n            this._layerSubscription.unsubscribe();\n            this._layerSubscription = null;\n            if (this._listener) {\n                this._listener.remove();\n                this._listener = null;\n            }\n        ;\n        },\n        _attachListener: function() {\n            this._listener = g.listen(this._layer.getRoot(), \"click\", this._onclick.bind(this));\n        },\n        _onclick: function(k) {\n            var l = i.byTag(k.getTarget(), \"A\");\n            if (!l) {\n                return\n            };\n            var m = l.getAttribute(\"ajaxify\"), n = l.href, o = (m || n);\n            if (((l.rel === \"async\") || (l.rel === \"async-post\"))) {\n                d([\"AsyncRequest\",], function(p) {\n                    p.bootstrap(o, this._layer.getContext(), (l.rel === \"async-post\"));\n                }.bind(this));\n                return false;\n            }\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"ContextualLayerUpdateOnScroll\", [\"Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n    h(i.prototype, {\n        _subscriptions: [],\n        enable: function() {\n            this._subscriptions = [this._layer.subscribe(\"show\", this._attachScrollListener.bind(this)),this._layer.subscribe(\"hide\", this._removeScrollListener.bind(this)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();;\n            };\n            this.detach();\n        },\n        _attachScrollListener: function() {\n            if (this._listener) {\n                return\n            };\n            var j = this._layer.getContextScrollParent();\n            this._listener = g.listen(j, \"scroll\", this._layer.updatePosition.bind(this._layer));\n        },\n        _removeScrollListener: function() {\n            (this._listener && this._listener.remove());\n            this._listener = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerAutoFocus\", [\"function-extensions\",\"DOMQuery\",\"Focus\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"DOMQuery\"), h = b(\"Focus\"), i = b(\"TabbableElements\"), j = b(\"copyProperties\");\n    function k(l) {\n        this._layer = l;\n    };\n    j(k.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"aftershow\", this._focus.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _focus: function() {\n            var l = this._layer.getRoot(), m = g.scry(l, \".autofocus\")[0], n = true;\n            if (!m) {\n                var o = document.activeElement;\n                if (g.isNodeOfType(o, [\"input\",\"textarea\",])) {\n                    return\n                };\n                var p = i.find(l);\n                for (var q = 0; (q < p.length); q++) {\n                    if ((p[q].tagName != \"A\")) {\n                        m = p[q];\n                        n = false;\n                        break;\n                    }\n                ;\n                };\n            }\n             else if ((m.tabIndex !== 0)) {\n                n = false;\n            }\n        ;\n            if (m) {\n                (n ? h.set(m) : h.setWithoutOutline(m));\n            }\n             else {\n                l.tabIndex = 0;\n                h.setWithoutOutline(l);\n            }\n        ;\n        }\n    });\n    e.exports = k;\n});\n__d(\"LayerButtons\", [\"Event\",\"Parent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Parent\"), i = b(\"copyProperties\");\n    function j(k) {\n        this._layer = k;\n    };\n    i(j.prototype, {\n        _listener: null,\n        enable: function() {\n            this._listener = g.listen(this._layer.getRoot(), \"click\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._listener.remove();\n            this._listener = null;\n        },\n        _handle: function(k) {\n            var l = k.getTarget(), m = h.byClass(l, \"layerConfirm\");\n            if (m) {\n                if ((this._layer.inform(\"confirm\", m) === false)) {\n                    k.prevent();\n                };\n                return;\n            }\n        ;\n            var n = h.byClass(l, \"layerCancel\");\n            if (n) {\n                if ((this._layer.inform(\"cancel\", n) !== false)) {\n                    this._layer.hide();\n                };\n                k.prevent();\n                return;\n            }\n        ;\n            var o = h.byClass(l, \"layerButton\");\n            if (o) {\n                if ((this._layer.inform(\"button\", o) === false)) {\n                    k.prevent();\n                }\n            };\n        }\n    });\n    e.exports = j;\n});\n__d(\"LayerDestroyOnHide\", [\"function-extensions\",\"copyProperties\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"copyProperties\"), h = b(\"shield\");\n    function i(j) {\n        this._layer = j;\n    };\n    g(i.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"hide\", h(Function.prototype.defer, this._layer.destroy.bind(this._layer)));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerFadeOnHide\", [\"Animation\",\"Layer\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Layer\"), i = b(\"Style\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n    function l(m) {\n        this._layer = m;\n    };\n    k(l.prototype, {\n        _subscription: null,\n        enable: function() {\n            if ((j.ie() < 9)) {\n                return\n            };\n            this._subscription = this._layer.subscribe(\"starthide\", this._handleStartHide.bind(this));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        },\n        _handleStartHide: function() {\n            var m = true, n = h.subscribe(\"show\", function() {\n                n.unsubscribe();\n                m = false;\n            });\n            (function() {\n                n.unsubscribe();\n                n = null;\n                if (m) {\n                    this._animate();\n                }\n                 else this._layer.finishHide();\n            ;\n            }).bind(this).defer();\n            return false;\n        },\n        _animate: function() {\n            new g(this._layer.getRoot()).from(\"opacity\", 1).to(\"opacity\", 0).duration(150).ondone(this._finish.bind(this)).go();\n        },\n        _finish: function() {\n            i.set(this._layer.getRoot(), \"opacity\", \"\");\n            this._layer.finishHide();\n        }\n    });\n    e.exports = l;\n});\n__d(\"LayerFadeOnShow\", [\"Animation\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Style\"), i = b(\"UserAgent\"), j = b(\"copyProperties\");\n    function k(l) {\n        this._layer = l;\n    };\n    j(k.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            if ((i.ie() < 9)) {\n                return\n            };\n            this._subscriptions = [this._layer.subscribe(\"beforeshow\", function() {\n                h.set(this._layer.getRoot(), \"opacity\", 0);\n            }.bind(this)),this._layer.subscribe(\"show\", this._animate.bind(this)),];\n        },\n        disable: function() {\n            if (this._subscriptions) {\n                while (this._subscriptions.length) {\n                    this._subscriptions.pop().unsubscribe();;\n                };\n                this._subscriptions = null;\n            }\n        ;\n        },\n        _getDuration: function() {\n            return 100;\n        },\n        _animate: function() {\n            var l = this._layer.getRoot();\n            new g(l).from(\"opacity\", 0).to(\"opacity\", 1).duration(this._getDuration()).ondone(h.set.curry(l, \"opacity\", \"\")).go();\n        }\n    });\n    e.exports = k;\n});\n__d(\"LayerFormHooks\", [\"Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n    h(i.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            var j = this._layer.getRoot();\n            this._subscriptions = [g.listen(j, \"submit\", this._onSubmit.bind(this)),g.listen(j, \"success\", this._onSuccess.bind(this)),g.listen(j, \"error\", this._onError.bind(this)),];\n        },\n        disable: function() {\n            this._subscriptions.forEach(function(j) {\n                j.remove();\n            });\n            this._subscriptions = null;\n        },\n        _onSubmit: function(event) {\n            if ((this._layer.inform(\"submit\", event) === false)) {\n                event.kill();\n            };\n        },\n        _onSuccess: function(event) {\n            if ((this._layer.inform(\"success\", event) === false)) {\n                event.kill();\n            };\n        },\n        _onError: function(event) {\n            var j = event.getData();\n            if ((this._layer.inform(\"error\", {\n                response: j.response\n            }) === false)) {\n                event.kill();\n            };\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerHideOnBlur\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._layer = i;\n    };\n    g(h.prototype, {\n        _subscriptions: null,\n        _onBlur: null,\n        enable: function() {\n            this._subscriptions = [this._layer.subscribe(\"show\", this._attach.bind(this)),this._layer.subscribe(\"hide\", this._detach.bind(this)),];\n            if (this._layer.isShown()) {\n                this._attach();\n            };\n        },\n        disable: function() {\n            this._detach();\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();;\n            };\n            this._subscriptions = null;\n        },\n        _detach: function() {\n            (this._onBlur && this._onBlur.unsubscribe());\n            this._onBlur = null;\n        },\n        _attach: function() {\n            this._onBlur = this._layer.subscribe(\"blur\", function() {\n                this._layer.hide();\n                return false;\n            }.bind(this));\n        }\n    });\n    e.exports = h;\n});\n__d(\"LayerMouseHooks\", [\"Event\",\"function-extensions\",\"Arbiter\",\"ContextualThing\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"ContextualThing\"), j = b(\"Layer\"), k = b(\"copyProperties\"), l = new h();\n    function m(n) {\n        this._layer = n;\n        this._subscriptions = [];\n        this._currentlyActive = false;\n    };\n    k(m.prototype, {\n        enable: function() {\n            this._subscriptions = [l.subscribe(\"mouseenter\", this._handleActive.bind(this)),l.subscribe(\"mouseleave\", this._handleInactive.bind(this)),this._layer.subscribe(\"hide\", function() {\n                this._currentlyActive = false;\n            }.bind(this)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();;\n            };\n            this._subscriptions = [];\n            this._currentlyActive = false;\n        },\n        _handleActive: function(n, o) {\n            if ((!this._currentlyActive && this._isNodeWithinStack(o))) {\n                this._layer.inform(\"mouseenter\");\n                this._currentlyActive = true;\n            }\n        ;\n        },\n        _handleInactive: function(n, o) {\n            if (this._currentlyActive) {\n                if ((!o || !this._isNodeWithinStack(o))) {\n                    this._layer.inform(\"mouseleave\");\n                    this._currentlyActive = false;\n                }\n            \n            };\n        },\n        _isNodeWithinStack: function(n) {\n            return i.containsIncludingLayers(this._layer.getContentRoot(), n);\n        }\n    });\n    j.subscribe(\"show\", function(n, o) {\n        var p = o.getContentRoot(), q = [g.listen(p, \"mouseenter\", function() {\n            l.inform(\"mouseenter\", p);\n        }),g.listen(p, \"mouseleave\", function(s) {\n            l.inform(\"mouseleave\", s.getRelatedTarget());\n        }),], r = o.subscribe(\"hide\", function() {\n            while (q.length) {\n                q.pop().remove();;\n            };\n            r.unsubscribe();\n            q = r = null;\n        });\n    });\n    e.exports = m;\n});\n__d(\"LayerRefocusOnHide\", [\"copyProperties\",\"Focus\",\"ContextualThing\",\"DOM\",\"DOMQuery\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"Focus\"), i = b(\"ContextualThing\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"Parent\");\n    function m(n) {\n        this._layer = n;\n    };\n    g(m.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"hide\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(n, event) {\n            if (((document.activeElement === document.body) || k.contains(this._layer.getRoot(), document.activeElement))) {\n                var o = this._layer.getCausalElement();\n                while ((o && (!o.offsetWidth))) {\n                    var p = l.byClass(o, \"uiToggle\");\n                    if ((p && p.offsetWidth)) {\n                        o = j.scry(p, \"[rel=\\\"toggle\\\"]\")[0];\n                    }\n                     else {\n                        var q = i.getContext(o);\n                        if (q) {\n                            o = q;\n                        }\n                         else o = o.parentNode;\n                    ;\n                    }\n                ;\n                };\n                if ((o && ((o.tabIndex != -1)))) {\n                    h.setWithoutOutline(o);\n                };\n            }\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"LayerTabIsolation\", [\"TabIsolation\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"TabIsolation\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n        this._tabIsolation = null;\n    };\n    h(i.prototype, {\n        _subscriptions: [],\n        enable: function() {\n            this._tabIsolation = new g(this._layer.getRoot());\n            this._subscriptions = [this._layer.subscribe(\"show\", this._tabIsolation.enable.bind(this._tabIsolation)),this._layer.subscribe(\"hide\", this._tabIsolation.disable.bind(this._tabIsolation)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();;\n            };\n            this._tabIsolation.disable();\n            this._tabIsolation = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"ModalLayer\", [\"Event\",\"function-extensions\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"DOMDimensions\",\"DOMQuery\",\"ScrollAwareDOM\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"copyProperties\",\"csx\",\"cx\",\"debounceAcrossTransitions\",\"isAsyncScrollQuery\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"DOMQuery\"), n = b(\"ScrollAwareDOM\"), o = b(\"Style\"), p = b(\"URI\"), q = b(\"UserAgent\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"cx\"), v = b(\"debounceAcrossTransitions\"), w = b(\"isAsyncScrollQuery\"), x = b(\"removeFromArray\"), y = [], z = null, aa = null, ba = null;\n    function ca() {\n        if (!ba) {\n            ba = m.scry(document.body, \"._li\")[0];\n        };\n        return ba;\n    };\n    function da(la) {\n        var ma = {\n            position: r.getScrollPosition()\n        }, na = (la.offsetTop - ma.position.y);\n        i.addClass(la, \"_31e\");\n        o.set(la, \"top\", (na + \"px\"));\n        h.inform(\"reflow\");\n        ma.listener = n.subscribe(\"scroll\", function(oa, pa) {\n            if (m.contains(la, pa.target)) {\n                var qa = (la.offsetTop - pa.delta.y);\n                o.set(la, \"top\", (qa + \"px\"));\n                ma.position = ma.position.add(pa.delta);\n                return false;\n            }\n        ;\n        });\n        j.set(la, \"ModalLayerData\", ma);\n        if ((q.firefox() < 13)) {\n            ea.curry(la).defer();\n        };\n    };\n    function ea(la) {\n        m.scry(la, \"div.swfObject\").forEach(function(ma) {\n            var na = ma.getAttribute(\"data-swfid\");\n            if ((na && window[na])) {\n                var oa = window[na];\n                oa.addParam(\"autostart\", \"false\");\n                oa.addParam(\"autoplay\", \"false\");\n                oa.addParam(\"play\", \"false\");\n                oa.addVariable(\"video_autoplay\", \"0\");\n                oa.addVariable(\"autoplay\", \"0\");\n                oa.addVariable(\"play\", \"0\");\n                var pa = p(oa.getAttribute(\"swf\"));\n                pa.addQueryData({\n                    autoplay: \"0\"\n                });\n                pa.setPath(pa.getPath().replace(\"autoplay=1\", \"autoplay=0\"));\n                oa.setAttribute(\"swf\", pa.toString());\n                oa.write(ma);\n            }\n        ;\n        });\n    };\n    function fa(la, ma) {\n        var na = j.get(la, \"ModalLayerData\");\n        if (na) {\n            var oa = function() {\n                i.removeClass(la, \"_31e\");\n                o.set(la, \"top\", \"\");\n                if (ma) {\n                    var ra = m.getDocumentScrollElement();\n                    ra.scrollTop = na.position.y;\n                }\n            ;\n                h.inform(\"reflow\");\n                na.listener.unsubscribe();\n                na.listener = null;\n                j.remove(la, \"ModalLayerData\");\n            };\n            if ((ma && w())) {\n                var pa = k.create(\"div\", {\n                    className: \"_42w\"\n                });\n                o.set(pa, \"height\", (la.offsetHeight + \"px\"));\n                k.appendContent(document.body, pa);\n                var qa = m.getDocumentScrollElement();\n                qa.scrollTop = na.position.y;\n                ma = false;\n                !function() {\n                    oa();\n                    k.remove(pa);\n                }.defer();\n            }\n             else oa();\n        ;\n        }\n    ;\n        if ((q.ie() < 7)) {\n            o.set(la, \"height\", \"\");\n        };\n    };\n    function ga() {\n        var la = ca();\n        if (!i.hasClass(la, \"_31e\")) {\n            da(la);\n        };\n    };\n    function ha() {\n        if (!y.length) {\n            fa(ca(), true);\n        };\n    };\n    function ia() {\n        var la;\n        if ((q.ie() < 7)) {\n            var ma = y[(y.length - 1)].getLayerRoot(), na = Math.max(ma.offsetHeight, ma.scrollHeight);\n            la = function(ta) {\n                o.set(ta, \"height\", (((-ta.offsetTop + na)) + \"px\"));\n            };\n        }\n    ;\n        var oa = y.length;\n        while (oa--) {\n            var pa = y[oa], qa = pa.getLayerRoot();\n            ja(qa, \"\");\n            var ra = pa.getLayerContentRoot(), sa = (ra.offsetWidth + l.measureElementBox(ra, \"width\", 0, 0, 1));\n            ja(qa, sa);\n            if ((la && (oa < (y.length - 1)))) {\n                la(qa);\n            };\n        };\n        (la && la(ca()));\n    };\n    function ja(la, ma) {\n        var na = (q.ie() < 7);\n        if (((na && ma) && (ma <= document.body.clientWidth))) {\n            ma = \"\";\n        };\n        o.set(la, (na ? \"width\" : \"min-width\"), (ma + ((ma ? \"px\" : \"\"))));\n    };\n    function ka(la) {\n        this._layer = la;\n    };\n    s(ka.prototype, {\n        _subscription: null,\n        enable: function() {\n            if (!ca()) {\n                return\n            };\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(la) {\n                ((la == \"show\") ? this._addModal() : this._removeModal());\n            }.bind(this));\n            if (this._layer.isShown()) {\n                this._addModal();\n            };\n        },\n        disable: function() {\n            if (!ca()) {\n                return\n            };\n            this._subscription.unsubscribe();\n            this._subscription = null;\n            if (this._layer.isShown()) {\n                this._removeModal();\n            };\n        },\n        _addModal: function() {\n            i.addClass(this.getLayerRoot(), \"_3qw\");\n            var la = y[(y.length - 1)];\n            if (la) {\n                da(la.getLayerRoot());\n            }\n             else ga();\n        ;\n            var ma = m.getDocumentScrollElement();\n            ma.scrollTop = 0;\n            if (!y.length) {\n                if ((q.ie() < 7)) {\n                    i.addClass(document.documentElement, \"_31d\");\n                };\n                var na = v(ia, 100);\n                z = g.listen(window, \"resize\", na);\n                aa = h.subscribe(\"reflow\", na);\n            }\n        ;\n            y.push(this);\n            ia.defer();\n        },\n        _removeModal: function() {\n            var la = this.getLayerRoot();\n            i.removeClass(la, \"_3qw\");\n            ja(la, \"\");\n            var ma = (this === y[(y.length - 1)]);\n            x(y, this);\n            var na = y[(y.length - 1)];\n            if (!na) {\n                z.remove();\n                z = null;\n                aa.unsubscribe();\n                aa = null;\n            }\n        ;\n            !function() {\n                if (na) {\n                    fa(na.getLayerRoot(), ma);\n                }\n                 else ha();\n            ;\n                if (y.length) {\n                    ia.defer();\n                }\n                 else if ((q.ie() < 7)) {\n                    i.removeClass(document.documentElement, \"_31d\");\n                }\n            ;\n            }.defer(400, false);\n        },\n        getLayerRoot: function() {\n            return this._layer.getRoot();\n        },\n        getLayerContentRoot: function() {\n            return this._layer.getContentRoot();\n        }\n    });\n    e.exports = ka;\n});\n__d(\"ContextualDialogArrow\", [\"JSXDOM\",\"CSS\",\"DOM\",\"Locale\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Locale\"), k = b(\"Style\"), l = b(\"Vector\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = {\n        bottom: \"_53ik\",\n        top: \"_53il\",\n        right: \"_53im\",\n        left: \"_53in\"\n    }, p = {\n        above: \"bottom\",\n        below: \"top\",\n        left: \"right\",\n        right: \"left\"\n    };\n    function q(r) {\n        this._layer = r;\n    };\n    m(q.prototype, {\n        _subscription: null,\n        _arrow: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe([\"adjust\",\"reposition\",], this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(r, s) {\n            if ((r === \"adjust\")) {\n                this._repositionArrow(s);\n            }\n             else this._repositionRoot(s);\n        ;\n        },\n        _repositionRoot: function(r) {\n            var s = r.getAlignment();\n            if ((s == \"center\")) {\n                return\n            };\n            var t = this._layer.getRoot(), u = this._layer.getContext(), v = r.isVertical(), w = this._layer.getArrowDimensions(), x = w.offset, y = w.length, z = l.getElementDimensions(u), aa = (v ? z.x : z.y);\n            if ((aa >= (y + ((x * 2))))) {\n                return\n            };\n            var ba = (((y / 2)) + x), ca = (aa / 2), da = parseInt((ba - ca), 10);\n            if (v) {\n                if ((s == \"left\")) {\n                    var ea = parseInt(k.get(t, \"left\"), 10);\n                    k.set(t, \"left\", (((ea - da)) + \"px\"));\n                }\n                 else {\n                    var fa = parseInt(k.get(t, \"right\"), 10);\n                    k.set(t, \"right\", (((fa - da)) + \"px\"));\n                }\n            ;\n            }\n             else {\n                var ga = parseInt(k.get(t, \"top\"), 10);\n                k.set(t, \"top\", (((ga - da)) + \"px\"));\n            }\n        ;\n        },\n        _repositionArrow: function(r) {\n            var s = this._layer._contentWrapper, t = r.getPosition(), u = p[t];\n            for (var v in o) {\n                h.conditionClass(s, o[v], (u === v));;\n            };\n            if ((t == \"none\")) {\n                return\n            };\n            if (!this._arrow) {\n                this._arrow = g.i({\n                    className: \"_53io\"\n                });\n                i.appendContent(s, this._arrow);\n            }\n        ;\n            h.conditionClass(s, \"_kc\", this._layer.getFooter());\n            k.set(this._arrow, \"top\", \"\");\n            k.set(this._arrow, \"left\", \"\");\n            k.set(this._arrow, \"right\", \"\");\n            k.set(this._arrow, \"margin\", \"\");\n            var w = q.getOffsetPercent(r), x = q.getOffset(r, w, this._layer), y = q.getOffsetSide(r);\n            k.set(this._arrow, y, (w + \"%\"));\n            k.set(this._arrow, (\"margin-\" + y), (x + \"px\"));\n        }\n    });\n    m(q, {\n        getOffsetPercent: function(r) {\n            var s = r.getAlignment(), t = r.getPosition();\n            if (((t == \"above\") || (t == \"below\"))) {\n                if ((s == \"center\")) {\n                    return 50;\n                }\n                 else if ((s == \"right\")) {\n                    return 100\n                }\n            \n            };\n            return 0;\n        },\n        getOffsetSide: function(r) {\n            var s = r.isVertical();\n            return (s ? ((j.isRTL() ? \"right\" : \"left\")) : \"top\");\n        },\n        getOffset: function(r, s, t) {\n            var u = t.getArrowDimensions(), v = u.offset, w = u.length, x = r.getAlignment(), y = (((x == \"center\")) ? 0 : v);\n            y += ((w * s) / 100);\n            if ((x != \"left\")) {\n                y *= -1;\n            };\n            return y;\n        }\n    });\n    e.exports = q;\n});\n__d(\"ContextualDialogFitInViewport\", [\"Event\",\"ContextualLayerDimensions\",\"Style\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ContextualLayerDimensions\"), i = b(\"Style\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"throttle\");\n    function m(n) {\n        this._layer = n;\n        this._listeners = [];\n    };\n    k(m.prototype, {\n        _subscription: null,\n        _minimumTop: null,\n        enable: function() {\n            var n = this._layer.getArrowDimensions();\n            this._arrowOffset = n.offset;\n            var o = n.length;\n            this._arrowBuffer = (this._arrowOffset + o);\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",\"reposition\",], function(p, q) {\n                if ((p == \"reposition\")) {\n                    this._calculateMinimumTop(q);\n                }\n                 else if ((p == \"show\")) {\n                    this._attachScroll();\n                    this._adjustForScroll();\n                }\n                 else this._detachScroll();\n                \n            ;\n            }.bind(this));\n            if (this._layer.isShown()) {\n                this._attachScroll();\n            };\n        },\n        disable: function() {\n            if (this._layer.isShown()) {\n                this._detachScroll();\n            };\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _attachScroll: function() {\n            var n = l(this._adjustForScroll.bind(this)), o = (this._layer.getContextScrollParent() || window);\n            this._listeners = [g.listen(o, \"scroll\", n),g.listen(window, \"resize\", n),];\n        },\n        _detachScroll: function() {\n            while (this._listeners.length) {\n                this._listeners.pop().remove();;\n            };\n            this._listeners = [];\n        },\n        _getContentHeight: function() {\n            return j.getElementDimensions(this._layer._contentWrapper).y;\n        },\n        _getContextY: function() {\n            return j.getElementPosition(this._layer.getContext()).y;\n        },\n        _calculateMinimumTop: function(n) {\n            if (n.isVertical()) {\n                return\n            };\n            this._minimumTop = (((this._getContextY() - ((this._getContentHeight() - this._arrowBuffer))) + n.getOffsetY()));\n        },\n        _adjustForScroll: function() {\n            if (this._layer.isFixed()) {\n                return\n            };\n            var n = this._layer._getOrientation();\n            if (n.isVertical()) {\n                return\n            };\n            var o = h.getViewportRect(this._layer), p = (o.b - this._minimumTop);\n            if ((p < 0)) {\n                return\n            };\n            var q = this._getContentHeight(), r = (q - ((this._arrowBuffer + this._arrowOffset))), s = Math.max(0, Math.min(r, (r - ((p - q)))));\n            i.set(this._layer.getContent(), \"top\", (-s + \"px\"));\n        }\n    });\n    e.exports = m;\n});\n__d(\"ContextualDialogDefaultTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\"), h = {\n        wrapperClassName: \"_53ip\",\n        arrowDimensions: {\n            offset: 15,\n            length: 16\n        }\n    };\n    e.exports = h;\n});\n__d(\"ContextualDialog\", [\"AccessibleLayer\",\"Class\",\"ContextualDialogArrow\",\"ContextualDialogFitInViewport\",\"ContextualLayer\",\"ContextualDialogDefaultTheme\",\"CSS\",\"DOM\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerHideOnTransition\",\"LayerFormHooks\",\"LayerMouseHooks\",\"Style\",\"copyProperties\",\"csx\",\"cx\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"AccessibleLayer\"), h = b(\"Class\"), i = b(\"ContextualDialogArrow\"), j = b(\"ContextualDialogFitInViewport\"), k = b(\"ContextualLayer\"), l = b(\"ContextualDialogDefaultTheme\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"LayerAutoFocus\"), p = b(\"LayerButtons\"), q = b(\"LayerHideOnTransition\"), r = b(\"LayerFormHooks\"), s = b(\"LayerMouseHooks\"), t = b(\"Style\"), u = b(\"copyProperties\"), v = b(\"csx\"), w = b(\"cx\"), x = b(\"removeFromArray\");\n    function y(z, aa) {\n        this.parent.construct(this, z, aa);\n    };\n    h.extend(y, k);\n    u(y.prototype, {\n        _footer: null,\n        _configure: function(z, aa) {\n            u(z, (z.theme || l));\n            var ba = (z.arrowBehavior || i);\n            z.addedBehaviors = (z.addedBehaviors || []);\n            z.addedBehaviors.push(ba);\n            this._footer = n.scry(aa, \"div._572u\")[0];\n            this.parent._configure(z, aa);\n        },\n        _getDefaultBehaviors: function() {\n            var z = this.parent._getDefaultBehaviors();\n            x(z, q);\n            return z.concat([g,o,j,p,r,s,]);\n        },\n        _buildWrapper: function(z, aa) {\n            m.addClass(aa, \"_53ij\");\n            var ba = this.parent._buildWrapper(z, aa);\n            m.addClass(ba, z.wrapperClassName);\n            if (z.width) {\n                this.setWidth(z.width);\n            };\n            return ba;\n        },\n        setWidth: function(z) {\n            this._width = Math.floor(z);\n            t.set(this._contentWrapper, \"width\", (z + \"px\"));\n            return this;\n        },\n        getFooter: function() {\n            return this._footer;\n        },\n        getArrowDimensions: function() {\n            return this._config.arrowDimensions;\n        }\n    });\n    u(y, {\n        setContext: function(z, aa) {\n            z.setContext(aa);\n        }\n    });\n    e.exports = y;\n});\n__d(\"DialogPosition\", [\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"Vector\"), h = 40, i, j = {\n        calculateTopMargin: function(k, l) {\n            if (i) {\n                return i\n            };\n            var m = g.getViewportDimensions(), n = Math.floor(((((m.x + k)) * ((m.y - l))) / ((4 * m.x))));\n            return Math.max(n, h);\n        },\n        setFixedTopMargin: function(k) {\n            i = k;\n        }\n    };\n    e.exports = j;\n});\n__d(\"DialogX\", [\"function-extensions\",\"JSXDOM\",\"Arbiter\",\"Class\",\"CSS\",\"DialogPosition\",\"Event\",\"Layer\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerFormHooks\",\"LayerRefocusOnHide\",\"LayerTabIsolation\",\"ModalLayer\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",\"debounce\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"JSXDOM\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSS\"), k = b(\"DialogPosition\"), l = b(\"Event\"), m = b(\"Layer\"), n = b(\"LayerAutoFocus\"), o = b(\"LayerButtons\"), p = b(\"LayerFormHooks\"), q = b(\"LayerRefocusOnHide\"), r = b(\"LayerTabIsolation\"), s = b(\"ModalLayer\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"copyProperties\"), w = b(\"cx\"), x = b(\"debounce\"), y = b(\"shield\");\n    function z(ba, ca) {\n        this.parent.construct(this, ba, ca);\n    };\n    i.extend(z, m);\n    v(z.prototype, {\n        _configure: function(ba, ca) {\n            this.parent._configure(ba, ca);\n            j.addClass(this.getRoot(), \"_4-hy\");\n            if (ba.autohide) {\n                var da = this.subscribe(\"show\", function() {\n                    da.unsubscribe();\n                    y(this.hide, this).defer(ba.autohide);\n                }.bind(this))\n            };\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([aa,s,n,o,p,r,q,]);\n        },\n        _buildWrapper: function(ba, ca) {\n            var da = (ba.xui ? \"_4-hz\" : \"_t\"), ea = (ba.xui ? \"_59s7\" : \"_1yv\");\n            this._innerContent = g.div(null, ca);\n            this._wrapper = g.div({\n                className: ea,\n                role: \"dialog\",\n                \"aria-labelledby\": (ba.titleID || null)\n            }, g.div({\n                className: da\n            }, this._innerContent));\n            this.setWidth(ba.width);\n            return (g.div({\n                className: \"_10\",\n                role: \"dialog\"\n            }, this._wrapper));\n        },\n        getContentRoot: function() {\n            return this._wrapper;\n        },\n        getInnerContent: function() {\n            return this._innerContent;\n        },\n        updatePosition: function() {\n            var ba = u.getElementDimensions(this._wrapper), ca = k.calculateTopMargin(ba.x, ba.y);\n            t.set(this._wrapper, \"margin-top\", (ca + \"px\"));\n            this.inform(\"update_position\", {\n                type: \"DialogX\",\n                top: ca\n            });\n        },\n        setWidth: function(ba) {\n            ba = Math.floor(ba);\n            if ((ba === this._width)) {\n                return\n            };\n            this._width = ba;\n            t.set(this._wrapper, \"width\", (ba + \"px\"));\n        },\n        getWidth: function() {\n            return this._width;\n        }\n    });\n    function aa(ba) {\n        this._layer = ba;\n    };\n    v(aa.prototype, {\n        _subscription: null,\n        _resize: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(ba) {\n                if ((ba === \"show\")) {\n                    this._attach();\n                    h.inform(\"layer_shown\", {\n                        type: \"DialogX\"\n                    });\n                }\n                 else {\n                    this._detach();\n                    h.inform(\"layer_hidden\", {\n                        type: \"DialogX\"\n                    });\n                }\n            ;\n            }.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n            (this._resize && this._detach());\n        },\n        _attach: function() {\n            this._layer.updatePosition();\n            this._resize = l.listen(window, \"resize\", x(this._layer.updatePosition.bind(this._layer)));\n        },\n        _detach: function() {\n            this._resize.remove();\n            this._resize = null;\n        }\n    });\n    e.exports = z;\n});\n__d(\"eachKeyVal\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        if ((!h || !i)) {\n            return\n        };\n        var k = Object.keys(h), l;\n        for (l = 0; (l < k.length); l++) {\n            i.call(j, k[l], h[k[l]], h, l);;\n        };\n    };\n    e.exports = g;\n});\n__d(\"LoadingDialogDimensions\", [], function(a, b, c, d, e, f) {\n    var g = {\n        HEIGHT: 96,\n        WIDTH: 300\n    };\n    e.exports = g;\n});\n__d(\"AsyncDialog\", [\"AsyncRequest\",\"Bootloader\",\"CSS\",\"DialogX\",\"DOM\",\"Env\",\"Keys\",\"LayerFadeOnShow\",\"Parent\",\"React\",\"URI\",\"XUISpinner.react\",\"copyProperties\",\"cx\",\"eachKeyVal\",\"emptyFunction\",\"LoadingDialogDimensions\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DialogX\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"Keys\"), n = b(\"LayerFadeOnShow\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"URI\"), r = b(\"XUISpinner.react\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = b(\"eachKeyVal\"), v = b(\"emptyFunction\"), w = b(\"LoadingDialogDimensions\").WIDTH, x;\n    function y() {\n        if (!x) {\n            var ga = k.create(\"div\", {\n                className: \"_57-x\"\n            });\n            x = new j({\n                width: w,\n                addedBehaviors: [n,],\n                xui: true\n            }, k.create(\"div\", null, ga));\n            p.renderComponent(r({\n                size: \"large\"\n            }), ga);\n            x.subscribe([\"key\",\"blur\",], function(ha, ia) {\n                if (((ha == \"blur\") || (((ha == \"key\") && (ia.keyCode == m.ESC))))) {\n                    ca();\n                    return false;\n                }\n            ;\n            });\n        }\n    ;\n        return x;\n    };\n    var z = {\n    }, aa = 1, ba = [];\n    function ca() {\n        u(z, function(ga, ha) {\n            ha.abandon();\n            da(ga);\n        });\n    };\n    function da(ga) {\n        delete z[ga];\n        if (!Object.keys(z).length) {\n            y().hide();\n        };\n    };\n    function ea(ga, ha) {\n        var ia = aa++;\n        ba[ia] = ha;\n        z[ia] = ga;\n        var ja = da.curry((\"\" + ia));\n        s(ga.getData(), {\n            __asyncDialog: ia\n        });\n        y().setCausalElement(ga.getRelativeTo()).show();\n        var ka = ga.finallyHandler;\n        ga.setFinallyHandler(function(la) {\n            var ma = la.getPayload();\n            if ((ma && ma.asyncURL)) {\n                fa.send(new g(ma.asyncURL));\n            };\n            ja();\n            (ka && ka(la));\n        });\n        ga.setInterceptHandler(ja).setAbortHandler(ja);\n        ga.send();\n    };\n    var fa = {\n        send: function(ga, ha) {\n            ea(ga, (ha || v));\n        },\n        bootstrap: function(ga, ha, ia) {\n            if (!ga) {\n                return\n            };\n            var ja = (o.byClass(ha, \"stat_elem\") || ha);\n            if ((ja && i.hasClass(ja, \"async_saving\"))) {\n                return false\n            };\n            var ka = new q(ga).getQueryData(), la = (ia === \"dialog\"), ma = new g().setURI(ga).setData(ka).setMethod((la ? \"GET\" : \"POST\")).setReadOnly(la).setRelativeTo(ha).setStatusElement(ja).setNectarModuleDataSafe(ha);\n            if (l.is_desktop) {\n                h.loadModules([\"FbdDialogProvider\",], function(na) {\n                    na.sendDialog(ma, fa.send);\n                });\n                return;\n            }\n        ;\n            fa.send(ma);\n        },\n        respond: function(ga, ha) {\n            var ia = ba[ga];\n            if (ia) {\n                ia(ha);\n                delete ba[ga];\n            }\n        ;\n        },\n        getLoadingDialog: function() {\n            return y();\n        }\n    };\n    e.exports = fa;\n});\n__d(\"Hovercard\", [\"JSXDOM\",\"Event\",\"function-extensions\",\"AccessibleLayer\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ContextualDialog\",\"ContextualThing\",\"DOM\",\"LayerAutoFocus\",\"Parent\",\"Rect\",\"Style\",\"UserAgent\",\"Vector\",\"clickRefAction\",\"cx\",\"emptyFunction\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Event\");\n    b(\"function-extensions\");\n    var i = b(\"AccessibleLayer\"), j = b(\"Arbiter\"), k = b(\"AsyncRequest\"), l = b(\"AsyncSignal\"), m = b(\"ContextualDialog\"), n = b(\"ContextualThing\"), o = b(\"DOM\"), p = b(\"LayerAutoFocus\"), q = b(\"Parent\"), r = b(\"Rect\"), s = b(\"Style\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"clickRefAction\"), w = b(\"cx\"), x = b(\"emptyFunction\"), y = b(\"tx\"), z = b(\"userAction\"), aa = {\n    }, ba = {\n    }, ca = null, da = null, ea = null, fa = 150, ga = 700, ha = 1000, ia = 250, ja = null, ka = null, la = null, ma = null;\n    function na(event) {\n        var cb = q.byTag(event.getTarget(), \"a\");\n        (bb.processNode(cb) && event.stop());\n    };\n    function oa(cb) {\n        da = cb;\n        if (!pa(cb)) {\n            var db;\n            if ((!cb || !(db = qa(cb)))) {\n                (ba.moveToken && ba.moveToken.remove());\n                ba = {\n                };\n                return false;\n            }\n        ;\n            if ((ba.node != cb)) {\n                (ba.moveToken && ba.moveToken.remove());\n                ba = {\n                    node: cb,\n                    endpoint: db,\n                    pos: null\n                };\n            }\n        ;\n        }\n    ;\n        return true;\n    };\n    function pa(cb) {\n        return ((cb && ca) && (ba.node == cb));\n    };\n    function qa(cb) {\n        return cb.getAttribute(\"data-hovercard\");\n    };\n    function ra(cb) {\n        var db = h.listen(cb, \"mouseout\", function() {\n            clearTimeout(ja);\n            clearTimeout(ka);\n            db.remove();\n            da = null;\n            if (!bb.contains(cb)) {\n                bb.hide();\n            };\n        });\n        if (!ba.moveToken) {\n            ba.moveToken = h.listen(cb, \"mousemove\", function(event) {\n                ba.pos = u.getEventPosition(event);\n            });\n        };\n        clearTimeout(ja);\n        clearTimeout(ka);\n        clearTimeout(ma);\n        var eb = fa, fb = (ca ? ia : ga);\n        if (cb.getAttribute(\"data-hovercard-instant\")) {\n            eb = fb = 50;\n        };\n        ja = setTimeout(wa.curry(cb), eb);\n        ka = setTimeout(sa.curry(cb), fb);\n    };\n    function sa(cb, db) {\n        if ((ba.node != cb)) {\n            return\n        };\n        var eb = aa[qa(cb)];\n        if (eb) {\n            ua(eb);\n        }\n         else if (db) {\n            ua(ya());\n        }\n         else {\n            var fb = (ca ? ia : ga);\n            la = setTimeout(sa.curry(cb, true), (ha - fb));\n        }\n        \n    ;\n    };\n    function ta() {\n        bb.hide(true);\n        clearTimeout(ka);\n    };\n    function ua(cb) {\n        var db = ba.node, eb = ca, fb = (eb != db);\n        if (ea) {\n            var gb = ea.getContentRoot();\n            if (!n.containsIncludingLayers(gb, db)) {\n                ea.hide();\n            };\n        }\n    ;\n        if (!o.contains(document.body, db)) {\n            bb.hide(true);\n            return;\n        }\n    ;\n        ca = db;\n        ea = cb;\n        cb.setContextWithBounds(db, va(db)).show();\n        if (fb) {\n            (function() {\n                new l(\"/ajax/hovercard/shown.php\").send();\n                v(\"himp\", ca, null, \"FORCE\", {\n                    ft: {\n                        evt: 39\n                    }\n                });\n                z(\"hovercard\", ca).uai(\"show\");\n            }).defer();\n        };\n    };\n    function va(cb) {\n        var db = ba.pos, eb = cb.getClientRects();\n        if ((!db || (eb.length === 0))) {\n            return r.getElementBounds(cb)\n        };\n        var fb, gb = false;\n        for (var hb = 0; (hb < eb.length); hb++) {\n            var ib = new r(Math.round(eb[hb].top), Math.round(eb[hb].right), Math.round(eb[hb].bottom), Math.round(eb[hb].left), \"viewport\").convertTo(\"document\"), jb = ib.getPositionVector(), kb = jb.add(ib.getDimensionVector());\n            if ((!fb || (((jb.x <= fb.l) && (jb.y > fb.t))))) {\n                if (gb) {\n                    break;\n                };\n                fb = new r(jb.y, kb.x, kb.y, jb.x, \"document\");\n            }\n             else {\n                fb.t = Math.min(fb.t, jb.y);\n                fb.b = Math.max(fb.b, kb.y);\n                fb.r = kb.x;\n            }\n        ;\n            if (ib.contains(db)) {\n                gb = true;\n            };\n        };\n        return fb;\n    };\n    function wa(cb) {\n        if ((cb.id && (aa[cb.id] != null))) {\n            return\n        };\n        var db = qa(cb);\n        if ((aa[db] != null)) {\n            return\n        };\n        xa(db);\n        var eb = function() {\n            bb.dirty(db);\n            ta();\n        };\n        new k(db).setData({\n            endpoint: db\n        }).setMethod(\"GET\").setReadOnly(true).setErrorHandler(eb).setTransportErrorHandler(eb).send();\n    };\n    function xa(cb) {\n        aa[cb] = false;\n    };\n    var ya = function() {\n        var cb = new m({\n            width: 275\n        }, g.div({\n            className: \"_7lk\"\n        }, \"Loading...\"));\n        cb.disableBehavior(i).disableBehavior(p);\n        za(cb);\n        ya = x.thatReturns(cb);\n        return cb;\n    };\n    function za(cb) {\n        var db = [cb.subscribe(\"mouseenter\", function() {\n            clearTimeout(ma);\n            da = ba.node;\n        }),cb.subscribe(\"mouseleave\", function() {\n            cb.hide();\n            da = null;\n        }),cb.subscribe(\"destroy\", function() {\n            while (db.length) {\n                db.pop().unsubscribe();;\n            };\n            db = null;\n        }),];\n    };\n    var ab = true, bb = {\n        hide: function(cb) {\n            if (!ca) {\n                return\n            };\n            if (cb) {\n                if (ea) {\n                    ea.hide();\n                };\n                da = null;\n                ca = null;\n                ea = null;\n            }\n             else ma = setTimeout(bb.hide.curry(true), ia);\n        ;\n        },\n        setDialog: function(cb, db) {\n            db.disableBehavior(i).disableBehavior(p);\n            aa[cb] = db;\n            za(db);\n            if (((ba.endpoint == cb) && (da == ba.node))) {\n                ya().hide();\n                var eb = ba.node.getAttribute(\"data-hovercard-position\");\n                (eb && db.setPosition(eb));\n                var fb = ba.node.getAttribute(\"data-hovercard-offset-x\");\n                (fb && db.setOffsetX(parseInt(fb, 10)));\n                var gb = ba.node.getAttribute(\"data-hovercard-offset-y\");\n                (gb && db.setOffsetY(parseInt(gb, 10)));\n                ua(db);\n            }\n        ;\n        },\n        getDialog: function(cb) {\n            return aa[cb];\n        },\n        contains: function(cb) {\n            if (ea) {\n                return n.containsIncludingLayers(ea.getContentRoot(), cb)\n            };\n            return false;\n        },\n        dirty: function(cb) {\n            var db = aa[cb];\n            if (db) {\n                db.destroy();\n                delete aa[cb];\n            }\n        ;\n        },\n        dirtyAll: function() {\n            for (var cb in aa) {\n                var db = aa[cb];\n                (db && bb.dirty(cb));\n            };\n            j.inform(\"Hovercard/dirty\");\n        },\n        processNode: function(cb) {\n            if ((cb && oa(cb))) {\n                ra(cb);\n                return true;\n            }\n        ;\n            return false;\n        },\n        setDirtyAllOnPageTransition: function(cb) {\n            ab = cb;\n        }\n    };\n    (function() {\n        if ((t.ie() < 8)) {\n            return\n        };\n        h.listen(document.documentElement, \"mouseover\", na);\n        h.listen(window, \"scroll\", function() {\n            if ((ca && s.isFixed(ca))) {\n                bb.hide(true);\n            };\n        });\n        j.subscribe(\"page_transition\", function() {\n            ta();\n            (ab && bb.dirtyAll());\n        }, j.SUBSCRIBE_NEW);\n    })();\n    e.exports = bb;\n});\n__d(\"StickyPlaceholderInput\", [\"Event\",\"CSS\",\"DOM\",\"Input\",\"Parent\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Input\"), k = b(\"Parent\"), l = b(\"emptyFunction\");\n    function m(q) {\n        return k.byClass(q, \"uiStickyPlaceholderInput\");\n    };\n    function n(q) {\n        return i.scry(q, \".placeholder\")[0];\n    };\n    function o(q) {\n        q = (q || window.event);\n        var r = (q.target || q.srcElement);\n        if (i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n            var s = m(r);\n            if (s) {\n                (function() {\n                    h.conditionClass(s, \"uiStickyPlaceholderEmptyInput\", !r.value.length);\n                }).defer();\n            };\n        }\n    ;\n    };\n    var p = {\n        init: function() {\n            p.init = l;\n            g.listen(document.documentElement, {\n                keydown: o,\n                paste: o,\n                focusout: o\n            });\n        },\n        registerInput: function(q) {\n            p.init();\n            var r = (q.getAttribute(\"placeholder\") || \"\");\n            if (r.length) {\n                if ((document.activeElement === q)) {\n                    var s = g.listen(q, \"blur\", function() {\n                        p.manipulateInput(q, r);\n                        s.remove();\n                    });\n                }\n                 else p.manipulateInput(q, r);\n            \n            };\n        },\n        manipulateInput: function(q, r) {\n            var s = i.create(\"div\", {\n                className: \"placeholder\",\n                \"aria-hidden\": \"true\"\n            }, r), t = i.create(\"div\", {\n                className: \"uiStickyPlaceholderInput\"\n            }, s);\n            if (i.isNodeOfType(q, \"textarea\")) {\n                h.addClass(t, \"uiStickyPlaceholderTextarea\");\n            };\n            g.listen(s, \"click\", function() {\n                q.focus();\n            });\n            if ((q.value === r)) {\n                q.value = \"\";\n            };\n            h.removeClass(q, \"DOMControl_placeholder\");\n            q.setAttribute(\"placeholder\", \"\");\n            i.replace(q, t);\n            i.appendContent(t, q);\n            h.conditionClass(t, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n        },\n        setPlaceholderText: function(q, r) {\n            var s = m(q);\n            if (!s) {\n                j.setPlaceholder(q, r);\n            }\n             else {\n                var t = n(s);\n                (t && i.setContent(t, r));\n            }\n        ;\n        },\n        getPlaceholderText: function(q) {\n            var r = m(q), s = n(r);\n            return (s && i.getText(s));\n        },\n        update: function(q) {\n            var r = m(q);\n            if (r) {\n                h.conditionClass(r, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n            };\n        },\n        getVisibleText: function(q) {\n            var r = m(q);\n            if (h.hasClass(r, \"uiStickyPlaceholderEmptyInput\")) {\n                var s = n(r);\n                return (s && i.getText(s));\n            }\n             else return q.value\n        ;\n        }\n    };\n    e.exports = p;\n});\n__d(\"UIForm\", [\"Event\",\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"Form\",\"Run\",\"areObjectsEqual\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"DOM\"), k = b(\"Form\"), l = b(\"Run\"), m = b(\"areObjectsEqual\"), n = b(\"copyProperties\");\n    function o(p, q, r, s, t) {\n        this._root = p;\n        this.controller = p;\n        this._message = q;\n        if (s) {\n            this._confirm_dialog = s;\n            s.subscribe(\"confirm\", this._handleDialogConfirm.bind(this));\n            j.prependContent(this._root, j.create(\"input\", {\n                type: \"hidden\",\n                name: \"confirmed\",\n                value: \"true\"\n            }));\n        }\n    ;\n        l.onAfterLoad(function() {\n            this._originalState = k.serialize(this._root);\n        }.bind(this));\n        this._forceDirty = r;\n        this._confirmed = false;\n        this._submitted = false;\n        g.listen(this._root, \"submit\", this._handleSubmit.bind(this));\n        if ((t && t.length)) {\n            this.enableBehaviors(t);\n        };\n        var u = true;\n        l.onBeforeUnload(this.checkUnsaved.bind(this), u);\n    };\n    n(o.prototype, h, i, {\n        getRoot: function() {\n            return this._root;\n        },\n        _handleSubmit: function() {\n            if ((this._confirm_dialog && !this._confirmed)) {\n                this._confirm_dialog.show();\n                return false;\n            }\n        ;\n            if ((this.inform(\"submit\") === false)) {\n                return false\n            };\n            this._submitted = true;\n            return true;\n        },\n        _handleDialogConfirm: function() {\n            this._confirmed = true;\n            this._confirm_dialog.hide();\n            if (this._root.getAttribute(\"ajaxify\")) {\n                g.fire(this._root, \"submit\");\n            }\n             else if (this._handleSubmit()) {\n                this._root.submit();\n            }\n        ;\n        },\n        reset: function() {\n            this.inform(\"reset\");\n            this._submitted = false;\n            this._confirmed = false;\n        },\n        isDirty: function() {\n            if ((this._submitted || !j.contains(document.body, this._root))) {\n                return false\n            };\n            if (this._forceDirty) {\n                return true\n            };\n            var p = k.serialize(this._root);\n            return !m(p, this._originalState);\n        },\n        checkUnsaved: function() {\n            if (this.isDirty()) {\n                return this._message\n            };\n            return null;\n        }\n    });\n    e.exports = (a.UIForm || o);\n});\n__d(\"MenuTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\");\n    e.exports = {\n        className: \"_569t\"\n    };\n});\n__d(\"legacy:Tooltip\", [\"Tooltip\",], function(a, b, c, d) {\n    a.Tooltip = b(\"Tooltip\");\n}, 3);\n__d(\"BanzaiODS\", [\"Banzai\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"invariant\");\n    function i() {\n        var k = {\n        };\n        function l(m, n, o, p) {\n            var q = (k[m] || (k[m] = {\n            })), r = (q[n] || (q[n] = [0,]));\n            if ((o === undefined)) {\n                o = 1;\n            };\n            if ((p === undefined)) {\n                p = 1;\n            };\n            o = Number(o);\n            p = Number(p);\n            if ((!isFinite(o) || !isFinite(p))) {\n                return\n            };\n            r[0] += o;\n            if ((arguments.length >= 4)) {\n                if (!r[1]) {\n                    r[1] = 0;\n                };\n                r[1] += p;\n            }\n        ;\n        };\n        return {\n            bumpEntityKey: function(m, n, o) {\n                l(m, n, o);\n            },\n            bumpFraction: function(m, n, o, p) {\n                l(m, n, o, p);\n            },\n            flush: function(m) {\n                for (var n in k) {\n                    g.post((\"ods:\" + n), k[n], m);;\n                };\n                k = {\n                };\n            }\n        };\n    };\n    var j = i();\n    j.create = i;\n    g.subscribe(g.SEND, j.flush.bind(j, null));\n    e.exports = j;\n});\n__d(\"endsWith\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return (h.indexOf(i, (h.length - i.length)) > -1);\n    };\n    e.exports = g;\n});\n__d(\"extendArray\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        Array.prototype.push.apply(h, i);\n        return h;\n    };\n    e.exports = g;\n});");
36429 // 5477
36430 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sf8457e5183159cd46485198114fb31bc4f940d4d");
36431 // 5478
36432 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"AsDOA\",]);\n}\n;\n;\n__d(\"AdblockDetector\", [], function(a, b, c, d, e, f) {\n    var g = \"data-adblock-hash\", h = {\n    }, i = 0;\n    function j(k, l) {\n        var m = k.getAttribute(g);\n        if (!m) {\n            m = ++i;\n            k.setAttribute(g, m);\n        }\n         else if (h[m]) {\n            JSBNG__clearTimeout(h[m]);\n            h[m] = null;\n        }\n        \n    ;\n    ;\n        h[m] = JSBNG__setTimeout(function() {\n            h[m] = null;\n            if (!k.offsetHeight) {\n                var n = k, o = JSBNG__document.getElementsByTagName(\"body\")[0];\n                while (((n && ((n !== o))))) {\n                    if (((((((((((n.style.display === \"none\")) || ((n.style.height === \"0px\")))) || ((n.style.height === 0)))) || ((n.style.height === \"0\")))) || ((n.childNodes.length === 0))))) {\n                        return;\n                    }\n                ;\n                ;\n                    n = n.parentNode;\n                };\n            ;\n                if (((n === o))) {\n                    ((l && l(k)));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }, 3000);\n    };\n;\n    f.assertUnblocked = j;\n});\n__d(\"EagleEye\", [\"Arbiter\",\"Env\",\"OnloadEvent\",\"isInIframe\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"OnloadEvent\"), j = b(\"isInIframe\"), k = ((h.eagleEyeConfig || {\n    })), l = \"_e_\", m = ((window.JSBNG__name || \"\")).toString();\n    if (((((m.length == 7)) && ((m.substr(0, 3) == l))))) {\n        m = m.substr(3);\n    }\n     else {\n        m = k.seed;\n        if (!j()) {\n            window.JSBNG__name = ((l + m));\n        }\n    ;\n    ;\n    }\n;\n;\n    var n = ((((((window.JSBNG__location.protocol == \"https:\")) && JSBNG__document.cookie.match(/\\bcsm=1/))) ? \"; secure\" : \"\")), o = ((((l + m)) + \"_\")), p = new JSBNG__Date(((JSBNG__Date.now() + 604800000))).toGMTString(), q = window.JSBNG__location.hostname.replace(/^.*(facebook\\..*)$/i, \"$1\"), r = ((((((((\"; expires=\" + p)) + \";path=/; domain=\")) + q)) + n)), s = 0, t, u = ((k.JSBNG__sessionStorage && a.JSBNG__sessionStorage)), v = JSBNG__document.cookie.length, w = false, x = JSBNG__Date.now();\n    function y(ca) {\n        return ((((((((o + (s++))) + \"=\")) + encodeURIComponent(ca))) + r));\n    };\n;\n    function z() {\n        var ca = [], da = false, ea = 0, fa = 0;\n        this.isEmpty = function() {\n            return !ca.length;\n        };\n        this.enqueue = function(ga, ha) {\n            if (ha) {\n                ca.unshift(ga);\n            }\n             else ca.push(ga);\n        ;\n        ;\n        };\n        this.dequeue = function() {\n            ca.shift();\n        };\n        this.peek = function() {\n            return ca[0];\n        };\n        this.clear = function(ga) {\n            v = Math.min(v, JSBNG__document.cookie.length);\n            if (((!w && ((((new JSBNG__Date() - x)) > 60000))))) {\n                w = true;\n            }\n        ;\n        ;\n            var ha = ((!ga && ((JSBNG__document.cookie.search(l) >= 0)))), ia = !!h.cookie_header_limit, ja = ((h.cookie_count_limit || 19)), ka = ((h.cookie_header_limit || 3950)), la = ((ja - 5)), ma = ((ka - 1000));\n            while (!this.isEmpty()) {\n                var na = y(this.peek());\n                if (((ia && ((((na.length > ka)) || ((w && ((((na.length + v)) > ka))))))))) {\n                    this.dequeue();\n                    continue;\n                }\n            ;\n            ;\n                if (((((ha || ia)) && ((((((JSBNG__document.cookie.length + na.length)) > ka)) || ((JSBNG__document.cookie.split(\";\").length > ja))))))) {\n                    break;\n                }\n            ;\n            ;\n                JSBNG__document.cookie = na;\n                ha = true;\n                this.dequeue();\n            };\n        ;\n            var oa = JSBNG__Date.now();\n            if (((ga || ((((((((!da && ha)) && ((((fa > 0)) && ((((Math.min(((10 * Math.pow(2, ((fa - 1))))), 60000) + ea)) < oa)))))) && g.query(i.ONLOAD))) && ((((!this.isEmpty() || ((JSBNG__document.cookie.length > ma)))) || ((JSBNG__document.cookie.split(\";\").length > la))))))))) {\n                var pa = new JSBNG__Image(), qa = this, ra = ((h.tracking_domain || \"\"));\n                da = true;\n                pa.JSBNG__onload = function ua() {\n                    da = false;\n                    fa = 0;\n                    qa.clear();\n                };\n                pa.JSBNG__onerror = pa.JSBNG__onabort = function ua() {\n                    da = false;\n                    ea = JSBNG__Date.now();\n                    fa++;\n                };\n                var sa = ((h.fb_isb ? ((\"&fb_isb=\" + h.fb_isb)) : \"\")), ta = ((\"&__user=\" + h.user));\n                pa.src = ((((((((((((((ra + \"/ajax/nectar.php?asyncSignal=\")) + ((Math.floor(((Math.JSBNG__random() * 10000))) + 1)))) + sa)) + ta)) + \"&\")) + ((!ga ? \"\" : \"s=\")))) + oa));\n            }\n        ;\n        ;\n        };\n    };\n;\n    t = new z();\n    if (u) {\n        var aa = function() {\n            var ca = 0, da = ca;\n            function ea() {\n                var ha = JSBNG__sessionStorage.getItem(\"_e_ids\");\n                if (ha) {\n                    var ia = ((ha + \"\")).split(\";\");\n                    if (((ia.length == 2))) {\n                        ca = parseInt(ia[0], 10);\n                        da = parseInt(ia[1], 10);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            function fa() {\n                var ha = ((((ca + \";\")) + da));\n                JSBNG__sessionStorage.setItem(\"_e_ids\", ha);\n            };\n        ;\n            function ga(ha) {\n                return ((\"_e_\" + ((((ha !== undefined)) ? ha : ca++))));\n            };\n        ;\n            this.isEmpty = function() {\n                return ((da === ca));\n            };\n            this.enqueue = function(ha, ia) {\n                var ja = ((ia ? ga(--da) : ga()));\n                JSBNG__sessionStorage.setItem(ja, ha);\n                fa();\n            };\n            this.dequeue = function() {\n                this.isEmpty();\n                JSBNG__sessionStorage.removeItem(ga(da));\n                da++;\n                fa();\n            };\n            this.peek = function() {\n                var ha = JSBNG__sessionStorage.getItem(ga(da));\n                return ((ha ? ((ha + \"\")) : ha));\n            };\n            this.clear = t.clear;\n            ea();\n        };\n        t = new aa();\n    }\n;\n;\n    var ba = {\n        log: function(ca, da, ea) {\n            if (h.no_cookies) {\n                return;\n            }\n        ;\n        ;\n            var fa = [m,JSBNG__Date.now(),ca,].concat(da);\n            fa.push(fa.length);\n            function ga() {\n                var ha = JSON.stringify(fa);\n                try {\n                    t.enqueue(ha, !!ea);\n                    t.clear(!!ea);\n                } catch (ia) {\n                    if (((u && ((ia.code === 1000))))) {\n                        t = new z();\n                        u = false;\n                        ga();\n                    }\n                ;\n                ;\n                };\n            ;\n            };\n        ;\n            ga();\n        },\n        getSessionID: function() {\n            return m;\n        }\n    };\n    e.exports = ba;\n    a.EagleEye = ba;\n}, 3);\n__d(\"AdblockDetectorLogging\", [\"AdblockDetector\",\"EagleEye\",], function(a, b, c, d, e, f) {\n    var g = b(\"AdblockDetector\"), h = b(\"EagleEye\");\n    function i(j) {\n        g.assertUnblocked(j, h.log.bind(h, \"ads\", {\n            JSBNG__event: \"ads_blocked\"\n        }));\n    };\n;\n    f.assertUnblocked = i;\n});\n__d(\"EgoAdsObjectSet\", [\"copyProperties\",\"csx\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"csx\"), i = b(\"DOM\");\n    function j() {\n        this._allEgoUnits = [];\n        this._egoUnits = [];\n    };\n;\n    g(j.prototype, {\n        init: function(l) {\n            this._allEgoUnits = l;\n            this._egoUnits = [];\n            this._allEgoUnits.forEach(function(m) {\n                var n = k(m);\n                if (((!n || !n.holdout))) {\n                    this._egoUnits.push(m);\n                }\n            ;\n            ;\n            }, this);\n        },\n        getCount: function() {\n            return this._egoUnits.length;\n        },\n        forEach: function(l, m) {\n            this._egoUnits.forEach(l, m);\n        },\n        getUnit: function(l) {\n            return this._egoUnits[l];\n        },\n        getHoldoutAdIDsForSpace: function(l, m) {\n            if (((!l || !m))) {\n                return [];\n            }\n        ;\n        ;\n            var n = [];\n            for (var o = 0; ((((l > 0)) && ((o < this._allEgoUnits.length)))); o++) {\n                var p = this._allEgoUnits[o], q = m(p), r = k(p);\n                if (((((((l >= q)) && r)) && r.holdout))) {\n                    n.push(r.adid);\n                }\n            ;\n            ;\n                l -= q;\n            };\n        ;\n            return n;\n        },\n        getHoldoutAdIDsForNumAds: function(l) {\n            l = Math.min(l, this._allEgoUnits.length);\n            var m = [];\n            for (var n = 0; ((n < l)); n++) {\n                var o = this._allEgoUnits[n], p = k(o);\n                if (((p && p.holdout))) {\n                    m.push(p.adid);\n                }\n            ;\n            ;\n            };\n        ;\n            return m;\n        }\n    });\n    function k(l) {\n        var m = i.scry(l, \"div._4u8\")[0], n = ((m && m.getAttribute(\"data-ad\")));\n        return ((((n && JSON.parse(n))) || undefined));\n    };\n;\n    e.exports = j;\n});\n__d(\"EmuController\", [\"AsyncRequest\",\"DataStore\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"DataStore\"), i = b(\"URI\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\"), l = b(\"ge\"), m = b(\"goURI\");\n    function n(o, p) {\n        var q = l(o);\n        if (!q) {\n            return null;\n        }\n    ;\n    ;\n        this.impression = p;\n        this.containerId = o;\n        h.set(q, \"emuController\", this);\n        return this;\n    };\n;\n    j(n, {\n        fromContainer: function(o) {\n            var p = l(o);\n            if (!p) {\n                return null;\n            }\n        ;\n        ;\n            return h.get(p, \"emuController\");\n        },\n        getEventClass: function(o) {\n            return ((\"emuEvent\" + String(o).trim()));\n        }\n    });\n    j(n.prototype, {\n        EVENT_HANDLER_PATH: \"/ajax/emu/end.php\",\n        CLICK: 1,\n        FAN: \"fad_fan\",\n        JSBNG__event: function(o, p, q, r) {\n            var s = {\n                eid: this.impression,\n                f: 0,\n                ui: this.containerId,\n                en: o,\n                a: 1\n            };\n            if (p) {\n                s.ed = JSON.stringify(p);\n            }\n        ;\n        ;\n            if (!r) {\n                r = k;\n            }\n        ;\n        ;\n            var t = new g().setURI(this.EVENT_HANDLER_PATH).setData(s).setErrorHandler(r);\n            if (q) {\n                t.setHandler(q);\n            }\n        ;\n        ;\n            t.send();\n        },\n        redirect: function() {\n            var o = {\n                eid: this.impression,\n                f: 0,\n                ui: this.containerId,\n                en: this.CLICK,\n                a: 0,\n                sig: ((Math.floor(((Math.JSBNG__random() * 65535))) + 65536))\n            }, p = new i(this.EVENT_HANDLER_PATH);\n            p.setQueryData(o);\n            m(p);\n        }\n    });\n    e.exports = n;\n});\n__d(\"legacy:ad-units-base-js\", [\"EmuController\",], function(a, b, c, d) {\n    a.EmuController = b(\"EmuController\");\n}, 3);\n__d(\"ChatConfig\", [\"ChatConfigInitialData\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatConfigInitialData\"), h = b(\"copyProperties\"), i = {\n    }, j = {\n        get: function(k, l) {\n            return ((((k in i)) ? i[k] : l));\n        },\n        set: function(k) {\n            if (((arguments.length > 1))) {\n                var l = {\n                };\n                l[k] = arguments[1];\n                k = l;\n            }\n        ;\n        ;\n            h(i, k);\n        },\n        getDebugInfo: function() {\n            return i;\n        }\n    };\n    j.set(g);\n    e.exports = j;\n});\n__d(\"JSBNG__cancelAnimationFrame\", [], function(a, b, c, d, e, f) {\n    var g = ((((((((((a.JSBNG__cancelAnimationFrame || a.JSBNG__webkitCancelAnimationFrame)) || a.JSBNG__mozCancelAnimationFrame)) || a.oCancelAnimationFrame)) || a.msCancelAnimationFrame)) || a.JSBNG__clearTimeout));\n    e.exports = g;\n});\n__d(\"XUISpinner.react\", [\"BrowserSupport\",\"ReactProps\",\"React\",\"JSBNG__cancelAnimationFrame\",\"cx\",\"joinClasses\",\"JSBNG__requestAnimationFrame\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BrowserSupport\"), h = b(\"ReactProps\"), i = b(\"React\"), j = b(\"JSBNG__cancelAnimationFrame\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = b(\"JSBNG__requestAnimationFrame\"), n = b(\"tx\"), o = g.hasCSSAnimations(), p = {\n        SMALL: 16,\n        LARGE: 32\n    }, q = {\n        SMALL: 2,\n        LARGE: 4\n    }, r = 5, s = 8, t = ((r * s)), u = 1200, v = ((u / t)), w = i.createClass({\n        displayName: \"XUISpinner\",\n        props: {\n            size: h.oneOf([\"small\",\"large\",]),\n            background: h.oneOf([\"light\",\"dark\",])\n        },\n        getDefaultProps: function() {\n            return {\n                size: \"small\",\n                background: \"light\"\n            };\n        },\n        getInitialState: function() {\n            if (!o) {\n                return {\n                    frame: 0,\n                    timer: JSBNG__Date.now()\n                };\n            }\n        ;\n        ;\n        },\n        componentDidMount: function() {\n            if (!o) {\n                this._step();\n            }\n        ;\n        ;\n        },\n        componentWillUnmount: function() {\n            ((this._requestID && j(this._requestID)));\n        },\n        _step: function() {\n            this._requestID = m(this._step);\n            var x = JSBNG__Date.now();\n            if (((((x - v)) > this.state.timer))) {\n                this.setState({\n                    frame: ((((this.state.frame + 1)) % t)),\n                    timer: x\n                });\n            }\n        ;\n        ;\n        },\n        _renderWithCSSAnimation: function(x) {\n            return this.transferPropsTo(i.DOM.span({\n                className: x\n            }, \"Loading...\"));\n        },\n        _renderWithJavaScriptAnimation: function(x) {\n            var y = Math.floor(((this.state.frame / s))), z = ((this.state.frame % s)), aa = ((((this.props.size == \"small\")) ? p.SMALL : p.LARGE)), ba = ((((this.props.size == \"small\")) ? q.SMALL : q.LARGE)), ca = {\n                backgroundPosition: ((((((((((\"-\" + ((((z * aa)) + ba)))) + \"px \")) + \"-\")) + ((((y * aa)) + ba)))) + \"px\"))\n            }, da = l((\"_55yr\"), x);\n            return this.transferPropsTo(i.DOM.span({\n                className: da,\n                style: ca\n            }, \"Loading...\"));\n        },\n        render: function() {\n            var x = (((((((((\"_55ym\") + ((((this.props.size == \"small\")) ? ((\" \" + \"_55yn\")) : \"\")))) + ((((this.props.size == \"large\")) ? ((\" \" + \"_55yq\")) : \"\")))) + ((((this.props.background == \"light\")) ? ((\" \" + \"_55yo\")) : \"\")))) + ((((this.props.background == \"dark\")) ? ((\" \" + \"_55yp\")) : \"\"))));\n            return ((o ? this._renderWithCSSAnimation(x) : this._renderWithJavaScriptAnimation(x)));\n        }\n    });\n    e.exports = w;\n});\n__d(\"ViewportBounds\", [\"Style\",\"Vector\",\"emptyFunction\",\"ge\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\"), h = b(\"Vector\"), i = b(\"emptyFunction\"), j = b(\"ge\"), k = b(\"removeFromArray\"), l = {\n        JSBNG__top: [],\n        right: [],\n        bottom: [],\n        left: []\n    };\n    function m(q) {\n        return function() {\n            var r = 0;\n            l[q].forEach(function(s) {\n                r = Math.max(r, s.getSize());\n            });\n            return r;\n        };\n    };\n;\n    function n(q) {\n        return function(r) {\n            return new o(q, r);\n        };\n    };\n;\n    function o(q, r) {\n        this.getSide = i.thatReturns(q);\n        this.getSize = function() {\n            return ((((typeof r === \"function\")) ? r() : r));\n        };\n        l[q].push(this);\n    };\n;\n    o.prototype.remove = function() {\n        k(l[this.getSide()], this);\n    };\n    var p = {\n        getTop: m(\"JSBNG__top\"),\n        getRight: m(\"right\"),\n        getBottom: m(\"bottom\"),\n        getLeft: m(\"left\"),\n        getElementPosition: function(q) {\n            var r = h.getElementPosition(q);\n            r.y -= p.getTop();\n            return r;\n        },\n        addTop: n(\"JSBNG__top\"),\n        addRight: n(\"right\"),\n        addBottom: n(\"bottom\"),\n        addLeft: n(\"left\")\n    };\n    p.addTop(function() {\n        var q = j(\"blueBar\");\n        if (((q && g.isFixed(q)))) {\n            return j(\"blueBarHolder\").offsetHeight;\n        }\n    ;\n    ;\n        return 0;\n    });\n    e.exports = p;\n});\n__d(\"isAsyncScrollQuery\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\"), h = null;\n    function i() {\n        if (((h === null))) {\n            h = ((((((g.osx() >= 10.8)) && ((g.webkit() >= 536.25)))) && !g.chrome()));\n        }\n    ;\n    ;\n        return h;\n    };\n;\n    e.exports = i;\n});\n__d(\"ScrollAwareDOM\", [\"ArbiterMixin\",\"CSS\",\"DOM\",\"DOMDimensions\",\"DOMPosition\",\"DOMQuery\",\"HTML\",\"Vector\",\"ViewportBounds\",\"copyProperties\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMDimensions\"), k = b(\"DOMPosition\"), l = b(\"DOMQuery\"), m = b(\"HTML\"), n = b(\"Vector\"), o = b(\"ViewportBounds\"), p = b(\"copyProperties\"), q = b(\"isAsyncScrollQuery\");\n    function r(w, x) {\n        return function() {\n            v.monitor(arguments[w], x.curry.apply(x, arguments));\n        };\n    };\n;\n    function s(w) {\n        if (!((w instanceof Array))) {\n            w = [w,];\n        }\n    ;\n    ;\n        for (var x = 0; ((x < w.length)); x++) {\n            var y = m.replaceJSONWrapper(w[x]);\n            if (((y instanceof m))) {\n                return y.getRootNode();\n            }\n             else if (i.isNode(y)) {\n                return y;\n            }\n            \n        ;\n        ;\n        };\n    ;\n        return null;\n    };\n;\n    function t(w) {\n        return ((k.getElementPosition(w).y > o.getTop()));\n    };\n;\n    function u(w) {\n        var x = ((k.getElementPosition(w).y + j.getElementDimensions(w).height)), y = ((j.getViewportDimensions().height - o.getBottom()));\n        return ((x >= y));\n    };\n;\n    var v = p({\n        monitor: function(w, x) {\n            if (q()) {\n                return x();\n            }\n        ;\n        ;\n            var y = s(w);\n            if (y) {\n                var z = !!y.offsetParent;\n                if (((z && ((t(y) || u(y)))))) {\n                    return x();\n                }\n            ;\n            ;\n                var aa = n.getDocumentDimensions(), ba = x();\n                if (((z || ((y.offsetParent && !t(y)))))) {\n                    var ca = n.getDocumentDimensions().sub(aa), da = {\n                        delta: ca,\n                        target: y\n                    };\n                    if (((v.inform(\"JSBNG__scroll\", da) !== false))) {\n                        ca.scrollElementBy(l.getDocumentScrollElement());\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                return ba;\n            }\n             else return x()\n        ;\n        },\n        replace: function(w, x) {\n            var y = s(x);\n            if (((!y || h.hasClass(y, \"hidden_elem\")))) {\n                y = w;\n            }\n        ;\n        ;\n            return v.monitor(y, function() {\n                i.replace(w, x);\n            });\n        },\n        prependContent: r(1, i.prependContent),\n        insertAfter: r(1, i.insertAfter),\n        insertBefore: r(1, i.insertBefore),\n        setContent: r(0, i.setContent),\n        appendContent: r(1, i.appendContent),\n        remove: r(0, i.remove),\n        empty: r(0, i.empty)\n    }, g);\n    e.exports = v;\n});\n__d(\"legacy:ScrollAwareDOM\", [\"ScrollAwareDOM\",], function(a, b, c, d) {\n    a.ScrollAwareDOM = b(\"ScrollAwareDOM\");\n}, 3);\n__d(\"Base64\", [], function(a, b, c, d, e, f) {\n    var g = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n    function h(l) {\n        l = ((((((l.charCodeAt(0) << 16)) | ((l.charCodeAt(1) << 8)))) | l.charCodeAt(2)));\n        return String.fromCharCode(g.charCodeAt(((l >>> 18))), g.charCodeAt(((((l >>> 12)) & 63))), g.charCodeAt(((((l >>> 6)) & 63))), g.charCodeAt(((l & 63))));\n    };\n;\n    var i = ((((\"\\u003E___?456789:;\\u003C=_______\" + \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\u0009\\u000a\\u000b\\u000c\\u000d\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\")) + \"______\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123\"));\n    function j(l) {\n        l = ((((((((i.charCodeAt(((l.charCodeAt(0) - 43))) << 18)) | ((i.charCodeAt(((l.charCodeAt(1) - 43))) << 12)))) | ((i.charCodeAt(((l.charCodeAt(2) - 43))) << 6)))) | i.charCodeAt(((l.charCodeAt(3) - 43)))));\n        return String.fromCharCode(((l >>> 16)), ((((l >>> 8)) & 255)), ((l & 255)));\n    };\n;\n    var k = {\n        encode: function(l) {\n            l = unescape(encodeURI(l));\n            var m = ((((l.length + 2)) % 3));\n            l = ((l + \"\\u0000\\u0000\".slice(m))).replace(/[\\s\\S]{3}/g, h);\n            return ((l.slice(0, ((((l.length + m)) - 2))) + \"==\".slice(m)));\n        },\n        decode: function(l) {\n            l = l.replace(/[^A-Za-z0-9+\\/]/g, \"\");\n            var m = ((((l.length + 3)) & 3));\n            l = ((l + \"AAA\".slice(m))).replace(/..../g, j);\n            l = l.slice(0, ((((l.length + m)) - 3)));\n            try {\n                return decodeURIComponent(escape(l));\n            } catch (n) {\n                throw new Error(\"Not valid UTF-8\");\n            };\n        ;\n        },\n        encodeObject: function(l) {\n            return k.encode(JSON.stringify(l));\n        },\n        decodeObject: function(l) {\n            return JSON.parse(k.decode(l));\n        },\n        encodeNums: function(l) {\n            return String.fromCharCode.apply(String, l.map(function(m) {\n                return g.charCodeAt(((((((m | -((m > 63)))) & -((m > 0)))) & 63)));\n            }));\n        }\n    };\n    e.exports = k;\n});\n__d(\"legacy:base64\", [\"Base64\",], function(a, b, c, d) {\n    a.Base64 = b(\"Base64\");\n}, 3);\n__d(\"legacy:css\", [\"CSS\",], function(a, b, c, d) {\n    a.CSS = b(\"CSS\");\n}, 3);\n__d(\"legacy:dom\", [\"DOM\",], function(a, b, c, d) {\n    a.DOM = b(\"DOM\");\n}, 3);\n__d(\"FBDesktopDetect\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\"), h = \"facebook.desktopplugin\", i = {\n        mimeType: \"application/x-facebook-desktop-1\",\n        isPluginInstalled: function() {\n            if (g.osx()) {\n                return false;\n            }\n        ;\n        ;\n            var j = null;\n            if (a.ActiveXObject) {\n                try {\n                    j = new a.ActiveXObject(h);\n                    if (j) {\n                        return true;\n                    }\n                ;\n                ;\n                } catch (k) {\n                \n                };\n            ;\n            }\n             else if (((a.JSBNG__navigator && a.JSBNG__navigator.plugins))) {\n                a.JSBNG__navigator.plugins.refresh(false);\n                for (var l = 0, m = a.JSBNG__navigator.plugins.length; ((l < m)); l++) {\n                    j = a.JSBNG__navigator.plugins[l];\n                    if (((j.length && ((j[0].type === this.mimeType))))) {\n                        return true;\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n            \n        ;\n        ;\n            return false;\n        }\n    };\n    e.exports = i;\n});\n__d(\"NavigationMessage\", [], function(a, b, c, d, e, f) {\n    var g = {\n        NAVIGATION_BEGIN: \"NavigationMessage/navigationBegin\",\n        NAVIGATION_SELECT: \"NavigationMessage/navigationSelect\",\n        NAVIGATION_FIRST_RESPONSE: \"NavigationMessage/navigationFirstResponse\",\n        NAVIGATION_COMPLETED: \"NavigationMessage/navigationCompleted\",\n        NAVIGATION_FAILED: \"NavigationMessage/navigationFailed\",\n        NAVIGATION_COUNT_UPDATE: \"NavigationMessage/navigationCount\",\n        NAVIGATION_FAVORITE_UPDATE: \"NavigationMessage/navigationFavoriteUpdate\",\n        NAVIGATION_ITEM_REMOVED: \"NavigationMessage/navigationItemRemoved\",\n        NAVIGATION_ITEM_HIDDEN: \"NavigationMessage/navigationItemHidden\",\n        INTERNAL_LOADING_BEGIN: \"NavigationMessage/internalLoadingBegin\",\n        INTERNAL_LOADING_COMPLETED: \"NavigationMessage/internalLoadingCompleted\"\n    };\n    e.exports = g;\n});\n__d(\"SimpleDrag\", [\"JSBNG__Event\",\"ArbiterMixin\",\"UserAgent\",\"Vector\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"UserAgent\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n    function m(n) {\n        this.minDragDistance = 0;\n        g.listen(n, \"mousedown\", this._start.bind(this));\n    };\n;\n    k(m.prototype, h, {\n        setMinDragDistance: function(n) {\n            this.minDragDistance = n;\n        },\n        _start: function(JSBNG__event) {\n            var n = false, o = true, p = null;\n            if (this.inform(\"mousedown\", JSBNG__event)) {\n                o = false;\n            }\n        ;\n        ;\n            if (this.minDragDistance) {\n                p = j.getEventPosition(JSBNG__event);\n            }\n             else {\n                n = true;\n                var q = this.inform(\"start\", JSBNG__event);\n                if (((q === true))) {\n                    o = false;\n                }\n                 else if (((q === false))) {\n                    n = false;\n                    return;\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            var r = ((((i.ie() < 9)) ? JSBNG__document.documentElement : window)), s = g.listen(r, {\n                selectstart: ((o ? g.prevent : l)),\n                mousemove: function(JSBNG__event) {\n                    if (!n) {\n                        var t = j.getEventPosition(JSBNG__event);\n                        if (((p.distanceTo(t) < this.minDragDistance))) {\n                            return;\n                        }\n                    ;\n                    ;\n                        n = true;\n                        if (((this.inform(\"start\", JSBNG__event) === false))) {\n                            n = false;\n                            return;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    this.inform(\"update\", JSBNG__event);\n                }.bind(this),\n                mouseup: function(JSBNG__event) {\n                    {\n                        var fin104keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin104i = (0);\n                        var t;\n                        for (; (fin104i < fin104keys.length); (fin104i++)) {\n                            ((t) = (fin104keys[fin104i]));\n                            {\n                                s[t].remove();\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    if (n) {\n                        this.inform(\"end\", JSBNG__event);\n                    }\n                     else this.inform(\"click\", JSBNG__event);\n                ;\n                ;\n                }.bind(this)\n            });\n            ((o && JSBNG__event.prevent()));\n        }\n    });\n    e.exports = m;\n});\n__d(\"legacy:async-signal\", [\"AsyncSignal\",], function(a, b, c, d) {\n    a.AsyncSignal = b(\"AsyncSignal\");\n}, 3);\n__d(\"FlipDirectionOnKeypress\", [\"JSBNG__Event\",\"DOM\",\"Input\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Input\"), j = b(\"Style\");\n    function k(JSBNG__event) {\n        var l = JSBNG__event.getTarget(), m = ((h.isNodeOfType(l, \"input\") && ((l.type == \"text\")))), n = h.isNodeOfType(l, \"textarea\");\n        if (((!((m || n)) || l.getAttribute(\"data-prevent-auto-flip\")))) {\n            return;\n        }\n    ;\n    ;\n        var o = i.getValue(l), p = ((l.style && l.style.direction));\n        if (!p) {\n            var q = 0, r = true;\n            for (var s = 0; ((s < o.length)); s++) {\n                var t = o.charCodeAt(s);\n                if (((t >= 48))) {\n                    if (r) {\n                        r = false;\n                        q++;\n                    }\n                ;\n                ;\n                    if (((((t >= 1470)) && ((t <= 1920))))) {\n                        j.set(l, \"direction\", \"rtl\");\n                        return;\n                    }\n                ;\n                ;\n                    if (((q == 5))) {\n                        j.set(l, \"direction\", \"ltr\");\n                        return;\n                    }\n                ;\n                ;\n                }\n                 else r = true;\n            ;\n            ;\n            };\n        ;\n        }\n         else if (((o.length === 0))) {\n            j.set(l, \"direction\", \"\");\n        }\n        \n    ;\n    ;\n    };\n;\n    g.listen(JSBNG__document.documentElement, {\n        keyup: k,\n        input: k\n    });\n});\n__d(\"PlaceholderOnsubmitFormListener\", [\"JSBNG__Event\",\"Input\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Input\");\n    g.listen(JSBNG__document.documentElement, \"submit\", function(i) {\n        var j = i.getTarget().getElementsByTagName(\"*\");\n        for (var k = 0; ((k < j.length)); k++) {\n            if (((j[k].getAttribute(\"placeholder\") && h.isEmpty(j[k])))) {\n                h.setValue(j[k], \"\");\n            }\n        ;\n        ;\n        };\n    ;\n    });\n});\n__d(\"ARIA\", [\"DOM\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"emptyFunction\"), i = b(\"ge\"), j, k, l = function() {\n        j = i(\"ariaAssertiveAlert\");\n        if (!j) {\n            j = g.create(\"div\", {\n                id: \"ariaAssertiveAlert\",\n                className: \"accessible_elem\",\n                \"aria-live\": \"assertive\"\n            });\n            g.appendContent(JSBNG__document.body, j);\n        }\n    ;\n    ;\n        k = i(\"ariaPoliteAlert\");\n        if (!k) {\n            k = j.cloneNode(false);\n            k.setAttribute(\"id\", \"ariaPoliteAlert\");\n            k.setAttribute(\"aria-live\", \"polite\");\n            g.appendContent(JSBNG__document.body, k);\n        }\n    ;\n    ;\n        l = h;\n    };\n    function m(o, p) {\n        l();\n        var q = ((p ? j : k));\n        g.setContent(q, o);\n    };\n;\n    var n = {\n        owns: function(o, p) {\n            o.setAttribute(\"aria-owns\", g.getID(p));\n        },\n        setPopup: function(o, p) {\n            var q = g.getID(p);\n            o.setAttribute(\"aria-owns\", q);\n            o.setAttribute(\"aria-haspopup\", \"true\");\n            if (((o.tabIndex == -1))) {\n                o.tabIndex = 0;\n            }\n        ;\n        ;\n        },\n        announce: function(o) {\n            m(o, true);\n        },\n        notify: function(o) {\n            m(o);\n        }\n    };\n    e.exports = n;\n});\n__d(\"ScriptPathState\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h, i, j, k, l = 100, m = {\n        setIsUIPageletRequest: function(n) {\n            j = n;\n        },\n        setUserURISampleRate: function(n) {\n            k = n;\n        },\n        reset: function() {\n            h = null;\n            i = false;\n            j = false;\n        },\n        _shouldUpdateScriptPath: function() {\n            return ((i && !j));\n        },\n        _shouldSendURI: function() {\n            return ((Math.JSBNG__random() < k));\n        },\n        getParams: function() {\n            var n = {\n            };\n            if (m._shouldUpdateScriptPath()) {\n                if (((m._shouldSendURI() && ((h !== null))))) {\n                    n.user_uri = h.substring(0, l);\n                }\n            ;\n            ;\n            }\n             else n.no_script_path = 1;\n        ;\n        ;\n            return n;\n        }\n    };\n    g.subscribe(\"pre_page_transition\", function(n, o) {\n        i = true;\n        h = o.to.getUnqualifiedURI().toString();\n    });\n    e.exports = a.ScriptPathState = m;\n});\n__d(\"goOrReplace\", [\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = b(\"UserAgent\");\n    function i(j, k, l) {\n        var m = new g(k), n = a.Quickling;\n        if (((((((((((j.pathname == \"/\")) && ((m.getPath() != \"/\")))) && n)) && n.isActive())) && n.isPageActive(m)))) {\n            var o = ((j.search ? {\n            } : {\n                q: \"\"\n            }));\n            m = new g().setPath(\"/\").setQueryData(o).setFragment(m.getUnqualifiedURI().toString());\n            k = m.toString();\n        }\n    ;\n    ;\n        if (((l && !((h.ie() < 8))))) {\n            j.replace(k);\n        }\n         else if (((j.href == k))) {\n            j.reload();\n        }\n         else j.href = k;\n        \n    ;\n    ;\n    };\n;\n    e.exports = i;\n});\n__d(\"AjaxPipeRequest\", [\"Arbiter\",\"AsyncRequest\",\"BigPipe\",\"CSS\",\"DOM\",\"Env\",\"PageletSet\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"goOrReplace\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"BigPipe\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"PageletSet\"), n = b(\"ScriptPathState\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"goOrReplace\"), r = b(\"ge\"), s;\n    function t(w, x) {\n        var y = r(w);\n        if (!y) {\n            return;\n        }\n    ;\n    ;\n        if (!x) {\n            y.style.minHeight = \"600px\";\n        }\n    ;\n    ;\n        var z = m.getPageletIDs();\n        for (var aa = 0; ((aa < z.length)); aa++) {\n            var ba = z[aa];\n            if (k.contains(y, ba)) {\n                m.removePagelet(ba);\n            }\n        ;\n        ;\n        };\n    ;\n        k.empty(y);\n    };\n;\n    function u(w, x) {\n        var y = r(w);\n        if (((y && !x))) {\n            y.style.minHeight = \"100px\";\n        }\n    ;\n    ;\n    };\n;\n    function v(w, x) {\n        this._uri = w;\n        this._query_data = x;\n        this._request = new h();\n        this._canvas_id = null;\n        this._allow_cross_page_transition = true;\n    };\n;\n    p(v.prototype, {\n        setCanvasId: function(w) {\n            this._canvas_id = w;\n            return this;\n        },\n        setURI: function(w) {\n            this._uri = w;\n            return this;\n        },\n        setData: function(w) {\n            this._query_data = w;\n            return this;\n        },\n        getData: function(w) {\n            return this._query_data;\n        },\n        setAllowCrossPageTransition: function(w) {\n            this._allow_cross_page_transition = w;\n            return this;\n        },\n        setAppend: function(w) {\n            this._append = w;\n            return this;\n        },\n        send: function() {\n            var w = {\n                ajaxpipe: 1,\n                ajaxpipe_token: l.ajaxpipe_token\n            };\n            p(w, n.getParams());\n            n.reset();\n            this._request.setOption(\"useIframeTransport\", true).setURI(this._uri).setData(p(w, this._query_data)).setPreBootloadHandler(this._preBootloadHandler.bind(this)).setInitialHandler(this._onInitialResponse.bind(this)).setHandler(this._onResponse.bind(this)).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._allow_cross_page_transition);\n            if (this._automatic) {\n                this._relevantRequest = s;\n            }\n             else s = this._request;\n        ;\n        ;\n            this._request.send();\n            return this;\n        },\n        _preBootloadFirstResponse: function(w) {\n            return false;\n        },\n        _fireDomContentCallback: function() {\n            this._arbiter.inform(\"ajaxpipe/domcontent_callback\", true, g.BEHAVIOR_STATE);\n        },\n        _fireOnloadCallback: function() {\n            this._arbiter.inform(\"ajaxpipe/onload_callback\", true, g.BEHAVIOR_STATE);\n        },\n        _isRelevant: function(w) {\n            return ((((((this._request == s)) || ((this._automatic && ((this._relevantRequest == s)))))) || this._jsNonBlock));\n        },\n        _preBootloadHandler: function(w) {\n            var x = w.getPayload();\n            if (((((!x || x.redirect)) || !this._isRelevant(w)))) {\n                return false;\n            }\n        ;\n        ;\n            var y = false;\n            if (w.is_first) {\n                ((((!this._append && !this._displayCallback)) && t(this._canvas_id, this._constHeight)));\n                this._arbiter = new g();\n                y = this._preBootloadFirstResponse(w);\n                this.pipe = new i({\n                    arbiter: this._arbiter,\n                    rootNodeID: this._canvas_id,\n                    lid: this._request.lid,\n                    isAjax: true,\n                    domContentCallback: this._fireDomContentCallback.bind(this),\n                    onloadCallback: this._fireOnloadCallback.bind(this),\n                    domContentEvt: \"ajaxpipe/domcontent_callback\",\n                    onloadEvt: \"ajaxpipe/onload_callback\",\n                    jsNonBlock: this._jsNonBlock,\n                    automatic: this._automatic,\n                    displayCallback: this._displayCallback\n                });\n            }\n        ;\n        ;\n            return y;\n        },\n        _redirect: function(w) {\n            if (w.redirect) {\n                if (((w.force || !this.isPageActive(w.redirect)))) {\n                    var x = [\"ajaxpipe\",\"ajaxpipe_token\",].concat(this.getSanitizedParameters());\n                    q(window.JSBNG__location, o(w.redirect).removeQueryData(x), true);\n                }\n                 else {\n                    var y = a.PageTransitions;\n                    y.go(w.redirect, true);\n                }\n            ;\n            ;\n                return true;\n            }\n             else return false\n        ;\n        },\n        isPageActive: function(w) {\n            return true;\n        },\n        getSanitizedParameters: function() {\n            return [];\n        },\n        _versionCheck: function(w) {\n            return true;\n        },\n        _onInitialResponse: function(w) {\n            var x = w.getPayload();\n            if (!this._isRelevant(w)) {\n                return false;\n            }\n        ;\n        ;\n            if (!x) {\n                return true;\n            }\n        ;\n        ;\n            if (((this._redirect(x) || !this._versionCheck(x)))) {\n                return false;\n            }\n        ;\n        ;\n            return true;\n        },\n        _processFirstResponse: function(w) {\n            var x = w.getPayload();\n            if (((r(this._canvas_id) && ((x.canvas_class != null))))) {\n                j.setClass(this._canvas_id, x.canvas_class);\n            }\n        ;\n        ;\n        },\n        setFirstResponseCallback: function(w) {\n            this._firstResponseCallback = w;\n            return this;\n        },\n        setFirstResponseHandler: function(w) {\n            this._processFirstResponse = w;\n            return this;\n        },\n        _onResponse: function(w) {\n            var x = w.payload;\n            if (!this._isRelevant(w)) {\n                return h.suppressOnloadToken;\n            }\n        ;\n        ;\n            if (w.is_first) {\n                this._processFirstResponse(w);\n                ((this._firstResponseCallback && this._firstResponseCallback()));\n                x.provides = ((x.provides || []));\n                x.provides.push(\"uipage_onload\");\n                if (this._append) {\n                    x.append = this._canvas_id;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (x) {\n                if (((((((\"JSBNG__content\" in x.JSBNG__content)) && ((this._canvas_id !== null)))) && ((this._canvas_id != \"JSBNG__content\"))))) {\n                    x.JSBNG__content[this._canvas_id] = x.JSBNG__content.JSBNG__content;\n                    delete x.JSBNG__content.JSBNG__content;\n                }\n            ;\n            ;\n                this.pipe.onPageletArrive(x);\n            }\n        ;\n        ;\n            if (w.is_last) {\n                u(this._canvas_id, this._constHeight);\n            }\n        ;\n        ;\n            return h.suppressOnloadToken;\n        },\n        setNectarModuleDataSafe: function(w) {\n            this._request.setNectarModuleDataSafe(w);\n            return this;\n        },\n        setFinallyHandler: function(w) {\n            this._request.setFinallyHandler(w);\n            return this;\n        },\n        setErrorHandler: function(w) {\n            this._request.setErrorHandler(w);\n            return this;\n        },\n        abort: function() {\n            this._request.abort();\n            if (((s == this._request))) {\n                s = null;\n            }\n        ;\n        ;\n            this._request = null;\n            return this;\n        },\n        setJSNonBlock: function(w) {\n            this._jsNonBlock = w;\n            return this;\n        },\n        setAutomatic: function(w) {\n            this._automatic = w;\n            return this;\n        },\n        setDisplayCallback: function(w) {\n            this._displayCallback = w;\n            return this;\n        },\n        setConstHeight: function(w) {\n            this._constHeight = w;\n            return this;\n        },\n        getAsyncRequest: function() {\n            return this._request;\n        }\n    });\n    p(v, {\n        getCurrentRequest: function() {\n            return s;\n        },\n        setCurrentRequest: function(w) {\n            s = w;\n        }\n    });\n    e.exports = v;\n});\n__d(\"AsyncRequestNectarLogging\", [\"AsyncRequest\",\"Nectar\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Nectar\"), i = b(\"copyProperties\");\n    i(g.prototype, {\n        setNectarModuleData: function(j) {\n            if (((this.method == \"POST\"))) {\n                h.addModuleData(this.data, j);\n            }\n        ;\n        ;\n        },\n        setNectarImpressionId: function() {\n            if (((this.method == \"POST\"))) {\n                h.addImpressionID(this.data);\n            }\n        ;\n        ;\n        }\n    });\n});\n__d(\"CSSClassTransition\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = [];\n    function i() {\n    \n    };\n;\n    g(i, {\n        go: function(j, k, l, m) {\n            var n;\n            for (var o = 0; ((o < h.length)); o++) {\n                if (((h[o](j, k, l, m) === true))) {\n                    n = true;\n                }\n            ;\n            ;\n            };\n        ;\n            if (!n) {\n                j.className = k;\n            }\n        ;\n        ;\n        },\n        registerHandler: function(j) {\n            h.push(j);\n            return {\n                remove: function() {\n                    var k = h.indexOf(j);\n                    if (((k >= 0))) {\n                        h.splice(k, 1);\n                    }\n                ;\n                ;\n                }\n            };\n        }\n    });\n    e.exports = i;\n});\n__d(\"DOMScroll\", [\"Animation\",\"Arbiter\",\"DOM\",\"DOMQuery\",\"Vector\",\"ViewportBounds\",\"ge\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"Vector\"), l = b(\"ViewportBounds\"), m = b(\"ge\"), n = b(\"isAsyncScrollQuery\"), o = {\n        SCROLL: \"dom-scroll\",\n        getScrollState: function() {\n            var p = k.getViewportDimensions(), q = k.getDocumentDimensions(), r = ((q.x > p.x)), s = ((q.y > p.y));\n            r += 0;\n            s += 0;\n            return new k(r, s);\n        },\n        _scrollbarSize: null,\n        _initScrollbarSize: function() {\n            var p = i.create(\"p\");\n            p.style.width = \"100%\";\n            p.style.height = \"200px\";\n            var q = i.create(\"div\");\n            q.style.position = \"absolute\";\n            q.style.JSBNG__top = \"0px\";\n            q.style.left = \"0px\";\n            q.style.visibility = \"hidden\";\n            q.style.width = \"200px\";\n            q.style.height = \"150px\";\n            q.style.overflow = \"hidden\";\n            q.appendChild(p);\n            JSBNG__document.body.appendChild(q);\n            var r = p.offsetWidth;\n            q.style.overflow = \"JSBNG__scroll\";\n            var s = p.offsetWidth;\n            if (((r == s))) {\n                s = q.clientWidth;\n            }\n        ;\n        ;\n            JSBNG__document.body.removeChild(q);\n            o._scrollbarSize = ((r - s));\n        },\n        getScrollbarSize: function() {\n            if (((o._scrollbarSize === null))) {\n                o._initScrollbarSize();\n            }\n        ;\n        ;\n            return o._scrollbarSize;\n        },\n        JSBNG__scrollTo: function(p, q, r, s, t) {\n            if (((((typeof q == \"undefined\")) || ((q === true))))) {\n                q = 750;\n            }\n        ;\n        ;\n            if (n()) {\n                q = false;\n            }\n        ;\n        ;\n            if (!((p instanceof k))) {\n                var u = k.getScrollPosition().x, v = k.getElementPosition(m(p)).y;\n                p = new k(u, v, \"JSBNG__document\");\n                if (!s) {\n                    p.y -= ((l.getTop() / ((r ? 2 : 1))));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (r) {\n                p.y -= ((k.getViewportDimensions().y / 2));\n            }\n             else if (s) {\n                p.y -= k.getViewportDimensions().y;\n                p.y += s;\n            }\n            \n        ;\n        ;\n            p = p.convertTo(\"JSBNG__document\");\n            if (q) {\n                return new g(JSBNG__document.body).to(\"scrollTop\", p.y).to(\"scrollLeft\", p.x).ease(g.ease.end).duration(q).ondone(t).go();\n            }\n             else if (window.JSBNG__scrollTo) {\n                window.JSBNG__scrollTo(p.x, p.y);\n                ((t && t()));\n            }\n            \n        ;\n        ;\n            h.inform(o.SCROLL);\n        },\n        ensureVisible: function(p, q, r, s, t) {\n            if (((r === undefined))) {\n                r = 10;\n            }\n        ;\n        ;\n            p = m(p);\n            if (q) {\n                p = j.JSBNG__find(p, q);\n            }\n        ;\n        ;\n            var u = k.getScrollPosition().x, v = k.getScrollPosition().y, w = ((v + k.getViewportDimensions().y)), x = k.getElementPosition(p).y, y = ((x + k.getElementDimensions(p).y));\n            x -= l.getTop();\n            x -= r;\n            y += r;\n            if (((x < v))) {\n                o.JSBNG__scrollTo(new k(u, x, \"JSBNG__document\"), s, false, false, t);\n            }\n             else if (((y > w))) {\n                if (((((x - ((y - w)))) < v))) {\n                    o.JSBNG__scrollTo(new k(u, x, \"JSBNG__document\"), s, false, false, t);\n                }\n                 else o.JSBNG__scrollTo(new k(u, y, \"JSBNG__document\"), s, false, true, t);\n            ;\n            }\n            \n        ;\n        ;\n        },\n        scrollToTop: function(p) {\n            var q = k.getScrollPosition();\n            o.JSBNG__scrollTo(new k(q.x, 0, \"JSBNG__document\"), ((p !== false)));\n        }\n    };\n    e.exports = o;\n});\n__d(\"Button\", [\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"cx\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"Parent\"), l = b(\"cx\"), m = b(\"emptyFunction\"), n = \"uiButtonDisabled\", o = \"uiButtonDepressed\", p = \"_42fr\", q = \"_42fs\", r = \"button:blocker\", s = \"href\", t = \"ajaxify\";\n    function u(aa, ba) {\n        var ca = h.get(aa, r);\n        if (ba) {\n            if (ca) {\n                ca.remove();\n                h.remove(aa, r);\n            }\n        ;\n        ;\n        }\n         else if (!ca) {\n            h.set(aa, r, j.listen(aa, \"click\", m.thatReturnsFalse, j.Priority.URGENT));\n        }\n        \n    ;\n    ;\n    };\n;\n    function v(aa) {\n        var ba = ((k.byClass(aa, \"uiButton\") || k.byClass(aa, \"_42ft\")));\n        if (!ba) {\n            throw new Error(\"invalid use case\");\n        }\n    ;\n    ;\n        return ba;\n    };\n;\n    function w(aa) {\n        return i.isNodeOfType(aa, \"a\");\n    };\n;\n    function x(aa) {\n        return i.isNodeOfType(aa, \"button\");\n    };\n;\n    function y(aa) {\n        return g.hasClass(aa, \"_42ft\");\n    };\n;\n    var z = {\n        getInputElement: function(aa) {\n            aa = v(aa);\n            if (w(aa)) {\n                throw new Error(\"invalid use case\");\n            }\n        ;\n        ;\n            return ((x(aa) ? aa : i.JSBNG__find(aa, \"input\")));\n        },\n        isEnabled: function(aa) {\n            return !((g.hasClass(v(aa), n) || g.hasClass(v(aa), p)));\n        },\n        setEnabled: function(aa, ba) {\n            aa = v(aa);\n            var ca = ((y(aa) ? p : n));\n            g.conditionClass(aa, ca, !ba);\n            if (w(aa)) {\n                var da = aa.getAttribute(\"href\"), ea = aa.getAttribute(\"ajaxify\"), fa = h.get(aa, s, \"#\"), ga = h.get(aa, t);\n                if (ba) {\n                    if (!da) {\n                        aa.setAttribute(\"href\", fa);\n                    }\n                ;\n                ;\n                    if (((!ea && ga))) {\n                        aa.setAttribute(\"ajaxify\", ga);\n                    }\n                ;\n                ;\n                    aa.removeAttribute(\"tabIndex\");\n                }\n                 else {\n                    if (((da && ((da !== fa))))) {\n                        h.set(aa, s, da);\n                    }\n                ;\n                ;\n                    if (((ea && ((ea !== ga))))) {\n                        h.set(aa, t, ea);\n                    }\n                ;\n                ;\n                    aa.removeAttribute(\"href\");\n                    aa.removeAttribute(\"ajaxify\");\n                    aa.setAttribute(\"tabIndex\", \"-1\");\n                }\n            ;\n            ;\n                u(aa, ba);\n            }\n             else {\n                var ha = z.getInputElement(aa);\n                ha.disabled = !ba;\n                u(ha, ba);\n            }\n        ;\n        ;\n        },\n        setDepressed: function(aa, ba) {\n            aa = v(aa);\n            var ca = ((y(aa) ? q : o));\n            g.conditionClass(aa, ca, ba);\n        },\n        isDepressed: function(aa) {\n            aa = v(aa);\n            var ba = ((y(aa) ? q : o));\n            return g.hasClass(aa, ba);\n        },\n        setLabel: function(aa, ba) {\n            aa = v(aa);\n            if (y(aa)) {\n                var ca = [];\n                if (ba) {\n                    ca.push(ba);\n                }\n            ;\n            ;\n                var da = i.scry(aa, \".img\")[0];\n                if (da) {\n                    if (((aa.firstChild == da))) {\n                        ca.unshift(da);\n                    }\n                     else ca.push(da);\n                ;\n                }\n            ;\n            ;\n                i.setContent(aa, ca);\n            }\n             else if (w(aa)) {\n                var ea = i.JSBNG__find(aa, \"span.uiButtonText\");\n                i.setContent(ea, ba);\n            }\n             else z.getInputElement(aa).value = ba;\n            \n        ;\n        ;\n            var fa = ((y(aa) ? \"_42fv\" : \"uiButtonNoText\"));\n            g.conditionClass(aa, fa, !ba);\n        },\n        setIcon: function(aa, ba) {\n            if (((ba && !i.isNode(ba)))) {\n                return;\n            }\n        ;\n        ;\n            aa = v(aa);\n            var ca = i.scry(aa, \".img\")[0];\n            if (!ba) {\n                ((ca && i.remove(ca)));\n                return;\n            }\n        ;\n        ;\n            g.addClass(ba, \"customimg\");\n            if (((ca != ba))) {\n                if (ca) {\n                    i.replace(ca, ba);\n                }\n                 else i.prependContent(aa, ba);\n            ;\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = z;\n});\n__d(\"Form\", [\"JSBNG__Event\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"DOMPosition\",\"DOMQuery\",\"DataStore\",\"Env\",\"Input\",\"Parent\",\"URI\",\"createArrayFrom\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMPosition\"), m = b(\"DOMQuery\"), n = b(\"DataStore\"), o = b(\"Env\"), p = b(\"Input\"), q = b(\"Parent\"), r = b(\"URI\"), s = b(\"createArrayFrom\"), t = b(\"trackReferrer\"), u = ((\"JSBNG__FileList\" in window)), v = ((\"JSBNG__FormData\" in window));\n    function w(y) {\n        var z = {\n        };\n        r.implodeQuery(y).split(\"&\").forEach(function(aa) {\n            if (aa) {\n                var ba = /^([^=]*)(?:=(.*))?$/.exec(aa), ca = r.decodeComponent(ba[1]), da = ((ba[2] ? r.decodeComponent(ba[2]) : null));\n                z[ca] = da;\n            }\n        ;\n        ;\n        });\n        return z;\n    };\n;\n    var x = {\n        getInputs: function(y) {\n            y = ((y || JSBNG__document));\n            return [].concat(s(m.scry(y, \"input\")), s(m.scry(y, \"select\")), s(m.scry(y, \"textarea\")), s(m.scry(y, \"button\")));\n        },\n        getInputsByName: function(y) {\n            var z = {\n            };\n            x.getInputs(y).forEach(function(aa) {\n                var ba = z[aa.JSBNG__name];\n                z[aa.JSBNG__name] = ((((typeof ba === \"undefined\")) ? aa : [aa,].concat(ba)));\n            });\n            return z;\n        },\n        getSelectValue: function(y) {\n            return y.options[y.selectedIndex].value;\n        },\n        setSelectValue: function(y, z) {\n            for (var aa = 0; ((aa < y.options.length)); ++aa) {\n                if (((y.options[aa].value == z))) {\n                    y.selectedIndex = aa;\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        getRadioValue: function(y) {\n            for (var z = 0; ((z < y.length)); z++) {\n                if (y[z].checked) {\n                    return y[z].value;\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        getElements: function(y) {\n            return s(((((y.tagName == \"FORM\")) ? y.elements : x.getInputs(y))));\n        },\n        getAttribute: function(y, z) {\n            return ((((y.getAttributeNode(z) || {\n            })).value || null));\n        },\n        setDisabled: function(y, z) {\n            x.getElements(y).forEach(function(aa) {\n                if (((aa.disabled !== undefined))) {\n                    var ba = n.get(aa, \"origDisabledState\");\n                    if (z) {\n                        if (((ba === undefined))) {\n                            n.set(aa, \"origDisabledState\", aa.disabled);\n                        }\n                    ;\n                    ;\n                        aa.disabled = z;\n                    }\n                     else if (((ba !== true))) {\n                        aa.disabled = false;\n                    }\n                    \n                ;\n                ;\n                }\n            ;\n            ;\n            });\n        },\n        bootstrap: function(y, z) {\n            var aa = ((x.getAttribute(y, \"method\") || \"GET\")).toUpperCase();\n            z = ((q.byTag(z, \"button\") || z));\n            var ba = ((q.byClass(z, \"stat_elem\") || y));\n            if (j.hasClass(ba, \"async_saving\")) {\n                return;\n            }\n        ;\n        ;\n            if (((z && ((((((z.form !== y)) || ((((z.nodeName != \"INPUT\")) && ((z.nodeName != \"BUTTON\")))))) || ((z.type != \"submit\"))))))) {\n                var ca = m.scry(y, \".enter_submit_target\")[0];\n                ((ca && (z = ca)));\n            }\n        ;\n        ;\n            var da = x.serialize(y, z);\n            x.setDisabled(y, true);\n            var ea = ((x.getAttribute(y, \"ajaxify\") || x.getAttribute(y, \"action\")));\n            t(y, ea);\n            var fa = new h(ea);\n            fa.setData(da).setNectarModuleDataSafe(y).setReadOnly(((aa == \"GET\"))).setMethod(aa).setRelativeTo(y).setStatusElement(ba).setInitialHandler(x.setDisabled.curry(y, false)).setHandler(function(ga) {\n                g.fire(y, \"success\", {\n                    response: ga\n                });\n            }).setErrorHandler(function(ga) {\n                if (((g.fire(y, \"error\", {\n                    response: ga\n                }) !== false))) {\n                    i.defaultErrorHandler(ga);\n                }\n            ;\n            ;\n            }).setFinallyHandler(x.setDisabled.curry(y, false)).send();\n        },\n        forEachValue: function(y, z, aa) {\n            x.getElements(y).forEach(function(ba) {\n                if (((((ba.JSBNG__name && !ba.disabled)) && ((ba.type !== \"submit\"))))) {\n                    if (((((((((((!ba.type || ((((((ba.type === \"radio\")) || ((ba.type === \"checkbox\")))) && ba.checked)))) || ((ba.type === \"text\")))) || ((ba.type === \"password\")))) || ((ba.type === \"hidden\")))) || ((ba.nodeName === \"TEXTAREA\"))))) {\n                        aa(ba.type, ba.JSBNG__name, p.getValue(ba));\n                    }\n                     else if (((ba.nodeName === \"SELECT\"))) {\n                        for (var ca = 0, da = ba.options.length; ((ca < da)); ca++) {\n                            var ea = ba.options[ca];\n                            if (ea.selected) {\n                                aa(\"select\", ba.JSBNG__name, ea.value);\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    }\n                     else if (((u && ((ba.type === \"file\"))))) {\n                        var fa = ba.files;\n                        for (var ga = 0; ((ga < fa.length)); ga++) {\n                            aa(\"file\", ba.JSBNG__name, fa.item(ga));\n                        ;\n                        };\n                    ;\n                    }\n                    \n                    \n                ;\n                }\n            ;\n            ;\n            });\n            if (((((((((z && z.JSBNG__name)) && ((z.type === \"submit\")))) && m.contains(y, z))) && m.isNodeOfType(z, [\"input\",\"button\",])))) {\n                aa(\"submit\", z.JSBNG__name, z.value);\n            }\n        ;\n        ;\n        },\n        createFormData: function(y, z) {\n            if (!v) {\n                return null;\n            }\n        ;\n        ;\n            var aa = new JSBNG__FormData();\n            if (y) {\n                if (m.isNode(y)) {\n                    x.forEachValue(y, z, function(da, ea, fa) {\n                        aa.append(ea, fa);\n                    });\n                }\n                 else {\n                    var ba = w(y);\n                    {\n                        var fin105keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin105i = (0);\n                        var ca;\n                        for (; (fin105i < fin105keys.length); (fin105i++)) {\n                            ((ca) = (fin105keys[fin105i]));\n                            {\n                                aa.append(ca, ba[ca]);\n                            ;\n                            };\n                        };\n                    };\n                ;\n                }\n            ;\n            }\n        ;\n        ;\n            return aa;\n        },\n        serialize: function(y, z) {\n            var aa = {\n            };\n            x.forEachValue(y, z, function(ba, ca, da) {\n                if (((ba === \"file\"))) {\n                    return;\n                }\n            ;\n            ;\n                x._serializeHelper(aa, ca, da);\n            });\n            return x._serializeFix(aa);\n        },\n        _serializeHelper: function(y, z, aa) {\n            var ba = Object.prototype.hasOwnProperty, ca = /([^\\]]+)\\[([^\\]]*)\\](.*)/.exec(z);\n            if (ca) {\n                if (((!y[ca[1]] || !ba.call(y, ca[1])))) {\n                    var da;\n                    y[ca[1]] = da = {\n                    };\n                    if (((y[ca[1]] !== da))) {\n                        return;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                var ea = 0;\n                if (((ca[2] === \"\"))) {\n                    while (((y[ca[1]][ea] !== undefined))) {\n                        ea++;\n                    ;\n                    };\n                ;\n                }\n                 else ea = ca[2];\n            ;\n            ;\n                if (((ca[3] === \"\"))) {\n                    y[ca[1]][ea] = aa;\n                }\n                 else x._serializeHelper(y[ca[1]], ea.concat(ca[3]), aa);\n            ;\n            ;\n            }\n             else y[z] = aa;\n        ;\n        ;\n        },\n        _serializeFix: function(y) {\n            {\n                var fin106keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin106i = (0);\n                var z;\n                for (; (fin106i < fin106keys.length); (fin106i++)) {\n                    ((z) = (fin106keys[fin106i]));\n                    {\n                        if (((y[z] instanceof Object))) {\n                            y[z] = x._serializeFix(y[z]);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var aa = Object.keys(y);\n            if (((((aa.length === 0)) || aa.some(isNaN)))) {\n                return y;\n            }\n        ;\n        ;\n            aa.sort(function(da, ea) {\n                return ((da - ea));\n            });\n            var ba = 0, ca = aa.every(function(da) {\n                return ((+da === ba++));\n            });\n            if (ca) {\n                return aa.map(function(da) {\n                    return y[da];\n                });\n            }\n        ;\n        ;\n            return y;\n        },\n        post: function(y, z, aa) {\n            var ba = JSBNG__document.createElement(\"form\");\n            ba.action = y.toString();\n            ba.method = \"POST\";\n            ba.style.display = \"none\";\n            if (aa) {\n                ba.target = aa;\n            }\n        ;\n        ;\n            z.fb_dtsg = o.fb_dtsg;\n            x.createHiddenInputs(z, ba);\n            m.getRootElement().appendChild(ba);\n            ba.submit();\n            return false;\n        },\n        createHiddenInputs: function(y, z, aa, ba) {\n            aa = ((aa || {\n            }));\n            var ca = w(y);\n            {\n                var fin107keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin107i = (0);\n                var da;\n                for (; (fin107i < fin107keys.length); (fin107i++)) {\n                    ((da) = (fin107keys[fin107i]));\n                    {\n                        if (((ca[da] === null))) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        if (((aa[da] && ba))) {\n                            aa[da].value = ca[da];\n                        }\n                         else {\n                            var ea = k.create(\"input\", {\n                                type: \"hidden\",\n                                JSBNG__name: da,\n                                value: ca[da]\n                            });\n                            aa[da] = ea;\n                            z.appendChild(ea);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return aa;\n        },\n        getFirstElement: function(y, z) {\n            z = ((z || [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",\"input[type=\\\"button\\\"]\",\"input[type=\\\"submit\\\"]\",]));\n            var aa = [];\n            for (var ba = 0; ((ba < z.length)); ba++) {\n                aa = m.scry(y, z[ba]);\n                for (var ca = 0; ((ca < aa.length)); ca++) {\n                    var da = aa[ca];\n                    try {\n                        var fa = l.getElementPosition(da);\n                        if (((((fa.y > 0)) && ((fa.x > 0))))) {\n                            return da;\n                        }\n                    ;\n                    ;\n                    } catch (ea) {\n                    \n                    };\n                ;\n                };\n            ;\n            };\n        ;\n            return null;\n        },\n        focusFirst: function(y) {\n            var z = x.getFirstElement(y);\n            if (z) {\n                z.JSBNG__focus();\n                return true;\n            }\n        ;\n        ;\n            return false;\n        }\n    };\n    e.exports = x;\n});\n__d(\"Locale\", [\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\"), h, i = {\n        isRTL: function() {\n            if (((h === undefined))) {\n                h = ((\"rtl\" === g.get(JSBNG__document.body, \"direction\")));\n            }\n        ;\n        ;\n            return h;\n        }\n    };\n    e.exports = i;\n});\n__d(\"getOverlayZIndex\", [\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\");\n    function h(i, j) {\n        j = ((j || JSBNG__document.body));\n        var k = [];\n        while (((i && ((i !== j))))) {\n            k.push(i);\n            i = i.parentNode;\n        };\n    ;\n        if (((i !== j))) {\n            return 0;\n        }\n    ;\n    ;\n        for (var l = ((k.length - 1)); ((l >= 0)); l--) {\n            var m = k[l];\n            if (((g.get(m, \"position\") != \"static\"))) {\n                var n = parseInt(g.get(m, \"z-index\"), 10);\n                if (!isNaN(n)) {\n                    return n;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        };\n    ;\n        return 0;\n    };\n;\n    e.exports = h;\n});\n__d(\"Dialog\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"Bootloader\",\"Button\",\"ContextualThing\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"Focus\",\"Form\",\"HTML\",\"Keys\",\"Locale\",\"Parent\",\"Run\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"bind\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"getObjectValues\",\"getOverlayZIndex\",\"removeFromArray\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Button\"), l = b(\"ContextualThing\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"JSBNG__Event\"), p = b(\"Focus\"), q = b(\"Form\"), r = b(\"HTML\"), s = b(\"Keys\"), t = b(\"Locale\"), u = b(\"Parent\"), v = b(\"Run\"), w = b(\"Style\"), x = b(\"URI\"), y = b(\"UserAgent\"), z = b(\"Vector\"), aa = b(\"bind\"), ba = b(\"copyProperties\"), ca = b(\"createArrayFrom\"), da = b(\"emptyFunction\"), ea = b(\"getObjectValues\"), fa = b(\"getOverlayZIndex\"), ga = b(\"removeFromArray\"), ha = b(\"shield\"), ia = b(\"tx\"), ja = function() {\n        var la = JSBNG__document.body, ma = JSBNG__document.createElement(\"div\"), na = JSBNG__document.createElement(\"div\");\n        la.insertBefore(ma, la.firstChild);\n        la.insertBefore(na, la.firstChild);\n        ma.style.position = \"fixed\";\n        ma.style.JSBNG__top = \"20px\";\n        var oa = ((ma.offsetTop !== na.offsetTop));\n        la.removeChild(ma);\n        la.removeChild(na);\n        ja = da.thatReturns(oa);\n        return oa;\n    };\n    function ka(la) {\n        this._show_loading = true;\n        this._auto_focus = true;\n        this._submit_on_enter = false;\n        this._fade_enabled = true;\n        this._onload_handlers = [];\n        this._top = 125;\n        this._uniqueID = ((\"dialog_\" + ka._globalCount++));\n        this._content = null;\n        this._obj = null;\n        this._popup = null;\n        this._overlay = null;\n        this._shim = null;\n        this._causal_elem = null;\n        this._previous_focus = null;\n        this._buttons = [];\n        this._buildDialog();\n        if (la) {\n            this._setFromModel(la);\n        }\n    ;\n    ;\n        ka._init();\n    };\n;\n    ba(ka, {\n        OK: {\n            JSBNG__name: \"ok\",\n            label: \"Okay\"\n        },\n        CANCEL: {\n            JSBNG__name: \"cancel\",\n            label: \"Cancel\",\n            className: \"inputaux\"\n        },\n        CLOSE: {\n            JSBNG__name: \"close\",\n            label: \"Close\"\n        },\n        NEXT: {\n            JSBNG__name: \"next\",\n            label: \"Next\"\n        },\n        SAVE: {\n            JSBNG__name: \"save\",\n            label: \"Save\"\n        },\n        SUBMIT: {\n            JSBNG__name: \"submit\",\n            label: \"Submit\"\n        },\n        CONFIRM: {\n            JSBNG__name: \"JSBNG__confirm\",\n            label: \"Confirm\"\n        },\n        DELETE: {\n            JSBNG__name: \"delete\",\n            label: \"Delete\"\n        },\n        _globalCount: 0,\n        _bottoms: [0,],\n        max_bottom: 0,\n        _updateMaxBottom: function() {\n            ka.max_bottom = Math.max.apply(Math, ka._bottoms);\n        }\n    });\n    ba(ka, {\n        OK_AND_CANCEL: [ka.OK,ka.CANCEL,],\n        _STANDARD_BUTTONS: [ka.OK,ka.CANCEL,ka.CLOSE,ka.SAVE,ka.SUBMIT,ka.CONFIRM,ka.DELETE,],\n        SIZE: {\n            WIDE: 555,\n            STANDARD: 445\n        },\n        _HALO_WIDTH: 10,\n        _BORDER_WIDTH: 1,\n        _PADDING_WIDTH: 10,\n        _PAGE_MARGIN: 40,\n        _stack: [],\n        _isUsingCSSBorders: function() {\n            return ((y.ie() < 7));\n        },\n        newButton: function(la, ma, na, oa) {\n            var pa = {\n                JSBNG__name: la,\n                label: ma\n            };\n            if (na) {\n                pa.className = na;\n            }\n        ;\n        ;\n            if (oa) {\n                pa.handler = oa;\n            }\n        ;\n        ;\n            return pa;\n        },\n        getCurrent: function() {\n            var la = ka._stack;\n            return ((la.length ? la[((la.length - 1))] : null));\n        },\n        hideCurrent: function() {\n            var la = ka.getCurrent();\n            ((la && la.hide()));\n        },\n        bootstrap: function(la, ma, na, oa, pa, qa) {\n            ma = ((ma || {\n            }));\n            ba(ma, new x(la).getQueryData());\n            oa = ((oa || ((na ? \"GET\" : \"POST\"))));\n            var ra = ((u.byClass(qa, \"stat_elem\") || qa));\n            if (((ra && m.hasClass(ra, \"async_saving\")))) {\n                return false;\n            }\n        ;\n        ;\n            var sa = new i().setReadOnly(!!na).setMethod(oa).setRelativeTo(qa).setStatusElement(ra).setURI(la).setNectarModuleDataSafe(qa).setData(ma), ta = new ka(pa).setCausalElement(qa).setAsync(sa);\n            ta.show();\n            return false;\n        },\n        showFromModel: function(la, ma) {\n            var na = new ka(la).setCausalElement(ma).show();\n            if (la.hiding) {\n                na.hide();\n            }\n        ;\n        ;\n        },\n        _init: function() {\n            this._init = da;\n            v.onLeave(ha(ka._tearDown, null, false));\n            h.subscribe(\"page_transition\", ha(ka._tearDown, null, true));\n            o.listen(JSBNG__document.documentElement, \"keydown\", function(JSBNG__event) {\n                if (((((o.getKeyCode(JSBNG__event) == s.ESC)) && !JSBNG__event.getModifiers().any))) {\n                    if (ka._escape()) {\n                        JSBNG__event.kill();\n                    }\n                ;\n                ;\n                }\n                 else if (((((o.getKeyCode(JSBNG__event) == s.RETURN)) && !JSBNG__event.getModifiers().any))) {\n                    if (ka._enter()) {\n                        JSBNG__event.kill();\n                    }\n                ;\n                }\n                \n            ;\n            ;\n            });\n            o.listen(window, \"resize\", function(JSBNG__event) {\n                var la = ka.getCurrent();\n                ((la && la._resetDialogObj()));\n            });\n        },\n        _findButton: function(la, ma) {\n            if (la) {\n                for (var na = 0; ((na < la.length)); ++na) {\n                    if (((la[na].JSBNG__name == ma))) {\n                        return la[na];\n                    }\n                ;\n                ;\n                };\n            }\n        ;\n        ;\n            return null;\n        },\n        _tearDown: function(la) {\n            var ma = ka._stack.slice();\n            for (var na = ((ma.length - 1)); ((na >= 0)); na--) {\n                if (((((la && !ma[na]._cross_transition)) || ((!la && !ma[na]._cross_quickling))))) {\n                    ma[na].hide();\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        _escape: function() {\n            var la = ka.getCurrent();\n            if (!la) {\n                return false;\n            }\n        ;\n        ;\n            var ma = la._semi_modal, na = la._buttons;\n            if (((!na.length && !ma))) {\n                return false;\n            }\n        ;\n        ;\n            if (((ma && !na.length))) {\n                la.hide();\n                return true;\n            }\n        ;\n        ;\n            var oa, pa = ka._findButton(na, \"cancel\");\n            if (la._cancelHandler) {\n                la.cancel();\n                return true;\n            }\n             else if (pa) {\n                oa = pa;\n            }\n             else if (((na.length == 1))) {\n                oa = na[0];\n            }\n             else return false\n            \n            \n        ;\n            la._handleButton(oa);\n            return true;\n        },\n        _enter: function() {\n            var la = ka.getCurrent();\n            if (((!la || !la._submit_on_enter))) {\n                return false;\n            }\n        ;\n        ;\n            if (((JSBNG__document.activeElement != la._frame))) {\n                return false;\n            }\n        ;\n        ;\n            var ma = la._buttons;\n            if (!ma) {\n                return false;\n            }\n        ;\n        ;\n            la._handleButton(ma[0]);\n            return true;\n        },\n        call_or_eval: function(la, ma, na) {\n            if (!ma) {\n                return undefined;\n            }\n        ;\n        ;\n            na = ((na || {\n            }));\n            if (((typeof ma == \"string\"))) {\n                var oa = Object.keys(na).join(\", \");\n                ma = (eval)(((((((((\"({f: function(\" + oa)) + \") { \")) + ma)) + \"}})\"))).f;\n            }\n        ;\n        ;\n            return ma.apply(la, ea(na));\n        }\n    });\n    ba(ka.prototype, {\n        _cross_quickling: false,\n        _cross_transition: false,\n        _loading: false,\n        _showing: false,\n        show: function() {\n            this._showing = true;\n            if (this._async_request) {\n                if (this._show_loading) {\n                    this.showLoading();\n                }\n            ;\n            ;\n            }\n             else this._update();\n        ;\n        ;\n            return this;\n        },\n        showLoading: function() {\n            this._loading = true;\n            m.addClass(this._frame, \"dialog_loading_shown\");\n            this._renderDialog();\n            return this;\n        },\n        hide: function() {\n            if (((!this._showing && !this._loading))) {\n                return this;\n            }\n        ;\n        ;\n            this._showing = false;\n            if (this._autohide_timeout) {\n                JSBNG__clearTimeout(this._autohide_timeout);\n                this._autohide_timeout = null;\n            }\n        ;\n        ;\n            if (((this._fade_enabled && ((ka._stack.length <= 1))))) {\n                this._fadeOut();\n            }\n             else this._hide();\n        ;\n        ;\n            return this;\n        },\n        cancel: function() {\n            if (((!this._cancelHandler || ((this._cancelHandler() !== false))))) {\n                this.hide();\n            }\n        ;\n        ;\n        },\n        getRoot: function() {\n            return this._obj;\n        },\n        getBody: function() {\n            return n.scry(this._obj, \"div.dialog_body\")[0];\n        },\n        getButtonElement: function(la) {\n            if (((typeof la == \"string\"))) {\n                la = ka._findButton(this._buttons, la);\n            }\n        ;\n        ;\n            if (((!la || !la.JSBNG__name))) {\n                return null;\n            }\n        ;\n        ;\n            var ma = n.scry(this._popup, \"input\"), na = function(oa) {\n                return ((oa.JSBNG__name == la.JSBNG__name));\n            };\n            return ((ma.filter(na)[0] || null));\n        },\n        getContentNode: function() {\n            return n.JSBNG__find(this._content, \"div.dialog_content\");\n        },\n        getFormData: function() {\n            return q.serialize(this.getContentNode());\n        },\n        setAllowCrossPageTransition: function(la) {\n            this._cross_transition = la;\n            return this;\n        },\n        setAllowCrossQuicklingNavigation: function(la) {\n            this._cross_quickling = la;\n            return this;\n        },\n        setShowing: function() {\n            this.show();\n            return this;\n        },\n        setHiding: function() {\n            this.hide();\n            return this;\n        },\n        setTitle: function(la) {\n            var ma = this._nodes.title, na = this._nodes.title_inner, oa = this._nodes.JSBNG__content;\n            n.setContent(na, this._format(((la || \"\"))));\n            m.conditionShow(ma, !!la);\n            m.conditionClass(oa, \"dialog_content_titleless\", !la);\n            return this;\n        },\n        setBody: function(la) {\n            n.setContent(this._nodes.body, this._format(la));\n            return this;\n        },\n        setExtraData: function(la) {\n            this._extra_data = la;\n            return this;\n        },\n        setReturnData: function(la) {\n            this._return_data = la;\n            return this;\n        },\n        setShowLoading: function(la) {\n            this._show_loading = la;\n            return this;\n        },\n        setCustomLoading: function(la) {\n            var ma = n.create(\"div\", {\n                className: \"dialog_loading\"\n            }, la);\n            n.setContent(this._frame, [this._nodes.title,this._nodes.JSBNG__content,ma,]);\n            return this;\n        },\n        setFullBleed: function(la) {\n            this._full_bleed = la;\n            this._updateWidth();\n            m.conditionClass(this._obj, \"full_bleed\", la);\n            return this;\n        },\n        setCausalElement: function(la) {\n            this._causal_elem = la;\n            return this;\n        },\n        setUserData: function(la) {\n            this._user_data = la;\n            return this;\n        },\n        getUserData: function() {\n            return this._user_data;\n        },\n        setAutohide: function(la) {\n            if (la) {\n                if (this._showing) {\n                    this._autohide_timeout = JSBNG__setTimeout(ha(this.hide, this), la);\n                }\n                 else this._autohide = la;\n            ;\n            ;\n            }\n             else {\n                this._autohide = null;\n                if (this._autohide_timeout) {\n                    JSBNG__clearTimeout(this._autohide_timeout);\n                    this._autohide_timeout = null;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return this;\n        },\n        setSummary: function(la) {\n            var ma = this._nodes.summary;\n            n.setContent(ma, this._format(((la || \"\"))));\n            m.conditionShow(ma, !!la);\n            return this;\n        },\n        setButtons: function(la) {\n            var ma, na;\n            if (!((la instanceof Array))) {\n                ma = ca(arguments);\n            }\n             else ma = la;\n        ;\n        ;\n            for (var oa = 0; ((oa < ma.length)); ++oa) {\n                if (((typeof ma[oa] == \"string\"))) {\n                    na = ka._findButton(ka._STANDARD_BUTTONS, ma[oa]);\n                    ma[oa] = na;\n                }\n            ;\n            ;\n            };\n        ;\n            this._buttons = ma;\n            var pa = [];\n            if (((ma && ((ma.length > 0))))) {\n                for (var qa = 0; ((qa < ma.length)); qa++) {\n                    na = ma[qa];\n                    var ra = n.create(\"input\", {\n                        type: \"button\",\n                        JSBNG__name: ((na.JSBNG__name || \"\")),\n                        value: na.label\n                    }), sa = n.create(\"label\", {\n                        className: \"uiButton uiButtonLarge uiButtonConfirm\"\n                    }, ra);\n                    if (na.className) {\n                        na.className.split(/\\s+/).forEach(function(ua) {\n                            m.addClass(sa, ua);\n                        });\n                        if (m.hasClass(sa, \"inputaux\")) {\n                            m.removeClass(sa, \"inputaux\");\n                            m.removeClass(sa, \"uiButtonConfirm\");\n                        }\n                    ;\n                    ;\n                        if (m.hasClass(sa, \"uiButtonSpecial\")) {\n                            m.removeClass(sa, \"uiButtonConfirm\");\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    if (na.icon) {\n                        n.prependContent(sa, n.create(\"img\", {\n                            src: na.icon,\n                            className: \"img mrs\"\n                        }));\n                    }\n                ;\n                ;\n                    if (na.disabled) {\n                        k.setEnabled(sa, false);\n                    }\n                ;\n                ;\n                    o.listen(ra, \"click\", this._handleButton.bind(this, na.JSBNG__name));\n                    {\n                        var fin108keys = ((window.top.JSBNG_Replay.forInKeys)((na))), fin108i = (0);\n                        var ta;\n                        for (; (fin108i < fin108keys.length); (fin108i++)) {\n                            ((ta) = (fin108keys[fin108i]));\n                            {\n                                if (((((ta.indexOf(\"data-\") === 0)) && ((ta.length > 5))))) {\n                                    ra.setAttribute(ta, na[ta]);\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    pa.push(sa);\n                };\n            }\n        ;\n        ;\n            n.setContent(this._nodes.buttons, pa);\n            this._updateButtonVisibility();\n            return this;\n        },\n        setButtonsMessage: function(la) {\n            n.setContent(this._nodes.button_message, this._format(((la || \"\"))));\n            this._has_button_message = !!la;\n            this._updateButtonVisibility();\n            return this;\n        },\n        _updateButtonVisibility: function() {\n            var la = ((((this._buttons.length > 0)) || this._has_button_message));\n            m.conditionShow(this._nodes.button_wrapper, la);\n            m.conditionClass(this._obj, \"omitDialogFooter\", !la);\n        },\n        setClickButtonOnEnter: function(la, ma) {\n            this._clickOnEnterTarget = la;\n            if (!this._clickOnEnterListener) {\n                this._clickOnEnterListener = o.listen(this._nodes.body, \"keypress\", function(JSBNG__event) {\n                    var na = JSBNG__event.getTarget();\n                    if (((na && ((na.id === this._clickOnEnterTarget))))) {\n                        if (((o.getKeyCode(JSBNG__event) == s.RETURN))) {\n                            this._handleButton(ma);\n                            JSBNG__event.kill();\n                        }\n                    ;\n                    }\n                ;\n                ;\n                    return true;\n                }.bind(this));\n            }\n        ;\n        ;\n            return this;\n        },\n        setStackable: function(la, ma) {\n            this._is_stackable = la;\n            this._shown_while_stacked = ((la && ma));\n            return this;\n        },\n        setHandler: function(la) {\n            this._handler = la;\n            return this;\n        },\n        setCancelHandler: function(la) {\n            this._cancelHandler = ka.call_or_eval.bind(null, this, la);\n            return this;\n        },\n        setCloseHandler: function(la) {\n            this._close_handler = ka.call_or_eval.bind(null, this, la);\n            return this;\n        },\n        clearHandler: function() {\n            return this.setHandler(null);\n        },\n        setPostURI: function(la, ma) {\n            if (((ma === undefined))) {\n                ma = true;\n            }\n        ;\n        ;\n            if (ma) {\n                this.setHandler(this._submitForm.bind(this, \"POST\", la));\n            }\n             else this.setHandler(function() {\n                q.post(la, this.getFormData());\n                this.hide();\n            }.bind(this));\n        ;\n        ;\n            return this;\n        },\n        setGetURI: function(la) {\n            this.setHandler(this._submitForm.bind(this, \"GET\", la));\n            return this;\n        },\n        setModal: function(la) {\n            this._modal = la;\n            m.conditionClass(this._obj, \"generic_dialog_modal\", la);\n            return this;\n        },\n        setSemiModal: function(la) {\n            if (la) {\n                this.setModal(true);\n                this._semiModalListener = o.listen(this._obj, \"click\", function(ma) {\n                    if (!n.contains(this._popup, ma.getTarget())) {\n                        this.hide();\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n             else ((this._semiModalListener && this._semiModalListener.remove()));\n        ;\n        ;\n            this._semi_modal = la;\n            return this;\n        },\n        setWideDialog: function(la) {\n            this._wide_dialog = la;\n            this._updateWidth();\n            return this;\n        },\n        setContentWidth: function(la) {\n            this._content_width = la;\n            this._updateWidth();\n            return this;\n        },\n        setTitleLoading: function(la) {\n            if (((la === undefined))) {\n                la = true;\n            }\n        ;\n        ;\n            var ma = n.JSBNG__find(this._popup, \"h2.dialog_title\");\n            if (ma) {\n                m.conditionClass(ma, \"loading\", la);\n            }\n        ;\n        ;\n            return this;\n        },\n        setSecure: function(la) {\n            m.conditionClass(this._nodes.title, \"secure\", la);\n            return this;\n        },\n        setClassName: function(la) {\n            la.split(/\\s+/).forEach(m.addClass.bind(m, this._obj));\n            return this;\n        },\n        setFadeEnabled: function(la) {\n            this._fade_enabled = la;\n            return this;\n        },\n        setFooter: function(la) {\n            var ma = this._nodes.footer;\n            n.setContent(ma, this._format(((la || \"\"))));\n            m.conditionShow(ma, !!la);\n            return this;\n        },\n        setAutoFocus: function(la) {\n            this._auto_focus = la;\n            return this;\n        },\n        setTop: function(la) {\n            this._top = la;\n            this._resetDialogObj();\n            return this;\n        },\n        onloadRegister: function(la) {\n            ca(la).forEach(function(ma) {\n                if (((typeof ma == \"string\"))) {\n                    ma = new Function(ma);\n                }\n            ;\n            ;\n                this._onload_handlers.push(ma.bind(this));\n            }.bind(this));\n            return this;\n        },\n        setAsyncURL: function(la) {\n            return this.setAsync(new i(la));\n        },\n        setAsync: function(la) {\n            var ma = function(ua) {\n                if (((this._async_request != la))) {\n                    return;\n                }\n            ;\n            ;\n                this._async_request = null;\n                var va = ua.getPayload(), wa = va;\n                if (this._loading) {\n                    this._showing = true;\n                }\n            ;\n            ;\n                if (((typeof wa == \"string\"))) {\n                    this.setBody(wa);\n                }\n                 else this._setFromModel(wa);\n            ;\n            ;\n                this._update();\n            }.bind(this), na = la.getData();\n            na.__d = 1;\n            la.setData(na);\n            var oa = ((la.getHandler() || da));\n            la.setHandler(function(ua) {\n                oa(ua);\n                ma(ua);\n            });\n            var pa = la, qa = ((pa.getErrorHandler() || da)), ra = ((pa.getTransportErrorHandler() || da)), sa = function() {\n                this._async_request = null;\n                this._loading = false;\n                if (((this._showing && this._shown_while_stacked))) {\n                    this._update();\n                }\n                 else this._hide(this._is_stackable);\n            ;\n            ;\n            }.bind(this), ta = ((pa.getServerDialogCancelHandler() || sa));\n            pa.setAllowCrossPageTransition(this._cross_transition).setErrorHandler(function(ua) {\n                sa();\n                qa(ua);\n            }).setTransportErrorHandler(function(ua) {\n                sa();\n                ra(ua);\n            }).setServerDialogCancelHandler(ta);\n            la.send();\n            this._async_request = la;\n            if (this._showing) {\n                this.show();\n            }\n        ;\n        ;\n            return this;\n        },\n        _format: function(la) {\n            if (((typeof la == \"string\"))) {\n                la = r(la);\n            }\n             else la = r.replaceJSONWrapper(la);\n        ;\n        ;\n            if (((la instanceof r))) {\n                la.setDeferred(true);\n            }\n        ;\n        ;\n            return la;\n        },\n        _update: function() {\n            if (!this._showing) {\n                return;\n            }\n        ;\n        ;\n            if (((((this._autohide && !this._async_request)) && !this._autohide_timeout))) {\n                this._autohide_timeout = JSBNG__setTimeout(aa(this, \"hide\"), this._autohide);\n            }\n        ;\n        ;\n            m.removeClass(this._frame, \"dialog_loading_shown\");\n            this._loading = false;\n            this._renderDialog();\n            this._runOnloads();\n            this._previous_focus = JSBNG__document.activeElement;\n            p.set(this._frame);\n        },\n        _runOnloads: function() {\n            for (var la = 0; ((la < this._onload_handlers.length)); ++la) {\n                try {\n                    this._onload_handlers[la]();\n                } catch (ma) {\n                \n                };\n            ;\n            };\n        ;\n            this._onload_handlers = [];\n        },\n        _updateWidth: function() {\n            var la = ((2 * ka._BORDER_WIDTH));\n            if (ka._isUsingCSSBorders()) {\n                la += ((2 * ka._HALO_WIDTH));\n            }\n        ;\n        ;\n            if (this._content_width) {\n                la += this._content_width;\n                if (!this._full_bleed) {\n                    la += ((2 * ka._PADDING_WIDTH));\n                }\n            ;\n            ;\n            }\n             else if (this._wide_dialog) {\n                la += ka.SIZE.WIDE;\n            }\n             else la += ka.SIZE.STANDARD;\n            \n        ;\n        ;\n            this._popup.style.width = ((la + \"px\"));\n        },\n        _updateZIndex: function() {\n            if (((!this._hasSetZIndex && this._causal_elem))) {\n                var la = fa(this._causal_elem), ma = this._causal_elem;\n                while (((!la && (ma = l.getContext(ma))))) {\n                    la = fa(ma);\n                ;\n                };\n            ;\n                this._hasSetZIndex = ((la > ((this._modal ? 400 : 200))));\n                w.set(this._obj, \"z-index\", ((this._hasSetZIndex ? la : \"\")));\n            }\n        ;\n        ;\n        },\n        _renderDialog: function() {\n            this._updateZIndex();\n            this._pushOntoStack();\n            this._obj.style.height = ((((this._modal && ((y.ie() < 7)))) ? ((z.getDocumentDimensions().y + \"px\")) : null));\n            if (((this._obj && this._obj.style.display))) {\n                this._obj.style.visibility = \"hidden\";\n                this._obj.style.display = \"\";\n                this.resetDialogPosition();\n                this._obj.style.visibility = \"\";\n                this._obj.dialog = this;\n            }\n             else this.resetDialogPosition();\n        ;\n        ;\n            JSBNG__clearInterval(this.active_hiding);\n            this.active_hiding = JSBNG__setInterval(this._activeResize.bind(this), 500);\n            this._submit_on_enter = false;\n            if (this._auto_focus) {\n                var la = q.getFirstElement(this._content, [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",]);\n                if (la) {\n                    q.focusFirst.bind(this, this._content).defer();\n                }\n                 else this._submit_on_enter = true;\n            ;\n            ;\n            }\n        ;\n        ;\n            var ma = ((z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y));\n            ka._bottoms.push(ma);\n            this._bottom = ma;\n            ka._updateMaxBottom();\n            return this;\n        },\n        _buildDialog: function() {\n            this._obj = n.create(\"div\", {\n                className: \"generic_dialog\",\n                id: this._uniqueID\n            });\n            this._obj.style.display = \"none\";\n            n.appendContent(JSBNG__document.body, this._obj);\n            if (!this._popup) {\n                this._popup = n.create(\"div\", {\n                    className: \"generic_dialog_popup\"\n                });\n            }\n        ;\n        ;\n            this._obj.appendChild(this._popup);\n            if (((((y.ie() < 7)) && !this._shim))) {\n                j.loadModules([\"IframeShim\",], function(xa) {\n                    this._shim = new xa(this._popup);\n                });\n            }\n        ;\n        ;\n            m.addClass(this._obj, \"pop_dialog\");\n            if (t.isRTL()) {\n                m.addClass(this._obj, \"pop_dialog_rtl\");\n            }\n        ;\n        ;\n            var la;\n            if (ka._isUsingCSSBorders()) {\n                la = ((((\"\\u003Cdiv class=\\\"pop_container_advanced\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_content\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\"));\n            }\n             else la = ((((((((((((((((\"\\u003Cdiv class=\\\"pop_container\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_verticalslab\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_horizontalslab\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_topleft\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_topright\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_bottomright\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_bottomleft\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_content pop_content_old\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\"));\n        ;\n        ;\n            n.setContent(this._popup, r(la));\n            var ma = n.JSBNG__find(this._popup, \"div.pop_content\");\n            ma.setAttribute(\"tabIndex\", \"0\");\n            ma.setAttribute(\"role\", \"alertdialog\");\n            this._frame = this._content = ma;\n            var na = n.create(\"div\", {\n                className: \"dialog_loading\"\n            }, \"Loading...\"), oa = n.create(\"span\"), pa = n.create(\"h2\", {\n                className: \"dialog_title hidden_elem\",\n                id: ((\"title_\" + this._uniqueID))\n            }, oa), qa = n.create(\"div\", {\n                className: \"dialog_summary hidden_elem\"\n            }), ra = n.create(\"div\", {\n                className: \"dialog_body\"\n            }), sa = n.create(\"div\", {\n                className: \"rfloat mlm\"\n            }), ta = n.create(\"div\", {\n                className: \"dialog_buttons_msg\"\n            }), ua = n.create(\"div\", {\n                className: \"dialog_buttons clearfix hidden_elem\"\n            }, [sa,ta,]), va = n.create(\"div\", {\n                className: \"dialog_footer hidden_elem\"\n            }), wa = n.create(\"div\", {\n                className: \"dialog_content\"\n            }, [qa,ra,ua,va,]);\n            this._nodes = {\n                summary: qa,\n                body: ra,\n                buttons: sa,\n                button_message: ta,\n                button_wrapper: ua,\n                footer: va,\n                JSBNG__content: wa,\n                title: pa,\n                title_inner: oa\n            };\n            n.setContent(this._frame, [pa,wa,na,]);\n        },\n        _updateShim: function() {\n            return ((this._shim && this._shim.show()));\n        },\n        _activeResize: function() {\n            if (((this.last_offset_height != this._content.offsetHeight))) {\n                this.last_offset_height = this._content.offsetHeight;\n                this.resetDialogPosition();\n            }\n        ;\n        ;\n        },\n        resetDialogPosition: function() {\n            if (!this._popup) {\n                return;\n            }\n        ;\n        ;\n            this._resetDialogObj();\n            this._updateShim();\n        },\n        _resetDialogObj: function() {\n            var la = ((2 * ka._PAGE_MARGIN)), ma = z.getViewportDimensions(), na = ((ma.x - la)), oa = ((ma.y - la)), pa = ((2 * ka._HALO_WIDTH)), qa = z.getElementDimensions(this._content), ra = ((qa.x + pa)), sa = ((qa.y + pa)), ta = this._top, ua = ((na - ra)), va = ((oa - sa));\n            if (((va < 0))) {\n                ta = ka._PAGE_MARGIN;\n            }\n             else if (((ta > va))) {\n                ta = ((ka._PAGE_MARGIN + ((Math.max(va, 0) / 2))));\n            }\n            \n        ;\n        ;\n            var wa = ja();\n            if (!wa) {\n                ta += z.getScrollPosition().y;\n            }\n        ;\n        ;\n            w.set(this._popup, \"marginTop\", ((ta + \"px\")));\n            var xa = ((wa && ((((ua < 0)) || ((va < 0))))));\n            m.conditionClass(this._obj, \"generic_dialog_fixed_overflow\", xa);\n            m.conditionClass(JSBNG__document.documentElement, \"generic_dialog_overflow_mode\", xa);\n        },\n        _fadeOut: function(la) {\n            if (!this._popup) {\n                return;\n            }\n        ;\n        ;\n            try {\n                new g(this._obj).duration(0).checkpoint().to(\"opacity\", 0).hide().duration(250).ondone(this._hide.bind(this, la)).go();\n            } catch (ma) {\n                this._hide(la);\n            };\n        ;\n        },\n        _hide: function(la) {\n            if (this._obj) {\n                this._obj.style.display = \"none\";\n            }\n        ;\n        ;\n            m.removeClass(JSBNG__document.documentElement, \"generic_dialog_overflow_mode\");\n            this._updateShim();\n            JSBNG__clearInterval(this.active_hiding);\n            if (this._bottom) {\n                var ma = ka._bottoms;\n                ma.splice(ma.indexOf(this._bottom), 1);\n                ka._updateMaxBottom();\n            }\n        ;\n        ;\n            if (((((this._previous_focus && JSBNG__document.activeElement)) && n.contains(this._obj, JSBNG__document.activeElement)))) {\n                p.set(this._previous_focus);\n            }\n        ;\n        ;\n            if (la) {\n                return;\n            }\n        ;\n        ;\n            this.destroy();\n        },\n        destroy: function() {\n            this._popFromStack();\n            JSBNG__clearInterval(this.active_hiding);\n            if (this._obj) {\n                n.remove(this._obj);\n                this._obj = null;\n                ((this._shim && this._shim.hide()));\n                this._shim = null;\n            }\n        ;\n        ;\n            ((this._clickOnEnterListener && this._clickOnEnterListener.remove()));\n            if (this._close_handler) {\n                this._close_handler({\n                    return_data: this._return_data\n                });\n            }\n        ;\n        ;\n        },\n        _handleButton: function(la) {\n            if (((typeof la == \"string\"))) {\n                la = ka._findButton(this._buttons, la);\n            }\n        ;\n        ;\n            var ma = ka.call_or_eval(la, la.handler);\n            if (((ma === false))) {\n                return;\n            }\n        ;\n        ;\n            if (((la.JSBNG__name == \"cancel\"))) {\n                this.cancel();\n            }\n             else if (((ka.call_or_eval(this, this._handler, {\n                button: la\n            }) !== false))) {\n                this.hide();\n            }\n            \n        ;\n        ;\n        },\n        _submitForm: function(la, ma, na) {\n            var oa = this.getFormData();\n            if (na) {\n                oa[na.JSBNG__name] = na.label;\n            }\n        ;\n        ;\n            if (this._extra_data) {\n                ba(oa, this._extra_data);\n            }\n        ;\n        ;\n            var pa = new i().setURI(ma).setData(oa).setMethod(la).setNectarModuleDataSafe(this._causal_elem).setReadOnly(((la == \"GET\")));\n            this.setAsync(pa);\n            return false;\n        },\n        _setFromModel: function(la) {\n            var ma = {\n            };\n            ba(ma, la);\n            {\n                var fin109keys = ((window.top.JSBNG_Replay.forInKeys)((ma))), fin109i = (0);\n                var na;\n                for (; (fin109i < fin109keys.length); (fin109i++)) {\n                    ((na) = (fin109keys[fin109i]));\n                    {\n                        if (((na == \"onloadRegister\"))) {\n                            this.onloadRegister(ma[na]);\n                            continue;\n                        }\n                    ;\n                    ;\n                        var oa = this[((((\"set\" + na.substr(0, 1).toUpperCase())) + na.substr(1)))];\n                        oa.apply(this, ca(ma[na]));\n                    };\n                };\n            };\n        ;\n        },\n        _updateBottom: function() {\n            var la = ((z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y));\n            ka._bottoms[((ka._bottoms.length - 1))] = la;\n            ka._updateMaxBottom();\n        },\n        _pushOntoStack: function() {\n            var la = ka._stack;\n            if (!la.length) {\n                h.inform(\"layer_shown\", {\n                    type: \"Dialog\"\n                });\n            }\n        ;\n        ;\n            ga(la, this);\n            la.push(this);\n            for (var ma = ((la.length - 2)); ((ma >= 0)); ma--) {\n                var na = la[ma];\n                if (((!na._is_stackable && !na._async_request))) {\n                    na._hide();\n                }\n                 else if (!na._shown_while_stacked) {\n                    na._hide(true);\n                }\n                \n            ;\n            ;\n            };\n        ;\n        },\n        _popFromStack: function() {\n            var la = ka._stack, ma = ((la[((la.length - 1))] === this));\n            ga(la, this);\n            if (la.length) {\n                if (ma) {\n                    la[((la.length - 1))].show();\n                }\n            ;\n            ;\n            }\n             else h.inform(\"layer_hidden\", {\n                type: \"Dialog\"\n            });\n        ;\n        ;\n        }\n    });\n    e.exports = ka;\n    a.Dialog = ka;\n});\n__d(\"DialogHideOnSuccess\", [\"copyProperties\",\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"CSS\"), i = b(\"cx\");\n    function j(k) {\n        this._layer = k;\n    };\n;\n    g(j.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"success\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(k, JSBNG__event) {\n            if (h.hasClass(JSBNG__event.getTarget(), \"_s\")) {\n                this._layer.hide();\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"DocumentTitle\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = JSBNG__document.title, i = null, j = 1500, k = [], l = 0, m = null, n = false;\n    function o() {\n        if (((k.length > 0))) {\n            if (!n) {\n                p(k[l].title);\n                l = ((++l % k.length));\n            }\n             else q();\n        ;\n        ;\n        }\n         else {\n            JSBNG__clearInterval(m);\n            m = null;\n            q();\n        }\n    ;\n    ;\n    };\n;\n    function p(s) {\n        JSBNG__document.title = s;\n        n = true;\n    };\n;\n    function q() {\n        r.set(((i || h)), true);\n        n = false;\n    };\n;\n    var r = {\n        get: function() {\n            return h;\n        },\n        set: function(s, t) {\n            JSBNG__document.title = s;\n            if (!t) {\n                h = s;\n                i = null;\n                g.inform(\"update_title\", s);\n            }\n             else i = s;\n        ;\n        ;\n        },\n        blink: function(s) {\n            var t = {\n                title: s\n            };\n            k.push(t);\n            if (((m === null))) {\n                m = JSBNG__setInterval(o, j);\n            }\n        ;\n        ;\n            return {\n                JSBNG__stop: function() {\n                    var u = k.indexOf(t);\n                    if (((u >= 0))) {\n                        k.splice(u, 1);\n                        if (((l > u))) {\n                            l--;\n                        }\n                         else if (((((l == u)) && ((l == k.length))))) {\n                            l = 0;\n                        }\n                        \n                    ;\n                    ;\n                    }\n                ;\n                ;\n                }\n            };\n        }\n    };\n    e.exports = r;\n});\n__d(\"DoublyLinkedListMap\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h() {\n        this._head = null;\n        this._tail = null;\n        this._nodes = {\n        };\n        this._nodeCount = 0;\n    };\n;\n    g(h.prototype, {\n        get: function(i) {\n            return ((this._nodes[i] ? this._nodes[i].data : null));\n        },\n        getIndex: function(i) {\n            for (var j = this._head, k = 0; j; j = j.next, k++) {\n                if (((j.key === i))) {\n                    return k;\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        _insert: function(i, j, k, l) {\n            ((((k && !this._nodes[k])) && (k = null)));\n            var m = ((((k && this._nodes[k])) || ((l ? this._head : this._tail)))), n = {\n                data: j,\n                key: i,\n                next: null,\n                prev: null\n            };\n            if (m) {\n                this.remove(i);\n                if (l) {\n                    n.prev = m.prev;\n                    ((m.prev && (m.prev.next = n)));\n                    m.prev = n;\n                    n.next = m;\n                }\n                 else {\n                    n.next = m.next;\n                    ((m.next && (m.next.prev = n)));\n                    m.next = n;\n                    n.prev = m;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ((((n.prev === null)) && (this._head = n)));\n            ((((n.next === null)) && (this._tail = n)));\n            this._nodes[i] = n;\n            this._nodeCount++;\n            return this;\n        },\n        insertBefore: function(i, j, k) {\n            return this._insert(i, j, k, true);\n        },\n        insertAfter: function(i, j, k) {\n            return this._insert(i, j, k, false);\n        },\n        prepend: function(i, j) {\n            return this.insertBefore(i, j, ((this._head && this._head.key)));\n        },\n        append: function(i, j) {\n            return this.insertAfter(i, j, ((this._tail && this._tail.key)));\n        },\n        remove: function(i) {\n            var j = this._nodes[i];\n            if (j) {\n                var k = j.next, l = j.prev;\n                ((k && (k.prev = l)));\n                ((l && (l.next = k)));\n                ((((this._head === j)) && (this._head = k)));\n                ((((this._tail === j)) && (this._tail = l)));\n                delete this._nodes[i];\n                this._nodeCount--;\n            }\n        ;\n        ;\n            return this;\n        },\n        JSBNG__find: function(i) {\n            for (var j = this._head; j; j = j.next) {\n                if (i(j.data)) {\n                    return j.key;\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        reduce: function(i, j) {\n            for (var k = this._head; k; k = k.next) {\n                j = i(k.data, j);\n            ;\n            };\n        ;\n            return j;\n        },\n        exists: function(i) {\n            return !!this._nodes[i];\n        },\n        isEmpty: function() {\n            return !this._head;\n        },\n        reset: function() {\n            this._head = null;\n            this._tail = null;\n            this._nodes = {\n            };\n            this._nodeCount = 0;\n        },\n        map: function(i) {\n            for (var j = this._head; j; j = j.next) {\n                i(j.data);\n            ;\n            };\n        ;\n        },\n        getCount: function() {\n            return this._nodeCount;\n        },\n        getHead: function() {\n            return ((this._head && this._head.data));\n        },\n        getTail: function() {\n            return ((this._tail && this._tail.data));\n        },\n        getNext: function(i) {\n            var j = this._nodes[i];\n            if (((j && j.next))) {\n                return j.next.data;\n            }\n        ;\n        ;\n            return null;\n        },\n        getPrev: function(i) {\n            var j = this._nodes[i];\n            if (((j && j.prev))) {\n                return j.prev.data;\n            }\n        ;\n        ;\n            return null;\n        }\n    });\n    e.exports = h;\n});\n__d(\"throttle\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(j, k, l) {\n        return i(j, k, l, false, false);\n    };\n;\n    g(h, {\n        acrossTransitions: function(j, k, l) {\n            return i(j, k, l, true, false);\n        },\n        withBlocking: function(j, k, l) {\n            return i(j, k, l, false, true);\n        }\n    });\n    function i(j, k, l, m, n) {\n        if (((k == null))) {\n            k = 100;\n        }\n    ;\n    ;\n        var o, p, q;\n        function r() {\n            p = JSBNG__Date.now();\n            if (o) {\n                j.apply(l, o);\n                o = null;\n                q = JSBNG__setTimeout(r, k, !m);\n            }\n             else q = false;\n        ;\n        ;\n        };\n    ;\n        return function s() {\n            o = arguments;\n            if (((!q || ((((JSBNG__Date.now() - p)) > k))))) {\n                if (n) {\n                    r();\n                }\n                 else q = JSBNG__setTimeout(r, 0, !m);\n            ;\n            }\n        ;\n        ;\n        };\n    };\n;\n    e.exports = h;\n});\n__d(\"FullScreen\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"UserAgent\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = b(\"throttle\"), m = {\n    }, n = k(new h(), {\n        listenForEvent: function(p) {\n            var q = l(this.onChange, 0, this);\n            if (!m[p.id]) {\n                m[p.id] = true;\n                g.listen(p, {\n                    webkitfullscreenchange: q,\n                    mozfullscreenchange: q,\n                    fullscreenchange: q\n                });\n            }\n        ;\n        ;\n        },\n        enableFullScreen: function(p) {\n            this.listenForEvent(p);\n            if (p.webkitRequestFullScreen) {\n                if (j.chrome()) {\n                    p.webkitRequestFullScreen(JSBNG__Element.ALLOW_KEYBOARD_INPUT);\n                }\n                 else p.webkitRequestFullScreen();\n            ;\n            ;\n            }\n             else if (p.mozRequestFullScreen) {\n                p.mozRequestFullScreen();\n            }\n             else if (p.requestFullScreen) {\n                p.requestFullScreen();\n            }\n             else return false\n            \n            \n        ;\n            return true;\n        },\n        disableFullScreen: function() {\n            if (JSBNG__document.webkitCancelFullScreen) {\n                JSBNG__document.webkitCancelFullScreen();\n            }\n             else if (JSBNG__document.mozCancelFullScreen) {\n                JSBNG__document.mozCancelFullScreen();\n            }\n             else if (JSBNG__document.cancelFullScreen) {\n                JSBNG__document.cancelFullScreen();\n            }\n             else if (JSBNG__document.exitFullScreen) {\n                JSBNG__document.exitFullScreen();\n            }\n             else return false\n            \n            \n            \n        ;\n            return true;\n        },\n        isFullScreen: function() {\n            return ((((JSBNG__document.webkitIsFullScreen || JSBNG__document.JSBNG__fullScreen)) || JSBNG__document.mozFullScreen));\n        },\n        toggleFullScreen: function(p) {\n            if (this.isFullScreen()) {\n                this.disableFullScreen();\n                return false;\n            }\n             else return this.enableFullScreen(p)\n        ;\n            return false;\n        },\n        onChange: function() {\n            var p = this.isFullScreen();\n            i.conditionClass(JSBNG__document.body, \"JSBNG__fullScreen\", p);\n            this.inform(\"changed\");\n        },\n        isSupported: function() {\n            return ((((((((JSBNG__document.webkitCancelFullScreen && j.chrome())) || JSBNG__document.mozCancelFullScreen)) || JSBNG__document.cancelFullScreen)) || JSBNG__document.exitFullScreen));\n        }\n    }), o = l(n.onChange, 0, n);\n    g.listen(JSBNG__document, {\n        webkitfullscreenchange: o,\n        mozfullscreenchange: o,\n        fullscreenchange: o\n    });\n    e.exports = n;\n});\n__d(\"HistoryManager\", [\"JSBNG__Event\",\"function-extensions\",\"Cookie\",\"Env\",\"URI\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"goOrReplace\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Cookie\"), i = b(\"Env\"), j = b(\"URI\"), k = b(\"UserAgent\"), l = b(\"copyProperties\"), m = b(\"emptyFunction\"), n = b(\"goOrReplace\"), o = {\n        _IFRAME_BASE_URI: \"http://static.ak.facebook.com/common/history_manager.php\",\n        JSBNG__history: null,\n        current: 0,\n        fragment: null,\n        _setIframeSrcFragment: function(p) {\n            p = p.toString();\n            var q = ((o.JSBNG__history.length - 1));\n            o.iframe.src = ((((((((o._IFRAME_BASE_URI + \"?|index=\")) + q)) + \"#\")) + encodeURIComponent(p)));\n            return o;\n        },\n        getIframeSrcFragment: function() {\n            return decodeURIComponent(j(o.iframe.contentWindow.JSBNG__document.JSBNG__location.href).getFragment());\n        },\n        nextframe: function(p, q) {\n            if (q) {\n                o._setIframeSrcFragment(p);\n                return;\n            }\n        ;\n        ;\n            if (((p !== undefined))) {\n                o.iframeQueue.push(p);\n            }\n             else {\n                o.iframeQueue.splice(0, 1);\n                o.iframeTimeout = null;\n                o.checkURI();\n            }\n        ;\n        ;\n            if (((o.iframeQueue.length && !o.iframeTimeout))) {\n                var r = o.iframeQueue[0];\n                o.iframeTimeout = JSBNG__setTimeout(function() {\n                    o._setIframeSrcFragment(r);\n                }, 100, false);\n            }\n        ;\n        ;\n        },\n        isInitialized: function() {\n            return !!o._initialized;\n        },\n        init: function() {\n            if (((!i.ALLOW_TRANSITION_IN_IFRAME && ((window != window.JSBNG__top))))) {\n                return;\n            }\n        ;\n        ;\n            if (o._initialized) {\n                return o;\n            }\n        ;\n        ;\n            var p = j(), q = ((p.getFragment() || \"\"));\n            if (((q.charAt(0) === \"!\"))) {\n                q = q.substr(1);\n                p.setFragment(q);\n            }\n        ;\n        ;\n            if (((j.getRequestURI(false).getProtocol().toLowerCase() == \"https\"))) {\n                o._IFRAME_BASE_URI = \"https://s-static.ak.facebook.com/common/history_manager.php\";\n            }\n        ;\n        ;\n            l(o, {\n                _initialized: true,\n                fragment: q,\n                orig_fragment: q,\n                JSBNG__history: [p,],\n                callbacks: [],\n                lastChanged: JSBNG__Date.now(),\n                canonical: j(\"#\"),\n                fragmentTimeout: null,\n                user: 0,\n                iframeTimeout: null,\n                iframeQueue: [],\n                enabled: true,\n                debug: m\n            });\n            if (((window.JSBNG__history && JSBNG__history.pushState))) {\n                this.lastURI = JSBNG__document.JSBNG__URL;\n                window.JSBNG__history.replaceState(this.lastURI, null);\n                g.listen(window, \"popstate\", function(r) {\n                    if (((((r && r.state)) && ((o.lastURI != r.state))))) {\n                        o.lastURI = r.state;\n                        o.lastChanged = JSBNG__Date.now();\n                        o.notify(j(r.state).getUnqualifiedURI().toString());\n                    }\n                ;\n                ;\n                }.bind(o));\n                if (((((k.webkit() < 534)) || ((k.chrome() <= 13))))) {\n                    JSBNG__setInterval(o.checkURI, 42, false);\n                    o._updateRefererURI(this.lastURI);\n                }\n            ;\n            ;\n                return o;\n            }\n        ;\n        ;\n            o._updateRefererURI(j.getRequestURI(false));\n            if (((((k.webkit() < 500)) || ((k.firefox() < 2))))) {\n                o.enabled = false;\n                return o;\n            }\n        ;\n        ;\n            if (((k.ie() < 8))) {\n                o.iframe = JSBNG__document.createElement(\"div\");\n                l(o.iframe.style, {\n                    width: \"0\",\n                    height: \"0\",\n                    frameborder: \"0\",\n                    left: \"0\",\n                    JSBNG__top: \"0\",\n                    position: \"absolute\"\n                });\n                o._setIframeSrcFragment(q);\n                JSBNG__document.body.insertBefore(o.iframe, JSBNG__document.body.firstChild);\n            }\n             else if (((\"JSBNG__onhashchange\" in window))) {\n                g.listen(window, \"hashchange\", function() {\n                    o.checkURI.bind(o).defer();\n                });\n            }\n             else JSBNG__setInterval(o.checkURI, 42, false);\n            \n        ;\n        ;\n            return o;\n        },\n        registerURIHandler: function(p) {\n            o.callbacks.push(p);\n            return o;\n        },\n        setCanonicalLocation: function(p) {\n            o.canonical = j(p);\n            return o;\n        },\n        notify: function(p) {\n            if (((p == o.orig_fragment))) {\n                p = o.canonical.getFragment();\n            }\n        ;\n        ;\n            for (var q = 0; ((q < o.callbacks.length)); q++) {\n                try {\n                    if (o.callbacks[q](p)) {\n                        return true;\n                    }\n                ;\n                ;\n                } catch (r) {\n                \n                };\n            ;\n            };\n        ;\n            return false;\n        },\n        checkURI: function() {\n            if (((((JSBNG__Date.now() - o.lastChanged)) < 400))) {\n                return;\n            }\n        ;\n        ;\n            if (((window.JSBNG__history && JSBNG__history.pushState))) {\n                var p = j(JSBNG__document.JSBNG__URL).removeQueryData(\"ref\").toString(), q = j(o.lastURI).removeQueryData(\"ref\").toString();\n                if (((p != q))) {\n                    o.lastChanged = JSBNG__Date.now();\n                    o.lastURI = p;\n                    if (((k.webkit() < 534))) {\n                        o._updateRefererURI(p);\n                    }\n                ;\n                ;\n                    o.notify(j(p).getUnqualifiedURI().toString());\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            if (((((k.ie() < 8)) && o.iframeQueue.length))) {\n                return;\n            }\n        ;\n        ;\n            if (((k.webkit() && ((window.JSBNG__history.length == 200))))) {\n                if (!o.warned) {\n                    o.warned = true;\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            var r = j().getFragment();\n            if (((r.charAt(0) == \"!\"))) {\n                r = r.substr(1);\n            }\n        ;\n        ;\n            if (((k.ie() < 8))) {\n                r = o.getIframeSrcFragment();\n            }\n        ;\n        ;\n            r = r.replace(/%23/g, \"#\");\n            if (((r != o.fragment.replace(/%23/g, \"#\")))) {\n                o.debug([r,\" vs \",o.fragment,\"whl: \",window.JSBNG__history.length,\"QHL: \",o.JSBNG__history.length,].join(\" \"));\n                for (var s = ((o.JSBNG__history.length - 1)); ((s >= 0)); --s) {\n                    if (((o.JSBNG__history[s].getFragment().replace(/%23/g, \"#\") == r))) {\n                        break;\n                    }\n                ;\n                ;\n                };\n            ;\n                ++o.user;\n                if (((s >= 0))) {\n                    o.go(((s - o.current)));\n                }\n                 else o.go(((\"#\" + r)));\n            ;\n            ;\n                --o.user;\n            }\n        ;\n        ;\n        },\n        _updateRefererURI: function(p) {\n            p = p.toString();\n            if (((((p.charAt(0) != \"/\")) && ((p.indexOf(\"//\") == -1))))) {\n                return;\n            }\n        ;\n        ;\n            var q = new j(window.JSBNG__location);\n            if (q.isFacebookURI()) {\n                var r = ((q.getPath() + window.JSBNG__location.search));\n            }\n             else var r = \"\"\n        ;\n            var s = j(p).getQualifiedURI().setFragment(r).toString(), t = 2048;\n            if (((s.length > t))) {\n                s = ((s.substring(0, t) + \"...\"));\n            }\n        ;\n        ;\n            h.set(\"x-referer\", s);\n        },\n        go: function(p, q, r) {\n            if (((window.JSBNG__history && JSBNG__history.pushState))) {\n                ((q || ((typeof (p) == \"number\"))));\n                var s = j(p).removeQueryData(\"ref\").toString();\n                o.lastChanged = JSBNG__Date.now();\n                this.lastURI = s;\n                if (r) {\n                    window.JSBNG__history.replaceState(p, null, s);\n                }\n                 else window.JSBNG__history.pushState(p, null, s);\n            ;\n            ;\n                if (((k.webkit() < 534))) {\n                    o._updateRefererURI(p);\n                }\n            ;\n            ;\n                return false;\n            }\n        ;\n        ;\n            o.debug(((\"go: \" + p)));\n            if (((q === undefined))) {\n                q = true;\n            }\n        ;\n        ;\n            if (!o.enabled) {\n                if (!q) {\n                    return false;\n                }\n            ;\n            }\n        ;\n        ;\n            if (((typeof (p) == \"number\"))) {\n                if (!p) {\n                    return false;\n                }\n            ;\n            ;\n                var t = ((p + o.current)), u = Math.max(0, Math.min(((o.JSBNG__history.length - 1)), t));\n                o.current = u;\n                t = ((o.JSBNG__history[u].getFragment() || o.orig_fragment));\n                t = j(t).removeQueryData(\"ref\").getUnqualifiedURI().toString();\n                o.fragment = t;\n                o.lastChanged = JSBNG__Date.now();\n                if (((k.ie() < 8))) {\n                    if (o.fragmentTimeout) {\n                        JSBNG__clearTimeout(o.fragmentTimeout);\n                    }\n                ;\n                ;\n                    o._temporary_fragment = t;\n                    o.fragmentTimeout = JSBNG__setTimeout(function() {\n                        window.JSBNG__location.hash = ((\"#!\" + t));\n                        delete o._temporary_fragment;\n                    }, 750, false);\n                    if (!o.user) {\n                        o.nextframe(t, r);\n                    }\n                ;\n                ;\n                }\n                 else if (!o.user) {\n                    n(window.JSBNG__location, ((((window.JSBNG__location.href.split(\"#\")[0] + \"#!\")) + t)), r);\n                }\n                \n            ;\n            ;\n                if (q) {\n                    o.notify(t);\n                }\n            ;\n            ;\n                o._updateRefererURI(t);\n                return false;\n            }\n        ;\n        ;\n            p = j(p);\n            if (((p.getDomain() == j().getDomain()))) {\n                p = j(((\"#\" + p.getUnqualifiedURI())));\n            }\n        ;\n        ;\n            var v = o.JSBNG__history[o.current].getFragment(), w = p.getFragment();\n            if (((((w == v)) || ((((v == o.orig_fragment)) && ((w == o.canonical.getFragment()))))))) {\n                if (q) {\n                    o.notify(w);\n                }\n            ;\n            ;\n                o._updateRefererURI(w);\n                return false;\n            }\n        ;\n        ;\n            if (r) {\n                o.current--;\n            }\n        ;\n        ;\n            var x = ((((o.JSBNG__history.length - o.current)) - 1));\n            o.JSBNG__history.splice(((o.current + 1)), x);\n            o.JSBNG__history.push(j(p));\n            return o.go(1, q, r);\n        },\n        getCurrentFragment: function() {\n            var p = ((((o._temporary_fragment !== undefined)) ? o._temporary_fragment : j.getRequestURI(false).getFragment()));\n            return ((((p == o.orig_fragment)) ? o.canonical.getFragment() : p));\n        }\n    };\n    e.exports = o;\n});\n__d(\"InputSelection\", [\"DOM\",\"Focus\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Focus\"), i = {\n        get: function(j) {\n            if (!JSBNG__document.selection) {\n                return {\n                    start: j.selectionStart,\n                    end: j.selectionEnd\n                };\n            }\n        ;\n        ;\n            var k = JSBNG__document.selection.createRange();\n            if (((k.parentElement() !== j))) {\n                return {\n                    start: 0,\n                    end: 0\n                };\n            }\n        ;\n        ;\n            var l = j.value.length;\n            if (g.isNodeOfType(j, \"input\")) {\n                return {\n                    start: -k.moveStart(\"character\", -l),\n                    end: -k.moveEnd(\"character\", -l)\n                };\n            }\n             else {\n                var m = k.duplicate();\n                m.moveToElementText(j);\n                m.setEndPoint(\"StartToEnd\", k);\n                var n = ((l - m.text.length));\n                m.setEndPoint(\"StartToStart\", k);\n                return {\n                    start: ((l - m.text.length)),\n                    end: n\n                };\n            }\n        ;\n        ;\n        },\n        set: function(j, k, l) {\n            if (((typeof l == \"undefined\"))) {\n                l = k;\n            }\n        ;\n        ;\n            if (JSBNG__document.selection) {\n                if (((j.tagName == \"TEXTAREA\"))) {\n                    var m = ((j.value.slice(0, k).match(/\\r/g) || [])).length, n = ((j.value.slice(k, l).match(/\\r/g) || [])).length;\n                    k -= m;\n                    l -= ((m + n));\n                }\n            ;\n            ;\n                var o = j.createTextRange();\n                o.collapse(true);\n                o.moveStart(\"character\", k);\n                o.moveEnd(\"character\", ((l - k)));\n                o.select();\n            }\n             else {\n                j.selectionStart = k;\n                j.selectionEnd = Math.min(l, j.value.length);\n                h.set(j);\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = i;\n});\n__d(\"JSONPTransport\", [\"ArbiterMixin\",\"DOM\",\"HTML\",\"URI\",\"asyncCallback\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"URI\"), k = b(\"asyncCallback\"), l = b(\"copyProperties\"), m = {\n    }, n = 2, o = \"jsonp\", p = \"div\";\n    function q(s) {\n        delete m[s];\n    };\n;\n    function r(s, t) {\n        this._type = s;\n        this._uri = t;\n        m[this.getID()] = this;\n    };\n;\n    l(r, {\n        respond: function(s, t, u) {\n            var v = m[s];\n            if (v) {\n                if (!u) {\n                    q(s);\n                }\n            ;\n            ;\n                if (((v._type == p))) {\n                    t = JSON.parse(JSON.stringify(t));\n                }\n            ;\n            ;\n                k(v.handleResponse.bind(v), \"json\")(t);\n            }\n             else {\n                var w = a.ErrorSignal;\n                if (((w && !u))) {\n                    w.logJSError(\"ajax\", {\n                        error: \"UnexpectedJsonResponse\",\n                        extra: {\n                            id: s,\n                            uri: ((((t.payload && t.payload.uri)) || \"\"))\n                        }\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    l(r.prototype, g, {\n        getID: function() {\n            return ((this._id || (this._id = n++)));\n        },\n        hasFinished: function() {\n            return !((this.getID() in m));\n        },\n        getRequestURI: function() {\n            return j(this._uri).addQueryData({\n                __a: 1,\n                __adt: this.getID(),\n                __req: ((\"jsonp_\" + this.getID()))\n            });\n        },\n        getTransportFrame: function() {\n            if (this._iframe) {\n                return this._iframe;\n            }\n        ;\n        ;\n            var s = ((\"transport_frame_\" + this.getID())), t = i(((((\"\\u003Ciframe class=\\\"hidden_elem\\\" name=\\\"\" + s)) + \"\\\" src=\\\"javascript:void(0)\\\" /\\u003E\")));\n            return this._iframe = h.appendContent(JSBNG__document.body, t)[0];\n        },\n        send: function() {\n            if (((this._type === o))) {\n                (function() {\n                    h.appendContent(JSBNG__document.body, h.create(\"script\", {\n                        src: this.getRequestURI().toString(),\n                        type: \"text/javascript\"\n                    }));\n                }).bind(this).defer();\n            }\n             else this.getTransportFrame().src = this.getRequestURI().toString();\n        ;\n        ;\n        },\n        handleResponse: function(s) {\n            this.inform(\"response\", s);\n            if (this.hasFinished()) {\n                this._cleanup.bind(this).defer();\n            }\n        ;\n        ;\n        },\n        abort: function() {\n            if (this._aborted) {\n                return;\n            }\n        ;\n        ;\n            this._aborted = true;\n            this._cleanup();\n            q(this.getID());\n            this.inform(\"abort\");\n        },\n        _cleanup: function() {\n            if (this._iframe) {\n                h.remove(this._iframe);\n                this._iframe = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = r;\n});\n__d(\"JSXDOM\", [\"DOM\",\"flattenArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"flattenArray\"), i = [\"a\",\"br\",\"button\",\"canvas\",\"checkbox\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"div\",\"img\",\"input\",\"label\",\"li\",\"option\",\"p\",\"pre\",\"select\",\"span\",\"strong\",\"table\",\"tbody\",\"thead\",\"td\",\"textarea\",\"th\",\"tr\",\"ul\",\"video\",], j = {\n    };\n    i.forEach(function(k) {\n        var l = function(m, n) {\n            if (((arguments.length > 2))) {\n                n = Array.prototype.slice.call(arguments, 1);\n            }\n        ;\n        ;\n            if (((!n && m))) {\n                n = m.children;\n                delete m.children;\n            }\n        ;\n        ;\n            if (n) {\n                n = ((Array.isArray(n) ? h(n) : h([n,])));\n            }\n        ;\n        ;\n            return g.create(k, m, n);\n        };\n        j[k] = l;\n    });\n    e.exports = j;\n});\n__d(\"LinkController\", [\"JSBNG__Event\",\"DataStore\",\"Parent\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DataStore\"), i = b(\"Parent\"), j = b(\"trackReferrer\"), k = \"LinkControllerHandler\", l = [], m = [];\n    function n(JSBNG__event) {\n        var r = i.byTag(JSBNG__event.getTarget(), \"a\"), s = ((r && r.getAttribute(\"href\", 2)));\n        if (((((((!s || r.rel)) || !p(s))) || h.get(r, k)))) {\n            return;\n        }\n    ;\n    ;\n        var t = g.listen(r, \"click\", function(u) {\n            if (((s.charAt(((s.length - 1))) == \"#\"))) {\n                u.prevent();\n                return;\n            }\n        ;\n        ;\n            j(r, s);\n            o(r, u);\n        });\n        h.set(r, k, t);\n    };\n;\n    function o(r, JSBNG__event) {\n        if (((((((r.target || r.rel)) || JSBNG__event.getModifiers().any)) || ((JSBNG__event.which && ((JSBNG__event.which != 1))))))) {\n            return;\n        }\n    ;\n    ;\n        var s = l.concat(m);\n        for (var t = 0, u = s.length; ((t < u)); t++) {\n            if (((s[t](r, JSBNG__event) === false))) {\n                return JSBNG__event.prevent();\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function p(r) {\n        var s = r.match(/^(\\w+):/);\n        return ((!s || s[1].match(/^http/i)));\n    };\n;\n    var q = {\n        registerHandler: function(r) {\n            l.push(r);\n        },\n        registerFallbackHandler: function(r) {\n            m.push(r);\n        }\n    };\n    g.listen(JSBNG__document.documentElement, \"mousedown\", n);\n    g.listen(JSBNG__document.documentElement, \"keydown\", n);\n    e.exports = q;\n});\n__d(\"MenuDeprecated\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"Keys\",\"Parent\",\"Style\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"Parent\"), o = b(\"Style\"), p = b(\"UserAgent\"), q = b(\"copyProperties\"), r = b(\"emptyFunction\"), s = \"menu:mouseover\", t = null;\n    function u(ea) {\n        if (i.hasClass(ea, \"uiMenuContainer\")) {\n            return ea;\n        }\n    ;\n    ;\n        return n.byClass(ea, \"uiMenu\");\n    };\n;\n    function v(ea) {\n        return n.byClass(ea, \"uiMenuItem\");\n    };\n;\n    function w(ea) {\n        if (JSBNG__document.activeElement) {\n            var fa = v(JSBNG__document.activeElement);\n            return ea.indexOf(fa);\n        }\n    ;\n    ;\n        return -1;\n    };\n;\n    function x(ea) {\n        return k.JSBNG__find(ea, \"a.itemAnchor\");\n    };\n;\n    function y(ea) {\n        return i.hasClass(ea, \"checked\");\n    };\n;\n    function z(ea) {\n        return ((!i.hasClass(ea, \"disabled\") && ((o.get(ea, \"display\") !== \"none\"))));\n    };\n;\n    function aa(JSBNG__event) {\n        var ea = JSBNG__document.activeElement;\n        if (((((!ea || !n.byClass(ea, \"uiMenu\"))) || !k.isInputNode(ea)))) {\n            var fa = v(JSBNG__event.getTarget());\n            ((fa && da.focusItem(fa)));\n        }\n    ;\n    ;\n    };\n;\n    function ba(ea) {\n        ((p.firefox() && x(ea).JSBNG__blur()));\n        da.inform(\"select\", {\n            menu: u(ea),\n            item: ea\n        });\n    };\n;\n    var ca = function() {\n        ca = r;\n        var ea = {\n        };\n        ea.click = function(JSBNG__event) {\n            var fa = v(JSBNG__event.getTarget());\n            if (((fa && z(fa)))) {\n                ba(fa);\n                var ga = x(fa), ha = ga.href, ia = ga.getAttribute(\"rel\");\n                return ((((ia && ((ia !== \"ignore\")))) || ((ha && ((ha.charAt(((ha.length - 1))) !== \"#\"))))));\n            }\n        ;\n        ;\n        };\n        ea.keydown = function(JSBNG__event) {\n            var fa = JSBNG__event.getTarget();\n            if (JSBNG__event.getModifiers().any) {\n                return;\n            }\n        ;\n        ;\n            if (((!t || k.isInputNode(fa)))) {\n                return;\n            }\n        ;\n        ;\n            var ga = g.getKeyCode(JSBNG__event), ha;\n            switch (ga) {\n              case m.UP:\n            \n              case m.DOWN:\n                var ia = da.getEnabledItems(t);\n                ha = w(ia);\n                da.focusItem(ia[((ha + ((((ga === m.UP)) ? -1 : 1))))]);\n                return false;\n              case m.SPACE:\n                var ja = v(fa);\n                if (ja) {\n                    ba(ja);\n                    JSBNG__event.prevent();\n                }\n            ;\n            ;\n                break;\n              default:\n                var ka = String.fromCharCode(ga).toLowerCase(), la = da.getEnabledItems(t);\n                ha = w(la);\n                var ma = ha, na = la.length;\n                while (((((~ha && (((ma = ((++ma % na))) !== ha)))) || ((!~ha && ((++ma < na))))))) {\n                    var oa = da.getItemLabel(la[ma]);\n                    if (((oa && ((oa.charAt(0).toLowerCase() === ka))))) {\n                        da.focusItem(la[ma]);\n                        return false;\n                    }\n                ;\n                ;\n                };\n            ;\n            };\n        ;\n        };\n        g.listen(JSBNG__document.body, ea);\n    }, da = q(new h(), {\n        focusItem: function(ea) {\n            if (((ea && z(ea)))) {\n                this._removeSelected(u(ea));\n                i.addClass(ea, \"selected\");\n                x(ea).JSBNG__focus();\n            }\n        ;\n        ;\n        },\n        getEnabledItems: function(ea) {\n            return da.getItems(ea).filter(z);\n        },\n        getCheckedItems: function(ea) {\n            return da.getItems(ea).filter(y);\n        },\n        getItems: function(ea) {\n            return k.scry(ea, \"li.uiMenuItem\");\n        },\n        getItemLabel: function(ea) {\n            return ((ea.getAttribute(\"data-label\", 2) || \"\"));\n        },\n        isItemChecked: function(ea) {\n            return i.hasClass(ea, \"checked\");\n        },\n        autoregister: function(ea, fa, ga) {\n            ea.subscribe(\"show\", function() {\n                da.register(fa, ga);\n            });\n            ea.subscribe(\"hide\", function() {\n                da.unregister(fa);\n            });\n        },\n        register: function(ea, fa) {\n            ea = u(ea);\n            ca();\n            if (!j.get(ea, s)) {\n                j.set(ea, s, g.listen(ea, \"mouseover\", aa));\n            }\n        ;\n        ;\n            if (((fa !== false))) {\n                t = ea;\n            }\n        ;\n        ;\n        },\n        setItemEnabled: function(ea, fa) {\n            if (((!fa && !k.scry(ea, \"span.disabledAnchor\")[0]))) {\n                k.appendContent(ea, k.create(\"span\", {\n                    className: ((k.JSBNG__find(ea, \"a\").className + \" disabledAnchor\"))\n                }, l(x(ea).innerHTML)));\n            }\n        ;\n        ;\n            i.conditionClass(ea, \"disabled\", !fa);\n        },\n        toggleItem: function(ea) {\n            var fa = !da.isItemChecked(ea);\n            da.setItemChecked(ea, fa);\n        },\n        setItemChecked: function(ea, fa) {\n            i.conditionClass(ea, \"checked\", fa);\n            x(ea).setAttribute(\"aria-checked\", fa);\n        },\n        unregister: function(ea) {\n            ea = u(ea);\n            var fa = j.remove(ea, s);\n            ((fa && fa.remove()));\n            t = null;\n            this._removeSelected(ea);\n        },\n        _removeSelected: function(ea) {\n            da.getItems(ea).filter(function(fa) {\n                return i.hasClass(fa, \"selected\");\n            }).forEach(function(fa) {\n                i.removeClass(fa, \"selected\");\n            });\n        }\n    });\n    e.exports = da;\n});\n__d(\"coalesce\", [], function(a, b, c, d, e, f) {\n    function g() {\n        for (var h = 0; ((h < arguments.length)); ++h) {\n            if (((arguments[h] != null))) {\n                return arguments[h];\n            }\n        ;\n        ;\n        };\n    ;\n        return null;\n    };\n;\n    e.exports = g;\n});\n__d(\"OnVisible\", [\"Arbiter\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Run\",\"Vector\",\"ViewportBounds\",\"coalesce\",\"copyProperties\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"Parent\"), k = b(\"Run\"), l = b(\"Vector\"), m = b(\"ViewportBounds\"), n = b(\"coalesce\"), o = b(\"copyProperties\"), p = b(\"queryThenMutateDOM\"), q = [], r, s = 0, t = [], u, v, w, x, y;\n    function z() {\n        q.forEach(function(fa) {\n            fa.remove();\n        });\n        if (v) {\n            v.remove();\n            u.remove();\n            r.unsubscribe();\n            v = u = r = null;\n        }\n    ;\n    ;\n        s = 0;\n        q.length = 0;\n    };\n;\n    function aa() {\n        if (!q.length) {\n            z();\n            return;\n        }\n    ;\n    ;\n        t.length = 0;\n        w = l.getScrollPosition().y;\n        x = l.getViewportDimensions().y;\n        y = m.getTop();\n        for (var fa = 0; ((fa < q.length)); ++fa) {\n            var ga = q[fa];\n            if (isNaN(ga.elementHeight)) {\n                t.push(fa);\n            }\n        ;\n        ;\n            ga.elementHeight = l.getElementDimensions(ga.element).y;\n            ga.elementPos = l.getElementPosition(ga.element);\n            ga.hidden = j.byClass(ga.element, \"hidden_elem\");\n            if (ga.scrollArea) {\n                ga.scrollAreaHeight = l.getElementDimensions(ga.scrollArea).y;\n                ga.scrollAreaY = l.getElementPosition(ga.scrollArea).y;\n            }\n        ;\n        ;\n        };\n    ;\n        s = fa;\n    };\n;\n    function ba() {\n        for (var fa = ((Math.min(q.length, s) - 1)); ((fa >= 0)); --fa) {\n            var ga = q[fa];\n            if (((((!ga.elementPos || ga.removed)) || ga.hidden))) {\n                q.splice(fa, 1);\n                continue;\n            }\n        ;\n        ;\n            var ha = ((((w + x)) + ga.buffer)), ia = false;\n            if (((ha > ga.elementPos.y))) {\n                var ja = ((!ga.strict || ((((((w + y)) - ga.buffer)) < ((ga.elementPos.y + ga.elementHeight))))));\n                ia = ja;\n                if (((ia && ga.scrollArea))) {\n                    var ka = ((((ga.scrollAreaY + ga.scrollAreaHeight)) + ga.buffer));\n                    ia = ((((ga.elementPos.y > ((ga.scrollAreaY - ga.buffer)))) && ((ga.elementPos.y < ka))));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((ga.inverse ? !ia : ia))) {\n                ga.remove();\n                ga.handler(((t.indexOf(fa) !== -1)));\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function ca() {\n        da();\n        if (q.length) {\n            return;\n        }\n    ;\n    ;\n        v = i.listen(window, \"JSBNG__scroll\", da);\n        u = i.listen(window, \"resize\", da);\n        r = g.subscribe(\"dom-scroll\", da);\n    };\n;\n    function da() {\n        p(aa, ba, \"OnVisible/positionCheck\");\n    };\n;\n    function ea(fa, ga, ha, ia, ja, ka) {\n        this.element = fa;\n        this.handler = ga;\n        this.strict = ha;\n        this.buffer = n(ia, 300);\n        this.inverse = n(ja, false);\n        this.scrollArea = ((ka || null));\n        if (this.scrollArea) {\n            this.scrollAreaListener = i.listen(h.JSBNG__find(ka, \".uiScrollableAreaWrap\"), \"JSBNG__scroll\", this.checkBuffer);\n        }\n    ;\n    ;\n        if (((q.length === 0))) {\n            k.onLeave(z);\n        }\n    ;\n    ;\n        ca();\n        q.push(this);\n    };\n;\n    o(ea, {\n        checkBuffer: da\n    });\n    o(ea.prototype, {\n        remove: function() {\n            this.removed = true;\n            if (this.scrollAreaListener) {\n                this.scrollAreaListener.remove();\n            }\n        ;\n        ;\n        },\n        reset: function() {\n            this.elementHeight = null;\n            this.removed = false;\n            ((((q.indexOf(this) === -1)) && q.push(this)));\n            ca();\n        },\n        setBuffer: function(fa) {\n            this.buffer = fa;\n            da();\n        },\n        checkBuffer: function() {\n            da();\n        }\n    });\n    e.exports = ea;\n});\n__d(\"OnloadHooks\", [\"Arbiter\",\"ErrorUtils\",\"InitialJSLoader\",\"OnloadEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"InitialJSLoader\"), j = b(\"OnloadEvent\");\n    function k() {\n        var r = a.CavalryLogger;\n        if (((!window.loaded && r))) {\n            r.getInstance().setTimeStamp(\"t_prehooks\");\n        }\n    ;\n    ;\n        n(\"onloadhooks\");\n        if (((!window.loaded && r))) {\n            r.getInstance().setTimeStamp(\"t_hooks\");\n        }\n    ;\n    ;\n        window.loaded = true;\n        g.inform(\"uipage_onload\", true, g.BEHAVIOR_STATE);\n    };\n;\n    function l() {\n        n(\"onafterloadhooks\");\n        window.afterloaded = true;\n    };\n;\n    function m(r, s) {\n        return h.applyWithGuard(r, null, null, function(t) {\n            t.event_type = s;\n            t.category = \"runhook\";\n        });\n    };\n;\n    function n(r) {\n        var s = ((((r == \"onbeforeleavehooks\")) || ((r == \"onbeforeunloadhooks\"))));\n        do {\n            var t = window[r];\n            if (!t) {\n                break;\n            }\n        ;\n        ;\n            if (!s) {\n                window[r] = null;\n            }\n        ;\n        ;\n            for (var u = 0; ((u < t.length)); u++) {\n                var v = m(t[u], r);\n                if (((s && v))) {\n                    return v;\n                }\n            ;\n            ;\n            };\n        ;\n        } while (((!s && window[r])));\n    };\n;\n    function o() {\n        if (!window.loaded) {\n            window.loaded = true;\n            n(\"onloadhooks\");\n        }\n    ;\n    ;\n        if (!window.afterloaded) {\n            window.afterloaded = true;\n            n(\"onafterloadhooks\");\n        }\n    ;\n    ;\n    };\n;\n    function p() {\n        g.registerCallback(k, [j.ONLOAD_DOMCONTENT_CALLBACK,i.INITIAL_JS_READY,]);\n        g.registerCallback(l, [j.ONLOAD_DOMCONTENT_CALLBACK,j.ONLOAD_CALLBACK,i.INITIAL_JS_READY,]);\n        g.subscribe(j.ONBEFOREUNLOAD, function(r, s) {\n            s.warn = ((n(\"onbeforeleavehooks\") || n(\"onbeforeunloadhooks\")));\n            if (!s.warn) {\n                window.loaded = false;\n                window.afterloaded = false;\n            }\n        ;\n        ;\n        }, g.SUBSCRIBE_NEW);\n        g.subscribe(j.ONUNLOAD, function(r, s) {\n            n(\"onunloadhooks\");\n            n(\"onafterunloadhooks\");\n        }, g.SUBSCRIBE_NEW);\n    };\n;\n    var q = {\n        _onloadHook: k,\n        _onafterloadHook: l,\n        runHook: m,\n        runHooks: n,\n        keepWindowSetAsLoaded: o\n    };\n    p();\n    a.OnloadHooks = e.exports = q;\n});\n__d(\"areEqual\", [], function(a, b, c, d, e, f) {\n    var g = function(k, l, m, n) {\n        if (((k === l))) {\n            return ((((k !== 0)) || ((((1 / k)) == ((1 / l))))));\n        }\n    ;\n    ;\n        if (((((k == null)) || ((l == null))))) {\n            return false;\n        }\n    ;\n    ;\n        if (((((typeof k != \"object\")) || ((typeof l != \"object\"))))) {\n            return false;\n        }\n    ;\n    ;\n        var o = Object.prototype.toString, p = o.call(k);\n        if (((p != o.call(l)))) {\n            return false;\n        }\n    ;\n    ;\n        switch (p) {\n          case \"[object String]\":\n            return ((k == String(l)));\n          case \"[object Number]\":\n            return ((((isNaN(k) || isNaN(l))) ? false : ((k == Number(l)))));\n          case \"[object Date]\":\n        \n          case \"[object Boolean]\":\n            return ((+k == +l));\n          case \"[object RegExp]\":\n            return ((((((((k.source == l.source)) && ((k.global == l.global)))) && ((k.multiline == l.multiline)))) && ((k.ignoreCase == l.ignoreCase))));\n        };\n    ;\n        var q = m.length;\n        while (q--) {\n            if (((m[q] == k))) {\n                return ((n[q] == l));\n            }\n        ;\n        ;\n        };\n    ;\n        m.push(k);\n        n.push(l);\n        var r = 0;\n        if (((p === \"[object Array]\"))) {\n            r = k.length;\n            if (((r !== l.length))) {\n                return false;\n            }\n        ;\n        ;\n            while (r--) {\n                if (!g(k[r], l[r], m, n)) {\n                    return false;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n         else {\n            if (((k.constructor !== l.constructor))) {\n                return false;\n            }\n        ;\n        ;\n            if (((k.hasOwnProperty(\"valueOf\") && l.hasOwnProperty(\"valueOf\")))) {\n                return ((k.valueOf() == l.valueOf()));\n            }\n        ;\n        ;\n            var s = Object.keys(k);\n            if (((s.length != Object.keys(l).length))) {\n                return false;\n            }\n        ;\n        ;\n            for (var t = 0; ((t < s.length)); t++) {\n                if (!g(k[s[t]], l[s[t]], m, n)) {\n                    return false;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n    ;\n    ;\n        m.pop();\n        n.pop();\n        return true;\n    }, h = [], i = [], j = function(k, l) {\n        var m = ((h.length ? h.pop() : [])), n = ((i.length ? i.pop() : [])), o = g(k, l, m, n);\n        m.length = 0;\n        n.length = 0;\n        h.push(m);\n        i.push(n);\n        return o;\n    };\n    e.exports = j;\n});\n__d(\"computeRelativeURI\", [\"URI\",\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = b(\"isEmpty\");\n    function i(k, l) {\n        if (!l) {\n            return k;\n        }\n    ;\n    ;\n        if (((l.charAt(0) == \"/\"))) {\n            return l;\n        }\n    ;\n    ;\n        var m = k.split(\"/\").slice(0, -1);\n        ((m[0] !== \"\"));\n        l.split(\"/\").forEach(function(n) {\n            if (!((n == \".\"))) {\n                if (((n == \"..\"))) {\n                    if (((m.length > 1))) {\n                        m = m.slice(0, -1);\n                    }\n                ;\n                ;\n                }\n                 else m.push(n);\n            ;\n            }\n        ;\n        ;\n        });\n        return m.join(\"/\");\n    };\n;\n    function j(k, l) {\n        var m = new g(), n = l;\n        k = new g(k);\n        l = new g(l);\n        if (((l.getDomain() && !l.isFacebookURI()))) {\n            return n;\n        }\n    ;\n    ;\n        var o = k, p = [\"Protocol\",\"Domain\",\"Port\",\"Path\",\"QueryData\",\"Fragment\",];\n        p.forEach(function(q) {\n            var r = ((((q == \"Path\")) && ((o === k))));\n            if (r) {\n                m.setPath(i(k.getPath(), l.getPath()));\n            }\n        ;\n        ;\n            if (!h(l[((\"get\" + q))]())) {\n                o = l;\n            }\n        ;\n        ;\n            if (!r) {\n                m[((\"set\" + q))](o[((\"get\" + q))]());\n            }\n        ;\n        ;\n        });\n        return m;\n    };\n;\n    e.exports = j;\n});\n__d(\"escapeJSQuotes\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        if (((((((typeof h == \"undefined\")) || ((h == null)))) || !h.valueOf()))) {\n            return \"\";\n        }\n    ;\n    ;\n        return h.toString().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\"/g, \"\\\\x22\").replace(/'/g, \"\\\\'\").replace(/</g, \"\\\\x3c\").replace(/>/g, \"\\\\x3e\").replace(/&/g, \"\\\\x26\");\n    };\n;\n    e.exports = g;\n});\n__d(\"PageTransitions\", [\"Arbiter\",\"Dialog\",\"DOMQuery\",\"DOMScroll\",\"Env\",\"JSBNG__Event\",\"Form\",\"HistoryManager\",\"JSLogger\",\"LinkController\",\"OnloadHooks\",\"Parent\",\"URI\",\"UserAgent\",\"Vector\",\"areEqual\",\"clickRefAction\",\"computeRelativeURI\",\"copyProperties\",\"escapeJSQuotes\",\"ge\",\"goOrReplace\",\"htmlize\",\"setTimeoutAcrossTransitions\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Dialog\"), i = b(\"DOMQuery\"), j = b(\"DOMScroll\"), k = b(\"Env\"), l = b(\"JSBNG__Event\"), m = b(\"Form\"), n = b(\"HistoryManager\"), o = b(\"JSLogger\"), p = b(\"LinkController\"), q = b(\"OnloadHooks\"), r = b(\"Parent\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"areEqual\"), w = b(\"clickRefAction\"), x = b(\"computeRelativeURI\"), y = b(\"copyProperties\"), z = b(\"escapeJSQuotes\"), aa = b(\"ge\"), ba = b(\"goOrReplace\"), ca = b(\"htmlize\"), da = b(\"setTimeoutAcrossTransitions\"), ea = b(\"startsWith\"), fa = b(\"tx\"), ga = b(\"userAction\"), ha = {\n    };\n    function ia(ta, ua) {\n        ha[ta.getUnqualifiedURI()] = ua;\n    };\n;\n    function ja(ta) {\n        return ha[ta.getUnqualifiedURI()];\n    };\n;\n    function ka(ta) {\n        delete ha[ta.getUnqualifiedURI()];\n    };\n;\n    var la = null, ma = null;\n    function na(ta) {\n        ma = ta;\n        da(function() {\n            ma = null;\n        }, 0);\n    };\n;\n    function oa(JSBNG__event) {\n        if (ma) {\n            if (!JSBNG__event.isDefaultPrevented()) {\n                pa(ma);\n                sa.lookBusy(ma);\n                ra.go(ma.getAttribute(\"href\"));\n            }\n        ;\n        ;\n            JSBNG__event.prevent();\n        }\n         else {\n            la = JSBNG__event.getTarget();\n            da(function() {\n                la = null;\n            }, 0);\n        }\n    ;\n    ;\n    };\n;\n    function pa(ta) {\n        var ua = ta.getAttribute(\"href\"), va = x(ra._most_recent_uri.getQualifiedURI(), ua).toString();\n        if (((ua != va))) {\n            ta.setAttribute(\"href\", va);\n        }\n    ;\n    ;\n    };\n;\n    function qa(JSBNG__event) {\n        var ta = JSBNG__event.getTarget();\n        if (((m.getAttribute(ta, \"rel\") || m.getAttribute(ta, \"target\")))) {\n            return;\n        }\n    ;\n    ;\n        w(\"form\", ta, JSBNG__event).set_namespace(\"page_transition\");\n        var ua = ga(\"page_transitions\", ta, JSBNG__event, {\n            mode: \"DEDUP\"\n        }).uai_fallback(null, \"form\"), va = a.ArbiterMonitor;\n        if (va) {\n            va.initUA(ua, [ta,]);\n        }\n    ;\n    ;\n        var wa = new s(((m.getAttribute(ta, \"action\") || \"\"))), xa = x(ra._most_recent_uri, wa);\n        ta.setAttribute(\"action\", xa.toString());\n        if (((((m.getAttribute(ta, \"method\") || \"GET\")).toUpperCase() === \"GET\"))) {\n            var ya = m.serialize(ta), za = la;\n            if (((((za && ((((i.isNodeOfType(za, \"input\") && ((za.type === \"submit\")))) || (za = r.byTag(za, \"button\")))))) && za.JSBNG__name))) {\n                ya[za.JSBNG__name] = za.value;\n            }\n        ;\n        ;\n            ra.go(xa.addQueryData(ya));\n            JSBNG__event.kill();\n        }\n    ;\n    ;\n    };\n;\n    var ra = {\n        _transition_handlers: [],\n        _scroll_locked: false,\n        isInitialized: function() {\n            return !!ra._initialized;\n        },\n        _init: function() {\n            if (k.DISABLE_PAGE_TRANSITIONS) {\n                return;\n            }\n        ;\n        ;\n            if (((!k.ALLOW_TRANSITION_IN_IFRAME && ((window != window.JSBNG__top))))) {\n                return;\n            }\n        ;\n        ;\n            if (ra._initialized) {\n                return ra;\n            }\n        ;\n        ;\n            ra._initialized = true;\n            var ta = s.getRequestURI(false), ua = ta.getUnqualifiedURI(), va = s(ua).setFragment(null), wa = ua.getFragment();\n            if (((((wa.charAt(0) === \"!\")) && ((va.toString() === wa.substr(1)))))) {\n                ua = va;\n            }\n        ;\n        ;\n            y(ra, {\n                _current_uri: ua,\n                _most_recent_uri: ua,\n                _next_uri: ua\n            });\n            var xa;\n            if (ea(ta.getFragment(), \"/\")) {\n                xa = ta.getFragment();\n            }\n             else xa = ua;\n        ;\n        ;\n            n.init().setCanonicalLocation(((\"#\" + xa))).registerURIHandler(ra._historyManagerHandler);\n            p.registerFallbackHandler(na);\n            l.listen(JSBNG__document, \"click\", oa, l.Priority._BUBBLE);\n            l.listen(JSBNG__document, \"submit\", qa, l.Priority._BUBBLE);\n            l.listen(window, \"JSBNG__scroll\", function() {\n                if (!ra._scroll_locked) {\n                    ia(ra._current_uri, u.getScrollPosition());\n                }\n            ;\n            ;\n            });\n            return ra;\n        },\n        registerHandler: function(ta, ua) {\n            ra._init();\n            ua = ((ua || 5));\n            if (!ra._transition_handlers[ua]) {\n                ra._transition_handlers[ua] = [];\n            }\n        ;\n        ;\n            ra._transition_handlers[ua].push(ta);\n        },\n        getCurrentURI: function(ta) {\n            if (((!ra._current_uri && !ta))) {\n                return new s(ra._most_recent_uri);\n            }\n        ;\n        ;\n            return new s(ra._current_uri);\n        },\n        getMostRecentURI: function() {\n            return new s(ra._most_recent_uri);\n        },\n        getNextURI: function() {\n            return new s(ra._next_uri);\n        },\n        go: function(ta, ua) {\n            var va = new s(ta).removeQueryData(\"quickling\").getQualifiedURI();\n            o.create(\"pagetransition\").debug(\"go\", {\n                uri: va.toString()\n            });\n            ka(va);\n            ((!ua && w(\"uri\", {\n                href: va.toString()\n            }, null, \"INDIRECT\")));\n            sa.lookBusy();\n            ra._loadPage(va, function(wa) {\n                if (wa) {\n                    n.go(va.toString(), false, ua);\n                }\n                 else ba(window.JSBNG__location, va, ua);\n            ;\n            ;\n            });\n        },\n        _historyManagerHandler: function(ta) {\n            if (((ta.charAt(0) != \"/\"))) {\n                return false;\n            }\n        ;\n        ;\n            w(\"h\", {\n                href: ta\n            });\n            ga(\"page_transitions\").uai(null, \"history_manager\");\n            ra._loadPage(new s(ta), function(ua) {\n                if (!ua) {\n                    ba(window.JSBNG__location, ta, true);\n                }\n            ;\n            ;\n            });\n            return true;\n        },\n        _loadPage: function(ta, ua) {\n            if (((s(ta).getFragment() && v(s(ta).setFragment(null).getQualifiedURI(), s(ra._current_uri).setFragment(null).getQualifiedURI())))) {\n                if (ra.restoreScrollPosition(ta)) {\n                    ra._current_uri = ra._most_recent_uri = ta;\n                    sa.stopLookingBusy();\n                    return;\n                }\n            ;\n            }\n        ;\n        ;\n            var va;\n            if (ra._current_uri) {\n                va = ja(ra._current_uri);\n            }\n        ;\n        ;\n            ra._current_uri = null;\n            ra._next_uri = ta;\n            if (va) {\n                j.JSBNG__scrollTo(va, false);\n            }\n        ;\n        ;\n            var wa = function() {\n                ra._scroll_locked = true;\n                var ya = ra._handleTransition(ta);\n                ((ua && ua(ya)));\n            }, xa = q.runHooks(\"onbeforeleavehooks\");\n            if (xa) {\n                sa.stopLookingBusy();\n                ra._warnBeforeLeaving(xa, wa);\n            }\n             else wa();\n        ;\n        ;\n        },\n        _handleTransition: function(ta) {\n            window.onbeforeleavehooks = undefined;\n            sa.lookBusy();\n            if (!ta.isSameOrigin()) {\n                return false;\n            }\n        ;\n        ;\n            var ua = ((window.AsyncRequest && window.AsyncRequest.getLastID()));\n            g.inform(\"pre_page_transition\", {\n                from: ra.getMostRecentURI(),\n                to: ta\n            });\n            for (var va = ((ra._transition_handlers.length - 1)); ((va >= 0)); --va) {\n                var wa = ra._transition_handlers[va];\n                if (!wa) {\n                    continue;\n                }\n            ;\n            ;\n                for (var xa = ((wa.length - 1)); ((xa >= 0)); --xa) {\n                    if (((wa[xa](ta) === true))) {\n                        var ya = {\n                            sender: this,\n                            uri: ta,\n                            id: ua\n                        };\n                        try {\n                            g.inform(\"page_transition\", ya);\n                        } catch (za) {\n                        \n                        };\n                    ;\n                        return true;\n                    }\n                     else wa.splice(xa, 1);\n                ;\n                ;\n                };\n            ;\n            };\n        ;\n            return false;\n        },\n        unifyURI: function() {\n            ra._current_uri = ra._most_recent_uri = ra._next_uri;\n        },\n        transitionComplete: function(ta) {\n            ra._executeCompletionCallback();\n            sa.stopLookingBusy();\n            ra.unifyURI();\n            if (!ta) {\n                ra.restoreScrollPosition(ra._current_uri);\n            }\n        ;\n        ;\n            try {\n                if (((JSBNG__document.activeElement && ((JSBNG__document.activeElement.nodeName === \"A\"))))) {\n                    JSBNG__document.activeElement.JSBNG__blur();\n                }\n            ;\n            ;\n            } catch (ua) {\n            \n            };\n        ;\n        },\n        _executeCompletionCallback: function() {\n            if (ra._completionCallback) {\n                ra._completionCallback();\n            }\n        ;\n        ;\n            ra._completionCallback = null;\n        },\n        setCompletionCallback: function(ta) {\n            ra._completionCallback = ta;\n        },\n        rewriteCurrentURI: function(ta, ua) {\n            ra.registerHandler(function() {\n                if (((ta == ra.getMostRecentURI().getUnqualifiedURI().toString()))) {\n                    ra.transitionComplete();\n                    return true;\n                }\n            ;\n            ;\n            });\n            ra.go(ua, true);\n        },\n        _warnBeforeLeaving: function(ta, ua) {\n            new h().setTitle(\"Are you sure you want to leave this page?\").setBody(ca(ta)).setButtons([{\n                JSBNG__name: \"leave_page\",\n                label: \"Leave this Page\",\n                handler: ua\n            },{\n                JSBNG__name: \"continue_editing\",\n                label: \"Stay on this Page\",\n                className: \"inputaux\"\n            },]).setModal(true).show();\n        },\n        restoreScrollPosition: function(ta) {\n            ra._scroll_locked = false;\n            var ua = ja(ta);\n            if (ua) {\n                j.JSBNG__scrollTo(ua, false);\n                return true;\n            }\n        ;\n        ;\n            function va(ya) {\n                if (!ya) {\n                    return null;\n                }\n            ;\n            ;\n                var za = ((((\"a[name='\" + z(ya))) + \"']\"));\n                return ((i.scry(JSBNG__document.body, za)[0] || aa(ya)));\n            };\n        ;\n            var wa = va(s(ta).getFragment());\n            if (wa) {\n                var xa = u.getElementPosition(wa);\n                xa.x = 0;\n                j.JSBNG__scrollTo(xa);\n                return true;\n            }\n        ;\n        ;\n            return false;\n        }\n    }, sa = ((window._BusyUIManager || {\n        _looking_busy: false,\n        _original_cursors: [],\n        lookBusy: function(ta) {\n            if (ta) {\n                sa._giveProgressCursor(ta);\n            }\n        ;\n        ;\n            if (sa._looking_busy) {\n                return;\n            }\n        ;\n        ;\n            sa._looking_busy = true;\n            sa._giveProgressCursor(JSBNG__document.documentElement);\n        },\n        stopLookingBusy: function() {\n            if (!sa._looking_busy) {\n                return;\n            }\n        ;\n        ;\n            sa._looking_busy = false;\n            while (sa._original_cursors.length) {\n                var ta = sa._original_cursors.pop(), ua = ta[0], va = ta[1];\n                if (ua.style) {\n                    ua.style.cursor = ((va || \"\"));\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        _giveProgressCursor: function(ta) {\n            if (!t.webkit()) {\n                sa._original_cursors.push([ta,ta.style.cursor,]);\n                ta.style.cursor = \"progress\";\n            }\n        ;\n        ;\n        }\n    }));\n    e.exports = ra;\n    a.PageTransitions = ra;\n});\n__d(\"PixelRatio\", [\"Arbiter\",\"Cookie\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Cookie\"), i = b(\"Run\"), j = \"dpr\", k, l;\n    function m() {\n        return ((window.JSBNG__devicePixelRatio || 1));\n    };\n;\n    function n() {\n        h.set(j, m());\n    };\n;\n    function o() {\n        h.clear(j);\n    };\n;\n    function p() {\n        var r = m();\n        if (((r !== k))) {\n            n();\n        }\n         else o();\n    ;\n    ;\n    };\n;\n    var q = {\n        startDetecting: function(r) {\n            k = ((r || 1));\n            o();\n            if (l) {\n                return;\n            }\n        ;\n        ;\n            l = [g.subscribe(\"pre_page_transition\", p),];\n            i.onBeforeUnload(p);\n        }\n    };\n    e.exports = q;\n});\n__d(\"LayerHideOnTransition\", [\"function-extensions\",\"PageTransitions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"PageTransitions\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n;\n    h(i.prototype, {\n        _enabled: false,\n        _subscribed: false,\n        enable: function() {\n            this._enabled = true;\n            if (!this._subscribed) {\n                this._subscribe.bind(this).defer();\n                this._subscribed = true;\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            this._enabled = false;\n        },\n        _subscribe: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523), function() {\n            g.registerHandler(function() {\n                if (this._enabled) {\n                    this._layer.hide();\n                }\n            ;\n            ;\n                this._subscribed = false;\n            }.bind(this));\n        }))\n    });\n    e.exports = i;\n});\n__d(\"JSBNG__Rect\", [\"Vector\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Vector\"), h = b(\"$\"), i = b(\"copyProperties\");\n    function j(k, l, m, n, o) {\n        if (((arguments.length === 1))) {\n            if (((k instanceof j))) {\n                return k;\n            }\n        ;\n        ;\n            if (((k instanceof g))) {\n                return new j(k.y, k.x, k.y, k.x, k.domain);\n            }\n        ;\n        ;\n            return j.getElementBounds(h(k));\n        }\n    ;\n    ;\n        i(this, {\n            t: k,\n            r: l,\n            b: m,\n            l: n,\n            domain: ((o || \"pure\"))\n        });\n    };\n;\n    i(j.prototype, {\n        w: function() {\n            return ((this.r - this.l));\n        },\n        h: function() {\n            return ((this.b - this.t));\n        },\n        toString: function() {\n            return ((((((((((((((((\"((\" + this.l)) + \", \")) + this.t)) + \"), (\")) + this.r)) + \", \")) + this.b)) + \"))\"));\n        },\n        contains: function(k) {\n            k = new j(k).convertTo(this.domain);\n            var l = this;\n            return ((((((((l.l <= k.l)) && ((l.r >= k.r)))) && ((l.t <= k.t)))) && ((l.b >= k.b))));\n        },\n        add: function(k, l) {\n            if (((arguments.length == 1))) {\n                if (((k.domain != \"pure\"))) {\n                    k = k.convertTo(this.domain);\n                }\n            ;\n            ;\n                return this.add(k.x, k.y);\n            }\n        ;\n        ;\n            var m = parseFloat(k), n = parseFloat(l);\n            return new j(((this.t + n)), ((this.r + m)), ((this.b + n)), ((this.l + m)), this.domain);\n        },\n        sub: function(k, l) {\n            if (((arguments.length == 1))) {\n                return this.add(k.mul(-1));\n            }\n             else return this.add(-k, -l)\n        ;\n        },\n        rotateAroundOrigin: function(k) {\n            var l = this.getCenter().rotate(((((k * Math.PI)) / 2))), m, n;\n            if (((k % 2))) {\n                m = this.h();\n                n = this.w();\n            }\n             else {\n                m = this.w();\n                n = this.h();\n            }\n        ;\n        ;\n            var o = ((l.y - ((n / 2)))), p = ((l.x - ((m / 2)))), q = ((o + n)), r = ((p + m));\n            return new j(o, r, q, p);\n        },\n        boundWithin: function(k) {\n            var l = 0, m = 0;\n            if (((this.l < k.l))) {\n                l = ((k.l - this.l));\n            }\n             else if (((this.r > k.r))) {\n                l = ((k.r - this.r));\n            }\n            \n        ;\n        ;\n            if (((this.t < k.t))) {\n                m = ((k.t - this.t));\n            }\n             else if (((this.b > k.b))) {\n                m = ((k.b - this.b));\n            }\n            \n        ;\n        ;\n            return this.add(l, m);\n        },\n        getCenter: function() {\n            return new g(((this.l + ((this.w() / 2)))), ((this.t + ((this.h() / 2)))), this.domain);\n        },\n        getPositionVector: function() {\n            return new g(this.l, this.t, this.domain);\n        },\n        getDimensionVector: function() {\n            return new g(this.w(), this.h(), \"pure\");\n        },\n        convertTo: function(k) {\n            if (((this.domain == k))) {\n                return this;\n            }\n        ;\n        ;\n            if (((k == \"pure\"))) {\n                return new j(this.t, this.r, this.b, this.l, \"pure\");\n            }\n        ;\n        ;\n            if (((this.domain == \"pure\"))) {\n                return new j(0, 0, 0, 0);\n            }\n        ;\n        ;\n            var l = new g(this.l, this.t, this.domain).convertTo(k);\n            return new j(l.y, ((l.x + this.w())), ((l.y + this.h())), l.x, k);\n        }\n    });\n    i(j, {\n        deserialize: function(k) {\n            var l = k.split(\":\");\n            return new j(parseFloat(l[1]), parseFloat(l[2]), parseFloat(l[3]), parseFloat(l[0]));\n        },\n        newFromVectors: function(k, l) {\n            return new j(k.y, ((k.x + l.x)), ((k.y + l.y)), k.x, k.domain);\n        },\n        getElementBounds: function(k) {\n            return j.newFromVectors(g.getElementPosition(k), g.getElementDimensions(k));\n        },\n        getViewportBounds: function() {\n            return j.newFromVectors(g.getScrollPosition(), g.getViewportDimensions());\n        },\n        minimumBoundingBox: function(k) {\n            var l = new j(Math.min(), Math.max(), Math.max(), Math.min()), m;\n            for (var n = 0; ((n < k.length)); n++) {\n                m = k[n];\n                l.t = Math.min(l.t, m.t);\n                l.r = Math.max(l.r, m.r);\n                l.b = Math.max(l.b, m.b);\n                l.l = Math.min(l.l, m.l);\n            };\n        ;\n            return l;\n        }\n    });\n    e.exports = j;\n});\n__d(\"SVGChecker\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        isSVG: function(g) {\n            return ((!!g.ownerSVGElement || ((g.tagName.toLowerCase() === \"svg\"))));\n        },\n        isDisplayed: function(g) {\n            try {\n                var i = g.getBBox();\n                if (((i && ((((i.height === 0)) || ((i.width === 0))))))) {\n                    return false;\n                }\n            ;\n            ;\n            } catch (h) {\n                return false;\n            };\n        ;\n            return true;\n        }\n    };\n});\n__d(\"arrayContains\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return ((h.indexOf(i) != -1));\n    };\n;\n    e.exports = g;\n});\n__d(\"ContextualLayer\", [\"JSBNG__Event\",\"Arbiter\",\"ARIA\",\"Class\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"Layer\",\"LayerHideOnTransition\",\"Locale\",\"Parent\",\"JSBNG__Rect\",\"Style\",\"Vector\",\"SVGChecker\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",\"getOverlayZIndex\",\"removeFromArray\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ARIA\"), j = b(\"Class\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Layer\"), p = b(\"LayerHideOnTransition\"), q = b(\"Locale\"), r = b(\"Parent\"), s = b(\"JSBNG__Rect\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"SVGChecker\"), w = b(\"arrayContains\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"getOverlayZIndex\"), aa = b(\"removeFromArray\"), ba = b(\"throttle\");\n    function ca(ja) {\n        return ((((ja.getPosition() === \"left\")) || ((ja.isVertical() && ((ja.getAlignment() === \"right\"))))));\n    };\n;\n    function da(ja) {\n        var ka = ja.parentNode;\n        if (ka) {\n            var la = t.get(ka, \"position\");\n            if (((la === \"static\"))) {\n                if (((ka === JSBNG__document.body))) {\n                    ka = JSBNG__document.documentElement;\n                }\n                 else ka = da(ka);\n            ;\n            ;\n            }\n             else return ka\n        ;\n        }\n         else ka = JSBNG__document.documentElement;\n    ;\n    ;\n        return ka;\n    };\n;\n    function ea(ja, ka) {\n        this.parent.construct(this, ja, ka);\n    };\n;\n    var fa = [];\n    h.subscribe(\"reflow\", function() {\n        fa.forEach(function(ja) {\n            if (((ja.updatePosition() === false))) {\n                ja.hide();\n            }\n        ;\n        ;\n        });\n    });\n    j.extend(ea, o);\n    x(ea.prototype, {\n        _contentWrapper: null,\n        _content: null,\n        _contextNode: null,\n        _contextBounds: null,\n        _contextSelector: null,\n        _parentLayer: null,\n        _parentSubscription: null,\n        _orientation: null,\n        _orientationClass: null,\n        _shouldSetARIAProperties: true,\n        _configure: function(ja, ka) {\n            this.parent._configure(ja, ka);\n            if (ja.context) {\n                this.setContext(ja.context);\n            }\n             else if (ja.contextID) {\n                this._setContextID(ja.contextID);\n            }\n             else if (ja.contextSelector) {\n                this._setContextSelector(ja.contextSelector);\n            }\n            \n            \n        ;\n        ;\n            this.setPosition(ja.position);\n            this.setAlignment(ja.alignment);\n            this.setOffsetX(ja.offsetX);\n            this.setOffsetY(ja.offsetY);\n            this._content = ka;\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([p,]);\n        },\n        _buildWrapper: function(ja, ka) {\n            this._contentWrapper = n.create(\"div\", {\n                className: \"uiContextualLayer\"\n            }, ka);\n            return n.create(\"div\", {\n                className: \"uiContextualLayerPositioner\"\n            }, this._contentWrapper);\n        },\n        getInsertParent: function() {\n            var ja = this._insertParent;\n            if (!ja) {\n                var ka = this.getContext();\n                if (ka) {\n                    ja = r.byClass(ka, \"uiContextualLayerParent\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return ((ja || this.parent.getInsertParent()));\n        },\n        setContent: function(ja) {\n            this._content = ja;\n            n.setContent(this._contentWrapper, this._content);\n            ((this._shown && this.updatePosition()));\n            return this;\n        },\n        setContext: function(ja) {\n            return this.setContextWithBounds(ja, null);\n        },\n        setContextWithBounds: function(ja, ka) {\n            this._contextNode = ja;\n            this._contextBounds = ((ka || null));\n            this._contextSelector = this._contextScrollParent = null;\n            if (this._shown) {\n                k.register(this.getRoot(), this._contextNode);\n                this.updatePosition();\n            }\n        ;\n        ;\n            this._setParentSubscription();\n            this.setARIAProperties();\n            return this;\n        },\n        shouldSetARIAProperties: function(ja) {\n            this._shouldSetARIAProperties = ja;\n            return this;\n        },\n        setARIAProperties: function() {\n            if (this._shouldSetARIAProperties) {\n                i.setPopup(this.getCausalElement(), this.getRoot());\n            }\n        ;\n        ;\n            return this;\n        },\n        _setContextID: function(ja) {\n            this._contextSelector = ((\"#\" + ja));\n            this._contextNode = null;\n        },\n        _setContextSelector: function(ja) {\n            this._contextSelector = ja;\n            this._contextNode = null;\n        },\n        getCausalElement: function() {\n            return ((this.parent.getCausalElement() || this.getContext()));\n        },\n        _setParentSubscription: function() {\n            var ja = this.getContext(), ka = null;\n            while (((ja !== null))) {\n                ka = m.get(ja, \"layer\");\n                if (ka) {\n                    break;\n                }\n            ;\n            ;\n                ja = ja.parentNode;\n            };\n        ;\n            if (((ka === this._parentLayer))) {\n                return;\n            }\n        ;\n        ;\n            if (((this._parentLayer && this._parentSubscription))) {\n                this._parentLayer.unsubscribe(this._parentSubscription);\n                this._parentSubscription = null;\n            }\n        ;\n        ;\n            if (ka) {\n                this._parentSubscription = ka.subscribe(\"hide\", this.hide.bind(this));\n            }\n        ;\n        ;\n            this._parentLayer = ka;\n        },\n        setPosition: function(ja) {\n            if (this._getOrientation().setDefaultPosition(ja)) {\n                ((this._shown && this.updatePosition()));\n            }\n        ;\n        ;\n            return this;\n        },\n        setAlignment: function(ja) {\n            if (this._getOrientation().setDefaultAlignment(ja)) {\n                ((this._shown && this.updatePosition()));\n            }\n        ;\n        ;\n            return this;\n        },\n        setOffsetX: function(ja) {\n            if (this._getOrientation().setDefaultOffsetX(ja)) {\n                ((this._shown && this.updatePosition()));\n            }\n        ;\n        ;\n            return this;\n        },\n        setOffsetY: function(ja) {\n            if (this._getOrientation().setDefaultOffsetY(ja)) {\n                ((this._shown && this.updatePosition()));\n            }\n        ;\n        ;\n            return this;\n        },\n        _getOrientation: function() {\n            if (!this._orientation) {\n                this._orientation = new ia();\n            }\n        ;\n        ;\n            return this._orientation;\n        },\n        getContentRoot: function() {\n            return this._contentWrapper;\n        },\n        getContent: function() {\n            return this._content;\n        },\n        getContext: function() {\n            if (!this._contextNode) {\n                this._contextNode = n.JSBNG__find(JSBNG__document, this._contextSelector);\n            }\n        ;\n        ;\n            return this._contextNode;\n        },\n        getContextBounds: function(ja) {\n            if (this._contextBounds) {\n                return this._contextBounds.convertTo(ja);\n            }\n        ;\n        ;\n            var ka = this.getContext();\n            return s.newFromVectors(u.getElementPosition(ka, ja), u.getElementDimensions(ka));\n        },\n        getContextScrollParent: function() {\n            if (!this._contextScrollParent) {\n                this._contextScrollParent = t.getScrollParent(this.getContext());\n            }\n        ;\n        ;\n            return this._contextScrollParent;\n        },\n        setInsertParent: function(ja) {\n            this._insertScrollParent = null;\n            return this.parent.setInsertParent(ja);\n        },\n        getInsertScrollParent: function() {\n            if (!this._insertScrollParent) {\n                this._insertScrollParent = t.getScrollParent(this.getInsertParent());\n            }\n        ;\n        ;\n            return this._insertScrollParent;\n        },\n        show: function() {\n            if (this._shown) {\n                return this;\n            }\n        ;\n        ;\n            this.parent.show();\n            if (this._shown) {\n                k.register(this.getRoot(), this.getContext());\n                fa.push(this);\n                this._resizeListener = ((this._resizeListener || g.listen(window, \"resize\", ba(this.updatePosition.bind(this)))));\n            }\n        ;\n        ;\n            return this;\n        },\n        finishHide: function() {\n            aa(fa, this);\n            ((this._resizeListener && this._resizeListener.remove()));\n            this._resizeListener = null;\n            return this.parent.finishHide();\n        },\n        isFixed: function() {\n            return ((t.isFixed(this.getContext()) && !t.isFixed(this.getInsertParent())));\n        },\n        updatePosition: function() {\n            var ja = this.getContext();\n            if (!ja) {\n                return false;\n            }\n        ;\n        ;\n            var ka = this.isFixed();\n            if (((!ka && !((ja.offsetParent || ((v.isSVG(ja) && v.isDisplayed(ja)))))))) {\n                return false;\n            }\n        ;\n        ;\n            var la = this.getRoot();\n            t.set(la, \"width\", ((u.getViewportDimensions().x + \"px\")));\n            var ma = this._getOrientation();\n            this.inform(\"adjust\", ma.reset());\n            if (!ma.isValid()) {\n                return false;\n            }\n        ;\n        ;\n            this._updateWrapperPosition(ma);\n            this._updateWrapperClass(ma);\n            l.conditionClass(la, \"uiContextualLayerPositionerFixed\", ka);\n            var na, oa, pa = ((ka ? \"viewport\" : \"JSBNG__document\")), qa = ((ka ? JSBNG__document.documentElement : da(la)));\n            if (((qa === JSBNG__document.documentElement))) {\n                na = new u(0, 0);\n                oa = JSBNG__document.documentElement.clientWidth;\n            }\n             else if (!la.offsetParent) {\n                return false;\n            }\n             else {\n                na = u.getElementPosition(qa, pa);\n                oa = qa.offsetWidth;\n                if (((qa !== JSBNG__document.body))) {\n                    na = na.sub(new u(qa.scrollLeft, qa.scrollTop));\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            var ra = this.getContextBounds(pa), sa = ((ra.l - na.x)), ta = ((ra.t - na.y)), ua = ra.h(), va = ra.w(), wa = q.isRTL();\n            if (((ma.getPosition() === \"below\"))) {\n                ta += ua;\n            }\n        ;\n        ;\n            if (((((((ma.getPosition() === \"right\")) || ((ma.isVertical() && ((ma.getAlignment() === \"right\")))))) != wa))) {\n                sa += va;\n            }\n        ;\n        ;\n            var xa = ma.getOffsetX();\n            if (((ma.isVertical() && ((ma.getAlignment() === \"center\"))))) {\n                xa += ((((va - this.getContentRoot().offsetWidth)) / 2));\n            }\n        ;\n        ;\n            if (wa) {\n                xa *= -1;\n            }\n        ;\n        ;\n            var ya = \"left\", za = Math.floor(((sa + xa)));\n            if (((ca(ma) !== wa))) {\n                ya = \"right\";\n                za = ((oa - za));\n            }\n        ;\n        ;\n            t.set(la, ya, ((za + \"px\")));\n            t.set(la, ((((ya === \"left\")) ? \"right\" : \"left\")), \"\");\n            var ab = this.getInsertScrollParent(), bb;\n            if (((ab !== window))) {\n                bb = ab.clientWidth;\n            }\n             else bb = JSBNG__document.documentElement.clientWidth;\n        ;\n        ;\n            var cb = u.getElementPosition(la).x;\n            if (((ya === \"left\"))) {\n                if (((((bb - cb)) > 0))) {\n                    t.set(la, \"width\", ((((bb - cb)) + \"px\")));\n                }\n                 else t.set(la, \"width\", \"\");\n            ;\n            ;\n            }\n             else t.set(la, \"width\", ((((cb + la.offsetWidth)) + \"px\")));\n        ;\n        ;\n            t.set(la, \"JSBNG__top\", ((((ta + ma.getOffsetY())) + \"px\")));\n            var db = z(ja, this.getInsertParent());\n            t.set(la, \"z-index\", ((((db > 200)) ? db : \"\")));\n            this.inform(\"reposition\", ma);\n            return true;\n        },\n        _updateWrapperPosition: function(ja) {\n            var ka = ((ja.getPosition() === \"above\"));\n            t.set(this._contentWrapper, \"bottom\", ((ka ? \"0\" : null)));\n            var la = ((q.isRTL() ? \"left\" : \"right\")), ma = ca(ja);\n            t.set(this._contentWrapper, la, ((ma ? \"0\" : null)));\n        },\n        _updateWrapperClass: function(ja) {\n            var ka = ja.getClassName();\n            if (((ka === this._orientationClass))) {\n                return;\n            }\n        ;\n        ;\n            if (this._orientationClass) {\n                l.removeClass(this._contentWrapper, this._orientationClass);\n            }\n        ;\n        ;\n            this._orientationClass = ka;\n            l.addClass(this._contentWrapper, ka);\n        },\n        simulateOrientation: function(ja, ka) {\n            var la = ja.getClassName();\n            if (((la === this._orientationClass))) {\n                return ka();\n            }\n             else {\n                if (this._orientationClass) {\n                    l.removeClass(this._contentWrapper, this._orientationClass);\n                }\n            ;\n            ;\n                l.addClass(this._contentWrapper, la);\n                var ma = ka();\n                l.removeClass(this._contentWrapper, la);\n                if (this._orientationClass) {\n                    l.addClass(this._contentWrapper, this._orientationClass);\n                }\n            ;\n            ;\n                return ma;\n            }\n        ;\n        ;\n        },\n        destroy: function() {\n            this.parent.destroy();\n            this._contentWrapper = null;\n            this._content = null;\n            return this;\n        }\n    });\n    var ga = y.thatReturnsArgument, ha = y.thatReturnsArgument;\n    function ia() {\n        this._default = {\n            _position: \"above\",\n            _alignment: \"left\",\n            _offsetX: 0,\n            _offsetY: 0,\n            _valid: true\n        };\n        this.reset();\n    };\n;\n    ia.OPPOSITE = {\n        above: \"below\",\n        below: \"above\",\n        left: \"right\",\n        right: \"left\"\n    };\n    x(ia.prototype, {\n        setPosition: function(ja) {\n            this._position = ga(ja);\n            return this;\n        },\n        setAlignment: function(ja) {\n            this._alignment = ha(ja);\n            return this;\n        },\n        getOppositePosition: function() {\n            return ia.OPPOSITE[this.getPosition()];\n        },\n        invalidate: function() {\n            this._valid = false;\n            return this;\n        },\n        getPosition: function() {\n            return ((this._position || \"above\"));\n        },\n        getAlignment: function() {\n            return ((this._alignment || \"left\"));\n        },\n        getOffsetX: function() {\n            var ja = ((this._offsetX || 0));\n            if (!this.isVertical()) {\n                if (((this._default._position !== this._position))) {\n                    ja *= -1;\n                }\n            ;\n            ;\n            }\n             else if (((this._default._alignment !== this._alignment))) {\n                ja *= -1;\n            }\n            \n        ;\n        ;\n            return ja;\n        },\n        getOffsetY: function() {\n            var ja = ((this._offsetY || 0));\n            if (((this.isVertical() && ((this._default._position !== this._position))))) {\n                ja *= -1;\n            }\n        ;\n        ;\n            return ja;\n        },\n        getClassName: function() {\n            var ja = this.getAlignment(), ka = this.getPosition();\n            if (((ka === \"below\"))) {\n                if (((ja === \"left\"))) {\n                    return \"uiContextualLayerBelowLeft\";\n                }\n                 else if (((ja === \"right\"))) {\n                    return \"uiContextualLayerBelowRight\";\n                }\n                 else return \"uiContextualLayerBelowCenter\"\n                \n            ;\n            }\n             else if (((ka === \"above\"))) {\n                if (((ja === \"left\"))) {\n                    return \"uiContextualLayerAboveLeft\";\n                }\n                 else if (((ja === \"right\"))) {\n                    return \"uiContextualLayerAboveRight\";\n                }\n                 else return \"uiContextualLayerAboveCenter\"\n                \n            ;\n            }\n             else if (((ka === \"left\"))) {\n                return \"uiContextualLayerLeft\";\n            }\n             else return \"uiContextualLayerRight\"\n            \n            \n        ;\n        },\n        isValid: function() {\n            return this._valid;\n        },\n        isVertical: function() {\n            return ((((this.getPosition() === \"above\")) || ((this.getPosition() === \"below\"))));\n        },\n        reset: function(ja, ka) {\n            x(this, this._default);\n            return this;\n        },\n        setDefaultPosition: function(ja) {\n            var ka = this._default._position;\n            this._default._position = ga(ja);\n            return ((ka !== ja));\n        },\n        setDefaultAlignment: function(ja) {\n            var ka = this._default._alignment;\n            this._default._alignment = ha(ja);\n            return ((ka !== ja));\n        },\n        setDefaultOffsetX: function(ja) {\n            var ka = this._default._offsetX;\n            this._default._offsetX = ja;\n            return ((ka !== ja));\n        },\n        setDefaultOffsetY: function(ja) {\n            var ka = this._default._offsetY;\n            this._default._offsetY = ja;\n            return ((ka !== ja));\n        }\n    });\n    e.exports = ea;\n});\n__d(\"ContextualLayerHideOnScroll\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n;\n    h(i.prototype, {\n        _subscriptions: [],\n        enable: function() {\n            this._subscriptions = [this._layer.subscribe(\"contextchange\", this._handleContextChange.bind(this)),this._layer.subscribe(\"show\", this.attach.bind(this)),this._layer.subscribe(\"hide\", this.detach.bind(this)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();\n            ;\n            };\n        ;\n            this.detach();\n        },\n        attach: function() {\n            if (this._listener) {\n                return;\n            }\n        ;\n        ;\n            var j = this._layer.getContextScrollParent();\n            if (((j === window))) {\n                return;\n            }\n        ;\n        ;\n            this._listener = g.listen(j, \"JSBNG__scroll\", this._layer.hide.bind(this._layer));\n        },\n        detach: function() {\n            ((this._listener && this._listener.remove()));\n            this._listener = null;\n        },\n        _handleContextChange: function() {\n            this.detach();\n            if (this._layer.isShown()) {\n                this.attach();\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerHideOnEscape\", [\"JSBNG__Event\",\"copyProperties\",\"Keys\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"Keys\");\n    function j(k) {\n        this._layer = k;\n    };\n;\n    h(j.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"key\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(k, JSBNG__event) {\n            if (((g.getKeyCode(JSBNG__event) === i.ESC))) {\n                this._layer.hide();\n                return false;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"TabbableElements\", [\"Style\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Style\"), h = b(\"createArrayFrom\");\n    function i(l) {\n        if (((l.tabIndex >= 0))) {\n            return true;\n        }\n    ;\n    ;\n        switch (l.tagName) {\n          case \"A\":\n            return ((l.href && ((l.rel != \"ignore\"))));\n          case \"INPUT\":\n            return ((((((l.type != \"hidden\")) && ((l.type != \"file\")))) && !l.disabled));\n          case \"BUTTON\":\n        \n          case \"SELECT\":\n        \n          case \"TEXTAREA\":\n            return !l.disabled;\n        };\n    ;\n        return false;\n    };\n;\n    function j(l) {\n        if (((((l.offsetHeight === 0)) && ((l.offsetWidth === 0))))) {\n            return false;\n        }\n    ;\n    ;\n        while (((((l !== JSBNG__document)) && ((g.get(l, \"visibility\") != \"hidden\"))))) {\n            l = l.parentNode;\n        ;\n        };\n    ;\n        return ((l === JSBNG__document));\n    };\n;\n    var k = {\n        JSBNG__find: function(l) {\n            var m = h(l.getElementsByTagName(\"*\"));\n            return m.filter(k.isTabbable);\n        },\n        isTabbable: function(l) {\n            return ((i(l) && j(l)));\n        }\n    };\n    e.exports = k;\n});\n__d(\"Toggler\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualThing\",\"CSS\",\"DataStore\",\"Dialog\",\"DOM\",\"DOMQuery\",\"Focus\",\"Parent\",\"TabbableElements\",\"arrayContains\",\"cx\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"ge\",\"getContextualParent\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualThing\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"Dialog\"), n = b(\"DOM\"), o = b(\"DOMQuery\"), p = b(\"Focus\"), q = b(\"Parent\"), r = b(\"TabbableElements\"), s = b(\"arrayContains\"), t = b(\"cx\"), u = b(\"copyProperties\"), v = b(\"createArrayFrom\"), w = b(\"emptyFunction\"), x = b(\"ge\"), y = b(\"getContextualParent\"), z = b(\"getObjectValues\"), aa = [], ba;\n    function ca() {\n        ca = w;\n        g.listen(JSBNG__document.documentElement, \"click\", function(JSBNG__event) {\n            var ga = JSBNG__event.getTarget();\n            aa.forEach(function(ha) {\n                ha.clickedTarget = ga;\n                ((((((((((((ha.active && !ha.sticky)) && !j.containsIncludingLayers(ha.getActive(), ga))) && !ha.inTargetFlyout(ga))) && ha.inActiveDialog())) && !ha.isIgnoredByModalLayer(ga))) && ha.hide()));\n            });\n        }, g.Priority.URGENT);\n    };\n;\n    var da = function() {\n        this.active = null;\n        this.togglers = {\n        };\n        this.setSticky(false);\n        aa.push(this);\n        this.subscribe([\"show\",\"hide\",], da.inform.bind(da));\n        return ca();\n    };\n    u(da.prototype, i, {\n        show: function(ga) {\n            var ha = ea(this, ga), ia = ha.active;\n            if (((ga !== ia))) {\n                ((ia && ha.hide()));\n                ha.active = ga;\n                k.addClass(ga, \"openToggler\");\n                var ja = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n                if (((((ja.length > 0)) && ja[0].getAttribute(\"data-target\")))) {\n                    k.removeClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n                }\n            ;\n            ;\n                var ka = o.scry(ga, \".uiToggleFlyout\")[0];\n                if (ka) {\n                    var la = ((r.JSBNG__find(ka)[0] || ka));\n                    if (((la.tabIndex == -1))) {\n                        la.tabIndex = 0;\n                    }\n                ;\n                ;\n                    p.setWithoutOutline(la);\n                }\n            ;\n            ;\n                n.appendContent(ga, ha.getToggler(\"next\"));\n                n.prependContent(ga, ha.getToggler(\"prev\"));\n                ha.inform(\"show\", ha);\n            }\n        ;\n        ;\n        },\n        hide: function(ga) {\n            var ha = ea(this, ga), ia = ha.active;\n            if (((ia && ((!ga || ((ga === ia))))))) {\n                k.removeClass(ia, \"openToggler\");\n                var ja = n.scry(ia, \"a[rel=\\\"toggle\\\"]\");\n                if (((((ja.length > 0)) && ja[0].getAttribute(\"data-target\")))) {\n                    k.addClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n                }\n            ;\n            ;\n                z(ha.togglers).forEach(n.remove);\n                ha.inform(\"hide\", ha);\n                ha.active = null;\n            }\n        ;\n        ;\n        },\n        toggle: function(ga) {\n            var ha = ea(this, ga);\n            if (((ha.active === ga))) {\n                ha.hide();\n            }\n             else ha.show(ga);\n        ;\n        ;\n        },\n        getActive: function() {\n            return ea(this).active;\n        },\n        isShown: function() {\n            return ((ea(this).active && k.hasClass(ea(this).active, \"openToggler\")));\n        },\n        inTargetFlyout: function(ga) {\n            var ha = fa(this.getActive());\n            return ((ha && j.containsIncludingLayers(ha, ga)));\n        },\n        inActiveDialog: function() {\n            var ga = m.getCurrent();\n            return ((!ga || n.contains(ga.getRoot(), this.getActive())));\n        },\n        isIgnoredByModalLayer: function(ga) {\n            return ((q.byClass(ga, \"_3qw\") && !q.byClass(this.getActive(), \"_3qw\")));\n        },\n        getToggler: function(ga) {\n            var ha = ea(this);\n            if (!ha.togglers[ga]) {\n                ha.togglers[ga] = n.create(\"button\", {\n                    className: \"hideToggler\",\n                    JSBNG__onfocus: function() {\n                        var ia = n.scry(ha.active, \"a[rel=\\\"toggle\\\"]\")[0];\n                        ((ia && ia.JSBNG__focus()));\n                        ha.hide();\n                    }\n                });\n                ha.togglers[ga].setAttribute(\"type\", \"button\");\n            }\n        ;\n        ;\n            return this.togglers[ga];\n        },\n        setSticky: function(ga) {\n            var ha = ea(this);\n            ga = ((ga !== false));\n            if (((ga !== ha.sticky))) {\n                ha.sticky = ga;\n                if (ga) {\n                    ((ha._pt && ha._pt.unsubscribe()));\n                }\n                 else ha._pt = h.subscribe(\"pre_page_transition\", ha.hide.bind(ha, null));\n            ;\n            ;\n            }\n        ;\n        ;\n            return ha;\n        }\n    });\n    u(da, da.prototype);\n    u(da, {\n        bootstrap: function(ga) {\n            var ha = ga.parentNode;\n            da.getInstance(ha).toggle(ha);\n        },\n        createInstance: function(ga) {\n            var ha = new da().setSticky(true);\n            l.set(ga, \"toggler\", ha);\n            return ha;\n        },\n        destroyInstance: function(ga) {\n            l.remove(ga, \"toggler\");\n        },\n        getInstance: function(ga) {\n            while (ga) {\n                var ha = l.get(ga, \"toggler\");\n                if (ha) {\n                    return ha;\n                }\n            ;\n            ;\n                if (k.hasClass(ga, \"uiToggleContext\")) {\n                    return da.createInstance(ga);\n                }\n            ;\n            ;\n                ga = y(ga);\n            };\n        ;\n            return (ba = ((ba || new da())));\n        },\n        listen: function(ga, ha, ia) {\n            return da.subscribe(v(ga), function(ja, ka) {\n                if (((ka.getActive() === ha))) {\n                    return ia(ja, ka);\n                }\n            ;\n            ;\n            });\n        },\n        subscribe: (function(ga) {\n            return function(ha, ia) {\n                ha = v(ha);\n                if (s(ha, \"show\")) {\n                    aa.forEach(function(ja) {\n                        if (ja.getActive()) {\n                            ia.curry(\"show\", ja).defer();\n                        }\n                    ;\n                    ;\n                    });\n                }\n            ;\n            ;\n                return ga(ha, ia);\n            };\n        })(da.subscribe.bind(da))\n    });\n    function ea(ga, ha) {\n        if (((ga instanceof da))) {\n            return ga;\n        }\n    ;\n    ;\n        return da.getInstance(ha);\n    };\n;\n    function fa(ga) {\n        var ha = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n        if (((((ha.length > 0)) && ha[0].getAttribute(\"data-target\")))) {\n            return x(ha[0].getAttribute(\"data-target\"));\n        }\n    ;\n    ;\n    };\n;\n    e.exports = da;\n});\n__d(\"curry\", [\"bind\",], function(a, b, c, d, e, f) {\n    var g = b(\"bind\"), h = g(null, g, null);\n    e.exports = h;\n});\n__d(\"Popover\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualLayer\",\"ContextualLayerHideOnScroll\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"Keys\",\"KeyStatus\",\"LayerHideOnEscape\",\"Toggler\",\"copyProperties\",\"curry\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerHideOnScroll\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Focus\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"LayerHideOnEscape\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"curry\");\n    s.subscribe([\"show\",\"hide\",], function(w, x) {\n        var y = m.get(x.getActive(), \"Popover\");\n        if (y) {\n            if (((w === \"show\"))) {\n                y.showLayer();\n            }\n             else y.hideLayer();\n        ;\n        }\n    ;\n    ;\n    });\n    function v(w, x, y, z) {\n        this._root = w;\n        this._triggerElem = x;\n        this._behaviors = y;\n        this._config = ((z || {\n        }));\n        this._disabled = !!this._config.disabled;\n        this._listeners = [];\n        if (((!this._disabled && ((((x.nodeName !== \"A\")) || ((x.rel !== \"toggle\"))))))) {\n            this._setupClickListener();\n        }\n    ;\n    ;\n        this._setupKeyListener();\n        x.setAttribute(\"role\", \"button\");\n        m.set(w, \"Popover\", this);\n    };\n;\n    t(v.prototype, i, {\n        _layer: null,\n        ensureInit: function() {\n            if (!this._layer) {\n                this._init();\n            }\n        ;\n        ;\n        },\n        showLayer: function() {\n            this.ensureInit();\n            this._layer.show();\n            s.show(this._root);\n            l.addClass(this._root, \"selected\");\n            this.inform(\"show\");\n            this._triggerElem.setAttribute(\"aria-expanded\", \"true\");\n        },\n        getLayer: function() {\n            return this._layer;\n        },\n        hideLayer: function() {\n            this._layer.hide();\n            this._triggerElem.setAttribute(\"aria-expanded\", \"false\");\n        },\n        isShown: function() {\n            return ((this._layer && this._layer.isShown()));\n        },\n        setLayerContent: function(w) {\n            this.ensureInit();\n            this._layer.setContent(w);\n        },\n        _init: function() {\n            var w = new j({\n                context: this._triggerElem,\n                position: \"below\"\n            }, n.create(\"div\"));\n            w.enableBehaviors([k,r,]);\n            s.createInstance(w.getRoot()).setSticky(false);\n            w.subscribe(\"hide\", this._onLayerHide.bind(this));\n            ((this._behaviors && w.enableBehaviors(this._behaviors)));\n            this._layer = w;\n            if (this._config.alignh) {\n                this._layer.setAlignment(this._config.alignh);\n            }\n        ;\n        ;\n            if (this._config.layer_content) {\n                this._layer.setContent(this._config.layer_content);\n            }\n        ;\n        ;\n            this.inform(\"init\", null, h.BEHAVIOR_PERSISTENT);\n        },\n        _onLayerHide: function() {\n            s.hide(this._root);\n            l.removeClass(this._root, \"selected\");\n            this.inform(\"hide\");\n            if (((q.getKeyDownCode() === p.ESC))) {\n                o.set(this._triggerElem);\n            }\n        ;\n        ;\n        },\n        enable: function() {\n            if (!this._disabled) {\n                return;\n            }\n        ;\n        ;\n            this._setupClickListener();\n            this._setupKeyListener();\n            this._disabled = false;\n        },\n        disable: function() {\n            if (this._disabled) {\n                return;\n            }\n        ;\n        ;\n            if (this.isShown()) {\n                this.hideLayer();\n            }\n        ;\n        ;\n            while (this._listeners.length) {\n                this._listeners.pop().remove();\n            ;\n            };\n        ;\n            if (((this._triggerElem.getAttribute(\"rel\") === \"toggle\"))) {\n                this._triggerElem.removeAttribute(\"rel\");\n            }\n        ;\n        ;\n            this._disabled = true;\n        },\n        _setupClickListener: function() {\n            this._listeners.push(g.listen(this._triggerElem, \"click\", u(s.bootstrap, this._triggerElem)));\n        },\n        _setupKeyListener: function() {\n            this._listeners.push(g.listen(this._triggerElem, \"keydown\", this._handleKeyEvent.bind(this)));\n        },\n        _handleKeyEvent: function(JSBNG__event) {\n            if (JSBNG__event.getModifiers().any) {\n                return;\n            }\n        ;\n        ;\n            switch (g.getKeyCode(JSBNG__event)) {\n              case p.DOWN:\n            \n              case p.UP:\n                s.bootstrap(this._triggerElem);\n                break;\n              default:\n                return;\n            };\n        ;\n            JSBNG__event.prevent();\n        }\n    });\n    e.exports = v;\n});\n__d(\"PopoverMenu\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ARIA\",\"BehaviorsMixin\",\"Focus\",\"Keys\",\"KeyStatus\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ARIA\"), k = b(\"BehaviorsMixin\"), l = b(\"Focus\"), m = b(\"Keys\"), n = b(\"KeyStatus\"), o = b(\"copyProperties\");\n    function p(q, r, s, t) {\n        this._popover = q;\n        this._triggerElem = r;\n        this._initialMenu = s;\n        q.subscribe(\"init\", this._onLayerInit.bind(this));\n        q.subscribe(\"show\", this._onPopoverShow.bind(this));\n        q.subscribe(\"hide\", this._onPopoverHide.bind(this));\n        g.listen(this._triggerElem, \"keydown\", this._handleKeyEventOnTrigger.bind(this));\n        ((t && this.enableBehaviors(t)));\n    };\n;\n    o(p.prototype, i, k);\n    o(p.prototype, {\n        _popoverShown: false,\n        setMenu: function(q) {\n            this._menu = q;\n            var r = q.getRoot();\n            this._popover.setLayerContent(r);\n            q.subscribe(\"done\", this._onMenuDone.bind(this));\n            if (this._popoverShown) {\n                this._menu.onShow();\n            }\n        ;\n        ;\n            j.owns(this._triggerElem, r);\n            this.inform(\"setMenu\", null, h.BEHAVIOR_PERSISTENT);\n        },\n        getPopover: function() {\n            return this._popover;\n        },\n        getTriggerElem: function() {\n            return this._triggerElem;\n        },\n        getMenu: function() {\n            return this._menu;\n        },\n        _onLayerInit: function() {\n            this.setMenu(this._initialMenu);\n            this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n        },\n        _onPopoverShow: function() {\n            if (this._menu) {\n                this._menu.onShow();\n            }\n        ;\n        ;\n            this._popoverShown = true;\n        },\n        _onPopoverHide: function() {\n            if (this._menu) {\n                this._menu.onHide();\n            }\n        ;\n        ;\n            this._popoverShown = false;\n        },\n        _handleKeyEvent: function(q, r) {\n            var s = g.getKeyCode(r);\n            if (((s === m.TAB))) {\n                this._popover.hideLayer();\n                l.set(this._triggerElem);\n                return;\n            }\n        ;\n        ;\n            if (r.getModifiers().any) {\n                return;\n            }\n        ;\n        ;\n            switch (s) {\n              case m.RETURN:\n                return;\n              case m.UP:\n            \n              case m.DOWN:\n                this._menu.handleKeydown(s, r);\n                break;\n              default:\n                if (((this._menu.handleKeydown(s, r) === false))) {\n                    this._menu.JSBNG__blur();\n                    this._menu.handleKeydown(s, r);\n                }\n            ;\n            ;\n                break;\n            };\n        ;\n            r.prevent();\n        },\n        _handleKeyEventOnTrigger: function(q) {\n            var r = g.getKeyCode(q);\n            switch (r) {\n              case m.DOWN:\n            \n              case m.UP:\n                break;\n              default:\n                var s = String.fromCharCode(r).toLowerCase();\n                if (!/^\\s?$/.test(s)) {\n                    this._popover.showLayer();\n                    this._menu.JSBNG__blur();\n                    if (((this._menu.handleKeydown(r, q) === false))) {\n                        this._popover.hideLayer();\n                        l.set(this._triggerElem);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        _onMenuDone: function(q) {\n            this._popover.hideLayer.bind(this._popover).defer();\n            if (n.isKeyDown()) {\n                l.set(this._triggerElem);\n            }\n        ;\n        ;\n        },\n        enable: function() {\n            this._popover.enable();\n        },\n        disable: function() {\n            this._popover.disable();\n        }\n    });\n    e.exports = p;\n});\n__d(\"PopoverAsyncMenu\", [\"JSBNG__Event\",\"AsyncRequest\",\"Class\",\"PopoverMenu\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"Class\"), j = b(\"PopoverMenu\"), k = b(\"copyProperties\"), l = {\n    }, m = 0;\n    function n(o, p, q, r, s) {\n        this._endpoint = r;\n        this._loadingMenu = q;\n        this._instanceId = m++;\n        l[this._instanceId] = this;\n        this._mouseoverListener = g.listen(p, \"mouseover\", this._fetchMenu.bind(this));\n        this.parent.construct(this, o, p, null, s);\n    };\n;\n    n.setMenu = function(o, p) {\n        l[o].setMenu(p);\n    };\n    n.getInstance = function(o) {\n        return l[o];\n    };\n    i.extend(n, j);\n    k(n.prototype, {\n        _fetched: false,\n        _mouseoverListener: null,\n        _onLayerInit: function() {\n            if (!this._menu) {\n                this.setMenu(this._loadingMenu);\n            }\n        ;\n        ;\n            this._fetchMenu();\n            this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n        },\n        _fetchMenu: function() {\n            if (this._fetched) {\n                return;\n            }\n        ;\n        ;\n            new h().setURI(this._endpoint).setData({\n                pmid: this._instanceId\n            }).send();\n            this._fetched = true;\n            if (this._mouseoverListener) {\n                this._mouseoverListener.remove();\n                this._mouseoverListener = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"PopoverMenuInterface\", [\"ArbiterMixin\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j() {\n    \n    };\n;\n    h(j.prototype, g, {\n        getRoot: i,\n        onShow: i,\n        onHide: i,\n        focusAnItem: i.thatReturnsFalse,\n        JSBNG__blur: i,\n        handleKeydown: i.thatReturnsFalse,\n        done: function() {\n            this.inform(\"done\");\n        }\n    });\n    e.exports = j;\n});\n__d(\"PopoverMenuOverlappingBorder\", [\"CSS\",\"DOM\",\"Style\",\"copyProperties\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"Style\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"shield\");\n    function m(n) {\n        this._popoverMenu = n;\n        this._popover = n.getPopover();\n        this._triggerElem = n.getTriggerElem();\n    };\n;\n    j(m.prototype, {\n        _shortBorder: null,\n        _setMenuSubscription: null,\n        _showSubscription: null,\n        _menuSubscription: null,\n        enable: function() {\n            this._setMenuSubscription = this._popoverMenu.subscribe(\"setMenu\", l(this._onSetMenu, this));\n        },\n        disable: function() {\n            this._popoverMenu.unsubscribe(this._setMenuSubscription);\n            this._setMenuSubscription = null;\n            this._removeBorderSubscriptions();\n            this._removeShortBorder();\n        },\n        _onSetMenu: function() {\n            this._removeBorderSubscriptions();\n            this._menu = this._popoverMenu.getMenu();\n            this._renderShortBorder(this._menu.getRoot());\n            this._showSubscription = this._popover.subscribe(\"show\", l(this._updateBorder, this));\n            this._menuSubscription = this._menu.subscribe([\"change\",\"resize\",], l(Function.prototype.defer, l(this._updateBorder, this)));\n            this._updateBorder();\n        },\n        _updateBorder: function() {\n            var n = this._menu.getRoot(), o = this._triggerElem.offsetWidth, p = Math.max(((n.offsetWidth - o)), 0);\n            i.set(this._shortBorder, \"width\", ((p + \"px\")));\n        },\n        _renderShortBorder: function(n) {\n            this._shortBorder = h.create(\"div\", {\n                className: \"_54hx\"\n            });\n            h.appendContent(n, this._shortBorder);\n            g.addClass(n, \"_54hy\");\n        },\n        _removeShortBorder: function() {\n            if (this._shortBorder) {\n                h.remove(this._shortBorder);\n                this._shortBorder = null;\n                g.removeClass(this._popoverMenu.getMenu().getRoot(), \"_54hy\");\n            }\n        ;\n        ;\n        },\n        _removeBorderSubscriptions: function() {\n            if (this._showSubscription) {\n                this._popover.unsubscribe(this._showSubscription);\n                this._showSubscription = null;\n            }\n        ;\n        ;\n            if (this._menuSubscription) {\n                this._menu.unsubscribe(this._menuSubscription);\n                this._menuSubscription = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"PostLoadJS\", [\"Bootloader\",\"Run\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"Run\"), i = b(\"emptyFunction\");\n    function j(l, m) {\n        h.onAfterLoad(function() {\n            g.loadModules.call(g, [l,], m);\n        });\n    };\n;\n    var k = {\n        loadAndRequire: function(l) {\n            j(l, i);\n        },\n        loadAndCall: function(l, m, n) {\n            j(l, function(o) {\n                o[m].apply(o, n);\n            });\n        }\n    };\n    e.exports = k;\n});\n__d(\"ContextualLayerDimensions\", [\"DOM\",\"Locale\",\"JSBNG__Rect\",\"Vector\",\"ViewportBounds\",\"ge\",\"getOverlayZIndex\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Locale\"), i = b(\"JSBNG__Rect\"), j = b(\"Vector\"), k = b(\"ViewportBounds\"), l = b(\"ge\"), m = b(\"getOverlayZIndex\"), n = {\n        getViewportRect: function(o) {\n            var p = l(\"globalContainer\"), q = o.getContext(), r = ((((p && g.contains(p, q))) || ((m(q) < 300)))), s = i.getViewportBounds();\n            if (r) {\n                s.t += k.getTop();\n                if (h.isRTL()) {\n                    s.r -= k.getLeft();\n                    s.l += k.getRight();\n                }\n                 else {\n                    s.r -= k.getRight();\n                    s.l += k.getLeft();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return s;\n        },\n        getLayerRect: function(o, p) {\n            var q = o.getContextBounds(\"viewport\"), r = o.simulateOrientation(p, function() {\n                return j.getElementDimensions(o.getContent());\n            }), s = ((q.t + p.getOffsetY()));\n            if (((p.getPosition() === \"above\"))) {\n                s -= r.y;\n            }\n             else if (((p.getPosition() === \"below\"))) {\n                s += ((q.b - q.t));\n            }\n            \n        ;\n        ;\n            var t = ((q.l + p.getOffsetX())), u = ((q.r - q.l));\n            if (p.isVertical()) {\n                var v = p.getAlignment();\n                if (((v === \"center\"))) {\n                    t += ((((u - r.x)) / 2));\n                }\n                 else if (((((v === \"right\")) !== h.isRTL()))) {\n                    t += ((u - r.x));\n                }\n                \n            ;\n            ;\n            }\n             else if (((((p.getPosition() === \"right\")) !== h.isRTL()))) {\n                t += u;\n            }\n             else t -= r.x;\n            \n        ;\n        ;\n            return new i(s, ((t + r.x)), ((s + r.y)), t, \"viewport\");\n        }\n    };\n    e.exports = n;\n});\n__d(\"ContextualLayerAutoFlip\", [\"ContextualLayerDimensions\",\"DOM\",\"Vector\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ContextualLayerDimensions\"), h = b(\"DOM\"), i = b(\"Vector\"), j = b(\"arrayContains\"), k = b(\"copyProperties\");\n    function l(m) {\n        this._layer = m;\n    };\n;\n    k(l.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"adjust\", this._adjustOrientation.bind(this));\n            if (this._layer.isShown()) {\n                this._layer.updatePosition();\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n            if (this._layer.isShown()) {\n                this._layer.updatePosition();\n            }\n        ;\n        ;\n        },\n        _adjustOrientation: function(m, n) {\n            var o = this._getValidPositions(n);\n            if (!o.length) {\n                n.invalidate();\n                return;\n            }\n        ;\n        ;\n            var p = g.getViewportRect(this._layer), q = this._getValidAlignments(n), r, s, t;\n            for (r = 0; ((r < q.length)); r++) {\n                n.setAlignment(q[r]);\n                for (s = 0; ((s < o.length)); s++) {\n                    n.setPosition(o[s]);\n                    t = g.getLayerRect(this._layer, n);\n                    if (p.contains(t)) {\n                        return;\n                    }\n                ;\n                ;\n                };\n            ;\n            };\n        ;\n            n.setPosition(((j(o, \"below\") ? \"below\" : o[0])));\n            for (r = 0; ((r < q.length)); r++) {\n                n.setAlignment(q[r]);\n                t = g.getLayerRect(this._layer, n);\n                if (((((t.l >= p.l)) && ((t.r <= p.r))))) {\n                    return;\n                }\n            ;\n            ;\n            };\n        ;\n            n.setAlignment(q[0]);\n        },\n        _getValidPositions: function(m) {\n            var n = [m.getPosition(),m.getOppositePosition(),], o = this._layer.getContextScrollParent();\n            if (((((o === window)) || ((o === h.getDocumentScrollElement()))))) {\n                return n;\n            }\n        ;\n        ;\n            var p = this._layer.getContext(), q = i.getElementPosition(o, \"viewport\").y, r = i.getElementPosition(p, \"viewport\").y;\n            if (m.isVertical()) {\n                return n.filter(function(t) {\n                    if (((t === \"above\"))) {\n                        return ((r >= q));\n                    }\n                     else {\n                        var u = ((q + o.offsetHeight)), v = ((r + p.offsetHeight));\n                        return ((v <= u));\n                    }\n                ;\n                ;\n                });\n            }\n             else {\n                var s = ((q + o.offsetHeight));\n                if (((((r >= q)) && ((((r + p.offsetHeight)) <= s))))) {\n                    return n;\n                }\n                 else return []\n            ;\n            }\n        ;\n        ;\n        },\n        _getValidAlignments: function(m) {\n            var n = [\"left\",\"right\",\"center\",], o = m.getAlignment(), p = n.indexOf(o);\n            if (((p > 0))) {\n                n.splice(p, 1);\n                n.unshift(o);\n            }\n        ;\n        ;\n            return n;\n        }\n    });\n    e.exports = l;\n});\n__d(\"Tooltip\", [\"JSBNG__Event\",\"AsyncRequest\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"URI\",\"copyProperties\",\"emptyFunction\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"ContextualLayer\"), j = b(\"ContextualLayerAutoFlip\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Style\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"cx\"), s = b(\"tx\"), t = null, u = null, v = null, w = [], x;\n    function y() {\n        if (!u) {\n            v = m.create(\"div\", {\n                className: \"tooltipContent\"\n            });\n            var fa = m.create(\"i\", {\n                className: \"arrow\"\n            }), ga = m.create(\"div\", {\n                className: \"uiTooltipX\"\n            }, [v,fa,]);\n            u = new i({\n            }, ga);\n            u.shouldSetARIAProperties(false);\n            u.enableBehavior(j);\n        }\n    ;\n    ;\n    };\n;\n    function z(fa) {\n        return p({\n            JSBNG__content: fa.getAttribute(\"aria-label\"),\n            position: ((fa.getAttribute(\"data-tooltip-position\") || \"above\")),\n            alignH: ((fa.getAttribute(\"data-tooltip-alignh\") || \"left\"))\n        }, l.get(fa, \"tooltip\"));\n    };\n;\n    function aa(fa, ga) {\n        var ha = z(fa);\n        l.set(fa, \"tooltip\", {\n            JSBNG__content: ((ga.JSBNG__content || ha.JSBNG__content)),\n            position: ((ga.position || ha.position)),\n            alignH: ((ga.alignH || ha.alignH)),\n            suspend: ((ga.suspend || ha.suspend))\n        });\n        fa.setAttribute(\"data-hover\", \"tooltip\");\n    };\n;\n    function ba(fa, ga) {\n        ea.set(fa, \"Loading...\");\n        new h(ga).setHandler(function(ha) {\n            ea.set(fa, ha.getPayload());\n        }).setErrorHandler(q).send();\n    };\n;\n    var ca = /(\\r\\n|[\\r\\n])/;\n    function da(fa) {\n        return fa.split(ca).map(function(ga) {\n            return ((ca.test(ga) ? m.create(\"br\") : ga));\n        });\n    };\n;\n    var ea = {\n        process: function(fa, ga) {\n            if (!m.contains(fa, ga)) {\n                return;\n            }\n        ;\n        ;\n            if (((((fa !== t)) && !fa.getAttribute(\"data-tooltip-suspend\")))) {\n                var ha = fa.getAttribute(\"data-tooltip-uri\");\n                if (ha) {\n                    fa.removeAttribute(\"data-tooltip-uri\");\n                    ba(fa, ha);\n                }\n            ;\n            ;\n                ea.show(fa);\n            }\n        ;\n        ;\n        },\n        remove: function(fa) {\n            l.remove(fa, \"tooltip\");\n            fa.removeAttribute(\"data-hover\");\n            fa.removeAttribute(\"data-tooltip-position\");\n            fa.removeAttribute(\"data-tooltip-alignh\");\n            ((((fa === t)) && ea.hide()));\n        },\n        suspend: function(fa) {\n            fa.setAttribute(\"data-tooltip-suspend\", true);\n            ((((fa === t)) && ea.hide()));\n        },\n        unsuspend: function(fa) {\n            fa.removeAttribute(\"data-tooltip-suspend\");\n        },\n        hide: function() {\n            if (t) {\n                u.hide();\n                t = null;\n                while (w.length) {\n                    w.pop().remove();\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n        },\n        set: function(fa, ga, ha, ia) {\n            if (((ha || ia))) {\n                aa(fa, {\n                    position: ha,\n                    alignH: ia\n                });\n            }\n        ;\n        ;\n            if (((ga instanceof o))) {\n                if (((fa === t))) {\n                    ba(fa, ga);\n                }\n                 else fa.setAttribute(\"data-tooltip-uri\", ga);\n            ;\n            ;\n            }\n             else {\n                if (((typeof ga !== \"string\"))) {\n                    ga = m.create(\"div\", {\n                    }, ga);\n                    fa.setAttribute(\"aria-label\", m.getText(ga));\n                }\n                 else fa.setAttribute(\"aria-label\", ga);\n            ;\n            ;\n                aa(fa, {\n                    JSBNG__content: ga\n                });\n                ((((fa === t)) && ea.show(fa)));\n            }\n        ;\n        ;\n        },\n        show: function(fa) {\n            y();\n            ea.hide();\n            var ga = z(fa);\n            if (!ga.JSBNG__content) {\n                return;\n            }\n        ;\n        ;\n            var ha = 0, ia = 0;\n            if (((((ga.position === \"left\")) || ((ga.position === \"right\"))))) {\n                x = ((x || k.hasClass(JSBNG__document.body, \"_6nw\")));\n                var ja = ((x ? 28 : 20));\n                ia = ((((fa.offsetHeight - ja)) / 2));\n            }\n             else if (((ga.alignH !== \"center\"))) {\n                var ka = fa.offsetWidth;\n                if (((ka < 18))) {\n                    ha = ((((((ka - 18)) / 2)) * ((((ga.alignH === \"right\")) ? -1 : 1))));\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            u.setContext(fa).setOffsetX(ha).setOffsetY(ia).setPosition(ga.position).setAlignment(ga.alignH);\n            if (((typeof ga.JSBNG__content === \"string\"))) {\n                k.addClass(u.getRoot(), \"invisible_elem\");\n                var la = m.create(\"span\", {\n                }, da(ga.JSBNG__content)), ma = m.create(\"div\", {\n                    className: \"tooltipText\"\n                }, la);\n                m.setContent(v, ma);\n                u.show();\n                var na;\n                if (ma.getClientRects) {\n                    var oa = ma.getClientRects()[0];\n                    if (oa) {\n                        na = Math.round(((oa.right - oa.left)));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (!na) {\n                    na = ma.offsetWidth;\n                }\n            ;\n            ;\n                if (((na < la.offsetWidth))) {\n                    k.addClass(ma, \"tooltipWrap\");\n                    u.updatePosition();\n                }\n            ;\n            ;\n                k.removeClass(u.getRoot(), \"invisible_elem\");\n            }\n             else {\n                m.setContent(v, ga.JSBNG__content);\n                u.show();\n            }\n        ;\n        ;\n            var pa = function(ra) {\n                if (!m.contains(t, ra.getTarget())) {\n                    ea.hide();\n                }\n            ;\n            ;\n            };\n            w.push(g.listen(JSBNG__document.documentElement, \"mouseover\", pa), g.listen(JSBNG__document.documentElement, \"focusin\", pa));\n            var qa = n.getScrollParent(fa);\n            if (((qa !== window))) {\n                w.push(g.listen(qa, \"JSBNG__scroll\", ea.hide));\n            }\n        ;\n        ;\n            w.push(g.listen(fa, \"click\", ea.hide));\n            t = fa;\n        }\n    };\n    g.listen(window, \"JSBNG__scroll\", ea.hide);\n    e.exports = ea;\n});\n__d(\"SelectorDeprecated\", [\"JSBNG__Event\",\"Arbiter\",\"Button\",\"ContextualLayer\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"HTML\",\"Keys\",\"KeyStatus\",\"MenuDeprecated\",\"Parent\",\"Style\",\"Toggler\",\"Tooltip\",\"Vector\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"Button\"), j = b(\"ContextualLayer\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Focus\"), o = b(\"HTML\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"MenuDeprecated\"), s = b(\"Parent\"), t = b(\"Style\"), u = b(\"Toggler\"), v = b(\"Tooltip\"), w = b(\"Vector\"), x = b(\"arrayContains\"), y = b(\"copyProperties\"), z = b(\"emptyFunction\"), aa, ba, ca = [], da;\n    function ea(pa) {\n        return s.byClass(pa, \"uiSelector\");\n    };\n;\n    function fa(pa) {\n        return s.byClass(pa, \"uiSelectorButton\");\n    };\n;\n    function ga() {\n        if (!ba) {\n            ba = new j({\n                position: \"below\"\n            }, m.create(\"div\"));\n            k.addClass(ba.getRoot(), \"uiSelectorContextualLayer\");\n        }\n    ;\n    ;\n        return ba;\n    };\n;\n    function ha(pa) {\n        return m.scry(pa, \"select\")[0];\n    };\n;\n    function ia(pa) {\n        return m.JSBNG__find(pa, \"div.uiSelectorMenuWrapper\");\n    };\n;\n    function ja() {\n        ja = z;\n        r.subscribe(\"select\", function(pa, qa) {\n            if (((((!aa || !qa)) || ((qa.menu !== oa.getSelectorMenu(aa)))))) {\n                return;\n            }\n        ;\n        ;\n            var ra = ka(aa), sa = la(qa.item);\n            if (sa) {\n                var ta = aa, ua = oa.isOptionSelected(qa.item), va = oa.inform(\"select\", {\n                    selector: ta,\n                    option: qa.item,\n                    clone: da\n                });\n                if (((va === false))) {\n                    return;\n                }\n            ;\n            ;\n                if (((ra || !ua))) {\n                    oa.setSelected(ta, oa.getOptionValue(qa.item), !ua);\n                    oa.inform(\"toggle\", {\n                        selector: ta,\n                        option: qa.item\n                    });\n                    oa.inform(\"change\", {\n                        selector: ta\n                    });\n                    h.inform(\"Form/change\", {\n                        node: ta\n                    });\n                    if (ma(ta)) {\n                        l.set(ta, \"dirty\", true);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((!ra || !sa))) {\n                ((aa && oa.toggle(aa)));\n            }\n        ;\n        ;\n        });\n    };\n;\n    function ka(pa) {\n        return !!pa.getAttribute(\"data-multiple\");\n    };\n;\n    function la(pa) {\n        return k.hasClass(pa, \"uiSelectorOption\");\n    };\n;\n    function ma(pa) {\n        return !!pa.getAttribute(\"data-autosubmit\");\n    };\n;\n    var na = function() {\n        na = z;\n        var pa = {\n            keydown: function(JSBNG__event) {\n                var qa = JSBNG__event.getTarget();\n                if (m.isInputNode(qa)) {\n                    return;\n                }\n            ;\n            ;\n                switch (g.getKeyCode(JSBNG__event)) {\n                  case p.DOWN:\n                \n                  case p.SPACE:\n                \n                  case p.UP:\n                    if (fa(qa)) {\n                        var ra = ea(qa);\n                        oa.toggle(ra);\n                        return false;\n                    }\n                ;\n                ;\n                    break;\n                  case p.ESC:\n                    if (aa) {\n                        var sa = oa.getSelectorButton(aa);\n                        oa.toggle(aa);\n                        ((sa && n.set(sa)));\n                        return false;\n                    }\n                ;\n                ;\n                    break;\n                };\n            ;\n            },\n            mouseover: function(JSBNG__event) {\n                var qa = s.byAttribute(JSBNG__event.getTarget(), \"ajaxify\");\n                if (((qa && k.hasClass(qa, \"uiSelectorButton\")))) {\n                    oa.loadMenu(ea(qa));\n                }\n            ;\n            ;\n            }\n        };\n        g.listen(JSBNG__document.body, pa);\n    };\n    u.subscribe([\"show\",\"hide\",], function(pa, qa) {\n        var ra = ea(qa.getActive());\n        if (ra) {\n            na();\n            ja();\n            var sa = oa.getSelectorButton(ra), ta = oa.getSelectorMenu(ra), ua = ((pa === \"show\"));\n            sa.setAttribute(\"aria-expanded\", ((ua ? \"true\" : \"false\")));\n            if (ua) {\n                aa = ra;\n                if (k.hasClass(sa, \"uiButtonDisabled\")) {\n                    oa.setEnabled(ra, false);\n                    return false;\n                }\n            ;\n            ;\n                ta = ((ta || oa.loadMenu(ra)));\n                var va = t.getScrollParent(ra), wa = ((((va !== window)) && ((va !== m.getDocumentScrollElement()))));\n                if (((wa || k.hasClass(ra, \"uiSelectorUseLayer\")))) {\n                    if (wa) {\n                        ca.push(g.listen(va, \"JSBNG__scroll\", function() {\n                            qa.hide();\n                        }));\n                    }\n                ;\n                ;\n                    da = m.create(\"div\", {\n                        className: ra.className\n                    });\n                    k.addClass(da, \"invisible_elem\");\n                    w.getElementDimensions(ra).setElementDimensions(da);\n                    m.replace(ra, da);\n                    var xa = k.hasClass(ra, \"uiSelectorRight\"), ya = k.hasClass(ra, \"uiSelectorBottomUp\");\n                    ga().setContext(da).setContent(ra).setPosition(((ya ? \"above\" : \"below\"))).setAlignment(((xa ? \"right\" : \"left\"))).show();\n                }\n            ;\n            ;\n                r.register(ta);\n                if (q.isKeyDown()) {\n                    var za = r.getCheckedItems(ta);\n                    if (!za.length) {\n                        za = r.getEnabledItems(ta);\n                    }\n                ;\n                ;\n                    r.focusItem(za[0]);\n                }\n            ;\n            ;\n            }\n             else {\n                aa = null;\n                if (da) {\n                    while (ca.length) {\n                        ca.pop().remove();\n                    ;\n                    };\n                ;\n                    m.replace(da, ra);\n                    ga().hide();\n                    da = null;\n                }\n            ;\n            ;\n                ((ta && r.unregister(ta)));\n                if (((ma(ra) && l.get(ra, \"dirty\")))) {\n                    var ab = m.scry(ra, \"input.submitButton\")[0];\n                    ((ab && ab.click()));\n                    l.remove(ra, \"dirty\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            k.conditionClass(oa.getSelectorButton(ra), \"selected\", ua);\n            oa.inform(((ua ? \"open\" : \"close\")), {\n                selector: ra,\n                clone: da\n            });\n        }\n    ;\n    ;\n    });\n    var oa = y(new h(), {\n        attachMenu: function(pa, qa, ra) {\n            pa = ea(pa);\n            if (pa) {\n                ((aa && r.unregister(oa.getSelectorMenu(aa))));\n                m.setContent(ia(pa), qa);\n                ((aa && r.register(oa.getSelectorMenu(pa))));\n                ((da && ga().updatePosition()));\n                if (ra) {\n                    var sa = pa.getAttribute(\"data-name\");\n                    ((sa && ra.setAttribute(\"JSBNG__name\", sa)));\n                    if (!ka(pa)) {\n                        ra.setAttribute(\"multiple\", false);\n                    }\n                ;\n                ;\n                    var ta = ha(pa);\n                    if (ta) {\n                        m.replace(ta, ra);\n                    }\n                     else m.insertAfter(pa.firstChild, ra);\n                ;\n                ;\n                }\n            ;\n            ;\n                return true;\n            }\n        ;\n        ;\n        },\n        getOption: function(pa, qa) {\n            var ra = oa.getOptions(pa), sa = ra.length;\n            while (sa--) {\n                if (((qa === oa.getOptionValue(ra[sa])))) {\n                    return ra[sa];\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        getOptions: function(pa) {\n            var qa = r.getItems(oa.getSelectorMenu(pa));\n            return qa.filter(la);\n        },\n        getEnabledOptions: function(pa) {\n            var qa = r.getEnabledItems(oa.getSelectorMenu(pa));\n            return qa.filter(la);\n        },\n        getSelectedOptions: function(pa) {\n            return r.getCheckedItems(oa.getSelectorMenu(pa));\n        },\n        getOptionText: function(pa) {\n            return r.getItemLabel(pa);\n        },\n        getOptionValue: function(pa) {\n            var qa = ea(pa), ra = ha(qa), sa = oa.getOptions(qa).indexOf(pa);\n            return ((((sa >= 0)) ? ra.options[((sa + 1))].value : \"\"));\n        },\n        getSelectorButton: function(pa) {\n            return m.JSBNG__find(pa, \"a.uiSelectorButton\");\n        },\n        getSelectorMenu: function(pa) {\n            return m.scry(pa, \"div.uiSelectorMenu\")[0];\n        },\n        getValue: function(pa) {\n            var qa = ha(pa);\n            if (!qa) {\n                return null;\n            }\n        ;\n        ;\n            if (!ka(pa)) {\n                return qa.value;\n            }\n        ;\n        ;\n            var ra = [], sa = qa.options;\n            for (var ta = 1, ua = sa.length; ((ta < ua)); ta++) {\n                if (sa[ta].selected) {\n                    ra.push(sa[ta].value);\n                }\n            ;\n            ;\n            };\n        ;\n            return ra;\n        },\n        isOptionSelected: function(pa) {\n            return r.isItemChecked(pa);\n        },\n        listen: function(pa, qa, ra) {\n            return this.subscribe(qa, function(sa, ta) {\n                if (((ta.selector === pa))) {\n                    return ra(ta, sa);\n                }\n            ;\n            ;\n            });\n        },\n        loadMenu: function(pa) {\n            var qa = oa.getSelectorMenu(pa);\n            if (!qa) {\n                var ra = oa.getSelectorButton(pa), sa = ra.getAttribute(\"ajaxify\");\n                if (sa) {\n                    d([\"AsyncRequest\",], function(ua) {\n                        ua.bootstrap(sa, ra);\n                    });\n                    var ta = o(((((((((((((\"\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\" + \"\\u003Cdiv class=\\\"uiMenu uiSelectorMenu loading\\\"\\u003E\")) + \"\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\")) + \"\\u003Cli\\u003E\\u003Cspan\\u003E\\u003C/span\\u003E\\u003C/li\\u003E\")) + \"\\u003C/ul\\u003E\")) + \"\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\")));\n                    m.appendContent(ra.parentNode, ta);\n                    qa = oa.getSelectorMenu(pa);\n                    ra.removeAttribute(\"JSBNG__onmouseover\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return qa;\n        },\n        setButtonLabel: function(pa, qa) {\n            var ra = oa.getSelectorButton(pa), sa = parseInt(ra.getAttribute(\"data-length\"), 10);\n            qa = ((((qa || ra.getAttribute(\"data-label\"))) || \"\"));\n            i.setLabel(ra, qa);\n            if (((typeof qa === \"string\"))) {\n                k.conditionClass(ra, \"uiSelectorBigButtonLabel\", ((qa.length > sa)));\n                if (((sa && ((qa.length > sa))))) {\n                    ra.setAttribute(\"title\", qa);\n                }\n                 else ra.removeAttribute(\"title\");\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        setButtonTooltip: function(pa, qa) {\n            var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n            ((sa && v.set(sa, ((((qa || ra.getAttribute(\"data-tooltip\"))) || \"\")))));\n        },\n        updateButtonARIALabel: function(pa, qa) {\n            var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n            if (sa) {\n                var ta = ra.getAttribute(\"data-ariaprefix\");\n                if (ta) {\n                    ra.setAttribute(\"aria-label\", ((((ta + \": \")) + qa)));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        setEnabled: function(pa, qa) {\n            if (((((!qa && aa)) && ((ea(pa) === aa))))) {\n                oa.toggle(pa);\n            }\n        ;\n        ;\n            i.setEnabled(oa.getSelectorButton(pa), qa);\n        },\n        setOptionEnabled: function(pa, qa) {\n            r.setItemEnabled(pa, qa);\n        },\n        setSelected: function(pa, qa, ra) {\n            ra = ((ra !== false));\n            var sa = oa.getOption(pa, qa);\n            if (!sa) {\n                return;\n            }\n        ;\n        ;\n            var ta = oa.isOptionSelected(sa);\n            if (((ra !== ta))) {\n                if (((!ka(pa) && !ta))) {\n                    var ua = oa.getSelectedOptions(pa)[0];\n                    ((ua && r.toggleItem(ua)));\n                }\n            ;\n            ;\n                r.toggleItem(sa);\n            }\n        ;\n        ;\n            oa.updateSelector(pa);\n        },\n        toggle: function(pa) {\n            u.toggle(m.scry(ea(pa), \"div.wrap\")[0]);\n        },\n        updateSelector: function(pa) {\n            var qa = oa.getOptions(pa), ra = oa.getSelectedOptions(pa), sa = ha(pa).options, ta = [], ua = [];\n            for (var va = 0, wa = qa.length; ((va < wa)); va++) {\n                var xa = x(ra, qa[va]);\n                sa[((va + 1))].selected = xa;\n                if (xa) {\n                    var ya = oa.getOptionText(qa[va]);\n                    ta.push(ya);\n                    ua.push(((qa[va].getAttribute(\"data-tooltip\") || ya)));\n                }\n            ;\n            ;\n            };\n        ;\n            sa[0].selected = !ra.length;\n            var za = k.hasClass(pa, \"uiSelectorDynamicLabel\"), ab = k.hasClass(pa, \"uiSelectorDynamicTooltip\");\n            if (((za || ab))) {\n                var bb = \"\";\n                if (ka(pa)) {\n                    var cb = oa.getSelectorButton(pa);\n                    bb = ((cb.getAttribute(\"data-delimiter\") || \", \"));\n                }\n            ;\n            ;\n                ta = ta.join(bb);\n                ua = ua.join(bb);\n                if (za) {\n                    oa.setButtonLabel(pa, ta);\n                    oa.updateButtonARIALabel(pa, ta);\n                }\n            ;\n            ;\n                ((ab && oa.setButtonTooltip(pa, ua)));\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = oa;\n});\n__d(\"SubscriptionsHandler\", [\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSLogger\"), h = b(\"copyProperties\"), i = g.create(\"subscriptions_handler\");\n    function j(k) {\n        this._name = ((k || \"unnamed\"));\n        this._subscriptions = [];\n    };\n;\n    h(j.prototype, {\n        addSubscriptions: function() {\n            if (this._subscriptions) {\n                Array.prototype.push.apply(this._subscriptions, arguments);\n            }\n             else {\n                i.warn(((this._name + \".subscribe_while_released\")));\n                for (var k = 0, l = arguments.length; ((k < l)); k++) {\n                    this._unsubscribe(arguments[k]);\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n        },\n        engage: function() {\n            this._subscriptions = ((this._subscriptions || []));\n        },\n        release: function() {\n            if (this._subscriptions) {\n                this._subscriptions.forEach(this._unsubscribe.bind(this));\n            }\n        ;\n        ;\n            this._subscriptions = null;\n        },\n        _unsubscribe: function(k) {\n            if (k.remove) {\n                k.remove();\n            }\n             else if (k.reset) {\n                k.reset();\n            }\n             else if (k.unsubscribe) {\n                k.unsubscribe();\n            }\n             else i.error(((this._name + \".invalid\")), k);\n            \n            \n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"UserActivity\", [\"Arbiter\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"JSBNG__Event\"), i = 5000, j = 500, k = -5, l = JSBNG__Date.now(), m = l, n = {\n        subscribeOnce: function(p) {\n            var q = n.subscribe(function() {\n                n.unsubscribe(q);\n                p();\n            });\n        },\n        subscribe: function(p) {\n            return g.subscribe(\"useractivity/activity\", p);\n        },\n        unsubscribe: function(p) {\n            p.unsubscribe();\n        },\n        isActive: function(p) {\n            return ((((new JSBNG__Date() - l)) < ((p || i))));\n        },\n        getLastInformTime: function() {\n            return m;\n        }\n    };\n    function o(JSBNG__event) {\n        l = JSBNG__Date.now();\n        var p = ((l - m));\n        if (((p > j))) {\n            m = l;\n            g.inform(\"useractivity/activity\", {\n                JSBNG__event: JSBNG__event,\n                idleness: p,\n                last_inform: m\n            });\n        }\n         else if (((p < k))) {\n            m = l;\n        }\n        \n    ;\n    ;\n    };\n;\n    h.listen(window, \"JSBNG__scroll\", o);\n    h.listen(window, \"JSBNG__focus\", o);\n    h.listen(JSBNG__document.documentElement, {\n        DOMMouseScroll: o,\n        mousewheel: o,\n        keydown: o,\n        mouseover: o,\n        mousemove: o,\n        click: o\n    });\n    g.subscribe(\"Event/stop\", function(p, q) {\n        o(q.JSBNG__event);\n    });\n    e.exports = n;\n});\n__d(\"enforceMaxLength\", [\"JSBNG__Event\",\"function-extensions\",\"DOM\",\"Input\",\"InputSelection\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"DOM\"), i = b(\"Input\"), j = b(\"InputSelection\"), k = function(n, o) {\n        var p = i.getValue(n), q = p.length, r = ((q - o));\n        if (((r > 0))) {\n            var s, t;\n            try {\n                s = j.get(n);\n                t = s.end;\n            } catch (u) {\n                s = null;\n                t = 0;\n            };\n        ;\n            if (((t >= r))) {\n                q = t;\n            }\n        ;\n        ;\n            var v = ((q - r));\n            if (((v && ((((p.charCodeAt(((v - 1))) & 64512)) === 55296))))) {\n                v--;\n            }\n        ;\n        ;\n            t = Math.min(t, v);\n            i.setValue(n, ((p.slice(0, v) + p.slice(q))));\n            if (s) {\n                j.set(n, Math.min(s.start, t), t);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    }, l = function(JSBNG__event) {\n        var n = JSBNG__event.getTarget(), o = ((n.getAttribute && parseInt(n.getAttribute(\"maxlength\"), 10)));\n        if (((((o > 0)) && h.isNodeOfType(n, [\"input\",\"textarea\",])))) {\n            k.bind(null, n, o).defer();\n        }\n    ;\n    ;\n    }, m = ((((\"maxLength\" in h.create(\"input\"))) && ((\"maxLength\" in h.create(\"textarea\")))));\n    if (!m) {\n        g.listen(JSBNG__document.documentElement, {\n            keydown: l,\n            paste: l\n        });\n    }\n;\n;\n    e.exports = k;\n});\n__d(\"guid\", [], function(a, b, c, d, e, f) {\n    function g() {\n        return ((\"f\" + ((Math.JSBNG__random() * ((1 << 30)))).toString(16).replace(\".\", \"\")));\n    };\n;\n    e.exports = g;\n});\n__d(\"reportData\", [\"EagleEye\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"EagleEye\"), h = b(\"userAction\");\n    function i(j, k) {\n        k = ((k || {\n        }));\n        var l = {\n            ft: ((k.ft || {\n            })),\n            gt: ((k.gt || {\n            }))\n        }, m = \"-\", n = a.ArbiterMonitor, o = (((!!n) ? n.getActFields() : [])), p = (((!n) ? \"r\" : \"a\")), q = [JSBNG__Date.now(),h.getCurrentUECount(),m,j,m,m,p,((a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((((JSBNG__location.pathname + JSBNG__location.search)) + JSBNG__location.hash)))),l,0,0,0,0,].concat(o);\n        g.log(\"act\", q);\n    };\n;\n    e.exports = i;\n});\n__d(\"NetEgo\", [\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"ge\",\"Animation\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"URI\"), k = b(\"ge\"), l = b(\"Animation\"), m = {\n        setup: function(n) {\n            g.subscribe([\"page/liked\",\"FriendRequest/sending\",], function(o, p) {\n                if (((((n == p.id)) || ((n == p.uid))))) {\n                    var q = k(JSBNG__document.body, \".ego_unit_container\");\n                    if (q) {\n                        var r = i.scry(q, \".ego_unit\"), s = r.length;\n                        for (var t = 0; ((t < s)); t++) {\n                            var u = r[t].getAttribute(\"data-ego-fbid\");\n                            if (((((u == p.id)) || ((u == p.uid))))) {\n                                var v = i.JSBNG__find(r[t], \".ego_action a\");\n                                if (v) {\n                                    v.click();\n                                }\n                            ;\n                            ;\n                                break;\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n        },\n        updateXids: function(n, o) {\n            if (((((n.length == 0)) && ((o.length == 0))))) {\n                return;\n            }\n        ;\n        ;\n            var p = function(z) {\n                return function(aa) {\n                    var ba = aa.getAttribute(z);\n                    if (!ba) {\n                        return false;\n                    }\n                ;\n                ;\n                    var ca = new j(ba).getQueryData();\n                    return !!ca.xids;\n                };\n            }, q = i.scry(JSBNG__document.body, \".ego_unit a\");\n            q = q.filter(p(\"ajaxify\"));\n            if (((q.length == 0))) {\n                return;\n            }\n        ;\n        ;\n            var r = new j(q[0].getAttribute(\"ajaxify\")), s = r.getQueryData();\n            if (!s.xids) {\n                return;\n            }\n        ;\n        ;\n            try {\n                var u = JSON.parse(s.xids);\n            } catch (t) {\n                return;\n            };\n        ;\n            for (var v = 0; ((v < n.length)); ++v) {\n                delete u[n[v]];\n            ;\n            };\n        ;\n            for (v = 0; ((v < o.length)); ++v) {\n                u[o[v]] = 1;\n            ;\n            };\n        ;\n            var w = JSON.stringify(u), x = function(z, aa) {\n                r = new j(z.getAttribute(aa));\n                s = r.getQueryData();\n                s.xids = w;\n                r.setQueryData(s);\n                z.setAttribute(aa, r.toString());\n            };\n            for (v = 0; ((v < q.length)); ++v) {\n                x(q[v], \"ajaxify\");\n            ;\n            };\n        ;\n            var y = i.scry(JSBNG__document.body, \".ego_unit form\");\n            y = y.filter(p(\"action\"));\n            for (v = 0; ((v < y.length)); ++v) {\n                x(y[v], \"action\");\n            ;\n            };\n        ;\n        },\n        replaceUnit: function(n, o, p, q) {\n            var r = i.insertAfter(n, o);\n            r.forEach(h.hide);\n            if (((((q !== undefined)) && ((q !== null))))) {\n                (function() {\n                    m._replaceUnitFadeout(n, r, p);\n                }).defer(q);\n            }\n             else m._replaceUnitFadeout(n, r, p);\n        ;\n        ;\n        },\n        _replaceUnitFadeout: function(n, o, p) {\n            if (p) {\n                new l(n).from(\"opacity\", 1).to(\"opacity\", 0).duration(p).checkpoint(1, function() {\n                    m._replaceUnitElement(n, o);\n                }).go();\n            }\n             else m._replaceUnitElement(n, o);\n        ;\n        ;\n        },\n        _replaceUnitElement: function(n, o) {\n            i.remove(n);\n            o.forEach(h.show);\n            g.inform(\"netego_replacedUnit\");\n            m.clearHeader();\n        },\n        clearHeader: function() {\n            var n = i.scry(JSBNG__document.body, \".ego_column\"), o = [];\n            for (var p = 0; ((p < n.length)); ++p) {\n                o = o.concat(i.scry(n[p], \".uiHeader\"));\n            ;\n            };\n        ;\n            for (p = 0; ((p < o.length)); ++p) {\n                var q = o[p].nextSibling;\n                if (((!q || ((q.childNodes.length === 0))))) {\n                    i.remove(o[p]);\n                }\n                 else if (((q.childNodes.length === 1))) {\n                    var r = q.childNodes[0];\n                    if (((h.hasClass(r, \"ego_appended_units\") && ((r.childNodes.length === 0))))) {\n                        i.remove(o[p]);\n                    }\n                ;\n                ;\n                }\n                \n            ;\n            ;\n            };\n        ;\n        }\n    };\n    e.exports = m;\n});\n__d(\"ControlledReferer\", [\"JSBNG__Event\",\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"URI\"), i = b(\"UserAgent\"), j = {\n        useFacebookReferer: function(k, l, m) {\n            var n = false;\n            function o() {\n                if (n) {\n                    return;\n                }\n            ;\n            ;\n                var q = k.contentWindow.JSBNG__location.pathname;\n                if (((((q !== \"/intern/common/referer_frame.php\")) && ((q !== \"/common/referer_frame.php\"))))) {\n                    return;\n                }\n            ;\n            ;\n                n = true;\n                k.contentWindow.JSBNG__document.body.style.margin = 0;\n                l();\n            };\n        ;\n            var p;\n            if (((JSBNG__document.domain !== \"facebook.com\"))) {\n                p = \"/intern/common/referer_frame.php\";\n            }\n             else if (i.JSBNG__opera()) {\n                p = \"/common/referer_frame.php\";\n            }\n             else if (h().isSecure()) {\n                p = \"https://s-static.ak.facebook.com/common/referer_frame.php\";\n            }\n             else p = \"http://static.ak.facebook.com/common/referer_frame.php\";\n            \n            \n        ;\n        ;\n            if (m) {\n                p += ((\"?fb_source=\" + m));\n            }\n        ;\n        ;\n            g.listen(k, \"load\", o);\n            k.src = p;\n        },\n        useFacebookRefererHtml: function(k, l, m) {\n            j.useFacebookReferer(k, function() {\n                k.contentWindow.JSBNG__document.body.innerHTML = l;\n            }, m);\n        }\n    };\n    e.exports = j;\n});\n__d(\"UIIntentionalStreamMessage\", [], function(a, b, c, d, e, f) {\n    var g = {\n        SET_AUTO_INSERT: \"UIIntentionalStream/setAutoInsert\",\n        UPDATE_STREAM: \"UIIntentionalStreamRefresh/updateStream\",\n        REFRESH_STREAM: \"UIIntentionalStreamRefresh/refreshStream\",\n        UPDATE_AUTOREFRESH_CONFIG: \"UIIntentionalStream/updateAutoRefreshConfig\",\n        UPDATE_HTML_CONTENT: \"UIIntentionalStream/updateHtmlContent\",\n        UPDATE_LAST_REFRESH_TIME: \"UIIntentionalStream/updateLastRefreshTime\",\n        INSERT_STORIES: \"UIIntentionalStream/updateLastRefreshTime\",\n        UNLOAD: \"UIIntentionalStream/unload\"\n    };\n    e.exports = g;\n});\n__d(\"UIPagelet\", [\"AjaxPipeRequest\",\"AsyncRequest\",\"DOM\",\"HTML\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"AjaxPipeRequest\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"ScriptPathState\"), l = b(\"URI\"), m = b(\"copyProperties\"), n = b(\"emptyFunction\"), o = b(\"ge\");\n    function p(q, r, s) {\n        var t = ((((q && i.isElementNode(q))) ? q.id : q));\n        this._id = ((t || null));\n        this._element = o(((q || i.create(\"div\"))));\n        this._src = ((r || null));\n        this._context_data = ((s || {\n        }));\n        this._data = {\n        };\n        this._handler = n;\n        this._request = null;\n        this._use_ajaxpipe = false;\n        this._is_bundle = true;\n        this._allow_cross_page_transition = false;\n        this._append = false;\n    };\n;\n    p.loadFromEndpoint = function(q, r, s, t) {\n        t = ((t || {\n        }));\n        var u = ((\"/ajax/pagelet/generic.php/\" + q));\n        if (t.intern) {\n            u = ((\"/intern\" + u));\n        }\n    ;\n    ;\n        var v = new l(u.replace(/\\/+/g, \"/\"));\n        if (t.subdomain) {\n            v.setSubdomain(t.subdomain);\n        }\n    ;\n    ;\n        var w = new p(r, v, s).setUseAjaxPipe(t.usePipe).setBundleOption(((t.bundle !== false))).setAppend(t.append).setJSNonBlock(t.jsNonblock).setAutomatic(t.automatic).setDisplayCallback(t.displayCallback).setConstHeight(t.constHeight).setAllowCrossPageTransition(t.crossPage).setFinallyHandler(((t.finallyHandler || n))).setTransportErrorHandler(t.transportErrorHandler);\n        ((t.handler && w.setHandler(t.handler)));\n        w.go();\n        return w;\n    };\n    m(p.prototype, {\n        getElement: function() {\n            return this._element;\n        },\n        setHandler: function(q) {\n            this._handler = q;\n            return this;\n        },\n        go: function(q, r) {\n            if (((((arguments.length >= 2)) || ((typeof q == \"string\"))))) {\n                this._src = q;\n                this._data = ((r || {\n                }));\n            }\n             else if (((arguments.length == 1))) {\n                this._data = q;\n            }\n            \n        ;\n        ;\n            this.refresh();\n            return this;\n        },\n        setAllowCrossPageTransition: function(q) {\n            this._allow_cross_page_transition = q;\n            return this;\n        },\n        setBundleOption: function(q) {\n            this._is_bundle = q;\n            return this;\n        },\n        setTransportErrorHandler: function(q) {\n            this.transportErrorHandler = q;\n            return this;\n        },\n        refresh: function() {\n            if (this._use_ajaxpipe) {\n                k.setIsUIPageletRequest(true);\n                this._request = new g();\n                this._request.setCanvasId(this._id).setAppend(this._append).setConstHeight(this._constHeight).setJSNonBlock(this._jsNonblock).setAutomatic(this._automatic).setDisplayCallback(this._displayCallback).setFinallyHandler(this._finallyHandler);\n            }\n             else {\n                var q = function(t) {\n                    this._request = null;\n                    var u = j(t.getPayload());\n                    if (this._append) {\n                        i.appendContent(this._element, u);\n                    }\n                     else i.setContent(this._element, u);\n                ;\n                ;\n                    this._handler();\n                }.bind(this), r = this._displayCallback;\n                this._request = new h().setMethod(\"GET\").setReadOnly(true).setOption(\"bundle\", this._is_bundle).setHandler(function(t) {\n                    if (r) {\n                        r(q.curry(t));\n                    }\n                     else q(t);\n                ;\n                ;\n                    if (this._finallyHandler) {\n                        this._finallyHandler();\n                    }\n                ;\n                ;\n                });\n                if (this.transportErrorHandler) {\n                    this._request.setTransportErrorHandler(this.transportErrorHandler);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var s = {\n            };\n            m(s, this._context_data);\n            m(s, this._data);\n            this._request.setURI(this._src).setAllowCrossPageTransition(this._allow_cross_page_transition).setData({\n                data: JSON.stringify(s)\n            }).send();\n            return this;\n        },\n        cancel: function() {\n            if (this._request) {\n                this._request.abort();\n            }\n        ;\n        ;\n        },\n        setUseAjaxPipe: function(q) {\n            this._use_ajaxpipe = !!q;\n            return this;\n        },\n        setAppend: function(q) {\n            this._append = !!q;\n            return this;\n        },\n        setJSNonBlock: function(q) {\n            this._jsNonblock = !!q;\n            return this;\n        },\n        setAutomatic: function(q) {\n            this._automatic = !!q;\n            return this;\n        },\n        setDisplayCallback: function(q) {\n            this._displayCallback = q;\n            return this;\n        },\n        setConstHeight: function(q) {\n            this._constHeight = !!q;\n            return this;\n        },\n        setFinallyHandler: function(q) {\n            this._finallyHandler = q;\n            return this;\n        }\n    });\n    e.exports = p;\n});\n__d(\"ScrollableArea\", [\"Animation\",\"ArbiterMixin\",\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Run\",\"SimpleDrag\",\"Style\",\"UserAgent\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"Parent\"), o = b(\"Run\"), p = b(\"SimpleDrag\"), q = b(\"Style\"), r = b(\"UserAgent\"), s = b(\"Vector\"), t = b(\"copyProperties\"), u = b(\"throttle\"), v = 12;\n    function w(x, y) {\n        if (!x) {\n            return;\n        }\n    ;\n    ;\n        y = ((y || {\n        }));\n        this._elem = x;\n        this._wrap = l.JSBNG__find(x, \"div.uiScrollableAreaWrap\");\n        this._body = l.JSBNG__find(this._wrap, \"div.uiScrollableAreaBody\");\n        this._content = l.JSBNG__find(this._body, \"div.uiScrollableAreaContent\");\n        this._track = l.JSBNG__find(x, \"div.uiScrollableAreaTrack\");\n        this._gripper = l.JSBNG__find(this._track, \"div.uiScrollableAreaGripper\");\n        this._options = y;\n        this._throttledComputeHeights = u.withBlocking(this._computeHeights, 250, this);\n        this.throttledAdjustGripper = u.withBlocking(this.adjustGripper, 250, this);\n        this._throttledShowGripperAndShadows = u.withBlocking(this._showGripperAndShadows, 250, this);\n        this._throttledRespondMouseMove = u(this._respondMouseMove, 250, this);\n        this.adjustGripper.bind(this).defer();\n        this._listeners = [m.listen(this._wrap, \"JSBNG__scroll\", this._handleScroll.bind(this)),m.listen(x, \"mousemove\", this._handleMouseMove.bind(this)),m.listen(this._track, \"click\", this._handleClickOnTrack.bind(this)),];\n        if (i.hasPointerEvents()) {\n            this._listeners.push(m.listen(x, \"click\", this._handleClickOnTrack.bind(this)));\n        }\n    ;\n    ;\n        if (((y.fade !== false))) {\n            this._listeners.push(m.listen(x, \"mouseenter\", this._handleMouseEnter.bind(this)), m.listen(x, \"mouseleave\", this._handleMouseLeave.bind(this)), m.listen(x, \"focusin\", this.showScrollbar.bind(this, false)), m.listen(x, \"focusout\", this.hideScrollbar.bind(this)));\n        }\n         else if (i.hasPointerEvents()) {\n            this._listeners.push(m.listen(x, \"mouseleave\", j.removeClass.curry(x, \"uiScrollableAreaTrackOver\")));\n        }\n        \n    ;\n    ;\n        if (((r.webkit() || r.chrome()))) {\n            this._listeners.push(m.listen(x, \"mousedown\", function() {\n                var z = m.listen(window, \"mouseup\", function() {\n                    if (x.scrollLeft) {\n                        x.scrollLeft = 0;\n                    }\n                ;\n                ;\n                    z.remove();\n                });\n            }));\n        }\n         else if (r.firefox()) {\n            this._wrap.JSBNG__addEventListener(\"DOMMouseScroll\", function(JSBNG__event) {\n                ((((JSBNG__event.axis === JSBNG__event.HORIZONTAL_AXIS)) && JSBNG__event.preventDefault()));\n            }, false);\n        }\n        \n    ;\n    ;\n        this.initDrag();\n        k.set(this._elem, \"ScrollableArea\", this);\n        if (!y.persistent) {\n            o.onLeave(this.destroy.bind(this));\n        }\n    ;\n    ;\n        if (((y.shadow !== false))) {\n            j.addClass(this._elem, \"uiScrollableAreaWithShadow\");\n        }\n    ;\n    ;\n    };\n;\n    t(w, {\n        renderDOM: function() {\n            var x = l.create(\"div\", {\n                className: \"uiScrollableAreaContent\"\n            }), y = l.create(\"div\", {\n                className: \"uiScrollableAreaBody\"\n            }, x), z = l.create(\"div\", {\n                className: \"uiScrollableAreaWrap\"\n            }, y), aa = l.create(\"div\", {\n                className: \"uiScrollableArea native\"\n            }, z);\n            return {\n                root: aa,\n                wrap: z,\n                body: y,\n                JSBNG__content: x\n            };\n        },\n        fromNative: function(x, y) {\n            if (((!j.hasClass(x, \"uiScrollableArea\") || !j.hasClass(x, \"native\")))) {\n                return;\n            }\n        ;\n        ;\n            y = ((y || {\n            }));\n            j.removeClass(x, \"native\");\n            var z = l.create(\"div\", {\n                className: \"uiScrollableAreaTrack\"\n            }, l.create(\"div\", {\n                className: \"uiScrollableAreaGripper\"\n            }));\n            if (((y.fade !== false))) {\n                j.addClass(x, \"fade\");\n                j.addClass(z, \"invisible_elem\");\n            }\n             else j.addClass(x, \"nofade\");\n        ;\n        ;\n            l.appendContent(x, z);\n            var aa = new w(x, y);\n            aa.resize();\n            return aa;\n        },\n        getInstance: function(x) {\n            var y = n.byClass(x, \"uiScrollableArea\");\n            return ((y ? k.get(y, \"ScrollableArea\") : null));\n        },\n        poke: function(x) {\n            var y = w.getInstance(x);\n            ((y && y.poke()));\n        }\n    });\n    t(w.prototype, h, {\n        initDrag: function() {\n            var x = i.hasPointerEvents(), y = new p(((x ? this._elem : this._gripper)));\n            y.subscribe(\"start\", function(z, JSBNG__event) {\n                if (!((((JSBNG__event.which && ((JSBNG__event.which === 1)))) || ((JSBNG__event.button && ((JSBNG__event.button === 1))))))) {\n                    return;\n                }\n            ;\n            ;\n                var aa = s.getEventPosition(JSBNG__event, \"viewport\");\n                if (x) {\n                    var ba = this._gripper.getBoundingClientRect();\n                    if (((((((((aa.x < ba.left)) || ((aa.x > ba.right)))) || ((aa.y < ba.JSBNG__top)))) || ((aa.y > ba.bottom))))) {\n                        return false;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                this.inform(\"grip_start\");\n                var ca = aa.y, da = this._gripper.offsetTop;\n                j.addClass(this._elem, \"uiScrollableAreaDragging\");\n                var ea = y.subscribe(\"update\", function(ga, JSBNG__event) {\n                    var ha = ((s.getEventPosition(JSBNG__event, \"viewport\").y - ca));\n                    this._throttledComputeHeights();\n                    var ia = ((this._contentHeight - this._containerHeight)), ja = ((da + ha)), ka = ((this._trackHeight - this._gripperHeight));\n                    ja = Math.max(Math.min(ja, ka), 0);\n                    var la = ((((ja / ka)) * ia));\n                    this._wrap.scrollTop = la;\n                }.bind(this)), fa = y.subscribe(\"end\", function() {\n                    y.unsubscribe(ea);\n                    y.unsubscribe(fa);\n                    j.removeClass(this._elem, \"uiScrollableAreaDragging\");\n                    this.inform(\"grip_end\");\n                }.bind(this));\n            }.bind(this));\n        },\n        adjustGripper: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_845), function() {\n            if (this._needsGripper()) {\n                q.set(this._gripper, \"height\", ((this._gripperHeight + \"px\")));\n                this._slideGripper();\n            }\n        ;\n        ;\n            this._throttledShowGripperAndShadows();\n            return this;\n        })),\n        _computeHeights: function() {\n            this._containerHeight = this._elem.clientHeight;\n            this._contentHeight = this._content.offsetHeight;\n            this._trackHeight = this._track.offsetHeight;\n            this._gripperHeight = Math.max(((((this._containerHeight / this._contentHeight)) * this._trackHeight)), v);\n        },\n        _needsGripper: function() {\n            this._throttledComputeHeights();\n            return ((this._gripperHeight < this._trackHeight));\n        },\n        _slideGripper: function() {\n            var x = ((((this._wrap.scrollTop / ((this._contentHeight - this._containerHeight)))) * ((this._trackHeight - this._gripperHeight))));\n            q.set(this._gripper, \"JSBNG__top\", ((x + \"px\")));\n        },\n        _showGripperAndShadows: function() {\n            j.conditionShow(this._gripper, this._needsGripper());\n            j.conditionClass(this._elem, \"contentBefore\", ((this._wrap.scrollTop > 0)));\n            j.conditionClass(this._elem, \"contentAfter\", !this.isScrolledToBottom());\n        },\n        destroy: function() {\n            this._listeners.forEach(function(x) {\n                x.remove();\n            });\n            this._listeners.length = 0;\n        },\n        _handleClickOnTrack: function(JSBNG__event) {\n            var x = s.getEventPosition(JSBNG__event, \"viewport\"), y = this._gripper.getBoundingClientRect();\n            if (((((x.x < y.right)) && ((x.x > y.left))))) {\n                if (((x.y < y.JSBNG__top))) {\n                    this.setScrollTop(((this.getScrollTop() - this._elem.clientHeight)));\n                }\n                 else if (((x.y > y.bottom))) {\n                    this.setScrollTop(((this.getScrollTop() + this._elem.clientHeight)));\n                }\n                \n            ;\n            ;\n                JSBNG__event.prevent();\n            }\n        ;\n        ;\n        },\n        _handleMouseMove: function(JSBNG__event) {\n            var x = ((this._options.fade !== false));\n            if (((i.hasPointerEvents() || x))) {\n                this._mousePos = s.getEventPosition(JSBNG__event);\n                this._throttledRespondMouseMove();\n            }\n        ;\n        ;\n        },\n        _respondMouseMove: function() {\n            if (!this._mouseOver) {\n                return;\n            }\n        ;\n        ;\n            var x = ((this._options.fade !== false)), y = this._mousePos, z = s.getElementPosition(this._track).x, aa = s.getElementDimensions(this._track).x, ba = Math.abs(((((z + ((aa / 2)))) - y.x)));\n            j.conditionClass(this._elem, \"uiScrollableAreaTrackOver\", ((i.hasPointerEvents() && ((ba <= 10)))));\n            if (x) {\n                if (((ba < 25))) {\n                    this.showScrollbar(false);\n                }\n                 else if (!this._options.no_fade_on_hover) {\n                    this.hideScrollbar();\n                }\n                \n            ;\n            }\n        ;\n        ;\n        },\n        _handleScroll: function(JSBNG__event) {\n            if (this._needsGripper()) {\n                this._slideGripper();\n            }\n        ;\n        ;\n            this.throttledAdjustGripper();\n            if (((this._options.fade !== false))) {\n                this.showScrollbar();\n            }\n        ;\n        ;\n            this.inform(\"JSBNG__scroll\");\n        },\n        _handleMouseLeave: function() {\n            this._mouseOver = false;\n            this.hideScrollbar();\n        },\n        _handleMouseEnter: function() {\n            this._mouseOver = true;\n            this.showScrollbar();\n        },\n        hideScrollbar: function(x) {\n            if (!this._scrollbarVisible) {\n                return this;\n            }\n        ;\n        ;\n            this._scrollbarVisible = false;\n            if (this._hideTimeout) {\n                JSBNG__clearTimeout(this._hideTimeout);\n                this._hideTimeout = null;\n            }\n        ;\n        ;\n            if (x) {\n                q.set(this._track, \"opacity\", 0);\n                j.addClass.curry(this._track, \"invisible_elem\");\n            }\n             else this._hideTimeout = function() {\n                if (this._hideAnimation) {\n                    this._hideAnimation.JSBNG__stop();\n                    this._hideAnimation = null;\n                }\n            ;\n            ;\n                this._hideAnimation = (new g(this._track)).from(\"opacity\", 1).to(\"opacity\", 0).duration(250).ondone(j.addClass.curry(this._track, \"invisible_elem\")).go();\n            }.bind(this).defer(750);\n        ;\n        ;\n            return this;\n        },\n        resize: function() {\n            var x = s.getElementDimensions(this._elem).x;\n            if (((this._options.fade === false))) {\n                x -= 10;\n            }\n        ;\n        ;\n            x = Math.max(0, x);\n            q.set(this._body, \"width\", ((x + \"px\")));\n            return this;\n        },\n        showScrollbar: function(x) {\n            this.throttledAdjustGripper();\n            if (this._scrollbarVisible) {\n                return this;\n            }\n        ;\n        ;\n            this._scrollbarVisible = true;\n            if (this._hideTimeout) {\n                JSBNG__clearTimeout(this._hideTimeout);\n                this._hideTimeout = null;\n            }\n        ;\n        ;\n            if (this._hideAnimation) {\n                this._hideAnimation.JSBNG__stop();\n                this._hideAnimation = null;\n            }\n        ;\n        ;\n            q.set(this._track, \"opacity\", 1);\n            j.removeClass(this._track, \"invisible_elem\");\n            if (((((x !== false)) && !this._options.no_fade_on_hover))) {\n                this.hideScrollbar();\n            }\n        ;\n        ;\n            return this;\n        },\n        isScrolledToBottom: function() {\n            return ((this._wrap.scrollTop >= ((this._contentHeight - this._containerHeight))));\n        },\n        isScrolledToTop: function() {\n            return ((this._wrap.scrollTop === 0));\n        },\n        scrollToBottom: function(x) {\n            this.setScrollTop(this._wrap.scrollHeight, x);\n        },\n        scrollToTop: function(x) {\n            this.setScrollTop(0, x);\n        },\n        scrollIntoView: function(x, y) {\n            var z = this._wrap.clientHeight, aa = x.offsetHeight, ba = this._wrap.scrollTop, ca = ((ba + z)), da = x.offsetTop, ea = ((da + aa));\n            if (((((da < ba)) || ((z < aa))))) {\n                this.setScrollTop(da, y);\n            }\n             else if (((ea > ca))) {\n                this.setScrollTop(((ba + ((ea - ca)))), y);\n            }\n            \n        ;\n        ;\n        },\n        poke: function() {\n            var x = this._wrap.scrollTop;\n            this._wrap.scrollTop += 1;\n            this._wrap.scrollTop -= 1;\n            this._wrap.scrollTop = x;\n            return this.showScrollbar(false);\n        },\n        getScrollTop: function() {\n            return this._wrap.scrollTop;\n        },\n        getScrollHeight: function() {\n            return this._wrap.scrollHeight;\n        },\n        setScrollTop: function(x, y, z) {\n            if (((y !== false))) {\n                if (this._scrollTopAnimation) {\n                    this._scrollTopAnimation.JSBNG__stop();\n                }\n            ;\n            ;\n                z = ((z || {\n                }));\n                var aa = ((z.duration || 250)), ba = ((z.ease || g.ease.end));\n                this._scrollTopAnimation = (new g(this._wrap)).to(\"scrollTop\", x).ease(ba).duration(aa).go();\n            }\n             else this._wrap.scrollTop = x;\n        ;\n        ;\n        }\n    });\n    e.exports = w;\n});\n__d(\"Menu\", [\"CSS\",\"Class\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Keys\",\"Parent\",\"PopoverMenuInterface\",\"ScrollableArea\",\"Style\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"Class\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"Keys\"), m = b(\"Parent\"), n = b(\"PopoverMenuInterface\"), o = b(\"ScrollableArea\"), p = b(\"Style\"), q = b(\"copyProperties\"), r = b(\"cx\");\n    function s(t, u) {\n        this.parent.construct(this);\n        this._items = [];\n        for (var v = 0; ((v < t.length)); v++) {\n            this._items[v] = new t[v].ctor(t[v]);\n        ;\n        };\n    ;\n        this._config = ((u || {\n        }));\n        this._theme = ((u.theme || {\n        }));\n    };\n;\n    h.extend(s, n);\n    q(s.prototype, {\n        _focused: null,\n        _root: null,\n        addItem: function(t) {\n            this._addItem(t);\n        },\n        addItemBefore: function(t, u) {\n            this._addItem(t, u, false);\n        },\n        addItemAfter: function(t, u) {\n            this._addItem(t, u, true);\n        },\n        _addItem: function(t, u, v) {\n            var w = this._items.indexOf(t);\n            if (((w >= 0))) {\n                var x = ((v ? -1 : 1));\n                if (((this._items[((w + x))] == u))) {\n                    return;\n                }\n            ;\n            ;\n                this._items.splice(w, 1);\n            }\n        ;\n        ;\n            if (u) {\n                w = this._items.indexOf(u);\n                if (((w < 0))) {\n                    throw new Error(\"reference item must already be in the menu\");\n                }\n            ;\n            ;\n                if (v) {\n                    w++;\n                }\n            ;\n            ;\n                this._items.splice(w, 0, t);\n            }\n             else this._items.push(t);\n        ;\n        ;\n            if (this._root) {\n                this._insertItem(t, u, v);\n            }\n        ;\n        ;\n        },\n        removeItem: function(t) {\n            var u = this._items.indexOf(t);\n            if (((u < 0))) {\n                return;\n            }\n        ;\n        ;\n            this._items.splice(u, 1);\n            ((this._root && j.remove(t.getRoot())));\n        },\n        forEachItem: function(t) {\n            this._items.forEach(t);\n        },\n        getItemAt: function(t) {\n            return ((this._items[t] || null));\n        },\n        getRoot: function() {\n            if (!this._root) {\n                this._render();\n            }\n        ;\n        ;\n            return this._root;\n        },\n        onShow: function() {\n            if (this._config.maxheight) {\n                if (!this._scrollableArea) {\n                    this._scrollableArea = o.fromNative(this._scrollableElems.root, {\n                        fade: true\n                    });\n                }\n                 else this._scrollableArea.resize();\n            ;\n            }\n        ;\n        ;\n            this.focusAnItem();\n        },\n        onHide: function() {\n            this.JSBNG__blur();\n        },\n        focusAnItem: function() {\n            return this._attemptFocus(0, 1);\n        },\n        JSBNG__blur: function() {\n            if (this._focused) {\n                this._focused.JSBNG__blur();\n                this._focused = null;\n                this.inform(\"JSBNG__blur\");\n            }\n        ;\n        ;\n        },\n        handleKeydown: function(t, u) {\n            var v = this._items.indexOf(this._focused);\n            switch (t) {\n              case l.UP:\n            \n              case l.DOWN:\n                var w = ((((t === l.UP)) ? -1 : 1));\n                if (((v !== -1))) {\n                    return this._attemptFocus(((v + w)), w);\n                }\n                 else if (((t === l.UP))) {\n                    return this._attemptFocus(((this._items.length - 1)), -1);\n                }\n                 else return this._attemptFocus(0, 1)\n                \n            ;\n                break;\n              case l.SPACE:\n                if (((this._items.indexOf(this._focused) !== -1))) {\n                    this._handleItemClick(this._focused, u);\n                    return true;\n                }\n            ;\n            ;\n                return false;\n              default:\n                var x = String.fromCharCode(t).toLowerCase(), y;\n                for (var z = ((v + 1)); ((z < this._items.length)); z++) {\n                    y = this._items[z].getAccessKey();\n                    if (((y && ((y.charAt(0).toLowerCase() === x))))) {\n                        if (this._focusItem(this._items[z])) {\n                            return true;\n                        }\n                    ;\n                    }\n                ;\n                ;\n                };\n            ;\n                return false;\n            };\n        ;\n        },\n        _render: function() {\n            this._ul = j.create(\"ul\", {\n                className: \"_54nf\"\n            });\n            this._ul.setAttribute(\"role\", \"menu\");\n            this._items.forEach(function(v) {\n                this._insertItem(v, null);\n            }.bind(this));\n            k.listen(this._ul, \"click\", this._handleClick.bind(this));\n            k.listen(this._ul, \"mouseover\", this._handleMouseOver.bind(this));\n            k.listen(this._ul, \"mouseout\", this._handleMouseOut.bind(this));\n            var t = this._ul;\n            if (this._config.maxheight) {\n                this._scrollableElems = o.renderDOM();\n                j.setContent(this._scrollableElems.JSBNG__content, this._ul);\n                t = this._scrollableElems.root;\n                p.set(this._scrollableElems.wrap, \"max-height\", ((this._config.maxheight + \"px\")));\n            }\n        ;\n        ;\n            var u = ((((\"_54nq\" + ((this._config.className ? ((\" \" + this._config.className)) : \"\")))) + ((this._theme.className ? ((\" \" + this._theme.className)) : \"\"))));\n            this._root = j.create(\"div\", {\n                className: u\n            }, j.create(\"div\", {\n                className: \"_54ng\"\n            }, t));\n            ((this._config.id && this._root.setAttribute(\"id\", this._config.id)));\n            this.inform(\"rendered\", this._root);\n        },\n        _needsDefaultBehavior: function(t) {\n            if (((t.isDefaultRequested && t.isDefaultRequested()))) {\n                var u = m.byTag(t.getTarget(), \"a\"), v = ((u && u.getAttribute(\"href\")));\n                return ((v && ((v[0] !== \"#\"))));\n            }\n        ;\n        ;\n            return false;\n        },\n        _handleClick: function(t) {\n            if (!this._needsDefaultBehavior(t)) {\n                var u = this._getItemInstance(t.getTarget());\n                if (u) {\n                    return this._handleItemClick(u, t);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _handleItemClick: function(t, u) {\n            this.inform(\"itemclick\", {\n                item: t,\n                JSBNG__event: u\n            });\n            if (t.hasAction()) {\n                this.done();\n            }\n        ;\n        ;\n            return t.handleClick();\n        },\n        _handleMouseOver: function(t) {\n            var u = this._getItemInstance(t.getTarget());\n            ((u && this._focusItem(u, true)));\n        },\n        _handleMouseOut: function(t) {\n            var u = this._getItemInstance(t.getTarget());\n            if (((u && ((this._focused === u))))) {\n                this.JSBNG__blur();\n            }\n        ;\n        ;\n        },\n        _insertItem: function(t, u, v) {\n            var w = t.getRoot();\n            g.addClass(w, \"__MenuItem\");\n            i.set(w, \"MenuItem\", t);\n            if (u) {\n                var x = ((v ? j.insertAfter : j.insertBefore));\n                x(u.getRoot(), w);\n            }\n             else j.appendContent(this._ul, w);\n        ;\n        ;\n        },\n        _attemptFocus: function(t, u) {\n            var v = this.getItemAt(t);\n            if (v) {\n                if (this._focusItem(v)) {\n                    return true;\n                }\n                 else return this._attemptFocus(((t + u)), u)\n            ;\n            }\n        ;\n        ;\n            return false;\n        },\n        _focusItem: function(t, u) {\n            if (((t.JSBNG__focus(u) !== false))) {\n                if (((this._focused !== t))) {\n                    this.JSBNG__blur();\n                    this._focused = t;\n                    this.inform(\"JSBNG__focus\");\n                }\n            ;\n            ;\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        _getItemInstance: function(t) {\n            var u = m.byClass(t, \"__MenuItem\");\n            return ((u ? i.get(u, \"MenuItem\") : null));\n        }\n    });\n    e.exports = s;\n});\n__d(\"MenuItemInterface\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n    function i() {\n    \n    };\n;\n    g(i.prototype, {\n        _root: null,\n        getRoot: function() {\n            if (!this._root) {\n                this._root = this.render();\n            }\n        ;\n        ;\n            return this._root;\n        },\n        render: h,\n        getAccessKey: h,\n        hasAction: h.thatReturnsFalse,\n        JSBNG__focus: h.thatReturnsFalse,\n        JSBNG__blur: h.thatReturnsFalse,\n        handleClick: h.thatReturnsFalse\n    });\n    e.exports = i;\n});\n__d(\"MenuItemBase\", [\"Class\",\"DOM\",\"HTML\",\"MenuItemInterface\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"MenuItemInterface\"), k = b(\"copyProperties\"), l = b(\"cx\");\n    function m(n) {\n        this.parent.construct(this);\n        this._data = n;\n    };\n;\n    g.extend(m, j);\n    k(m.prototype, {\n        render: function() {\n            var n = \"_54ni\";\n            if (this._data.className) {\n                n += ((\" \" + this._data.className));\n            }\n        ;\n        ;\n            var o = {\n                className: n,\n                \"aria-selected\": \"false\"\n            };\n            {\n                var fin110keys = ((window.top.JSBNG_Replay.forInKeys)((this._data))), fin110i = (0);\n                var p;\n                for (; (fin110i < fin110keys.length); (fin110i++)) {\n                    ((p) = (fin110keys[fin110i]));\n                    {\n                        if (((p.indexOf(\"data-\") === 0))) {\n                            o[p] = this._data[p];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return h.create(\"li\", o, this._renderItemContent());\n        },\n        _renderItemContent: function() {\n            return i(this._data.markup).getNodes();\n        }\n    });\n    e.exports = m;\n});\n__d(\"MenuItem\", [\"Class\",\"CSS\",\"DOM\",\"MenuItemBase\",\"React\",\"copyProperties\",\"cx\",\"emptyFunction\",\"startsWith\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MenuItemBase\"), k = b(\"React\"), l = b(\"copyProperties\"), m = b(\"cx\"), n = b(\"emptyFunction\"), o = b(\"startsWith\");\n    function p(q) {\n        this.parent.construct(this, q);\n        this._disabled = !!this._data.disabled;\n    };\n;\n    g.extend(p, j);\n    l(p.prototype, {\n        getValue: function() {\n            return this._data.value;\n        },\n        getAccessKey: function() {\n            return ((this._data.label && this._data.label.charAt(0)));\n        },\n        hasAction: n.thatReturnsTrue,\n        JSBNG__focus: function(q) {\n            if (((this.isDisabled() || !this._root.offsetParent))) {\n                return false;\n            }\n        ;\n        ;\n            h.addClass(this._root, \"_54ne\");\n            h.addClass(this._root, \"selected\");\n            this._root.setAttribute(\"aria-selected\", \"true\");\n            ((q || this._anchor.JSBNG__focus()));\n        },\n        JSBNG__blur: function() {\n            h.removeClass(this._root, \"_54ne\");\n            h.removeClass(this._root, \"selected\");\n            this._root.setAttribute(\"aria-selected\", \"false\");\n        },\n        handleClick: function() {\n            if (this.isDisabled()) {\n                return false;\n            }\n        ;\n        ;\n            if (((typeof this._onclickHandler === \"function\"))) {\n                return this._onclickHandler();\n            }\n        ;\n        ;\n            return !!((((this._data.rel && ((this._data.rel !== \"ignore\")))) || this._data.href));\n        },\n        setOnClickHandler: function(q) {\n            this._onclickHandler = q;\n        },\n        _renderItemContent: function() {\n            this._anchor = i.create(\"a\", {\n                className: \"_54nc\"\n            });\n            if (this._data.reactChildren) {\n                k.renderComponent(k.DOM.span({\n                    className: \"_54nh\"\n                }, this._data.reactChildren), this._anchor);\n                this._data.label = ((this._anchor.innerText || this._anchor.textContent));\n            }\n             else i.setContent(this._anchor, i.create(\"span\", {\n                className: \"_54nh\"\n            }, ((this._data.markup || this._data.label))));\n        ;\n        ;\n            if (this._data.icon) {\n                i.prependContent(this._anchor, this._data.icon);\n                h.addClass(this._anchor, \"_54nu\");\n            }\n        ;\n        ;\n            if (!this.isDisabled()) {\n                this._anchor.setAttribute(\"href\", ((this._data.href || \"#\")));\n            }\n        ;\n        ;\n            if (this._data.rel) {\n                this._anchor.setAttribute(\"rel\", this._data.rel);\n            }\n             else if (!this._data.href) {\n                this._anchor.setAttribute(\"rel\", \"ignore\");\n            }\n            \n        ;\n        ;\n            if (this._data.ajaxify) {\n                this._anchor.setAttribute(\"ajaxify\", this._data.ajaxify);\n            }\n        ;\n        ;\n            if (this._data.target) {\n                this._anchor.setAttribute(\"target\", this._data.target);\n            }\n        ;\n        ;\n            {\n                var fin111keys = ((window.top.JSBNG_Replay.forInKeys)((this._data))), fin111i = (0);\n                var q;\n                for (; (fin111i < fin111keys.length); (fin111i++)) {\n                    ((q) = (fin111keys[fin111i]));\n                    {\n                        if (((((typeof q === \"string\")) && o(q, \"data-\")))) {\n                            this._anchor.setAttribute(q, this._data[q]);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            this._anchor.setAttribute(\"role\", \"menuitem\");\n            this._anchor.setAttribute(\"title\", this._data.title);\n            return this._anchor;\n        },\n        isDisabled: function() {\n            return this._disabled;\n        },\n        enable: function() {\n            this._anchor.setAttribute(\"href\", ((this._data.href || \"#\")));\n            h.removeClass(this._root, \"_5arm\");\n            this._disabled = false;\n        },\n        disable: function() {\n            this._anchor.removeAttribute(\"href\");\n            h.addClass(this._root, \"_5arm\");\n            this._disabled = true;\n        },\n        render: function() {\n            var q = this.parent.render();\n            if (this._data.disabled) {\n                h.addClass(q, \"_5arm\");\n            }\n        ;\n        ;\n            return q;\n        }\n    });\n    e.exports = p;\n});\n__d(\"MenuSelectableItem\", [\"Class\",\"CSS\",\"MenuItem\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"MenuItem\"), j = b(\"copyProperties\"), k = b(\"cx\");\n    function l(m) {\n        this.parent.construct(this, m);\n        this._selected = !!this._data.selected;\n    };\n;\n    g.extend(l, i);\n    j(l.prototype, {\n        _selected: false,\n        getLabel: function() {\n            return this._data.label;\n        },\n        getIcon: function() {\n            return this._data.icon;\n        },\n        isSelected: function() {\n            return this._selected;\n        },\n        select: function() {\n            if (this.isDisabled()) {\n                return false;\n            }\n        ;\n        ;\n            h.addClass(this._root, \"_54nd\");\n            this._selected = true;\n        },\n        deselect: function() {\n            h.removeClass(this._root, \"_54nd\");\n            this._selected = false;\n        },\n        render: function() {\n            var m = this.parent.render();\n            if (this._data.selected) {\n                h.addClass(m, \"_54nd\");\n            }\n        ;\n        ;\n            return m;\n        }\n    });\n    e.exports = l;\n});\n__d(\"SelectableMenu\", [\"Class\",\"Menu\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"Menu\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\");\n    function l(o, p) {\n        this.parent.construct(this, o, p);\n    };\n;\n    function m(o) {\n        return ((((o.select && o.deselect)) && o.isSelected));\n    };\n;\n    function n(o) {\n        return ((m(o) && o.isSelected()));\n    };\n;\n    g.extend(l, h);\n    j(l.prototype, {\n        focusAnItem: function() {\n            for (var o = 0; ((o < this._items.length)); o++) {\n                if (n(this._items[o])) {\n                    if (((this._focusItem(this._items[o]) !== false))) {\n                        return true;\n                    }\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            return this.parent.focusAnItem();\n        },\n        setValue: function(o) {\n            if (!this._root) {\n                this._render();\n            }\n        ;\n        ;\n            var p = k(o);\n            this._items.forEach(function(q) {\n                if (m(q)) {\n                    if (i(p, q.getValue())) {\n                        q.select();\n                    }\n                     else if (n(q)) {\n                        q.deselect();\n                    }\n                    \n                ;\n                }\n            ;\n            ;\n            });\n            this.inform(\"change\", this._getSelection());\n        },\n        _handleItemClick: function(o, p) {\n            if (!m(o)) {\n                return this.parent._handleItemClick(o, p);\n            }\n        ;\n        ;\n            this.inform(\"itemclick\", {\n                item: o,\n                JSBNG__event: p\n            });\n            if (this._config.multiple) {\n                var q = ((n(o) ? o.deselect() : o.select()));\n                if (((q !== false))) {\n                    this.inform(\"change\", this._getSelection());\n                }\n            ;\n            ;\n            }\n             else {\n                if (!n(o)) {\n                    if (((o.select() !== false))) {\n                        this._items.forEach(function(r) {\n                            if (((n(r) && ((r !== o))))) {\n                                r.deselect();\n                            }\n                        ;\n                        ;\n                        });\n                        this.inform(\"change\", this._getSelection());\n                    }\n                ;\n                }\n            ;\n            ;\n                this.done();\n            }\n        ;\n        ;\n            return o.handleClick();\n        },\n        _getSelection: function() {\n            var o = [];\n            this._items.forEach(function(p) {\n                if (n(p)) {\n                    o.push({\n                        label: p.getLabel(),\n                        value: p.getValue(),\n                        item: p\n                    });\n                }\n            ;\n            ;\n            });\n            if (!this._config.multiple) {\n                o = o[0];\n            }\n        ;\n        ;\n            return o;\n        }\n    });\n    e.exports = l;\n});\n__d(\"PopoverLoadingMenu\", [\"Class\",\"DOM\",\"PopoverMenuInterface\",\"copyProperties\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"PopoverMenuInterface\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"joinClasses\");\n    function m(n) {\n        this.parent.construct(this);\n        this._config = ((n || {\n        }));\n        this._theme = ((n.theme || {\n        }));\n    };\n;\n    g.extend(m, i);\n    j(m.prototype, {\n        _root: null,\n        getRoot: function() {\n            if (!this._root) {\n                this._root = h.create(\"div\", {\n                    className: l(\"_54nq\", this._config.className, this._theme.className)\n                }, h.create(\"div\", {\n                    className: \"_54ng\"\n                }, h.create(\"div\", {\n                    className: \"_54nf _54af\"\n                }, h.create(\"span\", {\n                    className: \"_54ag\"\n                }))));\n            }\n        ;\n        ;\n            return this._root;\n        }\n    });\n    e.exports = m;\n});\n__d(\"TabIsolation\", [\"JSBNG__Event\",\"DOMQuery\",\"Focus\",\"Keys\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOMQuery\"), i = b(\"Focus\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"copyProperties\"), m = [], n = 0;\n    function o(p) {\n        this._root = p;\n        this._eventHandler = null;\n        this._identifier = n++;\n    };\n;\n    l(o.prototype, {\n        enable: function() {\n            m.unshift(this._identifier);\n            this._eventHandler = g.listen(window, \"keydown\", function(p) {\n                if (((m[0] === this._identifier))) {\n                    this._tabHandler(p);\n                }\n            ;\n            ;\n            }.bind(this), g.Priority.URGENT);\n        },\n        disable: function() {\n            var p;\n            if (this._eventHandler) {\n                p = m.indexOf(this._identifier);\n                if (((p > -1))) {\n                    m.splice(p, 1);\n                }\n            ;\n            ;\n                this._eventHandler.remove();\n                this._eventHandler = null;\n            }\n        ;\n        ;\n        },\n        _tabHandler: function(p) {\n            if (((g.getKeyCode(p) !== j.TAB))) {\n                return;\n            }\n        ;\n        ;\n            var q = p.getTarget();\n            if (!q) {\n                return;\n            }\n        ;\n        ;\n            var r = k.JSBNG__find(this._root), s = r[0], t = r[((r.length - 1))], u = p.getModifiers().shift;\n            if (((u && ((q === s))))) {\n                p.preventDefault();\n                i.set(t);\n            }\n             else if (((((!u && ((q === t)))) || !h.contains(this._root, q)))) {\n                p.preventDefault();\n                i.set(s);\n            }\n            \n        ;\n        ;\n        }\n    });\n    e.exports = o;\n});\n__d(\"AccessibleLayer\", [\"JSBNG__Event\",\"DOM\",\"Focus\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Focus\"), j = b(\"copyProperties\"), k = b(\"tx\");\n    function l(m) {\n        this._layer = m;\n    };\n;\n    j(l.prototype, {\n        enable: function() {\n            this._afterShowSubscription = this._layer.subscribe(\"aftershow\", this._onAfterShow.bind(this));\n        },\n        disable: function() {\n            ((this._listener && this._listener.remove()));\n            this._afterShowSubscription.unsubscribe();\n            this._listener = this._afterShowSubscription = null;\n        },\n        _closeListener: function(JSBNG__event) {\n            var m = this._layer.getCausalElement();\n            if (m) {\n                if (((m.tabIndex == -1))) {\n                    m.tabIndex = 0;\n                    i.setWithoutOutline(m);\n                }\n                 else i.set(m);\n            ;\n            }\n        ;\n        ;\n            this._layer.hide();\n        },\n        _onAfterShow: function() {\n            var m = this._layer.getContentRoot();\n            if (h.scry(m, \".layer_close_elem\")[0]) {\n                return;\n            }\n        ;\n        ;\n            var n = h.create(\"a\", {\n                className: \"accessible_elem layer_close_elem\",\n                href: \"#\"\n            }, [\"Close popup and return\",]);\n            h.appendContent(m, n);\n            this._listener = g.listen(n, \"click\", this._closeListener.bind(this));\n        }\n    });\n    e.exports = l;\n});\n__d(\"ContextualLayerAsyncRelative\", [\"JSBNG__Event\",\"copyProperties\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"Parent\");\n    function j(k) {\n        this._layer = k;\n    };\n;\n    h(j.prototype, {\n        _layerSubscription: null,\n        _listener: null,\n        enable: function() {\n            this._layerSubscription = this._layer.subscribe(\"show\", this._attachListener.bind(this));\n            if (this._layer.isShown()) {\n                this._attachListener();\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            this._layerSubscription.unsubscribe();\n            this._layerSubscription = null;\n            if (this._listener) {\n                this._listener.remove();\n                this._listener = null;\n            }\n        ;\n        ;\n        },\n        _attachListener: function() {\n            this._listener = g.listen(this._layer.getRoot(), \"click\", this._onclick.bind(this));\n        },\n        _onclick: function(k) {\n            var l = i.byTag(k.getTarget(), \"A\");\n            if (!l) {\n                return;\n            }\n        ;\n        ;\n            var m = l.getAttribute(\"ajaxify\"), n = l.href, o = ((m || n));\n            if (((((l.rel === \"async\")) || ((l.rel === \"async-post\"))))) {\n                d([\"AsyncRequest\",], function(p) {\n                    p.bootstrap(o, this._layer.getContext(), ((l.rel === \"async-post\")));\n                }.bind(this));\n                return false;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"ContextualLayerUpdateOnScroll\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n;\n    h(i.prototype, {\n        _subscriptions: [],\n        enable: function() {\n            this._subscriptions = [this._layer.subscribe(\"show\", this._attachScrollListener.bind(this)),this._layer.subscribe(\"hide\", this._removeScrollListener.bind(this)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();\n            ;\n            };\n        ;\n            this.detach();\n        },\n        _attachScrollListener: function() {\n            if (this._listener) {\n                return;\n            }\n        ;\n        ;\n            var j = this._layer.getContextScrollParent();\n            this._listener = g.listen(j, \"JSBNG__scroll\", this._layer.updatePosition.bind(this._layer));\n        },\n        _removeScrollListener: function() {\n            ((this._listener && this._listener.remove()));\n            this._listener = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerAutoFocus\", [\"function-extensions\",\"DOMQuery\",\"Focus\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"DOMQuery\"), h = b(\"Focus\"), i = b(\"TabbableElements\"), j = b(\"copyProperties\");\n    function k(l) {\n        this._layer = l;\n    };\n;\n    j(k.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"aftershow\", this._focus.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _focus: function() {\n            var l = this._layer.getRoot(), m = g.scry(l, \".autofocus\")[0], n = true;\n            if (!m) {\n                var o = JSBNG__document.activeElement;\n                if (g.isNodeOfType(o, [\"input\",\"textarea\",])) {\n                    return;\n                }\n            ;\n            ;\n                var p = i.JSBNG__find(l);\n                for (var q = 0; ((q < p.length)); q++) {\n                    if (((p[q].tagName != \"A\"))) {\n                        m = p[q];\n                        n = false;\n                        break;\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n             else if (((m.tabIndex !== 0))) {\n                n = false;\n            }\n            \n        ;\n        ;\n            if (m) {\n                ((n ? h.set(m) : h.setWithoutOutline(m)));\n            }\n             else {\n                l.tabIndex = 0;\n                h.setWithoutOutline(l);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = k;\n});\n__d(\"LayerButtons\", [\"JSBNG__Event\",\"Parent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Parent\"), i = b(\"copyProperties\");\n    function j(k) {\n        this._layer = k;\n    };\n;\n    i(j.prototype, {\n        _listener: null,\n        enable: function() {\n            this._listener = g.listen(this._layer.getRoot(), \"click\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._listener.remove();\n            this._listener = null;\n        },\n        _handle: function(k) {\n            var l = k.getTarget(), m = h.byClass(l, \"layerConfirm\");\n            if (m) {\n                if (((this._layer.inform(\"JSBNG__confirm\", m) === false))) {\n                    k.prevent();\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            var n = h.byClass(l, \"layerCancel\");\n            if (n) {\n                if (((this._layer.inform(\"cancel\", n) !== false))) {\n                    this._layer.hide();\n                }\n            ;\n            ;\n                k.prevent();\n                return;\n            }\n        ;\n        ;\n            var o = h.byClass(l, \"layerButton\");\n            if (o) {\n                if (((this._layer.inform(\"button\", o) === false))) {\n                    k.prevent();\n                }\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"LayerDestroyOnHide\", [\"function-extensions\",\"copyProperties\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"copyProperties\"), h = b(\"shield\");\n    function i(j) {\n        this._layer = j;\n    };\n;\n    g(i.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"hide\", h(Function.prototype.defer, this._layer.destroy.bind(this._layer)));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerFadeOnHide\", [\"Animation\",\"Layer\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Layer\"), i = b(\"Style\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n    function l(m) {\n        this._layer = m;\n    };\n;\n    k(l.prototype, {\n        _subscription: null,\n        enable: function() {\n            if (((j.ie() < 9))) {\n                return;\n            }\n        ;\n        ;\n            this._subscription = this._layer.subscribe(\"starthide\", this._handleStartHide.bind(this));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        ;\n        },\n        _handleStartHide: function() {\n            var m = true, n = h.subscribe(\"show\", function() {\n                n.unsubscribe();\n                m = false;\n            });\n            (function() {\n                n.unsubscribe();\n                n = null;\n                if (m) {\n                    this._animate();\n                }\n                 else this._layer.finishHide();\n            ;\n            ;\n            }).bind(this).defer();\n            return false;\n        },\n        _animate: function() {\n            new g(this._layer.getRoot()).from(\"opacity\", 1).to(\"opacity\", 0).duration(150).ondone(this._finish.bind(this)).go();\n        },\n        _finish: function() {\n            i.set(this._layer.getRoot(), \"opacity\", \"\");\n            this._layer.finishHide();\n        }\n    });\n    e.exports = l;\n});\n__d(\"LayerFadeOnShow\", [\"Animation\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Style\"), i = b(\"UserAgent\"), j = b(\"copyProperties\");\n    function k(l) {\n        this._layer = l;\n    };\n;\n    j(k.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            if (((i.ie() < 9))) {\n                return;\n            }\n        ;\n        ;\n            this._subscriptions = [this._layer.subscribe(\"beforeshow\", function() {\n                h.set(this._layer.getRoot(), \"opacity\", 0);\n            }.bind(this)),this._layer.subscribe(\"show\", this._animate.bind(this)),];\n        },\n        disable: function() {\n            if (this._subscriptions) {\n                while (this._subscriptions.length) {\n                    this._subscriptions.pop().unsubscribe();\n                ;\n                };\n            ;\n                this._subscriptions = null;\n            }\n        ;\n        ;\n        },\n        _getDuration: function() {\n            return 100;\n        },\n        _animate: function() {\n            var l = this._layer.getRoot();\n            new g(l).from(\"opacity\", 0).to(\"opacity\", 1).duration(this._getDuration()).ondone(h.set.curry(l, \"opacity\", \"\")).go();\n        }\n    });\n    e.exports = k;\n});\n__d(\"LayerFormHooks\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n    };\n;\n    h(i.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            var j = this._layer.getRoot();\n            this._subscriptions = [g.listen(j, \"submit\", this._onSubmit.bind(this)),g.listen(j, \"success\", this._onSuccess.bind(this)),g.listen(j, \"error\", this._onError.bind(this)),];\n        },\n        disable: function() {\n            this._subscriptions.forEach(function(j) {\n                j.remove();\n            });\n            this._subscriptions = null;\n        },\n        _onSubmit: function(JSBNG__event) {\n            if (((this._layer.inform(\"submit\", JSBNG__event) === false))) {\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        _onSuccess: function(JSBNG__event) {\n            if (((this._layer.inform(\"success\", JSBNG__event) === false))) {\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        _onError: function(JSBNG__event) {\n            var j = JSBNG__event.getData();\n            if (((this._layer.inform(\"error\", {\n                response: j.response\n            }) === false))) {\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = i;\n});\n__d(\"LayerHideOnBlur\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._layer = i;\n    };\n;\n    g(h.prototype, {\n        _subscriptions: null,\n        _onBlur: null,\n        enable: function() {\n            this._subscriptions = [this._layer.subscribe(\"show\", this._attach.bind(this)),this._layer.subscribe(\"hide\", this._detach.bind(this)),];\n            if (this._layer.isShown()) {\n                this._attach();\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            this._detach();\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();\n            ;\n            };\n        ;\n            this._subscriptions = null;\n        },\n        _detach: function() {\n            ((this._onBlur && this._onBlur.unsubscribe()));\n            this._onBlur = null;\n        },\n        _attach: function() {\n            this._onBlur = this._layer.subscribe(\"JSBNG__blur\", function() {\n                this._layer.hide();\n                return false;\n            }.bind(this));\n        }\n    });\n    e.exports = h;\n});\n__d(\"LayerMouseHooks\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"ContextualThing\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"ContextualThing\"), j = b(\"Layer\"), k = b(\"copyProperties\"), l = new h();\n    function m(n) {\n        this._layer = n;\n        this._subscriptions = [];\n        this._currentlyActive = false;\n    };\n;\n    k(m.prototype, {\n        enable: function() {\n            this._subscriptions = [l.subscribe(\"mouseenter\", this._handleActive.bind(this)),l.subscribe(\"mouseleave\", this._handleInactive.bind(this)),this._layer.subscribe(\"hide\", function() {\n                this._currentlyActive = false;\n            }.bind(this)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();\n            ;\n            };\n        ;\n            this._subscriptions = [];\n            this._currentlyActive = false;\n        },\n        _handleActive: function(n, o) {\n            if (((!this._currentlyActive && this._isNodeWithinStack(o)))) {\n                this._layer.inform(\"mouseenter\");\n                this._currentlyActive = true;\n            }\n        ;\n        ;\n        },\n        _handleInactive: function(n, o) {\n            if (this._currentlyActive) {\n                if (((!o || !this._isNodeWithinStack(o)))) {\n                    this._layer.inform(\"mouseleave\");\n                    this._currentlyActive = false;\n                }\n            ;\n            }\n        ;\n        ;\n        },\n        _isNodeWithinStack: function(n) {\n            return i.containsIncludingLayers(this._layer.getContentRoot(), n);\n        }\n    });\n    j.subscribe(\"show\", function(n, o) {\n        var p = o.getContentRoot(), q = [g.listen(p, \"mouseenter\", function() {\n            l.inform(\"mouseenter\", p);\n        }),g.listen(p, \"mouseleave\", function(s) {\n            l.inform(\"mouseleave\", s.getRelatedTarget());\n        }),], r = o.subscribe(\"hide\", function() {\n            while (q.length) {\n                q.pop().remove();\n            ;\n            };\n        ;\n            r.unsubscribe();\n            q = r = null;\n        });\n    });\n    e.exports = m;\n});\n__d(\"LayerRefocusOnHide\", [\"copyProperties\",\"Focus\",\"ContextualThing\",\"DOM\",\"DOMQuery\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"Focus\"), i = b(\"ContextualThing\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"Parent\");\n    function m(n) {\n        this._layer = n;\n    };\n;\n    g(m.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"hide\", this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(n, JSBNG__event) {\n            if (((((JSBNG__document.activeElement === JSBNG__document.body)) || k.contains(this._layer.getRoot(), JSBNG__document.activeElement)))) {\n                var o = this._layer.getCausalElement();\n                while (((o && (!o.offsetWidth)))) {\n                    var p = l.byClass(o, \"uiToggle\");\n                    if (((p && p.offsetWidth))) {\n                        o = j.scry(p, \"[rel=\\\"toggle\\\"]\")[0];\n                    }\n                     else {\n                        var q = i.getContext(o);\n                        if (q) {\n                            o = q;\n                        }\n                         else o = o.parentNode;\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                };\n            ;\n                if (((o && ((o.tabIndex != -1))))) {\n                    h.setWithoutOutline(o);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"LayerTabIsolation\", [\"TabIsolation\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"TabIsolation\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._layer = j;\n        this._tabIsolation = null;\n    };\n;\n    h(i.prototype, {\n        _subscriptions: [],\n        enable: function() {\n            this._tabIsolation = new g(this._layer.getRoot());\n            this._subscriptions = [this._layer.subscribe(\"show\", this._tabIsolation.enable.bind(this._tabIsolation)),this._layer.subscribe(\"hide\", this._tabIsolation.disable.bind(this._tabIsolation)),];\n        },\n        disable: function() {\n            while (this._subscriptions.length) {\n                this._subscriptions.pop().unsubscribe();\n            ;\n            };\n        ;\n            this._tabIsolation.disable();\n            this._tabIsolation = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"ModalLayer\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"DOMDimensions\",\"DOMQuery\",\"ScrollAwareDOM\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"copyProperties\",\"csx\",\"cx\",\"debounceAcrossTransitions\",\"isAsyncScrollQuery\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"DOMQuery\"), n = b(\"ScrollAwareDOM\"), o = b(\"Style\"), p = b(\"URI\"), q = b(\"UserAgent\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"cx\"), v = b(\"debounceAcrossTransitions\"), w = b(\"isAsyncScrollQuery\"), x = b(\"removeFromArray\"), y = [], z = null, aa = null, ba = null;\n    function ca() {\n        if (!ba) {\n            ba = m.scry(JSBNG__document.body, \"._li\")[0];\n        }\n    ;\n    ;\n        return ba;\n    };\n;\n    function da(la) {\n        var ma = {\n            position: r.getScrollPosition()\n        }, na = ((la.offsetTop - ma.position.y));\n        i.addClass(la, \"_31e\");\n        o.set(la, \"JSBNG__top\", ((na + \"px\")));\n        h.inform(\"reflow\");\n        ma.listener = n.subscribe(\"JSBNG__scroll\", function(oa, pa) {\n            if (m.contains(la, pa.target)) {\n                var qa = ((la.offsetTop - pa.delta.y));\n                o.set(la, \"JSBNG__top\", ((qa + \"px\")));\n                ma.position = ma.position.add(pa.delta);\n                return false;\n            }\n        ;\n        ;\n        });\n        j.set(la, \"ModalLayerData\", ma);\n        if (((q.firefox() < 13))) {\n            ea.curry(la).defer();\n        }\n    ;\n    ;\n    };\n;\n    function ea(la) {\n        m.scry(la, \"div.swfObject\").forEach(function(ma) {\n            var na = ma.getAttribute(\"data-swfid\");\n            if (((na && window[na]))) {\n                var oa = window[na];\n                oa.addParam(\"autostart\", \"false\");\n                oa.addParam(\"autoplay\", \"false\");\n                oa.addParam(\"play\", \"false\");\n                oa.addVariable(\"video_autoplay\", \"0\");\n                oa.addVariable(\"autoplay\", \"0\");\n                oa.addVariable(\"play\", \"0\");\n                var pa = p(oa.getAttribute(\"swf\"));\n                pa.addQueryData({\n                    autoplay: \"0\"\n                });\n                pa.setPath(pa.getPath().replace(\"autoplay=1\", \"autoplay=0\"));\n                oa.setAttribute(\"swf\", pa.toString());\n                oa.write(ma);\n            }\n        ;\n        ;\n        });\n    };\n;\n    function fa(la, ma) {\n        var na = j.get(la, \"ModalLayerData\");\n        if (na) {\n            var oa = function() {\n                i.removeClass(la, \"_31e\");\n                o.set(la, \"JSBNG__top\", \"\");\n                if (ma) {\n                    var ra = m.getDocumentScrollElement();\n                    ra.scrollTop = na.position.y;\n                }\n            ;\n            ;\n                h.inform(\"reflow\");\n                na.listener.unsubscribe();\n                na.listener = null;\n                j.remove(la, \"ModalLayerData\");\n            };\n            if (((ma && w()))) {\n                var pa = k.create(\"div\", {\n                    className: \"_42w\"\n                });\n                o.set(pa, \"height\", ((la.offsetHeight + \"px\")));\n                k.appendContent(JSBNG__document.body, pa);\n                var qa = m.getDocumentScrollElement();\n                qa.scrollTop = na.position.y;\n                ma = false;\n                !function() {\n                    oa();\n                    k.remove(pa);\n                }.defer();\n            }\n             else oa();\n        ;\n        ;\n        }\n    ;\n    ;\n        if (((q.ie() < 7))) {\n            o.set(la, \"height\", \"\");\n        }\n    ;\n    ;\n    };\n;\n    function ga() {\n        var la = ca();\n        if (!i.hasClass(la, \"_31e\")) {\n            da(la);\n        }\n    ;\n    ;\n    };\n;\n    function ha() {\n        if (!y.length) {\n            fa(ca(), true);\n        }\n    ;\n    ;\n    };\n;\n    function ia() {\n        var la;\n        if (((q.ie() < 7))) {\n            var ma = y[((y.length - 1))].getLayerRoot(), na = Math.max(ma.offsetHeight, ma.scrollHeight);\n            la = function(ta) {\n                o.set(ta, \"height\", ((((-ta.offsetTop + na)) + \"px\")));\n            };\n        }\n    ;\n    ;\n        var oa = y.length;\n        while (oa--) {\n            var pa = y[oa], qa = pa.getLayerRoot();\n            ja(qa, \"\");\n            var ra = pa.getLayerContentRoot(), sa = ((ra.offsetWidth + l.measureElementBox(ra, \"width\", 0, 0, 1)));\n            ja(qa, sa);\n            if (((la && ((oa < ((y.length - 1))))))) {\n                la(qa);\n            }\n        ;\n        ;\n        };\n    ;\n        ((la && la(ca())));\n    };\n;\n    function ja(la, ma) {\n        var na = ((q.ie() < 7));\n        if (((((na && ma)) && ((ma <= JSBNG__document.body.clientWidth))))) {\n            ma = \"\";\n        }\n    ;\n    ;\n        o.set(la, ((na ? \"width\" : \"min-width\")), ((ma + ((ma ? \"px\" : \"\")))));\n    };\n;\n    function ka(la) {\n        this._layer = la;\n    };\n;\n    s(ka.prototype, {\n        _subscription: null,\n        enable: function() {\n            if (!ca()) {\n                return;\n            }\n        ;\n        ;\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(la) {\n                ((((la == \"show\")) ? this._addModal() : this._removeModal()));\n            }.bind(this));\n            if (this._layer.isShown()) {\n                this._addModal();\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            if (!ca()) {\n                return;\n            }\n        ;\n        ;\n            this._subscription.unsubscribe();\n            this._subscription = null;\n            if (this._layer.isShown()) {\n                this._removeModal();\n            }\n        ;\n        ;\n        },\n        _addModal: function() {\n            i.addClass(this.getLayerRoot(), \"_3qw\");\n            var la = y[((y.length - 1))];\n            if (la) {\n                da(la.getLayerRoot());\n            }\n             else ga();\n        ;\n        ;\n            var ma = m.getDocumentScrollElement();\n            ma.scrollTop = 0;\n            if (!y.length) {\n                if (((q.ie() < 7))) {\n                    i.addClass(JSBNG__document.documentElement, \"_31d\");\n                }\n            ;\n            ;\n                var na = v(ia, 100);\n                z = g.listen(window, \"resize\", na);\n                aa = h.subscribe(\"reflow\", na);\n            }\n        ;\n        ;\n            y.push(this);\n            ia.defer();\n        },\n        _removeModal: function() {\n            var la = this.getLayerRoot();\n            i.removeClass(la, \"_3qw\");\n            ja(la, \"\");\n            var ma = ((this === y[((y.length - 1))]));\n            x(y, this);\n            var na = y[((y.length - 1))];\n            if (!na) {\n                z.remove();\n                z = null;\n                aa.unsubscribe();\n                aa = null;\n            }\n        ;\n        ;\n            !function() {\n                if (na) {\n                    fa(na.getLayerRoot(), ma);\n                }\n                 else ha();\n            ;\n            ;\n                if (y.length) {\n                    ia.defer();\n                }\n                 else if (((q.ie() < 7))) {\n                    i.removeClass(JSBNG__document.documentElement, \"_31d\");\n                }\n                \n            ;\n            ;\n            }.defer(400, false);\n        },\n        getLayerRoot: function() {\n            return this._layer.getRoot();\n        },\n        getLayerContentRoot: function() {\n            return this._layer.getContentRoot();\n        }\n    });\n    e.exports = ka;\n});\n__d(\"ContextualDialogArrow\", [\"JSXDOM\",\"CSS\",\"DOM\",\"Locale\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Locale\"), k = b(\"Style\"), l = b(\"Vector\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = {\n        bottom: \"_53ik\",\n        JSBNG__top: \"_53il\",\n        right: \"_53im\",\n        left: \"_53in\"\n    }, p = {\n        above: \"bottom\",\n        below: \"JSBNG__top\",\n        left: \"right\",\n        right: \"left\"\n    };\n    function q(r) {\n        this._layer = r;\n    };\n;\n    m(q.prototype, {\n        _subscription: null,\n        _arrow: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe([\"adjust\",\"reposition\",], this._handle.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _handle: function(r, s) {\n            if (((r === \"adjust\"))) {\n                this._repositionArrow(s);\n            }\n             else this._repositionRoot(s);\n        ;\n        ;\n        },\n        _repositionRoot: function(r) {\n            var s = r.getAlignment();\n            if (((s == \"center\"))) {\n                return;\n            }\n        ;\n        ;\n            var t = this._layer.getRoot(), u = this._layer.getContext(), v = r.isVertical(), w = this._layer.getArrowDimensions(), x = w.offset, y = w.length, z = l.getElementDimensions(u), aa = ((v ? z.x : z.y));\n            if (((aa >= ((y + ((x * 2))))))) {\n                return;\n            }\n        ;\n        ;\n            var ba = ((((y / 2)) + x)), ca = ((aa / 2)), da = parseInt(((ba - ca)), 10);\n            if (v) {\n                if (((s == \"left\"))) {\n                    var ea = parseInt(k.get(t, \"left\"), 10);\n                    k.set(t, \"left\", ((((ea - da)) + \"px\")));\n                }\n                 else {\n                    var fa = parseInt(k.get(t, \"right\"), 10);\n                    k.set(t, \"right\", ((((fa - da)) + \"px\")));\n                }\n            ;\n            ;\n            }\n             else {\n                var ga = parseInt(k.get(t, \"JSBNG__top\"), 10);\n                k.set(t, \"JSBNG__top\", ((((ga - da)) + \"px\")));\n            }\n        ;\n        ;\n        },\n        _repositionArrow: function(r) {\n            var s = this._layer._contentWrapper, t = r.getPosition(), u = p[t];\n            {\n                var fin112keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin112i = (0);\n                var v;\n                for (; (fin112i < fin112keys.length); (fin112i++)) {\n                    ((v) = (fin112keys[fin112i]));\n                    {\n                        h.conditionClass(s, o[v], ((u === v)));\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((t == \"none\"))) {\n                return;\n            }\n        ;\n        ;\n            if (!this._arrow) {\n                this._arrow = g.i({\n                    className: \"_53io\"\n                });\n                i.appendContent(s, this._arrow);\n            }\n        ;\n        ;\n            h.conditionClass(s, \"_kc\", this._layer.getFooter());\n            k.set(this._arrow, \"JSBNG__top\", \"\");\n            k.set(this._arrow, \"left\", \"\");\n            k.set(this._arrow, \"right\", \"\");\n            k.set(this._arrow, \"margin\", \"\");\n            var w = q.getOffsetPercent(r), x = q.getOffset(r, w, this._layer), y = q.getOffsetSide(r);\n            k.set(this._arrow, y, ((w + \"%\")));\n            k.set(this._arrow, ((\"margin-\" + y)), ((x + \"px\")));\n        }\n    });\n    m(q, {\n        getOffsetPercent: function(r) {\n            var s = r.getAlignment(), t = r.getPosition();\n            if (((((t == \"above\")) || ((t == \"below\"))))) {\n                if (((s == \"center\"))) {\n                    return 50;\n                }\n                 else if (((s == \"right\"))) {\n                    return 100;\n                }\n                \n            ;\n            }\n        ;\n        ;\n            return 0;\n        },\n        getOffsetSide: function(r) {\n            var s = r.isVertical();\n            return ((s ? ((j.isRTL() ? \"right\" : \"left\")) : \"JSBNG__top\"));\n        },\n        getOffset: function(r, s, t) {\n            var u = t.getArrowDimensions(), v = u.offset, w = u.length, x = r.getAlignment(), y = ((((x == \"center\")) ? 0 : v));\n            y += ((((w * s)) / 100));\n            if (((x != \"left\"))) {\n                y *= -1;\n            }\n        ;\n        ;\n            return y;\n        }\n    });\n    e.exports = q;\n});\n__d(\"ContextualDialogFitInViewport\", [\"JSBNG__Event\",\"ContextualLayerDimensions\",\"Style\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ContextualLayerDimensions\"), i = b(\"Style\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"throttle\");\n    function m(n) {\n        this._layer = n;\n        this._listeners = [];\n    };\n;\n    k(m.prototype, {\n        _subscription: null,\n        _minimumTop: null,\n        enable: function() {\n            var n = this._layer.getArrowDimensions();\n            this._arrowOffset = n.offset;\n            var o = n.length;\n            this._arrowBuffer = ((this._arrowOffset + o));\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",\"reposition\",], function(p, q) {\n                if (((p == \"reposition\"))) {\n                    this._calculateMinimumTop(q);\n                }\n                 else if (((p == \"show\"))) {\n                    this._attachScroll();\n                    this._adjustForScroll();\n                }\n                 else this._detachScroll();\n                \n            ;\n            ;\n            }.bind(this));\n            if (this._layer.isShown()) {\n                this._attachScroll();\n            }\n        ;\n        ;\n        },\n        disable: function() {\n            if (this._layer.isShown()) {\n                this._detachScroll();\n            }\n        ;\n        ;\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _attachScroll: function() {\n            var n = l(this._adjustForScroll.bind(this)), o = ((this._layer.getContextScrollParent() || window));\n            this._listeners = [g.listen(o, \"JSBNG__scroll\", n),g.listen(window, \"resize\", n),];\n        },\n        _detachScroll: function() {\n            while (this._listeners.length) {\n                this._listeners.pop().remove();\n            ;\n            };\n        ;\n            this._listeners = [];\n        },\n        _getContentHeight: function() {\n            return j.getElementDimensions(this._layer._contentWrapper).y;\n        },\n        _getContextY: function() {\n            return j.getElementPosition(this._layer.getContext()).y;\n        },\n        _calculateMinimumTop: function(n) {\n            if (n.isVertical()) {\n                return;\n            }\n        ;\n        ;\n            this._minimumTop = ((((this._getContextY() - ((this._getContentHeight() - this._arrowBuffer)))) + n.getOffsetY()));\n        },\n        _adjustForScroll: function() {\n            if (this._layer.isFixed()) {\n                return;\n            }\n        ;\n        ;\n            var n = this._layer._getOrientation();\n            if (n.isVertical()) {\n                return;\n            }\n        ;\n        ;\n            var o = h.getViewportRect(this._layer), p = ((o.b - this._minimumTop));\n            if (((p < 0))) {\n                return;\n            }\n        ;\n        ;\n            var q = this._getContentHeight(), r = ((q - ((this._arrowBuffer + this._arrowOffset)))), s = Math.max(0, Math.min(r, ((r - ((p - q))))));\n            i.set(this._layer.getContent(), \"JSBNG__top\", ((-s + \"px\")));\n        }\n    });\n    e.exports = m;\n});\n__d(\"ContextualDialogDefaultTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\"), h = {\n        wrapperClassName: \"_53ip\",\n        arrowDimensions: {\n            offset: 15,\n            length: 16\n        }\n    };\n    e.exports = h;\n});\n__d(\"ContextualDialog\", [\"AccessibleLayer\",\"Class\",\"ContextualDialogArrow\",\"ContextualDialogFitInViewport\",\"ContextualLayer\",\"ContextualDialogDefaultTheme\",\"CSS\",\"DOM\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerHideOnTransition\",\"LayerFormHooks\",\"LayerMouseHooks\",\"Style\",\"copyProperties\",\"csx\",\"cx\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"AccessibleLayer\"), h = b(\"Class\"), i = b(\"ContextualDialogArrow\"), j = b(\"ContextualDialogFitInViewport\"), k = b(\"ContextualLayer\"), l = b(\"ContextualDialogDefaultTheme\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"LayerAutoFocus\"), p = b(\"LayerButtons\"), q = b(\"LayerHideOnTransition\"), r = b(\"LayerFormHooks\"), s = b(\"LayerMouseHooks\"), t = b(\"Style\"), u = b(\"copyProperties\"), v = b(\"csx\"), w = b(\"cx\"), x = b(\"removeFromArray\");\n    function y(z, aa) {\n        this.parent.construct(this, z, aa);\n    };\n;\n    h.extend(y, k);\n    u(y.prototype, {\n        _footer: null,\n        _configure: function(z, aa) {\n            u(z, ((z.theme || l)));\n            var ba = ((z.arrowBehavior || i));\n            z.addedBehaviors = ((z.addedBehaviors || []));\n            z.addedBehaviors.push(ba);\n            this._footer = n.scry(aa, \"div._572u\")[0];\n            this.parent._configure(z, aa);\n        },\n        _getDefaultBehaviors: function() {\n            var z = this.parent._getDefaultBehaviors();\n            x(z, q);\n            return z.concat([g,o,j,p,r,s,]);\n        },\n        _buildWrapper: function(z, aa) {\n            m.addClass(aa, \"_53ij\");\n            var ba = this.parent._buildWrapper(z, aa);\n            m.addClass(ba, z.wrapperClassName);\n            if (z.width) {\n                this.setWidth(z.width);\n            }\n        ;\n        ;\n            return ba;\n        },\n        setWidth: function(z) {\n            this._width = Math.floor(z);\n            t.set(this._contentWrapper, \"width\", ((z + \"px\")));\n            return this;\n        },\n        getFooter: function() {\n            return this._footer;\n        },\n        getArrowDimensions: function() {\n            return this._config.arrowDimensions;\n        }\n    });\n    u(y, {\n        setContext: function(z, aa) {\n            z.setContext(aa);\n        }\n    });\n    e.exports = y;\n});\n__d(\"DialogPosition\", [\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"Vector\"), h = 40, i, j = {\n        calculateTopMargin: function(k, l) {\n            if (i) {\n                return i;\n            }\n        ;\n        ;\n            var m = g.getViewportDimensions(), n = Math.floor(((((((m.x + k)) * ((m.y - l)))) / ((4 * m.x)))));\n            return Math.max(n, h);\n        },\n        setFixedTopMargin: function(k) {\n            i = k;\n        }\n    };\n    e.exports = j;\n});\n__d(\"DialogX\", [\"function-extensions\",\"JSXDOM\",\"Arbiter\",\"Class\",\"CSS\",\"DialogPosition\",\"JSBNG__Event\",\"Layer\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerFormHooks\",\"LayerRefocusOnHide\",\"LayerTabIsolation\",\"ModalLayer\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",\"debounce\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"JSXDOM\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSS\"), k = b(\"DialogPosition\"), l = b(\"JSBNG__Event\"), m = b(\"Layer\"), n = b(\"LayerAutoFocus\"), o = b(\"LayerButtons\"), p = b(\"LayerFormHooks\"), q = b(\"LayerRefocusOnHide\"), r = b(\"LayerTabIsolation\"), s = b(\"ModalLayer\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"copyProperties\"), w = b(\"cx\"), x = b(\"debounce\"), y = b(\"shield\");\n    function z(ba, ca) {\n        this.parent.construct(this, ba, ca);\n    };\n;\n    i.extend(z, m);\n    v(z.prototype, {\n        _configure: function(ba, ca) {\n            this.parent._configure(ba, ca);\n            j.addClass(this.getRoot(), \"_4-hy\");\n            if (ba.autohide) {\n                var da = this.subscribe(\"show\", function() {\n                    da.unsubscribe();\n                    y(this.hide, this).defer(ba.autohide);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([aa,s,n,o,p,r,q,]);\n        },\n        _buildWrapper: function(ba, ca) {\n            var da = ((ba.xui ? \"_4-hz\" : \"_t\")), ea = ((ba.xui ? \"_59s7\" : \"_1yv\"));\n            this._innerContent = g.div(null, ca);\n            this._wrapper = g.div({\n                className: ea,\n                role: \"dialog\",\n                \"aria-labelledby\": ((ba.titleID || null))\n            }, g.div({\n                className: da\n            }, this._innerContent));\n            this.setWidth(ba.width);\n            return (g.div({\n                className: \"_10\",\n                role: \"dialog\"\n            }, this._wrapper));\n        },\n        getContentRoot: function() {\n            return this._wrapper;\n        },\n        getInnerContent: function() {\n            return this._innerContent;\n        },\n        updatePosition: function() {\n            var ba = u.getElementDimensions(this._wrapper), ca = k.calculateTopMargin(ba.x, ba.y);\n            t.set(this._wrapper, \"margin-top\", ((ca + \"px\")));\n            this.inform(\"update_position\", {\n                type: \"DialogX\",\n                JSBNG__top: ca\n            });\n        },\n        setWidth: function(ba) {\n            ba = Math.floor(ba);\n            if (((ba === this._width))) {\n                return;\n            }\n        ;\n        ;\n            this._width = ba;\n            t.set(this._wrapper, \"width\", ((ba + \"px\")));\n        },\n        getWidth: function() {\n            return this._width;\n        }\n    });\n    function aa(ba) {\n        this._layer = ba;\n    };\n;\n    v(aa.prototype, {\n        _subscription: null,\n        _resize: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(ba) {\n                if (((ba === \"show\"))) {\n                    this._attach();\n                    h.inform(\"layer_shown\", {\n                        type: \"DialogX\"\n                    });\n                }\n                 else {\n                    this._detach();\n                    h.inform(\"layer_hidden\", {\n                        type: \"DialogX\"\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n            ((this._resize && this._detach()));\n        },\n        _attach: function() {\n            this._layer.updatePosition();\n            this._resize = l.listen(window, \"resize\", x(this._layer.updatePosition.bind(this._layer)));\n        },\n        _detach: function() {\n            this._resize.remove();\n            this._resize = null;\n        }\n    });\n    e.exports = z;\n});\n__d(\"eachKeyVal\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        if (((!h || !i))) {\n            return;\n        }\n    ;\n    ;\n        var k = Object.keys(h), l;\n        for (l = 0; ((l < k.length)); l++) {\n            i.call(j, k[l], h[k[l]], h, l);\n        ;\n        };\n    ;\n    };\n;\n    e.exports = g;\n});\n__d(\"LoadingDialogDimensions\", [], function(a, b, c, d, e, f) {\n    var g = {\n        HEIGHT: 96,\n        WIDTH: 300\n    };\n    e.exports = g;\n});\n__d(\"AsyncDialog\", [\"AsyncRequest\",\"Bootloader\",\"CSS\",\"DialogX\",\"DOM\",\"Env\",\"Keys\",\"LayerFadeOnShow\",\"Parent\",\"React\",\"URI\",\"XUISpinner.react\",\"copyProperties\",\"cx\",\"eachKeyVal\",\"emptyFunction\",\"LoadingDialogDimensions\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DialogX\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"Keys\"), n = b(\"LayerFadeOnShow\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"URI\"), r = b(\"XUISpinner.react\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = b(\"eachKeyVal\"), v = b(\"emptyFunction\"), w = b(\"LoadingDialogDimensions\").WIDTH, x;\n    function y() {\n        if (!x) {\n            var ga = k.create(\"div\", {\n                className: \"_57-x\"\n            });\n            x = new j({\n                width: w,\n                addedBehaviors: [n,],\n                xui: true\n            }, k.create(\"div\", null, ga));\n            p.renderComponent(r({\n                size: \"large\"\n            }), ga);\n            x.subscribe([\"key\",\"JSBNG__blur\",], function(ha, ia) {\n                if (((((ha == \"JSBNG__blur\")) || ((((ha == \"key\")) && ((ia.keyCode == m.ESC))))))) {\n                    ca();\n                    return false;\n                }\n            ;\n            ;\n            });\n        }\n    ;\n    ;\n        return x;\n    };\n;\n    var z = {\n    }, aa = 1, ba = [];\n    function ca() {\n        u(z, function(ga, ha) {\n            ha.abandon();\n            da(ga);\n        });\n    };\n;\n    function da(ga) {\n        delete z[ga];\n        if (!Object.keys(z).length) {\n            y().hide();\n        }\n    ;\n    ;\n    };\n;\n    function ea(ga, ha) {\n        var ia = aa++;\n        ba[ia] = ha;\n        z[ia] = ga;\n        var ja = da.curry(((\"\" + ia)));\n        s(ga.getData(), {\n            __asyncDialog: ia\n        });\n        y().setCausalElement(ga.getRelativeTo()).show();\n        var ka = ga.finallyHandler;\n        ga.setFinallyHandler(function(la) {\n            var ma = la.getPayload();\n            if (((ma && ma.asyncURL))) {\n                fa.send(new g(ma.asyncURL));\n            }\n        ;\n        ;\n            ja();\n            ((ka && ka(la)));\n        });\n        ga.setInterceptHandler(ja).setAbortHandler(ja);\n        ga.send();\n    };\n;\n    var fa = {\n        send: function(ga, ha) {\n            ea(ga, ((ha || v)));\n        },\n        bootstrap: function(ga, ha, ia) {\n            if (!ga) {\n                return;\n            }\n        ;\n        ;\n            var ja = ((o.byClass(ha, \"stat_elem\") || ha));\n            if (((ja && i.hasClass(ja, \"async_saving\")))) {\n                return false;\n            }\n        ;\n        ;\n            var ka = new q(ga).getQueryData(), la = ((ia === \"dialog\")), ma = new g().setURI(ga).setData(ka).setMethod(((la ? \"GET\" : \"POST\"))).setReadOnly(la).setRelativeTo(ha).setStatusElement(ja).setNectarModuleDataSafe(ha);\n            if (l.is_desktop) {\n                h.loadModules([\"FbdDialogProvider\",], function(na) {\n                    na.sendDialog(ma, fa.send);\n                });\n                return;\n            }\n        ;\n        ;\n            fa.send(ma);\n        },\n        respond: function(ga, ha) {\n            var ia = ba[ga];\n            if (ia) {\n                ia(ha);\n                delete ba[ga];\n            }\n        ;\n        ;\n        },\n        getLoadingDialog: function() {\n            return y();\n        }\n    };\n    e.exports = fa;\n});\n__d(\"Hovercard\", [\"JSXDOM\",\"JSBNG__Event\",\"function-extensions\",\"AccessibleLayer\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ContextualDialog\",\"ContextualThing\",\"DOM\",\"LayerAutoFocus\",\"Parent\",\"JSBNG__Rect\",\"Style\",\"UserAgent\",\"Vector\",\"clickRefAction\",\"cx\",\"emptyFunction\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var i = b(\"AccessibleLayer\"), j = b(\"Arbiter\"), k = b(\"AsyncRequest\"), l = b(\"AsyncSignal\"), m = b(\"ContextualDialog\"), n = b(\"ContextualThing\"), o = b(\"DOM\"), p = b(\"LayerAutoFocus\"), q = b(\"Parent\"), r = b(\"JSBNG__Rect\"), s = b(\"Style\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"clickRefAction\"), w = b(\"cx\"), x = b(\"emptyFunction\"), y = b(\"tx\"), z = b(\"userAction\"), aa = {\n    }, ba = {\n    }, ca = null, da = null, ea = null, fa = 150, ga = 700, ha = 1000, ia = 250, ja = null, ka = null, la = null, ma = null;\n    function na(JSBNG__event) {\n        var cb = q.byTag(JSBNG__event.getTarget(), \"a\");\n        ((bb.processNode(cb) && JSBNG__event.JSBNG__stop()));\n    };\n;\n    function oa(cb) {\n        da = cb;\n        if (!pa(cb)) {\n            var db;\n            if (((!cb || !(db = qa(cb))))) {\n                ((ba.moveToken && ba.moveToken.remove()));\n                ba = {\n                };\n                return false;\n            }\n        ;\n        ;\n            if (((ba.node != cb))) {\n                ((ba.moveToken && ba.moveToken.remove()));\n                ba = {\n                    node: cb,\n                    endpoint: db,\n                    pos: null\n                };\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    function pa(cb) {\n        return ((((cb && ca)) && ((ba.node == cb))));\n    };\n;\n    function qa(cb) {\n        return cb.getAttribute(\"data-hovercard\");\n    };\n;\n    function ra(cb) {\n        var db = h.listen(cb, \"mouseout\", function() {\n            JSBNG__clearTimeout(ja);\n            JSBNG__clearTimeout(ka);\n            db.remove();\n            da = null;\n            if (!bb.contains(cb)) {\n                bb.hide();\n            }\n        ;\n        ;\n        });\n        if (!ba.moveToken) {\n            ba.moveToken = h.listen(cb, \"mousemove\", function(JSBNG__event) {\n                ba.pos = u.getEventPosition(JSBNG__event);\n            });\n        }\n    ;\n    ;\n        JSBNG__clearTimeout(ja);\n        JSBNG__clearTimeout(ka);\n        JSBNG__clearTimeout(ma);\n        var eb = fa, fb = ((ca ? ia : ga));\n        if (cb.getAttribute(\"data-hovercard-instant\")) {\n            eb = fb = 50;\n        }\n    ;\n    ;\n        ja = JSBNG__setTimeout(wa.curry(cb), eb);\n        ka = JSBNG__setTimeout(sa.curry(cb), fb);\n    };\n;\n    function sa(cb, db) {\n        if (((ba.node != cb))) {\n            return;\n        }\n    ;\n    ;\n        var eb = aa[qa(cb)];\n        if (eb) {\n            ua(eb);\n        }\n         else if (db) {\n            ua(ya());\n        }\n         else {\n            var fb = ((ca ? ia : ga));\n            la = JSBNG__setTimeout(sa.curry(cb, true), ((ha - fb)));\n        }\n        \n    ;\n    ;\n    };\n;\n    function ta() {\n        bb.hide(true);\n        JSBNG__clearTimeout(ka);\n    };\n;\n    function ua(cb) {\n        var db = ba.node, eb = ca, fb = ((eb != db));\n        if (ea) {\n            var gb = ea.getContentRoot();\n            if (!n.containsIncludingLayers(gb, db)) {\n                ea.hide();\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        if (!o.contains(JSBNG__document.body, db)) {\n            bb.hide(true);\n            return;\n        }\n    ;\n    ;\n        ca = db;\n        ea = cb;\n        cb.setContextWithBounds(db, va(db)).show();\n        if (fb) {\n            (function() {\n                new l(\"/ajax/hovercard/shown.php\").send();\n                v(\"himp\", ca, null, \"FORCE\", {\n                    ft: {\n                        evt: 39\n                    }\n                });\n                z(\"hovercard\", ca).uai(\"show\");\n            }).defer();\n        }\n    ;\n    ;\n    };\n;\n    function va(cb) {\n        var db = ba.pos, eb = cb.getClientRects();\n        if (((!db || ((eb.length === 0))))) {\n            return r.getElementBounds(cb);\n        }\n    ;\n    ;\n        var fb, gb = false;\n        for (var hb = 0; ((hb < eb.length)); hb++) {\n            var ib = new r(Math.round(eb[hb].JSBNG__top), Math.round(eb[hb].right), Math.round(eb[hb].bottom), Math.round(eb[hb].left), \"viewport\").convertTo(\"JSBNG__document\"), jb = ib.getPositionVector(), kb = jb.add(ib.getDimensionVector());\n            if (((!fb || ((((jb.x <= fb.l)) && ((jb.y > fb.t))))))) {\n                if (gb) {\n                    break;\n                }\n            ;\n            ;\n                fb = new r(jb.y, kb.x, kb.y, jb.x, \"JSBNG__document\");\n            }\n             else {\n                fb.t = Math.min(fb.t, jb.y);\n                fb.b = Math.max(fb.b, kb.y);\n                fb.r = kb.x;\n            }\n        ;\n        ;\n            if (ib.contains(db)) {\n                gb = true;\n            }\n        ;\n        ;\n        };\n    ;\n        return fb;\n    };\n;\n    function wa(cb) {\n        if (((cb.id && ((aa[cb.id] != null))))) {\n            return;\n        }\n    ;\n    ;\n        var db = qa(cb);\n        if (((aa[db] != null))) {\n            return;\n        }\n    ;\n    ;\n        xa(db);\n        var eb = function() {\n            bb.dirty(db);\n            ta();\n        };\n        new k(db).setData({\n            endpoint: db\n        }).setMethod(\"GET\").setReadOnly(true).setErrorHandler(eb).setTransportErrorHandler(eb).send();\n    };\n;\n    function xa(cb) {\n        aa[cb] = false;\n    };\n;\n    var ya = function() {\n        var cb = new m({\n            width: 275\n        }, g.div({\n            className: \"_7lk\"\n        }, \"Loading...\"));\n        cb.disableBehavior(i).disableBehavior(p);\n        za(cb);\n        ya = x.thatReturns(cb);\n        return cb;\n    };\n    function za(cb) {\n        var db = [cb.subscribe(\"mouseenter\", function() {\n            JSBNG__clearTimeout(ma);\n            da = ba.node;\n        }),cb.subscribe(\"mouseleave\", function() {\n            cb.hide();\n            da = null;\n        }),cb.subscribe(\"destroy\", function() {\n            while (db.length) {\n                db.pop().unsubscribe();\n            ;\n            };\n        ;\n            db = null;\n        }),];\n    };\n;\n    var ab = true, bb = {\n        hide: function(cb) {\n            if (!ca) {\n                return;\n            }\n        ;\n        ;\n            if (cb) {\n                if (ea) {\n                    ea.hide();\n                }\n            ;\n            ;\n                da = null;\n                ca = null;\n                ea = null;\n            }\n             else ma = JSBNG__setTimeout(bb.hide.curry(true), ia);\n        ;\n        ;\n        },\n        setDialog: function(cb, db) {\n            db.disableBehavior(i).disableBehavior(p);\n            aa[cb] = db;\n            za(db);\n            if (((((ba.endpoint == cb)) && ((da == ba.node))))) {\n                ya().hide();\n                var eb = ba.node.getAttribute(\"data-hovercard-position\");\n                ((eb && db.setPosition(eb)));\n                var fb = ba.node.getAttribute(\"data-hovercard-offset-x\");\n                ((fb && db.setOffsetX(parseInt(fb, 10))));\n                var gb = ba.node.getAttribute(\"data-hovercard-offset-y\");\n                ((gb && db.setOffsetY(parseInt(gb, 10))));\n                ua(db);\n            }\n        ;\n        ;\n        },\n        getDialog: function(cb) {\n            return aa[cb];\n        },\n        contains: function(cb) {\n            if (ea) {\n                return n.containsIncludingLayers(ea.getContentRoot(), cb);\n            }\n        ;\n        ;\n            return false;\n        },\n        dirty: function(cb) {\n            var db = aa[cb];\n            if (db) {\n                db.destroy();\n                delete aa[cb];\n            }\n        ;\n        ;\n        },\n        dirtyAll: function() {\n            {\n                var fin113keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin113i = (0);\n                var cb;\n                for (; (fin113i < fin113keys.length); (fin113i++)) {\n                    ((cb) = (fin113keys[fin113i]));\n                    {\n                        var db = aa[cb];\n                        ((db && bb.dirty(cb)));\n                    };\n                };\n            };\n        ;\n            j.inform(\"Hovercard/dirty\");\n        },\n        processNode: function(cb) {\n            if (((cb && oa(cb)))) {\n                ra(cb);\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        setDirtyAllOnPageTransition: function(cb) {\n            ab = cb;\n        }\n    };\n    (function() {\n        if (((t.ie() < 8))) {\n            return;\n        }\n    ;\n    ;\n        h.listen(JSBNG__document.documentElement, \"mouseover\", na);\n        h.listen(window, \"JSBNG__scroll\", function() {\n            if (((ca && s.isFixed(ca)))) {\n                bb.hide(true);\n            }\n        ;\n        ;\n        });\n        j.subscribe(\"page_transition\", function() {\n            ta();\n            ((ab && bb.dirtyAll()));\n        }, j.SUBSCRIBE_NEW);\n    })();\n    e.exports = bb;\n});\n__d(\"StickyPlaceholderInput\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"Input\",\"Parent\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Input\"), k = b(\"Parent\"), l = b(\"emptyFunction\");\n    function m(q) {\n        return k.byClass(q, \"uiStickyPlaceholderInput\");\n    };\n;\n    function n(q) {\n        return i.scry(q, \".placeholder\")[0];\n    };\n;\n    function o(q) {\n        q = ((q || window.JSBNG__event));\n        var r = ((q.target || q.srcElement));\n        if (i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n            var s = m(r);\n            if (s) {\n                (function() {\n                    h.conditionClass(s, \"uiStickyPlaceholderEmptyInput\", !r.value.length);\n                }).defer();\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    var p = {\n        init: function() {\n            p.init = l;\n            g.listen(JSBNG__document.documentElement, {\n                keydown: o,\n                paste: o,\n                focusout: o\n            });\n        },\n        registerInput: function(q) {\n            p.init();\n            var r = ((q.getAttribute(\"placeholder\") || \"\"));\n            if (r.length) {\n                if (((JSBNG__document.activeElement === q))) {\n                    var s = g.listen(q, \"JSBNG__blur\", function() {\n                        p.manipulateInput(q, r);\n                        s.remove();\n                    });\n                }\n                 else p.manipulateInput(q, r);\n            ;\n            }\n        ;\n        ;\n        },\n        manipulateInput: function(q, r) {\n            var s = i.create(\"div\", {\n                className: \"placeholder\",\n                \"aria-hidden\": \"true\"\n            }, r), t = i.create(\"div\", {\n                className: \"uiStickyPlaceholderInput\"\n            }, s);\n            if (i.isNodeOfType(q, \"textarea\")) {\n                h.addClass(t, \"uiStickyPlaceholderTextarea\");\n            }\n        ;\n        ;\n            g.listen(s, \"click\", function() {\n                q.JSBNG__focus();\n            });\n            if (((q.value === r))) {\n                q.value = \"\";\n            }\n        ;\n        ;\n            h.removeClass(q, \"DOMControl_placeholder\");\n            q.setAttribute(\"placeholder\", \"\");\n            i.replace(q, t);\n            i.appendContent(t, q);\n            h.conditionClass(t, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n        },\n        setPlaceholderText: function(q, r) {\n            var s = m(q);\n            if (!s) {\n                j.setPlaceholder(q, r);\n            }\n             else {\n                var t = n(s);\n                ((t && i.setContent(t, r)));\n            }\n        ;\n        ;\n        },\n        getPlaceholderText: function(q) {\n            var r = m(q), s = n(r);\n            return ((s && i.getText(s)));\n        },\n        update: function(q) {\n            var r = m(q);\n            if (r) {\n                h.conditionClass(r, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n            }\n        ;\n        ;\n        },\n        getVisibleText: function(q) {\n            var r = m(q);\n            if (h.hasClass(r, \"uiStickyPlaceholderEmptyInput\")) {\n                var s = n(r);\n                return ((s && i.getText(s)));\n            }\n             else return q.value\n        ;\n        }\n    };\n    e.exports = p;\n});\n__d(\"UIForm\", [\"JSBNG__Event\",\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"Form\",\"Run\",\"areObjectsEqual\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"DOM\"), k = b(\"Form\"), l = b(\"Run\"), m = b(\"areObjectsEqual\"), n = b(\"copyProperties\");\n    function o(p, q, r, s, t) {\n        this._root = p;\n        this.controller = p;\n        this._message = q;\n        if (s) {\n            this._confirm_dialog = s;\n            s.subscribe(\"JSBNG__confirm\", this._handleDialogConfirm.bind(this));\n            j.prependContent(this._root, j.create(\"input\", {\n                type: \"hidden\",\n                JSBNG__name: \"confirmed\",\n                value: \"true\"\n            }));\n        }\n    ;\n    ;\n        l.onAfterLoad(function() {\n            this._originalState = k.serialize(this._root);\n        }.bind(this));\n        this._forceDirty = r;\n        this._confirmed = false;\n        this._submitted = false;\n        g.listen(this._root, \"submit\", this._handleSubmit.bind(this));\n        if (((t && t.length))) {\n            this.enableBehaviors(t);\n        }\n    ;\n    ;\n        var u = true;\n        l.onBeforeUnload(this.checkUnsaved.bind(this), u);\n    };\n;\n    n(o.prototype, h, i, {\n        getRoot: function() {\n            return this._root;\n        },\n        _handleSubmit: function() {\n            if (((this._confirm_dialog && !this._confirmed))) {\n                this._confirm_dialog.show();\n                return false;\n            }\n        ;\n        ;\n            if (((this.inform(\"submit\") === false))) {\n                return false;\n            }\n        ;\n        ;\n            this._submitted = true;\n            return true;\n        },\n        _handleDialogConfirm: function() {\n            this._confirmed = true;\n            this._confirm_dialog.hide();\n            if (this._root.getAttribute(\"ajaxify\")) {\n                g.fire(this._root, \"submit\");\n            }\n             else if (this._handleSubmit()) {\n                this._root.submit();\n            }\n            \n        ;\n        ;\n        },\n        reset: function() {\n            this.inform(\"reset\");\n            this._submitted = false;\n            this._confirmed = false;\n        },\n        isDirty: function() {\n            if (((this._submitted || !j.contains(JSBNG__document.body, this._root)))) {\n                return false;\n            }\n        ;\n        ;\n            if (this._forceDirty) {\n                return true;\n            }\n        ;\n        ;\n            var p = k.serialize(this._root);\n            return !m(p, this._originalState);\n        },\n        checkUnsaved: function() {\n            if (this.isDirty()) {\n                return this._message;\n            }\n        ;\n        ;\n            return null;\n        }\n    });\n    e.exports = ((a.UIForm || o));\n});\n__d(\"MenuTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"cx\");\n    e.exports = {\n        className: \"_569t\"\n    };\n});\n__d(\"legacy:Tooltip\", [\"Tooltip\",], function(a, b, c, d) {\n    a.Tooltip = b(\"Tooltip\");\n}, 3);\n__d(\"BanzaiODS\", [\"Banzai\",\"invariant\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"invariant\");\n    function i() {\n        var k = {\n        };\n        function l(m, n, o, p) {\n            var q = ((k[m] || (k[m] = {\n            }))), r = ((q[n] || (q[n] = [0,])));\n            if (((o === undefined))) {\n                o = 1;\n            }\n        ;\n        ;\n            if (((p === undefined))) {\n                p = 1;\n            }\n        ;\n        ;\n            o = Number(o);\n            p = Number(p);\n            if (((!isFinite(o) || !isFinite(p)))) {\n                return;\n            }\n        ;\n        ;\n            r[0] += o;\n            if (((arguments.length >= 4))) {\n                if (!r[1]) {\n                    r[1] = 0;\n                }\n            ;\n            ;\n                r[1] += p;\n            }\n        ;\n        ;\n        };\n    ;\n        return {\n            bumpEntityKey: function(m, n, o) {\n                l(m, n, o);\n            },\n            bumpFraction: function(m, n, o, p) {\n                l(m, n, o, p);\n            },\n            flush: function(m) {\n                {\n                    var fin114keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin114i = (0);\n                    var n;\n                    for (; (fin114i < fin114keys.length); (fin114i++)) {\n                        ((n) = (fin114keys[fin114i]));\n                        {\n                            g.post(((\"ods:\" + n)), k[n], m);\n                        ;\n                        };\n                    };\n                };\n            ;\n                k = {\n                };\n            }\n        };\n    };\n;\n    var j = i();\n    j.create = i;\n    g.subscribe(g.SEND, j.flush.bind(j, null));\n    e.exports = j;\n});\n__d(\"endsWith\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return ((h.indexOf(i, ((h.length - i.length))) > -1));\n    };\n;\n    e.exports = g;\n});\n__d(\"extendArray\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        Array.prototype.push.apply(h, i);\n        return h;\n    };\n;\n    e.exports = g;\n});");
36433 // 6503
36434 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o42,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/4CJ_klaVGHP.js",o93);
36435 // undefined
36436 o42 = null;
36437 // undefined
36438 o93 = null;
36439 // 7196
36440 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_845[0], o102,undefined);
36441 // undefined
36442 o102 = null;
36443 // 7699
36444 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_845[0], o39,undefined);
36445 // undefined
36446 o39 = null;
36447 // 7737
36448 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523[0], o80,undefined);
36449 // undefined
36450 o80 = null;
36451 // 7765
36452 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523[0], o4,undefined);
36453 // undefined
36454 o4 = null;
36455 // 7767
36456 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_845[0], o87,undefined);
36457 // undefined
36458 o87 = null;
36459 // 10319
36460 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        localize: function(i) {\n            i = g(i);\n            if (!i.isFacebookURI()) {\n                return i.toString()\n            };\n            var j = i.getSubdomain();\n            return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n        },\n        snowliftable: function(i) {\n            if (!i) {\n                return false\n            };\n            i = g(i);\n            return (i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\"));\n        },\n        isVaultSetURI: function(i) {\n            if (!i) {\n                return false\n            };\n            i = g(i);\n            return (i.isFacebookURI() && (i.getPath() == \"/ajax/vault/sharer_preview.php\"));\n        }\n    };\n    e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n    a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n        setXmode: function(k) {\n            (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n                xmode: k\n            }).setHandler(function() {\n                document.location.reload();\n            }).send();\n        },\n        setAmode: function(k) {\n            new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n                amode: k,\n                app: false\n            }).setHandler(function() {\n                document.location.reload();\n            }).send();\n        },\n        setLocale: function(k, l, m, n) {\n            if (!m) {\n                m = k.options[k.selectedIndex].value;\n            };\n            j.saveLocale(m, true, null, l, n);\n        },\n        saveLocale: function(k, l, m, n, o) {\n            new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n                aloc: k,\n                source: n,\n                app_only: o\n            }).setHandler(function(p) {\n                if (l) {\n                    document.location.reload();\n                }\n                 else i(m);\n            ;\n            }).send();\n        },\n        setLocaleCookie: function(k, l) {\n            h.set(\"locale\", k, ((7 * 24) * 3600000));\n            i(l);\n        }\n    };\n    e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n    var e = b(\"IntlUtils\");\n    a.intl_set_xmode = e.setXmode;\n    a.intl_set_amode = e.setAmode;\n    a.intl_set_locale = e.setLocale;\n    a.intl_save_locale = e.saveLocale;\n    a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n    var e = b(\"OnloadHooks\");\n    a._onloadHook = e._onloadHook;\n    a._onafterloadHook = e._onafterloadHook;\n    a.runHook = e.runHook;\n    a.runHooks = e.runHooks;\n    a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ge\"), i = b(\"Button\");\n    f.init = function(j, k) {\n        g.listen(j, \"submit\", function() {\n            i.setEnabled(k, false);\n            i.setEnabled.curry(k, true).defer(15000);\n        });\n        var l = h(\"lgnjs\");\n        if (l) {\n            l.value = parseInt((Date.now() / 1000), 10);\n        };\n    };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n    var g = {\n        get_intern_ref: function(h) {\n            if (!!h) {\n                var i = {\n                    profile_minifeed: 1,\n                    gb_content_and_toolbar: 1,\n                    gb_muffin_area: 1,\n                    ego: 1,\n                    bookmarks_menu: 1,\n                    jewelBoxNotif: 1,\n                    jewelNotif: 1,\n                    BeeperBox: 1,\n                    navSearch: 1\n                };\n                for (var j = h; (j && (j != document.body)); j = j.parentNode) {\n                    if ((!j.id || (typeof j.id !== \"string\"))) {\n                        continue;\n                    };\n                    if ((j.id.substr(0, 8) == \"pagelet_\")) {\n                        return j.id.substr(8)\n                    };\n                    if ((j.id.substr(0, 8) == \"box_app_\")) {\n                        return j.id\n                    };\n                    if (i[j.id]) {\n                        return j.id\n                    };\n                };\n            }\n        ;\n            return \"-\";\n        },\n        get_href: function(h) {\n            var i = (((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\")))) || h.action) || h.href) || h.name));\n            return ((typeof i === \"string\") ? i : null);\n        },\n        should_report: function(h, i) {\n            if ((i == \"FORCE\")) {\n                return true\n            };\n            if ((i == \"INDIRECT\")) {\n                return false\n            };\n            return (h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\"))))));\n        }\n    };\n    e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\");\n    function h(i) {\n        if (!g.no_cookies) {\n            document.cookie = (((\"act=\" + encodeURIComponent(i)) + \"; path=/; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"));\n        };\n    };\n    e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n    function o(q) {\n        if (!l(\"content\")) {\n            return [0,0,0,0,]\n        };\n        var r = n(\"content\"), s = (a.Vector2 ? a.Vector2.getEventPosition(q) : {\n            x: 0,\n            y: 0\n        });\n        return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n    };\n    function p(q, r, event, s) {\n        var t = ((!a.ArbiterMonitor) ? \"r\" : \"a\"), u = [0,0,0,0,], v, w, x;\n        if (!!event) {\n            v = event.type;\n            if (((v == \"click\") && l(\"content\"))) {\n                u = o(event);\n            };\n            var y = 0;\n            (event.ctrlKey && (y += 1));\n            (event.shiftKey && (y += 2));\n            (event.altKey && (y += 4));\n            (event.metaKey && (y += 8));\n            if (y) {\n                v += y;\n            };\n        }\n    ;\n        if (!!r) {\n            w = i.get_href(r);\n        };\n        var z = [];\n        if (a.ArbiterMonitor) {\n            x = a.ArbiterMonitor.getInternRef(r);\n            z = a.ArbiterMonitor.getActFields();\n        }\n    ;\n        var aa = j((!!event ? ((event.target || event.srcElement)) : r), [\"ft\",\"gt\",]);\n        k(aa.ft, (s.ft || {\n        }));\n        k(aa.gt, (s.gt || {\n        }));\n        if ((typeof (aa.ft.ei) === \"string\")) {\n            delete aa.ft.ei;\n        };\n        var ba = [q._ue_ts,q._ue_count,(w || \"-\"),q._context,(v || \"-\"),(x || i.get_intern_ref(r)),t,(a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((location.pathname + location.search) + location.hash)),aa,].concat(u).concat(z);\n        return ba;\n    };\n    g.subscribe(\"ClickRefAction/new\", function(q, r) {\n        if (i.should_report(r.node, r.mode)) {\n            var s = p(r.cfa, r.node, r.event, r.extra_data);\n            m(r.cfa.ue);\n            h.log(\"act\", s);\n            if (window.chromePerfExtension) {\n                window.postMessage({\n                    clickRef: JSON.stringify(s)\n                }, window.location.origin);\n            };\n        }\n    ;\n    });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = [], i = {\n        addHandler: function(j) {\n            h.push(j);\n        },\n        augmentURI: function(j) {\n            var k = [], l = g(j);\n            h.forEach(function(m) {\n                var n = m(l);\n                if (!n) {\n                    return l\n                };\n                k.push(m);\n                l = l.addQueryData(n);\n            });\n            h = k;\n            return l;\n        }\n    };\n    e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n        isActive: function() {\n            return true;\n        },\n        isPageActive: function(la) {\n            if ((la == \"#\")) {\n                return false\n            };\n            la = new s(la);\n            if ((la.getDomain() && (la.getDomain() != s().getDomain()))) {\n                return false\n            };\n            if ((la.getPath() == \"/l.php\")) {\n                var ma = la.getQueryData().u;\n                if (ma) {\n                    ma = s(unescape(ma)).getDomain();\n                    if ((ma && (ma != s().getDomain()))) {\n                        return false\n                    };\n                }\n            ;\n            }\n        ;\n            var na = la.getPath(), oa = la.getQueryData();\n            if (!w(oa)) {\n                na += (\"?\" + s.implodeQuery(oa));\n            };\n            return !aa.test(na);\n        },\n        getLoadCount: function() {\n            return ba;\n        }\n    };\n    function fa(la) {\n        la = (la || \"Facebook\");\n        k.set(la);\n        if (t.ie()) {\n            da = la;\n            if (!ca) {\n                ca = window.setInterval(function() {\n                    var ma = da, na = k.get();\n                    if ((ma != na)) {\n                        k.set(ma);\n                    };\n                }, 5000, false);\n            };\n        }\n    ;\n    };\n    function ga(la) {\n        var ma = document.getElementsByTagName(\"link\");\n        for (var na = 0; (na < ma.length); ++na) {\n            if ((ma[na].rel != \"alternate\")) {\n                continue;\n            };\n            l.remove(ma[na]);\n        };\n        if (la.length) {\n            var oa = l.find(document, \"head\");\n            (oa && l.appendContent(oa, n(la[0])));\n        }\n    ;\n    };\n    function ha(la) {\n        var ma = {\n            version: y\n        };\n        this.parent.construct(this, la, {\n            quickling: ma\n        });\n    };\n    i.extend(ha, g);\n    u(ha.prototype, {\n        _preBootloadFirstResponse: function(la) {\n            return true;\n        },\n        _fireDomContentCallback: function() {\n            (this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\"));\n            p.transitionComplete();\n            (this._onPageDisplayed && this._onPageDisplayed(this.pipe));\n            this.parent._fireDomContentCallback();\n        },\n        _fireOnloadCallback: function() {\n            if (this._request.cavalry) {\n                this._request.cavalry.setTimeStamp(\"t_hooks\");\n                this._request.cavalry.setTimeStamp(\"t_layout\");\n                this._request.cavalry.setTimeStamp(\"t_onload\");\n            }\n        ;\n            this.parent._fireOnloadCallback();\n        },\n        isPageActive: function(la) {\n            return ea.isPageActive(la);\n        },\n        _versionCheck: function(la) {\n            if ((la.version == y)) {\n                return true\n            };\n            var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n            v(window.location, s(la.uri).removeQueryData(ma), true);\n            return false;\n        },\n        _processFirstResponse: function(la) {\n            var ma = la.getPayload();\n            fa(ma.title);\n            ga((ma.syndication || []));\n            window.scrollTo(0, 0);\n            j.go(document.body, (ma.body_class || \"\"), p.getMostRecentURI(), la.getRequest().getURI());\n            h.inform(\"quickling/response\");\n        },\n        getSanitizedParameters: function() {\n            return [\"quickling\",];\n        }\n    });\n    function ia() {\n        ba++;\n        return (ba >= z);\n    };\n    function ja(la) {\n        g.setCurrentRequest(null);\n        if (ia()) {\n            return false\n        };\n        la = q.augmentURI(la);\n        if (!ea.isPageActive(la)) {\n            return false\n        };\n        window.ExitTime = Date.now();\n        r.__removeHook(\"onafterloadhooks\");\n        r.__removeHook(\"onloadhooks\");\n        o.runHooks(\"onleavehooks\");\n        h.inform(\"onload/exit\", true);\n        new ha(la).setCanvasId(\"content\").send();\n        return true;\n    };\n    function ka(la) {\n        var ma = window[la];\n        function na(oa, pa, qa) {\n            if ((typeof oa !== \"function\")) {\n                oa = eval.bind(null, oa);\n            };\n            var ra = ma(m.guard(oa), pa);\n            if ((pa > 0)) {\n                if ((qa !== false)) {\n                    r.onLeave(function() {\n                        clearInterval(ra);\n                    });\n                }\n            };\n            return ra;\n        };\n        window[la] = na;\n    };\n    r.onAfterLoad(function la() {\n        ka(\"setInterval\");\n        ka(\"setTimeout\");\n        p.registerHandler(ja, 1);\n    });\n    e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n    function j(m, n, o) {\n        this.fields = {\n        };\n        this.flush = function() {\n            if (!m) {\n                return\n            };\n            var p = {\n            };\n            i(p, this.fields);\n            p._ds = m;\n            if (n) {\n                p._lid = n;\n            };\n            p._options = o;\n            h.post(g, p);\n            this.flush = function() {\n            \n            };\n            this.flushed = true;\n        };\n        this.lid = n;\n        return this;\n    };\n    function k(m, n, o) {\n        if (!this.fields[m]) {\n            this.fields[m] = {\n            };\n        };\n        this.fields[m][n] = o;\n        return this;\n    };\n    function l(m) {\n        return function(n, o) {\n            if (this.flushed) {\n                return this\n            };\n            return k.call(this, m, n, o);\n        };\n    };\n    i(j.prototype, {\n        addNormal: l(\"normal\"),\n        addInteger: l(\"int\"),\n        addDenorm: l(\"denorm\")\n    });\n    e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n    function k(o) {\n        var p = [];\n        for (var q = 0; (q < o.length); q++) {\n            p.push(new RegExp(o[q], \"i\"));;\n        };\n        return p;\n    };\n    function l(o, p) {\n        for (var q = 0; (q < p.length); q++) {\n            if (p[q].src) {\n                o.push(p[q].src);\n            };\n        };\n    };\n    function m(o, p) {\n        for (var q = 0; (q < p.length); q++) {\n            if (p[q].test(o)) {\n                return true\n            };\n        };\n        return false;\n    };\n    function n(o, p) {\n        var q = g.stop(), r = {\n            addGeoFields: 1,\n            addBrowserFields: 1,\n            addUser: 1\n        }, s = {\n        };\n        l(q, document.getElementsByTagName(\"script\"));\n        l(q, document.getElementsByTagName(\"iframe\"));\n        for (var t = 0; (t < q.length); t++) {\n            var u = q[t].replace(/\\?.*/, \"\"), v;\n            if (s[u]) {\n                continue;\n            };\n            s[u] = 1;\n            if (!j.isValidURI(u)) {\n                v = true;\n            }\n             else if (m(u, p)) {\n                v = false;\n            }\n             else if (m(new j(u).getDomain(), o)) {\n                v = false;\n            }\n             else v = true;\n            \n            \n        ;\n            if (v) {\n                new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n            };\n        };\n    };\n    e.exports = {\n        runScan: function(o, p) {\n            i(function() {\n                n(k(o), k(p));\n            }, 5000);\n        }\n    };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        unicodeEscape: function(g) {\n            return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n                var i = h.charCodeAt().toString(16);\n                return (\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4));\n            });\n        },\n        unicodeUnescape: function(g) {\n            return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n                return String.fromCharCode(parseInt(h.slice(2), 16));\n            });\n        }\n    };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n        tos_seq: 0,\n        tos_cumulative: 0,\n        transport_cause: null,\n        buenopath: null,\n        page_token: null,\n        elements: 0,\n        uact_tos: null,\n        client_time: null\n    }, s = 100, t = 100, u = (10 * 1000), v = (3 * 1000), w = 1, x = 2, y = 4, z = 8, aa = {\n    };\n    m.subscribe(function(ia, ja) {\n        var ka = (p.length - 1);\n        q = ja.last_inform;\n        if ((ja.idleness < v)) {\n            p[ka] += ja.idleness;\n            r.tos_cumulative += ja.idleness;\n        }\n         else {\n            if ((ka > s)) {\n                fa(\"array_limit_reached\");\n            };\n            p.push(ja.idleness, 0);\n        }\n    ;\n    });\n    function ba(ia) {\n        var ja = 0;\n        if (document.getElementById(\"boulder_fixed_header\")) {\n            ja = (ja | w);\n        };\n        if (i.hasClass(document.body, \"timelineLayout\")) {\n            ja = (ja | y);\n            var ka = document.getElementById(\"pagelet_main_column_personal\");\n            if ((ka && (ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))) {\n                ja = (ja | x);\n            };\n            if (i.hasClass(document.body, \"pagesTimelineLayout\")) {\n                ja = (ja | z);\n            };\n        }\n    ;\n        return ja;\n    };\n    function ca(ia) {\n        var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n        r.uact_tos = p;\n        if (ka) {\n            r.buenopath = ka.substring(0, t);\n        }\n         else r.buenopath = \"\";\n    ;\n        if (la) {\n            r.page_token = la;\n        }\n         else r.page_token = \"\";\n    ;\n        r.elements = ja;\n        r.transport_cause = ia;\n        r.client_time = Date.now();\n    };\n    function da() {\n        r.tos_seq += 1;\n        p = [q,0,];\n    };\n    var ea = {\n        store: true,\n        delay: 3000,\n        retry: true\n    };\n    function fa(ia) {\n        ca(ia);\n        if (h.isEnabled(\"time_spent\")) {\n            g.inform(\"timespent/tosdataposted\", o({\n            }, r));\n            h.post(\"time_spent\", o({\n            }, r), ea);\n        }\n    ;\n        da();\n    };\n    function ga() {\n        fa(\"heartbeat\");\n    };\n    function ha() {\n        fa(\"before_unload\");\n    };\n    if ((window.top == window.self)) {\n        k.add(window, \"beforeunload\", ha);\n        setInterval(function() {\n            if ((((Date.now() - m.getLastInformTime()) > ((u - 100))) && (((p.length > 2) || (p[(p.length - 1)] > 0))))) {\n                ga();\n            };\n        }, u);\n    }\n;\n    g.subscribe(\"UserAction/new\", function(ia, ja) {\n        if (j.should_report(ja.node, ja.mode)) {\n            var ka = n(ja.node, [\"gt\",]), la = {\n                iref: j.get_intern_ref(ja.node),\n                gt_ref: ka.ref,\n                nav_section: ka.nav_section\n            };\n            ca(\"useraction\");\n            o(la, r);\n            ja.ua.add_data(la);\n            g.inform(\"timespent/tosdataposted\", o({\n            }, r));\n            da();\n        }\n    ;\n    });\n    e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n        click: 1,\n        submit: 1\n    }, l = false, m = {\n        log: [],\n        len: 0\n    }, n = j.acrossTransitions(function() {\n        try {\n            l._ua_log = JSON.stringify(m);\n        } catch (q) {\n            l = false;\n        };\n    }, 1000);\n    function o() {\n        try {\n            if (a.sessionStorage) {\n                l = a.sessionStorage;\n                (l._ua_log && (m = JSON.parse(l._ua_log)));\n            }\n        ;\n        } catch (q) {\n            l = false;\n        };\n        m.log[(m.len % 10)] = {\n            ts: Date.now(),\n            path: \"-\",\n            index: m.len,\n            type: \"init\",\n            iref: \"-\"\n        };\n        m.len++;\n        g.subscribe(\"UserAction/new\", function(r, s) {\n            var t = s.ua, u = s.node, event = s.event;\n            if ((!event || !((event.type in k)))) {\n                return\n            };\n            var v = {\n                path: i.getScriptPath(),\n                type: event.type,\n                ts: t._ue_ts,\n                iref: (h.get_intern_ref(u) || \"-\"),\n                index: m.len\n            };\n            m.log[(m.len++ % 10)] = v;\n            (l && n());\n        });\n    };\n    function p() {\n        return m.log.sort(function(q, r) {\n            return (((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index)));\n        });\n    };\n    o();\n    e.exports = {\n        getHistory: p\n    };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        return Math.min(Math.max(h, i), j);\n    };\n    e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        addButton: function(i, j) {\n            g[i] = j;\n            return j;\n        },\n        getButton: function(i) {\n            return g[i];\n        },\n        getButtons: function() {\n            return g;\n        },\n        removeButton: function(i) {\n            (g[i] && g[i].resetLoadingTimers());\n            delete g[i];\n        }\n    };\n    e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        DEBUG: false,\n        LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n        enableDebug: function() {\n            this.DEBUG = true;\n        },\n        sameURLs: function(i, j) {\n            var k = /\\/$/;\n            if ((i && j)) {\n                i = g(i);\n                j = g(j);\n                return ((i.getDomain() == j.getDomain()) && (i.getPath() == j.getPath()));\n            }\n        ;\n            return false;\n        },\n        greaterOrEqualToMinimumVersion: function(i, j) {\n            var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n            if ((l.length !== m.length)) {\n                return false\n            };\n            for (var n = 0; (n < m.length); n++) {\n                if ((+l[n] < +m[n])) {\n                    return false;\n                }\n                 else if ((+l[n] > +m[n])) {\n                    return true\n                }\n            ;\n            };\n            return true;\n        },\n        sanitizeForProviders: function(i) {\n            var j = {\n            };\n            for (var k in i) {\n                if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n                    j[k] = i[k];\n                };\n            };\n            return j;\n        },\n        OP: {\n            RESUME: \"RESUME\",\n            PAUSE: \"PAUSE\",\n            PLAY: \"PLAY\",\n            VERSION: \"VERSION\"\n        },\n        STATUS_CHANGE_OP: {\n            STATUS: \"STATUS\",\n            LOGIN: \"LOGIN\",\n            REINFORM: \"REINFORM\"\n        },\n        STATUS_CHANGE_EVENT: {\n            playing: \"PLAY_STATE_CHANGED\",\n            track: \"TRACK_CHANGED\"\n        },\n        DIAGNOSTIC_EVENT: {\n            ALL_PAUSED: \"ALL_PAUSED\",\n            ALL_OFFLINE: \"ALL_OFFLINE\",\n            OFFLINE: \"OFFLINE\",\n            ONLINE: \"ONLINE\",\n            SEARCHING: \"SEARCHING\",\n            HIT: \"HIT\",\n            MISS: \"MISS\",\n            RESIGN: \"RESIGN\",\n            IFRAME_POLLING: \"IFRAME_POLLING\",\n            RELAUNCH: \"RELAUNCH\",\n            STATE_CHANGE: \"STATE_CHANGE\",\n            WRONG_VERSION: \"WRONG_VERSION\",\n            SERVICE_ERROR: \"SERVICE_ERROR\",\n            INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n            LOG_SEND_OP: \"LOG_SEND_OP\",\n            REQUEUE_OP: \"REQUEUE_OP\"\n        },\n        ALLOWED_STATUS_PARAMS: {\n            playing: \"playing\",\n            track: \"track\",\n            context: \"context\",\n            client_version: \"client_version\",\n            start_time: \"start_time\",\n            expires_in: \"expires_in\",\n            open_graph_state: \"open_graph_state\"\n        },\n        ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n            uri: true,\n            song: true,\n            radio_station: true,\n            album: true,\n            playlist: true,\n            musician: true,\n            song_list: true,\n            offset: true,\n            title: true,\n            request_id: true,\n            listen_with_friends: true,\n            needs_tos: true\n        },\n        LIVE_LISTEN_OP: {\n            NOW_LEADING: \"NOW_LEADING\",\n            NOW_LISTENING: \"NOW_LISTENING\",\n            END_SESSION: \"END_SESSION\",\n            SONG_PLAYING: \"SONG_PLAYING\",\n            LISTENER_UPDATE: \"LISTENER_UPDATE\",\n            QUEUE_SESSION: \"QUEUE_SESSION\",\n            PLAY_ERROR: \"PLAY_ERROR\",\n            SESSION_UPDATED: \"SESSION_UPDATED\",\n            QUEUING_SESSION: \"QUEUING_SESSION\"\n        },\n        MUSIC_BUTTON: {\n            ACTIVATE: \"ACTIVATE\"\n        },\n        ERROR: {\n            1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n            2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n            3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n            4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n            5: \"AUDIO_AD_PLAYING\",\n            99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n            101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n            102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n            103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n        }\n    };\n    e.exports = (a.MusicConstants || h);\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\");\n    e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n        this.provider = t;\n        this.buttonElem = u;\n        this.url = v;\n        this.context = (w || {\n        });\n        this.mediaType = x;\n        this.setState(this.STATES.OFFLINE);\n        this.tooltip = (y || \"\");\n        n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n    };\n    i(s, {\n        tracksetableTypes: []\n    });\n    i(s.prototype, {\n        SHOW_LOADING_TIMEOUT: 500,\n        HIDE_LOADING_TIMEOUT: 4000,\n        RECENTLY_ONLINE_TIMEOUT: 6000,\n        STATES: {\n            PLAYING: \"music_playing\",\n            PAUSED: \"music_paused\",\n            LOADING: \"music_loading\",\n            DISABLED: \"music_disabled\",\n            OFFLINE: \"music_offline\"\n        },\n        setState: function(t) {\n            if ((t !== this.STATES.LOADING)) {\n                this.resetLoadingTimers();\n                this.previousState = (this.state || t);\n            }\n        ;\n            if ((t === this.STATES.PLAYING)) {\n                q.set(this.buttonElem, this.tooltip);\n            }\n             else q.set(this.buttonElem, \"\");\n        ;\n            var u = this.buttonElem.parentNode;\n            (this.state && j.removeClass(u, this.state));\n            this.state = t;\n            j.addClass(u, this.state);\n        },\n        isTracksetable: function(t) {\n            return (s.tracksetableTypes.indexOf(this.mediaType) !== -1);\n        },\n        handleIncomingEvent: function(t, u) {\n            clearTimeout(this._showLoadingTimer);\n            if (((u && u.provider) && (u.provider != this.provider))) {\n                return\n            };\n            switch (t) {\n              case m.DIAGNOSTIC_EVENT.ONLINE:\n            \n              case m.STATUS_CHANGE_EVENT.track:\n            \n              case m.STATUS_CHANGE_EVENT.playing:\n                var v = ((u && u.track) && u.track.uri), w = ((u && u.context) && u.context.uri);\n                if (((u && u.playing) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url))))) {\n                    this.setState(this.STATES.PLAYING);\n                }\n                 else if (((this.state === this.STATES.LOADING) && (((this.previousState === this.STATES.PAUSED) || (this.previousState === this.STATES.OFFLINE))))) {\n                    clearTimeout(this._attemptingPlayTimer);\n                    this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n                }\n                 else if (!this._attemptingPlayTimer) {\n                    this.setState(this.STATES.PAUSED);\n                }\n                \n            ;\n                break;\n              case m.DIAGNOSTIC_EVENT.OFFLINE:\n                this.setState(this.STATES.OFFLINE);\n                break;\n              case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n                this.setState(this.STATES.OFFLINE);\n                break;\n            };\n        },\n        processClick: function(t, u) {\n            if ((u != this.buttonElem)) {\n                if ((this.state === this.STATES.LOADING)) {\n                    (this.previousState && this.setState(this.previousState));\n                };\n                return;\n            }\n        ;\n            var v = new p(\"music_play_button_click\", null, {\n                addBrowserFields: true,\n                addGeoFields: true,\n                addUser: true\n            });\n            v.addNormal(\"uses_bridge\", \"1\");\n            v.addNormal(\"state\", this.state);\n            v.addNormal(\"provider\", this.provider);\n            v.addNormal(\"class\", \"MusicButton\");\n            v.addDenorm(\"url\", this.url);\n            v.flush();\n            if ((this.state != this.STATES.PLAYING)) {\n                g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n                g.bumpEntityKey(\"music_play_button\", (\"music_play_button_click.\" + this.provider));\n                var w = o.byClass(this.buttonElem, \"_4--s\");\n                if (w) {\n                    j.addClass(w, \"_4--t\");\n                    j.removeClass.curry(w, \"_4--t\").defer(3000);\n                }\n            ;\n            }\n        ;\n            var x = (this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\")), y = [];\n            if (x) {\n                var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n                for (var ca = 0; (ca < ba.length); ca++) {\n                    var da = l.getButton([ba[ca].id,]);\n                    if (((da && (da.provider == aa)) && da.isTracksetable())) {\n                        y.push(da.url);\n                    };\n                };\n            }\n        ;\n            if (!a.Music) {\n                this.showLoading(true);\n            };\n            h.loadModules([\"Music\",], function(ea) {\n                var fa = (((x && (y.length > 1))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context));\n                this.showLoading(!fa);\n            }.bind(this));\n        },\n        showLoading: function(t) {\n            this.resetLoadingTimers();\n            this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n            this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n        },\n        resetLoadingTimers: function() {\n            clearTimeout(this._hideLoadingTimer);\n            clearTimeout(this._showLoadingTimer);\n            clearTimeout(this._attemptingPlayTimer);\n            this._attemptingPlayTimer = null;\n        },\n        destroy: function() {\n            this.resetLoadingTimers();\n            this.buttonElem = null;\n        },\n        _timeout: function(t) {\n            (a.Music && a.Music.reInform([this.provider,]));\n            if ((!t && (this.state === this.STATES.LOADING))) {\n                this.setState(this.STATES.PAUSED);\n            };\n        }\n    });\n    e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n    }, v = 0;\n    function w(da) {\n        var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n        fa = (fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea))));\n        if (!fa) {\n            return\n        };\n        return y(fa, da);\n    };\n    function x(da) {\n        var ea = (o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\"));\n        if (ea) {\n            var fa = h.scry(ea, \".music_button\");\n            if (fa.length) {\n                return fa[0]\n            };\n        }\n    ;\n        return null;\n    };\n    function y(da, event) {\n        (event && event.stop());\n        n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n        return false;\n    };\n    function z(da) {\n        (a.Music && a.Music.reInform(da));\n    };\n    function aa(da, ea) {\n        var fa = l.getButtons();\n        for (var ga in fa) {\n            if ((fa[ga].noGC || r(ga))) {\n                fa[ga].handleIncomingEvent(da, ea);\n            }\n             else l.removeButton(ga);\n        ;\n        };\n    };\n    var ba = {\n        init: function(da) {\n            if (t) {\n                return\n            };\n            t = true;\n            k.tracksetableTypes = (da || []);\n            g.listen(document.body, \"click\", w);\n            n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n        },\n        add: function(da, ea, fa, ga, ha, ia) {\n            (t || ba.init());\n            var ja = ea.id, ka = l.getButton(ja);\n            if (ka) {\n                return ka\n            };\n            ka = l.addButton(ja, new k(da, ea, fa, q({\n                button_id: ja\n            }, ga), ha, ia));\n            var la = o.byClass(ea, \"uiOverlay\");\n            if (la) {\n                ka.noGC = true;\n                var ma = j.subscribe(\"destroy\", function(na, oa) {\n                    if (h.contains(oa.getRoot(), ea)) {\n                        l.removeButton(ja);\n                        j.unsubscribe(ma);\n                    }\n                ;\n                });\n            }\n        ;\n            if ((da && !u[da])) {\n                u[da] = function() {\n                    var na = Object.keys(u);\n                    (na.length && z(na));\n                    u = {\n                    };\n                }.defer();\n            };\n            return ka;\n        },\n        addButton: function(da, ea, fa, ga, ha, ia) {\n            if (!r(ea)) {\n                return\n            };\n            var ja = p(ea);\n            return ba.add(da, ja, fa, ga, ha, ia);\n        },\n        asyncAddMusicButton: function(da, ea) {\n            da.setAttribute(\"id\", (\"music_button_\" + v++));\n            ca(da, ea);\n        },\n        tryAddButtonInDOM: function(da, ea) {\n            var fa = r(da);\n            (fa && ca(fa, ea));\n        },\n        addMusicData: function(da, ea, fa, ga, ha, ia) {\n            s.setResource(da, {\n                provider: ea,\n                uri: fa,\n                context: ga,\n                media_type: ha,\n                tooltip: ia\n            });\n        }\n    };\n    function ca(da, ea) {\n        var fa = h.find(da, \"a.button_anchor\").getAttribute(\"href\");\n        s.executeOrEnqueue(fa, function(ga) {\n            return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, (ea ? ga.tooltip : \"\"));\n        });\n    };\n    e.exports = (a.MusicButtonManager || ba);\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"queryThenMutateDOM\"), l = document.documentElement, m, n, o = k.bind(null, function() {\n        n = (n || i.getDocumentScrollElement());\n        m = ((l.clientHeight < 400) || (l.clientWidth < n.scrollWidth));\n    }, function() {\n        h.conditionClass(l, \"tinyViewport\", m);\n        h.conditionClass(l, \"canHaveFixedElements\", !m);\n    }, \"TinyViewport\");\n    o();\n    g.subscribe(\"quickling/response\", o);\n    j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = (i * 32), k = 1500, l, m, n, o, p, q, r, s, t;\n    function u() {\n        if (l) {\n            var ca = Date.now();\n            if ((ca > p)) {\n                r = Math.min(j, Math.ceil((((ca / 1000)) - o)));\n            };\n            var da = z();\n            if (da) {\n                l(da);\n            };\n        }\n    ;\n        y();\n    };\n    function v() {\n        w();\n        m = setTimeout(u, ((n * 1000) + k), false);\n    };\n    function w() {\n        if (m) {\n            clearTimeout(m);\n            m = null;\n        }\n    ;\n    };\n    function x(ca) {\n        o = ca;\n        p = (o * 1000);\n        q = [1,];\n        for (var da = 1; (da < i); da++) {\n            q.push(0);;\n        };\n        r = 1;\n        s += 1;\n        t += 1;\n        v();\n    };\n    function y() {\n        w();\n        q = null;\n        n = j;\n    };\n    function z() {\n        if (!q) {\n            return null\n        };\n        return {\n            tos_id: h,\n            start_time: o,\n            tos_array: q.slice(0),\n            tos_len: r,\n            tos_seq: t,\n            tos_cum: s\n        };\n    };\n    function aa(ca) {\n        if (((ca >= p) && (((ca - p)) < 1000))) {\n            return\n        };\n        ba(Math.floor((ca / 1000)));\n    };\n    function ba(ca) {\n        var da = (ca - o);\n        if (((da < 0) || (da >= j))) {\n            u();\n        };\n        if (!q) {\n            x(ca);\n        }\n         else {\n            q[(da >> 5)] |= ((1 << ((da & 31))));\n            r = (da + 1);\n            s += 1;\n            p = (ca * 1000);\n        }\n    ;\n    };\n    e.exports = {\n        init: function(ca, da) {\n            s = 0;\n            t = -1;\n            l = ca;\n            n = (da || j);\n            x(Math.floor((Date.now() / 1000)));\n            g.subscribe(g.SHUTDOWN, u);\n        },\n        update: function(ca) {\n            aa(ca);\n        },\n        get: function() {\n            return z();\n        },\n        ship: function() {\n            u();\n        },\n        reset: function() {\n            y();\n        }\n    };\n});\n__d(\"WebStorageMonster\", [\"Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n    function o(t) {\n        var u = {\n        };\n        for (var v in t) {\n            var w = t.getItem(v), x = j.unicodeEscape(v);\n            if ((typeof w === \"string\")) {\n                u[x] = w.length;\n            };\n        };\n        return u;\n    };\n    function p(t) {\n        if ((a.localStorage && t.keys)) {\n            s._getLocalStorageKeys().forEach(function(u) {\n                if (k(t.keys, u)) {\n                    a.localStorage.removeItem(u);\n                };\n            });\n        };\n    };\n    function q(t) {\n        if (a.localStorage) {\n            s._getLocalStorageKeys().forEach(function(u) {\n                if (!t.some(function(v) {\n                    return new RegExp(v).test(u);\n                })) {\n                    a.localStorage.removeItem(u);\n                };\n            });\n        };\n        if (a.sessionStorage) {\n            a.sessionStorage.clear();\n        };\n    };\n    function r(t) {\n        if (i.isActive(m)) {\n            l(r.curry(t), m);\n        }\n         else s.cleanNow(t);\n    ;\n    };\n    var s = {\n        registerLogoutForm: function(t, u) {\n            g.listen(t, \"submit\", function(v) {\n                s.cleanOnLogout(u);\n            });\n        },\n        schedule: function(t) {\n            if (n) {\n                return\n            };\n            n = true;\n            r(t);\n        },\n        cleanNow: function(t) {\n            var u = Date.now(), v = {\n            }, w = false;\n            [\"localStorage\",\"sessionStorage\",].forEach(function(y) {\n                if (a[y]) {\n                    v[y] = o(a[y]);\n                    w = true;\n                }\n            ;\n            });\n            var x = Date.now();\n            v.logtime = (x - u);\n            if (w) {\n                new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n                    if (!t) {\n                        var z = y.getPayload();\n                        if (z.keys) {\n                            z.keys = z.keys.map(j.unicodeUnescape);\n                        };\n                        p(z);\n                    }\n                ;\n                }.bind(this)).send();\n            };\n        },\n        cleanOnLogout: function(t) {\n            if (t) {\n                q(t);\n            };\n            if (a.sessionStorage) {\n                a.sessionStorage.clear();\n            };\n        },\n        _getLocalStorageKeys: Object.keys.curry(a.localStorage)\n    };\n    e.exports = s;\n});");
36461 // 10320
36462 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s6de57b149b09c494ec606f82771caf93a5a215db");
36463 // 10321
36464 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        localize: function(i) {\n            i = g(i);\n            if (!i.isFacebookURI()) {\n                return i.toString();\n            }\n        ;\n        ;\n            var j = i.getSubdomain();\n            return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n        },\n        snowliftable: function(i) {\n            if (!i) {\n                return false;\n            }\n        ;\n        ;\n            i = g(i);\n            return ((i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\")));\n        },\n        isVaultSetURI: function(i) {\n            if (!i) {\n                return false;\n            }\n        ;\n        ;\n            i = g(i);\n            return ((i.isFacebookURI() && ((i.getPath() == \"/ajax/vault/sharer_preview.php\"))));\n        }\n    };\n    e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n    a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n        setXmode: function(k) {\n            (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n                xmode: k\n            }).setHandler(function() {\n                JSBNG__document.JSBNG__location.reload();\n            }).send();\n        },\n        setAmode: function(k) {\n            new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n                amode: k,\n                app: false\n            }).setHandler(function() {\n                JSBNG__document.JSBNG__location.reload();\n            }).send();\n        },\n        setLocale: function(k, l, m, n) {\n            if (!m) {\n                m = k.options[k.selectedIndex].value;\n            }\n        ;\n        ;\n            j.saveLocale(m, true, null, l, n);\n        },\n        saveLocale: function(k, l, m, n, o) {\n            new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n                aloc: k,\n                source: n,\n                app_only: o\n            }).setHandler(function(p) {\n                if (l) {\n                    JSBNG__document.JSBNG__location.reload();\n                }\n                 else i(m);\n            ;\n            ;\n            }).send();\n        },\n        setLocaleCookie: function(k, l) {\n            h.set(\"locale\", k, ((((7 * 24)) * 3600000)));\n            i(l);\n        }\n    };\n    e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n    var e = b(\"IntlUtils\");\n    a.intl_set_xmode = e.setXmode;\n    a.intl_set_amode = e.setAmode;\n    a.intl_set_locale = e.setLocale;\n    a.intl_save_locale = e.saveLocale;\n    a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n    var e = b(\"OnloadHooks\");\n    a._onloadHook = e._onloadHook;\n    a._onafterloadHook = e._onafterloadHook;\n    a.runHook = e.runHook;\n    a.runHooks = e.runHooks;\n    a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"JSBNG__Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ge\"), i = b(\"Button\");\n    f.init = function(j, k) {\n        g.listen(j, \"submit\", function() {\n            i.setEnabled(k, false);\n            i.setEnabled.curry(k, true).defer(15000);\n        });\n        var l = h(\"lgnjs\");\n        if (l) {\n            l.value = parseInt(((JSBNG__Date.now() / 1000)), 10);\n        }\n    ;\n    ;\n    };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n    var g = {\n        get_intern_ref: function(h) {\n            if (!!h) {\n                var i = {\n                    profile_minifeed: 1,\n                    gb_content_and_toolbar: 1,\n                    gb_muffin_area: 1,\n                    ego: 1,\n                    bookmarks_menu: 1,\n                    jewelBoxNotif: 1,\n                    jewelNotif: 1,\n                    BeeperBox: 1,\n                    navSearch: 1\n                };\n                for (var j = h; ((j && ((j != JSBNG__document.body)))); j = j.parentNode) {\n                    if (((!j.id || ((typeof j.id !== \"string\"))))) {\n                        continue;\n                    }\n                ;\n                ;\n                    if (((j.id.substr(0, 8) == \"pagelet_\"))) {\n                        return j.id.substr(8);\n                    }\n                ;\n                ;\n                    if (((j.id.substr(0, 8) == \"box_app_\"))) {\n                        return j.id;\n                    }\n                ;\n                ;\n                    if (i[j.id]) {\n                        return j.id;\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            return \"-\";\n        },\n        get_href: function(h) {\n            var i = ((((((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\"))))) || h.action)) || h.href)) || h.JSBNG__name));\n            return ((((typeof i === \"string\")) ? i : null));\n        },\n        should_report: function(h, i) {\n            if (((i == \"FORCE\"))) {\n                return true;\n            }\n        ;\n        ;\n            if (((i == \"INDIRECT\"))) {\n                return false;\n            }\n        ;\n        ;\n            return ((h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\")))))));\n        }\n    };\n    e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\");\n    function h(i) {\n        if (!g.no_cookies) {\n            JSBNG__document.cookie = ((((((\"act=\" + encodeURIComponent(i))) + \"; path=/; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n        }\n    ;\n    ;\n    };\n;\n    e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n    function o(q) {\n        if (!l(\"JSBNG__content\")) {\n            return [0,0,0,0,];\n        }\n    ;\n    ;\n        var r = n(\"JSBNG__content\"), s = ((a.Vector2 ? a.Vector2.getEventPosition(q) : {\n            x: 0,\n            y: 0\n        }));\n        return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n    };\n;\n    function p(q, r, JSBNG__event, s) {\n        var t = (((!a.ArbiterMonitor) ? \"r\" : \"a\")), u = [0,0,0,0,], v, w, x;\n        if (!!JSBNG__event) {\n            v = JSBNG__event.type;\n            if (((((v == \"click\")) && l(\"JSBNG__content\")))) {\n                u = o(JSBNG__event);\n            }\n        ;\n        ;\n            var y = 0;\n            ((JSBNG__event.ctrlKey && (y += 1)));\n            ((JSBNG__event.shiftKey && (y += 2)));\n            ((JSBNG__event.altKey && (y += 4)));\n            ((JSBNG__event.metaKey && (y += 8)));\n            if (y) {\n                v += y;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        if (!!r) {\n            w = i.get_href(r);\n        }\n    ;\n    ;\n        var z = [];\n        if (a.ArbiterMonitor) {\n            x = a.ArbiterMonitor.getInternRef(r);\n            z = a.ArbiterMonitor.getActFields();\n        }\n    ;\n    ;\n        var aa = j(((!!JSBNG__event ? ((JSBNG__event.target || JSBNG__event.srcElement)) : r)), [\"ft\",\"gt\",]);\n        k(aa.ft, ((s.ft || {\n        })));\n        k(aa.gt, ((s.gt || {\n        })));\n        if (((typeof (aa.ft.ei) === \"string\"))) {\n            delete aa.ft.ei;\n        }\n    ;\n    ;\n        var ba = [q._ue_ts,q._ue_count,((w || \"-\")),q._context,((v || \"-\")),((x || i.get_intern_ref(r))),t,((a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((((JSBNG__location.pathname + JSBNG__location.search)) + JSBNG__location.hash)))),aa,].concat(u).concat(z);\n        return ba;\n    };\n;\n    g.subscribe(\"ClickRefAction/new\", function(q, r) {\n        if (i.should_report(r.node, r.mode)) {\n            var s = p(r.cfa, r.node, r.JSBNG__event, r.extra_data);\n            m(r.cfa.ue);\n            h.log(\"act\", s);\n            if (window.chromePerfExtension) {\n                window.JSBNG__postMessage({\n                    clickRef: JSON.stringify(s)\n                }, window.JSBNG__location.origin);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = [], i = {\n        addHandler: function(j) {\n            h.push(j);\n        },\n        augmentURI: function(j) {\n            var k = [], l = g(j);\n            h.forEach(function(m) {\n                var n = m(l);\n                if (!n) {\n                    return l;\n                }\n            ;\n            ;\n                k.push(m);\n                l = l.addQueryData(n);\n            });\n            h = k;\n            return l;\n        }\n    };\n    e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n        isActive: function() {\n            return true;\n        },\n        isPageActive: function(la) {\n            if (((la == \"#\"))) {\n                return false;\n            }\n        ;\n        ;\n            la = new s(la);\n            if (((la.getDomain() && ((la.getDomain() != s().getDomain()))))) {\n                return false;\n            }\n        ;\n        ;\n            if (((la.getPath() == \"/l.php\"))) {\n                var ma = la.getQueryData().u;\n                if (ma) {\n                    ma = s(unescape(ma)).getDomain();\n                    if (((ma && ((ma != s().getDomain()))))) {\n                        return false;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var na = la.getPath(), oa = la.getQueryData();\n            if (!w(oa)) {\n                na += ((\"?\" + s.implodeQuery(oa)));\n            }\n        ;\n        ;\n            return !aa.test(na);\n        },\n        getLoadCount: function() {\n            return ba;\n        }\n    };\n    function fa(la) {\n        la = ((la || \"Facebook\"));\n        k.set(la);\n        if (t.ie()) {\n            da = la;\n            if (!ca) {\n                ca = window.JSBNG__setInterval(function() {\n                    var ma = da, na = k.get();\n                    if (((ma != na))) {\n                        k.set(ma);\n                    }\n                ;\n                ;\n                }, 5000, false);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function ga(la) {\n        var ma = JSBNG__document.getElementsByTagName(\"link\");\n        for (var na = 0; ((na < ma.length)); ++na) {\n            if (((ma[na].rel != \"alternate\"))) {\n                continue;\n            }\n        ;\n        ;\n            l.remove(ma[na]);\n        };\n    ;\n        if (la.length) {\n            var oa = l.JSBNG__find(JSBNG__document, \"head\");\n            ((oa && l.appendContent(oa, n(la[0]))));\n        }\n    ;\n    ;\n    };\n;\n    function ha(la) {\n        var ma = {\n            version: y\n        };\n        this.parent.construct(this, la, {\n            quickling: ma\n        });\n    };\n;\n    i.extend(ha, g);\n    u(ha.prototype, {\n        _preBootloadFirstResponse: function(la) {\n            return true;\n        },\n        _fireDomContentCallback: function() {\n            ((this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\")));\n            p.transitionComplete();\n            ((this._onPageDisplayed && this._onPageDisplayed(this.pipe)));\n            this.parent._fireDomContentCallback();\n        },\n        _fireOnloadCallback: function() {\n            if (this._request.cavalry) {\n                this._request.cavalry.setTimeStamp(\"t_hooks\");\n                this._request.cavalry.setTimeStamp(\"t_layout\");\n                this._request.cavalry.setTimeStamp(\"t_onload\");\n            }\n        ;\n        ;\n            this.parent._fireOnloadCallback();\n        },\n        isPageActive: function(la) {\n            return ea.isPageActive(la);\n        },\n        _versionCheck: function(la) {\n            if (((la.version == y))) {\n                return true;\n            }\n        ;\n        ;\n            var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n            v(window.JSBNG__location, s(la.uri).removeQueryData(ma), true);\n            return false;\n        },\n        _processFirstResponse: function(la) {\n            var ma = la.getPayload();\n            fa(ma.title);\n            ga(((ma.syndication || [])));\n            window.JSBNG__scrollTo(0, 0);\n            j.go(JSBNG__document.body, ((ma.body_class || \"\")), p.getMostRecentURI(), la.getRequest().getURI());\n            h.inform(\"quickling/response\");\n        },\n        getSanitizedParameters: function() {\n            return [\"quickling\",];\n        }\n    });\n    function ia() {\n        ba++;\n        return ((ba >= z));\n    };\n;\n    function ja(la) {\n        g.setCurrentRequest(null);\n        if (ia()) {\n            return false;\n        }\n    ;\n    ;\n        la = q.augmentURI(la);\n        if (!ea.isPageActive(la)) {\n            return false;\n        }\n    ;\n    ;\n        window.ExitTime = JSBNG__Date.now();\n        r.__removeHook(\"onafterloadhooks\");\n        r.__removeHook(\"onloadhooks\");\n        o.runHooks(\"onleavehooks\");\n        h.inform(\"onload/exit\", true);\n        new ha(la).setCanvasId(\"JSBNG__content\").send();\n        return true;\n    };\n;\n    function ka(la) {\n        var ma = window[la];\n        function na(oa, pa, qa) {\n            if (((typeof oa !== \"function\"))) {\n                oa = eval.bind(null, oa);\n            }\n        ;\n        ;\n            var ra = ma(m.guard(oa), pa);\n            if (((pa > 0))) {\n                if (((qa !== false))) {\n                    r.onLeave(function() {\n                        JSBNG__clearInterval(ra);\n                    });\n                }\n            ;\n            }\n        ;\n        ;\n            return ra;\n        };\n    ;\n        window[la] = na;\n    };\n;\n    r.onAfterLoad(function la() {\n        ka(\"JSBNG__setInterval\");\n        ka(\"JSBNG__setTimeout\");\n        p.registerHandler(ja, 1);\n    });\n    e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n    function j(m, n, o) {\n        this.fields = {\n        };\n        this.flush = function() {\n            if (!m) {\n                return;\n            }\n        ;\n        ;\n            var p = {\n            };\n            i(p, this.fields);\n            p._ds = m;\n            if (n) {\n                p._lid = n;\n            }\n        ;\n        ;\n            p._options = o;\n            h.post(g, p);\n            this.flush = function() {\n            \n            };\n            this.flushed = true;\n        };\n        this.lid = n;\n        return this;\n    };\n;\n    function k(m, n, o) {\n        if (!this.fields[m]) {\n            this.fields[m] = {\n            };\n        }\n    ;\n    ;\n        this.fields[m][n] = o;\n        return this;\n    };\n;\n    function l(m) {\n        return function(n, o) {\n            if (this.flushed) {\n                return this;\n            }\n        ;\n        ;\n            return k.call(this, m, n, o);\n        };\n    };\n;\n    i(j.prototype, {\n        addNormal: l(\"normal\"),\n        addInteger: l(\"int\"),\n        addDenorm: l(\"denorm\")\n    });\n    e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n    function k(o) {\n        var p = [];\n        for (var q = 0; ((q < o.length)); q++) {\n            p.push(new RegExp(o[q], \"i\"));\n        ;\n        };\n    ;\n        return p;\n    };\n;\n    function l(o, p) {\n        for (var q = 0; ((q < p.length)); q++) {\n            if (p[q].src) {\n                o.push(p[q].src);\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function m(o, p) {\n        for (var q = 0; ((q < p.length)); q++) {\n            if (p[q].test(o)) {\n                return true;\n            }\n        ;\n        ;\n        };\n    ;\n        return false;\n    };\n;\n    function n(o, p) {\n        var q = g.JSBNG__stop(), r = {\n            addGeoFields: 1,\n            addBrowserFields: 1,\n            addUser: 1\n        }, s = {\n        };\n        l(q, JSBNG__document.getElementsByTagName(\"script\"));\n        l(q, JSBNG__document.getElementsByTagName(\"div\"));\n        for (var t = 0; ((t < q.length)); t++) {\n            var u = q[t].replace(/\\?.*/, \"\"), v;\n            if (s[u]) {\n                continue;\n            }\n        ;\n        ;\n            s[u] = 1;\n            if (!j.isValidURI(u)) {\n                v = true;\n            }\n             else if (m(u, p)) {\n                v = false;\n            }\n             else if (m(new j(u).getDomain(), o)) {\n                v = false;\n            }\n             else v = true;\n            \n            \n        ;\n        ;\n            if (v) {\n                new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    e.exports = {\n        runScan: function(o, p) {\n            i(function() {\n                n(k(o), k(p));\n            }, 5000);\n        }\n    };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        unicodeEscape: function(g) {\n            return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n                var i = h.charCodeAt().toString(16);\n                return ((\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4)));\n            });\n        },\n        unicodeUnescape: function(g) {\n            return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n                return String.fromCharCode(parseInt(h.slice(2), 16));\n            });\n        }\n    };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n        tos_seq: 0,\n        tos_cumulative: 0,\n        transport_cause: null,\n        buenopath: null,\n        page_token: null,\n        elements: 0,\n        uact_tos: null,\n        client_time: null\n    }, s = 100, t = 100, u = ((10 * 1000)), v = ((3 * 1000)), w = 1, x = 2, y = 4, z = 8, aa = {\n    };\n    m.subscribe(function(ia, ja) {\n        var ka = ((p.length - 1));\n        q = ja.last_inform;\n        if (((ja.idleness < v))) {\n            p[ka] += ja.idleness;\n            r.tos_cumulative += ja.idleness;\n        }\n         else {\n            if (((ka > s))) {\n                fa(\"array_limit_reached\");\n            }\n        ;\n        ;\n            p.push(ja.idleness, 0);\n        }\n    ;\n    ;\n    });\n    function ba(ia) {\n        var ja = 0;\n        if (JSBNG__document.getElementById(\"boulder_fixed_header\")) {\n            ja = ((ja | w));\n        }\n    ;\n    ;\n        if (i.hasClass(JSBNG__document.body, \"timelineLayout\")) {\n            ja = ((ja | y));\n            var ka = JSBNG__document.getElementById(\"pagelet_main_column_personal\");\n            if (((ka && ((ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))))) {\n                ja = ((ja | x));\n            }\n        ;\n        ;\n            if (i.hasClass(JSBNG__document.body, \"pagesTimelineLayout\")) {\n                ja = ((ja | z));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return ja;\n    };\n;\n    function ca(ia) {\n        var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n        r.uact_tos = p;\n        if (ka) {\n            r.buenopath = ka.substring(0, t);\n        }\n         else r.buenopath = \"\";\n    ;\n    ;\n        if (la) {\n            r.page_token = la;\n        }\n         else r.page_token = \"\";\n    ;\n    ;\n        r.elements = ja;\n        r.transport_cause = ia;\n        r.client_time = JSBNG__Date.now();\n    };\n;\n    function da() {\n        r.tos_seq += 1;\n        p = [q,0,];\n    };\n;\n    var ea = {\n        store: true,\n        delay: 3000,\n        retry: true\n    };\n    function fa(ia) {\n        ca(ia);\n        if (h.isEnabled(\"time_spent\")) {\n            g.inform(\"timespent/tosdataposted\", o({\n            }, r));\n            h.post(\"time_spent\", o({\n            }, r), ea);\n        }\n    ;\n    ;\n        da();\n    };\n;\n    function ga() {\n        fa(\"heartbeat\");\n    };\n;\n    function ha() {\n        fa(\"before_unload\");\n    };\n;\n    if (((window.JSBNG__top == window.JSBNG__self))) {\n        k.add(window, \"beforeunload\", ha);\n        JSBNG__setInterval(function() {\n            if (((((((JSBNG__Date.now() - m.getLastInformTime())) > ((u - 100)))) && ((((p.length > 2)) || ((p[((p.length - 1))] > 0))))))) {\n                ga();\n            }\n        ;\n        ;\n        }, u);\n    }\n;\n;\n    g.subscribe(\"UserAction/new\", function(ia, ja) {\n        if (j.should_report(ja.node, ja.mode)) {\n            var ka = n(ja.node, [\"gt\",]), la = {\n                iref: j.get_intern_ref(ja.node),\n                gt_ref: ka.ref,\n                nav_section: ka.nav_section\n            };\n            ca(\"useraction\");\n            o(la, r);\n            ja.ua.add_data(la);\n            g.inform(\"timespent/tosdataposted\", o({\n            }, r));\n            da();\n        }\n    ;\n    ;\n    });\n    e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n        click: 1,\n        submit: 1\n    }, l = false, m = {\n        log: [],\n        len: 0\n    }, n = j.acrossTransitions(function() {\n        try {\n            l._ua_log = JSON.stringify(m);\n        } catch (q) {\n            l = false;\n        };\n    ;\n    }, 1000);\n    function o() {\n        try {\n            if (a.JSBNG__sessionStorage) {\n                l = a.JSBNG__sessionStorage;\n                ((l._ua_log && (m = JSON.parse(l._ua_log))));\n            }\n        ;\n        ;\n        } catch (q) {\n            l = false;\n        };\n    ;\n        m.log[((m.len % 10))] = {\n            ts: JSBNG__Date.now(),\n            path: \"-\",\n            index: m.len,\n            type: \"init\",\n            iref: \"-\"\n        };\n        m.len++;\n        g.subscribe(\"UserAction/new\", function(r, s) {\n            var t = s.ua, u = s.node, JSBNG__event = s.JSBNG__event;\n            if (((!JSBNG__event || !((JSBNG__event.type in k))))) {\n                return;\n            }\n        ;\n        ;\n            var v = {\n                path: i.getScriptPath(),\n                type: JSBNG__event.type,\n                ts: t._ue_ts,\n                iref: ((h.get_intern_ref(u) || \"-\")),\n                index: m.len\n            };\n            m.log[((m.len++ % 10))] = v;\n            ((l && n()));\n        });\n    };\n;\n    function p() {\n        return m.log.sort(function(q, r) {\n            return ((((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index))));\n        });\n    };\n;\n    o();\n    e.exports = {\n        getHistory: p\n    };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j) {\n        return Math.min(Math.max(h, i), j);\n    };\n;\n    e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        addButton: function(i, j) {\n            g[i] = j;\n            return j;\n        },\n        getButton: function(i) {\n            return g[i];\n        },\n        getButtons: function() {\n            return g;\n        },\n        removeButton: function(i) {\n            ((g[i] && g[i].resetLoadingTimers()));\n            delete g[i];\n        }\n    };\n    e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        DEBUG: false,\n        LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n        enableDebug: function() {\n            this.DEBUG = true;\n        },\n        sameURLs: function(i, j) {\n            var k = /\\/$/;\n            if (((i && j))) {\n                i = g(i);\n                j = g(j);\n                return ((((i.getDomain() == j.getDomain())) && ((i.getPath() == j.getPath()))));\n            }\n        ;\n        ;\n            return false;\n        },\n        greaterOrEqualToMinimumVersion: function(i, j) {\n            var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n            if (((l.length !== m.length))) {\n                return false;\n            }\n        ;\n        ;\n            for (var n = 0; ((n < m.length)); n++) {\n                if (((+l[n] < +m[n]))) {\n                    return false;\n                }\n                 else if (((+l[n] > +m[n]))) {\n                    return true;\n                }\n                \n            ;\n            ;\n            };\n        ;\n            return true;\n        },\n        sanitizeForProviders: function(i) {\n            var j = {\n            };\n            {\n                var fin115keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin115i = (0);\n                var k;\n                for (; (fin115i < fin115keys.length); (fin115i++)) {\n                    ((k) = (fin115keys[fin115i]));\n                    {\n                        if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n                            j[k] = i[k];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return j;\n        },\n        OP: {\n            RESUME: \"RESUME\",\n            PAUSE: \"PAUSE\",\n            PLAY: \"PLAY\",\n            VERSION: \"VERSION\"\n        },\n        STATUS_CHANGE_OP: {\n            STATUS: \"STATUS\",\n            LOGIN: \"LOGIN\",\n            REINFORM: \"REINFORM\"\n        },\n        STATUS_CHANGE_EVENT: {\n            playing: \"PLAY_STATE_CHANGED\",\n            track: \"TRACK_CHANGED\"\n        },\n        DIAGNOSTIC_EVENT: {\n            ALL_PAUSED: \"ALL_PAUSED\",\n            ALL_OFFLINE: \"ALL_OFFLINE\",\n            OFFLINE: \"OFFLINE\",\n            ONLINE: \"ONLINE\",\n            SEARCHING: \"SEARCHING\",\n            HIT: \"HIT\",\n            MISS: \"MISS\",\n            RESIGN: \"RESIGN\",\n            IFRAME_POLLING: \"IFRAME_POLLING\",\n            RELAUNCH: \"RELAUNCH\",\n            STATE_CHANGE: \"STATE_CHANGE\",\n            WRONG_VERSION: \"WRONG_VERSION\",\n            SERVICE_ERROR: \"SERVICE_ERROR\",\n            INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n            LOG_SEND_OP: \"LOG_SEND_OP\",\n            REQUEUE_OP: \"REQUEUE_OP\"\n        },\n        ALLOWED_STATUS_PARAMS: {\n            playing: \"playing\",\n            track: \"track\",\n            context: \"context\",\n            client_version: \"client_version\",\n            start_time: \"start_time\",\n            expires_in: \"expires_in\",\n            open_graph_state: \"open_graph_state\"\n        },\n        ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n            uri: true,\n            song: true,\n            radio_station: true,\n            album: true,\n            playlist: true,\n            musician: true,\n            song_list: true,\n            offset: true,\n            title: true,\n            request_id: true,\n            listen_with_friends: true,\n            needs_tos: true\n        },\n        LIVE_LISTEN_OP: {\n            NOW_LEADING: \"NOW_LEADING\",\n            NOW_LISTENING: \"NOW_LISTENING\",\n            END_SESSION: \"END_SESSION\",\n            SONG_PLAYING: \"SONG_PLAYING\",\n            LISTENER_UPDATE: \"LISTENER_UPDATE\",\n            QUEUE_SESSION: \"QUEUE_SESSION\",\n            PLAY_ERROR: \"PLAY_ERROR\",\n            SESSION_UPDATED: \"SESSION_UPDATED\",\n            QUEUING_SESSION: \"QUEUING_SESSION\"\n        },\n        MUSIC_BUTTON: {\n            ACTIVATE: \"ACTIVATE\"\n        },\n        ERROR: {\n            1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n            2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n            3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n            4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n            5: \"AUDIO_AD_PLAYING\",\n            99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n            101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n            102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n            103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n        }\n    };\n    e.exports = ((a.MusicConstants || h));\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\");\n    e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n        this.provider = t;\n        this.buttonElem = u;\n        this.url = v;\n        this.context = ((w || {\n        }));\n        this.mediaType = x;\n        this.setState(this.STATES.OFFLINE);\n        this.tooltip = ((y || \"\"));\n        n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n    };\n    i(s, {\n        tracksetableTypes: []\n    });\n    i(s.prototype, {\n        SHOW_LOADING_TIMEOUT: 500,\n        HIDE_LOADING_TIMEOUT: 4000,\n        RECENTLY_ONLINE_TIMEOUT: 6000,\n        STATES: {\n            PLAYING: \"music_playing\",\n            PAUSED: \"music_paused\",\n            LOADING: \"music_loading\",\n            DISABLED: \"music_disabled\",\n            OFFLINE: \"music_offline\"\n        },\n        setState: function(t) {\n            if (((t !== this.STATES.LOADING))) {\n                this.resetLoadingTimers();\n                this.previousState = ((this.state || t));\n            }\n        ;\n        ;\n            if (((t === this.STATES.PLAYING))) {\n                q.set(this.buttonElem, this.tooltip);\n            }\n             else q.set(this.buttonElem, \"\");\n        ;\n        ;\n            var u = this.buttonElem.parentNode;\n            ((this.state && j.removeClass(u, this.state)));\n            this.state = t;\n            j.addClass(u, this.state);\n        },\n        isTracksetable: function(t) {\n            return ((s.tracksetableTypes.indexOf(this.mediaType) !== -1));\n        },\n        handleIncomingEvent: function(t, u) {\n            JSBNG__clearTimeout(this._showLoadingTimer);\n            if (((((u && u.provider)) && ((u.provider != this.provider))))) {\n                return;\n            }\n        ;\n        ;\n            switch (t) {\n              case m.DIAGNOSTIC_EVENT.ONLINE:\n            \n              case m.STATUS_CHANGE_EVENT.track:\n            \n              case m.STATUS_CHANGE_EVENT.playing:\n                var v = ((((u && u.track)) && u.track.uri)), w = ((((u && u.context)) && u.context.uri));\n                if (((((u && u.playing)) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url)))))) {\n                    this.setState(this.STATES.PLAYING);\n                }\n                 else if (((((this.state === this.STATES.LOADING)) && ((((this.previousState === this.STATES.PAUSED)) || ((this.previousState === this.STATES.OFFLINE))))))) {\n                    JSBNG__clearTimeout(this._attemptingPlayTimer);\n                    this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n                }\n                 else if (!this._attemptingPlayTimer) {\n                    this.setState(this.STATES.PAUSED);\n                }\n                \n                \n            ;\n            ;\n                break;\n              case m.DIAGNOSTIC_EVENT.OFFLINE:\n                this.setState(this.STATES.OFFLINE);\n                break;\n              case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n                this.setState(this.STATES.OFFLINE);\n                break;\n            };\n        ;\n        },\n        processClick: function(t, u) {\n            if (((u != this.buttonElem))) {\n                if (((this.state === this.STATES.LOADING))) {\n                    ((this.previousState && this.setState(this.previousState)));\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            var v = new p(\"music_play_button_click\", null, {\n                addBrowserFields: true,\n                addGeoFields: true,\n                addUser: true\n            });\n            v.addNormal(\"uses_bridge\", \"1\");\n            v.addNormal(\"state\", this.state);\n            v.addNormal(\"provider\", this.provider);\n            v.addNormal(\"class\", \"MusicButton\");\n            v.addDenorm(\"url\", this.url);\n            v.flush();\n            if (((this.state != this.STATES.PLAYING))) {\n                g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n                g.bumpEntityKey(\"music_play_button\", ((\"music_play_button_click.\" + this.provider)));\n                var w = o.byClass(this.buttonElem, \"_4--s\");\n                if (w) {\n                    j.addClass(w, \"_4--t\");\n                    j.removeClass.curry(w, \"_4--t\").defer(3000);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var x = ((this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\"))), y = [];\n            if (x) {\n                var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n                for (var ca = 0; ((ca < ba.length)); ca++) {\n                    var da = l.getButton([ba[ca].id,]);\n                    if (((((da && ((da.provider == aa)))) && da.isTracksetable()))) {\n                        y.push(da.url);\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            if (!a.Music) {\n                this.showLoading(true);\n            }\n        ;\n        ;\n            h.loadModules([\"Music\",], function(ea) {\n                var fa = ((((x && ((y.length > 1)))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context)));\n                this.showLoading(!fa);\n            }.bind(this));\n        },\n        showLoading: function(t) {\n            this.resetLoadingTimers();\n            this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n            this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n        },\n        resetLoadingTimers: function() {\n            JSBNG__clearTimeout(this._hideLoadingTimer);\n            JSBNG__clearTimeout(this._showLoadingTimer);\n            JSBNG__clearTimeout(this._attemptingPlayTimer);\n            this._attemptingPlayTimer = null;\n        },\n        destroy: function() {\n            this.resetLoadingTimers();\n            this.buttonElem = null;\n        },\n        _timeout: function(t) {\n            ((a.Music && a.Music.reInform([this.provider,])));\n            if (((!t && ((this.state === this.STATES.LOADING))))) {\n                this.setState(this.STATES.PAUSED);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"JSBNG__Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n    }, v = 0;\n    function w(da) {\n        var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n        fa = ((fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea)))));\n        if (!fa) {\n            return;\n        }\n    ;\n    ;\n        return y(fa, da);\n    };\n;\n    function x(da) {\n        var ea = ((o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\")));\n        if (ea) {\n            var fa = h.scry(ea, \".music_button\");\n            if (fa.length) {\n                return fa[0];\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function y(da, JSBNG__event) {\n        ((JSBNG__event && JSBNG__event.JSBNG__stop()));\n        n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n        return false;\n    };\n;\n    function z(da) {\n        ((a.Music && a.Music.reInform(da)));\n    };\n;\n    function aa(da, ea) {\n        var fa = l.getButtons();\n        {\n            var fin116keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin116i = (0);\n            var ga;\n            for (; (fin116i < fin116keys.length); (fin116i++)) {\n                ((ga) = (fin116keys[fin116i]));\n                {\n                    if (((fa[ga].noGC || r(ga)))) {\n                        fa[ga].handleIncomingEvent(da, ea);\n                    }\n                     else l.removeButton(ga);\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    var ba = {\n        init: function(da) {\n            if (t) {\n                return;\n            }\n        ;\n        ;\n            t = true;\n            k.tracksetableTypes = ((da || []));\n            g.listen(JSBNG__document.body, \"click\", w);\n            n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n        },\n        add: function(da, ea, fa, ga, ha, ia) {\n            ((t || ba.init()));\n            var ja = ea.id, ka = l.getButton(ja);\n            if (ka) {\n                return ka;\n            }\n        ;\n        ;\n            ka = l.addButton(ja, new k(da, ea, fa, q({\n                button_id: ja\n            }, ga), ha, ia));\n            var la = o.byClass(ea, \"uiOverlay\");\n            if (la) {\n                ka.noGC = true;\n                var ma = j.subscribe(\"destroy\", function(na, oa) {\n                    if (h.contains(oa.getRoot(), ea)) {\n                        l.removeButton(ja);\n                        j.unsubscribe(ma);\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            if (((da && !u[da]))) {\n                u[da] = function() {\n                    var na = Object.keys(u);\n                    ((na.length && z(na)));\n                    u = {\n                    };\n                }.defer();\n            }\n        ;\n        ;\n            return ka;\n        },\n        addButton: function(da, ea, fa, ga, ha, ia) {\n            if (!r(ea)) {\n                return;\n            }\n        ;\n        ;\n            var ja = p(ea);\n            return ba.add(da, ja, fa, ga, ha, ia);\n        },\n        asyncAddMusicButton: function(da, ea) {\n            da.setAttribute(\"id\", ((\"music_button_\" + v++)));\n            ca(da, ea);\n        },\n        tryAddButtonInDOM: function(da, ea) {\n            var fa = r(da);\n            ((fa && ca(fa, ea)));\n        },\n        addMusicData: function(da, ea, fa, ga, ha, ia) {\n            s.setResource(da, {\n                provider: ea,\n                uri: fa,\n                context: ga,\n                media_type: ha,\n                tooltip: ia\n            });\n        }\n    };\n    function ca(da, ea) {\n        var fa = h.JSBNG__find(da, \"a.button_anchor\").getAttribute(\"href\");\n        s.executeOrEnqueue(fa, function(ga) {\n            return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, ((ea ? ga.tooltip : \"\")));\n        });\n    };\n;\n    e.exports = ((a.MusicButtonManager || ba));\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"queryThenMutateDOM\"), l = JSBNG__document.documentElement, m, n, o = k.bind(null, function() {\n        n = ((n || i.getDocumentScrollElement()));\n        m = ((((l.clientHeight < 400)) || ((l.clientWidth < n.scrollWidth))));\n    }, function() {\n        h.conditionClass(l, \"tinyViewport\", m);\n        h.conditionClass(l, \"canHaveFixedElements\", !m);\n    }, \"TinyViewport\");\n    o();\n    g.subscribe(\"quickling/response\", o);\n    j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n    var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = ((i * 32)), k = 1500, l, m, n, o, p, q, r, s, t;\n    {\n        function u() {\n            if (l) {\n                var ca = JSBNG__Date.now();\n                if (((ca > p))) {\n                    r = Math.min(j, Math.ceil(((((ca / 1000)) - o))));\n                }\n            ;\n            ;\n                var da = z();\n                if (da) {\n                    l(da);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            y();\n        };\n        ((window.top.JSBNG_Replay.s6de57b149b09c494ec606f82771caf93a5a215db_133.push)((u)));\n    };\n;\n    function v() {\n        w();\n        m = JSBNG__setTimeout(u, ((((n * 1000)) + k)), false);\n    };\n;\n    function w() {\n        if (m) {\n            JSBNG__clearTimeout(m);\n            m = null;\n        }\n    ;\n    ;\n    };\n;\n    function x(ca) {\n        o = ca;\n        p = ((o * 1000));\n        q = [1,];\n        for (var da = 1; ((da < i)); da++) {\n            q.push(0);\n        ;\n        };\n    ;\n        r = 1;\n        s += 1;\n        t += 1;\n        v();\n    };\n;\n    function y() {\n        w();\n        q = null;\n        n = j;\n    };\n;\n    function z() {\n        if (!q) {\n            return null;\n        }\n    ;\n    ;\n        return {\n            tos_id: h,\n            start_time: o,\n            tos_array: q.slice(0),\n            tos_len: r,\n            tos_seq: t,\n            tos_cum: s\n        };\n    };\n;\n    function aa(ca) {\n        if (((((ca >= p)) && ((((ca - p)) < 1000))))) {\n            return;\n        }\n    ;\n    ;\n        ba(Math.floor(((ca / 1000))));\n    };\n;\n    function ba(ca) {\n        var da = ((ca - o));\n        if (((((da < 0)) || ((da >= j))))) {\n            u();\n        }\n    ;\n    ;\n        if (!q) {\n            x(ca);\n        }\n         else {\n            q[((da >> 5))] |= ((1 << ((da & 31))));\n            r = ((da + 1));\n            s += 1;\n            p = ((ca * 1000));\n        }\n    ;\n    ;\n    };\n;\n    e.exports = {\n        init: function(ca, da) {\n            s = 0;\n            t = -1;\n            l = ca;\n            n = ((da || j));\n            x(Math.floor(((JSBNG__Date.now() / 1000))));\n            g.subscribe(g.SHUTDOWN, u);\n        },\n        update: function(ca) {\n            aa(ca);\n        },\n        get: function() {\n            return z();\n        },\n        ship: function() {\n            u();\n        },\n        reset: function() {\n            y();\n        }\n    };\n});\n__d(\"WebStorageMonster\", [\"JSBNG__Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n    function o(t) {\n        var u = {\n        };\n        {\n            var fin117keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin117i = (0);\n            var v;\n            for (; (fin117i < fin117keys.length); (fin117i++)) {\n                ((v) = (fin117keys[fin117i]));\n                {\n                    var w = t.getItem(v), x = j.unicodeEscape(v);\n                    if (((typeof w === \"string\"))) {\n                        u[x] = w.length;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        return u;\n    };\n;\n    function p(t) {\n        if (((a.JSBNG__localStorage && t.keys))) {\n            s._getLocalStorageKeys().forEach(function(u) {\n                if (k(t.keys, u)) {\n                    a.JSBNG__localStorage.removeItem(u);\n                }\n            ;\n            ;\n            });\n        }\n    ;\n    ;\n    };\n;\n    function q(t) {\n        if (a.JSBNG__localStorage) {\n            s._getLocalStorageKeys().forEach(function(u) {\n                if (!t.some(function(v) {\n                    return new RegExp(v).test(u);\n                })) {\n                    a.JSBNG__localStorage.removeItem(u);\n                }\n            ;\n            ;\n            });\n        }\n    ;\n    ;\n        if (a.JSBNG__sessionStorage) {\n            a.JSBNG__sessionStorage.clear();\n        }\n    ;\n    ;\n    };\n;\n    function r(t) {\n        if (i.isActive(m)) {\n            l(r.curry(t), m);\n        }\n         else s.cleanNow(t);\n    ;\n    ;\n    };\n;\n    var s = {\n        registerLogoutForm: function(t, u) {\n            g.listen(t, \"submit\", function(v) {\n                s.cleanOnLogout(u);\n            });\n        },\n        schedule: function(t) {\n            if (n) {\n                return;\n            }\n        ;\n        ;\n            n = true;\n            r(t);\n        },\n        cleanNow: function(t) {\n            var u = JSBNG__Date.now(), v = {\n            }, w = false;\n            [\"JSBNG__localStorage\",\"JSBNG__sessionStorage\",].forEach(function(y) {\n                if (a[y]) {\n                    v[y] = o(a[y]);\n                    w = true;\n                }\n            ;\n            ;\n            });\n            var x = JSBNG__Date.now();\n            v.logtime = ((x - u));\n            if (w) {\n                new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n                    if (!t) {\n                        var z = y.getPayload();\n                        if (z.keys) {\n                            z.keys = z.keys.map(j.unicodeUnescape);\n                        }\n                    ;\n                    ;\n                        p(z);\n                    }\n                ;\n                ;\n                }.bind(this)).send();\n            }\n        ;\n        ;\n        },\n        cleanOnLogout: function(t) {\n            if (t) {\n                q(t);\n            }\n        ;\n        ;\n            if (a.JSBNG__sessionStorage) {\n                a.JSBNG__sessionStorage.clear();\n            }\n        ;\n        ;\n        },\n        _getLocalStorageKeys: Object.keys.curry(a.JSBNG__localStorage)\n    };\n    e.exports = s;\n});");
36465 // 10426
36466 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o122,o136);
36467 // undefined
36468 o136 = null;
36469 // 10431
36470 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o137,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js",o138);
36471 // undefined
36472 o137 = null;
36473 // undefined
36474 o138 = null;
36475 // 10435
36476 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"4vv8/\",]);\n}\n;\n__d(\"TimeSpentBitArrayLogger\", [\"UserActivity\",\"copyProperties\",\"Banzai\",\"BanzaiODS\",\"TimeSpentArray\",\"Arbiter\",\"TimeSpentConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserActivity\"), h = b(\"copyProperties\"), i = b(\"Banzai\"), j = b(\"BanzaiODS\"), k = b(\"TimeSpentArray\"), l = b(\"Arbiter\"), m = b(\"TimeSpentConfig\"), n = {\n        store: true,\n        delay: m.initial_delay,\n        retry: true\n    };\n    function o(p) {\n        if (i.isEnabled(\"time_spent_bit_array\")) {\n            l.inform(\"timespent/tosbitdataposted\", h({\n            }, p));\n            i.post(\"time_spent_bit_array\", h({\n            }, p), n);\n            n.delay = m.delay;\n        }\n    ;\n    };\n    e.exports = {\n        init: function(p) {\n            if ((window.top == window.self)) {\n                g.subscribe(function(q, r) {\n                    k.update(r.last_inform);\n                });\n                k.init(o, m.initial_timeout);\n                j.bumpEntityKey(\"ms.time_spent.qa.www\", \"time_spent.bits.js_initialized\");\n            }\n        ;\n        }\n    };\n});");
36477 // 10436
36478 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s76aa385d8208e4e8eefbd18ade1f1e8c544e0113");
36479 // 10437
36480 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"4vv8/\",]);\n}\n;\n;\n__d(\"TimeSpentBitArrayLogger\", [\"UserActivity\",\"copyProperties\",\"Banzai\",\"BanzaiODS\",\"TimeSpentArray\",\"Arbiter\",\"TimeSpentConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserActivity\"), h = b(\"copyProperties\"), i = b(\"Banzai\"), j = b(\"BanzaiODS\"), k = b(\"TimeSpentArray\"), l = b(\"Arbiter\"), m = b(\"TimeSpentConfig\"), n = {\n        store: true,\n        delay: m.initial_delay,\n        retry: true\n    };\n    function o(p) {\n        if (i.isEnabled(\"time_spent_bit_array\")) {\n            l.inform(\"timespent/tosbitdataposted\", h({\n            }, p));\n            i.post(\"time_spent_bit_array\", h({\n            }, p), n);\n            n.delay = m.delay;\n        }\n    ;\n    ;\n    };\n;\n    e.exports = {\n        init: function(p) {\n            if (((window.JSBNG__top == window.JSBNG__self))) {\n                g.subscribe(function(q, r) {\n                    k.update(r.last_inform);\n                });\n                k.init(o, m.initial_timeout);\n                j.bumpEntityKey(\"ms.time_spent.qa.www\", \"time_spent.bits.js_initialized\");\n            }\n        ;\n        ;\n        }\n    };\n});");
36481 // 10444
36482 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o139,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y4/r/VctjjLR0rnO.js",o140);
36483 // undefined
36484 o139 = null;
36485 // undefined
36486 o140 = null;
36487 // 10448
36488 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"u//Ut\",]);\n}\n;\n__d(\"MercuryAPIArgsSource\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        JEWEL: \"jewel\",\n        CHAT: \"chat\",\n        MERCURY: \"mercury\",\n        WEBMESSENGER: \"web_messenger\"\n    };\n});\n__d(\"MercuryActionStatus\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        UNCONFIRMED: 3,\n        UNSENT: 0,\n        RESENDING: 7,\n        RESENT: 6,\n        UNABLE_TO_CONFIRM: 5,\n        FAILED_UNKNOWN_REASON: 4,\n        SUCCESS: 1,\n        ERROR: 10\n    };\n});\n__d(\"MercuryActionTypeConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        LOG_MESSAGE: \"ma-type:log-message\",\n        CLEAR_CHAT: \"ma-type:clear_chat\",\n        UPDATE_ACTION_ID: \"ma-type:update-action-id\",\n        DELETE_MESSAGES: \"ma-type:delete-messages\",\n        CHANGE_FOLDER: \"ma-type:change-folder\",\n        SEND_MESSAGE: \"ma-type:send-message\",\n        CHANGE_ARCHIVED_STATUS: \"ma-type:change-archived-status\",\n        DELETE_THREAD: \"ma-type:delete-thread\",\n        USER_GENERATED_MESSAGE: \"ma-type:user-generated-message\",\n        CHANGE_READ_STATUS: \"ma-type:change_read_status\",\n        CHANGE_MUTE_SETTINGS: \"ma-type:change-mute-settings\"\n    };\n});\n__d(\"MercuryAttachmentContentType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        UNKNOWN: \"attach:unknown\",\n        PHOTO: \"attach:image\",\n        VIDEO: \"attach:video\",\n        MSWORD: \"attach:ms:word\",\n        VOICE: \"attach:voice\",\n        MSPPT: \"attach:ms:ppt\",\n        TEXT: \"attach:text\",\n        MUSIC: \"attach:music\",\n        MSXLS: \"attach:ms:xls\"\n    };\n});\n__d(\"MercuryAttachmentType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        STICKER: \"sticker\",\n        PHOTO: \"photo\",\n        FILE: \"file\",\n        SHARE: \"share\",\n        ERROR: \"error\"\n    };\n});\n__d(\"MercuryErrorType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        SERVER: 1,\n        TRANSPORT: 2,\n        TIMEOUT: 3\n    };\n});\n__d(\"MercuryGenericConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        PENDING_THREAD_ID: \"pending:pending\"\n    };\n});\n__d(\"MercuryGlobalActionType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        MARK_ALL_READ: \"mga-type:mark-all-read\"\n    };\n});\n__d(\"MercuryLogMessageType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        SERVER_ERROR: \"log:error-msg\",\n        UNSUBSCRIBE: \"log:unsubscribe\",\n        JOINABLE_JOINED: \"log:joinable-joined\",\n        JOINABLE_CREATED: \"log:joinable-created\",\n        LIVE_LISTEN: \"log:live-listen\",\n        PHONE_CALL: \"log:phone-call\",\n        THREAD_IMAGE: \"log:thread-image\",\n        THREAD_NAME: \"log:thread-name\",\n        VIDEO_CALL: \"log:video-call\",\n        SUBSCRIBE: \"log:subscribe\"\n    };\n});\n__d(\"MercuryMessageSourceTags\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        CHAT: \"source:chat\",\n        MOBILE: \"source:mobile\",\n        MESSENGER: \"source:messenger\",\n        EMAIL: \"source:email\"\n    };\n});\n__d(\"MercuryParticipantTypes\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        FRIEND: \"friend\",\n        USER: \"user\",\n        THREAD: \"thread\",\n        EVENT: \"event\",\n        PAGE: \"page\"\n    };\n});\n__d(\"MercuryPayloadSource\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        SERVER_INITIAL_DATA: \"server_initial_data\",\n        CLIENT_DELETE_THREAD: \"client_delete_thread\",\n        SERVER_ZAP: \"server_zap\",\n        SERVER_SAVE_DRAFT: \"server_save_draft\",\n        SERVER_CHANGE_ARCHIVED_STATUS: \"server_change_archived_status\",\n        SERVER_SEARCH: \"server_search\",\n        CLIENT_CHANGE_MUTE_SETTINGS: \"client_change_mute_settings\",\n        SERVER_UNREAD_THREADS: \"server_unread_threads\",\n        SERVER_MARK_SEEN: \"server_mark_seen\",\n        SERVER_THREAD_SYNC: \"server_thread_sync\",\n        CLIENT_DELETE_MESSAGES: \"client_delete_messages\",\n        SERVER_FETCH_THREADLIST_INFO: \"server_fetch_threadlist_info\",\n        CLIENT_CHANNEL_MESSAGE: \"client_channel_message\",\n        CLIENT_CHANGE_FOLDER: \"client_change_folder\",\n        CLIENT_CHANGE_READ_STATUS: \"client_change_read_status\",\n        CLIENT_CLEAR_CHAT: \"client_clear_chat\",\n        SERVER_FETCH_THREAD_INFO: \"server_fetch_thread_info\",\n        SERVER_CHANGE_READ_STATUS: \"server_change_read_status\",\n        SERVER_SEND_MESSAGE: \"server_send_message\",\n        CLIENT_SAVE_DRAFT: \"client_save_draft\",\n        UNKNOWN: \"unknown\",\n        SERVER_MARK_FOLDER_READ: \"server_mark_folder_read\",\n        SERVER_CONFIRM_MESSAGES: \"server_confirm_messages\",\n        SERVER_TAB_PRESENCE: \"server_tab_presence\",\n        CLIENT_CHANGE_ARCHIVED_STATUS: \"client_change-archived_status\",\n        CLIENT_SEND_MESSAGE: \"client_send_message\",\n        CLIENT_HANDLE_ERROR: \"client_handle_error\"\n    };\n});\n__d(\"MercurySourceType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        GIGABOXX_BLAST: \"source:gigaboxx:blast\",\n        TITAN_FACEWEB_BUFFY: \"source:titan:faceweb_buffy\",\n        TITAN_FACEWEB_UNKNOWN: \"source:titan:faceweb_unknown\",\n        CHAT_WEB: \"source:chat:web\",\n        WEBRTC_MOBILE: \"source:webrtc:mobile\",\n        GIGABOXX_API: \"source:gigaboxx:api\",\n        TITAN_M_JAPAN: \"source:titan:m_japan\",\n        BUFFY_SMS: \"source:buffy:sms\",\n        SEND_PLUGIN: \"source:sendplugin\",\n        CHAT_MEEBO: \"source:chat:meebo\",\n        TITAN_FACEWEB_IPAD: \"source:titan:faceweb_ipad\",\n        TITAN_FACEWEB_IPHONE: \"source:titan:faceweb_iphone\",\n        TEST: \"source:test\",\n        WEB: \"source:web\",\n        SOCIALFOX: \"source:socialfox\",\n        EMAIL: \"source:email\",\n        TITAN_API: \"source:titan:api\",\n        GIGABOXX_WEB: \"source:gigaboxx:web\",\n        DESKTOP: \"source:desktop\",\n        TITAN_FACEWEB_ANDROID: \"source:titan:faceweb_android\",\n        LEIA: \"source:leia\",\n        CHAT_JABBER: \"source:chat:jabber\",\n        CHAT_TEST: \"source:chat:test\",\n        SHARE_DIALOG: \"source:share:dialog\",\n        GIGABOXX_WAP: \"source:gigaboxx:wap\",\n        CHAT: \"source:chat\",\n        TITAN_M_APP: \"source:titan:m_app\",\n        TITAN_M_TOUCH: \"source:titan:m_touch\",\n        TITAN_ORCA: \"source:titan:orca\",\n        TITAN_WAP: \"source:titan:wap\",\n        TITAN_EMAIL_REPLY: \"source:titan:emailreply\",\n        CHAT_IPHONE: \"source:chat:iphone\",\n        SMS: \"source:sms\",\n        TITAN_M_BASIC: \"source:titan:m_basic\",\n        TITAN_M_MINI: \"source:titan:m_mini\",\n        GIGABOXX_MOBILE: \"source:gigaboxx:mobile\",\n        UNKNOWN: \"source:unknown\",\n        TITAN_WEB: \"source:titan:web\",\n        TITAN_M_ZERO: \"source:titan:m_zero\",\n        MOBILE: \"source:mobile\",\n        PAID_PROMOTION: \"source:paid_promotion\",\n        TITAN_API_MOBILE: \"source:titan:api_mobile\",\n        HELPCENTER: \"source:helpcenter\",\n        GIGABOXX_EMAIL_REPLY: \"source:gigaboxx:emailreply\",\n        CHAT_ORCA: \"source:chat:orca\",\n        TITAN_M_TALK: \"source:titan:m_talk\",\n        NEW_SHARE_DIALOG: \"source:share:dialog:new\"\n    };\n});\n__d(\"MercuryThreadMode\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        EMAIL_ORIGINATED: 1,\n        OBJECT_ORIGINATED: 3,\n        TITAN_ORIGINATED: 2\n    };\n});\n__d(\"MercuryTimePassed\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        TODAY: 0,\n        WEEK_AGO: 1,\n        CURRENT_YEAR: 3,\n        OTHER_YEAR: 4,\n        MONTH_AGO: 2\n    };\n});\n__d(\"MessagingEvent\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        UNSUBSCRIBE: \"unsubscribe\",\n        DELIVERY_RECEIPT: \"delivery_receipt\",\n        REPORT_SPAM_MESSAGES: \"report_spam_messages\",\n        DELIVER_FAST_PAST: \"deliver_fast_path\",\n        DELETE_MESSAGES: \"delete_messages\",\n        READ_RECEIPT: \"read_receipt\",\n        SENT_PUSH: \"sent_push\",\n        READ: \"read\",\n        CHANGE_MUTE_SETTINGS: \"change_mute_settings\",\n        ERROR: \"error\",\n        UNMARK_SPAM: \"unmark_spam\",\n        UNREAD: \"unread\",\n        DELIVER_LOG: \"deliver_log\",\n        DELIVER: \"deliver\",\n        READ_ALL: \"read_all\",\n        TAG: \"tag\",\n        MORE_THREADS: \"more_threads\",\n        DELETE: \"delete\",\n        REPORT_SPAM: \"report_spam\",\n        SUBSCRIBE: \"subscribe\"\n    };\n});\n__d(\"MessagingTag\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        MTA_SYSTEM_MESSAGE: \"MTA:system_message\",\n        SENT: \"sent\",\n        INBOX: \"inbox\",\n        SMS_TAG_ROOT: \"SMSShortcode:\",\n        UPDATES: \"broadcasts_inbox\",\n        OTHER: \"other\",\n        GROUPS: \"groups\",\n        FILTERED_CONTENT: \"filtered_content\",\n        ACTION_ARCHIVED: \"action:archived\",\n        UNREAD: \"unread\",\n        BCC: \"header:bcc\",\n        SMS_MUTE: \"sms_mute\",\n        ARCHIVED: \"archived\",\n        DOMAIN_AUTH_PASS: \"MTA:dmarc:pass\",\n        EVENT: \"event\",\n        VOICEMAIL: \"voicemail\",\n        DOMAIN_AUTH_FAIL: \"MTA:dmarc:fail\",\n        SPAM_SPOOFING: \"spam:spoofing\",\n        SPOOF_WARNING: \"MTA:spoof_warning\",\n        SPAM: \"spam\",\n        EMAIL_MESSAGE: \"source:email\",\n        EMAIL: \"email\",\n        APP_ID_ROOT: \"app_id:\"\n    };\n});\n__d(\"AvailableListConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        ON_AVAILABILITY_CHANGED: \"buddylist/availability-changed\",\n        ON_UPDATE_ERROR: \"buddylist/update-error\",\n        ON_UPDATED: \"buddylist/updated\",\n        ON_CHAT_NOTIFICATION_CHANGED: \"chat-notification-changed\",\n        OFFLINE: 0,\n        IDLE: 1,\n        ACTIVE: 2,\n        MOBILE: 3,\n        LEGACY_OVERLAY_OFFLINE: -1,\n        LEGACY_OVERLAY_ONLINE: 0,\n        LEGACY_OVERLAY_IDLE: 1,\n        legacyStatusMap: {\n            0: 2,\n            1: 1,\n            \"-1\": 0,\n            2: 3\n        },\n        reverseLegacyStatusMap: {\n            0: -1,\n            1: 1,\n            2: 0,\n            3: 2\n        }\n    };\n    a.AvailableListConstants = e.exports = g;\n});\n__d(\"PresenceUtil\", [\"Cookie\",\"Env\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"Env\"), i = b(\"randomInt\"), j = b(\"tx\"), k = (i(0, 4294967295) + 1), l = {\n        checkMaintenanceError: function(m) {\n            if ((m.getError() == 1356007)) {\n                return true\n            };\n            return false;\n        },\n        getErrorDescription: function(m) {\n            var n = m.getError(), o = m.getErrorDescription();\n            if (!o) {\n                o = \"An error occurred.\";\n            };\n            if ((n == 1357001)) {\n                o = \"Your session has timed out. Please log in.\";\n            };\n            return o;\n        },\n        getSessionID: function() {\n            return k;\n        },\n        hasUserCookie: function() {\n            return (h.user === g.get(\"c_user\"));\n        }\n    };\n    e.exports = l;\n});\n__d(\"PresencePrivacy\", [\"hasArrayNature\",\"Arbiter\",\"AsyncRequest\",\"ChannelConstants\",\"copyProperties\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"PresencePrivacyInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ChannelConstants\"), k = b(\"copyProperties\"), l = b(\"Env\"), m = b(\"JSLogger\"), n = b(\"PresenceUtil\"), o = b(\"PresencePrivacyInitialData\"), p = \"/ajax/chat/privacy/settings.php\", q = \"/ajax/chat/privacy/online_policy.php\", r = \"/ajax/chat/privacy/visibility.php\", s = \"friend_visibility\", t = \"visibility\", u = \"online_policy\", v = k({\n    }, o.privacyData), w = o.visibility, x = k({\n    }, o.privacyData), y = w, z = o.onlinePolicy, aa = z, ba = [], ca = false;\n    function da() {\n        return m.create(\"blackbird\");\n    };\n    var ea = k(new h(), {\n        WHITELISTED: 1,\n        BLACKLISTED: -1,\n        UNLISTED: 0,\n        ONLINE: 1,\n        OFFLINE: 0,\n        ONLINE_TO_WHITELIST: 0,\n        ONLINE_TO_BLACKLIST: 1\n    });\n    function fa(ra) {\n        var sa;\n        for (sa in ra) {\n            var ta = ra[sa];\n            if ((sa == l.user)) {\n                da().error(\"set_viewer_visibility\");\n                throw new Error(\"Invalid to set current user's visibility\");\n            }\n        ;\n            switch (ta) {\n              case ea.WHITELISTED:\n            \n              case ea.BLACKLISTED:\n            \n              case ea.UNLISTED:\n                break;\n              default:\n                da().error(\"set_invalid_friend_visibility\", {\n                    id: sa,\n                    value: ta\n                });\n                throw new Error((\"Invalid state: \" + ta));\n            };\n        };\n        for (sa in ra) {\n            v[sa] = ra[sa];;\n        };\n        ea.inform(\"privacy-changed\");\n    };\n    function ga(ra, sa) {\n        var ta = {\n        };\n        ta[ra] = sa;\n        fa(ta);\n    };\n    function ha(ra) {\n        switch (ra) {\n          case ea.ONLINE:\n        \n          case ea.OFFLINE:\n            break;\n          default:\n            da().error(\"set_invalid_visibility\", {\n                value: ra\n            });\n            throw new Error((\"Invalid visibility: \" + ra));\n        };\n        w = ra;\n        ea.inform(\"privacy-changed\");\n        ea.inform(\"privacy-user-presence-changed\");\n        h.inform(\"chat/visibility-changed\", {\n            sender: this\n        });\n    };\n    function ia(ra) {\n        switch (ra) {\n          case ea.ONLINE_TO_WHITELIST:\n        \n          case ea.ONLINE_TO_BLACKLIST:\n            break;\n          default:\n            throw new Error((\"Invalid default online policy: \" + ra));\n        };\n        z = ra;\n        ea.inform(\"privacy-user-presence-changed\");\n        ea.inform(\"privacy-changed\");\n    };\n    function ja(ra, sa) {\n        ca = true;\n        ra.send();\n    };\n    function ka(ra, sa) {\n        ba.push({\n            request: ra,\n            data: sa\n        });\n        if (!ca) {\n            var ta = ba.shift();\n            ja(ta.request, ta.data);\n        }\n    ;\n    };\n    function la(ra, sa) {\n        var ta = ra.type;\n        if ((ta === s)) {\n            var ua = sa.payload.user_availabilities;\n            if (!g(ua)) {\n                ea.inform(\"privacy-availability-changed\", {\n                    user_availabilities: ua\n                });\n                for (var va in ra.settings) {\n                    x[va] = ra.settings[va];;\n                };\n            }\n        ;\n        }\n         else {\n            if ((ta === t)) {\n                y = ra.visibility;\n            }\n             else if ((ta === u)) {\n                aa = ra.online_policy;\n            }\n        ;\n            ea.inform(\"privacy-user-presence-response\");\n        }\n    ;\n        da().log(\"set_update_response\", {\n            data: ra,\n            response: sa\n        });\n    };\n    function ma(ra, sa) {\n        if ((w !== y)) {\n            ha(y);\n        };\n        if ((z !== aa)) {\n            ia(aa);\n        };\n        k(v, x);\n        ea.inform(\"privacy-changed\");\n        ba = [];\n        da().log(\"set_error_response\", {\n            data: ra,\n            response: sa\n        });\n    };\n    function na(ra) {\n        ca = false;\n        if ((ba.length > 0)) {\n            var sa = ba.shift();\n            ja(sa.request, sa.data);\n        }\n    ;\n    };\n    function oa(ra, sa) {\n        if ((n != null)) {\n            var ta = ra.getData();\n            ta.window_id = n.getSessionID();\n            ra.setData(ta);\n        }\n    ;\n        ra.setHandler(la.bind(this, sa)).setErrorHandler(ma.bind(this, sa)).setTransportErrorHandler(ma.bind(this, sa)).setFinallyHandler(na.bind(this)).setAllowCrossPageTransition(true);\n        return ra;\n    };\n    function pa(ra, sa, ta) {\n        return oa(new i(ra).setData(sa), ta);\n    };\n    function qa(ra, sa) {\n        var ta = sa.obj;\n        if ((ta.viewer_id != l.user)) {\n            da().error(\"invalid_viewer_for_channel_message\", {\n                type: ra,\n                data: sa\n            });\n            throw new Error(\"Viewer got from the channel is not the real viewer\");\n        }\n    ;\n        if ((ta.window_id === n.getSessionID())) {\n            return\n        };\n        var ua = ta.data;\n        if ((ta.event == \"access_control_entry\")) {\n            ua.target_ids.forEach(function(wa) {\n                ga(wa, ua.setting);\n                x[wa] = ua.setting;\n            });\n        }\n         else {\n            if ((ta.event == \"visibility_update\")) {\n                var va = (!!ua.visibility ? ea.ONLINE : ea.OFFLINE);\n                ha(va);\n                y = va;\n            }\n             else if ((ta.event == \"online_policy_update\")) {\n                ia(ua.online_policy);\n                aa = ua.online_policy;\n            }\n            \n        ;\n            ea.inform(\"privacy-user-presence-response\");\n        }\n    ;\n        da().log(\"channel_message_received\", {\n            data: sa.obj\n        });\n    };\n    k(ea, {\n        WHITELISTED: 1,\n        BLACKLISTED: -1,\n        UNLISTED: 0,\n        ONLINE: 1,\n        OFFLINE: 0,\n        ONLINE_TO_WHITELIST: 0,\n        ONLINE_TO_BLACKLIST: 1,\n        init: function(ra, sa, ta) {\n        \n        },\n        setVisibility: function(ra) {\n            y = w;\n            ha(ra);\n            var sa = {\n                visibility: ra\n            }, ta = {\n                type: t,\n                visibility: ra\n            }, ua = pa(r, sa, ta);\n            ka(ua, ta);\n            da().log(\"set_visibility\", {\n                data: sa\n            });\n            return ra;\n        },\n        getVisibility: function() {\n            return w;\n        },\n        setOnlinePolicy: function(ra) {\n            aa = z;\n            ia(ra);\n            var sa = {\n                online_policy: ra\n            }, ta = {\n                type: u,\n                online_policy: ra\n            }, ua = pa(q, sa, ta);\n            ka(ua, ta);\n            da().log(\"set_online_policy\", {\n                data: sa\n            });\n            return ra;\n        },\n        getOnlinePolicy: function() {\n            return z;\n        },\n        getFriendVisibility: function(ra) {\n            return (v[ra] || ea.UNLISTED);\n        },\n        allows: function(ra) {\n            if ((this.getVisibility() === ea.OFFLINE)) {\n                return false\n            };\n            var sa = this.getOnlinePolicy();\n            return ((sa === ea.ONLINE_TO_WHITELIST) ? (v[ra] == ea.WHITELISTED) : (v[ra] != ea.BLACKLISTED));\n        },\n        setFriendsVisibility: function(ra, sa) {\n            if ((ra.length > 0)) {\n                var ta = {\n                };\n                for (var ua = 0; (ua < ra.length); ua++) {\n                    var va = ra[ua];\n                    x[va] = v[va];\n                    ta[va] = sa;\n                };\n                fa(ta);\n                var wa = sa;\n                if ((wa == ea.UNLISTED)) {\n                    wa = x[ra[0]];\n                };\n                var xa = {\n                    users: ra,\n                    setting: sa,\n                    setting_type: wa\n                }, ya = {\n                    type: s,\n                    settings: ta\n                }, za = pa(p, xa, ya);\n                ka(za, ya);\n                da().log(\"set_friend_visibility\", {\n                    data: xa\n                });\n            }\n        ;\n            return sa;\n        },\n        setFriendVisibilityMap: function(ra, sa) {\n            for (var ta in ra) {\n                x[ta] = v[ta];;\n            };\n            fa(ra);\n            var ua = {\n                type: s,\n                settings: ra\n            };\n            ka(oa(sa, ua), ua);\n            da().log(\"set_friend_visibility_from_map\", {\n                data: ra\n            });\n        },\n        allow: function(ra) {\n            if (this.allows(ra)) {\n                da().error(\"allow_already_allowed\");\n                throw new Error((\"allow() should only be called for users that \" + \"are not already allowed\"));\n            }\n        ;\n            if ((this.getVisibility() === ea.OFFLINE)) {\n                da().error(\"allow_called_while_offline\");\n                throw new Error(\"allow() should only be called when the user is already online\");\n            }\n        ;\n            var sa = ((this.getOnlinePolicy() === ea.ONLINE_TO_WHITELIST) ? ea.WHITELISTED : ea.UNLISTED);\n            return this.setFriendsVisibility([ra,], sa);\n        },\n        disallow: function(ra) {\n            if (!this.allows(ra)) {\n                da().error(\"disallow_already_disallowed\");\n                throw new Error((\"disallow() should only be called for users that \" + \"are not already disallowed\"));\n            }\n        ;\n            if ((this.getVisibility() === ea.OFFLINE)) {\n                da().error(\"disallow_called_while_offline\");\n                throw new Error(\"disallow() should only be called when the user is already online\");\n            }\n        ;\n            var sa = ((this.getOnlinePolicy() === ea.ONLINE_TO_BLACKLIST) ? ea.BLACKLISTED : ea.UNLISTED);\n            return this.setFriendsVisibility([ra,], sa);\n        },\n        getBlacklist: function() {\n            var ra = [];\n            for (var sa in v) {\n                if ((v[sa] === ea.BLACKLISTED)) {\n                    ra.push(sa);\n                };\n            };\n            return ra;\n        },\n        getWhitelist: function() {\n            var ra = [];\n            for (var sa in v) {\n                if ((v[sa] === ea.WHITELISTED)) {\n                    ra.push(sa);\n                };\n            };\n            return ra;\n        },\n        getMapForTest: function() {\n            return v;\n        },\n        setMapForTest: function(ra) {\n            v = ra;\n        }\n    });\n    ea.inform(\"privacy-changed\");\n    ea.inform(\"privacy-user-presence-changed\");\n    da().log(\"initialized\", {\n        visibility: w,\n        policy: z\n    });\n    h.subscribe(j.getArbiterType(\"privacy_changed\"), qa.bind(this));\n    h.subscribe(j.ON_CONFIG, function(ra, sa) {\n        var ta = sa.getConfig(\"visibility\", null);\n        if (((ta !== null) && (typeof (ta) !== \"undefined\"))) {\n            var ua = (ta ? ea.ONLINE : ea.OFFLINE);\n            ha(ua);\n            da().log(\"config_visibility\", {\n                vis: ua\n            });\n        }\n    ;\n    }.bind(this));\n    a.PresencePrivacy = e.exports = ea;\n}, 3);\n__d(\"ChatVisibility\", [\"Arbiter\",\"JSLogger\",\"PresencePrivacy\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"JSLogger\"), i = b(\"PresencePrivacy\"), j = {\n        isOnline: function() {\n            return (i.getVisibility() === i.ONLINE);\n        },\n        hasBlackbirdEnabled: function() {\n            return (this.isVisibleToMostFriends() || this.isVisibleToSomeFriends());\n        },\n        isVisibleToMostFriends: function() {\n            return ((i.getOnlinePolicy() === i.ONLINE_TO_BLACKLIST) && (i.getBlacklist().length > 0));\n        },\n        isVisibleToSomeFriends: function() {\n            return ((i.getOnlinePolicy() === i.ONLINE_TO_WHITELIST) && (i.getWhitelist().length > 0));\n        },\n        goOnline: function(k) {\n            if ((i.getVisibility() === i.OFFLINE)) {\n                h.create(\"blackbird\").log(\"chat_go_online\");\n                i.setVisibility(i.ONLINE);\n                g.inform(\"chat-visibility/go-online\");\n            }\n        ;\n            (k && k());\n        },\n        goOffline: function(k) {\n            if ((i.getVisibility() === i.ONLINE)) {\n                h.create(\"blackbird\").log(\"chat_go_offline\");\n                i.setVisibility(i.OFFLINE);\n                g.inform(\"chat-visibility/go-offline\");\n            }\n        ;\n            (k && k());\n        },\n        toggleVisibility: function() {\n            if (j.isOnline()) {\n                j.goOffline();\n            }\n             else j.goOnline();\n        ;\n        }\n    };\n    a.ChatVisibility = e.exports = j;\n}, 3);\n__d(\"MercuryIDs\", [], function(a, b, c, d, e, f) {\n    function g(i) {\n        return ((typeof i === \"string\") && (i.indexOf(\":\") !== -1));\n    };\n    var h = {\n        isValid: function(i) {\n            if (!i) {\n                return false\n            };\n            return g(i);\n        },\n        isValidThreadID: function(i) {\n            if (!h.isValid(i)) {\n                return false\n            };\n            var j = h.tokenize(i);\n            switch (j.type) {\n              case \"user\":\n            \n              case \"group\":\n            \n              case \"thread\":\n            \n              case \"root\":\n            \n              case \"pending\":\n                return true;\n              default:\n                return false;\n            };\n        },\n        tokenize: function(i) {\n            if (!this.isValid(i)) {\n                throw \"bad_id_format\"\n            };\n            var j = i.indexOf(\":\");\n            return {\n                type: i.substr(0, j),\n                value: i.substr((j + 1))\n            };\n        },\n        getUserIDFromParticipantID: function(i) {\n            if (!h.isValid(i)) {\n                return null\n            };\n            var j = h.tokenize(i);\n            if ((j.type != \"fbid\")) {\n                return null\n            };\n            return j.value;\n        }\n    };\n    e.exports = h;\n});\n__d(\"MercuryAssert\", [\"MercuryIDs\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryIDs\");\n    e.exports = {\n        isParticipantID: function(h) {\n            if (!g.isValid(h)) {\n                throw \"bad_participant_id\"\n            };\n        },\n        allParticipantIDs: function(h) {\n            h.forEach(this.isParticipantID);\n        },\n        isUserParticipantID: function(h) {\n            var i = g.tokenize(h);\n            if ((i.type != \"fbid\")) {\n                throw \"bad_user_id\"\n            };\n        },\n        isEmailParticipantID: function(h) {\n            var i = g.tokenize(h);\n            if ((i.type != \"email\")) {\n                throw \"bad_email_id\"\n            };\n        },\n        allThreadID: function(h) {\n            h.forEach(this.isThreadID);\n        },\n        isThreadID: function(h) {\n            if (!g.isValid(h)) {\n                throw \"bad_thread_id\"\n            };\n        }\n    };\n});\n__d(\"MercurySingletonMixin\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = {\n        _getInstances: function() {\n            if (!this._instances) {\n                this._instances = {\n                };\n            };\n            return this._instances;\n        },\n        get: function() {\n            return this.getForFBID(g.user);\n        },\n        getForFBID: function(i) {\n            var j = this._getInstances();\n            if (!j[i]) {\n                j[i] = new this(i);\n            };\n            return j[i];\n        }\n    };\n    e.exports = h;\n});\n__d(\"MercuryMessageIDs\", [\"KeyedCallbackManager\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = new g(), i = {\n        getServerIDs: function(j, k) {\n            var l = j.filter(function(n) {\n                return (n.indexOf(\"mail.projektitan.com\") !== -1);\n            }), m = function(n) {\n                var o = j.map(function(p) {\n                    return (n[p] ? n[p] : p);\n                });\n                k(o);\n            };\n            return h.executeOrEnqueue(l, m);\n        },\n        addServerID: function(j, k) {\n            h.setResource(j, k);\n        }\n    };\n    e.exports = i;\n});\n__d(\"ImageSourceType\", [], function(a, b, c, d, e, f) {\n    var g = {\n        PROFILE_PICTURE: \"profile_picture\",\n        IMAGE: \"image\"\n    };\n    e.exports = g;\n});\n__d(\"PhotoResizeModeConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        COVER: \"s\",\n        CONTAIN: \"p\"\n    };\n    e.exports = g;\n});\n__d(\"ImageSourceRequest\", [\"arrayContains\",\"extendArray\",\"copyProperties\",\"Env\",\"KeyedCallbackManager\",\"ImageSourceType\",\"PhotoResizeModeConst\",\"MercuryServerDispatcher\",], function(a, b, c, d, e, f) {\n    var g = b(\"arrayContains\"), h = b(\"extendArray\"), i = b(\"copyProperties\"), j = b(\"Env\"), k = b(\"KeyedCallbackManager\"), l = b(\"ImageSourceType\"), m = b(\"PhotoResizeModeConst\"), n = b(\"MercuryServerDispatcher\");\n    function o() {\n        this._request = {\n            fbid: null,\n            type: null,\n            width: null,\n            height: null,\n            resize_mode: null\n        };\n        this._callback = null;\n    };\n    i(o.prototype, {\n        setFBID: function(s) {\n            this._request.fbid = s;\n            return this;\n        },\n        setType: function(s) {\n            if (!g([l.PROFILE_PICTURE,l.IMAGE,], s)) {\n                throw new TypeError((\"ImageSourceRequest.setType: invalid type \" + s))\n            };\n            this._request.type = s;\n            return this;\n        },\n        setDimensions: function(s, t) {\n            this._request.width = s;\n            this._request.height = t;\n            return this;\n        },\n        setResizeMode: function(s) {\n            if (!g([m.COVER,m.CONTAIN,], s)) {\n                throw new TypeError((\"ImageSourceRequest.setResizeMode: invalid resize mode \" + s))\n            };\n            this._request.resize_mode = s;\n            return this;\n        },\n        setCallback: function(s) {\n            this._callback = s;\n            return this;\n        },\n        send: function() {\n            if ((((((!this._request.fbid || !this._request.width) || !this._request.height) || !this._request.type) || !this._request.resize_mode) || !this._callback)) {\n                throw new Error(\"ImageSourceRequest: You must set all the fields\")\n            };\n            var s = q(), t = r(this._request);\n            s.executeOrEnqueue(t, this._callback);\n            if ((s.getUnavailableResourcesFromRequest(t).length === 1)) {\n                n.trySend(\"/ajax/image_source.php\", {\n                    requests: [this._request,]\n                });\n                return true;\n            }\n        ;\n            return false;\n        }\n    });\n    var p = null;\n    function q() {\n        if (p) {\n            return p\n        };\n        var s = new k();\n        p = s;\n        n.registerEndpoints({\n            \"/ajax/image_source.php\": {\n                request_user_id: j.user,\n                mode: n.BATCH_DEFERRED_MULTI,\n                batch_function: function(t, u) {\n                    h(t.requests, u.requests);\n                    return t;\n                },\n                handler: function(t, u) {\n                    var v = u.getData().requests;\n                    for (var w = 0; (w < v.length); ++w) {\n                        s.setResource(r(v[w]), t[w]);;\n                    };\n                }\n            }\n        });\n        return s;\n    };\n    function r(s) {\n        return [s.fbid,s.type,s.width,s.height,s.resize_mode,].join(\"|\");\n    };\n    e.exports = o;\n});\n__d(\"TimestampConverter\", [\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSLogger\"), h = g.create(\"timestamp_converter\");\n    function i(k) {\n        return (((typeof (k) == \"string\")) && (k.length > 6));\n    };\n    var j = {\n        convertActionIDToTimestamp: function(k) {\n            if (i(k)) {\n                var l = k.slice(0, -6);\n                return parseInt(l, 10);\n            }\n        ;\n        },\n        maxValidActionID: function(k, l) {\n            if (!i(k)) {\n                return l\n            };\n            if (!i(l)) {\n                return k\n            };\n            return (this.isGreaterThan(k, l) ? k : l);\n        },\n        isGreaterThan: function(k, l) {\n            if ((!i(k) || !i(l))) {\n                return false\n            };\n            return (this.convertActionIDToTimestamp(k) > this.convertActionIDToTimestamp(l));\n        }\n    };\n    e.exports = j;\n});\n__d(\"MessagingReliabilityLogger\", [\"function-extensions\",\"PresenceUtil\",\"MercuryServerDispatcher\",\"MessagingReliabilityLoggerInitialData\",\"isEmpty\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"PresenceUtil\"), h = b(\"MercuryServerDispatcher\"), i = b(\"MessagingReliabilityLoggerInitialData\"), j = b(\"isEmpty\"), k = b(\"setTimeoutAcrossTransitions\"), l = \"/ajax/mercury/client_reliability.php\", m = 60000;\n    function n(t, u) {\n        var v = {\n            app: i.app,\n            categories: JSON.stringify(t)\n        };\n        if (!j(u)) {\n            v.extra = JSON.stringify(u);\n        };\n        return v;\n    };\n    function o(t, u, v, w) {\n        if ((t[u] === undefined)) {\n            t[u] = {\n            };\n        };\n        if ((t[u][v] === undefined)) {\n            t[u][v] = 0;\n        };\n        t[u][v] += w;\n    };\n    function p(t, u, v, w) {\n        if ((t[u] === undefined)) {\n            t[u] = {\n            };\n        };\n        if ((t[u][v] === undefined)) {\n            t[u][v] = [];\n        };\n        for (var x = 0; (x < w.length); ++x) {\n            t[u][v].push(w[x]);;\n        };\n    };\n    function q(t, u) {\n        if ((((t && !t.categories)) || ((u && !u.categories)))) {\n            return\n        };\n        var v = (t ? JSON.parse(t.categories) : {\n        }), w = ((t && t.extra) ? JSON.parse(t.extra) : {\n        }), x = JSON.parse(u.categories), y = (u.extra ? JSON.parse(u.extra) : {\n        });\n        for (var z in x) {\n            var aa = x[z], ba = y[z];\n            for (var ca in aa) {\n                o(v, z, ca, aa[ca]);\n                if ((ba !== undefined)) {\n                    var da = ba[ca];\n                    if ((da !== undefined)) {\n                        p(w, z, ca, da);\n                    };\n                }\n            ;\n            };\n        };\n        return n(v, w);\n    };\n    var r = {\n    };\n    r[l] = {\n        mode: h.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR,\n        batch_function: q\n    };\n    h.registerEndpoints(r);\n    var s = {\n        addEntry: function(t, u, v) {\n            if (!i.enabled) {\n                return\n            };\n            var w = {\n            };\n            o(w, t, u, 1);\n            var x = {\n            };\n            if ((v !== undefined)) {\n                p(x, t, u, [v,]);\n            };\n            h.trySend(l, n(w, x));\n        }\n    };\n    (function t() {\n        s.addEntry(\"page_event\", \"active\", g.getSessionID());\n        k(t, m);\n    })();\n    e.exports = s;\n});\n__d(\"MercuryThreadInformer\", [\"ArbiterMixin\",\"copyProperties\",\"MercuryAssert\",\"MercurySingletonMixin\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"MercuryAssert\"), j = b(\"MercurySingletonMixin\");\n    function k(m) {\n        if (!m._locked) {\n            var n = m._threadDeletions, o = m._threadChanges, p = m._threadReadChanges, q = m._threadlistChanged, r = m._unseenStateChanged, s = m._unreadStateChanged, t = m._receivedMessages, u = m._reorderedMessages, v = m._updatedMessages;\n            m._threadDeletions = {\n            };\n            m._threadChanges = {\n            };\n            m._threadReadChanges = {\n            };\n            m._threadlistChanged = false;\n            m._unseenStateChanged = false;\n            m._unreadStateChanged = false;\n            m._receivedMessages = {\n            };\n            m._reorderedMessages = {\n            };\n            m._updatedMessages = {\n            };\n            var w = Object.keys(o);\n            if ((w.length || q)) {\n                m.inform(\"threadlist-updated\", w);\n            };\n            if (w.length) {\n                m.inform(\"threads-updated\", o);\n            };\n            for (var x in p) {\n                m.inform(\"thread-read-changed\", p);\n                break;\n            };\n            for (var x in n) {\n                m.inform(\"threads-deleted\", n);\n                break;\n            };\n            if (r) {\n                m.inform(\"unseen-updated\", null);\n            };\n            if (s) {\n                m.inform(\"unread-updated\", null);\n            };\n            for (x in t) {\n                m.inform(\"messages-received\", t);\n                break;\n            };\n            for (x in u) {\n                m.inform(\"messages-reordered\", u);\n                break;\n            };\n            for (x in v) {\n                m.inform(\"messages-updated\", v);\n                break;\n            };\n        }\n    ;\n    };\n    function l(m) {\n        this._fbid = m;\n        this._threadDeletions = {\n        };\n        this._threadChanges = {\n        };\n        this._threadReadChanges = {\n        };\n        this._threadlistChanged = false;\n        this._unseenStateChanged = false;\n        this._unreadStateChanged = false;\n        this._receivedMessages = {\n        };\n        this._reorderedMessages = {\n        };\n        this._updatedMessages = {\n        };\n        this._locked = 0;\n    };\n    h(l.prototype, g, {\n        updatedThread: function(m) {\n            this._threadChanges[m] = true;\n            k(this);\n        },\n        deletedThread: function(m) {\n            this._threadDeletions[m] = true;\n            k(this);\n        },\n        updatedThreadlist: function() {\n            this._threadlistChanged = true;\n            k(this);\n        },\n        updatedUnseenState: function() {\n            this._unseenStateChanged = true;\n            k(this);\n        },\n        updatedUnreadState: function() {\n            this._unreadStateChanged = true;\n            k(this);\n        },\n        changedThreadReadState: function(m, n, o) {\n            if ((!this._threadReadChanges[m] || (this._threadReadChanges[m].timestamp < o))) {\n                this._threadReadChanges[m] = {\n                    mark_as_read: n,\n                    timestamp: o\n                };\n            };\n            k(this);\n        },\n        receivedMessage: function(m) {\n            i.isThreadID(m.thread_id);\n            var n = m.thread_id;\n            if (!this._receivedMessages[n]) {\n                this._receivedMessages[n] = [];\n            };\n            this._receivedMessages[n].push(m);\n            this.updatedThread(n);\n        },\n        reorderedMessages: function(m, n) {\n            this._reorderedMessages[m] = {\n                source: n\n            };\n            k(this);\n        },\n        updatedMessage: function(m, n, o) {\n            if (!this._updatedMessages[m]) {\n                this._updatedMessages[m] = {\n                };\n            };\n            this._updatedMessages[m][n] = {\n                source: o\n            };\n            this.updatedThread(m);\n        },\n        synchronizeInforms: function(m) {\n            this._locked++;\n            try {\n                m();\n            } catch (n) {\n                throw n;\n            } finally {\n                this._locked--;\n                k(this);\n            };\n        },\n        listen: function(m, n) {\n            return this.subscribe(\"threads-updated\", function(o, p) {\n                if (p[m]) {\n                    n(m);\n                };\n            });\n        }\n    });\n    h(l, j);\n    e.exports = l;\n});\n__d(\"MercuryServerRequests\", [\"ArbiterMixin\",\"AsyncResponse\",\"TimestampConverter\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAPIArgsSource\",\"MercuryAssert\",\"MercuryErrorType\",\"MercuryGenericConstants\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryPayloadSource\",\"MercuryServerRequestsConfig\",\"MercurySourceType\",\"MercuryThreadlistConstants\",\"MercuryMessageIDs\",\"MessagingConfig\",\"MessagingReliabilityLogger\",\"MessagingTag\",\"MercurySingletonMixin\",\"MercuryServerDispatcher\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncResponse\"), i = b(\"TimestampConverter\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"KeyedCallbackManager\"), m = b(\"MercuryActionTypeConstants\"), n = b(\"MercuryActionStatus\"), o = b(\"MercuryAPIArgsSource\"), p = b(\"MercuryAssert\"), q = b(\"MercuryErrorType\"), r = b(\"MercuryGenericConstants\"), s = b(\"MercuryGlobalActionType\"), t = b(\"MercuryIDs\"), u = b(\"MercuryLogMessageType\"), v = b(\"MercuryPayloadSource\"), w = b(\"MercuryServerRequestsConfig\"), x = b(\"MercurySourceType\"), y = b(\"MercuryThreadlistConstants\"), z = b(\"MercuryMessageIDs\"), aa = b(\"MessagingConfig\"), ba = b(\"MessagingReliabilityLogger\"), ca = b(\"MessagingTag\"), da = b(\"MercurySingletonMixin\"), ea = b(\"MercuryServerDispatcher\"), fa = b(\"MercuryThreadInformer\"), ga = b(\"copyProperties\"), ha = b(\"createObjectFrom\"), ia = k.create(\"mercury_server\"), ja = o.MERCURY;\n    function ka(sb, tb) {\n        if (tb) {\n            sb._lastActionId = i.maxValidActionID(sb._lastActionId, tb);\n        };\n    };\n    function la(sb, tb) {\n        var ub = tb.thread_id, vb = sb._serverToClientIDs.getResource(ub);\n        if (!vb) {\n            if (tb.canonical_fbid) {\n                vb = (\"user:\" + tb.canonical_fbid);\n            }\n             else if (tb.root_message_threading_id) {\n                vb = (\"root:\" + tb.root_message_threading_id);\n            }\n        ;\n            vb = (vb || (\"thread:\" + ub));\n            ma(sb, ub, vb);\n        }\n    ;\n        tb.thread_id = vb;\n    };\n    function ma(sb, tb, ub) {\n        sb._serverToClientIDs.setResource(tb, ub);\n        sb._clientToServerIDs.setResource(ub, tb);\n        sb._newlyAddedClientIDs[tb] = ub;\n    };\n    function na(sb, tb, ub) {\n        var vb = sb._clientToServerIDs.executeOrEnqueue(tb, ub), wb = sb._clientToServerIDs.getUnavailableResources(vb), xb = sb.tokenizeThreadID(tb);\n        if ((wb.length && (xb.type != \"root\"))) {\n            sb.fetchThreadData(wb);\n        };\n    };\n    function oa(sb, tb) {\n        return sb._clientToServerIDs.getResource(tb);\n    };\n    function pa(sb, tb) {\n        return !!sb._serverToClientIDs.getResource(tb);\n    };\n    function qa(sb, tb) {\n        var ub = sb._serverToClientIDs.getResource(tb);\n        if ((typeof ub == \"undefined\")) {\n            ia.warn(\"no_client_thread_id\", {\n                server_id: tb\n            });\n        };\n        return ub;\n    };\n    function ra(sb, tb, ub) {\n        sb._serverToClientIDs.executeOrEnqueue(tb, ub);\n        sb.ensureThreadIsFetched(tb);\n    };\n    function sa(sb, tb, ub) {\n        if ((tb.action_type != m.SEND_MESSAGE)) {\n            return\n        };\n        var vb = tb.client_thread_id;\n        if (!vb) {\n            vb = qa(sb, tb.thread_id);\n        };\n        var wb = null;\n        if (vb) {\n            wb = t.tokenize(vb).type;\n        };\n        ba.addEntry((\"send_\" + wb), ub, ((tb.thread_id + \",\") + tb.message_id));\n    };\n    function ta(sb) {\n        return (sb.getError() ? (\"_\" + sb.getError()) : \"\");\n    };\n    function ua(sb, tb) {\n        var ub = null;\n        switch (tb.status) {\n          case n.SUCCESS:\n            ub = \"success\";\n            break;\n          case n.FAILED_UNKNOWN_REASON:\n            ub = \"confirmed_error\";\n            break;\n          case n.UNABLE_TO_CONFIRM:\n            ub = \"confirm_error\";\n            break;\n          default:\n            return;\n        };\n        sa(sb, tb, ub);\n    };\n    function va(sb, tb) {\n        ((tb.message_counts || [])).forEach(function(cc) {\n            ka(sb, cc.last_action_id);\n        });\n        ((tb.threads || [])).forEach(function(cc) {\n            la(sb, cc);\n            delete sb._fetchingThreads[cc.thread_id];\n            var dc = oa(sb, cc.thread_id);\n            delete sb._fetchingThreads[dc];\n            ka(sb, cc.last_action_id);\n        });\n        ((tb.ordered_threadlists || [])).forEach(function(cc) {\n            cc.thread_ids = cc.thread_ids.map(qa.curry(sb));\n        });\n        tb.actions = (tb.actions || []);\n        tb.actions.forEach(function(cc) {\n            ua(sb, cc);\n            if (((cc.status && (cc.status != n.SUCCESS)) && !cc.thread_id)) {\n                cc.thread_id = cc.client_thread_id;\n                return;\n            }\n        ;\n            if ((((cc.action_type == m.SEND_MESSAGE) && cc.client_thread_id) && (cc.client_thread_id != r.PENDING_THREAD_ID))) {\n                ma(sb, cc.thread_id, cc.client_thread_id);\n            };\n            cc.server_thread_id = cc.thread_id;\n            cc.thread_id = (pa(sb, cc.thread_id) ? qa(sb, cc.thread_id) : null);\n            ka(sb, cc.action_id);\n        });\n        if (tb.end_of_history) {\n            var ub = [];\n            for (var vb = 0; (vb < tb.end_of_history.length); vb++) {\n                var wb = tb.end_of_history[vb];\n                if ((wb.type == \"user\")) {\n                    ub.push((\"user:\" + wb.id));\n                }\n                 else if (((wb.type == \"thread\") && pa(sb, wb.id))) {\n                    ub.push(qa(sb, wb.id));\n                }\n            ;\n            };\n            tb.end_of_history = ub;\n        }\n    ;\n        if (tb.roger) {\n            var xb = {\n            };\n            for (var yb in tb.roger) {\n                var zb = sb._serverToClientIDs.getResource(yb);\n                if (zb) {\n                    var ac = tb.roger[yb];\n                    xb[zb] = {\n                    };\n                    for (var bc in ac) {\n                        xb[zb][(\"fbid:\" + bc)] = ac[bc];;\n                    };\n                }\n            ;\n            };\n            tb.roger = xb;\n        }\n    ;\n    };\n    function wa(sb) {\n        if ((sb._pendingUpdates && sb._pendingUpdates.length)) {\n            var tb = sb._pendingUpdates[0];\n            sb._pendingUpdates = sb._pendingUpdates.slice(1);\n            sb.handleUpdate(tb);\n        }\n    ;\n    };\n    function xa(sb, tb) {\n        var ub = ga({\n        }, sb), vb;\n        if (tb.threads) {\n            if (!ub.threads) {\n                ub.threads = {\n                };\n            };\n            for (vb in tb.threads) {\n                ub.threads[vb] = Object.keys(ha(((ub.threads[vb] || [])).concat(tb.threads[vb])));;\n            };\n        }\n    ;\n        if (tb.messages) {\n            if (!ub.messages) {\n                ub.messages = {\n                };\n            };\n            for (vb in tb.messages) {\n                if (!ub.messages[vb]) {\n                    ub.messages[vb] = {\n                    };\n                };\n                for (var wb in tb.messages[vb]) {\n                    if (ub.messages[vb][wb]) {\n                        ub.messages[vb][wb] = ab(ub.messages[vb][wb], tb.messages[vb][wb]);\n                    }\n                     else ub.messages[vb][wb] = tb.messages[vb][wb];\n                ;\n                };\n            };\n        }\n    ;\n        ub.client = (sb.client || tb.client);\n        return ub;\n    };\n    function ya(sb, tb) {\n        var ub = ga(ha(sb.folders, true), ha(tb.folders, true)), vb = (sb.client || tb.client);\n        return {\n            folders: Object.keys(ub),\n            client: vb\n        };\n    };\n    function za(sb, tb) {\n        for (var ub in tb) {\n            if ((sb[ub] && (typeof sb[ub] === \"object\"))) {\n                sb[ub] = ab(sb[ub], tb[ub]);\n            }\n             else if ((tb[ub] && (typeof tb[ub] === \"object\"))) {\n                var vb = {\n                };\n                ga(vb, tb[ub]);\n                sb[ub] = vb;\n            }\n            \n        ;\n        };\n        return sb;\n    };\n    function ab(sb, tb) {\n        var ub = ((sb.offset < tb.offset) ? sb.offset : tb.offset), vb = (sb.offset + sb.limit), wb = (tb.offset + tb.limit), xb = (((vb > wb)) ? vb : wb), yb = (xb - ub);\n        return {\n            offset: ub,\n            limit: yb\n        };\n    };\n    function bb(sb, tb) {\n        var ub = (sb.client || tb.client), vb = {\n            ids: {\n            },\n            client: ub\n        };\n        ga(vb.ids, sb.ids);\n        ga(vb.ids, tb.ids);\n        return vb;\n    };\n    function cb(sb, tb) {\n        var ub = {\n        }, vb, wb = (sb.client || tb.client);\n        delete sb.client;\n        delete tb.client;\n        for (vb in sb) {\n            ga(ub, ha(sb[vb], vb));;\n        };\n        for (vb in tb) {\n            ga(ub, ha(tb[vb], vb));;\n        };\n        var xb = {\n            client: wb\n        };\n        for (var yb in ub) {\n            vb = ub[yb];\n            if (!xb[vb]) {\n                xb[vb] = [];\n            };\n            xb[vb].push(yb);\n        };\n        return xb;\n    };\n    function db(sb, tb) {\n        var ub = (sb.client || tb.client), vb = ha(sb.ids, true), wb = ha(tb.ids, true), xb = ga(vb, wb);\n        return {\n            ids: Object.keys(xb),\n            client: ub\n        };\n    };\n    function eb(sb) {\n        this._fbid = sb;\n        this._lastActionId = 0;\n        this._serverToClientIDs = new l();\n        this._clientToServerIDs = new l();\n        this._pendingUpdates = [];\n        this._fetchingThreads = {\n        };\n        this._newlyAddedClientIDs = {\n        };\n        qb(this);\n    };\n    ga(eb.prototype, g, {\n        tokenizeThreadID: function(sb) {\n            p.isThreadID(sb);\n            return t.tokenize(sb);\n        },\n        getServerThreadID: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, tb);\n        },\n        getClientThreadID: function(sb, tb) {\n            ra(this, sb, tb);\n        },\n        getClientThreadIDNow: function(sb) {\n            return qa(this, sb);\n        },\n        getServerThreadIDNow: function(sb) {\n            return oa(this, sb);\n        },\n        convertThreadIDIfAvailable: function(sb) {\n            var tb = this._serverToClientIDs.getResource(sb);\n            if ((tb === undefined)) {\n                return sb;\n            }\n             else return tb\n        ;\n        },\n        canLinkExternally: function(sb) {\n            p.isThreadID(sb);\n            var tb = this.tokenizeThreadID(sb);\n            return (((tb.type == \"user\")) || !!oa(this, sb));\n        },\n        fetchThreadlistInfo: function(sb, tb, ub, vb, wb) {\n            ub = (ub || ca.INBOX);\n            wb = (wb || ja);\n            var xb = (vb ? ea.IMMEDIATE : null), yb = {\n                client: wb\n            };\n            yb[ub] = {\n                offset: sb,\n                limit: tb,\n                filter: vb\n            };\n            rb(this, \"/ajax/mercury/threadlist_info.php\", yb, xb);\n        },\n        fetchUnseenThreadIDs: function(sb, tb) {\n            tb = (tb || ja);\n            this.fetchThreadlistInfo(y.RECENT_THREAD_OFFSET, y.JEWEL_THREAD_COUNT, sb, null, tb);\n        },\n        fetchUnreadThreadIDs: function(sb, tb) {\n            tb = (tb || ja);\n            rb(this, \"/ajax/mercury/unread_threads.php\", {\n                folders: [sb,],\n                client: tb\n            });\n        },\n        fetchMissedMessages: function(sb, tb) {\n            tb = (tb || ja);\n            rb(this, \"/ajax/mercury/thread_sync.php\", {\n                last_action_id: this._lastActionId,\n                folders: sb,\n                client: tb\n            });\n        },\n        fetchThreadData: function(sb, tb) {\n            tb = (tb || ja);\n            p.allThreadID(sb);\n            var ub = {\n                threads: {\n                },\n                client: tb\n            }, vb = [], wb = [];\n            sb.forEach(function(yb) {\n                if (this._fetchingThreads[yb]) {\n                    return\n                };\n                this._fetchingThreads[yb] = true;\n                var zb = oa(this, yb);\n                if (zb) {\n                    wb.push(zb);\n                    ub.threads.thread_ids = wb;\n                }\n                 else {\n                    var ac = this.tokenizeThreadID(yb);\n                    if ((ac.type == \"user\")) {\n                        vb.push(ac.value);\n                        ub.threads.user_ids = vb;\n                    }\n                     else if ((ac.type == \"thread\")) {\n                        wb.push(ac.value);\n                        ub.threads.thread_ids = wb;\n                    }\n                     else if (((ac.type != \"root\") && (ac.type != \"pending\"))) {\n                        throw new Error(\"Unknown thread type\", ac)\n                    }\n                    \n                ;\n                }\n            ;\n            }.bind(this));\n            this.inform(\"fetch-thread-data\", ub);\n            for (var xb in ub.threads) {\n                rb(this, \"/ajax/mercury/thread_info.php\", ub);\n                break;\n            };\n        },\n        ensureThreadIsFetched: function(sb, tb) {\n            tb = (tb || ja);\n            if ((!this._serverToClientIDs.getResource(sb) && !this._fetchingThreads[sb])) {\n                this._fetchingThreads[sb] = true;\n                rb(this, \"/ajax/mercury/thread_info.php\", {\n                    threads: {\n                        thread_ids: [sb,]\n                    },\n                    client: tb\n                });\n            }\n        ;\n        },\n        fetchThreadMessages: function(sb, tb, ub, vb, wb) {\n            p.isThreadID(sb);\n            wb = (wb || ja);\n            var xb, yb, zb = this.tokenizeThreadID(sb), ac = oa(this, sb), bc = false;\n            if ((ac && (zb.type != \"group\"))) {\n                yb = \"thread_ids\";\n                xb = ac;\n            }\n             else {\n                xb = zb.value;\n                switch (zb.type) {\n                  case \"user\":\n                    yb = \"user_ids\";\n                    bc = true;\n                    break;\n                  case \"group\":\n                    yb = \"group_ids\";\n                    break;\n                  case \"thread\":\n                    yb = \"thread_ids\";\n                    break;\n                };\n            }\n        ;\n            var cc = {\n                messages: {\n                },\n                threads: {\n                },\n                client: wb\n            };\n            if (yb) {\n                cc.messages[yb] = {\n                };\n                cc.messages[yb][xb] = {\n                    offset: tb,\n                    limit: ub\n                };\n                if (bc) {\n                    cc.threads[yb] = [xb,];\n                };\n                rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n            }\n             else na(this, sb, function(dc) {\n                cc.messages.thread_ids = {\n                };\n                cc.messages.thread_ids[dc] = {\n                    offset: tb,\n                    limit: ub\n                };\n                rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n            }.bind(this));\n        ;\n        },\n        handleThreadInfoError: function(sb) {\n            var tb = sb.getRequest().getData(), ub = [];\n            if (tb.messages) {\n                for (var vb in tb.messages.thread_ids) {\n                    ub.push(fb(qa(this, vb)));;\n                };\n                for (var wb in tb.messages.user_ids) {\n                    ub.push(fb((\"user:\" + wb)));;\n                };\n                for (var xb in tb.messages.group_ids) {\n                    ub.push(fb((\"group:\" + xb)));;\n                };\n            }\n        ;\n            if (ub.length) {\n                this.handleUpdate({\n                    actions: ub,\n                    from_client: true,\n                    payload_source: v.CLIENT_CHANNEL_MESSAGE\n                });\n            };\n            if ((tb.threads && (((tb.threads.user_ids || tb.threads.group_ids) || tb.threads.thread_ids)))) {\n                var yb = 5, zb = true;\n                if (!tb.retry_count) {\n                    tb.retry_count = 0;\n                    if (tb.messages) {\n                        delete tb.messages;\n                    };\n                }\n                 else if ((tb.retry_count >= yb)) {\n                    zb = false;\n                    ((tb.threads.thread_ids || [])).forEach(function(bc) {\n                        if ((bc in this._fetchingThreads)) {\n                            delete this._fetchingThreads[bc];\n                        };\n                    }.bind(this));\n                }\n                \n            ;\n                if (zb) {\n                    var ac = (tb.retry_count * 1000);\n                    (function() {\n                        ia.log(\"retry_thread\", tb);\n                        rb(this, \"/ajax/mercury/thread_info.php\", tb);\n                    }.bind(this)).defer(ac, false);\n                    tb.retry_count++;\n                }\n            ;\n            }\n        ;\n        },\n        markFolderAsRead: function(sb) {\n            rb(this, \"/ajax/mercury/mark_folder_as_read.php\", {\n                folder: sb\n            });\n            var tb = [{\n                action_type: s.MARK_ALL_READ,\n                action_id: null,\n                folder: sb\n            },];\n            this.handleUpdate({\n                global_actions: tb,\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_READ_STATUS\n            });\n        },\n        changeThreadReadStatus: function(sb, tb, ub) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                var xb = {\n                    ids: {\n                    }\n                };\n                xb.ids[wb] = tb;\n                rb(this, \"/ajax/mercury/change_read_status.php\", xb);\n            }.bind(this));\n            var vb = [{\n                action_type: m.CHANGE_READ_STATUS,\n                action_id: null,\n                thread_id: sb,\n                mark_as_read: tb,\n                folder: ub\n            },];\n            this.handleUpdate({\n                actions: vb,\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_READ_STATUS\n            });\n        },\n        changeThreadArchivedStatus: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                var xb = {\n                    ids: {\n                    }\n                };\n                xb.ids[wb] = tb;\n                rb(this, \"/ajax/mercury/change_archived_status.php\", xb);\n            }.bind(this));\n            var ub = {\n                action_type: m.CHANGE_ARCHIVED_STATUS,\n                action_id: null,\n                thread_id: sb,\n                archived: tb\n            }, vb = {\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_ARCHIVED_STATUS\n            };\n            this.handleUpdate(vb);\n        },\n        changeThreadFolder: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                var xb = {\n                };\n                xb[tb] = [wb,];\n                rb(this, \"/ajax/mercury/move_thread.php\", xb);\n            }.bind(this));\n            var ub = {\n                action_type: m.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: sb,\n                new_folder: tb\n            }, vb = {\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_FOLDER\n            };\n            this.handleUpdate(vb);\n        },\n        changeMutingOnThread: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                rb(this, \"/ajax/mercury/change_mute_thread.php\", {\n                    thread_id: wb,\n                    mute_settings: tb,\n                    payload_source: ja\n                });\n            }.bind(this));\n            var ub = {\n                action_type: m.CHANGE_MUTE_SETTINGS,\n                action_id: null,\n                thread_id: sb,\n                mute_settings: tb\n            }, vb = {\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_MUTE_SETTINGS\n            };\n            this.handleUpdate(vb);\n        },\n        markThreadSpam: function(sb) {\n            p.isThreadID(sb);\n            na(this, sb, function(vb) {\n                rb(this, \"/ajax/mercury/mark_spam.php\", {\n                    id: vb\n                });\n            }.bind(this));\n            var tb = {\n                action_type: m.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: sb,\n                new_folder: ca.SPAM\n            }, ub = {\n                actions: [tb,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_FOLDER\n            };\n            this.handleUpdate(ub);\n        },\n        markMessagesSpam: function(sb, tb) {\n            z.getServerIDs((tb || []), function(vb) {\n                rb(this, \"/ajax/mercury/mark_spam_messages.php\", {\n                    message_ids: vb\n                });\n            }.bind(this));\n            var ub = {\n                action_type: m.DELETE_MESSAGES,\n                action_id: null,\n                thread_id: sb,\n                message_ids: tb\n            };\n            this.handleUpdate({\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_DELETE_MESSAGES\n            });\n        },\n        unmarkThreadSpam: function(sb) {\n            p.isThreadID(sb);\n            na(this, sb, function(vb) {\n                rb(this, \"/ajax/mercury/unmark_spam.php\", {\n                    id: vb\n                });\n            }.bind(this));\n            var tb = {\n                action_type: m.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: sb,\n                new_folder: ca.INBOX\n            }, ub = {\n                actions: [tb,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_FOLDER\n            };\n            this.handleUpdate(ub);\n        },\n        deleteThread: function(sb) {\n            p.isThreadID(sb);\n            na(this, sb, function(vb) {\n                var wb = {\n                    ids: [vb,]\n                };\n                rb(this, \"/ajax/mercury/delete_thread.php\", wb);\n            }.bind(this));\n            var tb = {\n                action_type: m.DELETE_THREAD,\n                action_id: null,\n                thread_id: sb\n            }, ub = {\n                actions: [tb,],\n                from_client: true,\n                payload_source: v.CLIENT_DELETE_THREAD\n            };\n            this.handleUpdate(ub);\n        },\n        deleteMessages: function(sb, tb, ub) {\n            z.getServerIDs((tb || []), function(wb) {\n                rb(this, \"/ajax/mercury/delete_messages.php\", {\n                    message_ids: wb\n                });\n            }.bind(this));\n            var vb;\n            if (ub) {\n                vb = {\n                    action_type: m.DELETE_THREAD,\n                    action_id: null,\n                    thread_id: sb\n                };\n            }\n             else vb = {\n                action_type: m.DELETE_MESSAGES,\n                action_id: null,\n                thread_id: sb,\n                message_ids: tb\n            };\n        ;\n            this.handleUpdate({\n                actions: [vb,],\n                from_client: true,\n                payload_source: v.CLIENT_DELETE_MESSAGES\n            });\n        },\n        clearChat: function(sb, tb, ub) {\n            p.isThreadID(sb);\n            rb(this, \"/ajax/chat/settings.php\", {\n                clear_history_id: tb\n            });\n            var vb = [{\n                action_type: m.CLEAR_CHAT,\n                action_id: null,\n                thread_id: sb,\n                clear_time: ub\n            },];\n            this.handleUpdate({\n                actions: vb,\n                from_client: true,\n                payload_source: v.CLIENT_CLEAR_CHAT\n            });\n        },\n        sendNewMessage: function(sb, tb) {\n            tb = (tb || ja);\n            if (!sb.do_not_send_to_server) {\n                z.getServerIDs((sb.forward_message_ids || []), function(vb) {\n                    var wb = sb.thread_id, xb = this.tokenizeThreadID(sb.thread_id), yb = xb.type, zb = ga({\n                    }, sb);\n                    zb.forward_message_ids = vb;\n                    if ((((((yb == \"root\") && (xb.value == zb.message_id))) || (((yb == \"user\") && !oa(this, wb)))) || ((sb.thread_id == r.PENDING_THREAD_ID)))) {\n                        zb.client_thread_id = zb.thread_id;\n                        zb.thread_id = null;\n                        this._sendNewMessageToServer(zb, tb);\n                    }\n                     else na(this, zb.thread_id, function(ac) {\n                        zb.thread_id = ac;\n                        this._sendNewMessageToServer(zb);\n                    }.bind(this));\n                ;\n                }.bind(this));\n            };\n            if ((sb.thread_id != r.PENDING_THREAD_ID)) {\n                var ub = {\n                    actions: [ga({\n                    }, sb),],\n                    from_client: true,\n                    payload_source: v.CLIENT_SEND_MESSAGE\n                };\n                this.handleUpdate(ub);\n            }\n        ;\n        },\n        _sendNewMessageToServer: function(sb, tb) {\n            tb = (tb || ja);\n            rb(this, \"/ajax/mercury/send_messages.php\", {\n                message_batch: [sb,],\n                client: tb\n            });\n        },\n        requestMessageConfirmation: function(sb, tb) {\n            tb = (tb || ja);\n            var ub = {\n            }, vb = {\n            };\n            for (var wb in sb) {\n                var xb = oa(this, wb);\n                if (xb) {\n                    ub[xb] = sb[wb];\n                }\n                 else {\n                    var yb = sb[wb];\n                    for (var zb = 0; (zb < yb.length); zb++) {\n                        vb[yb[zb]] = wb;;\n                    };\n                }\n            ;\n            };\n            var ac = Object.keys(ub), bc = Object.keys(vb);\n            if ((ac.length || bc.length)) {\n                rb(this, \"/ajax/mercury/confirm_messages.php\", {\n                    thread_message_map: ub,\n                    local_messages: vb,\n                    client: tb\n                });\n            };\n        },\n        handleMessageConfirmError: function(sb) {\n            var tb = sb.getRequest().getData().thread_message_map, ub = sb.getRequest().getData().local_messages;\n            if ((!tb && !ub)) {\n                return\n            };\n            var vb = [];\n            for (var wb in tb) {\n                var xb = tb[wb];\n                xb.forEach(function(ac) {\n                    vb.push({\n                        action_type: m.SEND_MESSAGE,\n                        client_message_id: ac,\n                        message_id: ac,\n                        client_thread_id: null,\n                        thread_id: wb,\n                        status: n.UNABLE_TO_CONFIRM\n                    });\n                });\n            };\n            for (var yb in ub) {\n                var zb = ub[yb];\n                vb.push({\n                    action_type: m.SEND_MESSAGE,\n                    client_message_id: yb,\n                    message_id: yb,\n                    client_thread_id: zb,\n                    thread_id: null,\n                    status: n.UNABLE_TO_CONFIRM\n                });\n            };\n            if (vb.length) {\n                this.handleUpdate({\n                    actions: vb,\n                    payload_source: v.CLIENT_HANDLE_ERROR\n                });\n            };\n        },\n        markSeen: function() {\n            var sb = i.convertActionIDToTimestamp(this._lastActionId);\n            rb(this, \"/ajax/mercury/mark_seen.php\", {\n                seen_timestamp: sb\n            });\n        },\n        handleRoger: function(sb) {\n            var tb = (sb.tid ? this._serverToClientIDs.getResource(sb.tid) : ((\"user:\" + sb.reader)));\n            if (tb) {\n                var ub = {\n                };\n                ub[tb] = {\n                };\n                ub[tb][(\"fbid:\" + sb.reader)] = sb.time;\n                this.inform(\"update-roger\", ub);\n            }\n        ;\n        },\n        handleUpdateWaitForThread: function(sb, tb, ub) {\n            ub = (ub || ja);\n            var vb = this._serverToClientIDs.getResource(tb);\n            if (vb) {\n                this.handleUpdate(sb);\n                return;\n            }\n        ;\n            this._serverToClientIDs.executeOrEnqueue(tb, function() {\n                this._pendingUpdates.push(sb);\n            }.bind(this));\n            if (!this._fetchingThreads[tb]) {\n                this._fetchingThreads[tb] = true;\n                rb(this, \"/ajax/mercury/thread_info.php\", {\n                    threads: {\n                        thread_ids: [tb,]\n                    },\n                    client: ub\n                });\n            }\n        ;\n        },\n        handleUpdate: function(sb) {\n            var tb = [];\n            if ((sb && sb.threads)) {\n                for (var ub = 0; (ub < sb.threads.length); ub++) {\n                    if (!sb.threads[ub].snippet_attachments) {\n                        continue;\n                    };\n                    for (var vb = 0; (vb < sb.threads[ub].snippet_attachments.length); vb++) {\n                        if (sb.threads[ub].snippet_attachments[vb].share_xhp) {\n                            tb.push({\n                                i: ub,\n                                j: vb,\n                                xhp: sb.threads[ub].snippet_attachments[vb].share_xhp\n                            });\n                            sb.threads[ub].snippet_attachments[vb].share_xhp = ((\"HTMLDivElement not shown: object contains circular \" + \"reference, which was breaking JSON.stringify. \") + \"Look at MercuryServerRequests.handleUpdate\");\n                        }\n                    ;\n                    };\n                }\n            };\n            ia.debug(\"handle_update\", {\n                payload: sb,\n                from_client: sb.from_client\n            });\n            for (var wb = 0; (wb < tb.length); wb++) {\n                sb.threads[tb[wb].i].snippet_attachments[tb[wb].j].share_xhp = tb[wb].xhp;;\n            };\n            for (wb in sb) {\n                fa.getForFBID(this._fbid).synchronizeInforms(function() {\n                    if (!sb.from_client) {\n                        va(this, sb);\n                        this.inform(\"payload-preprocessed\", sb);\n                    }\n                ;\n                    this.inform(\"update-thread-ids\", this._newlyAddedClientIDs);\n                    this._newlyAddedClientIDs = {\n                    };\n                    this.inform(\"update-participants\", sb);\n                    this.inform(\"update-threads\", sb);\n                    this.inform(\"update-unread\", sb);\n                    this.inform(\"update-threadlist\", sb);\n                    this.inform(\"update-messages\", sb);\n                    this.inform(\"update-unseen\", sb);\n                    this.inform(\"update-typing-state\", sb);\n                    this.inform(\"update-roger\", sb.roger);\n                    this.inform(\"model-update-completed\", null);\n                    wa(this);\n                }.bind(this));\n                break;\n            };\n        },\n        _handleSendMessageErrorCommon: function(sb, tb, ub, vb) {\n            ia.debug(\"handle_send_message_error_common\", {\n                reliability_error_status: ub,\n                request_error_status: tb\n            });\n            var wb = sb.getData(), xb = wb.message_batch, yb = xb.map(function(ac) {\n                return {\n                    action_type: m.SEND_MESSAGE,\n                    client_message_id: ac.message_id,\n                    message_id: ac.message_id,\n                    client_thread_id: ac.client_thread_id,\n                    thread_id: ac.thread_id,\n                    status: tb,\n                    error_data: vb\n                };\n            });\n            yb.forEach(function(ac) {\n                sa(this, ac, ub);\n            }.bind(this));\n            var zb = {\n                actions: yb,\n                payload_source: v.CLIENT_HANDLE_ERROR\n            };\n            this.handleUpdate(zb);\n        },\n        handleSendMessageError: function(sb) {\n            var tb = sb.getPayload(), ub = null, vb = null;\n            if ((tb && tb.error_payload)) {\n                ub = n.UNCONFIRMED;\n                vb = \"send_error\";\n            }\n             else {\n                ub = n.ERROR;\n                vb = (\"request_error\" + ta(sb));\n            }\n        ;\n            var wb = sb.error;\n            if ((wb === 1404102)) {\n                h.verboseErrorHandler(sb);\n            };\n            var xb = (/<.*>/.test(sb.getErrorDescription()) ? sb.getErrorSummary() : sb.getErrorDescription());\n            this._handleSendMessageErrorCommon(sb.getRequest(), ub, vb, {\n                type: q.SERVER,\n                code: sb.getError(),\n                description: xb,\n                is_transient: sb.isTransient()\n            });\n        },\n        handleSendMessageTransportError: function(sb) {\n            this._handleSendMessageErrorCommon(sb.getRequest(), n.ERROR, (\"transport_error\" + ta(sb)), {\n                type: q.TRANSPORT,\n                code: sb.getError(),\n                is_transient: true\n            });\n        },\n        handleSendMessageTimeout: function(sb) {\n            this._handleSendMessageErrorCommon(sb, n.ERROR, \"transport_timeout\", {\n                type: q.TIMEOUT,\n                is_transient: true\n            });\n        },\n        getLastActionID: function() {\n            return this._lastActionId;\n        }\n    });\n    ga(eb, da);\n    function fb(sb) {\n        return {\n            action_type: m.LOG_MESSAGE,\n            thread_id: sb,\n            message_id: sb,\n            timestamp: Date.now(),\n            timestamp_absolute: \"\",\n            timestamp_relative: \"\",\n            is_unread: false,\n            source: x.UNKNOWN,\n            log_message_type: u.SERVER_ERROR,\n            log_message_data: {\n            }\n        };\n    };\n    function gb(sb) {\n        var tb = sb.getData(), ub = (tb.request_user_id ? tb.request_user_id : j.user);\n        return eb.getForFBID(ub);\n    };\n    function hb(sb, tb) {\n        gb(tb).handleUpdate(sb);\n    };\n    function ib(sb, tb) {\n        var ub = (sb.client || tb.client);\n        return {\n            client: ub,\n            message_batch: sb.message_batch.concat(tb.message_batch)\n        };\n    };\n    function jb(sb, tb) {\n        var ub = {\n        };\n        ga(ub, sb.ids);\n        ga(ub, tb.ids);\n        var vb = (sb.client || tb.client);\n        return {\n            ids: ub,\n            client: vb\n        };\n    };\n    function kb(sb, tb) {\n        return tb;\n    };\n    function lb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleThreadInfoError(sb);\n    };\n    function mb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleSendMessageError(sb);\n    };\n    function nb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleSendMessageTransportError(sb);\n    };\n    function ob(sb) {\n        var tb = gb(sb);\n        tb.handleSendMessageTimeout(sb);\n    };\n    function pb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleMessageConfirmError(sb);\n    };\n    function qb(sb) {\n        ea.registerEndpoints({\n            \"/ajax/mercury/thread_sync.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IDEMPOTENT,\n                handler: hb\n            },\n            \"/ajax/mercury/thread_info.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_DEFERRED_MULTI,\n                batch_function: xa,\n                handler: hb,\n                error_handler: lb\n            },\n            \"/ajax/mercury/mark_folder_as_read.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/change_read_status.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: jb,\n                handler: hb\n            },\n            \"/ajax/mercury/send_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: ib,\n                batch_size_limit: aa.SEND_BATCH_LIMIT,\n                handler: hb,\n                error_handler: mb,\n                transport_error_handler: nb,\n                timeout: w.sendMessageTimeout,\n                timeout_handler: ob,\n                connection_retries: aa.SEND_CONNECTION_RETRIES\n            },\n            \"/ajax/mercury/mark_seen.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: kb,\n                handler: hb\n            },\n            \"/ajax/mercury/confirm_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb,\n                error_handler: pb\n            },\n            \"/ajax/mercury/threadlist_info.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n                batch_function: za,\n                handler: hb\n            },\n            \"/ajax/mercury/mark_spam.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/mark_spam_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/unmark_spam.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/unread_threads.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n                batch_function: ya,\n                handler: hb\n            },\n            \"/ajax/chat/settings.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE\n            },\n            \"/ajax/mercury/change_archived_status.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: bb,\n                handler: hb\n            },\n            \"/ajax/mercury/delete_thread.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: db,\n                handler: hb\n            },\n            \"/ajax/mercury/delete_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/move_thread.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: cb,\n                handler: hb\n            },\n            \"/ajax/mercury/change_mute_thread.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            }\n        });\n    };\n    function rb(sb, tb, ub, vb) {\n        ea.trySend(tb, ub, vb, sb._fbid);\n    };\n    e.exports = eb;\n});\n__d(\"MercuryParticipants\", [\"Env\",\"ImageSourceRequest\",\"ImageSourceType\",\"MercuryAssert\",\"MercuryIDs\",\"MercuryParticipantTypes\",\"MercuryParticipantsConstants\",\"PhotoResizeModeConst\",\"MercuryServerRequests\",\"ShortProfiles\",\"copyProperties\",\"getObjectValues\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"ImageSourceRequest\"), i = b(\"ImageSourceType\"), j = b(\"MercuryAssert\"), k = b(\"MercuryIDs\"), l = b(\"MercuryParticipantTypes\"), m = b(\"MercuryParticipantsConstants\"), n = b(\"PhotoResizeModeConst\"), o = b(\"MercuryServerRequests\").get(), p = b(\"ShortProfiles\"), q = b(\"copyProperties\"), r = b(\"getObjectValues\"), s = b(\"tx\"), t = (\"fbid:\" + g.user), u = {\n    }, v = {\n    }, w = function(ba) {\n        ba = z(ba);\n        if (u[ba.id]) {\n            q(u[ba.id], ba);\n        }\n         else u[ba.id] = q({\n        }, ba);\n    ;\n        if (ba.vanity) {\n            v[ba.vanity] = ba.id;\n        };\n    };\n    function x(ba) {\n        j.isEmailParticipantID(ba);\n        var ca = k.tokenize(ba), da = ca.value;\n        return {\n            gender: m.UNKNOWN_GENDER,\n            href: null,\n            id: ba,\n            image_src: m.EMAIL_IMAGE,\n            big_image_src: m.EMAIL_IMAGE,\n            name: da,\n            short_name: da,\n            employee: false,\n            call_promo: false\n        };\n    };\n    function y(ba, ca, da) {\n        j.allParticipantIDs(ba);\n        var ea = {\n        }, fa = {\n        };\n        ba.forEach(function(ha) {\n            if ((u[ha] && !da)) {\n                ea[ha] = q({\n                }, u[ha]);\n            }\n             else {\n                var ia = k.tokenize(ha);\n                if ((ia.type == \"fbid\")) {\n                    var ja = ia.value;\n                    fa[ha] = ja;\n                }\n                 else if ((ia.type == \"email\")) {\n                    ea[ha] = x(ha);\n                }\n            ;\n            }\n        ;\n        });\n        var ga = r(fa);\n        if (ga.length) {\n            p.getMulti(ga, function(ha) {\n                for (var ia in fa) {\n                    var ja = fa[ia], ka = ha[ja];\n                    ea[ia] = {\n                        gender: ka.gender,\n                        href: ka.uri,\n                        id: ia,\n                        image_src: ka.thumbSrc,\n                        name: ka.name,\n                        short_name: ka.firstName,\n                        employee: ka.employee,\n                        call_promo: ka.showVideoPromo,\n                        type: ka.type,\n                        vanity: ka.vanity,\n                        is_friend: ka.is_friend,\n                        social_snippets: ka.social_snippets\n                    };\n                    w(ea[ia]);\n                };\n                ca(ea);\n            });\n        }\n         else ca(ea);\n    ;\n    };\n    function z(ba) {\n        var ca = ((ba.type === l.USER) || (ba.type === l.FRIEND));\n        if (!ca) {\n            return ba\n        };\n        if (((!ba.name && !ba.href) && !ba.vanity)) {\n            var da = \"Facebook User\";\n            ba.name = da;\n            ba.short_name = da;\n        }\n    ;\n        return ba;\n    };\n    var aa = {\n        user: t,\n        isAuthor: function(ba) {\n            return (ba === t);\n        },\n        getIDFromVanityOrFBID: function(ba) {\n            if (!ba) {\n                return\n            };\n            if (v[ba]) {\n                return v[ba]\n            };\n            if (ba.match(\"^\\\\d+$\")) {\n                return aa.getIDForUser(ba)\n            };\n        },\n        getNow: function(ba) {\n            return u[ba];\n        },\n        get: function(ba, ca) {\n            j.isParticipantID(ba);\n            aa.getMulti([ba,], function(da) {\n                ca(da[ba]);\n            });\n        },\n        getMulti: function(ba, ca, da) {\n            return y(ba, ca, false);\n        },\n        getBigImageMulti: function(ba, ca) {\n            j.allParticipantIDs(ba);\n            var da = m.BIG_IMAGE_SIZE;\n            aa.getMulti(ba, function(ea) {\n                var fa = {\n                }, ga = 0, ha = function(la, ma) {\n                    ga++;\n                    fa[la] = ma;\n                    if ((ga === ba.length)) {\n                        ca(fa);\n                    };\n                }, ia = function(la, ma) {\n                    u[la].big_image_src = ma.uri;\n                    ha(la, ma.uri);\n                };\n                for (var ja in ea) {\n                    var ka = ea[ja];\n                    if (!ka.big_image_src) {\n                        new h().setFBID(aa.getUserID(ja)).setType(i.PROFILE_PICTURE).setDimensions(da, da).setResizeMode(n.COVER).setCallback(ia.curry(ja)).send();\n                    }\n                     else ha(ka.id, ka.big_image_src);\n                ;\n                };\n            });\n        },\n        getOrderedBigImageMulti: function(ba, ca) {\n            aa.getBigImageMulti(ba, function(da) {\n                var ea = ba.map(function(fa) {\n                    return da[fa];\n                });\n                ca(ea);\n            });\n        },\n        getMultiForceDownload: function(ba, ca) {\n            return y(ba, ca, true);\n        },\n        getUserID: function(ba) {\n            return k.getUserIDFromParticipantID(ba);\n        },\n        getIDForUser: function(ba) {\n            return (\"fbid:\" + ba);\n        },\n        addParticipants: function(ba) {\n            ba.forEach(w);\n        }\n    };\n    o.subscribe(\"update-participants\", function(ba, ca) {\n        aa.addParticipants((ca.participants || []));\n    });\n    e.exports = aa;\n});\n__d(\"RangedCallbackManager\", [\"CallbackManagerController\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackManagerController\"), h = b(\"copyProperties\"), i = b(\"createObjectFrom\"), j = function(k, l, m) {\n        this._resources = [];\n        this._reachedEndOfArray = false;\n        this._error = false;\n        this._existingIDs = {\n        };\n        this._controller = new g(this._constructCallbackArg.bind(this));\n        this._getValueHandler = k;\n        this._compareValuesHandler = l;\n        this._skipOnStrictHandler = m;\n    };\n    h(j.prototype, {\n        executeOrEnqueue: function(k, l, m, n) {\n            return this._controller.executeOrEnqueue({\n                start: k,\n                limit: l\n            }, m, {\n                strict: !!n\n            });\n        },\n        unsubscribe: function(k) {\n            this._controller.unsubscribe(k);\n        },\n        getUnavailableResources: function(k) {\n            var l = this._controller.getRequest(k), m = [];\n            if ((l && !this._reachedEndOfArray)) {\n                var n = l.request, o = this._filterForStrictResults(l.options), p = (n.start + n.limit);\n                for (var q = o.length; (q < p); q++) {\n                    m.push(q);;\n                };\n            }\n        ;\n            return m;\n        },\n        addResources: function(k) {\n            k.forEach(function(l) {\n                if (!this._existingIDs[l]) {\n                    this._existingIDs[l] = true;\n                    this._resources.push(l);\n                    this._error = null;\n                }\n            ;\n            }.bind(this));\n            this.resortResources();\n            this._controller.runPossibleCallbacks();\n        },\n        addResourcesWithoutSorting: function(k, l) {\n            var m = this._resources.slice(0, l);\n            m = m.concat(k);\n            m = m.concat(this._resources.slice(l));\n            this._resources = m;\n            h(this._existingIDs, i(k, true));\n            this._error = null;\n            this._controller.runPossibleCallbacks();\n        },\n        removeResources: function(k) {\n            k.forEach(function(l) {\n                if (this._existingIDs[l]) {\n                    this._existingIDs[l] = false;\n                    var m = this._resources.indexOf(l);\n                    if ((m != -1)) {\n                        this._resources.splice(m, 1);\n                    };\n                }\n            ;\n            }.bind(this));\n        },\n        removeAllResources: function() {\n            this._resources = [];\n            this._existingIDs = {\n            };\n        },\n        resortResources: function() {\n            this._resources = this._resources.sort(function(k, l) {\n                return this._compareValuesHandler(this._getValueHandler(k), this._getValueHandler(l));\n            }.bind(this));\n        },\n        setReachedEndOfArray: function() {\n            if (!this._reachedEndOfArray) {\n                this._reachedEndOfArray = true;\n                this._error = null;\n                this._controller.runPossibleCallbacks();\n            }\n        ;\n        },\n        hasReachedEndOfArray: function() {\n            return this._reachedEndOfArray;\n        },\n        setError: function(k) {\n            if ((this._error !== k)) {\n                this._error = k;\n                this._controller.runPossibleCallbacks();\n            }\n        ;\n        },\n        getError: function(k, l, m) {\n            var n = this._filterForStrictResults({\n                strict: m\n            });\n            return (((k + l) > n.length) ? this._error : null);\n        },\n        hasResource: function(k) {\n            return this._existingIDs[k];\n        },\n        getResourceAtIndex: function(k) {\n            return this._resources[k];\n        },\n        getAllResources: function() {\n            return this._resources.concat();\n        },\n        getCurrentArraySize: function() {\n            return this._resources.length;\n        },\n        _filterForStrictResults: function(k) {\n            var l = this._resources;\n            if (((k && k.strict) && this._skipOnStrictHandler)) {\n                l = l.filter(this._skipOnStrictHandler);\n            };\n            return l;\n        },\n        _constructCallbackArg: function(k, l) {\n            var m = this._filterForStrictResults(l);\n            if (((!this._reachedEndOfArray && !this._error) && ((k.start + k.limit) > m.length))) {\n                return false;\n            }\n             else {\n                var n = m.slice(k.start, (k.start + k.limit)), o = (((k.start + k.limit) > m.length) ? this._error : null);\n                return [n,o,];\n            }\n        ;\n        },\n        getElementsUntil: function(k) {\n            var l = [];\n            for (var m = 0; (m < this._resources.length); m++) {\n                var n = this._getValueHandler(this._resources[m]);\n                if ((this._compareValuesHandler(n, k) > 0)) {\n                    break;\n                };\n                l.push(this._resources[m]);\n            };\n            return l;\n        }\n    });\n    e.exports = j;\n});\n__d(\"MercuryFolders\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.INBOX,g.OTHER,g.ACTION_ARCHIVED,g.SPAM,], j = {\n        getSupportedFolders: function() {\n            return i.concat();\n        },\n        isSupportedFolder: function(k) {\n            return h(i, k);\n        },\n        getFromMeta: function(k) {\n            var l = k.folder;\n            if (k.is_archived) {\n                l = g.ACTION_ARCHIVED;\n            };\n            return l;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryAttachment\", [\"MercuryAttachmentContentType\",\"MercuryAttachmentType\",\"startsWith\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAttachmentContentType\"), h = b(\"MercuryAttachmentType\"), i = b(\"startsWith\"), j = {\n        getAttachIconClass: function(k) {\n            switch (k) {\n              case g.PHOTO:\n                return \"MercuryPhotoIcon\";\n              case g.VIDEO:\n                return \"MercuryVideoIcon\";\n              case g.MUSIC:\n                return \"MercuryMusicIcon\";\n              case g.VOICE:\n                return \"MercuryVoiceIcon\";\n              case g.TEXT:\n                return \"MercuryTextIcon\";\n              case g.MSWORD:\n                return \"MercuryMSWordIcon\";\n              case g.MSXLS:\n                return \"MercuryMSXLSIcon\";\n              case g.MSPPT:\n                return \"MercuryMSPPTIcon\";\n            };\n            return \"MercuryDefaultIcon\";\n        },\n        getAttachIconClassByMime: function(k) {\n            if (i(k, \"image\")) {\n                return \"MercuryPhotoIcon\";\n            }\n             else if (i(k, \"video\")) {\n                return \"MercuryVideoIcon\";\n            }\n             else if (i(k, \"audio\")) {\n                return \"MercuryMusicIcon\";\n            }\n             else if (i(k, \"text/plain\")) {\n                return \"MercuryTextIcon\";\n            }\n             else return \"MercuryDefaultIcon\"\n            \n            \n            \n        ;\n        },\n        getAttachTypeByMime: function(k) {\n            if (i(k, \"image\")) {\n                return g.PHOTO;\n            }\n             else if (i(k, \"video\")) {\n                return g.VIDEO;\n            }\n             else if (i(k, \"audio\")) {\n                return g.MUSIC;\n            }\n             else if (i(k, \"text/plain\")) {\n                return g.TEXT;\n            }\n             else return g.UNKNOWN\n            \n            \n            \n        ;\n        },\n        convertRaw: function(k) {\n            var l = [];\n            for (var m = 0; (m < k.length); m++) {\n                var n = k[m];\n                if ((n.attach_type === h.PHOTO)) {\n                    l.push(n);\n                }\n                 else if (n.filename) {\n                    var o = j.getAttachTypeByMime(n.filetype), p = {\n                    };\n                    p.attach_type = h.FILE;\n                    p.name = n.filename;\n                    p.icon_type = o;\n                    p.url = \"\";\n                    if ((o == g.PHOTO)) {\n                        p.preview_loading = true;\n                    };\n                    l.push(p);\n                }\n                \n            ;\n            };\n            return l;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryThreads\", [\"Arbiter\",\"TimestampConverter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryAssert\",\"MercuryAttachment\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercurySingletonMixin\",\"MercuryThreadMode\",\"MessagingTag\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"MercuryFolders\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryAssert\"), n = b(\"MercuryAttachment\"), o = b(\"MercuryGlobalActionType\"), p = b(\"MercuryIDs\"), q = b(\"MercuryLogMessageType\"), r = b(\"MercurySingletonMixin\"), s = b(\"MercuryThreadMode\"), t = b(\"MessagingTag\"), u = b(\"MercuryParticipants\"), v = b(\"MercuryServerRequests\"), w = b(\"MercuryThreadInformer\"), x = b(\"copyProperties\"), y = b(\"createObjectFrom\"), z = b(\"removeFromArray\"), aa = j.create(\"mercury_threads\");\n    function ba(na, oa, pa) {\n        var qa = y(oa.participants, true), ra = u.getIDForUser(na._fbid);\n        pa.forEach(function(sa) {\n            if ((qa[sa] !== true)) {\n                oa.participants.push(sa);\n                if ((sa === ra)) {\n                    oa.is_subscribed = true;\n                };\n            }\n        ;\n        });\n    };\n    function ca(na, oa, pa) {\n        z(oa.participants, pa);\n        if ((pa === u.getIDForUser(na._fbid))) {\n            oa.is_subscribed = false;\n        };\n    };\n    function da(na, oa) {\n        if ((na.participants[0] != oa)) {\n            z(na.participants, oa);\n            na.participants.unshift(oa);\n        }\n    ;\n    };\n    function ea(na, oa) {\n        var pa = oa.body, qa = oa.subject, ra = \"\";\n        if (qa) {\n            qa = qa.toLowerCase();\n            if ((pa.slice(0, qa.length).toLowerCase() == qa)) {\n                ra = pa;\n            }\n             else if (pa) {\n                ra = ((qa + \" \\u00b7 \") + pa);\n            }\n             else ra = qa;\n            \n        ;\n        }\n         else ra = pa;\n    ;\n        na.snippet = ra;\n        na.snippet_has_attachment = oa.has_attachment;\n        if ((oa.raw_attachments && (oa.raw_attachments.length > 0))) {\n            var sa = n.convertRaw(oa.raw_attachments);\n            na.snippet_attachments = sa;\n        }\n         else na.snippet_attachments = oa.attachments;\n    ;\n        na.is_forwarded_snippet = !!oa.forward_count;\n        na.snippet_sender = oa.author;\n    };\n    function fa(na, oa, pa) {\n        if (!oa) {\n            return false\n        };\n        if (!oa.timestamp) {\n            return true\n        };\n        var qa = !oa.unread_count;\n        if ((pa == qa)) {\n            return false\n        };\n        oa.unread_count = (pa ? 0 : 1);\n        na._threadInformer.updatedThread(oa.thread_id);\n        return true;\n    };\n    function ga(na, oa) {\n        var pa = na._threads.getAllResources();\n        for (var qa in pa) {\n            var ra = pa[qa];\n            if ((ra.folder == oa)) {\n                ra.unread_count = 0;\n                na._threads.setResource(qa, ra);\n                na._threadInformer.updatedThread(qa);\n            }\n        ;\n        };\n    };\n    function ha(na, oa, pa) {\n        if ((!oa || (oa.chat_clear_time === pa))) {\n            return false\n        };\n        oa.chat_clear_time = pa;\n        na._threadInformer.reorderedMessages(oa.thread_id);\n        return true;\n    };\n    function ia(na, oa, pa, qa) {\n        var ra = pa.action_type;\n        if (((ra == l.USER_GENERATED_MESSAGE) || (ra == l.LOG_MESSAGE))) {\n            (pa.is_unread && oa.unread_count++);\n            oa.message_count++;\n            oa.is_archived = false;\n        }\n    ;\n        switch (ra) {\n          case l.USER_GENERATED_MESSAGE:\n            da(oa, pa.author);\n            break;\n          case l.SEND_MESSAGE:\n            var sa = pa.log_message_type;\n            if ((sa == q.THREAD_IMAGE)) {\n                oa.image_src = (pa.log_message_data.image ? pa.log_message_data.image.preview_url : null);\n            };\n            oa.snippet_attachments = pa.attachments;\n            break;\n          case l.LOG_MESSAGE:\n            var sa = pa.log_message_type;\n            if ((sa == q.SUBSCRIBE)) {\n                ba(na, oa, pa.log_message_data.added_participants);\n            }\n             else if ((sa == q.JOINABLE_JOINED)) {\n                ba(na, oa, [pa.log_message_data.joined_participant,]);\n            }\n             else if ((sa == q.UNSUBSCRIBE)) {\n                ca(na, oa, pa.author);\n            }\n             else if ((sa == q.THREAD_IMAGE)) {\n                if (!qa) {\n                    oa.image_src = (pa.log_message_data.image ? pa.log_message_data.image.preview_url : null);\n                };\n            }\n             else if ((sa == q.THREAD_NAME)) {\n                oa.name = pa.log_message_data.name;\n            }\n            \n            \n            \n        ;\n            break;\n          case l.CHANGE_READ_STATUS:\n            if (pa.timestamp) {\n                na._threadInformer.changedThreadReadState(oa.thread_id, pa.mark_as_read, pa.timestamp);\n            };\n            fa(na, oa, pa.mark_as_read);\n            break;\n          case l.CLEAR_CHAT:\n            ha(na, oa, pa.clear_time);\n            break;\n          case l.CHANGE_ARCHIVED_STATUS:\n            oa.is_archived = pa.archived;\n            break;\n          case l.CHANGE_FOLDER:\n            oa.folder = pa.new_folder;\n            break;\n          case l.DELETE_MESSAGES:\n            if (qa) {\n                oa.snippet = \"...\";\n                oa.snippet_has_attachment = false;\n                oa.snippet_attachments = null;\n                oa.snippet_sender = null;\n                oa.is_forwarded_snippet = false;\n                na._threadInformer.updatedThread(pa.thread_id);\n            }\n             else if (pa.message_ids) {\n                oa.message_count = (oa.message_count - pa.message_ids.length);\n            }\n        ;\n            break;\n          case l.CHANGE_MUTE_SETTINGS:\n            if ((pa.mute_settings !== undefined)) {\n                var ta = (na._fbid + \"@facebook.com\");\n                if (oa.mute_settings) {\n                    if (pa.mute_settings) {\n                        oa.mute_settings[ta] = pa.mute_settings;\n                    }\n                     else delete oa.mute_settings[ta];\n                ;\n                    na._threadInformer.updatedThread(oa.thread_id);\n                }\n            ;\n            }\n        ;\n            break;\n        };\n        if (pa.action_id) {\n            oa.last_action_id = h.maxValidActionID(pa.action_id, oa.last_action_id);\n        };\n    };\n    function ja(na, oa) {\n        var pa = na._serverRequests.tokenizeThreadID(oa.thread_id);\n        if ((pa.type == \"group\")) {\n            aa.error(\"invalid_new_thread_message\", oa);\n            return undefined;\n        }\n    ;\n        var qa = la(na, oa.specific_to_list), ra = {\n            thread_id: oa.thread_id,\n            last_action_id: oa.action_id,\n            participants: oa.specific_to_list,\n            name: null,\n            snippet: oa.body,\n            snippet_has_attachment: false,\n            snippet_attachments: [],\n            snippet_sender: oa.author,\n            unread_count: 0,\n            message_count: 0,\n            image_src: null,\n            timestamp_absolute: oa.timestamp_absolute,\n            timestamp_relative: oa.timestamp_relative,\n            timestamp: oa.timestamp,\n            canonical_fbid: ((pa.type === \"user\") ? pa.value : null),\n            is_canonical_user: (pa.type === \"user\"),\n            is_canonical: qa,\n            is_subscribed: true,\n            root_message_threading_id: oa.message_id,\n            folder: t.INBOX,\n            is_archived: false,\n            mode: s.TITAN_ORIGINATED\n        };\n        return ra;\n    };\n    function ka(na) {\n        this._fbid = na;\n        this._serverRequests = v.getForFBID(this._fbid);\n        this._threadInformer = w.getForFBID(this._fbid);\n        this._threads = new k();\n        ma(this);\n    };\n    x(ka.prototype, {\n        getThreadMetaNow: function(na) {\n            m.isThreadID(na);\n            return this._threads.getResource(na);\n        },\n        getThreadMeta: function(na, oa, pa) {\n            m.isThreadID(na);\n            var qa = this._threads.executeOrEnqueue(na, oa), ra = this._threads.getUnavailableResources(qa);\n            if (ra.length) {\n                var sa = this._serverRequests.tokenizeThreadID(na);\n                if ((sa.type == \"user\")) {\n                    this.getCanonicalThreadToUser(sa.value);\n                }\n                 else this._serverRequests.fetchThreadData(ra, pa);\n            ;\n            }\n        ;\n            return qa;\n        },\n        unsubscribe: function(na) {\n            this._threads.unsubscribe(na);\n        },\n        changeThreadReadStatus: function(na, oa) {\n            m.isThreadID(na);\n            var pa = this._threads.getResource(na);\n            if (fa(this, pa, oa)) {\n                this._serverRequests.changeThreadReadStatus(na, oa, i.getFromMeta(pa));\n            };\n        },\n        changeThreadArchivedStatus: function(na, oa) {\n            m.isThreadID(na);\n            var pa = this._threads.getResource(na);\n            if ((pa.is_archived != oa)) {\n                pa.is_archived = oa;\n                this._threadInformer.updatedThread(pa.thread_id);\n                this._serverRequests.changeThreadArchivedStatus(na, oa);\n            }\n        ;\n        },\n        markThreadSpam: function(na) {\n            this._serverRequests.markThreadSpam(na);\n        },\n        unmarkThreadSpam: function(na) {\n            this._serverRequests.unmarkThreadSpam(na);\n        },\n        updateThreadMuteSetting: function(na, oa) {\n            this._serverRequests.changeMutingOnThread(na, oa);\n        },\n        changeFolder: function(na, oa) {\n            m.isThreadID(na);\n            var pa = this._threads.getResource(na);\n            if ((pa && (pa.folder != oa))) {\n                pa.folder = oa;\n                this._threadInformer.updatedThread(pa.thread_id);\n                this._serverRequests.changeThreadFolder(na, oa);\n            }\n        ;\n        },\n        deleteThread: function(na) {\n            m.isThreadID(na);\n            this._serverRequests.deleteThread(na);\n        },\n        updateThreads: function(na) {\n            if ((!na || !na.length)) {\n                return\n            };\n            var oa = {\n            };\n            na.forEach(function(pa) {\n                oa[pa.thread_id] = pa;\n            });\n            this._threads.addResourcesAndExecute(oa);\n        },\n        updateMetadataByActions: function(na, oa) {\n            if ((!na || !na.length)) {\n                return\n            };\n            var pa = {\n            }, qa = {\n            }, ra = {\n            };\n            for (var sa = 0; (sa < na.length); sa++) {\n                var ta = na[sa];\n                if (ta.is_forward) {\n                    continue;\n                };\n                var ua = ta.action_type, va = ta.thread_id;\n                m.isThreadID(va);\n                var wa = this.getThreadMetaNow(va);\n                if (((ua == l.LOG_MESSAGE) && (ta.log_message_type == q.SERVER_ERROR))) {\n                    continue;\n                };\n                if (((!wa && !ta.action_id) && (ua == l.USER_GENERATED_MESSAGE))) {\n                    wa = ja(this, ta);\n                    this._threads.setResource(va, wa);\n                }\n            ;\n                if (wa) {\n                    if ((ua == l.DELETE_THREAD)) {\n                        wa.message_count = 0;\n                        this._threadInformer.deletedThread(va);\n                        continue;\n                    }\n                ;\n                    var xa = !!ta.action_id;\n                    if (((ua == l.LOG_MESSAGE) || (ua == l.USER_GENERATED_MESSAGE))) {\n                        xa = !oa;\n                    };\n                    if (((wa.server_timestamp && (ta.timestamp <= wa.server_timestamp)) && xa)) {\n                        continue;\n                    };\n                    if (!ra[va]) {\n                        ra[va] = x({\n                        }, wa);\n                    };\n                    ia(this, ra[va], ta, oa);\n                    if ((ua == l.USER_GENERATED_MESSAGE)) {\n                        pa[va] = ta;\n                    };\n                    if ((((ua == l.USER_GENERATED_MESSAGE) || (ua == l.LOG_MESSAGE)) || (ua == l.SEND_MESSAGE))) {\n                        if (((ta && ta.timestamp) && ((!qa[va] || (ta.timestamp > qa[va].timestamp))))) {\n                            qa[va] = ta;\n                        }\n                    };\n                }\n            ;\n            };\n            for (var ya in ra) {\n                var za = ra[ya], ab = pa[ya];\n                if (ab) {\n                    ea(za, ab);\n                };\n                var bb = qa[ya], cb = za.timestamp;\n                if (bb) {\n                    if ((bb.timestamp > cb)) {\n                        za = x(za, {\n                            timestamp_absolute: bb.timestamp_absolute,\n                            timestamp_relative: bb.timestamp_relative,\n                            timestamp: bb.timestamp\n                        });\n                    };\n                    var db = za.server_timestamp;\n                    if ((!oa && (bb.timestamp > db))) {\n                        za.server_timestamp = bb.timestamp;\n                    };\n                }\n            ;\n                this._threads.setResource(ya, za);\n            };\n        },\n        getCanonicalThreadToUser: function(na, oa, pa) {\n            return this.getCanonicalThreadToParticipant((\"fbid:\" + na), oa, pa);\n        },\n        getCanonicalThreadToParticipant: function(na, oa, pa) {\n            var qa = this.getThreadIDForParticipant(na), ra = this._threads.getResource(qa);\n            if ((typeof ra == \"undefined\")) {\n                ra = this.createNewLocalThread(qa, [u.getIDForUser(this._fbid),na,], oa);\n                this._serverRequests.fetchThreadData([qa,], pa);\n            }\n        ;\n            return ra;\n        },\n        getThreadIdForUser: function(na) {\n            return (\"user:\" + na);\n        },\n        getThreadIDForParticipant: function(na) {\n            var oa = p.tokenize(na);\n            return this.getThreadIdForUser(oa.value);\n        },\n        createNewLocalThread: function(na, oa, pa) {\n            var qa = this._threads.getResource(na);\n            if (!qa) {\n                var ra = this._serverRequests.tokenizeThreadID(na);\n                qa = {\n                    thread_id: na,\n                    last_action_id: null,\n                    participants: oa,\n                    name: null,\n                    snippet: \"\",\n                    snippet_has_attachment: false,\n                    snippet_sender: null,\n                    unread_count: (pa ? pa : 0),\n                    message_count: 0,\n                    image_src: null,\n                    timestamp_absolute: null,\n                    timestamp_relative: null,\n                    timestamp: null,\n                    canonical_fbid: ((ra.type === \"user\") ? ra.value : null),\n                    is_canonical_user: (ra.type == \"user\"),\n                    is_canonical: la(this, oa),\n                    is_subscribed: true,\n                    root_message_threading_id: null,\n                    folder: t.INBOX,\n                    is_archived: false,\n                    mode: s.TITAN_ORIGINATED\n                };\n                this._threads.setResource(na, qa);\n            }\n        ;\n            return qa;\n        },\n        addParticipantsToThreadLocally: function(na, oa) {\n            var pa = this._threads.getResource(na);\n            if (pa) {\n                ba(this, pa, oa);\n                this._threadInformer.updatedThread(pa.thread_id);\n            }\n        ;\n        },\n        getCanonicalUserInThread: function(na) {\n            var oa = this._serverRequests.tokenizeThreadID(na);\n            return ((oa.type == \"user\") ? oa.value : null);\n        },\n        getCanonicalGroupInThread: function(na) {\n            var oa = this._serverRequests.tokenizeThreadID(na);\n            return ((oa.type == \"group\") ? oa.value : null);\n        },\n        isEmptyLocalThread: function(na) {\n            var oa = this._threads.getResource(na);\n            if (!oa) {\n                return false\n            };\n            var pa = this._serverRequests.tokenizeThreadID(na);\n            return ((pa.type == \"root\") && !oa.timestamp);\n        },\n        isNewEmptyLocalThread: function(na) {\n            if (!this.isEmptyLocalThread(na)) {\n                return false\n            };\n            var oa = this._threads.getResource(na);\n            return (oa.participants && (oa.participants.length === 0));\n        },\n        canReply: function(na) {\n            var oa = this._threads.getResource(na);\n            return (((oa && oa.is_subscribed) && (oa.mode != s.OBJECT_ORIGINATED)) && ((oa.recipients_loadable || (oa.recipients_loadable === undefined))));\n        }\n    });\n    x(ka, r);\n    function la(na, oa) {\n        var pa = oa.filter(function(qa) {\n            return (qa != u.getIDForUser(na._fbid));\n        });\n        return (pa.length <= 1);\n    };\n    function ma(na) {\n        na._serverRequests.subscribe(\"update-threads\", function(oa, pa) {\n            var qa = ((pa.actions || [])).filter(function(ua) {\n                return ua.thread_id;\n            });\n            na.updateThreads(pa.threads);\n            na.updateMetadataByActions(qa, pa.from_client);\n            ((pa.threads || [])).forEach(function(ua) {\n                na._threadInformer.updatedThread(ua.thread_id);\n            });\n            var ra = (pa.global_actions || []);\n            for (var sa = 0; (sa < ra.length); sa++) {\n                var ta = ra[sa];\n                if ((ta.action_type == o.MARK_ALL_READ)) {\n                    ga(na, ta.folder);\n                };\n            };\n        });\n    };\n    g.subscribe(j.DUMP_EVENT, function(na, oa) {\n        oa.messaging = (oa.messaging || {\n        });\n        oa.messaging.threads = {\n        };\n        var pa = ka._getInstances();\n        for (var qa in pa) {\n            oa.messaging.threads[qa] = pa[qa]._threads.dumpResources();;\n        };\n    });\n    e.exports = ka;\n});\n__d(\"formatDate\", [\"DateFormatConfig\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"DateFormatConfig\"), h = b(\"tx\"), i = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",], j = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",], k = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",], l = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",];\n    function m(o, p) {\n        p = (p || 2);\n        o = (\"\" + o);\n        while ((o.length < p)) {\n            o = (\"0\" + o);;\n        };\n        return o;\n    };\n    function n(o, p, q, r) {\n        if (!p) {\n            return \"\"\n        };\n        var s = [], t = null, u = null, v = (q ? \"getUTC\" : \"get\"), w = o[(v + \"Date\")](), x = o[(v + \"Day\")](), y = o[(v + \"Month\")](), z = o[(v + \"FullYear\")](), aa = o[(v + \"Hours\")](), ba = o[(v + \"Minutes\")](), ca = o[(v + \"Seconds\")](), da = o[(v + \"Milliseconds\")]();\n        for (var ea = 0; (ea < p.length); ea++) {\n            u = p.charAt(ea);\n            if ((u == \"\\\\\")) {\n                ea++;\n                s.push(p.charAt(ea));\n                continue;\n            }\n        ;\n            switch (u) {\n              case \"d\":\n                t = m(w);\n                break;\n              case \"D\":\n                t = i[x];\n                break;\n              case \"j\":\n                t = w;\n                break;\n              case \"l\":\n                t = j[x];\n                break;\n              case \"F\":\n            \n              case \"f\":\n                t = l[y];\n                break;\n              case \"m\":\n                t = m((y + 1));\n                break;\n              case \"M\":\n                t = k[y];\n                break;\n              case \"n\":\n                t = (y + 1);\n                break;\n              case \"Y\":\n                t = z;\n                break;\n              case \"y\":\n                t = ((\"\" + z)).slice(2);\n                break;\n              case \"a\":\n                t = ((aa < 12) ? \"am\" : \"pm\");\n                break;\n              case \"A\":\n                t = ((aa < 12) ? \"AM\" : \"PM\");\n                break;\n              case \"g\":\n                t = ((((aa == 0) || (aa == 12))) ? 12 : (aa % 12));\n                break;\n              case \"G\":\n                t = aa;\n                break;\n              case \"h\":\n                t = ((((aa == 0) || (aa == 12))) ? 12 : m((aa % 12)));\n                break;\n              case \"H\":\n                t = m(aa);\n                break;\n              case \"i\":\n                t = m(ba);\n                break;\n              case \"s\":\n                t = m(ca);\n                break;\n              case \"S\":\n                if (r) {\n                    t = g.ordinalSuffixes[w];\n                }\n                 else t = m(da, 3);\n            ;\n                break;\n              default:\n                t = u;\n            };\n            s.push(t);\n        };\n        return s.join(\"\");\n    };\n    e.exports = n;\n});\n__d(\"MercuryMessages\", [\"Arbiter\",\"AsyncRequest\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAssert\",\"MercuryAttachmentType\",\"MercuryConfig\",\"MercuryGenericConstants\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryMessageSourceTags\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MercurySourceType\",\"MercuryTimePassed\",\"MercuryMessageIDs\",\"MercuryParticipants\",\"PresenceUtil\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"debounce\",\"formatDate\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryActionStatus\"), n = b(\"MercuryAssert\"), o = b(\"MercuryAttachmentType\"), p = b(\"MercuryConfig\"), q = b(\"MercuryGenericConstants\"), r = b(\"MercuryIDs\"), s = b(\"MercuryLogMessageType\"), t = b(\"MercuryMessageSourceTags\"), u = b(\"MercuryPayloadSource\"), v = b(\"MercurySingletonMixin\"), w = b(\"MercurySourceType\"), x = b(\"MercuryTimePassed\"), y = b(\"MercuryMessageIDs\"), z = b(\"MercuryParticipants\"), aa = b(\"PresenceUtil\"), ba = b(\"RangedCallbackManager\"), ca = b(\"MercuryServerRequests\"), da = b(\"MercuryThreadInformer\"), ea = b(\"MercuryThreads\"), fa = b(\"copyProperties\"), ga = b(\"debounce\"), ha = b(\"formatDate\"), ia = b(\"randomInt\"), ja = b(\"tx\");\n    function ka(bb, cb) {\n        var db = cb;\n        if (bb._localIdsMap[cb]) {\n            db = bb._localIdsMap[cb];\n        };\n        return bb._messages[db];\n    };\n    var la = new k();\n    function ma(bb, cb) {\n        if ((cb.status === undefined)) {\n            cb.status = m.UNSENT;\n        };\n        cb.timestamp_absolute = \"Today\";\n        cb.message_id = (cb.message_id || bb.generateNewClientMessageID(cb.timestamp));\n        var db = z.getIDForUser(bb._fbid);\n        cb.specific_to_list = (cb.specific_to_list || []);\n        if ((cb.specific_to_list.length && (cb.specific_to_list.indexOf(db) === -1))) {\n            cb.specific_to_list.push(db);\n        };\n        if (!cb.thread_id) {\n            if ((cb.specific_to_list.length == 1)) {\n                cb.thread_id = (\"user:\" + bb._fbid);\n            }\n             else if ((cb.specific_to_list.length == 2)) {\n                var eb = ((cb.specific_to_list[0] == db) ? cb.specific_to_list[1] : cb.specific_to_list[0]);\n                if ((r.tokenize(eb).type == \"email\")) {\n                    cb.thread_id = q.PENDING_THREAD_ID;\n                }\n                 else cb.thread_id = bb._threads.getThreadIDForParticipant(eb);\n            ;\n            }\n            \n        ;\n            cb.thread_id = (cb.thread_id || (\"root:\" + cb.message_id));\n        }\n    ;\n        if (!cb.specific_to_list.length) {\n            var fb = bb._serverRequests.tokenizeThreadID(cb.thread_id);\n            if ((fb.type == \"user\")) {\n                cb.specific_to_list = [(\"fbid:\" + fb.value),db,];\n            };\n        }\n    ;\n    };\n    function na(bb, cb, db, eb) {\n        var fb = (xa(db) ? [t.CHAT,] : []), gb = Date.now(), hb = ha(new Date(gb), (p[\"24h_times\"] ? \"H:i\" : \"g:ia\")), ib = {\n            action_type: cb,\n            thread_id: eb,\n            author: z.getIDForUser(bb._fbid),\n            author_email: null,\n            coordinates: null,\n            timestamp: gb,\n            timestamp_absolute: (new Date(gb)).toLocaleDateString(),\n            timestamp_relative: hb,\n            timestamp_time_passed: x.TODAY,\n            is_unread: false,\n            is_cleared: false,\n            is_forward: false,\n            is_filtered_content: false,\n            spoof_warning: false,\n            source: db,\n            source_tags: fb\n        };\n        return ib;\n    };\n    function oa(bb) {\n        switch (bb) {\n          case u.UNKNOWN:\n        \n          case u.SERVER_INITIAL_DATA:\n        \n          case u.SERVER_FETCH_THREAD_INFO:\n        \n          case u.SERVER_THREAD_SYNC:\n            return true;\n        };\n        return false;\n    };\n    function pa(bb) {\n        return (bb && (bb.substr(0, 6) === \"server\"));\n    };\n    function qa(bb, cb) {\n        if (!bb._threadsToMessages[cb]) {\n            bb._threadsToMessages[cb] = new ba(function(db) {\n                return ka(bb, db).timestamp;\n            }, function(db, eb) {\n                return (eb - db);\n            });\n        };\n        return bb._threadsToMessages[cb];\n    };\n    g.subscribe(j.DUMP_EVENT, function(bb, cb) {\n        var db = {\n        }, eb = {\n        }, fb = sa._getInstances();\n        for (var gb in fb) {\n            db[gb] = {\n            };\n            for (var hb in fb[gb]._messages) {\n                var ib = fb[gb]._messages[hb];\n                if ((Object.keys(ib).length === 0)) {\n                    continue;\n                };\n                var jb = ib.thread_id;\n                db[gb][jb] = (db[gb][jb] || {\n                });\n                db[gb][jb][ib.message_id] = {\n                    action_type: ib.action_type,\n                    author: ib.author,\n                    is_unread: ib.is_unread,\n                    timestamp: ib.timestamp\n                };\n            };\n            eb[gb] = fa({\n            }, fb[gb]._localIdsMap);\n        };\n        cb.messaging = (cb.messaging || {\n        });\n        cb.messaging.local_message_ids = eb;\n        cb.messaging.messages = db;\n    });\n    function ra(bb, cb, db) {\n        cb.forEach(function(eb) {\n            var fb = qa(bb, eb);\n            fb.setReachedEndOfArray();\n            bb._threadInformer.reorderedMessages(eb, db);\n        });\n    };\n    function sa(bb) {\n        this._fbid = bb;\n        this._serverRequests = ca.getForFBID(this._fbid);\n        this._threadInformer = da.getForFBID(this._fbid);\n        this._threads = ea.getForFBID(this._fbid);\n        this._failedHistoryFetchThreads = {\n        };\n        this._threadsToMessages = {\n        };\n        this._titanMessagesCount = {\n        };\n        this._localTitanMessagesCount = {\n        };\n        this._messages = {\n        };\n        this._attachmentData = {\n        };\n        this._messagesNeedingAttachmentData = {\n        };\n        this._localIdsMap = {\n        };\n        this._serverRequests.subscribe(\"update-messages\", function(cb, db) {\n            var eb = ((db.actions || [])).filter(function(gb) {\n                var hb = gb.action_type;\n                return (((gb.is_forward || gb.thread_id)) && (((((((hb == l.LOG_MESSAGE) || (hb == l.USER_GENERATED_MESSAGE)) || (hb == l.SEND_MESSAGE)) || (hb == l.CLEAR_CHAT)) || (hb == l.DELETE_THREAD)) || (hb == l.DELETE_MESSAGES))));\n            }), fb = oa(db.payload_source);\n            if (pa(db.payload_source)) {\n                eb.forEach(function(gb) {\n                    if (!gb.is_forward) {\n                        var hb = this._threads.getThreadMetaNow(gb.thread_id);\n                        if (hb) {\n                            gb.is_cleared = (gb.timestamp < hb.chat_clear_time);\n                        };\n                    }\n                ;\n                }.bind(this));\n            };\n            this.handleUpdates(eb, fb, db.payload_source, db.from_client);\n            if (db.end_of_history) {\n                ra(this, db.end_of_history, db.payload_source);\n            };\n        }.bind(this));\n    };\n    fa(sa.prototype, {\n        getMessagesFromIDs: function(bb) {\n            return ((bb || [])).map(ka.curry(this)).filter(function(cb) {\n                return cb;\n            });\n        },\n        hasLoadedNMessages: function(bb, cb) {\n            var db = qa(this, bb);\n            return (db.hasReachedEndOfArray() || (db.getCurrentArraySize() >= cb));\n        },\n        hasLoadedExactlyNMessages: function(bb, cb) {\n            var db = qa(this, bb);\n            return (db.getCurrentArraySize() == cb);\n        },\n        getThreadMessagesRange: function(bb, cb, db, eb, fb, gb) {\n            var hb = qa(this, bb), ib = function(ob) {\n                eb(ta(this, ob));\n            }.bind(this), jb = hb.executeOrEnqueue(cb, db, ib), kb = hb.getUnavailableResources(jb), lb = this._failedHistoryFetchThreads[bb];\n            if ((kb.length && !lb)) {\n                var mb = (((this._titanMessagesCount[bb] || 0)) - ((this._localTitanMessagesCount[bb] || 0))), nb = (kb.length + ((this._localTitanMessagesCount[bb] || 0)));\n                this._serverRequests.fetchThreadMessages(bb, mb, nb, fb, gb);\n            }\n             else this._failedHistoryFetchThreads[bb] = false;\n        ;\n            return jb;\n        },\n        getThreadMessagesSinceTimestamp: function(bb, cb) {\n            var db = qa(this, bb), eb = db.getElementsUntil(cb);\n            return ta(this, eb);\n        },\n        hasLoadedAllMessages: function(bb) {\n            return qa(this, bb).hasReachedEndOfArray();\n        },\n        getCurrentlyLoadedMessages: function(bb) {\n            var cb = qa(this, bb).getAllResources();\n            return ta(this, cb);\n        },\n        unsubscribe: function(bb, cb) {\n            n.isThreadID(cb);\n            var db = qa(this, cb);\n            db.unsubscribe(bb);\n        },\n        addAttachmentData: function(bb, cb, db) {\n            var eb = ka(this, bb);\n            if (eb) {\n                var fb = eb.attachments.indexOf(cb);\n                if ((fb != -1)) {\n                    eb.attachments[fb] = db;\n                    this._threadInformer.updatedMessage(eb.thread_id, eb.message_id, \"attach\");\n                }\n            ;\n            }\n             else {\n                if (!this._attachmentData[bb]) {\n                    this._attachmentData[bb] = [];\n                };\n                this._attachmentData[bb].push({\n                    attach_key: cb,\n                    data: db\n                });\n            }\n        ;\n        },\n        handleUpdates: function(bb, cb, db, eb) {\n            var fb, gb = {\n            }, hb = {\n            };\n            for (var ib = 0; (ib < bb.length); ib++) {\n                var jb = bb[ib];\n                if ((jb.is_forward || (db == u.SERVER_SEARCH))) {\n                    if (!this._messages[jb.message_id]) {\n                        this._messages[jb.message_id] = jb;\n                        ya(this, jb);\n                    }\n                ;\n                    continue;\n                }\n            ;\n                var kb = jb.action_type;\n                if ((kb == l.SEND_MESSAGE)) {\n                    var lb = jb.client_message_id;\n                    if (((lb && this._localIdsMap[lb]) && jb.status)) {\n                        if ((jb.status == m.UNCONFIRMED)) {\n                            if (!hb[jb.thread_id]) {\n                                hb[jb.thread_id] = [];\n                            };\n                            hb[jb.thread_id].push(jb.client_message_id);\n                        }\n                         else if (!gb[jb.thread_id]) {\n                            gb[jb.thread_id] = [];\n                        }\n                    ;\n                        var mb = ka(this, jb.client_message_id), nb = mb.status;\n                        mb.status = jb.status;\n                        if (((jb.status === m.SUCCESS) || jb.error_data)) {\n                            mb.error_data = jb.error_data;\n                        };\n                        if ((jb.status == m.SUCCESS)) {\n                            this.updateLocalMessage(jb, db);\n                            if ((jb.client_thread_id == q.PENDING_THREAD_ID)) {\n                                mb.thread_id = jb.thread_id;\n                                gb[jb.thread_id].push(mb.message_id);\n                                la.setResource(mb.message_id, mb.thread_id);\n                            }\n                        ;\n                        }\n                    ;\n                        if ((((((typeof nb != \"undefined\") || (jb.status == m.FAILED_UNKNOWN_REASON)) || (jb.status == m.UNABLE_TO_CONFIRM)) || (jb.status == m.SUCCESS)) || (jb.status == m.ERROR))) {\n                            this._threadInformer.updatedMessage(jb.thread_id, ka(this, jb.client_message_id).message_id, db);\n                        };\n                    }\n                ;\n                    continue;\n                }\n                 else if ((kb == l.DELETE_THREAD)) {\n                    qa(this, jb.thread_id).removeAllResources();\n                    continue;\n                }\n                 else if ((kb == l.DELETE_MESSAGES)) {\n                    var ob = jb.message_ids.map(function(wb) {\n                        return ka(this, wb).message_id;\n                    }.bind(this));\n                    fb = qa(this, jb.thread_id);\n                    fb.removeResources(ob);\n                    this._threadInformer.reorderedMessages(jb.thread_id, db);\n                    continue;\n                }\n                 else if ((kb == l.LOG_MESSAGE)) {\n                    if ((jb.log_message_type == s.SERVER_ERROR)) {\n                        this._failedHistoryFetchThreads[jb.thread_id] = true;\n                    };\n                }\n                 else if ((kb == l.CLEAR_CHAT)) {\n                    var pb = qa(this, jb.thread_id).getAllResources();\n                    pb.map(ka.curry(this)).forEach(function(wb) {\n                        wb.is_cleared = true;\n                    });\n                    continue;\n                }\n                \n                \n                \n                \n            ;\n                if ((jb.threading_id && this._localIdsMap[jb.threading_id])) {\n                    var qb = ka(this, jb.threading_id);\n                    if ((qb && qb.is_zap)) {\n                        fb = qa(this, jb.thread_id);\n                        fb.removeResources([qb.message_id,]);\n                        this._localIdsMap[jb.threading_id] = null;\n                        this._threadInformer.reorderedMessages(jb.thread_id, db);\n                    }\n                ;\n                }\n            ;\n                var rb = ka(this, jb.message_id);\n                if ((((jb.threading_id && this._localIdsMap[jb.threading_id])) || ((rb && !rb.is_forward)))) {\n                    continue;\n                };\n                if (!gb[jb.thread_id]) {\n                    gb[jb.thread_id] = [];\n                };\n                gb[jb.thread_id].push(jb.message_id);\n                this._messages[jb.message_id] = jb;\n                ya(this, jb);\n                if ((jb.threading_id && (jb.threading_id != jb.message_id))) {\n                    y.addServerID(jb.threading_id, jb.message_id);\n                };\n                if (!cb) {\n                    this._threadInformer.receivedMessage(jb);\n                };\n            };\n            for (var sb in gb) {\n                fb = qa(this, sb);\n                var tb = fb.getAllResources(), ub = tb.filter(function(wb) {\n                    var xb = this._messages[wb];\n                    return ((xb.action_type == l.LOG_MESSAGE) && (xb.log_message_type == s.SERVER_ERROR));\n                }.bind(this));\n                fb.removeResources(ub);\n                ua(this, sb, gb[sb]);\n                if (eb) {\n                    va(this, sb, gb[sb]);\n                };\n                if (cb) {\n                    fb.addResources(gb[sb]);\n                    this._threadInformer.reorderedMessages(sb, db);\n                }\n                 else fb.addResourcesWithoutSorting(gb[sb].reverse(), 0);\n            ;\n                this._threadInformer.updatedThread(sb);\n            };\n            var vb = Object.keys(hb);\n            if (vb.length) {\n                this._serverRequests.requestMessageConfirmation(hb);\n            };\n        },\n        sendMessage: function(bb, cb, db) {\n            cb = (cb || Function.prototype);\n            ma(this, bb);\n            this._localIdsMap[bb.message_id] = bb.message_id;\n            if ((bb.thread_id == (\"root:\" + bb.message_id))) {\n                qa(this, bb.thread_id).setReachedEndOfArray();\n            };\n            this._serverRequests.sendNewMessage(bb, db);\n            if ((bb.thread_id == q.PENDING_THREAD_ID)) {\n                this._messages[bb.message_id] = bb;\n                return la.executeOrEnqueue(bb.message_id, cb);\n            }\n             else cb(bb.thread_id);\n        ;\n        },\n        zapMessage: function(bb, cb, db) {\n            if ((bb.thread_id == q.PENDING_THREAD_ID)) {\n                return\n            };\n            this._localIdsMap[bb.message_id] = bb.message_id;\n            this._serverRequests.handleUpdate({\n                actions: [fa({\n                }, bb),],\n                from_client: true,\n                payload_source: u.SERVER_ZAP\n            });\n        },\n        isFirstMessage: function(bb) {\n            var cb = qa(this, bb.thread_id);\n            if ((cb.getCurrentArraySize() === 0)) {\n                return false\n            };\n            var db = cb.getResourceAtIndex((cb.getCurrentArraySize() - 1)), eb = ka(this, db).message_id, fb = ka(this, bb.message_id).message_id;\n            return (cb.hasReachedEndOfArray() && (eb == fb));\n        },\n        unsubscribeSend: function(bb) {\n            la.unsubscribe(bb);\n        },\n        resendMessage: function(bb, cb) {\n            var db = fa({\n            }, bb);\n            db.status = m.RESENDING;\n            db.timestamp = Date.now();\n            db.message_id = bb.message_id;\n            this._messages[bb.message_id] = db;\n            var eb = qa(this, bb.thread_id);\n            eb.resortResources([bb.message_id,]);\n            this.sendMessage(db, null, cb);\n            this._threadInformer.reorderedMessages(bb.thread_id, u.CLIENT_SEND_MESSAGE);\n        },\n        deleteMessages: function(bb, cb) {\n            if (cb.length) {\n                var db = qa(this, bb), eb = ((db.getCurrentArraySize() == cb.length) && db.hasReachedEndOfArray());\n                this._serverRequests.deleteMessages(bb, cb, eb);\n            }\n        ;\n        },\n        markMessagesSpam: function(bb, cb) {\n            if (cb.length) {\n                var db = qa(this, bb), eb = ((db.getCurrentArraySize() == cb.length) && db.hasReachedEndOfArray());\n                if (eb) {\n                    this._serverRequests.markThreadSpam(bb);\n                }\n                 else this._serverRequests.markMessagesSpam(bb, cb);\n            ;\n            }\n        ;\n        },\n        updateLocalMessage: function(bb, cb) {\n            var db = bb.message_id, eb = bb.client_message_id;\n            this._localIdsMap[eb] = db;\n            this._messages[db] = this._messages[eb];\n            y.addServerID(eb, db);\n            this._messages[eb] = {\n            };\n            var fb = ka(this, eb);\n            if (bb.timestamp) {\n                fb.timestamp = bb.timestamp;\n            };\n            if ((bb.attachments && bb.attachments.length)) {\n                fb.raw_attachments = null;\n                fb.attachments = bb.attachments;\n                ya(this, fb, db);\n            }\n        ;\n            if (bb.log_message_data) {\n                fb.log_message_data = bb.log_message_data;\n            };\n            if (wa(fb)) {\n                this._localTitanMessagesCount[fb.thread_id]--;\n            };\n        },\n        constructUserGeneratedMessageObject: function(bb, cb, db, eb) {\n            var fb = na(this, l.USER_GENERATED_MESSAGE, cb, db);\n            fb.body = bb;\n            fb.has_attachment = false;\n            fb.html_body = false;\n            fb.attachments = [];\n            fb.specific_to_list = (eb || []);\n            return fb;\n        },\n        constructLogMessageObject: function(bb, cb, db, eb) {\n            var fb = na(this, l.LOG_MESSAGE, bb, cb);\n            fb.log_message_type = db;\n            fb.log_message_data = eb;\n            return fb;\n        },\n        generateNewClientMessageID: function(bb) {\n            var cb = ((((bb + \":\") + ((ia(0, 4294967295) + 1))) + \"-\") + aa.getSessionID());\n            return ((\"\\u003C\" + cb) + \"@mail.projektitan.com\\u003E\");\n        },\n        getNumberLocalMessages: function(bb) {\n            return (this._localTitanMessagesCount[bb] || 0);\n        }\n    });\n    fa(sa, v, {\n        addAttachmentData: function(bb, cb, db, eb) {\n            eb = (eb || i.user);\n            sa.getForFBID(eb).addAttachmentData(bb, cb, db);\n        }\n    });\n    function ta(bb, cb) {\n        var db = cb.map(ka.curry(bb));\n        return db.reverse();\n    };\n    function ua(bb, cb, db) {\n        var eb = db.filter(function(fb) {\n            return wa(ka(bb, fb));\n        });\n        if (!bb._titanMessagesCount[cb]) {\n            bb._titanMessagesCount[cb] = 0;\n        };\n        bb._titanMessagesCount[cb] += eb.length;\n    };\n    function va(bb, cb, db) {\n        var eb = db.filter(function(fb) {\n            return wa(ka(bb, fb));\n        });\n        if (!bb._localTitanMessagesCount[cb]) {\n            bb._localTitanMessagesCount[cb] = 0;\n        };\n        bb._localTitanMessagesCount[cb] += eb.length;\n    };\n    function wa(bb) {\n        var cb = bb.action_type;\n        if ((cb == l.USER_GENERATED_MESSAGE)) {\n            return !bb.is_zap\n        };\n        switch (bb.log_message_type) {\n          case s.SUBSCRIBE:\n        \n          case s.UNSUBSCRIBE:\n        \n          case s.SERVER_ERROR:\n        \n          case s.LIVE_LISTEN:\n            return false;\n          default:\n            return true;\n        };\n    };\n    function xa(bb) {\n        switch (bb) {\n          case w.CHAT_WEB:\n        \n          case w.CHAT_JABBER:\n        \n          case w.CHAT_IPHONE:\n        \n          case w.CHAT_MEEBO:\n        \n          case w.CHAT_ORCA:\n        \n          case w.CHAT_TEST:\n        \n          case w.CHAT:\n        \n          case w.DESKTOP:\n            return true;\n          default:\n            return false;\n        };\n    };\n    function ya(bb, cb, db) {\n        db = (db || cb.message_id);\n        var eb = bb._attachmentData[db];\n        if (eb) {\n            eb.forEach(function(fb) {\n                var gb = cb.attachments.indexOf(fb.attach_key);\n                if ((gb !== -1)) {\n                    cb.attachments[gb] = fb.data;\n                };\n            });\n            delete bb._attachmentData[db];\n        }\n         else if ((!cb.is_forward && za(bb, cb))) {\n            bb._messagesNeedingAttachmentData[db] = true;\n            ab(bb);\n        }\n        \n    ;\n    };\n    function za(bb, cb) {\n        if ((!cb || !cb.attachments)) {\n            return false\n        };\n        for (var db = 0; (db < cb.attachments.length); db++) {\n            var eb = cb.attachments[db];\n            if (((typeof eb === \"string\") && (eb.indexOf(o.SHARE) === 0))) {\n                return true\n            };\n        };\n        var fb = (cb.forward_message_ids || []);\n        for (db = 0; (db < fb.length); db++) {\n            var gb = ka(bb, fb[db]);\n            if (za(bb, gb)) {\n                return true\n            };\n        };\n        return false;\n    };\n    var ab = ga(function(bb) {\n        var cb = {\n        };\n        for (var db in bb._messagesNeedingAttachmentData) {\n            var eb = ka(bb, db);\n            if (za(bb, eb)) {\n                cb[db] = true;\n            };\n        };\n        var fb = Object.keys(cb);\n        if (fb.length) {\n            new h(\"/ajax/mercury/attachments/fetch_shares.php\").setData({\n                message_ids: fb\n            }).setAllowCrossPageTransition(true).send();\n        };\n        bb._messagesNeedingAttachmentData = {\n        };\n    }, 0, this, true);\n    e.exports = sa;\n});\n__d(\"ChatOpenTab\", [\"Arbiter\",\"Banzai\",\"Bootloader\",\"ChatVisibility\",\"Event\",\"MercuryIDs\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"Bootloader\"), j = b(\"ChatVisibility\"), k = b(\"Event\"), l = b(\"MercuryIDs\"), m = b(\"MercuryMessages\").get(), n = b(\"MercuryServerRequests\").get(), o = b(\"MercuryThreads\").get(), p = \"messaging_tracking\";\n    function q(u) {\n        o.getThreadMeta(u, function() {\n            g.inform(\"chat/open-tab\", {\n                thread_id: u\n            });\n        });\n    };\n    function r(u, v, w, x) {\n        k.listen(u, \"click\", function(y) {\n            if (x(v, w)) {\n                return\n            };\n            return y.kill();\n        });\n    };\n    function s(u, v, w) {\n        var x = {\n            referrer: (u || \"\"),\n            message_thread_id: v,\n            message_view: \"chat\",\n            timestamp_send: Date.now()\n        };\n        if ((w !== undefined)) {\n            x.message_target_ids = [w,];\n        };\n        h.post(p, x, {\n            delay: 0,\n            retry: true\n        });\n    };\n    var t = {\n        openEmptyTab: function(u, v) {\n            if ((!window.Chat || !j.isOnline())) {\n                return true\n            };\n            i.loadModules([\"ChatTabModel\",], function(w) {\n                var x = w.getEmptyTab();\n                if (!x) {\n                    x = (\"root:\" + m.generateNewClientMessageID(Date.now()));\n                    o.createNewLocalThread(x, []);\n                }\n            ;\n                q(x);\n                s(v, x);\n            });\n        },\n        listenOpenEmptyTab: function(u, v) {\n            r(u, null, v, t.openEmptyTab);\n        },\n        openThread: function(u, v) {\n            if (l.isValid(u)) {\n                q(u);\n            }\n             else n.getClientThreadID(u, q);\n        ;\n            s(v, u);\n        },\n        listenOpenThread: function(u, v, w) {\n            r(u, v, w, t.openThread);\n        },\n        openUserTab: function(u, v) {\n            var w = o.getCanonicalThreadToUser(u);\n            q(w.thread_id);\n            s(v, w.thread_id, u);\n        },\n        listenOpenUserTab: function(u, v, w) {\n            r(u, v, w, t.openUserTab);\n        }\n    };\n    e.exports = t;\n});\n__d(\"SplitImage.react\", [\"React\",\"Image.react\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"Image.react\"), i = b(\"cx\"), j = g.createClass({\n        displayName: \"SplitImage\",\n        render: function() {\n            var k = this.props.size;\n            return this.transferPropsTo(g.DOM.div({\n                className: \"_55lt\",\n                style: {\n                    width: k,\n                    height: k\n                }\n            }, this.renderImages()));\n        },\n        renderImages: function() {\n            if (!this.props.srcs) {\n                return null\n            };\n            if (!((this.props.srcs instanceof Array))) {\n                return (h({\n                    src: this.props.srcs,\n                    height: this.props.size,\n                    width: this.props.size\n                }))\n            };\n            switch (this.props.srcs.length) {\n              case 1:\n                return (h({\n                    src: this.props.srcs[0],\n                    height: this.props.size,\n                    width: this.props.size\n                }));\n              case 2:\n                return this.renderTwo();\n              default:\n                return this.renderThree();\n            };\n        },\n        renderTwo: function() {\n            var k = Math.floor((this.props.size / 2)), l = -Math.floor((k / 2)), m = (((\"_55lu\") + ((this.props.border ? (\" \" + \"_57xo\") : \"\"))));\n            return (g.DOM.div(null, g.DOM.div({\n                className: \"_55lu\",\n                style: {\n                    width: k\n                }\n            }, h({\n                src: this.props.srcs[0],\n                width: this.props.size,\n                height: this.props.size,\n                style: {\n                    marginLeft: l\n                }\n            })), g.DOM.div({\n                className: m,\n                style: {\n                    width: k\n                }\n            }, h({\n                src: this.props.srcs[1],\n                width: this.props.size,\n                height: this.props.size,\n                style: {\n                    marginLeft: l\n                }\n            }))));\n        },\n        renderThree: function() {\n            var k = Math.floor(((this.props.size / 3) * 2)), l = -Math.floor((((this.props.size - k)) / 2)), m = Math.floor((this.props.size / 2)), n = (this.props.size - k), o = -Math.floor((((m - n)) / 2)), p = (((\"_55lu\") + ((this.props.border ? (\" \" + \"_57pl\") : \"\")))), q = (((\"_55lu\") + ((this.props.border ? (\" \" + \"_57pm\") : \"\"))));\n            return (g.DOM.div(null, g.DOM.div({\n                className: p,\n                style: {\n                    width: k\n                }\n            }, h({\n                src: this.props.srcs[0],\n                width: this.props.size,\n                height: this.props.size,\n                style: {\n                    marginLeft: l\n                }\n            })), g.DOM.div({\n                className: q,\n                style: {\n                    width: n,\n                    height: m\n                }\n            }, h({\n                src: this.props.srcs[1],\n                width: m,\n                height: m,\n                style: {\n                    marginLeft: o\n                }\n            })), g.DOM.div({\n                className: \"_55lu\",\n                style: {\n                    width: n,\n                    height: m\n                }\n            }, h({\n                src: this.props.srcs[2],\n                width: m,\n                height: m,\n                style: {\n                    marginLeft: o\n                }\n            }))));\n        }\n    });\n    e.exports = j;\n});\n__d(\"TypeaheadFacepile\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\");\n    function h() {\n    \n    };\n    h.render = function(i) {\n        var j = [g.create(\"span\", {\n            className: \"splitpic leftpic\"\n        }, [g.create(\"img\", {\n            alt: \"\",\n            src: i[0]\n        }),]),g.create(\"span\", {\n            className: (\"splitpic\" + ((i[2] ? \" toppic\" : \"\")))\n        }, [g.create(\"img\", {\n            alt: \"\",\n            src: i[1]\n        }),]),];\n        if (i[2]) {\n            j.push(g.create(\"span\", {\n                className: \"splitpic bottompic\"\n            }, [g.create(\"img\", {\n                alt: \"\",\n                src: i[2]\n            }),]));\n        };\n        return g.create(\"span\", {\n            className: \"splitpics clearfix\"\n        }, j);\n    };\n    e.exports = h;\n});\n__d(\"ModalMask\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = null, i = 0, j = {\n        show: function() {\n            i++;\n            if (!h) {\n                h = g.create(\"div\", {\n                    id: \"modalMaskOverlay\"\n                });\n                g.appendContent(document.body, h);\n            }\n        ;\n        },\n        hide: function() {\n            if (i) {\n                i--;\n                if ((!i && h)) {\n                    g.remove(h);\n                    h = null;\n                }\n            ;\n            }\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"LitestandMessages\", [], function(a, b, c, d, e, f) {\n    var g = {\n        FILTER_SWITCH_BEGIN: \"LitestandMessages/FilterSwitchBegin\",\n        NEWSFEED_LOAD: \"LitestandMessages/NewsFeedLoad\",\n        LEAVE_HOME: \"LitestandMessages/LeaveHome\",\n        UPDATE_HOME_COUNT: \"LitestandMessages/UpdateHomeCount\",\n        STORIES_INSERTED: \"LitestandMessages/StoriesInserted\",\n        STORIES_REMOVED: \"LitestandMessages/StoriesRemoved\",\n        NEWER_STORIES_INSERTED: \"LitestandMessages/NewerStoriesInserted\",\n        EXPAND_FILTER_SWITCHER: \"LitestandMessages/ExpandFilterSwitcher\",\n        RESTORE_FILTER_SWITCHER: \"LitestandMessages/RestoreFilterSwitcher\",\n        NEW_STORY_BAR_CLICK: \"LitestandMessages/NewStoryBarClick\",\n        COLLAPSE_FILTER_SWITCHER: \"LitestandMessages/CollapseFilterSwitcher\",\n        TOUR_BEGIN: \"LitestandMessages/TourBegin\",\n        TOUR_END: \"LitestandMessages/TourEnd\",\n        TOUR_SIDEBAR_HIGHLIGHT: \"LitestandMessages/TourSidebarHighlight\",\n        TOUR_SIDEBAR_UNHIGHLIGHT: \"LitestandMessages/TourSidebarUnhighlight\",\n        RHC_RELOADED: \"LitestandMessages/RHCReloaded\",\n        UNLOCK_FILTER_SWITCHER: \"LitestandMessage/UnlockFilterSwitcher\"\n    };\n    e.exports = g;\n});\n__d(\"WebMessengerPermalinkConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        ARCHIVED_PATH: \"/messages/archived\",\n        BASE_PATH: \"/messages\",\n        OTHER_PATH: \"/messages/other\",\n        SPAM_PATH: \"/messages/spam\",\n        COMPOSE_POSTFIX_PATH: \"/new\",\n        SEARCH_POSTFIX_PATH: \"/search\",\n        TID_POSTFIX_PARTIAL_PATH: \"/conversation-\",\n        overriddenVanities: \"(archived|other|spam|new|search|conversation-.*)\",\n        getURIPathForThreadID: function(i, j) {\n            return ((((j || h.BASE_PATH)) + h.TID_POSTFIX_PARTIAL_PATH) + g.encodeComponent(g.encodeComponent(i)));\n        },\n        getThreadIDFromURI: function(i) {\n            var j = i.getPath().match((((h.BASE_PATH + \"(/[^/]*)*\") + h.TID_POSTFIX_PARTIAL_PATH) + \"([^/]+)\"));\n            if (j) {\n                var k = g.decodeComponent(g.decodeComponent(j[2]));\n                return k;\n            }\n        ;\n        },\n        getURIPathForIDOrVanity: function(i, j) {\n            if (i.match(((\"^\" + h.overriddenVanities) + \"$\"))) {\n                i = (\".\" + i);\n            };\n            return ((((j || h.BASE_PATH)) + \"/\") + i);\n        },\n        getUserIDOrVanity: function(i) {\n            var j = i.match((h.BASE_PATH + \".*/([^/]+)/?$\")), k = (j && j[1]), l = h.overriddenVanities;\n            if ((!k || k.match(((\"^\" + l) + \"$\")))) {\n                return false;\n            }\n             else if (k.match(((\"^\\\\.\" + l) + \"$\"))) {\n                return k.substr(1);\n            }\n             else return k\n            \n        ;\n        }\n    };\n    e.exports = h;\n});\n__d(\"MercuryEmoji\", [\"MercuryConfig\",\"Emoji\",\"Emote\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryConfig\"), h = b(\"Emoji\"), i = b(\"Emote\"), j = {\n        htmlEmojiAndEmote: function(k, l) {\n            if (g.MessagingDisplayEmojiGK) {\n                return h.htmlEmojiAndEmote(k, l);\n            }\n             else return i.htmlEmote(k, l)\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryErrorInfo\", [\"MercuryErrorType\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryErrorType\"), h = b(\"tx\"), i = {\n        getMessage: function(j) {\n            var k = \"This message failed to send.\";\n            if (i.isConnectionError(j)) {\n                k = \"Unable to connect to Facebook. This message failed to send. \";\n            }\n             else if (j.description) {\n                k = j.description;\n            }\n        ;\n            return k;\n        },\n        isConnectionError: function(j) {\n            if ((j && (j.type == g.TRANSPORT))) {\n                return (((j.code === 1001) || (j.code === 1004)) || (j.code === 1006))\n            };\n            return false;\n        }\n    };\n    e.exports = i;\n});\n__d(\"MercuryChannelHandler\", [\"Arbiter\",\"ChannelConstants\",\"Env\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercuryMessages\",\"MercuryPayloadSource\",\"MessagingReliabilityLogger\",\"MessagingEvent\",\"MessagingTag\",\"MercuryParticipants\",\"PresenceUtil\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"Env\"), j = b(\"MercuryActionTypeConstants\"), k = b(\"MercuryGlobalActionType\"), l = b(\"MercuryMessages\").get(), m = b(\"MercuryPayloadSource\"), n = b(\"MessagingReliabilityLogger\"), o = b(\"MessagingEvent\"), p = b(\"MessagingTag\"), q = b(\"MercuryParticipants\"), r = b(\"PresenceUtil\"), s = b(\"MercuryServerRequests\").get(), t = b(\"MercuryThreadInformer\").get(), u = b(\"copyProperties\");\n    function v(la, ma) {\n        if ((((la != h.getArbiterType(\"messaging\")) || !ma.obj) || !ma.obj.message)) {\n            n.addEntry(\"channel_receive\", \"invalid_data\");\n            return;\n        }\n    ;\n        var na = ma.obj.message, oa = {\n            author: na.mercury_author_id,\n            author_email: na.mercury_author_email,\n            body: na.body,\n            subject: na.subject,\n            has_attachment: na.has_attachment,\n            attachments: na.attachments,\n            html_body: na.html_body,\n            thread_id: na.tid,\n            message_id: na.mid,\n            coordinates: na.mercury_coordinates,\n            spoof_warning: na.mercury_spoof_warning,\n            source: na.mercury_source,\n            source_tags: na.mercury_source_tags,\n            threading_id: na.threading_id,\n            timestamp: na.timestamp,\n            timestamp_absolute: na.timestamp_absolute,\n            timestamp_relative: na.timestamp_relative,\n            timestamp_time_passed: na.timestamp_time_passed,\n            action_type: j.USER_GENERATED_MESSAGE,\n            is_unread: na.is_unread,\n            action_id: na.action_id,\n            is_forward: false,\n            forward_count: (na.forward_count || na.forward),\n            forward_message_ids: na.forward_msg_ids,\n            location_text: na.location_text,\n            folder: ma.obj.folder\n        }, pa = [u({\n        }, oa),];\n        pa = pa.concat((na.forward_actions || []));\n        var qa = m.CLIENT_CHANNEL_MESSAGE;\n        s.handleUpdateWaitForThread({\n            actions: pa,\n            payload_source: qa\n        }, na.tid);\n        if ((!na.is_unread && (na.mercury_author_id === q.user))) {\n            var ra = {\n            };\n            ra[na.tid] = ma.obj.folder;\n            w(h.getArbiterType(\"messaging\"), {\n                obj: {\n                    event: o.READ,\n                    tids: [na.tid,],\n                    folder_info: ra,\n                    timestamp: na.timestamp\n                }\n            });\n        }\n    ;\n        n.addEntry(\"channel_receive\", \"success\", [oa.thread_id,oa.message_id,r.getSessionID(),]);\n    };\n    function w(la, ma) {\n        if ((((la != h.getArbiterType(\"messaging\")) || !ma.obj) || !ma.obj.tids)) {\n            return\n        };\n        var na = [], oa = (ma.obj.event == o.READ);\n        ma.obj.tids.forEach(function(pa) {\n            na.push({\n                action_type: j.CHANGE_READ_STATUS,\n                action_id: null,\n                thread_id: pa,\n                mark_as_read: oa,\n                timestamp: (ma.obj.timestamp || 0),\n                folder: ma.obj.folder_info[pa]\n            });\n        });\n        s.handleUpdate({\n            actions: na,\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n    function x(la, ma) {\n        if ((((la != h.getArbiterType(\"messaging\")) || !ma.obj) || !ma.obj.tids)) {\n            return\n        };\n        var na = [];\n        ma.obj.tids.forEach(function(oa) {\n            na.push({\n                action_type: j.DELETE_THREAD,\n                action_id: null,\n                thread_id: oa\n            });\n        });\n        s.handleUpdate({\n            actions: na,\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n    function y(la, ma) {\n        if (((((la != h.getArbiterType(\"messaging\")) || !ma.obj) || !ma.obj.tids) || !ma.obj.mids)) {\n            return\n        };\n        var na = ma.obj.tids[0], oa = {\n            action_type: j.DELETE_MESSAGES,\n            action_id: null,\n            thread_id: na,\n            message_ids: ma.obj.mids\n        };\n        s.handleUpdate({\n            actions: [oa,],\n            threads: [ma.obj.updated_thread,],\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n    function z(la, ma) {\n        if ((((la != h.getArbiterType(\"messaging\")) || !ma.obj) || !ma.obj.folder)) {\n            return\n        };\n        var na = {\n            action_type: k.MARK_ALL_READ,\n            action_id: ma.obj.action_id,\n            folder: ma.obj.folder\n        };\n        s.handleUpdate({\n            global_actions: [na,]\n        });\n    };\n    function aa(la, ma) {\n        if (((la != h.getArbiterType(\"messaging\")) || !ma.obj.tids)) {\n            return\n        };\n        var na = m.CLIENT_CHANNEL_MESSAGE;\n        ma.obj.tids.forEach(function(oa) {\n            var pa = {\n                action_type: j.CHANGE_ARCHIVED_STATUS,\n                action_id: null,\n                thread_id: oa,\n                archived: ma.obj.state\n            };\n            s.handleUpdateWaitForThread({\n                actions: [u({\n                }, pa),],\n                payload_source: na\n            }, oa);\n        });\n    };\n    function ba(la, ma) {\n        if (((la != h.getArbiterType(\"messaging\")) || !ma.obj.tids)) {\n            return\n        };\n        var na = m.CLIENT_CHANNEL_MESSAGE, oa;\n        ma.obj.tids.forEach(function(pa) {\n            if ((ma.obj.event == o.TAG)) {\n                oa = ma.obj.tag;\n            }\n             else oa = (ma.obj.marked_as_spam ? p.SPAM : p.INBOX);\n        ;\n            var qa = {\n                action_type: j.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: pa,\n                new_folder: oa\n            };\n            s.handleUpdateWaitForThread({\n                actions: [u({\n                }, qa),],\n                payload_source: na\n            }, pa);\n        });\n    };\n    function ca(la, ma) {\n        if (((la != h.getArbiterType(\"messaging\")) || !ma.obj.tag)) {\n            return\n        };\n        switch (ma.obj.tag) {\n          case p.ACTION_ARCHIVED:\n            aa(la, ma);\n            break;\n          case p.INBOX:\n        \n          case p.OTHER:\n            ba(la, ma);\n            break;\n        };\n    };\n    function da(la, ma) {\n        if ((((la != h.getArbiterType(\"inbox\")) || !ma.obj) || !ma.obj.seen_timestamp)) {\n            return\n        };\n        s.handleUpdate({\n            message_counts: [{\n                seen_timestamp: ma.obj.seen_timestamp,\n                folder: p.INBOX\n            },],\n            unseen_thread_ids: [{\n                thread_ids: [],\n                folder: p.INBOX\n            },],\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n    function ea(la, ma) {\n        if (((la != h.getArbiterType(\"mercury\")) || !ma.obj)) {\n            return\n        };\n        t.synchronizeInforms(function() {\n            var na = ma.obj, oa = [];\n            ((na.actions || [])).forEach(function(pa) {\n                var qa = j.USER_GENERATED_MESSAGE;\n                if ((pa.action_type == j.LOG_MESSAGE)) {\n                    var ra = m.CLIENT_CHANNEL_MESSAGE;\n                    s.handleUpdateWaitForThread({\n                        actions: [u({\n                        }, pa),],\n                        payload_source: ra\n                    }, pa.thread_id);\n                }\n                 else if ((pa.action_type != qa)) {\n                    oa.push(pa);\n                }\n            ;\n            });\n            na.actions = oa;\n            na.payload_source = m.CLIENT_CHANNEL_MESSAGE;\n            s.handleUpdate(na);\n        });\n    };\n    function fa(la, ma) {\n        s.handleRoger(ma.obj);\n    };\n    function ga(la, ma) {\n        if (((((la != h.getArbiterType(\"messaging\")) || !ma.obj) || (ma.obj.mute_settings === undefined)) || !ma.obj.thread_id)) {\n            return\n        };\n        var na = j.CHANGE_MUTE_SETTINGS, oa = [{\n            action_type: na,\n            action_id: null,\n            thread_id: ma.obj.thread_id,\n            mute_settings: ma.obj.mute_settings\n        },];\n        s.handleUpdate({\n            actions: oa,\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n    function ha(la, ma) {\n        switch (ma.obj.event) {\n          case o.DELIVER:\n            v(la, ma);\n            break;\n          case o.READ:\n        \n          case o.UNREAD:\n            w(la, ma);\n            break;\n          case o.READ_ALL:\n            z(la, ma);\n            break;\n          case o.DELETE:\n            x(la, ma);\n            break;\n          case o.DELETE_MESSAGES:\n            y(la, ma);\n            break;\n          case o.TAG:\n            ca(la, ma);\n            break;\n          case o.REPORT_SPAM:\n            ba(la, ma);\n            break;\n          case o.READ_RECEIPT:\n            fa(la, ma);\n            break;\n          case o.CHANGE_MUTE_SETTINGS:\n            ga(la, ma);\n            break;\n        };\n    };\n    function ia(la, ma) {\n        if (((la != h.getArbiterType(\"messaging_zap\")) || !ma.obj)) {\n            n.addEntry(\"channel_receive_zap\", \"invalid_data\");\n            return;\n        }\n    ;\n        if (!ma.obj.is_canonical) {\n            return\n        };\n        var na = ma.obj.sender_id;\n        if ((na == i.user)) {\n            na = ma.obj.recipient_id;\n        };\n        na = (\"user:\" + na);\n        var oa = {\n            action_type: j.USER_GENERATED_MESSAGE,\n            author: (\"fbid:\" + ma.obj.sender_id),\n            body: ma.obj.body,\n            source: ma.obj.source,\n            timestamp: ma.obj.timestamp,\n            message_id: ma.obj.message_id,\n            thread_id: na,\n            specific_to_list: [(\"fbid:\" + ma.obj.sender_id),(\"fbid:\" + ma.obj.recipient_id),],\n            spoof_warning: false,\n            is_unread: true,\n            is_zap: true\n        };\n        l.zapMessage(oa);\n    };\n    var ja = [], ka = {\n        turnOn: function() {\n            if (!ja.length) {\n                var la = {\n                    mercury: ea,\n                    messaging: ha,\n                    messaging_zap: ia,\n                    inbox: da\n                };\n                for (var ma in la) {\n                    ja.push(g.subscribe(h.getArbiterType(ma), la[ma]));;\n                };\n            }\n        ;\n        },\n        turnOff: function() {\n            if (ja.length) {\n                ja.forEach(g.unsubscribe);\n                ja = [];\n            }\n        ;\n        }\n    };\n    ka.turnOn();\n    e.exports = ka;\n});\n__d(\"MercuryRoger\", [\"ArbiterMixin\",\"MercuryActionStatus\",\"MercuryServerRequests\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"MercuryActionStatus\"), i = b(\"MercuryServerRequests\").get(), j = b(\"copyProperties\"), k = {\n    }, l = {\n        getSeenBy: function(m, n) {\n            if (!m) {\n                return []\n            };\n            var o = [], p = k[m.thread_id], q = h.SUCCESS;\n            for (var r in p) {\n                if ((((p[r] > m.timestamp) && (((m.status === undefined) || (m.status === q)))) && ((!n || (r != m.author))))) {\n                    o.push(r);\n                };\n            };\n            return o;\n        },\n        getSeenTimestamp: function(m, n) {\n            var o = k[m];\n            return (o ? o[n] : null);\n        }\n    };\n    j(l, g);\n    i.subscribe(\"update-roger\", function(m, n) {\n        for (var o in n) {\n            if (!k[o]) {\n                k[o] = {\n                };\n            };\n            for (var p in n[o]) {\n                var q = k[o][p], r = n[o][p];\n                if ((!q || (r > q))) {\n                    k[o][p] = r;\n                };\n            };\n        };\n        if (n) {\n            l.inform(\"state-changed\", n);\n        };\n    });\n    e.exports = l;\n});\n__d(\"MercuryDelayedRoger\", [\"ArbiterMixin\",\"LiveTimer\",\"MercuryActionStatus\",\"MercuryConfig\",\"MercuryMessages\",\"MercuryRoger\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"LiveTimer\"), i = b(\"MercuryActionStatus\"), j = b(\"MercuryConfig\"), k = b(\"MercuryMessages\").get(), l = b(\"MercuryRoger\"), m = b(\"MercuryThreadInformer\").get(), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\"), p = b(\"setTimeoutAcrossTransitions\"), q = {\n    }, r = {\n    }, s = j[\"roger.seen_delay\"], t = o({\n        getSeenBy: function(x, y) {\n            if (r[x]) {\n                return []\n            };\n            if (!q[x]) {\n                var z = n.getThreadMetaNow(x);\n                if (z) {\n                    q[x] = {\n                        thread_id: x,\n                        author: z.participants[0],\n                        timestamp: z.timestamp\n                    };\n                };\n            }\n        ;\n            return l.getSeenBy(q[x], y);\n        }\n    }, g);\n    function u(x) {\n        var y = false;\n        k.getThreadMessagesRange(x, 0, 1, function(z) {\n            var aa = z[0];\n            if (!aa) {\n                return\n            };\n            var ba = aa.timestamp;\n            if ((aa.action_id || (aa.status == i.SUCCESS))) {\n                ba -= h.getServerTimeOffset();\n            };\n            var ca = t.getSeenBy(x);\n            if (r[x]) {\n                clearTimeout(r[x]);\n                delete r[x];\n            }\n        ;\n            var da = (ba + s), ea = (da - Date.now());\n            if ((ea > 0)) {\n                r[x] = p(function() {\n                    delete r[x];\n                    v(x);\n                }, ea);\n            };\n            q[x] = aa;\n            var fa = t.getSeenBy(x);\n            if ((ca.length || fa.length)) {\n                y = true;\n            };\n        });\n        return y;\n    };\n    function v(x) {\n        var y = {\n        };\n        y[x] = true;\n        t.inform(\"state-changed\", y);\n    };\n    function w(event, x) {\n        var y = {\n        };\n        for (var z in x) {\n            if (u(z)) {\n                y[z] = true;\n            };\n        };\n        for (var aa in y) {\n            t.inform(\"state-changed\", y);\n            break;\n        };\n    };\n    l.subscribe(\"state-changed\", function(x, y) {\n        for (var z in y) {\n            (!r[z] && v(z));;\n        };\n    });\n    m.subscribe(\"messages-received\", w);\n    m.subscribe(\"messages-reordered\", w);\n    m.subscribe(\"messages-updated\", w);\n    e.exports = t;\n});\n__d(\"MercuryFilters\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.UNREAD,], j = {\n        ALL: \"all\",\n        getSupportedFilters: function() {\n            return i.concat();\n        },\n        isSupportedFilter: function(k) {\n            return h(i, k);\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryOrderedThreadlist\", [\"JSLogger\",\"MercuryActionTypeConstants\",\"MercuryFilters\",\"MercuryFolders\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MessagingTag\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSLogger\"), h = b(\"MercuryActionTypeConstants\"), i = b(\"MercuryFilters\"), j = b(\"MercuryFolders\"), k = b(\"MercuryPayloadSource\"), l = b(\"MercurySingletonMixin\"), m = b(\"MessagingTag\"), n = b(\"RangedCallbackManager\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"MercuryThreads\"), r = b(\"arrayContains\"), s = b(\"copyProperties\"), t = g.create(\"ordered_threadlist_model\"), u = i.getSupportedFilters().concat([i.ALL,m.GROUPS,]), v = j.getSupportedFolders();\n    function w(ga, ha, ia, ja) {\n        var ka = [], la = false, ma = false, na = ((ha || [])).filter(function(ua) {\n            var va = (ua.filter || i.ALL);\n            return ((((ua.folder == ia) || ((!ua.folder && (ia == m.INBOX))))) && (va == ja));\n        }), oa = ga._threadlistOrderMap[ia][ja].getAllResources(), pa;\n        na.forEach(function(ua) {\n            ka = ka.concat(ua.thread_ids);\n            if (ua.error) {\n                if ((ua.end > oa.length)) {\n                    ma = ua.error;\n                };\n            }\n             else {\n                var va = (ua.end - ua.start);\n                if ((ua.thread_ids.length < va)) {\n                    la = true;\n                };\n            }\n        ;\n            if ((!pa || (ua.end > pa))) {\n                pa = ua.end;\n            };\n        });\n        aa(ga, ka, ia, ja);\n        if (la) {\n            ga._threadlistOrderMap[ia][ja].setReachedEndOfArray();\n        }\n         else if (ma) {\n            ga._threadlistOrderMap[ia][ja].setError(ma);\n        }\n         else {\n            var qa = ga._threadlistOrderMap[ia][ja].getCurrentArraySize();\n            if ((pa && (qa < pa))) {\n                var ra = {\n                }, sa = oa.concat(ka), ta = sa.filter(function(ua) {\n                    var va = ra[ua];\n                    ra[ua] = true;\n                    return va;\n                });\n                if (ta.length) {\n                    t.warn(\"duplicate_threads\", {\n                        folder: ia,\n                        expected_final_size: pa,\n                        actual_final_size: qa,\n                        duplicate_thread_ids: ta\n                    });\n                    ga._serverRequests.fetchThreadlistInfo(pa, ta.length, ia, ((ja == i.ALL) ? null : ja));\n                }\n            ;\n            }\n        ;\n        }\n        \n    ;\n    };\n    function x(ga, ha) {\n        v.forEach(function(ia) {\n            u.forEach(function(ja) {\n                w(ga, ha, ia, ja);\n            });\n        });\n    };\n    function y(ga, ha) {\n        var ia = {\n        };\n        v.forEach(function(ja) {\n            ia[ja] = {\n            };\n            u.forEach(function(ka) {\n                ia[ja][ka] = {\n                    to_add: [],\n                    to_remove: [],\n                    to_remove_if_last_after_add: {\n                    }\n                };\n            });\n        });\n        ha.forEach(function(ja) {\n            if (ja.is_forward) {\n                return\n            };\n            var ka = ja.thread_id, la = ba(ga, ka), ma = ca(ga, ka);\n            function na() {\n                ma.forEach(function(pa) {\n                    ia[la][pa].to_add.push(ka);\n                    if ((!ga._threadlistOrderMap[la][pa].hasReachedEndOfArray() && !ga._threadlistOrderMap[la][pa].hasResource(ka))) {\n                        ia[la][pa].to_remove_if_last_after_add[ka] = true;\n                    };\n                });\n            };\n            function oa(pa) {\n                if (r(u, pa)) {\n                    if (r(ma, pa)) {\n                        ia[la][pa].to_add.push(ka);\n                    }\n                     else ia[la][pa].to_remove.push(ka);\n                \n                };\n            };\n            if (!la) {\n                if (((ja.action_type === h.CHANGE_FOLDER) || (ja.action_type === h.CHANGE_ARCHIVED_STATUS))) {\n                    v.forEach(function(pa) {\n                        if ((pa !== la)) {\n                            u.forEach(function(qa) {\n                                ga._threadlistOrderMap[pa][qa].removeResources([ka,]);\n                            });\n                        };\n                    });\n                };\n                return;\n            }\n        ;\n            switch (ja.action_type) {\n              case h.DELETE_THREAD:\n                ma.forEach(function(pa) {\n                    ia[la][pa].to_remove.push(ka);\n                });\n                break;\n              case h.CHANGE_ARCHIVED_STATUS:\n            \n              case h.CHANGE_FOLDER:\n                na();\n                break;\n              case h.CHANGE_READ_STATUS:\n                oa(m.UNREAD);\n                break;\n              case h.USER_GENERATED_MESSAGE:\n            \n              case h.LOG_MESSAGE:\n                ma.forEach(function(pa) {\n                    if (da(ga, ka, la, pa)) {\n                        ia[la][pa].to_add.push(ka);\n                    };\n                });\n                break;\n            };\n        });\n        v.forEach(function(ja) {\n            u.forEach(function(ka) {\n                var la = ga._threadlistOrderMap[ja][ka];\n                aa(ga, ia[ja][ka].to_add, ja, ka);\n                for (var ma = (la.getCurrentArraySize() - 1); (ma >= 0); ma--) {\n                    var na = la.getResourceAtIndex(ma);\n                    if (!ia[ja][ka].to_remove_if_last_after_add[na]) {\n                        break;\n                    };\n                    ia[ja][ka].to_remove.push(na);\n                };\n                la.removeResources(ia[ja][ka].to_remove);\n            });\n        });\n    };\n    function z(ga, ha) {\n        var ia = {\n        };\n        v.forEach(function(ja) {\n            ia[ja] = {\n            };\n            u.forEach(function(ka) {\n                ia[ja][ka] = [];\n            });\n        });\n        ha.forEach(function(ja) {\n            var ka = ba(ga, ja.thread_id), la = ca(ga, ja.thread_id);\n            if (ka) {\n                la.forEach(function(ma) {\n                    if (da(ga, ja.thread_id, ka, ma)) {\n                        ia[ka][ma].push(ja.thread_id);\n                    };\n                });\n            };\n        });\n        v.forEach(function(ja) {\n            u.forEach(function(ka) {\n                if ((ia[ja][ka].length > 0)) {\n                    aa(ga, ia[ja][ka], ja, ka);\n                };\n            });\n        });\n    };\n    function aa(ga, ha, ia, ja) {\n        ja = (ja || i.ALL);\n        ga._threadlistOrderMap[ia][ja].addResources(ha);\n        v.forEach(function(ka) {\n            if ((ka != ia)) {\n                ga._threadlistOrderMap[ka][ja].removeResources(ha);\n            };\n        });\n    };\n    function ba(ga, ha) {\n        var ia = ga._threads.getThreadMetaNow(ha), ja = null;\n        if (!ia) {\n            ja = \"No thread metadata\";\n        }\n         else if (!ia.folder) {\n            ja = \"No thread folder\";\n        }\n    ;\n        if (ja) {\n            var ka = {\n                error: ja,\n                tid: ha\n            };\n            t.warn(\"no_thread_folder\", ka);\n            return null;\n        }\n    ;\n        var la = ia.folder;\n        if (ia.is_archived) {\n            la = m.ACTION_ARCHIVED;\n        };\n        if (ga._threadlistOrderMap[la]) {\n            return la;\n        }\n         else return null\n    ;\n    };\n    function ca(ga, ha) {\n        var ia = ga._threads.getThreadMetaNow(ha), ja = [i.ALL,];\n        if (!ia) {\n            var ka = {\n                error: \"no_thread_metadata\",\n                tid: ha\n            };\n            t.warn(\"no_thread_metadata\", ka);\n            return [];\n        }\n    ;\n        if (ia.unread_count) {\n            ja.push(m.UNREAD);\n        };\n        if (!ia.is_canonical) {\n            ja.push(m.GROUPS);\n        };\n        return ja;\n    };\n    function da(ga, ha, ia, ja) {\n        var ka = ga._threads.getThreadMetaNow(ha);\n        return (((ka && ka.timestamp) && (ba(ga, ha) == ia)) && r(ca(ga, ha), ja));\n    };\n    function ea(ga) {\n        this._fbid = ga;\n        this._serverRequests = o.getForFBID(this._fbid);\n        this._threadInformer = p.getForFBID(this._fbid);\n        this._threads = q.getForFBID(this._fbid);\n        this._threadlistOrderMap = {\n        };\n        v.forEach(function(ha) {\n            this._threadlistOrderMap[ha] = {\n            };\n            u.forEach(function(ia) {\n                this._threadlistOrderMap[ha][ia] = new n(function(ja) {\n                    return this._threads.getThreadMetaNow(ja).timestamp;\n                }.bind(this), function(ja, ka) {\n                    return (ka - ja);\n                }, this._serverRequests.canLinkExternally.bind(this._serverRequests));\n            }.bind(this));\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-threadlist\", function(ha, ia) {\n            if (!fa(ia)) {\n                return\n            };\n            var ja = ia.ordered_threadlists;\n            if ((ja && ja.length)) {\n                x(this, ja);\n            }\n             else {\n                var ka = ((ia.actions || [])).filter(function(la) {\n                    return la.thread_id;\n                });\n                z(this, (ia.threads || []));\n                y(this, ka);\n            }\n        ;\n            this._threadInformer.updatedThreadlist();\n        }.bind(this));\n    };\n    s(ea.prototype, {\n        getThreadlist: function(ga, ha, ia, ja, ka, la) {\n            return this.getFilteredThreadlist(ga, ha, ia, i.ALL, ja, ka, la);\n        },\n        getFilteredThreadlist: function(ga, ha, ia, ja, ka, la, ma) {\n            var na = this._threadlistOrderMap[ia][ja], oa = na.executeOrEnqueue(ga, ha, ka, la), pa = na.getUnavailableResources(oa), qa = na.getError(ga, ha, la);\n            if ((pa.length || qa)) {\n                if ((na.getCurrentArraySize() < ga)) {\n                    var ra = {\n                        start: ga,\n                        limit: ha,\n                        filter: ja,\n                        resources_size: na.getCurrentArraySize()\n                    };\n                    t.warn(\"range_with_gap\", ra);\n                }\n            ;\n                na.setError(false);\n                this._serverRequests.fetchThreadlistInfo(na.getCurrentArraySize(), pa.length, ia, ((ja == i.ALL) ? null : ja), ma);\n            }\n        ;\n            return oa;\n        },\n        getThreadlistUntilTimestamp: function(ga, ha, ia) {\n            ia = (ia || i.ALL);\n            return this._threadlistOrderMap[ha][ia].getElementsUntil(ga);\n        },\n        unsubscribe: function(ga, ha, ia) {\n            ia = (ia || i.ALL);\n            this._threadlistOrderMap[ha][ia].unsubscribe(ga);\n        }\n    });\n    s(ea, l);\n    function fa(ga) {\n        switch (ga.payload_source) {\n          case k.CLIENT_CHANGE_ARCHIVED_STATUS:\n        \n          case k.CLIENT_CHANGE_READ_STATUS:\n        \n          case k.CLIENT_CHANGE_FOLDER:\n        \n          case k.CLIENT_CHANNEL_MESSAGE:\n        \n          case k.CLIENT_DELETE_MESSAGES:\n        \n          case k.CLIENT_DELETE_THREAD:\n        \n          case k.CLIENT_SEND_MESSAGE:\n        \n          case k.SERVER_SEND_MESSAGE:\n        \n          case k.SERVER_CONFIRM_MESSAGES:\n        \n          case k.SERVER_FETCH_THREADLIST_INFO:\n        \n          case k.SERVER_THREAD_SYNC:\n        \n          case k.SERVER_ZAP:\n            return true;\n          case k.SERVER_INITIAL_DATA:\n            return ga.ordered_threadlists;\n          default:\n            return false;\n        };\n    };\n    e.exports = ea;\n});\n__d(\"MercuryUnreadState\", [\"Arbiter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"MercuryFolders\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercuryGlobalActionType\"), m = b(\"MercurySingletonMixin\"), n = b(\"MercuryThreadlistConstants\"), o = b(\"MessagingTag\"), p = b(\"MercuryServerRequests\"), q = b(\"MercuryThreadInformer\"), r = b(\"MercuryThreads\"), s = b(\"arrayContains\"), t = b(\"copyProperties\"), u = b(\"createObjectFrom\"), v = ((h.getSupportedFolders() || [])).filter(function(ma) {\n        return (ma != o.ACTION_ARCHIVED);\n    }), w = \"unread_thread_hash\", x = \"unseen_thread_list\", y = n.MAX_UNREAD_COUNT, z = i.create(\"mercury_unread_state\");\n    function aa(ma) {\n        this._fbid = ma;\n        this._serverRequests = p.getForFBID(this._fbid);\n        this._threadInformer = q.getForFBID(this._fbid);\n        this._threads = r.getForFBID(this._fbid);\n        this._allReadTimestamp = {\n        };\n        this._threadReadTimestamp = {\n        };\n        this._initialUnreadCount = {\n        };\n        this._maxCount = {\n        };\n        this._unreadResources = {\n        };\n        v.forEach(function(na) {\n            this._initialUnreadCount[na] = 0;\n            this._maxCount[na] = false;\n            this._unreadResources[na] = new j();\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-unread\", function(na, oa) {\n            fa(this, oa);\n            var pa = (oa.global_actions || []);\n            for (var qa = 0; (qa < pa.length); qa++) {\n                var ra = pa[qa];\n                if ((ra.action_type == l.MARK_ALL_READ)) {\n                    ia(this, ra.folder, ra.timestamp);\n                };\n            };\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-thread-ids\", function(na, oa) {\n            ka(this, oa);\n        }.bind(this));\n    };\n    t(aa.prototype, {\n        getUnreadCount: function(ma) {\n            if (this.exceedsMaxCount(ma)) {\n                z.error(\"unguarded_unread_count_fetch\", {\n                });\n                return 0;\n            }\n        ;\n            return ea(this, ma);\n        },\n        exceedsMaxCount: function(ma) {\n            return (this._maxCount[ma] || ((ea(this, ma) > y)));\n        },\n        markFolderAsRead: function(ma) {\n            if ((this._maxCount[ma] || (ea(this, ma) > 0))) {\n                this._serverRequests.markFolderAsRead(ma);\n            };\n        }\n    });\n    t(aa, m);\n    function ba(ma, na, oa) {\n        ma._unreadResources[na].setResource(w, oa);\n        ma._unreadResources[na].setResource(x, Object.keys(oa));\n    };\n    function ca(ma, na, oa) {\n        var pa = ma._unreadResources[na].executeOrEnqueue(w, oa), qa = ma._unreadResources[na].getUnavailableResources(pa);\n        if (qa.length) {\n            ma._serverRequests.fetchUnreadThreadIDs(na);\n        };\n    };\n    function da(ma, na) {\n        return ma._unreadResources[na].getResource(w);\n    };\n    function ea(ma, na) {\n        var oa = ma._unreadResources[na].getResource(x);\n        if (oa) {\n            return oa.length;\n        }\n         else return ma._initialUnreadCount[na]\n    ;\n    };\n    function fa(ma, na) {\n        var oa;\n        ((na.unread_thread_ids || [])).forEach(function(pa) {\n            oa = pa.folder;\n            if (!la(oa)) {\n                return\n            };\n            var qa = ja(ma, pa.thread_ids);\n            ba(ma, oa, u(qa, true));\n            if ((qa.length > y)) {\n                ma._maxCount[oa] = true;\n            };\n            ma._threadInformer.updatedUnreadState();\n        });\n        ((na.message_counts || [])).forEach(function(pa) {\n            if ((pa.unread_count === undefined)) {\n                return\n            };\n            oa = pa.folder;\n            if ((pa.unread_count > y)) {\n                ma._maxCount[oa] = true;\n                ba(ma, oa, {\n                });\n                ma._threadInformer.updatedUnreadState();\n            }\n             else {\n                ma._initialUnreadCount[oa] = pa.unread_count;\n                if ((ma._initialUnreadCount[oa] === 0)) {\n                    ba(ma, oa, {\n                    });\n                };\n                ma._threadInformer.updatedUnreadState();\n            }\n        ;\n        });\n        ((na.actions || [])).forEach(function(pa) {\n            if (pa.is_forward) {\n                return\n            };\n            var qa = k, ra = (pa.thread_id ? pa.thread_id : pa.server_thread_id);\n            if ((pa.action_type == qa.DELETE_THREAD)) {\n                v.forEach(function(ta) {\n                    ha(ma, ta, ra);\n                });\n            }\n             else if (((pa.action_type == qa.CHANGE_ARCHIVED_STATUS) || (pa.action_type == qa.CHANGE_FOLDER))) {\n                var sa = ma._threads.getThreadMetaNow(pa.thread_id);\n                oa = h.getFromMeta(sa);\n                if ((la(oa) && (sa.unread_count > 0))) {\n                    ga(ma, oa, ra);\n                };\n                v.forEach(function(ta) {\n                    if ((ta != oa)) {\n                        ha(ma, ta, ra);\n                    };\n                });\n            }\n             else {\n                oa = pa.folder;\n                if (!la(oa)) {\n                    return\n                };\n                if ((pa.action_type == qa.CHANGE_READ_STATUS)) {\n                    if (pa.mark_as_read) {\n                        ha(ma, oa, ra, pa.timestamp);\n                    }\n                     else ga(ma, oa, ra, pa.timestamp);\n                ;\n                }\n                 else if (((pa.action_type == qa.USER_GENERATED_MESSAGE) || (pa.action_type == qa.LOG_MESSAGE))) {\n                    if (pa.is_unread) {\n                        ga(ma, oa, ra, pa.timestamp);\n                    }\n                }\n            ;\n            }\n            \n        ;\n        });\n    };\n    function ga(ma, na, oa, pa) {\n        if (ma._maxCount[na]) {\n            return\n        };\n        ca(ma, na, function(qa) {\n            var ra = (ma._allReadTimestamp[na] || 0), sa = (ma._threadReadTimestamp[oa] || 0), ta = (pa || Number.POSITIVE_INFINITY);\n            if ((((ta >= ra) && (ta >= sa)) && !qa[oa])) {\n                qa[oa] = (pa || 0);\n                ba(ma, na, qa);\n                ma._threadInformer.updatedUnreadState();\n            }\n        ;\n        });\n    };\n    function ha(ma, na, oa, pa) {\n        if (ma._maxCount[na]) {\n            return\n        };\n        ca(ma, na, function(qa) {\n            if (pa) {\n                var ra = ma._threadReadTimestamp[oa];\n                if ((!ra || (ra < pa))) {\n                    ma._threadReadTimestamp[oa] = pa;\n                };\n            }\n        ;\n            var sa = qa[oa];\n            if (((pa && (typeof sa == \"number\")) && (pa < sa))) {\n                return\n            };\n            if ((oa in qa)) {\n                delete qa[oa];\n                ba(ma, na, qa);\n                ma._threadInformer.updatedUnreadState();\n            }\n        ;\n        });\n    };\n    function ia(ma, na, oa) {\n        ma._maxCount[na] = false;\n        ba(ma, na, {\n        });\n        ma._allReadTimestamp[na] = Math.max((ma._allReadTimestamp[na] || 0), (oa || 0));\n        ma._threadInformer.updatedUnreadState();\n    };\n    function ja(ma, na) {\n        return na.map(ma._serverRequests.convertThreadIDIfAvailable.bind(ma._serverRequests));\n    };\n    function ka(ma, na) {\n        v.forEach(function(oa) {\n            var pa = da(ma, oa);\n            if (!pa) {\n                return\n            };\n            for (var qa in na) {\n                var ra = na[qa];\n                if (pa[qa]) {\n                    pa[ra] = pa[qa];\n                    delete pa[qa];\n                }\n            ;\n            };\n            ba(ma, oa, pa);\n        });\n    };\n    function la(ma) {\n        return s(v, ma);\n    };\n    g.subscribe(i.DUMP_EVENT, function(ma, na) {\n        na.messaging = (na.messaging || {\n        });\n        na.messaging.unread = {\n        };\n        na.messaging.unread_max_count = {\n        };\n        var oa = aa._getInstances();\n        for (var pa in oa) {\n            na.messaging.unread[pa] = {\n            };\n            na.messaging.unread_max_count[pa] = {\n            };\n            v.forEach(function(qa) {\n                na.messaging.unread[pa][qa] = t({\n                }, da(oa[pa], qa));\n                na.messaging.unread_max_count[pa][qa] = oa[pa]._maxCount[qa];\n            });\n        };\n    });\n    e.exports = aa;\n});\n__d(\"MercuryUnseenState\", [\"Arbiter\",\"TimestampConverter\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercurySingletonMixin\"), m = b(\"MercuryThreadlistConstants\"), n = b(\"MessagingTag\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"copyProperties\"), r = b(\"createObjectFrom\"), s = m.MAX_UNSEEN_COUNT, t = \"unseen_thread_hash\", u = \"unseen_thread_list\", v = i.create(\"mercury_unseen_state\");\n    function w(ja) {\n        this._fbid = ja;\n        this._serverRequests = o.getForFBID(this._fbid);\n        this._threadInformer = p.getForFBID(this._fbid);\n        this._initialUnseenCount = 0;\n        this._lastSeenTimestamp = 0;\n        this._maxCount = false;\n        this._unseenResources = new j();\n        this._serverRequests.subscribe(\"update-unseen\", function(ka, la) {\n            ba(this, la);\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-thread-ids\", function(ka, la) {\n            ha(this, la);\n        }.bind(this));\n    };\n    q(w.prototype, {\n        getUnseenCount: function() {\n            if (this.exceedsMaxCount()) {\n                v.error(\"unguarded_unseen_count_fetch\", {\n                });\n                return 0;\n            }\n        ;\n            return aa(this);\n        },\n        exceedsMaxCount: function() {\n            return (this._maxCount || ((aa(this) > s)));\n        },\n        markAsSeen: function() {\n            if (((aa(this) > 0) || this._maxCount)) {\n                this._serverRequests.markSeen();\n                ca(this, h.convertActionIDToTimestamp(this._serverRequests.getLastActionID()), []);\n            }\n        ;\n        },\n        markThreadSeen: function(ja, ka) {\n            var la = {\n            };\n            la[ja] = null;\n            ea(this, la, ka);\n        }\n    });\n    q(w, l);\n    function x(ja, ka) {\n        ja._unseenResources.setResource(t, ka);\n        ja._unseenResources.setResource(u, Object.keys(ka));\n    };\n    function y(ja, ka) {\n        var la = ja._unseenResources.executeOrEnqueue(t, ka), ma = ja._unseenResources.getUnavailableResources(la);\n        if (ma.length) {\n            ja._serverRequests.fetchUnseenThreadIDs();\n        };\n    };\n    function z(ja) {\n        return ja._unseenResources.getResource(t);\n    };\n    function aa(ja) {\n        var ka = ja._unseenResources.getResource(u);\n        if (ka) {\n            return ka.length;\n        }\n         else return ja._initialUnseenCount\n    ;\n    };\n    function ba(ja, ka) {\n        var la = ia(ka);\n        if (ka.unseen_thread_ids) {\n            ka.unseen_thread_ids.forEach(function(wa) {\n                if ((wa.folder != n.INBOX)) {\n                    return\n                };\n                var xa = ga(ja, wa.thread_ids), ya = ja._lastSeenTimestamp;\n                if ((la && la.seen_timestamp)) {\n                    ya = la.seen_timestamp;\n                };\n                ca(ja, ya, xa);\n                if ((la && (la.unseen_count > s))) {\n                    ja._maxCount = true;\n                };\n            });\n        }\n         else if ((la && la.seen_timestamp)) {\n            ja._lastSeenTimestamp = la.seen_timestamp;\n            if ((la.unseen_count > s)) {\n                ja._maxCount = true;\n                x(ja, {\n                });\n            }\n             else {\n                ja._initialUnseenCount = la.unseen_count;\n                if ((ja._initialUnseenCount === 0)) {\n                    x(ja, {\n                    });\n                };\n            }\n        ;\n        }\n         else {\n            if (ja._maxCount) {\n                return\n            };\n            var ma = ka.actions;\n            if ((!ma || !(ma.length))) {\n                return\n            };\n            var na = {\n            }, oa = {\n            };\n            for (var pa = 0; (pa < ma.length); pa++) {\n                var qa = ma[pa];\n                if (qa.is_forward) {\n                    continue;\n                };\n                var ra = qa.action_type, sa = qa.action_id, ta = (qa.thread_id ? qa.thread_id : qa.server_thread_id), ua = ((qa.folder === undefined) || (qa.folder == n.INBOX));\n                if (!ua) {\n                    continue;\n                };\n                if (((ra == k.USER_GENERATED_MESSAGE) || (ra == k.LOG_MESSAGE))) {\n                    var va = h.isGreaterThan(sa, na[ta]);\n                    if ((qa.is_unread && ((!na[ta] || va)))) {\n                        na[ta] = sa;\n                    };\n                }\n                 else if (((ra == k.CHANGE_READ_STATUS) && qa.mark_as_read)) {\n                    oa[ta] = sa;\n                }\n            ;\n            };\n            da(ja, na);\n            ea(ja, oa);\n        }\n        \n    ;\n    };\n    function ca(ja, ka, la) {\n        var ma = z(ja);\n        if ((((ma === undefined) || (ka > ja._lastSeenTimestamp)) || ja._maxCount)) {\n            ja._lastSeenTimestamp = ka;\n            la = (la || []);\n            if ((la.length <= s)) {\n                ja._maxCount = false;\n            };\n            var na = {\n            }, oa = (z(ja) || {\n            });\n            for (var pa in oa) {\n                if ((oa[pa] !== true)) {\n                    var qa = oa[pa];\n                    if (fa(ja, qa)) {\n                        na[pa] = qa;\n                    };\n                }\n            ;\n            };\n            var ra = q(r(la, true), na);\n            x(ja, ra);\n            ja._threadInformer.updatedUnseenState();\n        }\n    ;\n    };\n    function da(ja, ka) {\n        if (ja._maxCount) {\n            return\n        };\n        var la = {\n        }, ma = false;\n        for (var na in ka) {\n            var oa = ka[na];\n            if (fa(ja, oa)) {\n                la[na] = oa;\n                ma = true;\n            }\n        ;\n        };\n        if (!ma) {\n            return\n        };\n        y(ja, function(pa) {\n            for (var qa in la) {\n                var ra = la[qa];\n                if ((!pa[qa] && fa(ja, ra))) {\n                    pa[qa] = la[qa];\n                };\n            };\n            x(ja, pa);\n            ja._threadInformer.updatedUnseenState();\n        });\n    };\n    function ea(ja, ka, la) {\n        var ma = false;\n        for (var na in ka) {\n            ma = true;\n            break;\n        };\n        if (ma) {\n            y(ja, function(oa) {\n                var pa = false;\n                for (var qa in ka) {\n                    var ra = ka[qa], sa = h.isGreaterThan(ra, oa[qa]);\n                    if ((oa[qa] && ((!ra || sa)))) {\n                        delete oa[qa];\n                        pa = true;\n                    }\n                ;\n                };\n                if (pa) {\n                    x(ja, oa);\n                    ja._threadInformer.updatedUnseenState();\n                    if ((la && (aa(ja) === 0))) {\n                        ja._serverRequests.markSeen();\n                    };\n                }\n            ;\n            });\n        };\n    };\n    function fa(ja, ka) {\n        var la = h.convertActionIDToTimestamp(ka);\n        return (la > ja._lastSeenTimestamp);\n    };\n    function ga(ja, ka) {\n        return ka.map(ja._serverRequests.convertThreadIDIfAvailable.bind(ja._serverRequests));\n    };\n    function ha(ja, ka) {\n        var la = z(ja);\n        if (!la) {\n            return\n        };\n        for (var ma in ka) {\n            var na = ka[ma];\n            if (la[ma]) {\n                la[na] = la[ma];\n                delete la[ma];\n            }\n        ;\n        };\n        x(ja, la);\n    };\n    function ia(ja) {\n        var ka = ((ja.message_counts || []));\n        for (var la = 0; (la < ka.length); la++) {\n            if ((ka[la].folder == n.INBOX)) {\n                return ka[la]\n            };\n        };\n        return null;\n    };\n    g.subscribe(i.DUMP_EVENT, function(ja, ka) {\n        ka.messaging = (ka.messaging || {\n        });\n        ka.messaging.unseen = {\n        };\n        ka.messaging.unseen_max_count = {\n        };\n        ka.messaging.unseen_time = {\n        };\n        var la = w._getInstances();\n        for (var ma in la) {\n            ka.messaging.unseen[ma] = q({\n            }, z(la[ma]));\n            ka.messaging.unseen_max_count[ma] = la[ma]._maxCount;\n            ka.messaging.unseen_time[ma] = la[ma]._lastSeenTimestamp;\n        };\n    });\n    e.exports = w;\n});\n__d(\"MercuryThreadMetadataRawRenderer\", [\"Event\",\"CSS\",\"DOM\",\"MercuryActionStatus\",\"MercuryErrorInfo\",\"MessagingTag\",\"MercuryStatusTemplates\",\"Tooltip\",\"URI\",\"WebMessengerPermalinkConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MercuryActionStatus\"), k = b(\"MercuryErrorInfo\"), l = b(\"MessagingTag\"), m = b(\"MercuryStatusTemplates\"), n = b(\"Tooltip\"), o = b(\"URI\"), p = b(\"WebMessengerPermalinkConstants\"), q = b(\"cx\"), r = b(\"tx\"), s = {\n        renderParticipantListWithNoThreadName: function(u, v, w, x, y, z) {\n            var aa = {\n                callback: true,\n                check_length: true,\n                show_unread_count: true\n            };\n            z = (z || {\n            });\n            var ba = {\n            };\n            for (var ca in z) {\n                if (aa[ca]) {\n                    ba[ca] = z[ca];\n                    delete z[ca];\n                }\n            ;\n            };\n            var da = w.map(function(ia) {\n                return x[ia];\n            }), ea = this.renderRawParticipantList(u, da, w.length, z);\n            ea = this.renderRawTitleWithUnreadCount(ea, (ba.show_unread_count ? v.unread_count : 0));\n            var fa = z.abbr_mode, ga = {\n            };\n            for (var ha in z) {\n                ga[ha] = z[ha];;\n            };\n            ga.abbr_mode = true;\n            y.forEach(function(ia) {\n                var ja = ((y.length > 1) ? this._cloneIfDOMElement(ea) : ea);\n                i.setContent(ia, ja);\n                if (((ba.check_length && !fa) && (ia.scrollWidth > ia.clientWidth))) {\n                    var ka = this.renderRawParticipantList(u, da, w.length, ga), la = this.renderRawTitleWithUnreadCount(ka, (ba.show_unread_count ? v.unread_count : 0));\n                    i.setContent(ia, la);\n                }\n            ;\n            }.bind(this));\n            (ba.callback && ba.callback(ea));\n        },\n        renderRawParticipantList: function(u, v, w, x) {\n            var y = {\n                abbr_mode: true,\n                last_separator_uses_and: true,\n                names_renderer: true\n            };\n            x = (x || {\n            });\n            var z = null;\n            if (x.names_renderer) {\n                z = x.names_renderer(v);\n            }\n             else z = v.map(function(ca) {\n                return ca.name;\n            });\n        ;\n            var aa = null;\n            if ((z.length === 0)) {\n                if (!u) {\n                    aa = \"New Message\";\n                }\n                 else aa = \"No Participants\";\n            ;\n            }\n             else if ((z.length == 1)) {\n                aa = z[0];\n            }\n             else if ((z.length == 2)) {\n                var ba = {\n                    participant1: z[0],\n                    participant2: z[1]\n                };\n                if (x.last_separator_uses_and) {\n                    aa = r._(\"{participant1} and {participant2}\", ba);\n                }\n                 else aa = r._(\"{participant1}, {participant2}\", ba);\n            ;\n            }\n             else if (x.last_separator_uses_and) {\n                if (x.abbr_mode) {\n                    aa = r._(\"{participant1} and {others_link}\", {\n                        participant1: z[0],\n                        others_link: this.renderRawParticipantCount(u, {\n                            render_subset: true,\n                            count: (w - 1)\n                        })\n                    });\n                }\n                 else if ((z.length == 3)) {\n                    aa = r._(\"{participant1}, {participant2} and {participant3}\", {\n                        participant1: z[0],\n                        participant2: z[1],\n                        participant3: z[2]\n                    });\n                }\n                 else aa = r._(\"{participant1}, {participant2} and {others_link}\", {\n                    participant1: z[0],\n                    participant2: z[1],\n                    others_link: this.renderRawParticipantCount(u, {\n                        render_subset: true,\n                        count: (w - 2)\n                    })\n                });\n                \n            ;\n            }\n             else if ((z.length == 3)) {\n                aa = r._(\"{participant1}, {participant2}, {participant3}\", {\n                    participant1: z[0],\n                    participant2: z[1],\n                    participant3: z[2]\n                });\n            }\n             else aa = r._(\"{participant1}, {participant2}, {participant3}, {others_link}\", {\n                participant1: z[0],\n                participant2: z[1],\n                participant3: z[2],\n                others_link: this.renderRawParticipantCount(u, {\n                    render_subset: true,\n                    count: (w - 3)\n                })\n            });\n            \n            \n            \n            \n        ;\n            if (Array.isArray(aa)) {\n                aa = i.create(\"span\", {\n                }, aa);\n            };\n            return aa;\n        },\n        renderRawTitleWithUnreadCount: function(u, v) {\n            var w = u;\n            if ((v && (v > 1))) {\n                w = i.create(\"span\", {\n                }, r._(\"{conversation_title} ({unread_count})\", {\n                    conversation_title: u,\n                    unread_count: v\n                }));\n            };\n            return w;\n        },\n        renderRawParticipantCount: function(u, v) {\n            var w = v.render_subset, x;\n            if (!w) {\n                x = ((v.count > 1) ? r._(\"{num} people\", {\n                    num: v.count\n                }) : \"1 person\");\n            }\n             else x = ((v.count > 1) ? r._(\"{others_count} others\", {\n                others_count: v.count\n            }) : \"1 other\");\n        ;\n            return x;\n        },\n        renderShortNames: function(u) {\n            if ((u.length == 1)) {\n                return [u[0].name,]\n            };\n            return u.map(function(v) {\n                return v.short_name;\n            });\n        },\n        getUserCanonicalTitanURL: function(u, v, w) {\n            var x = new o().setSubdomain(\"www\"), y = u.substr((u.indexOf(\":\") + 1));\n            x.setPath(((t(w) + \"/\") + y));\n            (v && v(x.toString()));\n            return x.toString();\n        },\n        getTitanURLWithServerID: function(u, v, w) {\n            var x = new o().setSubdomain(\"www\");\n            x.setPath(p.getURIPathForThreadID(u, t(w)));\n            (v && v(x.toString()));\n            return x.toString();\n        },\n        renderUserCanonicalTitanLink: function(u, v, w, x) {\n            var y = this.getUserCanonicalTitanURL(u, null, x);\n            v.setAttribute(\"href\", y);\n            (w && w());\n        },\n        renderTitanLinkWithServerID: function(u, v, w, x) {\n            var y = this.getTitanURLWithServerID(u, null, x);\n            v.setAttribute(\"href\", y);\n            (w && w());\n        },\n        renderStatusIndicator: function(u, v, w) {\n            var x;\n            if ((u == j.RESENDING)) {\n                x = this.renderResendIndicator();\n            }\n             else if (((((u !== undefined) && (u != j.UNSENT)) && (u != j.UNCONFIRMED)) && (u != j.SUCCESS))) {\n                x = this.renderErrorIndicator(v, w);\n            }\n        ;\n            return x;\n        },\n        renderResendIndicator: function() {\n            return m[\":fb:mercury:resend-indicator\"].render();\n        },\n        renderErrorIndicator: function(u, v) {\n            if (!u) {\n                return null\n            };\n            var w = m[\":fb:mercury:error-indicator\"].render(), x = u.is_transient, y = k.getMessage(u);\n            if (x) {\n                if (k.isConnectionError(u)) {\n                    y = r._(\"{message} Check your network connection or click to try again.\", {\n                        message: y\n                    });\n                }\n                 else y = r._(\"{message} Click to send again.\", {\n                    message: y\n                });\n            \n            };\n            n.set(w, y, \"above\", \"center\");\n            if ((v && x)) {\n                g.listen(w, \"click\", v);\n                w.setAttribute(\"tabindex\", \"0\");\n                h.addClass(w, \"_55q-\");\n            }\n        ;\n            return w;\n        },\n        _cloneIfDOMElement: function(u) {\n            if (u.cloneNode) {\n                return u.cloneNode();\n            }\n             else return u\n        ;\n        }\n    };\n    function t(u) {\n        var v = p.BASE_PATH;\n        if ((u && (u != l.INBOX))) {\n            v += (\"/\" + u);\n        };\n        return v;\n    };\n    e.exports = s;\n});\n__d(\"MercurySeenByAll\", [\"CSS\",\"DataStore\",\"DOM\",\"MercuryParticipants\",\"MercuryDelayedRoger\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"MercuryParticipants\"), k = b(\"MercuryDelayedRoger\"), l = b(\"MercuryThreads\").get(), m = {\n    }, n = {\n        updateOnSeenChange: function(p, q) {\n            m[p.tagName] = true;\n            h.set(p, \"thread-id\", q.thread_id);\n            g.addClass(p, \"seenByListener\");\n            o(p, q);\n        }\n    };\n    function o(p, q) {\n        var r = q.participants.filter(function(t) {\n            return (t !== j.user);\n        }), s = ((q.participants.length > 0) && (q.participants[0] === j.user));\n        g.conditionClass(p, \"repliedLast\", s);\n        g.conditionClass(p, \"seenByAll\", (s && (k.getSeenBy(q.thread_id).length === r.length)));\n    };\n    k.subscribe(\"state-changed\", function(p, q) {\n        for (var r in m) {\n            var s = i.scry(document.body, (r + \".seenByListener\"));\n            for (var t = 0; (t < s.length); t++) {\n                var u = s[t], v = h.get(u, \"thread-id\");\n                if (q[v]) {\n                    l.getThreadMeta(v, function(w) {\n                        o(u, w);\n                    });\n                };\n            };\n        };\n    });\n    e.exports = n;\n});\n__d(\"MercuryThreadMetadataRenderer\", [\"MercuryConfig\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"MercuryAttachment\",\"MercuryAttachmentType\",\"MercuryEmoji\",\"MercuryMessageSourceTags\",\"MercurySingletonMixin\",\"MercuryThreadMetadataRawRenderer\",\"MercuryParticipants\",\"MercuryParticipantsConstants\",\"React\",\"MercurySeenByAll\",\"MercuryServerRequests\",\"SplitImage.react\",\"Style\",\"MercuryThreadlistIconTemplates\",\"MercuryThreads\",\"Tooltip\",\"URI\",\"arrayContains\",\"createArrayFrom\",\"copyProperties\",\"cx\",\"formatDate\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryConfig\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"JSLogger\"), l = b(\"MercuryAttachment\"), m = b(\"MercuryAttachmentType\"), n = b(\"MercuryEmoji\"), o = b(\"MercuryMessageSourceTags\"), p = b(\"MercurySingletonMixin\"), q = b(\"MercuryThreadMetadataRawRenderer\"), r = b(\"MercuryParticipants\"), s = b(\"MercuryParticipantsConstants\"), t = b(\"React\"), u = b(\"MercurySeenByAll\"), v = b(\"MercuryServerRequests\"), w = b(\"SplitImage.react\"), x = b(\"Style\"), y = b(\"MercuryThreadlistIconTemplates\"), z = b(\"MercuryThreads\"), aa = b(\"Tooltip\"), ba = b(\"URI\"), ca = b(\"arrayContains\"), da = b(\"createArrayFrom\"), ea = b(\"copyProperties\"), fa = b(\"cx\"), ga = b(\"formatDate\"), ha = b(\"tx\"), ia = k.create(\"wm_timestamp\");\n    function ja(pa) {\n        this._fbid = pa;\n        this._serverRequests = v.getForFBID(pa);\n        this._threads = z.getForFBID(pa);\n    };\n    ea(ja, p);\n    ea(ja.prototype, {\n        renderTimestamp: function(pa, qa, ra, sa) {\n            if (sa) {\n                if (!qa) {\n                    ia.warn(\"no_title\");\n                    qa = (new Date(sa)).toLocaleDateString();\n                }\n            ;\n                pa.setAttribute(\"title\", qa);\n                pa.setAttribute(\"data-utime\", (sa / 1000));\n                if (!ra) {\n                    ia.warn(\"no_display\");\n                    ra = ga(new Date(sa), (g[\"24h_times\"] ? \"H:i\" : \"g:ia\"));\n                }\n            ;\n                i.setContent(pa, ra);\n                h.show(pa);\n            }\n        ;\n        },\n        renderMessageSourceTags: function(pa, qa, ra, sa) {\n            var ta = \"\", ua = \"\", va = \"\";\n            if (ca(ra, o.MESSENGER)) {\n                ta = \"Sent from Messenger\";\n                ua = new ba(\"/mobile/messenger\");\n                va = \"_9g\";\n            }\n             else if (ca(ra, o.MOBILE)) {\n                ta = \"Sent from Mobile\";\n                ua = new ba(\"/mobile/\");\n                va = \"_9j\";\n            }\n             else if (ca(ra, o.CHAT)) {\n                ta = \"Sent from chat\";\n                va = \"_9h\";\n            }\n             else if (ca(ra, o.EMAIL)) {\n                if (sa) {\n                    ta = ha._(\"Sent from {email}\", {\n                        email: sa\n                    });\n                }\n                 else ta = \"Sent from email\";\n            ;\n                va = \"_9i\";\n            }\n            \n            \n            \n        ;\n            if (va) {\n                aa.set(pa, ta);\n                h.addClass(qa, va);\n                if (ua) {\n                    pa.setAttribute(\"href\", ua);\n                }\n                 else pa.removeAttribute(\"href\");\n            ;\n            }\n             else h.hide(pa);\n        ;\n        },\n        renderMessageLocation: function(pa, qa, ra) {\n            var sa = ba(\"/ajax/messaging/hovercard/map.php\").setQueryData(ra);\n            pa.setAttribute(\"data-hovercard\", sa);\n            h.removeClass(pa, \"_b9\");\n            h.show(qa);\n        },\n        renderSpoofWarning: function(pa, qa, ra) {\n            if (qa) {\n                h.addClass(pa, \"_sa\");\n                aa.set(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n                    name_or_email: ra.name\n                }));\n            }\n        ;\n        },\n        renderChatSpoofWarning: function(pa, qa, ra) {\n            if (qa) {\n                i.appendContent(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n                    name_or_email: ra.name\n                }));\n            };\n        },\n        renderCoreThreadlist: function(pa, qa, ra, sa, ta) {\n            sa = (sa || {\n            });\n            this.renderThreadImage(pa, qa.getNode(\"image\"));\n            var ua = qa.getNode(\"accessibleName\"), va = [qa.getNode(\"name\"),];\n            if (ua) {\n                va.push(ua);\n            };\n            oa(this, pa, va, sa);\n            if ((pa.folder && ta)) {\n                na(qa.getNode(\"folderBadge\"), pa.folder);\n            };\n            var wa = qa.getNode(\"timestamp\");\n            this.renderTimestamp(wa, pa.timestamp_absolute, pa.timestamp_relative, pa.timestamp);\n            this.renderSnippet(pa, qa.getNode(\"snippet\"));\n            la(qa, pa);\n            ra(qa, pa);\n        },\n        renderAndSeparatedParticipantList: function(pa, qa, ra) {\n            ra = (ra || {\n            });\n            ra.last_separator_uses_and = true;\n            this._threads.getThreadMeta(pa, function(sa) {\n                oa(this, sa, qa, ra);\n            }.bind(this));\n        },\n        renderSnippet: function(pa, qa) {\n            var ra = false, sa = i.create(\"span\");\n            h.addClass(sa, \"MercuryRepliedIndicator\");\n            i.appendContent(qa, sa);\n            u.updateOnSeenChange(sa, pa);\n            var ta = pa.snippet;\n            if (ta) {\n                if (pa.snippet_has_attachment) {\n                    i.appendContent(qa, i.create(\"span\", {\n                        className: \"MercuryAttachmentIndicator\"\n                    }));\n                };\n                if (pa.is_forwarded_snippet) {\n                    i.appendContent(qa, i.create(\"strong\", {\n                        className: \"_55q_\"\n                    }, \"Forwarded Message:\"));\n                };\n                if ((ta.substr(0, 4) == \"?OTR\")) {\n                    ta = \"[encrypted message]\";\n                }\n                 else ta = ta.replace(/\\r\\n|[\\r\\n]/g, \" \");\n            ;\n                ta = j(n.htmlEmojiAndEmote(ta));\n            }\n             else {\n                if (pa.is_forwarded_snippet) {\n                    i.appendContent(qa, i.create(\"strong\", {\n                        className: \"_55q_\"\n                    }, \"Forwarded Message\"));\n                };\n                if (((pa.snippet_has_attachment && pa.snippet_attachments) && pa.snippet_attachments.length)) {\n                    ra = true;\n                    ta = i.create(\"span\");\n                    ma(this, pa, ta);\n                }\n            ;\n            }\n        ;\n            var ua = pa.participants.length;\n            if (pa.is_subscribed) {\n                ua--;\n            };\n            if ((((!ra && pa.snippet_sender) && (r.getIDForUser(this._fbid) != pa.snippet_sender)) && (ua > 1))) {\n                r.get(pa.snippet_sender, function(va) {\n                    if (va.short_name) {\n                        i.appendContent(qa, ha._(\"{name}: {conversation_snippet}\", {\n                            name: va.short_name,\n                            conversation_snippet: ta\n                        }));\n                    }\n                     else i.appendContent(qa, ta);\n                ;\n                });\n            }\n             else i.appendContent(qa, ta);\n        ;\n        },\n        getTitanURL: function(pa, qa, ra) {\n            if ((pa.substr(0, pa.indexOf(\":\")) == \"user\")) {\n                q.getUserCanonicalTitanURL(pa, qa, ra);\n            }\n             else this._serverRequests.getServerThreadID(pa, function(sa) {\n                q.getTitanURLWithServerID(sa, qa, ra);\n            });\n        ;\n        },\n        renderTitanLink: function(pa, qa, ra, sa) {\n            if ((pa.substr(0, pa.indexOf(\":\")) == \"user\")) {\n                q.renderUserCanonicalTitanLink(pa, qa, ra, sa);\n            }\n             else this._serverRequests.getServerThreadID(pa, function(ta) {\n                q.renderTitanLinkWithServerID(ta, qa, ra, sa);\n            });\n        ;\n        },\n        renderThreadImage: function(pa, qa) {\n            if (pa.image_src) {\n                var ra = w({\n                    srcs: pa.image_src,\n                    size: s.BIG_IMAGE_SIZE\n                });\n                t.renderComponent(ra, qa);\n                return;\n            }\n        ;\n            var sa = r.getIDForUser(this._fbid), ta = [], ua = pa.participants.filter(function(va) {\n                return (va != sa);\n            });\n            if (!ua.length) {\n                ta = [sa,];\n            }\n             else if ((ua.length == 1)) {\n                ta = [ua[0],];\n            }\n             else ta = ua.slice(0, 3);\n            \n        ;\n            this.renderParticipantImages(ta, qa);\n        },\n        renderParticipantImages: function(pa, qa) {\n            r.getOrderedBigImageMulti(pa, function(ra) {\n                var sa = w({\n                    srcs: ra,\n                    border: true,\n                    size: s.BIG_IMAGE_SIZE\n                });\n                t.renderComponent(sa, qa);\n            });\n        },\n        renderParticipantList: function(pa, qa, ra, sa) {\n            return q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa);\n        },\n        renderThreadNameAndParticipantList: function(pa, qa, ra, sa) {\n            var ta = q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa), ua = this._threads.getThreadMetaNow(pa);\n            if (!ua.name) {\n                return ta\n            };\n            return ha._(\"{conversation_name} [with {participant_list}]\", {\n                conversation_name: ua.name,\n                participant_list: ta\n            });\n        },\n        renderParticipantCount: function(pa, qa) {\n            return q.renderRawParticipantCount(this._serverRequests.getServerThreadIDNow(pa), qa);\n        }\n    });\n    function ka(pa) {\n        if (!pa.snippet_attachments) {\n            return []\n        };\n        return pa.snippet_attachments.filter(function(qa) {\n            return (qa.attach_type === m.PHOTO);\n        });\n    };\n    function la(pa, qa) {\n        var ra = ka(qa);\n        if ((ra.length === 0)) {\n            return\n        };\n        var sa = ra[0].thumbnail_url;\n        if (!sa) {\n            return\n        };\n        var ta = (((ra.length == 1)) ? \"snippet-thumbnail-single\" : \"snippet-thumbnail-multiple\"), ua = pa.getNode(ta);\n        if (!ua) {\n            return\n        };\n        var va = i.find(ua, \"i\");\n        x.set(va, \"background-image\", ((\"url(\" + sa) + \")\"));\n        h.show(ua);\n    };\n    function ma(pa, qa, ra) {\n        var sa = (qa.snippet_sender && (r.getIDForUser(pa._fbid) == qa.snippet_sender)), ta = function(ya) {\n            if ((!qa.snippet_sender || sa)) {\n                ya(null);\n                return;\n            }\n        ;\n            r.get(qa.snippet_sender, function(za) {\n                ya(za.short_name);\n            });\n        }, ua = ka(qa), va = (ua.length == qa.snippet_attachments.length), wa = (((qa.snippet_attachments.length === 1) && qa.snippet_attachments[0].metadata) && (qa.snippet_attachments[0].metadata.type == \"fb_voice_message\")), xa = ((qa.snippet_attachments.length === 1) && (qa.snippet_attachments[0].attach_type === m.STICKER));\n        ta(function(ya) {\n            var za = null;\n            if (va) {\n                var ab = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n                if ((ua.length === 1)) {\n                    za = (sa ? \"You sent a photo.\" : ha._(\"{name} sent a photo.\", {\n                        name: ya\n                    }));\n                }\n                 else za = (sa ? ha._(\"You sent {num_photos} photos.\", {\n                    num_photos: ua.length\n                }) : ha._(\"{name} sent {num_photos} photos.\", {\n                    name: ya,\n                    num_photos: ua.length\n                }));\n            ;\n                h.addClass(ab, l.getAttachIconClass(ua[0].icon_type));\n                i.appendContent(ab, za);\n                i.appendContent(ra, ab);\n            }\n             else if (wa) {\n                var bb = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n                za = (sa ? \"You sent a voice message.\" : ha._(\"{name} sent a voice message.\", {\n                    name: ya\n                }));\n                h.addClass(bb, l.getAttachIconClass(qa.snippet_attachments[0].icon_type));\n                i.appendContent(bb, za);\n                i.appendContent(ra, bb);\n            }\n             else if (xa) {\n                za = (sa ? \"You sent a sticker.\" : ha._(\"{name} sent a sticker.\", {\n                    name: ya\n                }));\n                i.appendContent(ra, za);\n            }\n             else qa.snippet_attachments.filter(function(cb) {\n                return ((cb.attach_type == m.FILE) || (cb.attach_type == m.PHOTO));\n            }).forEach(function(cb) {\n                var db = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n                i.appendContent(db, cb.name);\n                h.addClass(db, l.getAttachIconClass(cb.icon_type));\n                i.appendContent(ra, db);\n            });\n            \n            \n        ;\n        });\n    };\n    function na(pa, qa) {\n        da(pa).forEach(function(ra) {\n            i.setContent(ra, qa);\n        });\n    };\n    function oa(pa, qa, ra, sa) {\n        ra = da(ra);\n        if (qa.name) {\n            var ta = q.renderRawTitleWithUnreadCount(qa.name, (sa.show_unread_count ? qa.unread_count : 0));\n            ra.forEach(function(va) {\n                i.setContent(va, ta);\n            });\n            (sa.callback && sa.callback(ta));\n            return;\n        }\n    ;\n        var ua = qa.participants;\n        if ((qa.participants.length > 1)) {\n            ua = qa.participants.filter(function(va) {\n                return (va != r.getIDForUser(pa._fbid));\n            });\n        };\n        r.getMulti(ua, function(va) {\n            q.renderParticipantListWithNoThreadName(pa._serverRequests.getServerThreadIDNow(qa.thread_id), qa, ua, va, ra, sa);\n        });\n    };\n    e.exports = ja;\n});\n__d(\"MercuryChatUtils\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = {\n        canOpenChatTab: function(i) {\n            var j = (i.is_canonical && !i.is_canonical_user);\n            return ((i.is_subscribed && !j) && (i.canonical_fbid != g.user));\n        }\n    };\n    e.exports = h;\n});\n__d(\"RenderManager\", [\"function-extensions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._isDirty = false;\n        this._obj = i;\n    };\n    g(h.prototype, {\n        dirty: function() {\n            if (!this._isDirty) {\n                this._isDirty = true;\n                this._doPaint.bind(this).defer();\n            }\n        ;\n        },\n        _doPaint: function() {\n            this._isDirty = false;\n            this._obj.paint();\n        }\n    });\n    e.exports = h;\n});\n__d(\"CounterDisplay\", [\"Arbiter\",\"CSS\",\"DOM\",\"RenderManager\",\"Run\",\"$\",\"copyProperties\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"RenderManager\"), k = b(\"Run\"), l = b(\"$\"), m = b(\"copyProperties\"), n = b(\"removeFromArray\");\n    function o(p, q, r, s, t, u) {\n        m(this, {\n            _name: p,\n            _valueNode: l(q),\n            _wrapperNode: (l(r) || null),\n            _statusClass: t,\n            _rm: new j(this),\n            _arbiterSubscription: null,\n            _count: 0\n        });\n        var v = this._valueNode.firstChild;\n        if (v) {\n            var w = parseInt(v.nodeValue, 10);\n            if (!isNaN(w)) {\n                this._count = w;\n            };\n        }\n    ;\n        this._statusNode = (s ? l(s) : null);\n        this._subscribeAll();\n        o.instances.push(this);\n        if (!u) {\n            k.onLeave(this._destroy.bind(this), true);\n        };\n    };\n    m(o, {\n        EVENT_TYPE_ADJUST: \"CounterDisplay/adjust\",\n        EVENT_TYPE_UPDATE: \"CounterDisplay/update\",\n        instances: [],\n        adjustCount: function(p, q) {\n            g.inform(((o.EVENT_TYPE_ADJUST + \"/\") + p), q);\n        },\n        setCount: function(p, q) {\n            g.inform(((o.EVENT_TYPE_UPDATE + \"/\") + p), q);\n        }\n    });\n    m(o.prototype, {\n        _destroy: function() {\n            delete this._valueNode;\n            delete this._wrapperNode;\n            if (this._arbiterSubscription) {\n                this._arbiterSubscription.unsubscribe();\n                delete this._arbiterSubscription;\n            }\n        ;\n            n(o.instances, this);\n        },\n        adjustCount: function(p) {\n            this._count = Math.max(0, (this._count + p));\n            this._rm.dirty();\n            return this;\n        },\n        setCount: function(p) {\n            this._count = Math.max(0, p);\n            this._rm.dirty();\n            return this;\n        },\n        paint: function() {\n            i.setContent(this._valueNode, this._count);\n            this._toggleNodes();\n        },\n        _toggleNodes: function() {\n            if (this._wrapperNode) {\n                h.conditionClass(this._wrapperNode, \"hidden_elem\", (this._count <= 0));\n            };\n            if ((this._statusClass && this._statusNode)) {\n                h.conditionClass(this._statusNode, this._statusClass, (this._count > 0));\n            };\n        },\n        _subscribeAll: function() {\n            var p = [((o.EVENT_TYPE_ADJUST + \"/\") + this._name),((o.EVENT_TYPE_UPDATE + \"/\") + this._name),];\n            this._arbiterSubscription = g.subscribe(p, this._onInform.bind(this), g.SUBSCRIBE_NEW);\n        },\n        _onInform: function(p, q) {\n            q = parseInt(q);\n            if (isNaN(q)) {\n                return\n            };\n            if ((p.indexOf(o.EVENT_TYPE_ADJUST) != -1)) {\n                this.adjustCount(q);\n            }\n             else if ((p.indexOf(o.EVENT_TYPE_UPDATE) != -1)) {\n                this.setCount(q);\n            }\n             else return\n            \n        ;\n            return;\n        }\n    });\n    e.exports = o;\n});\n__d(\"CacheStorage\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = {\n        memory: k,\n        localstorage: i,\n        sessionstorage: j\n    };\n    function i() {\n        this._store = a.localStorage;\n    };\n    i.available = function() {\n        try {\n            return !!a.localStorage;\n        } catch (m) {\n            return false;\n        };\n    };\n    g(i.prototype, {\n        keys: function() {\n            var m = [];\n            for (var n = 0; (n < this._store.length); n++) {\n                m.push(this._store.key(n));;\n            };\n            return m;\n        },\n        get: function(m) {\n            return this._store.getItem(m);\n        },\n        set: function(m, n) {\n            this._store.setItem(m, n);\n        },\n        remove: function(m) {\n            this._store.removeItem(m);\n        },\n        clear: function() {\n            this._store.clear();\n        }\n    });\n    function j() {\n        this._store = a.sessionStorage;\n    };\n    j.available = function() {\n        try {\n            return !!a.sessionStorage;\n        } catch (m) {\n            return false;\n        };\n    };\n    g(j.prototype, {\n        keys: function() {\n            var m = [];\n            for (var n = 0; (n < this._store.length); n++) {\n                m.push(this._store.key(n));;\n            };\n            return m;\n        },\n        get: function(m) {\n            return this._store.getItem(m);\n        },\n        set: function(m, n) {\n            this._store.setItem(m, n);\n        },\n        remove: function(m) {\n            this._store.removeItem(m);\n        },\n        clear: function() {\n            this._store.clear();\n        }\n    });\n    function k() {\n        this._store = {\n        };\n    };\n    k.available = function() {\n        return true;\n    };\n    g(k.prototype, {\n        keys: function() {\n            return Object.keys(this._store);\n        },\n        get: function(m) {\n            if ((this._store[m] === undefined)) {\n                return null\n            };\n            return this._store[m];\n        },\n        set: function(m, n) {\n            this._store[m] = n;\n        },\n        remove: function(m) {\n            if ((m in this._store)) {\n                delete this._store[m];\n            };\n        },\n        clear: function() {\n            this._store = {\n            };\n        }\n    });\n    function l(m, n) {\n        this._key_prefix = (n || \"_cs_\");\n        this._magic_prefix = \"_@_\";\n        if (((m == \"AUTO\") || !m)) {\n            for (var o in h) {\n                var p = h[o];\n                if (p.available()) {\n                    m = o;\n                    break;\n                }\n            ;\n            }\n        };\n        if (m) {\n            if ((typeof m == \"string\")) {\n                if ((!h[m] || !h[m].available())) {\n                    this._backend = new k();\n                }\n                 else this._backend = new h[m]();\n            ;\n            }\n             else if ((!m.available || !m.available())) {\n                this._backend = new k();\n            }\n             else this._backend = m;\n            \n        \n        };\n    };\n    g(l, {\n        getAllStorageTypes: function() {\n            return Object.keys(h);\n        }\n    });\n    g(l.prototype, {\n        keys: function() {\n            var m = [];\n            try {\n                if (this._backend) {\n                    var o = this._backend.keys();\n                    for (var p = 0; (p < o.length); p++) {\n                        if ((o[p].substr(0, this._key_prefix.length) == this._key_prefix)) {\n                            m.push(o[p].substr(this._key_prefix.length));\n                        };\n                    };\n                }\n            ;\n            } catch (n) {\n            \n            };\n            return m;\n        },\n        set: function(m, n) {\n            if (this._backend) {\n                if ((typeof n == \"string\")) {\n                    n = (this._magic_prefix + n);\n                }\n                 else n = JSON.stringify(n);\n            ;\n                try {\n                    this._backend.set((this._key_prefix + m), n);\n                } catch (o) {\n                \n                };\n            }\n        ;\n        },\n        get: function(m, n) {\n            var o;\n            if (this._backend) {\n                try {\n                    o = this._backend.get((this._key_prefix + m));\n                } catch (p) {\n                    o = null;\n                };\n                if ((o !== null)) {\n                    if ((o.substr(0, this._magic_prefix.length) == this._magic_prefix)) {\n                        o = o.substr(this._magic_prefix.length);\n                    }\n                     else try {\n                        o = JSON.parse(o);\n                    } catch (q) {\n                        o = undefined;\n                    }\n                ;\n                }\n                 else o = undefined;\n            ;\n            }\n        ;\n            if (((o === undefined) && (n !== undefined))) {\n                o = n;\n                if (this._backend) {\n                    var r;\n                    if ((typeof o == \"string\")) {\n                        r = (this._magic_prefix + o);\n                    }\n                     else r = JSON.stringify(o);\n                ;\n                    try {\n                        this._backend.set((this._key_prefix + m), r);\n                    } catch (p) {\n                    \n                    };\n                }\n            ;\n            }\n        ;\n            return o;\n        },\n        remove: function(m) {\n            if (this._backend) {\n                try {\n                    this._backend.remove((this._key_prefix + m));\n                } catch (n) {\n                \n                }\n            };\n        }\n    });\n    e.exports = l;\n});\n__d(\"Badge\", [\"DOM\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"cx\"), i = function(j) {\n        var k;\n        switch (j) {\n          case \"xsmall\":\n            k = \"_56_g _58to\";\n            break;\n          case \"small\":\n            k = \"_56_g _56_h\";\n            break;\n          case \"medium\":\n            k = \"_56_g _56_j\";\n            break;\n          case \"large\":\n            k = \"_56_g _56_k\";\n            break;\n          case \"xlarge\":\n            k = \"_56_g _57s-\";\n            break;\n        };\n        if (k) {\n            return g.create(\"span\", {\n                className: k\n            })\n        };\n        return null;\n    };\n    e.exports = i;\n});\n__d(\"BasicTypeaheadRenderer\", [\"Badge\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Badge\"), h = b(\"DOM\");\n    function i(j, k) {\n        var l = [];\n        if (j.icon) {\n            l.push(h.create(\"img\", {\n                alt: \"\",\n                src: j.icon\n            }));\n        };\n        if (j.text) {\n            var m = [j.text,];\n            if (j.verified) {\n                m.push(g(\"xsmall\"));\n            };\n            l.push(h.create(\"span\", {\n                className: \"text\"\n            }, m));\n        }\n    ;\n        if (j.subtext) {\n            l.push(h.create(\"span\", {\n                className: \"subtext\"\n            }, [j.subtext,]));\n        };\n        var n = h.create(\"li\", {\n            className: (j.type || \"\")\n        }, l);\n        if (j.text) {\n            n.setAttribute(\"aria-label\", j.text);\n        };\n        return n;\n    };\n    i.className = \"basic\";\n    e.exports = i;\n});\n__d(\"TypeaheadView\", [\"Event\",\"ArbiterMixin\",\"BasicTypeaheadRenderer\",\"CSS\",\"DOM\",\"Parent\",\"$\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"BasicTypeaheadRenderer\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Parent\"), m = b(\"$\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\");\n    function p(q, r) {\n        this.element = this.content = m(q);\n        this.showBadges = r.showBadges;\n        n(this, r);\n    };\n    n(p.prototype, h, {\n        events: [\"highlight\",\"render\",\"reset\",\"select\",\"beforeRender\",\"next\",\"prev\",],\n        renderer: i,\n        autoSelect: false,\n        ignoreMouseover: false,\n        init: function() {\n            this.init = o;\n            this.initializeEvents();\n            this.reset();\n        },\n        initializeEvents: function() {\n            g.listen(this.element, {\n                mouseup: this.mouseup.bind(this),\n                mouseover: this.mouseover.bind(this)\n            });\n        },\n        setTypeahead: function(q) {\n            this.typeahead = q;\n        },\n        setAccessibilityControlElement: function(q) {\n            this.accessibilityElement = q;\n        },\n        getElement: function() {\n            return this.element;\n        },\n        mouseup: function(event) {\n            if ((event.button != 2)) {\n                this.select(true);\n                event.kill();\n            }\n        ;\n        },\n        mouseover: function(event) {\n            if (this.ignoreMouseover) {\n                this.ignoreMouseover = false;\n                return;\n            }\n        ;\n            if (this.visible) {\n                this.highlight(this.getIndex(event));\n            };\n        },\n        reset: function(q) {\n            if (!q) {\n                this.disableAutoSelect = false;\n            };\n            this.justRendered = false;\n            this.justShown = false;\n            this.index = -1;\n            this.items = [];\n            this.results = [];\n            this.value = \"\";\n            this.content.innerHTML = \"\";\n            this.inform(\"reset\");\n            return this;\n        },\n        getIndex: function(event) {\n            return this.items.indexOf(l.byTag(event.getTarget(), \"li\"));\n        },\n        getSelection: function() {\n            var q = (this.results[this.index] || null);\n            return (this.visible ? q : null);\n        },\n        isEmpty: function() {\n            return !this.results.length;\n        },\n        isVisible: function() {\n            return this.visible;\n        },\n        show: function() {\n            j.show(this.element);\n            if ((this.results && this.results.length)) {\n                if (((this.autoSelect && this.accessibilityElement) && this.selected)) {\n                    this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n                }\n            };\n            (this.accessibilityElement && this.accessibilityElement.setAttribute(\"aria-expanded\", \"true\"));\n            this.visible = true;\n            return this;\n        },\n        hide: function() {\n            j.hide(this.element);\n            if (this.accessibilityElement) {\n                this.accessibilityElement.setAttribute(\"aria-expanded\", \"false\");\n                this.accessibilityElement.removeAttribute(\"aria-activedescendant\");\n            }\n        ;\n            this.visible = false;\n            return this;\n        },\n        render: function(q, r, s) {\n            this.value = q;\n            if (!r.length) {\n                (this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\"));\n                this.reset(true);\n                return;\n            }\n        ;\n            this.justRendered = true;\n            if (!this.results.length) {\n                this.justShown = true;\n            };\n            var t = {\n                results: r,\n                value: q\n            };\n            this.inform(\"beforeRender\", t);\n            r = t.results;\n            var u = this.getDefaultIndex(r);\n            if (((this.index > 0) && (this.index !== this.getDefaultIndex(this.results)))) {\n                var v = this.results[this.index];\n                for (var w = 0, x = r.length; (w < x); ++w) {\n                    if ((v.uid == r[w].uid)) {\n                        u = w;\n                        break;\n                    }\n                ;\n                };\n            }\n        ;\n            this.results = r;\n            k.setContent(this.content, this.buildResults(r));\n            this.items = this.getItems();\n            this.highlight(u, false);\n            this.inform(\"render\", r);\n        },\n        getItems: function() {\n            return k.scry(this.content, \"li\");\n        },\n        buildResults: function(q) {\n            var r, s = null;\n            if ((typeof this.renderer == \"function\")) {\n                r = this.renderer;\n                s = (this.renderer.className || \"\");\n            }\n             else {\n                r = a.TypeaheadRenderers[this.renderer];\n                s = this.renderer;\n            }\n        ;\n            r = r.bind(this);\n            var t = this.showBadges, u = q.map(function(w, x) {\n                if (!t) {\n                    w.verified = null;\n                };\n                var y = (w.node || r(w, x));\n                y.setAttribute(\"role\", \"option\");\n                return y;\n            }), v = k.create(\"ul\", {\n                className: s,\n                id: (\"typeahead_list_\" + ((this.typeahead ? k.getID(this.typeahead) : k.getID(this.element))))\n            }, u);\n            v.setAttribute(\"role\", \"listbox\");\n            return v;\n        },\n        getDefaultIndex: function(q) {\n            var r = ((this.autoSelect && !this.disableAutoSelect));\n            return (((this.index < 0) && !r) ? -1 : 0);\n        },\n        next: function() {\n            this.highlight((this.index + 1));\n            this.inform(\"next\", this.selected);\n        },\n        prev: function() {\n            this.highlight((this.index - 1));\n            this.inform(\"prev\", this.selected);\n        },\n        getItemText: function(q) {\n            var r = \"\";\n            if (q) {\n                r = q.getAttribute(\"aria-label\");\n                if (!r) {\n                    r = k.getText(q);\n                    q.setAttribute(\"aria-label\", r);\n                }\n            ;\n            }\n        ;\n            return r;\n        },\n        setIsViewingSelectedItems: function(q) {\n            this.viewingSelected = q;\n            return this;\n        },\n        getIsViewingSelectedItems: function() {\n            return this.viewingSelected;\n        },\n        highlight: function(q, r) {\n            var s = true;\n            if (this.selected) {\n                j.removeClass(this.selected, \"selected\");\n                this.selected.setAttribute(\"aria-selected\", \"false\");\n            }\n        ;\n            if ((q > (this.items.length - 1))) {\n                q = -1;\n            }\n             else if ((q < -1)) {\n                q = (this.items.length - 1);\n            }\n        ;\n            if (((q >= 0) && (q < this.items.length))) {\n                if ((this.selected && (this.getItemText(this.items[q]) === this.getItemText(this.selected)))) {\n                    s = false;\n                };\n                this.selected = this.items[q];\n                j.addClass(this.selected, \"selected\");\n                this.selected.setAttribute(\"aria-selected\", \"true\");\n                if (this.accessibilityElement) {\n                    (function() {\n                        this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n                    }).bind(this).defer();\n                };\n            }\n             else (this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\"));\n        ;\n            this.index = q;\n            this.disableAutoSelect = ((q == -1));\n            var t = ((q !== -1)), u = this.getItemText(this.selected);\n            if (((((q !== -1) && this.isVisible()) && u) && this.autoSelect)) {\n                if (this.justShown) {\n                    this.justRendered = false;\n                    this.justShown = false;\n                    t = false;\n                }\n                 else if ((s && this.justRendered)) {\n                    this.justRendered = false;\n                    t = false;\n                }\n                \n            \n            };\n            if ((r !== false)) {\n                this.inform(\"highlight\", {\n                    index: q,\n                    selected: this.results[q],\n                    element: this.selected\n                });\n            };\n        },\n        select: function(q) {\n            var r = this.index, s = this.results[r], t = this.element.getAttribute(\"id\");\n            if (s) {\n                this.inform(\"select\", {\n                    index: r,\n                    clicked: !!q,\n                    selected: s,\n                    id: t,\n                    query: this.value\n                });\n                this.inform(\"afterSelect\");\n            }\n        ;\n        }\n    });\n    e.exports = p;\n});\n__d(\"BucketedTypeaheadView\", [\"Class\",\"DOM\",\"tx\",\"TypeaheadView\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"tx\"), j = b(\"TypeaheadView\"), k = b(\"copyProperties\");\n    function l(m, n) {\n        this.parent.construct(this, m, n);\n    };\n    g.extend(l, j);\n    k(l.prototype, {\n        render: function(m, n, o) {\n            n = this.buildBuckets(m, n);\n            return this.parent.render(m, n, o);\n        },\n        highlight: function(m, n) {\n            if (((m == -1) && (this.index !== 0))) {\n                m = this.index;\n            };\n            while ((((m >= 0) && (m < this.items.length)) && !this.isHighlightable(this.results[m]))) {\n                m = (m + 1);;\n            };\n            this.parent.highlight(m, n);\n        },\n        buildBuckets: function(m, n) {\n            if (((!this.typeObjects || !n) || !n.length)) {\n                return n\n            };\n            var o = [], p = {\n            };\n            for (var q = 0; (q < n.length); ++q) {\n                var r = n[q], s = (r.render_type || r.type);\n                if (!p.hasOwnProperty(s)) {\n                    p[s] = o.length;\n                    o.push([this.buildBucketHeader(s),]);\n                }\n            ;\n                r.classNames = s;\n                r.groupIndex = p[s];\n                r.indexInGroup = (o[r.groupIndex].length - 1);\n                o[r.groupIndex].push(r);\n            };\n            for (s in this.typeObjects) {\n                if ((!p.hasOwnProperty(s) && this.typeObjects[s].show_always)) {\n                    p[s] = o.length;\n                    o.push([this.buildBucketHeader(s),]);\n                    r = this.buildNoResultsEntry();\n                    r.classNames = r.type;\n                    r.groupIndex = p[s];\n                    r.indexInGroup = (o[r.groupIndex].length - 1);\n                    o[r.groupIndex].push(r);\n                }\n            ;\n            };\n            var t = [];\n            if (this.typeObjectsOrder) {\n                for (var u = 0; (u < this.typeObjectsOrder.length); ++u) {\n                    var v = this.typeObjectsOrder[u];\n                    if (p.hasOwnProperty(v)) {\n                        t = t.concat(o[p[v]]);\n                    };\n                };\n            }\n             else for (var w = 0; (w < o.length); ++w) {\n                t = t.concat(o[w]);;\n            }\n        ;\n            return t;\n        },\n        buildNoResultsEntry: function() {\n            return {\n                uid: \"disabled_result\",\n                type: \"disabled_result\",\n                text: \"No Results\"\n            };\n        },\n        buildBucketHeader: function(m) {\n            var n = this.typeObjects[m];\n            if ((n === undefined)) {\n                throw new Error(((m + \" is undefined in \") + JSON.stringify(this.typeObjects)))\n            };\n            if (n.markup) {\n                n.text = n.markup;\n                delete n.markup;\n            }\n        ;\n            return this.typeObjects[m];\n        },\n        buildResults: function(m) {\n            var n = this.parent.buildResults(m);\n            if (this.typeObjects) {\n                return h.create(\"div\", {\n                    className: \"bucketed\"\n                }, [n,]);\n            }\n             else return n\n        ;\n        },\n        isHighlightable: function(m) {\n            return ((m.type != \"header\") && (m.type != \"disabled_result\"));\n        },\n        select: function(m) {\n            var n = this.results[this.index];\n            if ((n && this.isHighlightable(n))) {\n                this.parent.select(m);\n            };\n        },\n        normalizeIndex: function(m) {\n            var n = this.results.length;\n            if ((n === 0)) {\n                return -1;\n            }\n             else if ((m < -1)) {\n                return ((((m % n)) + n) + 1);\n            }\n             else if ((m >= n)) {\n                return (((m % n)) - 1);\n            }\n             else return m\n            \n            \n        ;\n        },\n        getDefaultIndex: function(m) {\n            var n = ((this.autoSelect && !this.disableAutoSelect));\n            if (((this.index < 0) && !n)) {\n                return -1\n            };\n            if ((m.length === 0)) {\n                return -1\n            };\n            var o = 0;\n            while ((!this.isHighlightable(m) && (o < m.length))) {\n                o++;;\n            };\n            return o;\n        },\n        prev: function() {\n            var m = this.results[this.normalizeIndex((this.index - 1))];\n            while ((m && !this.isHighlightable(m))) {\n                this.index = this.normalizeIndex((this.index - 1));\n                m = this.results[this.normalizeIndex((this.index - 1))];\n            };\n            return this.parent.prev();\n        },\n        next: function() {\n            var m = this.results[this.normalizeIndex((this.index + 1))];\n            while ((m && !this.isHighlightable(m))) {\n                this.index = this.normalizeIndex((this.index + 1));\n                m = this.results[this.normalizeIndex((this.index + 1))];\n            };\n            return this.parent.next();\n        }\n    });\n    e.exports = l;\n});\n__d(\"ContextualTypeaheadView\", [\"BucketedTypeaheadView\",\"CSS\",\"Class\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"ContextualLayerHideOnScroll\",\"DOM\",\"DOMDimensions\",\"Style\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"BucketedTypeaheadView\"), h = b(\"CSS\"), i = b(\"Class\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerAutoFlip\"), l = b(\"ContextualLayerHideOnScroll\"), m = b(\"DOM\"), n = b(\"DOMDimensions\"), o = b(\"Style\"), p = b(\"copyProperties\");\n    function q(r, s) {\n        this.parent.construct(this, r, s);\n    };\n    i.extend(q, g);\n    p(q.prototype, {\n        init: function() {\n            this.initializeLayer();\n            this.parent.init();\n        },\n        initializeLayer: function() {\n            this.context = this.getContext();\n            this.wrapper = m.create(\"div\");\n            m.appendContent(this.wrapper, this.element);\n            h.addClass(this.element, \"uiContextualTypeaheadView\");\n            this.layer = new j({\n                context: this.context,\n                position: \"below\",\n                alignment: this.alignment,\n                causalElement: this.causalElement,\n                permanent: true\n            }, this.wrapper);\n            this.layer.enableBehavior(l);\n            if ((o.isFixed(this.context) || this.autoflip)) {\n                this.layer.enableBehavior(k);\n            };\n            this.subscribe(\"render\", this.renderLayer.bind(this));\n        },\n        show: function() {\n            if (this.minWidth) {\n                o.set(this.wrapper, \"min-width\", (this.minWidth + \"px\"));\n            }\n             else if (this.width) {\n                o.set(this.wrapper, \"width\", (this.width + \"px\"));\n            }\n             else o.set(this.wrapper, \"width\", (n.getElementDimensions(this.context).width + \"px\"));\n            \n        ;\n            var r = this.parent.show();\n            this.layer.show();\n            return r;\n        },\n        hide: function() {\n            this.layer.hide();\n            return this.parent.hide();\n        },\n        renderLayer: function() {\n            if (!this.isVisible()) {\n                return\n            };\n            if (this.layer.isShown()) {\n                this.layer.updatePosition();\n            }\n             else this.layer.show();\n        ;\n        },\n        clearText: function() {\n            this.layer.getCausalElement().value = \"\";\n        },\n        getContext: function() {\n            return this.element.parentNode;\n        }\n    });\n    e.exports = q;\n});\n__d(\"DOMClone\", [], function(a, b, c, d, e, f) {\n    var g = {\n        shallowClone: function(i) {\n            return h(i, false);\n        },\n        deepClone: function(i) {\n            return h(i, true);\n        }\n    };\n    function h(i, j) {\n        var k = i.cloneNode(j);\n        if ((typeof k.__FB_TOKEN !== \"undefined\")) {\n            delete k.__FB_TOKEN;\n        };\n        return k;\n    };\n    e.exports = g;\n});\n__d(\"Dcode\", [], function(a, b, c, d, e, f) {\n    var g, h = {\n    }, i = {\n        _: \"%\",\n        A: \"%2\",\n        B: \"000\",\n        C: \"%7d\",\n        D: \"%7b%22\",\n        E: \"%2c%22\",\n        F: \"%22%3a\",\n        G: \"%2c%22ut%22%3a1\",\n        H: \"%2c%22bls%22%3a\",\n        I: \"%2c%22n%22%3a%22%\",\n        J: \"%22%3a%7b%22i%22%3a0%7d\",\n        K: \"%2c%22pt%22%3a0%2c%22vis%22%3a\",\n        L: \"%2c%22ch%22%3a%7b%22h%22%3a%22\",\n        M: \"%7b%22v%22%3a2%2c%22time%22%3a1\",\n        N: \".channel%22%2c%22sub%22%3a%5b\",\n        O: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b\",\n        P: \"%2c%22ud%22%3a100%2c%22lc%22%3a0\",\n        Q: \"%5d%2c%22f%22%3anull%2c%22uct%22%3a\",\n        R: \".channel%22%2c%22sub%22%3a%5b1%5d\",\n        S: \"%22%2c%22m%22%3a0%7d%2c%7b%22i%22%3a\",\n        T: \"%2c%22blc%22%3a1%2c%22snd%22%3a1%2c%22ct%22%3a\",\n        U: \"%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n        V: \"%2c%22blc%22%3a0%2c%22snd%22%3a0%2c%22ct%22%3a\",\n        W: \"%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\",\n        X: \"%2c%22ri%22%3a0%7d%2c%22state%22%3a%7b%22p%22%3a0%2c%22ut%22%3a1\",\n        Y: \"%2c%22pt%22%3a0%2c%22vis%22%3a1%2c%22bls%22%3a0%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n        Z: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b%5d%2c%22f%22%3anull%2c%22uct%22%3a0%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\"\n    };\n    (function() {\n        var k = [];\n        for (var l in i) {\n            h[i[l]] = l;\n            k.push(i[l]);\n        };\n        k.reverse();\n        g = new RegExp(k.join(\"|\"), \"g\");\n    })();\n    var j = {\n        encode: function(k) {\n            return encodeURIComponent(k).replace(/([_A-Z])|%../g, function(l, m) {\n                return (m ? (\"%\" + m.charCodeAt(0).toString(16)) : l);\n            }).toLowerCase().replace(g, function(l) {\n                return h[l];\n            });\n        },\n        decode: function(k) {\n            return decodeURIComponent(k.replace(/[_A-Z]/g, function(l) {\n                return i[l];\n            }));\n        }\n    };\n    e.exports = j;\n});\n__d(\"FileInput\", [\"Event\",\"ArbiterMixin\",\"DOM\",\"DOMClone\",\"Focus\",\"UserAgent\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"DOMClone\"), k = b(\"Focus\"), l = b(\"UserAgent\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = l.ie();\n    function p(q, r, s) {\n        this.container = q;\n        this.control = r;\n        this.input = s;\n        var t = i.scry(this.container, \"a\")[0];\n        (t && t.removeAttribute(\"href\"));\n        var u = i.create(\"div\", {\n            className: \"_3jk\"\n        }, this.input);\n        i.appendContent(this.control, u);\n        this._initListeners();\n    };\n    m(p.prototype, h, {\n        getValue: function() {\n            return this.input.value;\n        },\n        getInput: function() {\n            return this.input;\n        },\n        clear: function() {\n            if (o) {\n                var q = j.deepClone(this.input);\n                i.replace(this.input, q);\n                this.input = q;\n                while (this._listeners.length) {\n                    this._listeners.pop().remove();;\n                };\n                this._initListeners();\n            }\n             else {\n                this.input.value = \"\";\n                this.input.files = null;\n            }\n        ;\n        },\n        _initListeners: function() {\n            k.relocate(this.input, this.control);\n            this._listeners = [g.listen(this.input, \"change\", this._handleChange.bind(this)),];\n        },\n        _handleChange: function(event) {\n            this.inform(\"change\", event);\n            var q = this.input.form;\n            if ((q && (o < 9))) {\n                g.fire(q, \"change\", event);\n            };\n        }\n    });\n    e.exports = p;\n});\n__d(\"Poller\", [\"ArbiterMixin\",\"AsyncRequest\",\"Cookie\",\"Env\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"Cookie\"), j = b(\"Env\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n    function m(p) {\n        this._config = k({\n            clearOnQuicklingEvents: true,\n            setupRequest: l,\n            interval: null,\n            maxRequests: Infinity,\n            dontStart: false\n        }, p);\n        if (!this._config.dontStart) {\n            this.start();\n        };\n    };\n    m.MIN_INTERVAL = 2000;\n    k(m.prototype, g, {\n        start: function() {\n            if (this._polling) {\n                return this\n            };\n            this._requests = 0;\n            this.request();\n            return this;\n        },\n        stop: function() {\n            this._cancelRequest();\n            return this;\n        },\n        mute: function() {\n            this._muted = true;\n            return this;\n        },\n        resume: function() {\n            if (this._muted) {\n                this._muted = false;\n                if ((!this._handle && this._polling)) {\n                    return this.request()\n                };\n            }\n        ;\n            return this;\n        },\n        skip: function() {\n            this._skip = true;\n            return this;\n        },\n        reset: function() {\n            return this.stop().start();\n        },\n        request: function() {\n            this._cancelRequest();\n            this._polling = true;\n            if (!o()) {\n                return this._done()\n            };\n            if (this._muted) {\n                return this\n            };\n            if ((++this._requests > this._config.maxRequests)) {\n                return this._done()\n            };\n            var p = new h(), q = false;\n            p.setInitialHandler(function() {\n                return !q;\n            });\n            this._cancelRequest = function() {\n                q = true;\n                this._cleanup();\n            }.bind(this);\n            p.setFinallyHandler(n.bind(this));\n            p.setInitialHandler = l;\n            p.setFinallyHandler = l;\n            this._config.setupRequest(p, this);\n            if (this._skip) {\n                this._skip = false;\n                n.bind(this).defer();\n            }\n             else p.send();\n        ;\n            return this;\n        },\n        isPolling: function() {\n            return this._polling;\n        },\n        isMuted: function() {\n            return this._muted;\n        },\n        setInterval: function(p) {\n            if (p) {\n                this._config.interval = p;\n                this.start();\n            }\n        ;\n        },\n        getInterval: function() {\n            return this._config.interval;\n        },\n        _cleanup: function() {\n            if (this._handle) {\n                clearTimeout(this._handle);\n            };\n            this._handle = null;\n            this._cancelRequest = l;\n            this._polling = false;\n        },\n        _done: function() {\n            this._cleanup();\n            this.inform(\"done\", {\n                sender: this\n            });\n            return this;\n        },\n        _config: null,\n        _requests: 0,\n        _muted: false,\n        _polling: false,\n        _skip: false,\n        _cancelRequest: l\n    });\n    function n() {\n        if (!this._polling) {\n            return\n        };\n        if ((this._requests < this._config.maxRequests)) {\n            var p = this._config.interval;\n            p = ((typeof p === \"function\") ? p(this._requests) : p);\n            this._handle = this.request.bind(this).defer((((p > m.MIN_INTERVAL)) ? p : m.MIN_INTERVAL), this._config.clearOnQuicklingEvents);\n        }\n         else this._done();\n    ;\n    };\n    function o() {\n        return (j.user == i.get(\"c_user\"));\n    };\n    e.exports = m;\n});\n__d(\"SystemEvents\", [\"Arbiter\",\"Env\",\"ErrorUtils\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"ErrorUtils\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = new g(), m = [], n = 1000;\n    setInterval(function() {\n        for (var w = 0; (w < m.length); w++) {\n            m[w]();;\n        };\n    }, n, false);\n    function o() {\n        return (((/c_user=(\\d+)/.test(document.cookie) && RegExp.$1)) || 0);\n    };\n    var p = h.user, q = navigator.onLine;\n    function r() {\n        if (!q) {\n            q = true;\n            l.inform(l.ONLINE, q);\n        }\n    ;\n    };\n    function s() {\n        if (q) {\n            q = false;\n            l.inform(l.ONLINE, q);\n        }\n    ;\n    };\n    if (j.ie()) {\n        if ((j.ie() >= 8)) {\n            window.attachEvent(\"onload\", function() {\n                document.body.ononline = r;\n                document.body.onoffline = s;\n            });\n        }\n         else m.push(function() {\n            ((navigator.onLine ? r : s))();\n        });\n    ;\n    }\n     else if (window.addEventListener) {\n        if (!j.chrome()) {\n            window.addEventListener(\"online\", r, false);\n            window.addEventListener(\"offline\", s, false);\n        }\n    \n    }\n;\n    var t = p;\n    m.push(function() {\n        var w = o();\n        if ((t != w)) {\n            l.inform(l.USER, w);\n            t = w;\n        }\n    ;\n    });\n    var u = Date.now();\n    function v() {\n        var w = Date.now(), x = (w - u), y = ((x < 0) || (x > 10000));\n        u = w;\n        if (y) {\n            l.inform(l.TIME_TRAVEL, x);\n        };\n        return y;\n    };\n    m.push(v);\n    m.push(function() {\n        if ((window.onerror != i.onerror)) {\n            window.onerror = i.onerror;\n        };\n    });\n    k(l, {\n        USER: \"SystemEvents/USER\",\n        ONLINE: \"SystemEvents/ONLINE\",\n        TIME_TRAVEL: \"SystemEvents/TIME_TRAVEL\",\n        isPageOwner: function(w) {\n            return (((w || o())) == p);\n        },\n        isOnline: function() {\n            return (j.chrome() || q);\n        },\n        checkTimeTravel: v\n    });\n    e.exports = l;\n});\n__d(\"Typeahead\", [\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"DataStore\",\"Event\",\"Parent\",\"Run\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"BehaviorsMixin\"), i = b(\"DOM\"), j = b(\"DataStore\"), k = b(\"Event\"), l = b(\"Parent\"), m = b(\"Run\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\"), p = b(\"ge\");\n    function q(r, s, t, u) {\n        this.args = {\n            data: r,\n            view: s,\n            core: t\n        };\n        j.set(u, \"Typeahead\", this);\n        this.element = u;\n    };\n    q.getInstance = function(r) {\n        var s = l.byClass(r, \"uiTypeahead\");\n        return (s ? j.get(s, \"Typeahead\") : null);\n    };\n    n(q.prototype, g, h, {\n        init: function(r) {\n            this.init = o;\n            this.getCore();\n            this.getView().setAccessibilityControlElement(this.getCore().getElement());\n            this.proxyEvents();\n            this.initBehaviors((r || []));\n            this.inform(\"init\", this);\n            this.data.bootstrap();\n            this.core.focus();\n        },\n        getData: function() {\n            if (!this.data) {\n                var r = this.args.data;\n                this.data = r;\n                this.data.init();\n            }\n        ;\n            return this.data;\n        },\n        getView: function() {\n            if (!this.view) {\n                var r = this.args.view, s = (r.node || p(r.node_id));\n                if (!s) {\n                    s = i.create(\"div\", {\n                        className: \"uiTypeaheadView\"\n                    });\n                    i.appendContent(this.element, s);\n                }\n            ;\n                if ((typeof r.ctor === \"string\")) {\n                    this.view = new window[r.ctor](s, (r.options || {\n                    }));\n                }\n                 else this.view = new r.ctor(s, (r.options || {\n                }));\n            ;\n                this.view.init();\n                this.view.setTypeahead(this.element);\n            }\n        ;\n            return this.view;\n        },\n        getCore: function() {\n            if (!this.core) {\n                var r = this.args.core;\n                if ((typeof r.ctor === \"string\")) {\n                    this.core = new window[r.ctor]((r.options || {\n                    }));\n                }\n                 else this.core = new r.ctor((r.options || {\n                }));\n            ;\n                this.core.init(this.getData(), this.getView(), this.getElement());\n            }\n        ;\n            return this.core;\n        },\n        getElement: function() {\n            return this.element;\n        },\n        swapData: function(r) {\n            var s = this.core;\n            this.data = this.args.data = r;\n            r.init();\n            if (s) {\n                s.data = r;\n                s.initData();\n                s.reset();\n            }\n        ;\n            r.bootstrap();\n            return r;\n        },\n        proxyEvents: function() {\n            [this.data,this.view,this.core,].forEach(function(r) {\n                r.subscribe(r.events, this.inform.bind(this));\n            }, this);\n        },\n        initBehaviors: function(r) {\n            r.forEach(function(s) {\n                if ((typeof s === \"string\")) {\n                    if ((a.TypeaheadBehaviors && a.TypeaheadBehaviors[s])) {\n                        a.TypeaheadBehaviors[s](this);\n                    }\n                     else m.onLoad(function() {\n                        if (a.TypeaheadBehaviors) {\n                            ((a.TypeaheadBehaviors[s] || o))(this);\n                        };\n                    }.bind(this));\n                ;\n                }\n                 else this.enableBehavior(s);\n            ;\n            }, this);\n        }\n    });\n    q.initNow = function(r, s, t) {\n        if (t) {\n            t.init(r);\n        };\n        r.init(s);\n    };\n    q.init = function(r, s, t, u) {\n        if (!i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n            r = (i.scry(r, \"input\")[0] || i.scry(r, \"textarea\")[0]);\n        };\n        var v = false;\n        try {\n            v = (document.activeElement === r);\n        } catch (w) {\n        \n        };\n        if (v) {\n            q.initNow(s, t, u);\n        }\n         else var x = k.listen(r, \"focus\", function() {\n            q.initNow(s, t, u);\n            x.remove();\n        })\n    ;\n    };\n    e.exports = q;\n});\n__d(\"TypeaheadCore\", [\"Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"Focus\",\"Input\",\"InputSelection\",\"Keys\",\"StickyPlaceholderInput\",\"UserAgent\",\"bind\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"Input\"), n = b(\"InputSelection\"), o = b(\"Keys\"), p = b(\"StickyPlaceholderInput\"), q = b(\"UserAgent\"), r = b(\"bind\"), s = b(\"copyProperties\"), t = b(\"emptyFunction\");\n    function u(v) {\n        s(this, v);\n    };\n    s(u.prototype, i, {\n        events: [\"blur\",\"focus\",\"click\",\"unselect\",\"loading\",],\n        keepFocused: true,\n        resetOnSelect: false,\n        resetOnKeyup: true,\n        setValueOnSelect: false,\n        queryTimeout: 250,\n        preventFocusChangeOnTab: false,\n        init: function(v, w, x) {\n            this.init = t;\n            this.data = v;\n            this.view = w;\n            this.root = x;\n            this.initInput();\n            this.inputWrap = k.find(x, \"div.wrap\");\n            this.hiddenInput = k.find(x, \"input.hiddenInput\");\n            this.value = \"\";\n            this.nextQuery = null;\n            this.selectedText = null;\n            if ((this.setValueOnSelect && j.hasClass(this.inputWrap, \"selected\"))) {\n                this.selectedText = this.getValue();\n            };\n            this.initView();\n            this.initData();\n            this.initEvents();\n            this.initToggle();\n            this._exclusions = [];\n        },\n        initInput: function() {\n            this.element = k.find(this.root, \".textInput\");\n            var v = k.scry(this.element, \"input\")[0];\n            if (v) {\n                this.element = v;\n            };\n        },\n        initView: function() {\n            this.view.subscribe(\"highlight\", l.set.curry(this.element));\n            this.view.subscribe(\"select\", function(v, w) {\n                this.select(w.selected);\n            }.bind(this));\n            this.view.subscribe(\"afterSelect\", function() {\n                this.afterSelect();\n            }.bind(this));\n        },\n        initData: function() {\n            this.data.subscribe(\"respond\", function(v, w) {\n                if ((w.forceDisplay || ((w.value == this.getValue()) && !this.element.disabled))) {\n                    this.view.render(w.value, w.results, w.isAsync);\n                };\n            }.bind(this));\n            this.data.subscribe(\"activity\", function(v, w) {\n                this.fetching = w.activity;\n                if (!this.fetching) {\n                    (this.nextQuery && this.performQuery());\n                };\n                if ((this.loading != this.fetching)) {\n                    this.loading = this.fetching;\n                    this.inform(\"loading\", {\n                        loading: this.loading\n                    });\n                }\n            ;\n            }.bind(this));\n        },\n        initEvents: function() {\n            g.listen(this.view.getElement(), {\n                mouseup: this.viewMouseup.bind(this),\n                mousedown: this.viewMousedown.bind(this)\n            });\n            var v = {\n                blur: r(this, \"blur\"),\n                focus: r(this, \"focus\"),\n                click: r(this, \"click\"),\n                keyup: r(this, \"keyup\"),\n                keydown: r(this, \"keydown\")\n            };\n            if (q.firefox()) {\n                v.text = v.keyup;\n            };\n            if ((q.firefox() < 4)) {\n                v.keypress = v.keydown;\n                delete v.keydown;\n            }\n        ;\n            g.listen(this.element, v);\n            g.listen(this.element, \"keypress\", r(this, \"keypress\"));\n        },\n        initToggle: function() {\n            this.subscribe(\"blur\", this.view.hide.bind(this.view));\n            this.subscribe(\"focus\", this.view.show.bind(this.view));\n        },\n        viewMousedown: function() {\n            this.selecting = true;\n        },\n        viewMouseup: function() {\n            this.selecting = false;\n        },\n        blur: function() {\n            if (this.selecting) {\n                this.selecting = false;\n                return;\n            }\n        ;\n            this.inform(\"blur\");\n        },\n        click: function() {\n            var v = n.get(this.element);\n            if ((v.start == v.end)) {\n                this.element.select();\n            };\n            this.inform(\"click\");\n        },\n        focus: function() {\n            this.checkValue();\n            this.inform(\"focus\");\n        },\n        keyup: function() {\n            if ((this.resetOnKeyup && !this.getValue())) {\n                this.view.reset();\n            };\n            this.checkValue();\n        },\n        keydown: function(event) {\n            if ((!this.view.isVisible() || this.view.isEmpty())) {\n                this.checkValue.bind(this).defer();\n                return;\n            }\n        ;\n            switch (g.getKeyCode(event)) {\n              case o.TAB:\n                this.handleTab(event);\n                return;\n              case o.UP:\n                this.view.prev();\n                break;\n              case o.DOWN:\n                this.view.next();\n                break;\n              case o.ESC:\n                this.view.reset();\n                break;\n              default:\n                this.checkValue.bind(this).defer();\n                return;\n            };\n            event.kill();\n        },\n        keypress: function(event) {\n            if ((this.view.getSelection() && (g.getKeyCode(event) == o.RETURN))) {\n                this.view.select();\n                event.kill();\n            }\n        ;\n        },\n        handleTab: function(event) {\n            if (this.preventFocusChangeOnTab) {\n                if (this.view.getSelection()) {\n                    event.kill();\n                }\n                 else event.prevent();\n            \n            };\n            this.view.select();\n        },\n        select: function(v) {\n            if ((v && this.setValueOnSelect)) {\n                this.setValue(v.text);\n                this.setHiddenValue(v.uid);\n                this.selectedText = v.text;\n                j.addClass(this.inputWrap, \"selected\");\n            }\n        ;\n        },\n        afterSelect: function() {\n            (this.keepFocused ? l.set(this.element) : this.element.blur());\n            (this.resetOnSelect ? this.reset() : this.view.reset());\n        },\n        unselect: function() {\n            if (this.setValueOnSelect) {\n                this.selectedText = null;\n                j.removeClass(this.inputWrap, \"selected\");\n            }\n        ;\n            this.setHiddenValue();\n            this.inform(\"unselect\", this);\n        },\n        setEnabled: function(v) {\n            var w = (v === false);\n            this.element.disabled = w;\n            j.conditionClass(this.root, \"uiTypeaheadDisabled\", w);\n        },\n        reset: function() {\n            this.unselect();\n            this.setValue();\n            (!this.keepFocused && m.reset(this.element));\n            this.view.reset();\n            this.inform(\"reset\");\n        },\n        getElement: function() {\n            return this.element;\n        },\n        setExclusions: function(v) {\n            this._exclusions = v;\n        },\n        getExclusions: function() {\n            return this._exclusions;\n        },\n        setValue: function(v) {\n            this.value = this.nextQuery = (v || \"\");\n            m.setValue(this.element, this.value);\n            p.update(this.element);\n        },\n        setHiddenValue: function(v) {\n            this.hiddenInput.value = (((v || (v === 0))) ? v : \"\");\n            h.inform(\"Form/change\", {\n                node: this.hiddenInput\n            });\n        },\n        getValue: function() {\n            return m.getValue(this.element);\n        },\n        getHiddenValue: function() {\n            return (this.hiddenInput.value || \"\");\n        },\n        checkValue: function() {\n            var v = this.getValue();\n            if ((v == this.value)) {\n                return\n            };\n            if ((this.selectedText && (this.selectedText != v))) {\n                this.unselect();\n            };\n            var w = Date.now(), x = (w - this.time);\n            this.time = w;\n            this.value = this.nextQuery = v;\n            this.performQuery(x);\n        },\n        performQuery: function(v) {\n            if (this.selectedText) {\n                return\n            };\n            v = (v || 0);\n            if ((this.fetching && (v < this.queryTimeout))) {\n                this.data.query(this.nextQuery, true, this._exclusions, v);\n            }\n             else {\n                this.data.query(this.nextQuery, false, this._exclusions, v);\n                this.nextQuery = null;\n            }\n        ;\n        }\n    });\n    e.exports = u;\n});\n__d(\"setIntervalAcrossTransitions\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return setInterval(h, i, false);\n    };\n    e.exports = g;\n});\n__d(\"PresenceCookieManager\", [\"Cookie\",\"Dcode\",\"ErrorUtils\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"URI\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"Dcode\"), i = b(\"ErrorUtils\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"PresenceUtil\"), m = b(\"URI\"), n = b(\"PresenceInitialData\"), o = n.cookieVersion, p = n.dictEncode, q = \"presence\", r = {\n    }, s = null, t = null, u = k.create(\"presence_cookie\");\n    function v() {\n        try {\n            var z = g.get(q);\n            if ((s !== z)) {\n                s = z;\n                t = null;\n                if ((z && (z.charAt(0) == \"E\"))) {\n                    z = h.decode(z.substring(1));\n                };\n                if (z) {\n                    t = JSON.parse(z);\n                };\n            }\n        ;\n            if ((t && ((!t.user || (t.user === j.user))))) {\n                return t\n            };\n        } catch (y) {\n            u.warn(\"getcookie_error\");\n        };\n        return null;\n    };\n    function w() {\n        return parseInt((Date.now() / 1000), 10);\n    };\n    var x = {\n        register: function(y, z) {\n            r[y] = z;\n        },\n        store: function() {\n            var y = v();\n            if (((y && y.v) && (o < y.v))) {\n                return\n            };\n            var z = {\n                v: o,\n                time: w(),\n                user: j.user\n            };\n            for (var aa in r) {\n                z[aa] = i.applyWithGuard(r[aa], r, [(y && y[aa]),], function(ea) {\n                    ea.presence_subcookie = aa;\n                });;\n            };\n            var ba = JSON.stringify(z);\n            if (p) {\n                ba = (\"E\" + h.encode(ba));\n            };\n            if (l.hasUserCookie()) {\n                var ca = ba.length;\n                if ((ca > 1024)) {\n                    u.warn(\"big_cookie\", ca);\n                };\n                var da = (m.getRequestURI(false).isSecure() && !!g.get(\"csm\"));\n                g.set(q, ba, null, null, da);\n            }\n        ;\n        },\n        clear: function() {\n            g.clear(q);\n        },\n        getSubCookie: function(y) {\n            var z = v();\n            if (!z) {\n                return null\n            };\n            return z[y];\n        }\n    };\n    e.exports = x;\n});\n__d(\"PresenceState\", [\"Arbiter\",\"ErrorUtils\",\"JSLogger\",\"PresenceCookieManager\",\"copyProperties\",\"debounceAcrossTransitions\",\"setIntervalAcrossTransitions\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"JSLogger\"), j = b(\"PresenceCookieManager\"), k = b(\"copyProperties\"), l = b(\"debounceAcrossTransitions\"), m = b(\"setIntervalAcrossTransitions\"), n = b(\"PresenceInitialData\"), o = (n.cookiePollInterval || 2000), p = [], q = [], r = null, s = null, t = 0, u = null, v = 0, w = [\"sb2\",\"t2\",\"lm2\",\"uct2\",\"tr\",\"tw\",\"at\",\"wml\",], x = i.create(\"presence_state\");\n    function y() {\n        return j.getSubCookie(\"state\");\n    };\n    function z() {\n        t = Date.now();\n        j.store();\n        da(s);\n    };\n    var aa = l(z, 0);\n    function ba(ia) {\n        if (((((typeof ia == \"undefined\") || isNaN(ia)) || (ia == Number.POSITIVE_INFINITY)) || (ia == Number.NEGATIVE_INFINITY))) {\n            ia = 0;\n        };\n        return ia;\n    };\n    function ca(ia) {\n        var ja = {\n        };\n        if (ia) {\n            w.forEach(function(ma) {\n                ja[ma] = ia[ma];\n            });\n            if ((t < ia.ut)) {\n                x.error(\"new_cookie\", {\n                    cookie_time: ia.ut,\n                    local_time: t\n                });\n            };\n        }\n    ;\n        ja.ut = t;\n        for (var ka = 0, la = p.length; (ka < la); ka++) {\n            h.applyWithGuard(p[ka], null, [ja,]);;\n        };\n        s = ja;\n        return s;\n    };\n    function da(ia) {\n        v++;\n        t = ba(ia.ut);\n        if (!r) {\n            r = m(ga, o);\n        };\n        s = ia;\n        if ((u === null)) {\n            u = ia;\n        };\n        for (var ja = 0, ka = q.length; (ja < ka); ja++) {\n            h.applyWithGuard(q[ja], null, [ia,]);;\n        };\n        v--;\n    };\n    function ea(ia) {\n        if ((ia && ia.ut)) {\n            if ((t < ia.ut)) {\n                return true;\n            }\n             else if ((ia.ut < t)) {\n                x.error(\"old_cookie\", {\n                    cookie_time: ia.ut,\n                    local_time: t\n                });\n            }\n        \n        };\n        return false;\n    };\n    function fa() {\n        var ia = y();\n        if (ea(ia)) {\n            s = ia;\n        };\n        return s;\n    };\n    function ga() {\n        var ia = y();\n        if (ea(ia)) {\n            da(ia);\n        };\n    };\n    j.register(\"state\", ca);\n    g.subscribe(i.DUMP_EVENT, function(ia, ja) {\n        ja.presence_state = {\n            initial: k({\n            }, u),\n            state: k({\n            }, s),\n            update_time: t,\n            sync_paused: v,\n            poll_time: o\n        };\n    });\n    (function() {\n        var ia = fa();\n        if (ia) {\n            da(ia);\n        }\n         else {\n            x.debug(\"no_cookie_initial\");\n            da(ca());\n            return;\n        }\n    ;\n    })();\n    var ha = {\n        doSync: function(ia) {\n            if (v) {\n                return\n            };\n            if (ia) {\n                z();\n            }\n             else aa();\n        ;\n        },\n        registerStateStorer: function(ia) {\n            p.push(ia);\n        },\n        registerStateLoader: function(ia) {\n            q.push(ia);\n        },\n        get: function() {\n            return fa();\n        },\n        getInitial: function() {\n            return u;\n        },\n        verifyNumber: ba\n    };\n    e.exports = ha;\n});\n__d(\"TypeaheadBestName\", [\"TypeaheadUtil\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"TypeaheadUtil\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._typeahead = j;\n    };\n    i.prototype.enable = function() {\n        var j = this._typeahead.getView();\n        this._subscription = j.subscribe(\"beforeRender\", function(k, l) {\n            var m = l.value;\n            for (var n = 0; (n < l.results.length); ++n) {\n                var o = l.results[n];\n                if ((o.alternate_names == null)) {\n                    continue;\n                };\n                if (g.isQueryMatch(m, o.default_name)) {\n                    o.text = o.default_name;\n                    return;\n                }\n            ;\n                for (var p = 0; (p < o.alternate_names.length); p++) {\n                    if (g.isQueryMatch(m, o.alternate_names[p])) {\n                        o.text = o.alternate_names[p];\n                        return;\n                    }\n                ;\n                };\n                o.text = o.default_name;\n            };\n        });\n    };\n    i.prototype.disable = function() {\n        this._typeahead.getView().unsubscribe(this._subscription);\n        this._subscription = null;\n    };\n    h(i.prototype, {\n        _subscription: null\n    });\n    e.exports = i;\n});\n__d(\"legacy:BestNameTypeaheadBehavior\", [\"TypeaheadBestName\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadBestName\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.buildBestAvailableNames = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"TypingDetector\", [\"Event\",\"function-extensions\",\"ArbiterMixin\",\"Input\",\"Run\",\"copyProperties\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"ArbiterMixin\"), i = b(\"Input\"), j = b(\"Run\"), k = b(\"copyProperties\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\");\n    function n(o) {\n        this._input = o;\n        this._ignoreKeys = {\n        };\n    };\n    n.INACTIVE = 0;\n    n.TYPING = 1;\n    n.QUITTING = 2;\n    k(n.prototype, h, {\n        _timeout: 7000,\n        _currentState: n.INACTIVE,\n        init: function() {\n            this.init = m;\n            this.reset();\n            g.listen(this._input, \"keyup\", this._update.bind(this));\n            j.onUnload(this._onunload.bind(this));\n        },\n        reset: function() {\n            clearTimeout(this._checkTimer);\n            this._checkTimer = null;\n            this._lastKeystrokeAt = null;\n            this._currentState = n.INACTIVE;\n        },\n        setIgnoreKeys: function(o) {\n            this._ignoreKeys = l(o);\n        },\n        _onunload: function() {\n            if ((this._currentState == n.TYPING)) {\n                this._transition(n.QUITTING);\n            };\n        },\n        _update: function(event) {\n            var o = g.getKeyCode(event), p = this._currentState;\n            if (!this._ignoreKeys[o]) {\n                if ((i.getValue(this._input).trim().length === 0)) {\n                    if ((p == n.TYPING)) {\n                        this._transition(n.INACTIVE);\n                    };\n                }\n                 else if ((p == n.TYPING)) {\n                    this._recordKeystroke();\n                }\n                 else if ((p == n.INACTIVE)) {\n                    this._transition(n.TYPING);\n                    this._recordKeystroke();\n                }\n                \n                \n            \n            };\n        },\n        _transition: function(o) {\n            this.reset();\n            this._currentState = o;\n            this.inform(\"change\", o);\n        },\n        _recordKeystroke: function() {\n            this._lastKeystrokeTime = Date.now();\n            if (!this._checkTimer) {\n                this._checkTimer = this._checkTyping.bind(this).defer(this._timeout);\n            };\n        },\n        _checkTyping: function() {\n            var o = (this._lastKeystrokeTime + this._timeout), p = Date.now();\n            if ((p > o)) {\n                this._transition(n.INACTIVE);\n            }\n             else {\n                clearTimeout(this._checkTimer);\n                this._checkTimer = this._checkTyping.bind(this).defer(((o - p) + 10));\n            }\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"ClearableTypeahead\", [\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = {\n        resetOnCloseButtonClick: function(i, j) {\n            g.listen(j, \"click\", function() {\n                var k = i.getCore();\n                k.getElement().focus();\n                k.reset();\n            });\n        }\n    };\n    e.exports = h;\n});\n__d(\"TypeaheadShowLoadingIndicator\", [\"CSS\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._typeahead = j;\n    };\n    h(i.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._typeahead.subscribe(\"loading\", function(j, k) {\n                g.conditionClass(this._typeahead.getElement(), \"typeaheadLoading\", k.loading);\n                g.conditionClass(this._typeahead.getView().getElement(), \"typeaheadViewLoading\", k.loading);\n            }.bind(this));\n        },\n        disable: function() {\n            this._typeahead.unsubscribe(this._subscription);\n            this._subscription = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"legacy:ShowLoadingIndicatorTypeaheadBehavior\", [\"TypeaheadShowLoadingIndicator\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadShowLoadingIndicator\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.showLoadingIndicator = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"CompactTypeaheadRenderer\", [\"Badge\",\"DOM\",\"TypeaheadFacepile\",], function(a, b, c, d, e, f) {\n    var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"TypeaheadFacepile\");\n    function j(k, l) {\n        var m = [];\n        if (k.xhp) {\n            return h.create(\"li\", {\n                className: \"raw\"\n            }, k.xhp)\n        };\n        var n = (k.photos || k.photo);\n        if (n) {\n            if ((n instanceof Array)) {\n                n = i.render(n);\n            }\n             else n = h.create(\"img\", {\n                alt: \"\",\n                src: n\n            });\n        ;\n            m.push(n);\n        }\n    ;\n        if (k.text) {\n            var o = [k.text,];\n            if (k.verified) {\n                o.push(g(\"xsmall\"));\n            };\n            m.push(h.create(\"span\", {\n                className: \"text\"\n            }, o));\n        }\n    ;\n        var p = k.subtext, q = k.category;\n        if ((p || q)) {\n            var r = [];\n            (p && r.push(p));\n            ((p && q) && r.push(\" \\u00b7 \"));\n            (q && r.push(q));\n            m.push(h.create(\"span\", {\n                className: \"subtext\"\n            }, r));\n        }\n    ;\n        var s = h.create(\"li\", {\n            className: (k.type || \"\")\n        }, m);\n        if (k.text) {\n            s.setAttribute(\"aria-label\", k.text);\n        };\n        return s;\n    };\n    j.className = \"compact\";\n    e.exports = j;\n});\n__d(\"URLMatcher\", [], function(a, b, c, d, e, f) {\n    var g = \"!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\", h = \"\\u2000-\\u206f\\u00ab\\u00bb\\uff08\\uff09\", i = \"(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\", j = \"(?:(?:ht|f)tps?)://\", k = ((((\"(?:(?:\" + i) + \"[.]){3}\") + i) + \")\"), l = \"\\\\[(?:(?:[A-Za-z0-9]{1,4}::?){1,7}[A-Za-z0-9]{1,4})\\\\]\", m = \"(?:\\\\b)www\\\\d{0,3}[.]\", n = (((\"[^\\\\s\" + g) + h) + \"]\"), o = ((((((\"(?:(?:(?:[.:\\\\-_%@]|\" + n) + \")*\") + n) + \")|\") + l) + \")\"), p = \"(?:[.][a-z]{2,4})\", q = \"(?::\\\\d+){0,1}\", r = \"(?=[/?#])\", s = ((((((((((((((((((((((((((\"(?:\" + \"(?:\") + j) + o) + q) + \")|\") + \"(?:\") + k) + q) + \")|\") + \"(?:\") + l) + q) + \")|\") + \"(?:\") + m) + o) + p) + q) + \")|\") + \"(?:\") + o) + p) + q) + r) + \")\") + \")\"), t = \"[/#?]\", u = \"\\\\([^\\\\s()\\u003C\\u003E]+\\\\)\", v = \"[^\\\\s()\\u003C\\u003E?#]+\", w = new RegExp(s, \"im\"), x = (((((((((((\"(?:\" + \"(?:\") + t) + \")\") + \"(?:\") + \"(?:\") + u) + \"|\") + v) + \")*\") + \")*\") + \")*\"), y = new RegExp((((((((\"(\" + \"(?:\") + s) + \")\") + \"(?:\") + x) + \")\") + \")\"), \"im\"), z = new RegExp(((((((((((((\"(\" + \"(?:\") + j) + o) + q) + \")|\") + \"(?:\") + m) + o) + p) + q) + \")\") + \")\")), aa = /[\\s'\";]/, ba = new RegExp(t, \"im\"), ca = new RegExp(\"[\\\\s!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\\u00ab\\u00bb\\u2000-\\u206f\\uff08\\uff09]\", \"im\"), da = new RegExp(\"[\\\\s()\\u003C\\u003E?#]\", \"im\"), ea = new RegExp(\"\\\\s()\\u003C\\u003E\"), fa = function(ma) {\n        if ((ma && (ma.indexOf(\"@\") != -1))) {\n            return ((z.exec(ma)) ? ma : null);\n        }\n         else return ma\n    ;\n    }, ga = function(ma) {\n        return ha(ma, y);\n    }, ha = function(ma, na) {\n        var oa = (((na.exec(ma) || []))[1] || null);\n        return fa(oa);\n    }, ia = function(ma) {\n        return w.exec(ma);\n    }, ja = function(ma) {\n        return !aa.test(ma.charAt((ma.length - 1)));\n    }, ka = function(ma) {\n        var na = w.exec(ma);\n        if (!na) {\n            return null\n        };\n        var oa = ma.substr((na.index + na[0].length));\n        if (((oa.length === 0) || !(ba.test(oa[0])))) {\n            return fa(na[0])\n        };\n        var pa = 0, qa = 0, ra = 1, sa = 0, ta = qa;\n        for (var ua = 1; (ua < oa.length); ua++) {\n            var va = oa[ua];\n            if ((ta === qa)) {\n                if ((va === \"(\")) {\n                    sa = (sa + 1);\n                    ta = ra;\n                }\n                 else if ((ba.test(va) || !(ca.test(va)))) {\n                    pa = ua;\n                }\n                 else if (da.test(va)) {\n                    break;\n                }\n                \n            ;\n            }\n             else if ((va === \"(\")) {\n                sa = (sa + 1);\n            }\n             else if ((va === \")\")) {\n                sa = (sa - 1);\n                if ((sa === 0)) {\n                    ta = qa;\n                    pa = ua;\n                }\n            ;\n            }\n             else if (ea.test(va)) {\n                break;\n            }\n            \n            \n        ;\n        };\n        return fa((na[0] + oa.substring(0, (pa + 1))));\n    }, la = {\n    };\n    la.permissiveMatch = ga;\n    la.matchToPattern = ha;\n    la.matchHost = ia;\n    la.trigger = ja;\n    la.match = ka;\n    e.exports = la;\n});");
36489 // 10449
36490 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s8ead2a036e92884168d3fc8f84e49d83e5bb9b50");
36491 // 10450
36492 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"u//Ut\",]);\n}\n;\n;\n__d(\"MercuryAPIArgsSource\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        JEWEL: \"jewel\",\n        CHAT: \"chat\",\n        MERCURY: \"mercury\",\n        WEBMESSENGER: \"web_messenger\"\n    };\n});\n__d(\"MercuryActionStatus\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        UNCONFIRMED: 3,\n        UNSENT: 0,\n        RESENDING: 7,\n        RESENT: 6,\n        UNABLE_TO_CONFIRM: 5,\n        FAILED_UNKNOWN_REASON: 4,\n        SUCCESS: 1,\n        ERROR: 10\n    };\n});\n__d(\"MercuryActionTypeConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        LOG_MESSAGE: \"ma-type:log-message\",\n        CLEAR_CHAT: \"ma-type:clear_chat\",\n        UPDATE_ACTION_ID: \"ma-type:update-action-id\",\n        DELETE_MESSAGES: \"ma-type:delete-messages\",\n        CHANGE_FOLDER: \"ma-type:change-folder\",\n        SEND_MESSAGE: \"ma-type:send-message\",\n        CHANGE_ARCHIVED_STATUS: \"ma-type:change-archived-status\",\n        DELETE_THREAD: \"ma-type:delete-thread\",\n        USER_GENERATED_MESSAGE: \"ma-type:user-generated-message\",\n        CHANGE_READ_STATUS: \"ma-type:change_read_status\",\n        CHANGE_MUTE_SETTINGS: \"ma-type:change-mute-settings\"\n    };\n});\n__d(\"MercuryAttachmentContentType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        UNKNOWN: \"attach:unknown\",\n        PHOTO: \"attach:image\",\n        VIDEO: \"attach:video\",\n        MSWORD: \"attach:ms:word\",\n        VOICE: \"attach:voice\",\n        MSPPT: \"attach:ms:ppt\",\n        TEXT: \"attach:text\",\n        MUSIC: \"attach:music\",\n        MSXLS: \"attach:ms:xls\"\n    };\n});\n__d(\"MercuryAttachmentType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        STICKER: \"sticker\",\n        PHOTO: \"photo\",\n        FILE: \"file\",\n        SHARE: \"share\",\n        ERROR: \"error\"\n    };\n});\n__d(\"MercuryErrorType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        SERVER: 1,\n        TRANSPORT: 2,\n        TIMEOUT: 3\n    };\n});\n__d(\"MercuryGenericConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        PENDING_THREAD_ID: \"pending:pending\"\n    };\n});\n__d(\"MercuryGlobalActionType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        MARK_ALL_READ: \"mga-type:mark-all-read\"\n    };\n});\n__d(\"MercuryLogMessageType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        SERVER_ERROR: \"log:error-msg\",\n        UNSUBSCRIBE: \"log:unsubscribe\",\n        JOINABLE_JOINED: \"log:joinable-joined\",\n        JOINABLE_CREATED: \"log:joinable-created\",\n        LIVE_LISTEN: \"log:live-listen\",\n        PHONE_CALL: \"log:phone-call\",\n        THREAD_IMAGE: \"log:thread-image\",\n        THREAD_NAME: \"log:thread-name\",\n        VIDEO_CALL: \"log:video-call\",\n        SUBSCRIBE: \"log:subscribe\"\n    };\n});\n__d(\"MercuryMessageSourceTags\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        CHAT: \"source:chat\",\n        MOBILE: \"source:mobile\",\n        MESSENGER: \"source:messenger\",\n        EMAIL: \"source:email\"\n    };\n});\n__d(\"MercuryParticipantTypes\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        FRIEND: \"friend\",\n        USER: \"user\",\n        THREAD: \"thread\",\n        EVENT: \"JSBNG__event\",\n        PAGE: \"page\"\n    };\n});\n__d(\"MercuryPayloadSource\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        SERVER_INITIAL_DATA: \"server_initial_data\",\n        CLIENT_DELETE_THREAD: \"client_delete_thread\",\n        SERVER_ZAP: \"server_zap\",\n        SERVER_SAVE_DRAFT: \"server_save_draft\",\n        SERVER_CHANGE_ARCHIVED_STATUS: \"server_change_archived_status\",\n        SERVER_SEARCH: \"server_search\",\n        CLIENT_CHANGE_MUTE_SETTINGS: \"client_change_mute_settings\",\n        SERVER_UNREAD_THREADS: \"server_unread_threads\",\n        SERVER_MARK_SEEN: \"server_mark_seen\",\n        SERVER_THREAD_SYNC: \"server_thread_sync\",\n        CLIENT_DELETE_MESSAGES: \"client_delete_messages\",\n        SERVER_FETCH_THREADLIST_INFO: \"server_fetch_threadlist_info\",\n        CLIENT_CHANNEL_MESSAGE: \"client_channel_message\",\n        CLIENT_CHANGE_FOLDER: \"client_change_folder\",\n        CLIENT_CHANGE_READ_STATUS: \"client_change_read_status\",\n        CLIENT_CLEAR_CHAT: \"client_clear_chat\",\n        SERVER_FETCH_THREAD_INFO: \"server_fetch_thread_info\",\n        SERVER_CHANGE_READ_STATUS: \"server_change_read_status\",\n        SERVER_SEND_MESSAGE: \"server_send_message\",\n        CLIENT_SAVE_DRAFT: \"client_save_draft\",\n        UNKNOWN: \"unknown\",\n        SERVER_MARK_FOLDER_READ: \"server_mark_folder_read\",\n        SERVER_CONFIRM_MESSAGES: \"server_confirm_messages\",\n        SERVER_TAB_PRESENCE: \"server_tab_presence\",\n        CLIENT_CHANGE_ARCHIVED_STATUS: \"client_change-archived_status\",\n        CLIENT_SEND_MESSAGE: \"client_send_message\",\n        CLIENT_HANDLE_ERROR: \"client_handle_error\"\n    };\n});\n__d(\"MercurySourceType\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        GIGABOXX_BLAST: \"source:gigaboxx:blast\",\n        TITAN_FACEWEB_BUFFY: \"source:titan:faceweb_buffy\",\n        TITAN_FACEWEB_UNKNOWN: \"source:titan:faceweb_unknown\",\n        CHAT_WEB: \"source:chat:web\",\n        WEBRTC_MOBILE: \"source:webrtc:mobile\",\n        GIGABOXX_API: \"source:gigaboxx:api\",\n        TITAN_M_JAPAN: \"source:titan:m_japan\",\n        BUFFY_SMS: \"source:buffy:sms\",\n        SEND_PLUGIN: \"source:sendplugin\",\n        CHAT_MEEBO: \"source:chat:meebo\",\n        TITAN_FACEWEB_IPAD: \"source:titan:faceweb_ipad\",\n        TITAN_FACEWEB_IPHONE: \"source:titan:faceweb_iphone\",\n        TEST: \"source:test\",\n        WEB: \"source:web\",\n        SOCIALFOX: \"source:socialfox\",\n        EMAIL: \"source:email\",\n        TITAN_API: \"source:titan:api\",\n        GIGABOXX_WEB: \"source:gigaboxx:web\",\n        DESKTOP: \"source:desktop\",\n        TITAN_FACEWEB_ANDROID: \"source:titan:faceweb_android\",\n        LEIA: \"source:leia\",\n        CHAT_JABBER: \"source:chat:jabber\",\n        CHAT_TEST: \"source:chat:test\",\n        SHARE_DIALOG: \"source:share:dialog\",\n        GIGABOXX_WAP: \"source:gigaboxx:wap\",\n        CHAT: \"source:chat\",\n        TITAN_M_APP: \"source:titan:m_app\",\n        TITAN_M_TOUCH: \"source:titan:m_touch\",\n        TITAN_ORCA: \"source:titan:orca\",\n        TITAN_WAP: \"source:titan:wap\",\n        TITAN_EMAIL_REPLY: \"source:titan:emailreply\",\n        CHAT_IPHONE: \"source:chat:iphone\",\n        SMS: \"source:sms\",\n        TITAN_M_BASIC: \"source:titan:m_basic\",\n        TITAN_M_MINI: \"source:titan:m_mini\",\n        GIGABOXX_MOBILE: \"source:gigaboxx:mobile\",\n        UNKNOWN: \"source:unknown\",\n        TITAN_WEB: \"source:titan:web\",\n        TITAN_M_ZERO: \"source:titan:m_zero\",\n        MOBILE: \"source:mobile\",\n        PAID_PROMOTION: \"source:paid_promotion\",\n        TITAN_API_MOBILE: \"source:titan:api_mobile\",\n        HELPCENTER: \"source:helpcenter\",\n        GIGABOXX_EMAIL_REPLY: \"source:gigaboxx:emailreply\",\n        CHAT_ORCA: \"source:chat:orca\",\n        TITAN_M_TALK: \"source:titan:m_talk\",\n        NEW_SHARE_DIALOG: \"source:share:dialog:new\"\n    };\n});\n__d(\"MercuryThreadMode\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        EMAIL_ORIGINATED: 1,\n        OBJECT_ORIGINATED: 3,\n        TITAN_ORIGINATED: 2\n    };\n});\n__d(\"MercuryTimePassed\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        TODAY: 0,\n        WEEK_AGO: 1,\n        CURRENT_YEAR: 3,\n        OTHER_YEAR: 4,\n        MONTH_AGO: 2\n    };\n});\n__d(\"MessagingEvent\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        UNSUBSCRIBE: \"unsubscribe\",\n        DELIVERY_RECEIPT: \"delivery_receipt\",\n        REPORT_SPAM_MESSAGES: \"report_spam_messages\",\n        DELIVER_FAST_PAST: \"deliver_fast_path\",\n        DELETE_MESSAGES: \"delete_messages\",\n        READ_RECEIPT: \"read_receipt\",\n        SENT_PUSH: \"sent_push\",\n        READ: \"read\",\n        CHANGE_MUTE_SETTINGS: \"change_mute_settings\",\n        ERROR: \"error\",\n        UNMARK_SPAM: \"unmark_spam\",\n        UNREAD: \"unread\",\n        DELIVER_LOG: \"deliver_log\",\n        DELIVER: \"deliver\",\n        READ_ALL: \"read_all\",\n        TAG: \"tag\",\n        MORE_THREADS: \"more_threads\",\n        DELETE: \"delete\",\n        REPORT_SPAM: \"report_spam\",\n        SUBSCRIBE: \"subscribe\"\n    };\n});\n__d(\"MessagingTag\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        MTA_SYSTEM_MESSAGE: \"MTA:system_message\",\n        SENT: \"sent\",\n        INBOX: \"inbox\",\n        SMS_TAG_ROOT: \"SMSShortcode:\",\n        UPDATES: \"broadcasts_inbox\",\n        OTHER: \"other\",\n        GROUPS: \"groups\",\n        FILTERED_CONTENT: \"filtered_content\",\n        ACTION_ARCHIVED: \"action:archived\",\n        UNREAD: \"unread\",\n        BCC: \"header:bcc\",\n        SMS_MUTE: \"sms_mute\",\n        ARCHIVED: \"archived\",\n        DOMAIN_AUTH_PASS: \"MTA:dmarc:pass\",\n        EVENT: \"JSBNG__event\",\n        VOICEMAIL: \"voicemail\",\n        DOMAIN_AUTH_FAIL: \"MTA:dmarc:fail\",\n        SPAM_SPOOFING: \"spam:spoofing\",\n        SPOOF_WARNING: \"MTA:spoof_warning\",\n        SPAM: \"spam\",\n        EMAIL_MESSAGE: \"source:email\",\n        EMAIL: \"email\",\n        APP_ID_ROOT: \"app_id:\"\n    };\n});\n__d(\"AvailableListConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        ON_AVAILABILITY_CHANGED: \"buddylist/availability-changed\",\n        ON_UPDATE_ERROR: \"buddylist/update-error\",\n        ON_UPDATED: \"buddylist/updated\",\n        ON_CHAT_NOTIFICATION_CHANGED: \"chat-notification-changed\",\n        OFFLINE: 0,\n        IDLE: 1,\n        ACTIVE: 2,\n        MOBILE: 3,\n        LEGACY_OVERLAY_OFFLINE: -1,\n        LEGACY_OVERLAY_ONLINE: 0,\n        LEGACY_OVERLAY_IDLE: 1,\n        legacyStatusMap: {\n            0: 2,\n            1: 1,\n            \"-1\": 0,\n            2: 3\n        },\n        reverseLegacyStatusMap: {\n            0: -1,\n            1: 1,\n            2: 0,\n            3: 2\n        }\n    };\n    a.AvailableListConstants = e.exports = g;\n});\n__d(\"PresenceUtil\", [\"Cookie\",\"Env\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"Env\"), i = b(\"randomInt\"), j = b(\"tx\"), k = ((i(0, 4294967295) + 1)), l = {\n        checkMaintenanceError: function(m) {\n            if (((m.getError() == 1356007))) {\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        getErrorDescription: function(m) {\n            var n = m.getError(), o = m.getErrorDescription();\n            if (!o) {\n                o = \"An error occurred.\";\n            }\n        ;\n        ;\n            if (((n == 1357001))) {\n                o = \"Your session has timed out. Please log in.\";\n            }\n        ;\n        ;\n            return o;\n        },\n        getSessionID: function() {\n            return k;\n        },\n        hasUserCookie: function() {\n            return ((h.user === g.get(\"c_user\")));\n        }\n    };\n    e.exports = l;\n});\n__d(\"PresencePrivacy\", [\"hasArrayNature\",\"Arbiter\",\"AsyncRequest\",\"ChannelConstants\",\"copyProperties\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"PresencePrivacyInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ChannelConstants\"), k = b(\"copyProperties\"), l = b(\"Env\"), m = b(\"JSLogger\"), n = b(\"PresenceUtil\"), o = b(\"PresencePrivacyInitialData\"), p = \"/ajax/chat/privacy/settings.php\", q = \"/ajax/chat/privacy/online_policy.php\", r = \"/ajax/chat/privacy/visibility.php\", s = \"friend_visibility\", t = \"visibility\", u = \"online_policy\", v = k({\n    }, o.privacyData), w = o.visibility, x = k({\n    }, o.privacyData), y = w, z = o.onlinePolicy, aa = z, ba = [], ca = false;\n    function da() {\n        return m.create(\"blackbird\");\n    };\n;\n    var ea = k(new h(), {\n        WHITELISTED: 1,\n        BLACKLISTED: -1,\n        UNLISTED: 0,\n        ONLINE: 1,\n        OFFLINE: 0,\n        ONLINE_TO_WHITELIST: 0,\n        ONLINE_TO_BLACKLIST: 1\n    });\n    function fa(ra) {\n        var sa;\n        {\n            var fin118keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin118i = (0);\n            (0);\n            for (; (fin118i < fin118keys.length); (fin118i++)) {\n                ((sa) = (fin118keys[fin118i]));\n                {\n                    var ta = ra[sa];\n                    if (((sa == l.user))) {\n                        da().error(\"set_viewer_visibility\");\n                        throw new Error(\"Invalid to set current user's visibility\");\n                    }\n                ;\n                ;\n                    switch (ta) {\n                      case ea.WHITELISTED:\n                    \n                      case ea.BLACKLISTED:\n                    \n                      case ea.UNLISTED:\n                        break;\n                      default:\n                        da().error(\"set_invalid_friend_visibility\", {\n                            id: sa,\n                            value: ta\n                        });\n                        throw new Error(((\"Invalid state: \" + ta)));\n                    };\n                ;\n                };\n            };\n        };\n    ;\n        {\n            var fin119keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin119i = (0);\n            (0);\n            for (; (fin119i < fin119keys.length); (fin119i++)) {\n                ((sa) = (fin119keys[fin119i]));\n                {\n                    v[sa] = ra[sa];\n                ;\n                };\n            };\n        };\n    ;\n        ea.inform(\"privacy-changed\");\n    };\n;\n    function ga(ra, sa) {\n        var ta = {\n        };\n        ta[ra] = sa;\n        fa(ta);\n    };\n;\n    function ha(ra) {\n        switch (ra) {\n          case ea.ONLINE:\n        \n          case ea.OFFLINE:\n            break;\n          default:\n            da().error(\"set_invalid_visibility\", {\n                value: ra\n            });\n            throw new Error(((\"Invalid visibility: \" + ra)));\n        };\n    ;\n        w = ra;\n        ea.inform(\"privacy-changed\");\n        ea.inform(\"privacy-user-presence-changed\");\n        h.inform(\"chat/visibility-changed\", {\n            sender: this\n        });\n    };\n;\n    function ia(ra) {\n        switch (ra) {\n          case ea.ONLINE_TO_WHITELIST:\n        \n          case ea.ONLINE_TO_BLACKLIST:\n            break;\n          default:\n            throw new Error(((\"Invalid default online policy: \" + ra)));\n        };\n    ;\n        z = ra;\n        ea.inform(\"privacy-user-presence-changed\");\n        ea.inform(\"privacy-changed\");\n    };\n;\n    function ja(ra, sa) {\n        ca = true;\n        ra.send();\n    };\n;\n    function ka(ra, sa) {\n        ba.push({\n            request: ra,\n            data: sa\n        });\n        if (!ca) {\n            var ta = ba.shift();\n            ja(ta.request, ta.data);\n        }\n    ;\n    ;\n    };\n;\n    function la(ra, sa) {\n        var ta = ra.type;\n        if (((ta === s))) {\n            var ua = sa.payload.user_availabilities;\n            if (!g(ua)) {\n                ea.inform(\"privacy-availability-changed\", {\n                    user_availabilities: ua\n                });\n                {\n                    var fin120keys = ((window.top.JSBNG_Replay.forInKeys)((ra.settings))), fin120i = (0);\n                    var va;\n                    for (; (fin120i < fin120keys.length); (fin120i++)) {\n                        ((va) = (fin120keys[fin120i]));\n                        {\n                            x[va] = ra.settings[va];\n                        ;\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n        }\n         else {\n            if (((ta === t))) {\n                y = ra.visibility;\n            }\n             else if (((ta === u))) {\n                aa = ra.online_policy;\n            }\n            \n        ;\n        ;\n            ea.inform(\"privacy-user-presence-response\");\n        }\n    ;\n    ;\n        da().log(\"set_update_response\", {\n            data: ra,\n            response: sa\n        });\n    };\n;\n    function ma(ra, sa) {\n        if (((w !== y))) {\n            ha(y);\n        }\n    ;\n    ;\n        if (((z !== aa))) {\n            ia(aa);\n        }\n    ;\n    ;\n        k(v, x);\n        ea.inform(\"privacy-changed\");\n        ba = [];\n        da().log(\"set_error_response\", {\n            data: ra,\n            response: sa\n        });\n    };\n;\n    function na(ra) {\n        ca = false;\n        if (((ba.length > 0))) {\n            var sa = ba.shift();\n            ja(sa.request, sa.data);\n        }\n    ;\n    ;\n    };\n;\n    function oa(ra, sa) {\n        if (((n != null))) {\n            var ta = ra.getData();\n            ta.window_id = n.getSessionID();\n            ra.setData(ta);\n        }\n    ;\n    ;\n        ra.setHandler(la.bind(this, sa)).setErrorHandler(ma.bind(this, sa)).setTransportErrorHandler(ma.bind(this, sa)).setFinallyHandler(na.bind(this)).setAllowCrossPageTransition(true);\n        return ra;\n    };\n;\n    function pa(ra, sa, ta) {\n        return oa(new i(ra).setData(sa), ta);\n    };\n;\n    function qa(ra, sa) {\n        var ta = sa.obj;\n        if (((ta.viewer_id != l.user))) {\n            da().error(\"invalid_viewer_for_channel_message\", {\n                type: ra,\n                data: sa\n            });\n            throw new Error(\"Viewer got from the channel is not the real viewer\");\n        }\n    ;\n    ;\n        if (((ta.window_id === n.getSessionID()))) {\n            return;\n        }\n    ;\n    ;\n        var ua = ta.data;\n        if (((ta.JSBNG__event == \"access_control_entry\"))) {\n            ua.target_ids.forEach(function(wa) {\n                ga(wa, ua.setting);\n                x[wa] = ua.setting;\n            });\n        }\n         else {\n            if (((ta.JSBNG__event == \"visibility_update\"))) {\n                var va = ((!!ua.visibility ? ea.ONLINE : ea.OFFLINE));\n                ha(va);\n                y = va;\n            }\n             else if (((ta.JSBNG__event == \"online_policy_update\"))) {\n                ia(ua.online_policy);\n                aa = ua.online_policy;\n            }\n            \n        ;\n        ;\n            ea.inform(\"privacy-user-presence-response\");\n        }\n    ;\n    ;\n        da().log(\"channel_message_received\", {\n            data: sa.obj\n        });\n    };\n;\n    k(ea, {\n        WHITELISTED: 1,\n        BLACKLISTED: -1,\n        UNLISTED: 0,\n        ONLINE: 1,\n        OFFLINE: 0,\n        ONLINE_TO_WHITELIST: 0,\n        ONLINE_TO_BLACKLIST: 1,\n        init: function(ra, sa, ta) {\n        \n        },\n        setVisibility: function(ra) {\n            y = w;\n            ha(ra);\n            var sa = {\n                visibility: ra\n            }, ta = {\n                type: t,\n                visibility: ra\n            }, ua = pa(r, sa, ta);\n            ka(ua, ta);\n            da().log(\"set_visibility\", {\n                data: sa\n            });\n            return ra;\n        },\n        getVisibility: function() {\n            return w;\n        },\n        setOnlinePolicy: function(ra) {\n            aa = z;\n            ia(ra);\n            var sa = {\n                online_policy: ra\n            }, ta = {\n                type: u,\n                online_policy: ra\n            }, ua = pa(q, sa, ta);\n            ka(ua, ta);\n            da().log(\"set_online_policy\", {\n                data: sa\n            });\n            return ra;\n        },\n        getOnlinePolicy: function() {\n            return z;\n        },\n        getFriendVisibility: function(ra) {\n            return ((v[ra] || ea.UNLISTED));\n        },\n        allows: function(ra) {\n            if (((this.getVisibility() === ea.OFFLINE))) {\n                return false;\n            }\n        ;\n        ;\n            var sa = this.getOnlinePolicy();\n            return ((((sa === ea.ONLINE_TO_WHITELIST)) ? ((v[ra] == ea.WHITELISTED)) : ((v[ra] != ea.BLACKLISTED))));\n        },\n        setFriendsVisibility: function(ra, sa) {\n            if (((ra.length > 0))) {\n                var ta = {\n                };\n                for (var ua = 0; ((ua < ra.length)); ua++) {\n                    var va = ra[ua];\n                    x[va] = v[va];\n                    ta[va] = sa;\n                };\n            ;\n                fa(ta);\n                var wa = sa;\n                if (((wa == ea.UNLISTED))) {\n                    wa = x[ra[0]];\n                }\n            ;\n            ;\n                var xa = {\n                    users: ra,\n                    setting: sa,\n                    setting_type: wa\n                }, ya = {\n                    type: s,\n                    settings: ta\n                }, za = pa(p, xa, ya);\n                ka(za, ya);\n                da().log(\"set_friend_visibility\", {\n                    data: xa\n                });\n            }\n        ;\n        ;\n            return sa;\n        },\n        setFriendVisibilityMap: function(ra, sa) {\n            {\n                var fin121keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin121i = (0);\n                var ta;\n                for (; (fin121i < fin121keys.length); (fin121i++)) {\n                    ((ta) = (fin121keys[fin121i]));\n                    {\n                        x[ta] = v[ta];\n                    ;\n                    };\n                };\n            };\n        ;\n            fa(ra);\n            var ua = {\n                type: s,\n                settings: ra\n            };\n            ka(oa(sa, ua), ua);\n            da().log(\"set_friend_visibility_from_map\", {\n                data: ra\n            });\n        },\n        allow: function(ra) {\n            if (this.allows(ra)) {\n                da().error(\"allow_already_allowed\");\n                throw new Error(((\"allow() should only be called for users that \" + \"are not already allowed\")));\n            }\n        ;\n        ;\n            if (((this.getVisibility() === ea.OFFLINE))) {\n                da().error(\"allow_called_while_offline\");\n                throw new Error(\"allow() should only be called when the user is already online\");\n            }\n        ;\n        ;\n            var sa = ((((this.getOnlinePolicy() === ea.ONLINE_TO_WHITELIST)) ? ea.WHITELISTED : ea.UNLISTED));\n            return this.setFriendsVisibility([ra,], sa);\n        },\n        disallow: function(ra) {\n            if (!this.allows(ra)) {\n                da().error(\"disallow_already_disallowed\");\n                throw new Error(((\"disallow() should only be called for users that \" + \"are not already disallowed\")));\n            }\n        ;\n        ;\n            if (((this.getVisibility() === ea.OFFLINE))) {\n                da().error(\"disallow_called_while_offline\");\n                throw new Error(\"disallow() should only be called when the user is already online\");\n            }\n        ;\n        ;\n            var sa = ((((this.getOnlinePolicy() === ea.ONLINE_TO_BLACKLIST)) ? ea.BLACKLISTED : ea.UNLISTED));\n            return this.setFriendsVisibility([ra,], sa);\n        },\n        getBlacklist: function() {\n            var ra = [];\n            {\n                var fin122keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin122i = (0);\n                var sa;\n                for (; (fin122i < fin122keys.length); (fin122i++)) {\n                    ((sa) = (fin122keys[fin122i]));\n                    {\n                        if (((v[sa] === ea.BLACKLISTED))) {\n                            ra.push(sa);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return ra;\n        },\n        getWhitelist: function() {\n            var ra = [];\n            {\n                var fin123keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin123i = (0);\n                var sa;\n                for (; (fin123i < fin123keys.length); (fin123i++)) {\n                    ((sa) = (fin123keys[fin123i]));\n                    {\n                        if (((v[sa] === ea.WHITELISTED))) {\n                            ra.push(sa);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return ra;\n        },\n        getMapForTest: function() {\n            return v;\n        },\n        setMapForTest: function(ra) {\n            v = ra;\n        }\n    });\n    ea.inform(\"privacy-changed\");\n    ea.inform(\"privacy-user-presence-changed\");\n    da().log(\"initialized\", {\n        visibility: w,\n        policy: z\n    });\n    h.subscribe(j.getArbiterType(\"privacy_changed\"), qa.bind(this));\n    h.subscribe(j.ON_CONFIG, function(ra, sa) {\n        var ta = sa.getConfig(\"visibility\", null);\n        if (((((ta !== null)) && ((typeof (ta) !== \"undefined\"))))) {\n            var ua = ((ta ? ea.ONLINE : ea.OFFLINE));\n            ha(ua);\n            da().log(\"config_visibility\", {\n                vis: ua\n            });\n        }\n    ;\n    ;\n    }.bind(this));\n    a.PresencePrivacy = e.exports = ea;\n}, 3);\n__d(\"ChatVisibility\", [\"Arbiter\",\"JSLogger\",\"PresencePrivacy\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"JSLogger\"), i = b(\"PresencePrivacy\"), j = {\n        isOnline: function() {\n            return ((i.getVisibility() === i.ONLINE));\n        },\n        hasBlackbirdEnabled: function() {\n            return ((this.isVisibleToMostFriends() || this.isVisibleToSomeFriends()));\n        },\n        isVisibleToMostFriends: function() {\n            return ((((i.getOnlinePolicy() === i.ONLINE_TO_BLACKLIST)) && ((i.getBlacklist().length > 0))));\n        },\n        isVisibleToSomeFriends: function() {\n            return ((((i.getOnlinePolicy() === i.ONLINE_TO_WHITELIST)) && ((i.getWhitelist().length > 0))));\n        },\n        goOnline: function(k) {\n            if (((i.getVisibility() === i.OFFLINE))) {\n                h.create(\"blackbird\").log(\"chat_go_online\");\n                i.setVisibility(i.ONLINE);\n                g.inform(\"chat-visibility/go-online\");\n            }\n        ;\n        ;\n            ((k && k()));\n        },\n        goOffline: function(k) {\n            if (((i.getVisibility() === i.ONLINE))) {\n                h.create(\"blackbird\").log(\"chat_go_offline\");\n                i.setVisibility(i.OFFLINE);\n                g.inform(\"chat-visibility/go-offline\");\n            }\n        ;\n        ;\n            ((k && k()));\n        },\n        toggleVisibility: function() {\n            if (j.isOnline()) {\n                j.goOffline();\n            }\n             else j.goOnline();\n        ;\n        ;\n        }\n    };\n    a.ChatVisibility = e.exports = j;\n}, 3);\n__d(\"MercuryIDs\", [], function(a, b, c, d, e, f) {\n    function g(i) {\n        return ((((typeof i === \"string\")) && ((i.indexOf(\":\") !== -1))));\n    };\n;\n    var h = {\n        isValid: function(i) {\n            if (!i) {\n                return false;\n            }\n        ;\n        ;\n            return g(i);\n        },\n        isValidThreadID: function(i) {\n            if (!h.isValid(i)) {\n                return false;\n            }\n        ;\n        ;\n            var j = h.tokenize(i);\n            switch (j.type) {\n              case \"user\":\n            \n              case \"group\":\n            \n              case \"thread\":\n            \n              case \"root\":\n            \n              case \"pending\":\n                return true;\n              default:\n                return false;\n            };\n        ;\n        },\n        tokenize: function(i) {\n            if (!this.isValid(i)) {\n                throw \"bad_id_format\";\n            }\n        ;\n        ;\n            var j = i.indexOf(\":\");\n            return {\n                type: i.substr(0, j),\n                value: i.substr(((j + 1)))\n            };\n        },\n        getUserIDFromParticipantID: function(i) {\n            if (!h.isValid(i)) {\n                return null;\n            }\n        ;\n        ;\n            var j = h.tokenize(i);\n            if (((j.type != \"fbid\"))) {\n                return null;\n            }\n        ;\n        ;\n            return j.value;\n        }\n    };\n    e.exports = h;\n});\n__d(\"MercuryAssert\", [\"MercuryIDs\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryIDs\");\n    e.exports = {\n        isParticipantID: function(h) {\n            if (!g.isValid(h)) {\n                throw \"bad_participant_id\";\n            }\n        ;\n        ;\n        },\n        allParticipantIDs: function(h) {\n            h.forEach(this.isParticipantID);\n        },\n        isUserParticipantID: function(h) {\n            var i = g.tokenize(h);\n            if (((i.type != \"fbid\"))) {\n                throw \"bad_user_id\";\n            }\n        ;\n        ;\n        },\n        isEmailParticipantID: function(h) {\n            var i = g.tokenize(h);\n            if (((i.type != \"email\"))) {\n                throw \"bad_email_id\";\n            }\n        ;\n        ;\n        },\n        allThreadID: function(h) {\n            h.forEach(this.isThreadID);\n        },\n        isThreadID: function(h) {\n            if (!g.isValid(h)) {\n                throw \"bad_thread_id\";\n            }\n        ;\n        ;\n        }\n    };\n});\n__d(\"MercurySingletonMixin\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = {\n        _getInstances: function() {\n            if (!this._instances) {\n                this._instances = {\n                };\n            }\n        ;\n        ;\n            return this._instances;\n        },\n        get: function() {\n            return this.getForFBID(g.user);\n        },\n        getForFBID: function(i) {\n            var j = this._getInstances();\n            if (!j[i]) {\n                j[i] = new this(i);\n            }\n        ;\n        ;\n            return j[i];\n        }\n    };\n    e.exports = h;\n});\n__d(\"MercuryMessageIDs\", [\"KeyedCallbackManager\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = new g(), i = {\n        getServerIDs: function(j, k) {\n            var l = j.filter(function(n) {\n                return ((n.indexOf(\"mail.projektitan.com\") !== -1));\n            }), m = function(n) {\n                var o = j.map(function(p) {\n                    return ((n[p] ? n[p] : p));\n                });\n                k(o);\n            };\n            return h.executeOrEnqueue(l, m);\n        },\n        addServerID: function(j, k) {\n            h.setResource(j, k);\n        }\n    };\n    e.exports = i;\n});\n__d(\"ImageSourceType\", [], function(a, b, c, d, e, f) {\n    var g = {\n        PROFILE_PICTURE: \"profile_picture\",\n        IMAGE: \"image\"\n    };\n    e.exports = g;\n});\n__d(\"PhotoResizeModeConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        COVER: \"s\",\n        CONTAIN: \"p\"\n    };\n    e.exports = g;\n});\n__d(\"ImageSourceRequest\", [\"arrayContains\",\"extendArray\",\"copyProperties\",\"Env\",\"KeyedCallbackManager\",\"ImageSourceType\",\"PhotoResizeModeConst\",\"MercuryServerDispatcher\",], function(a, b, c, d, e, f) {\n    var g = b(\"arrayContains\"), h = b(\"extendArray\"), i = b(\"copyProperties\"), j = b(\"Env\"), k = b(\"KeyedCallbackManager\"), l = b(\"ImageSourceType\"), m = b(\"PhotoResizeModeConst\"), n = b(\"MercuryServerDispatcher\");\n    function o() {\n        this._request = {\n            fbid: null,\n            type: null,\n            width: null,\n            height: null,\n            resize_mode: null\n        };\n        this._callback = null;\n    };\n;\n    i(o.prototype, {\n        setFBID: function(s) {\n            this._request.fbid = s;\n            return this;\n        },\n        setType: function(s) {\n            if (!g([l.PROFILE_PICTURE,l.IMAGE,], s)) {\n                throw new TypeError(((\"ImageSourceRequest.setType: invalid type \" + s)));\n            }\n        ;\n        ;\n            this._request.type = s;\n            return this;\n        },\n        setDimensions: function(s, t) {\n            this._request.width = s;\n            this._request.height = t;\n            return this;\n        },\n        setResizeMode: function(s) {\n            if (!g([m.COVER,m.CONTAIN,], s)) {\n                throw new TypeError(((\"ImageSourceRequest.setResizeMode: invalid resize mode \" + s)));\n            }\n        ;\n        ;\n            this._request.resize_mode = s;\n            return this;\n        },\n        setCallback: function(s) {\n            this._callback = s;\n            return this;\n        },\n        send: function() {\n            if (((((((((((!this._request.fbid || !this._request.width)) || !this._request.height)) || !this._request.type)) || !this._request.resize_mode)) || !this._callback))) {\n                throw new Error(\"ImageSourceRequest: You must set all the fields\");\n            }\n        ;\n        ;\n            var s = q(), t = r(this._request);\n            s.executeOrEnqueue(t, this._callback);\n            if (((s.getUnavailableResourcesFromRequest(t).length === 1))) {\n                n.trySend(\"/ajax/image_source.php\", {\n                    requests: [this._request,]\n                });\n                return true;\n            }\n        ;\n        ;\n            return false;\n        }\n    });\n    var p = null;\n    function q() {\n        if (p) {\n            return p;\n        }\n    ;\n    ;\n        var s = new k();\n        p = s;\n        n.registerEndpoints({\n            \"/ajax/image_source.php\": {\n                request_user_id: j.user,\n                mode: n.BATCH_DEFERRED_MULTI,\n                batch_function: function(t, u) {\n                    h(t.requests, u.requests);\n                    return t;\n                },\n                handler: function(t, u) {\n                    var v = u.getData().requests;\n                    for (var w = 0; ((w < v.length)); ++w) {\n                        s.setResource(r(v[w]), t[w]);\n                    ;\n                    };\n                ;\n                }\n            }\n        });\n        return s;\n    };\n;\n    function r(s) {\n        return [s.fbid,s.type,s.width,s.height,s.resize_mode,].join(\"|\");\n    };\n;\n    e.exports = o;\n});\n__d(\"TimestampConverter\", [\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSLogger\"), h = g.create(\"timestamp_converter\");\n    function i(k) {\n        return ((((typeof (k) == \"string\")) && ((k.length > 6))));\n    };\n;\n    var j = {\n        convertActionIDToTimestamp: function(k) {\n            if (i(k)) {\n                var l = k.slice(0, -6);\n                return parseInt(l, 10);\n            }\n        ;\n        ;\n        },\n        maxValidActionID: function(k, l) {\n            if (!i(k)) {\n                return l;\n            }\n        ;\n        ;\n            if (!i(l)) {\n                return k;\n            }\n        ;\n        ;\n            return ((this.isGreaterThan(k, l) ? k : l));\n        },\n        isGreaterThan: function(k, l) {\n            if (((!i(k) || !i(l)))) {\n                return false;\n            }\n        ;\n        ;\n            return ((this.convertActionIDToTimestamp(k) > this.convertActionIDToTimestamp(l)));\n        }\n    };\n    e.exports = j;\n});\n__d(\"MessagingReliabilityLogger\", [\"function-extensions\",\"PresenceUtil\",\"MercuryServerDispatcher\",\"MessagingReliabilityLoggerInitialData\",\"isEmpty\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"PresenceUtil\"), h = b(\"MercuryServerDispatcher\"), i = b(\"MessagingReliabilityLoggerInitialData\"), j = b(\"isEmpty\"), k = b(\"setTimeoutAcrossTransitions\"), l = \"/ajax/mercury/client_reliability.php\", m = 60000;\n    function n(t, u) {\n        var v = {\n            app: i.app,\n            categories: JSON.stringify(t)\n        };\n        if (!j(u)) {\n            v.extra = JSON.stringify(u);\n        }\n    ;\n    ;\n        return v;\n    };\n;\n    function o(t, u, v, w) {\n        if (((t[u] === undefined))) {\n            t[u] = {\n            };\n        }\n    ;\n    ;\n        if (((t[u][v] === undefined))) {\n            t[u][v] = 0;\n        }\n    ;\n    ;\n        t[u][v] += w;\n    };\n;\n    function p(t, u, v, w) {\n        if (((t[u] === undefined))) {\n            t[u] = {\n            };\n        }\n    ;\n    ;\n        if (((t[u][v] === undefined))) {\n            t[u][v] = [];\n        }\n    ;\n    ;\n        for (var x = 0; ((x < w.length)); ++x) {\n            t[u][v].push(w[x]);\n        ;\n        };\n    ;\n    };\n;\n    function q(t, u) {\n        if (((((t && !t.categories)) || ((u && !u.categories))))) {\n            return;\n        }\n    ;\n    ;\n        var v = ((t ? JSON.parse(t.categories) : {\n        })), w = ((((t && t.extra)) ? JSON.parse(t.extra) : {\n        })), x = JSON.parse(u.categories), y = ((u.extra ? JSON.parse(u.extra) : {\n        }));\n        {\n            var fin124keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin124i = (0);\n            var z;\n            for (; (fin124i < fin124keys.length); (fin124i++)) {\n                ((z) = (fin124keys[fin124i]));\n                {\n                    var aa = x[z], ba = y[z];\n                    {\n                        var fin125keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin125i = (0);\n                        var ca;\n                        for (; (fin125i < fin125keys.length); (fin125i++)) {\n                            ((ca) = (fin125keys[fin125i]));\n                            {\n                                o(v, z, ca, aa[ca]);\n                                if (((ba !== undefined))) {\n                                    var da = ba[ca];\n                                    if (((da !== undefined))) {\n                                        p(w, z, ca, da);\n                                    }\n                                ;\n                                ;\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                };\n            };\n        };\n    ;\n        return n(v, w);\n    };\n;\n    var r = {\n    };\n    r[l] = {\n        mode: h.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR,\n        batch_function: q\n    };\n    h.registerEndpoints(r);\n    var s = {\n        addEntry: function(t, u, v) {\n            if (!i.enabled) {\n                return;\n            }\n        ;\n        ;\n            var w = {\n            };\n            o(w, t, u, 1);\n            var x = {\n            };\n            if (((v !== undefined))) {\n                p(x, t, u, [v,]);\n            }\n        ;\n        ;\n            h.trySend(l, n(w, x));\n        }\n    };\n    (function t() {\n        s.addEntry(\"page_event\", \"active\", g.getSessionID());\n        k(t, m);\n    })();\n    e.exports = s;\n});\n__d(\"MercuryThreadInformer\", [\"ArbiterMixin\",\"copyProperties\",\"MercuryAssert\",\"MercurySingletonMixin\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"MercuryAssert\"), j = b(\"MercurySingletonMixin\");\n    function k(m) {\n        if (!m._locked) {\n            var n = m._threadDeletions, o = m._threadChanges, p = m._threadReadChanges, q = m._threadlistChanged, r = m._unseenStateChanged, s = m._unreadStateChanged, t = m._receivedMessages, u = m._reorderedMessages, v = m._updatedMessages;\n            m._threadDeletions = {\n            };\n            m._threadChanges = {\n            };\n            m._threadReadChanges = {\n            };\n            m._threadlistChanged = false;\n            m._unseenStateChanged = false;\n            m._unreadStateChanged = false;\n            m._receivedMessages = {\n            };\n            m._reorderedMessages = {\n            };\n            m._updatedMessages = {\n            };\n            var w = Object.keys(o);\n            if (((w.length || q))) {\n                m.inform(\"threadlist-updated\", w);\n            }\n        ;\n        ;\n            if (w.length) {\n                m.inform(\"threads-updated\", o);\n            }\n        ;\n        ;\n            {\n                var fin126keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin126i = (0);\n                var x;\n                for (; (fin126i < fin126keys.length); (fin126i++)) {\n                    ((x) = (fin126keys[fin126i]));\n                    {\n                        m.inform(\"thread-read-changed\", p);\n                        break;\n                    };\n                };\n            };\n        ;\n            {\n                var fin127keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin127i = (0);\n                var x;\n                for (; (fin127i < fin127keys.length); (fin127i++)) {\n                    ((x) = (fin127keys[fin127i]));\n                    {\n                        m.inform(\"threads-deleted\", n);\n                        break;\n                    };\n                };\n            };\n        ;\n            if (r) {\n                m.inform(\"unseen-updated\", null);\n            }\n        ;\n        ;\n            if (s) {\n                m.inform(\"unread-updated\", null);\n            }\n        ;\n        ;\n            {\n                var fin128keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin128i = (0);\n                (0);\n                for (; (fin128i < fin128keys.length); (fin128i++)) {\n                    ((x) = (fin128keys[fin128i]));\n                    {\n                        m.inform(\"messages-received\", t);\n                        break;\n                    };\n                };\n            };\n        ;\n            {\n                var fin129keys = ((window.top.JSBNG_Replay.forInKeys)((u))), fin129i = (0);\n                (0);\n                for (; (fin129i < fin129keys.length); (fin129i++)) {\n                    ((x) = (fin129keys[fin129i]));\n                    {\n                        m.inform(\"messages-reordered\", u);\n                        break;\n                    };\n                };\n            };\n        ;\n            {\n                var fin130keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin130i = (0);\n                (0);\n                for (; (fin130i < fin130keys.length); (fin130i++)) {\n                    ((x) = (fin130keys[fin130i]));\n                    {\n                        m.inform(\"messages-updated\", v);\n                        break;\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function l(m) {\n        this._fbid = m;\n        this._threadDeletions = {\n        };\n        this._threadChanges = {\n        };\n        this._threadReadChanges = {\n        };\n        this._threadlistChanged = false;\n        this._unseenStateChanged = false;\n        this._unreadStateChanged = false;\n        this._receivedMessages = {\n        };\n        this._reorderedMessages = {\n        };\n        this._updatedMessages = {\n        };\n        this._locked = 0;\n    };\n;\n    h(l.prototype, g, {\n        updatedThread: function(m) {\n            this._threadChanges[m] = true;\n            k(this);\n        },\n        deletedThread: function(m) {\n            this._threadDeletions[m] = true;\n            k(this);\n        },\n        updatedThreadlist: function() {\n            this._threadlistChanged = true;\n            k(this);\n        },\n        updatedUnseenState: function() {\n            this._unseenStateChanged = true;\n            k(this);\n        },\n        updatedUnreadState: function() {\n            this._unreadStateChanged = true;\n            k(this);\n        },\n        changedThreadReadState: function(m, n, o) {\n            if (((!this._threadReadChanges[m] || ((this._threadReadChanges[m].timestamp < o))))) {\n                this._threadReadChanges[m] = {\n                    mark_as_read: n,\n                    timestamp: o\n                };\n            }\n        ;\n        ;\n            k(this);\n        },\n        receivedMessage: function(m) {\n            i.isThreadID(m.thread_id);\n            var n = m.thread_id;\n            if (!this._receivedMessages[n]) {\n                this._receivedMessages[n] = [];\n            }\n        ;\n        ;\n            this._receivedMessages[n].push(m);\n            this.updatedThread(n);\n        },\n        reorderedMessages: function(m, n) {\n            this._reorderedMessages[m] = {\n                source: n\n            };\n            k(this);\n        },\n        updatedMessage: function(m, n, o) {\n            if (!this._updatedMessages[m]) {\n                this._updatedMessages[m] = {\n                };\n            }\n        ;\n        ;\n            this._updatedMessages[m][n] = {\n                source: o\n            };\n            this.updatedThread(m);\n        },\n        synchronizeInforms: function(m) {\n            this._locked++;\n            try {\n                m();\n            } catch (n) {\n                throw n;\n            } finally {\n                this._locked--;\n                k(this);\n            };\n        ;\n        },\n        listen: function(m, n) {\n            return this.subscribe(\"threads-updated\", function(o, p) {\n                if (p[m]) {\n                    n(m);\n                }\n            ;\n            ;\n            });\n        }\n    });\n    h(l, j);\n    e.exports = l;\n});\n__d(\"MercuryServerRequests\", [\"ArbiterMixin\",\"AsyncResponse\",\"TimestampConverter\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAPIArgsSource\",\"MercuryAssert\",\"MercuryErrorType\",\"MercuryGenericConstants\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryPayloadSource\",\"MercuryServerRequestsConfig\",\"MercurySourceType\",\"MercuryThreadlistConstants\",\"MercuryMessageIDs\",\"MessagingConfig\",\"MessagingReliabilityLogger\",\"MessagingTag\",\"MercurySingletonMixin\",\"MercuryServerDispatcher\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncResponse\"), i = b(\"TimestampConverter\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"KeyedCallbackManager\"), m = b(\"MercuryActionTypeConstants\"), n = b(\"MercuryActionStatus\"), o = b(\"MercuryAPIArgsSource\"), p = b(\"MercuryAssert\"), q = b(\"MercuryErrorType\"), r = b(\"MercuryGenericConstants\"), s = b(\"MercuryGlobalActionType\"), t = b(\"MercuryIDs\"), u = b(\"MercuryLogMessageType\"), v = b(\"MercuryPayloadSource\"), w = b(\"MercuryServerRequestsConfig\"), x = b(\"MercurySourceType\"), y = b(\"MercuryThreadlistConstants\"), z = b(\"MercuryMessageIDs\"), aa = b(\"MessagingConfig\"), ba = b(\"MessagingReliabilityLogger\"), ca = b(\"MessagingTag\"), da = b(\"MercurySingletonMixin\"), ea = b(\"MercuryServerDispatcher\"), fa = b(\"MercuryThreadInformer\"), ga = b(\"copyProperties\"), ha = b(\"createObjectFrom\"), ia = k.create(\"mercury_server\"), ja = o.MERCURY;\n    function ka(sb, tb) {\n        if (tb) {\n            sb._lastActionId = i.maxValidActionID(sb._lastActionId, tb);\n        }\n    ;\n    ;\n    };\n;\n    function la(sb, tb) {\n        var ub = tb.thread_id, vb = sb._serverToClientIDs.getResource(ub);\n        if (!vb) {\n            if (tb.canonical_fbid) {\n                vb = ((\"user:\" + tb.canonical_fbid));\n            }\n             else if (tb.root_message_threading_id) {\n                vb = ((\"root:\" + tb.root_message_threading_id));\n            }\n            \n        ;\n        ;\n            vb = ((vb || ((\"thread:\" + ub))));\n            ma(sb, ub, vb);\n        }\n    ;\n    ;\n        tb.thread_id = vb;\n    };\n;\n    function ma(sb, tb, ub) {\n        sb._serverToClientIDs.setResource(tb, ub);\n        sb._clientToServerIDs.setResource(ub, tb);\n        sb._newlyAddedClientIDs[tb] = ub;\n    };\n;\n    function na(sb, tb, ub) {\n        var vb = sb._clientToServerIDs.executeOrEnqueue(tb, ub), wb = sb._clientToServerIDs.getUnavailableResources(vb), xb = sb.tokenizeThreadID(tb);\n        if (((wb.length && ((xb.type != \"root\"))))) {\n            sb.fetchThreadData(wb);\n        }\n    ;\n    ;\n    };\n;\n    function oa(sb, tb) {\n        return sb._clientToServerIDs.getResource(tb);\n    };\n;\n    function pa(sb, tb) {\n        return !!sb._serverToClientIDs.getResource(tb);\n    };\n;\n    function qa(sb, tb) {\n        var ub = sb._serverToClientIDs.getResource(tb);\n        if (((typeof ub == \"undefined\"))) {\n            ia.warn(\"no_client_thread_id\", {\n                server_id: tb\n            });\n        }\n    ;\n    ;\n        return ub;\n    };\n;\n    function ra(sb, tb, ub) {\n        sb._serverToClientIDs.executeOrEnqueue(tb, ub);\n        sb.ensureThreadIsFetched(tb);\n    };\n;\n    function sa(sb, tb, ub) {\n        if (((tb.action_type != m.SEND_MESSAGE))) {\n            return;\n        }\n    ;\n    ;\n        var vb = tb.client_thread_id;\n        if (!vb) {\n            vb = qa(sb, tb.thread_id);\n        }\n    ;\n    ;\n        var wb = null;\n        if (vb) {\n            wb = t.tokenize(vb).type;\n        }\n    ;\n    ;\n        ba.addEntry(((\"send_\" + wb)), ub, ((((tb.thread_id + \",\")) + tb.message_id)));\n    };\n;\n    function ta(sb) {\n        return ((sb.getError() ? ((\"_\" + sb.getError())) : \"\"));\n    };\n;\n    function ua(sb, tb) {\n        var ub = null;\n        switch (tb.JSBNG__status) {\n          case n.SUCCESS:\n            ub = \"success\";\n            break;\n          case n.FAILED_UNKNOWN_REASON:\n            ub = \"confirmed_error\";\n            break;\n          case n.UNABLE_TO_CONFIRM:\n            ub = \"confirm_error\";\n            break;\n          default:\n            return;\n        };\n    ;\n        sa(sb, tb, ub);\n    };\n;\n    function va(sb, tb) {\n        ((tb.message_counts || [])).forEach(function(cc) {\n            ka(sb, cc.last_action_id);\n        });\n        ((tb.threads || [])).forEach(function(cc) {\n            la(sb, cc);\n            delete sb._fetchingThreads[cc.thread_id];\n            var dc = oa(sb, cc.thread_id);\n            delete sb._fetchingThreads[dc];\n            ka(sb, cc.last_action_id);\n        });\n        ((tb.ordered_threadlists || [])).forEach(function(cc) {\n            cc.thread_ids = cc.thread_ids.map(qa.curry(sb));\n        });\n        tb.actions = ((tb.actions || []));\n        tb.actions.forEach(function(cc) {\n            ua(sb, cc);\n            if (((((cc.JSBNG__status && ((cc.JSBNG__status != n.SUCCESS)))) && !cc.thread_id))) {\n                cc.thread_id = cc.client_thread_id;\n                return;\n            }\n        ;\n        ;\n            if (((((((cc.action_type == m.SEND_MESSAGE)) && cc.client_thread_id)) && ((cc.client_thread_id != r.PENDING_THREAD_ID))))) {\n                ma(sb, cc.thread_id, cc.client_thread_id);\n            }\n        ;\n        ;\n            cc.server_thread_id = cc.thread_id;\n            cc.thread_id = ((pa(sb, cc.thread_id) ? qa(sb, cc.thread_id) : null));\n            ka(sb, cc.action_id);\n        });\n        if (tb.end_of_history) {\n            var ub = [];\n            for (var vb = 0; ((vb < tb.end_of_history.length)); vb++) {\n                var wb = tb.end_of_history[vb];\n                if (((wb.type == \"user\"))) {\n                    ub.push(((\"user:\" + wb.id)));\n                }\n                 else if (((((wb.type == \"thread\")) && pa(sb, wb.id)))) {\n                    ub.push(qa(sb, wb.id));\n                }\n                \n            ;\n            ;\n            };\n        ;\n            tb.end_of_history = ub;\n        }\n    ;\n    ;\n        if (tb.roger) {\n            var xb = {\n            };\n            {\n                var fin131keys = ((window.top.JSBNG_Replay.forInKeys)((tb.roger))), fin131i = (0);\n                var yb;\n                for (; (fin131i < fin131keys.length); (fin131i++)) {\n                    ((yb) = (fin131keys[fin131i]));\n                    {\n                        var zb = sb._serverToClientIDs.getResource(yb);\n                        if (zb) {\n                            var ac = tb.roger[yb];\n                            xb[zb] = {\n                            };\n                            {\n                                var fin132keys = ((window.top.JSBNG_Replay.forInKeys)((ac))), fin132i = (0);\n                                var bc;\n                                for (; (fin132i < fin132keys.length); (fin132i++)) {\n                                    ((bc) = (fin132keys[fin132i]));\n                                    {\n                                        xb[zb][((\"fbid:\" + bc))] = ac[bc];\n                                    ;\n                                    };\n                                };\n                            };\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            tb.roger = xb;\n        }\n    ;\n    ;\n    };\n;\n    function wa(sb) {\n        if (((sb._pendingUpdates && sb._pendingUpdates.length))) {\n            var tb = sb._pendingUpdates[0];\n            sb._pendingUpdates = sb._pendingUpdates.slice(1);\n            sb.handleUpdate(tb);\n        }\n    ;\n    ;\n    };\n;\n    function xa(sb, tb) {\n        var ub = ga({\n        }, sb), vb;\n        if (tb.threads) {\n            if (!ub.threads) {\n                ub.threads = {\n                };\n            }\n        ;\n        ;\n            {\n                var fin133keys = ((window.top.JSBNG_Replay.forInKeys)((tb.threads))), fin133i = (0);\n                (0);\n                for (; (fin133i < fin133keys.length); (fin133i++)) {\n                    ((vb) = (fin133keys[fin133i]));\n                    {\n                        ub.threads[vb] = Object.keys(ha(((ub.threads[vb] || [])).concat(tb.threads[vb])));\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n        if (tb.messages) {\n            if (!ub.messages) {\n                ub.messages = {\n                };\n            }\n        ;\n        ;\n            {\n                var fin134keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages))), fin134i = (0);\n                (0);\n                for (; (fin134i < fin134keys.length); (fin134i++)) {\n                    ((vb) = (fin134keys[fin134i]));\n                    {\n                        if (!ub.messages[vb]) {\n                            ub.messages[vb] = {\n                            };\n                        }\n                    ;\n                    ;\n                        {\n                            var fin135keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages[vb]))), fin135i = (0);\n                            var wb;\n                            for (; (fin135i < fin135keys.length); (fin135i++)) {\n                                ((wb) = (fin135keys[fin135i]));\n                                {\n                                    if (ub.messages[vb][wb]) {\n                                        ub.messages[vb][wb] = ab(ub.messages[vb][wb], tb.messages[vb][wb]);\n                                    }\n                                     else ub.messages[vb][wb] = tb.messages[vb][wb];\n                                ;\n                                ;\n                                };\n                            };\n                        };\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n        ub.client = ((sb.client || tb.client));\n        return ub;\n    };\n;\n    function ya(sb, tb) {\n        var ub = ga(ha(sb.folders, true), ha(tb.folders, true)), vb = ((sb.client || tb.client));\n        return {\n            folders: Object.keys(ub),\n            client: vb\n        };\n    };\n;\n    function za(sb, tb) {\n        {\n            var fin136keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin136i = (0);\n            var ub;\n            for (; (fin136i < fin136keys.length); (fin136i++)) {\n                ((ub) = (fin136keys[fin136i]));\n                {\n                    if (((sb[ub] && ((typeof sb[ub] === \"object\"))))) {\n                        sb[ub] = ab(sb[ub], tb[ub]);\n                    }\n                     else if (((tb[ub] && ((typeof tb[ub] === \"object\"))))) {\n                        var vb = {\n                        };\n                        ga(vb, tb[ub]);\n                        sb[ub] = vb;\n                    }\n                    \n                ;\n                ;\n                };\n            };\n        };\n    ;\n        return sb;\n    };\n;\n    function ab(sb, tb) {\n        var ub = ((((sb.offset < tb.offset)) ? sb.offset : tb.offset)), vb = ((sb.offset + sb.limit)), wb = ((tb.offset + tb.limit)), xb = ((((vb > wb)) ? vb : wb)), yb = ((xb - ub));\n        return {\n            offset: ub,\n            limit: yb\n        };\n    };\n;\n    function bb(sb, tb) {\n        var ub = ((sb.client || tb.client)), vb = {\n            ids: {\n            },\n            client: ub\n        };\n        ga(vb.ids, sb.ids);\n        ga(vb.ids, tb.ids);\n        return vb;\n    };\n;\n    function cb(sb, tb) {\n        var ub = {\n        }, vb, wb = ((sb.client || tb.client));\n        delete sb.client;\n        delete tb.client;\n        {\n            var fin137keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin137i = (0);\n            (0);\n            for (; (fin137i < fin137keys.length); (fin137i++)) {\n                ((vb) = (fin137keys[fin137i]));\n                {\n                    ga(ub, ha(sb[vb], vb));\n                ;\n                };\n            };\n        };\n    ;\n        {\n            var fin138keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin138i = (0);\n            (0);\n            for (; (fin138i < fin138keys.length); (fin138i++)) {\n                ((vb) = (fin138keys[fin138i]));\n                {\n                    ga(ub, ha(tb[vb], vb));\n                ;\n                };\n            };\n        };\n    ;\n        var xb = {\n            client: wb\n        };\n        {\n            var fin139keys = ((window.top.JSBNG_Replay.forInKeys)((ub))), fin139i = (0);\n            var yb;\n            for (; (fin139i < fin139keys.length); (fin139i++)) {\n                ((yb) = (fin139keys[fin139i]));\n                {\n                    vb = ub[yb];\n                    if (!xb[vb]) {\n                        xb[vb] = [];\n                    }\n                ;\n                ;\n                    xb[vb].push(yb);\n                };\n            };\n        };\n    ;\n        return xb;\n    };\n;\n    function db(sb, tb) {\n        var ub = ((sb.client || tb.client)), vb = ha(sb.ids, true), wb = ha(tb.ids, true), xb = ga(vb, wb);\n        return {\n            ids: Object.keys(xb),\n            client: ub\n        };\n    };\n;\n    function eb(sb) {\n        this._fbid = sb;\n        this._lastActionId = 0;\n        this._serverToClientIDs = new l();\n        this._clientToServerIDs = new l();\n        this._pendingUpdates = [];\n        this._fetchingThreads = {\n        };\n        this._newlyAddedClientIDs = {\n        };\n        qb(this);\n    };\n;\n    ga(eb.prototype, g, {\n        tokenizeThreadID: function(sb) {\n            p.isThreadID(sb);\n            return t.tokenize(sb);\n        },\n        getServerThreadID: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, tb);\n        },\n        getClientThreadID: function(sb, tb) {\n            ra(this, sb, tb);\n        },\n        getClientThreadIDNow: function(sb) {\n            return qa(this, sb);\n        },\n        getServerThreadIDNow: function(sb) {\n            return oa(this, sb);\n        },\n        convertThreadIDIfAvailable: function(sb) {\n            var tb = this._serverToClientIDs.getResource(sb);\n            if (((tb === undefined))) {\n                return sb;\n            }\n             else return tb\n        ;\n        },\n        canLinkExternally: function(sb) {\n            p.isThreadID(sb);\n            var tb = this.tokenizeThreadID(sb);\n            return ((((tb.type == \"user\")) || !!oa(this, sb)));\n        },\n        fetchThreadlistInfo: function(sb, tb, ub, vb, wb) {\n            ub = ((ub || ca.INBOX));\n            wb = ((wb || ja));\n            var xb = ((vb ? ea.IMMEDIATE : null)), yb = {\n                client: wb\n            };\n            yb[ub] = {\n                offset: sb,\n                limit: tb,\n                filter: vb\n            };\n            rb(this, \"/ajax/mercury/threadlist_info.php\", yb, xb);\n        },\n        fetchUnseenThreadIDs: function(sb, tb) {\n            tb = ((tb || ja));\n            this.fetchThreadlistInfo(y.RECENT_THREAD_OFFSET, y.JEWEL_THREAD_COUNT, sb, null, tb);\n        },\n        fetchUnreadThreadIDs: function(sb, tb) {\n            tb = ((tb || ja));\n            rb(this, \"/ajax/mercury/unread_threads.php\", {\n                folders: [sb,],\n                client: tb\n            });\n        },\n        fetchMissedMessages: function(sb, tb) {\n            tb = ((tb || ja));\n            rb(this, \"/ajax/mercury/thread_sync.php\", {\n                last_action_id: this._lastActionId,\n                folders: sb,\n                client: tb\n            });\n        },\n        fetchThreadData: function(sb, tb) {\n            tb = ((tb || ja));\n            p.allThreadID(sb);\n            var ub = {\n                threads: {\n                },\n                client: tb\n            }, vb = [], wb = [];\n            sb.forEach(function(yb) {\n                if (this._fetchingThreads[yb]) {\n                    return;\n                }\n            ;\n            ;\n                this._fetchingThreads[yb] = true;\n                var zb = oa(this, yb);\n                if (zb) {\n                    wb.push(zb);\n                    ub.threads.thread_ids = wb;\n                }\n                 else {\n                    var ac = this.tokenizeThreadID(yb);\n                    if (((ac.type == \"user\"))) {\n                        vb.push(ac.value);\n                        ub.threads.user_ids = vb;\n                    }\n                     else if (((ac.type == \"thread\"))) {\n                        wb.push(ac.value);\n                        ub.threads.thread_ids = wb;\n                    }\n                     else if (((((ac.type != \"root\")) && ((ac.type != \"pending\"))))) {\n                        throw new Error(\"Unknown thread type\", ac);\n                    }\n                    \n                    \n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            this.inform(\"fetch-thread-data\", ub);\n            {\n                var fin140keys = ((window.top.JSBNG_Replay.forInKeys)((ub.threads))), fin140i = (0);\n                var xb;\n                for (; (fin140i < fin140keys.length); (fin140i++)) {\n                    ((xb) = (fin140keys[fin140i]));\n                    {\n                        rb(this, \"/ajax/mercury/thread_info.php\", ub);\n                        break;\n                    };\n                };\n            };\n        ;\n        },\n        ensureThreadIsFetched: function(sb, tb) {\n            tb = ((tb || ja));\n            if (((!this._serverToClientIDs.getResource(sb) && !this._fetchingThreads[sb]))) {\n                this._fetchingThreads[sb] = true;\n                rb(this, \"/ajax/mercury/thread_info.php\", {\n                    threads: {\n                        thread_ids: [sb,]\n                    },\n                    client: tb\n                });\n            }\n        ;\n        ;\n        },\n        fetchThreadMessages: function(sb, tb, ub, vb, wb) {\n            p.isThreadID(sb);\n            wb = ((wb || ja));\n            var xb, yb, zb = this.tokenizeThreadID(sb), ac = oa(this, sb), bc = false;\n            if (((ac && ((zb.type != \"group\"))))) {\n                yb = \"thread_ids\";\n                xb = ac;\n            }\n             else {\n                xb = zb.value;\n                switch (zb.type) {\n                  case \"user\":\n                    yb = \"user_ids\";\n                    bc = true;\n                    break;\n                  case \"group\":\n                    yb = \"group_ids\";\n                    break;\n                  case \"thread\":\n                    yb = \"thread_ids\";\n                    break;\n                };\n            ;\n            }\n        ;\n        ;\n            var cc = {\n                messages: {\n                },\n                threads: {\n                },\n                client: wb\n            };\n            if (yb) {\n                cc.messages[yb] = {\n                };\n                cc.messages[yb][xb] = {\n                    offset: tb,\n                    limit: ub\n                };\n                if (bc) {\n                    cc.threads[yb] = [xb,];\n                }\n            ;\n            ;\n                rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n            }\n             else na(this, sb, function(dc) {\n                cc.messages.thread_ids = {\n                };\n                cc.messages.thread_ids[dc] = {\n                    offset: tb,\n                    limit: ub\n                };\n                rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n            }.bind(this));\n        ;\n        ;\n        },\n        handleThreadInfoError: function(sb) {\n            var tb = sb.getRequest().getData(), ub = [];\n            if (tb.messages) {\n                {\n                    var fin141keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.thread_ids))), fin141i = (0);\n                    var vb;\n                    for (; (fin141i < fin141keys.length); (fin141i++)) {\n                        ((vb) = (fin141keys[fin141i]));\n                        {\n                            ub.push(fb(qa(this, vb)));\n                        ;\n                        };\n                    };\n                };\n            ;\n                {\n                    var fin142keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.user_ids))), fin142i = (0);\n                    var wb;\n                    for (; (fin142i < fin142keys.length); (fin142i++)) {\n                        ((wb) = (fin142keys[fin142i]));\n                        {\n                            ub.push(fb(((\"user:\" + wb))));\n                        ;\n                        };\n                    };\n                };\n            ;\n                {\n                    var fin143keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.group_ids))), fin143i = (0);\n                    var xb;\n                    for (; (fin143i < fin143keys.length); (fin143i++)) {\n                        ((xb) = (fin143keys[fin143i]));\n                        {\n                            ub.push(fb(((\"group:\" + xb))));\n                        ;\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n            if (ub.length) {\n                this.handleUpdate({\n                    actions: ub,\n                    from_client: true,\n                    payload_source: v.CLIENT_CHANNEL_MESSAGE\n                });\n            }\n        ;\n        ;\n            if (((tb.threads && ((((tb.threads.user_ids || tb.threads.group_ids)) || tb.threads.thread_ids))))) {\n                var yb = 5, zb = true;\n                if (!tb.retry_count) {\n                    tb.retry_count = 0;\n                    if (tb.messages) {\n                        delete tb.messages;\n                    }\n                ;\n                ;\n                }\n                 else if (((tb.retry_count >= yb))) {\n                    zb = false;\n                    ((tb.threads.thread_ids || [])).forEach(function(bc) {\n                        if (((bc in this._fetchingThreads))) {\n                            delete this._fetchingThreads[bc];\n                        }\n                    ;\n                    ;\n                    }.bind(this));\n                }\n                \n            ;\n            ;\n                if (zb) {\n                    var ac = ((tb.retry_count * 1000));\n                    (function() {\n                        ia.log(\"retry_thread\", tb);\n                        rb(this, \"/ajax/mercury/thread_info.php\", tb);\n                    }.bind(this)).defer(ac, false);\n                    tb.retry_count++;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        markFolderAsRead: function(sb) {\n            rb(this, \"/ajax/mercury/mark_folder_as_read.php\", {\n                folder: sb\n            });\n            var tb = [{\n                action_type: s.MARK_ALL_READ,\n                action_id: null,\n                folder: sb\n            },];\n            this.handleUpdate({\n                global_actions: tb,\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_READ_STATUS\n            });\n        },\n        changeThreadReadStatus: function(sb, tb, ub) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                var xb = {\n                    ids: {\n                    }\n                };\n                xb.ids[wb] = tb;\n                rb(this, \"/ajax/mercury/change_read_status.php\", xb);\n            }.bind(this));\n            var vb = [{\n                action_type: m.CHANGE_READ_STATUS,\n                action_id: null,\n                thread_id: sb,\n                mark_as_read: tb,\n                folder: ub\n            },];\n            this.handleUpdate({\n                actions: vb,\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_READ_STATUS\n            });\n        },\n        changeThreadArchivedStatus: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                var xb = {\n                    ids: {\n                    }\n                };\n                xb.ids[wb] = tb;\n                rb(this, \"/ajax/mercury/change_archived_status.php\", xb);\n            }.bind(this));\n            var ub = {\n                action_type: m.CHANGE_ARCHIVED_STATUS,\n                action_id: null,\n                thread_id: sb,\n                archived: tb\n            }, vb = {\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_ARCHIVED_STATUS\n            };\n            this.handleUpdate(vb);\n        },\n        changeThreadFolder: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                var xb = {\n                };\n                xb[tb] = [wb,];\n                rb(this, \"/ajax/mercury/move_thread.php\", xb);\n            }.bind(this));\n            var ub = {\n                action_type: m.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: sb,\n                new_folder: tb\n            }, vb = {\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_FOLDER\n            };\n            this.handleUpdate(vb);\n        },\n        changeMutingOnThread: function(sb, tb) {\n            p.isThreadID(sb);\n            na(this, sb, function(wb) {\n                rb(this, \"/ajax/mercury/change_mute_thread.php\", {\n                    thread_id: wb,\n                    mute_settings: tb,\n                    payload_source: ja\n                });\n            }.bind(this));\n            var ub = {\n                action_type: m.CHANGE_MUTE_SETTINGS,\n                action_id: null,\n                thread_id: sb,\n                mute_settings: tb\n            }, vb = {\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_MUTE_SETTINGS\n            };\n            this.handleUpdate(vb);\n        },\n        markThreadSpam: function(sb) {\n            p.isThreadID(sb);\n            na(this, sb, function(vb) {\n                rb(this, \"/ajax/mercury/mark_spam.php\", {\n                    id: vb\n                });\n            }.bind(this));\n            var tb = {\n                action_type: m.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: sb,\n                new_folder: ca.SPAM\n            }, ub = {\n                actions: [tb,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_FOLDER\n            };\n            this.handleUpdate(ub);\n        },\n        markMessagesSpam: function(sb, tb) {\n            z.getServerIDs(((tb || [])), function(vb) {\n                rb(this, \"/ajax/mercury/mark_spam_messages.php\", {\n                    message_ids: vb\n                });\n            }.bind(this));\n            var ub = {\n                action_type: m.DELETE_MESSAGES,\n                action_id: null,\n                thread_id: sb,\n                message_ids: tb\n            };\n            this.handleUpdate({\n                actions: [ub,],\n                from_client: true,\n                payload_source: v.CLIENT_DELETE_MESSAGES\n            });\n        },\n        unmarkThreadSpam: function(sb) {\n            p.isThreadID(sb);\n            na(this, sb, function(vb) {\n                rb(this, \"/ajax/mercury/unmark_spam.php\", {\n                    id: vb\n                });\n            }.bind(this));\n            var tb = {\n                action_type: m.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: sb,\n                new_folder: ca.INBOX\n            }, ub = {\n                actions: [tb,],\n                from_client: true,\n                payload_source: v.CLIENT_CHANGE_FOLDER\n            };\n            this.handleUpdate(ub);\n        },\n        deleteThread: function(sb) {\n            p.isThreadID(sb);\n            na(this, sb, function(vb) {\n                var wb = {\n                    ids: [vb,]\n                };\n                rb(this, \"/ajax/mercury/delete_thread.php\", wb);\n            }.bind(this));\n            var tb = {\n                action_type: m.DELETE_THREAD,\n                action_id: null,\n                thread_id: sb\n            }, ub = {\n                actions: [tb,],\n                from_client: true,\n                payload_source: v.CLIENT_DELETE_THREAD\n            };\n            this.handleUpdate(ub);\n        },\n        deleteMessages: function(sb, tb, ub) {\n            z.getServerIDs(((tb || [])), function(wb) {\n                rb(this, \"/ajax/mercury/delete_messages.php\", {\n                    message_ids: wb\n                });\n            }.bind(this));\n            var vb;\n            if (ub) {\n                vb = {\n                    action_type: m.DELETE_THREAD,\n                    action_id: null,\n                    thread_id: sb\n                };\n            }\n             else vb = {\n                action_type: m.DELETE_MESSAGES,\n                action_id: null,\n                thread_id: sb,\n                message_ids: tb\n            };\n        ;\n        ;\n            this.handleUpdate({\n                actions: [vb,],\n                from_client: true,\n                payload_source: v.CLIENT_DELETE_MESSAGES\n            });\n        },\n        clearChat: function(sb, tb, ub) {\n            p.isThreadID(sb);\n            rb(this, \"/ajax/chat/settings.php\", {\n                clear_history_id: tb\n            });\n            var vb = [{\n                action_type: m.CLEAR_CHAT,\n                action_id: null,\n                thread_id: sb,\n                clear_time: ub\n            },];\n            this.handleUpdate({\n                actions: vb,\n                from_client: true,\n                payload_source: v.CLIENT_CLEAR_CHAT\n            });\n        },\n        sendNewMessage: function(sb, tb) {\n            tb = ((tb || ja));\n            if (!sb.do_not_send_to_server) {\n                z.getServerIDs(((sb.forward_message_ids || [])), function(vb) {\n                    var wb = sb.thread_id, xb = this.tokenizeThreadID(sb.thread_id), yb = xb.type, zb = ga({\n                    }, sb);\n                    zb.forward_message_ids = vb;\n                    if (((((((((yb == \"root\")) && ((xb.value == zb.message_id)))) || ((((yb == \"user\")) && !oa(this, wb))))) || ((sb.thread_id == r.PENDING_THREAD_ID))))) {\n                        zb.client_thread_id = zb.thread_id;\n                        zb.thread_id = null;\n                        this._sendNewMessageToServer(zb, tb);\n                    }\n                     else na(this, zb.thread_id, function(ac) {\n                        zb.thread_id = ac;\n                        this._sendNewMessageToServer(zb);\n                    }.bind(this));\n                ;\n                ;\n                }.bind(this));\n            }\n        ;\n        ;\n            if (((sb.thread_id != r.PENDING_THREAD_ID))) {\n                var ub = {\n                    actions: [ga({\n                    }, sb),],\n                    from_client: true,\n                    payload_source: v.CLIENT_SEND_MESSAGE\n                };\n                this.handleUpdate(ub);\n            }\n        ;\n        ;\n        },\n        _sendNewMessageToServer: function(sb, tb) {\n            tb = ((tb || ja));\n            rb(this, \"/ajax/mercury/send_messages.php\", {\n                message_batch: [sb,],\n                client: tb\n            });\n        },\n        requestMessageConfirmation: function(sb, tb) {\n            tb = ((tb || ja));\n            var ub = {\n            }, vb = {\n            };\n            {\n                var fin144keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin144i = (0);\n                var wb;\n                for (; (fin144i < fin144keys.length); (fin144i++)) {\n                    ((wb) = (fin144keys[fin144i]));\n                    {\n                        var xb = oa(this, wb);\n                        if (xb) {\n                            ub[xb] = sb[wb];\n                        }\n                         else {\n                            var yb = sb[wb];\n                            for (var zb = 0; ((zb < yb.length)); zb++) {\n                                vb[yb[zb]] = wb;\n                            ;\n                            };\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var ac = Object.keys(ub), bc = Object.keys(vb);\n            if (((ac.length || bc.length))) {\n                rb(this, \"/ajax/mercury/confirm_messages.php\", {\n                    thread_message_map: ub,\n                    local_messages: vb,\n                    client: tb\n                });\n            }\n        ;\n        ;\n        },\n        handleMessageConfirmError: function(sb) {\n            var tb = sb.getRequest().getData().thread_message_map, ub = sb.getRequest().getData().local_messages;\n            if (((!tb && !ub))) {\n                return;\n            }\n        ;\n        ;\n            var vb = [];\n            {\n                var fin145keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin145i = (0);\n                var wb;\n                for (; (fin145i < fin145keys.length); (fin145i++)) {\n                    ((wb) = (fin145keys[fin145i]));\n                    {\n                        var xb = tb[wb];\n                        xb.forEach(function(ac) {\n                            vb.push({\n                                action_type: m.SEND_MESSAGE,\n                                client_message_id: ac,\n                                message_id: ac,\n                                client_thread_id: null,\n                                thread_id: wb,\n                                JSBNG__status: n.UNABLE_TO_CONFIRM\n                            });\n                        });\n                    };\n                };\n            };\n        ;\n            {\n                var fin146keys = ((window.top.JSBNG_Replay.forInKeys)((ub))), fin146i = (0);\n                var yb;\n                for (; (fin146i < fin146keys.length); (fin146i++)) {\n                    ((yb) = (fin146keys[fin146i]));\n                    {\n                        var zb = ub[yb];\n                        vb.push({\n                            action_type: m.SEND_MESSAGE,\n                            client_message_id: yb,\n                            message_id: yb,\n                            client_thread_id: zb,\n                            thread_id: null,\n                            JSBNG__status: n.UNABLE_TO_CONFIRM\n                        });\n                    };\n                };\n            };\n        ;\n            if (vb.length) {\n                this.handleUpdate({\n                    actions: vb,\n                    payload_source: v.CLIENT_HANDLE_ERROR\n                });\n            }\n        ;\n        ;\n        },\n        markSeen: function() {\n            var sb = i.convertActionIDToTimestamp(this._lastActionId);\n            rb(this, \"/ajax/mercury/mark_seen.php\", {\n                seen_timestamp: sb\n            });\n        },\n        handleRoger: function(sb) {\n            var tb = ((sb.tid ? this._serverToClientIDs.getResource(sb.tid) : ((\"user:\" + sb.reader))));\n            if (tb) {\n                var ub = {\n                };\n                ub[tb] = {\n                };\n                ub[tb][((\"fbid:\" + sb.reader))] = sb.time;\n                this.inform(\"update-roger\", ub);\n            }\n        ;\n        ;\n        },\n        handleUpdateWaitForThread: function(sb, tb, ub) {\n            ub = ((ub || ja));\n            var vb = this._serverToClientIDs.getResource(tb);\n            if (vb) {\n                this.handleUpdate(sb);\n                return;\n            }\n        ;\n        ;\n            this._serverToClientIDs.executeOrEnqueue(tb, function() {\n                this._pendingUpdates.push(sb);\n            }.bind(this));\n            if (!this._fetchingThreads[tb]) {\n                this._fetchingThreads[tb] = true;\n                rb(this, \"/ajax/mercury/thread_info.php\", {\n                    threads: {\n                        thread_ids: [tb,]\n                    },\n                    client: ub\n                });\n            }\n        ;\n        ;\n        },\n        handleUpdate: function(sb) {\n            var tb = [];\n            if (((sb && sb.threads))) {\n                for (var ub = 0; ((ub < sb.threads.length)); ub++) {\n                    if (!sb.threads[ub].snippet_attachments) {\n                        continue;\n                    }\n                ;\n                ;\n                    for (var vb = 0; ((vb < sb.threads[ub].snippet_attachments.length)); vb++) {\n                        if (sb.threads[ub].snippet_attachments[vb].share_xhp) {\n                            tb.push({\n                                i: ub,\n                                j: vb,\n                                xhp: sb.threads[ub].snippet_attachments[vb].share_xhp\n                            });\n                            sb.threads[ub].snippet_attachments[vb].share_xhp = ((((\"HTMLDivElement not shown: object contains circular \" + \"reference, which was breaking JSON.stringify. \")) + \"Look at MercuryServerRequests.handleUpdate\"));\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                };\n            }\n        ;\n        ;\n            ia.debug(\"handle_update\", {\n                payload: sb,\n                from_client: sb.from_client\n            });\n            for (var wb = 0; ((wb < tb.length)); wb++) {\n                sb.threads[tb[wb].i].snippet_attachments[tb[wb].j].share_xhp = tb[wb].xhp;\n            ;\n            };\n        ;\n            {\n                var fin147keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin147i = (0);\n                (0);\n                for (; (fin147i < fin147keys.length); (fin147i++)) {\n                    ((wb) = (fin147keys[fin147i]));\n                    {\n                        fa.getForFBID(this._fbid).synchronizeInforms(function() {\n                            if (!sb.from_client) {\n                                va(this, sb);\n                                this.inform(\"payload-preprocessed\", sb);\n                            }\n                        ;\n                        ;\n                            this.inform(\"update-thread-ids\", this._newlyAddedClientIDs);\n                            this._newlyAddedClientIDs = {\n                            };\n                            this.inform(\"update-participants\", sb);\n                            this.inform(\"update-threads\", sb);\n                            this.inform(\"update-unread\", sb);\n                            this.inform(\"update-threadlist\", sb);\n                            this.inform(\"update-messages\", sb);\n                            this.inform(\"update-unseen\", sb);\n                            this.inform(\"update-typing-state\", sb);\n                            this.inform(\"update-roger\", sb.roger);\n                            this.inform(\"model-update-completed\", null);\n                            wa(this);\n                        }.bind(this));\n                        break;\n                    };\n                };\n            };\n        ;\n        },\n        _handleSendMessageErrorCommon: function(sb, tb, ub, vb) {\n            ia.debug(\"handle_send_message_error_common\", {\n                reliability_error_status: ub,\n                request_error_status: tb\n            });\n            var wb = sb.getData(), xb = wb.message_batch, yb = xb.map(function(ac) {\n                return {\n                    action_type: m.SEND_MESSAGE,\n                    client_message_id: ac.message_id,\n                    message_id: ac.message_id,\n                    client_thread_id: ac.client_thread_id,\n                    thread_id: ac.thread_id,\n                    JSBNG__status: tb,\n                    error_data: vb\n                };\n            });\n            yb.forEach(function(ac) {\n                sa(this, ac, ub);\n            }.bind(this));\n            var zb = {\n                actions: yb,\n                payload_source: v.CLIENT_HANDLE_ERROR\n            };\n            this.handleUpdate(zb);\n        },\n        handleSendMessageError: function(sb) {\n            var tb = sb.getPayload(), ub = null, vb = null;\n            if (((tb && tb.error_payload))) {\n                ub = n.UNCONFIRMED;\n                vb = \"send_error\";\n            }\n             else {\n                ub = n.ERROR;\n                vb = ((\"request_error\" + ta(sb)));\n            }\n        ;\n        ;\n            var wb = sb.error;\n            if (((wb === 1404102))) {\n                h.verboseErrorHandler(sb);\n            }\n        ;\n        ;\n            var xb = ((/<.*>/.test(sb.getErrorDescription()) ? sb.getErrorSummary() : sb.getErrorDescription()));\n            this._handleSendMessageErrorCommon(sb.getRequest(), ub, vb, {\n                type: q.SERVER,\n                code: sb.getError(),\n                description: xb,\n                is_transient: sb.isTransient()\n            });\n        },\n        handleSendMessageTransportError: function(sb) {\n            this._handleSendMessageErrorCommon(sb.getRequest(), n.ERROR, ((\"transport_error\" + ta(sb))), {\n                type: q.TRANSPORT,\n                code: sb.getError(),\n                is_transient: true\n            });\n        },\n        handleSendMessageTimeout: function(sb) {\n            this._handleSendMessageErrorCommon(sb, n.ERROR, \"transport_timeout\", {\n                type: q.TIMEOUT,\n                is_transient: true\n            });\n        },\n        getLastActionID: function() {\n            return this._lastActionId;\n        }\n    });\n    ga(eb, da);\n    function fb(sb) {\n        return {\n            action_type: m.LOG_MESSAGE,\n            thread_id: sb,\n            message_id: sb,\n            timestamp: JSBNG__Date.now(),\n            timestamp_absolute: \"\",\n            timestamp_relative: \"\",\n            is_unread: false,\n            source: x.UNKNOWN,\n            log_message_type: u.SERVER_ERROR,\n            log_message_data: {\n            }\n        };\n    };\n;\n    function gb(sb) {\n        var tb = sb.getData(), ub = ((tb.request_user_id ? tb.request_user_id : j.user));\n        return eb.getForFBID(ub);\n    };\n;\n    function hb(sb, tb) {\n        gb(tb).handleUpdate(sb);\n    };\n;\n    function ib(sb, tb) {\n        var ub = ((sb.client || tb.client));\n        return {\n            client: ub,\n            message_batch: sb.message_batch.concat(tb.message_batch)\n        };\n    };\n;\n    function jb(sb, tb) {\n        var ub = {\n        };\n        ga(ub, sb.ids);\n        ga(ub, tb.ids);\n        var vb = ((sb.client || tb.client));\n        return {\n            ids: ub,\n            client: vb\n        };\n    };\n;\n    function kb(sb, tb) {\n        return tb;\n    };\n;\n    function lb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleThreadInfoError(sb);\n    };\n;\n    function mb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleSendMessageError(sb);\n    };\n;\n    function nb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleSendMessageTransportError(sb);\n    };\n;\n    function ob(sb) {\n        var tb = gb(sb);\n        tb.handleSendMessageTimeout(sb);\n    };\n;\n    function pb(sb) {\n        var tb = gb(sb.getRequest());\n        tb.handleMessageConfirmError(sb);\n    };\n;\n    function qb(sb) {\n        ea.registerEndpoints({\n            \"/ajax/mercury/thread_sync.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IDEMPOTENT,\n                handler: hb\n            },\n            \"/ajax/mercury/thread_info.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_DEFERRED_MULTI,\n                batch_function: xa,\n                handler: hb,\n                error_handler: lb\n            },\n            \"/ajax/mercury/mark_folder_as_read.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/change_read_status.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: jb,\n                handler: hb\n            },\n            \"/ajax/mercury/send_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: ib,\n                batch_size_limit: aa.SEND_BATCH_LIMIT,\n                handler: hb,\n                error_handler: mb,\n                transport_error_handler: nb,\n                timeout: w.sendMessageTimeout,\n                timeout_handler: ob,\n                connection_retries: aa.SEND_CONNECTION_RETRIES\n            },\n            \"/ajax/mercury/mark_seen.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: kb,\n                handler: hb\n            },\n            \"/ajax/mercury/confirm_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb,\n                error_handler: pb\n            },\n            \"/ajax/mercury/threadlist_info.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n                batch_function: za,\n                handler: hb\n            },\n            \"/ajax/mercury/mark_spam.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/mark_spam_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/unmark_spam.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/unread_threads.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n                batch_function: ya,\n                handler: hb\n            },\n            \"/ajax/chat/settings.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE\n            },\n            \"/ajax/mercury/change_archived_status.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: bb,\n                handler: hb\n            },\n            \"/ajax/mercury/delete_thread.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: db,\n                handler: hb\n            },\n            \"/ajax/mercury/delete_messages.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            },\n            \"/ajax/mercury/move_thread.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.BATCH_SUCCESSIVE,\n                batch_function: cb,\n                handler: hb\n            },\n            \"/ajax/mercury/change_mute_thread.php\": {\n                request_user_id: sb._fbid,\n                mode: ea.IMMEDIATE,\n                handler: hb\n            }\n        });\n    };\n;\n    function rb(sb, tb, ub, vb) {\n        ea.trySend(tb, ub, vb, sb._fbid);\n    };\n;\n    e.exports = eb;\n});\n__d(\"MercuryParticipants\", [\"Env\",\"ImageSourceRequest\",\"ImageSourceType\",\"MercuryAssert\",\"MercuryIDs\",\"MercuryParticipantTypes\",\"MercuryParticipantsConstants\",\"PhotoResizeModeConst\",\"MercuryServerRequests\",\"ShortProfiles\",\"copyProperties\",\"getObjectValues\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"ImageSourceRequest\"), i = b(\"ImageSourceType\"), j = b(\"MercuryAssert\"), k = b(\"MercuryIDs\"), l = b(\"MercuryParticipantTypes\"), m = b(\"MercuryParticipantsConstants\"), n = b(\"PhotoResizeModeConst\"), o = b(\"MercuryServerRequests\").get(), p = b(\"ShortProfiles\"), q = b(\"copyProperties\"), r = b(\"getObjectValues\"), s = b(\"tx\"), t = ((\"fbid:\" + g.user)), u = {\n    }, v = {\n    }, w = function(ba) {\n        ba = z(ba);\n        if (u[ba.id]) {\n            q(u[ba.id], ba);\n        }\n         else u[ba.id] = q({\n        }, ba);\n    ;\n    ;\n        if (ba.vanity) {\n            v[ba.vanity] = ba.id;\n        }\n    ;\n    ;\n    };\n    function x(ba) {\n        j.isEmailParticipantID(ba);\n        var ca = k.tokenize(ba), da = ca.value;\n        return {\n            gender: m.UNKNOWN_GENDER,\n            href: null,\n            id: ba,\n            image_src: m.EMAIL_IMAGE,\n            big_image_src: m.EMAIL_IMAGE,\n            JSBNG__name: da,\n            short_name: da,\n            employee: false,\n            call_promo: false\n        };\n    };\n;\n    function y(ba, ca, da) {\n        j.allParticipantIDs(ba);\n        var ea = {\n        }, fa = {\n        };\n        ba.forEach(function(ha) {\n            if (((u[ha] && !da))) {\n                ea[ha] = q({\n                }, u[ha]);\n            }\n             else {\n                var ia = k.tokenize(ha);\n                if (((ia.type == \"fbid\"))) {\n                    var ja = ia.value;\n                    fa[ha] = ja;\n                }\n                 else if (((ia.type == \"email\"))) {\n                    ea[ha] = x(ha);\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n        });\n        var ga = r(fa);\n        if (ga.length) {\n            p.getMulti(ga, function(ha) {\n                {\n                    var fin148keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin148i = (0);\n                    var ia;\n                    for (; (fin148i < fin148keys.length); (fin148i++)) {\n                        ((ia) = (fin148keys[fin148i]));\n                        {\n                            var ja = fa[ia], ka = ha[ja];\n                            ea[ia] = {\n                                gender: ka.gender,\n                                href: ka.uri,\n                                id: ia,\n                                image_src: ka.thumbSrc,\n                                JSBNG__name: ka.JSBNG__name,\n                                short_name: ka.firstName,\n                                employee: ka.employee,\n                                call_promo: ka.showVideoPromo,\n                                type: ka.type,\n                                vanity: ka.vanity,\n                                is_friend: ka.is_friend,\n                                social_snippets: ka.social_snippets\n                            };\n                            w(ea[ia]);\n                        };\n                    };\n                };\n            ;\n                ca(ea);\n            });\n        }\n         else ca(ea);\n    ;\n    ;\n    };\n;\n    function z(ba) {\n        var ca = ((((ba.type === l.USER)) || ((ba.type === l.FRIEND))));\n        if (!ca) {\n            return ba;\n        }\n    ;\n    ;\n        if (((((!ba.JSBNG__name && !ba.href)) && !ba.vanity))) {\n            var da = \"Facebook User\";\n            ba.JSBNG__name = da;\n            ba.short_name = da;\n        }\n    ;\n    ;\n        return ba;\n    };\n;\n    var aa = {\n        user: t,\n        isAuthor: function(ba) {\n            return ((ba === t));\n        },\n        getIDFromVanityOrFBID: function(ba) {\n            if (!ba) {\n                return;\n            }\n        ;\n        ;\n            if (v[ba]) {\n                return v[ba];\n            }\n        ;\n        ;\n            if (ba.match(\"^\\\\d+$\")) {\n                return aa.getIDForUser(ba);\n            }\n        ;\n        ;\n        },\n        getNow: function(ba) {\n            return u[ba];\n        },\n        get: function(ba, ca) {\n            j.isParticipantID(ba);\n            aa.getMulti([ba,], function(da) {\n                ca(da[ba]);\n            });\n        },\n        getMulti: function(ba, ca, da) {\n            return y(ba, ca, false);\n        },\n        getBigImageMulti: function(ba, ca) {\n            j.allParticipantIDs(ba);\n            var da = m.BIG_IMAGE_SIZE;\n            aa.getMulti(ba, function(ea) {\n                var fa = {\n                }, ga = 0, ha = function(la, ma) {\n                    ga++;\n                    fa[la] = ma;\n                    if (((ga === ba.length))) {\n                        ca(fa);\n                    }\n                ;\n                ;\n                }, ia = function(la, ma) {\n                    u[la].big_image_src = ma.uri;\n                    ha(la, ma.uri);\n                };\n                {\n                    var fin149keys = ((window.top.JSBNG_Replay.forInKeys)((ea))), fin149i = (0);\n                    var ja;\n                    for (; (fin149i < fin149keys.length); (fin149i++)) {\n                        ((ja) = (fin149keys[fin149i]));\n                        {\n                            var ka = ea[ja];\n                            if (!ka.big_image_src) {\n                                new h().setFBID(aa.getUserID(ja)).setType(i.PROFILE_PICTURE).setDimensions(da, da).setResizeMode(n.COVER).setCallback(ia.curry(ja)).send();\n                            }\n                             else ha(ka.id, ka.big_image_src);\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            });\n        },\n        getOrderedBigImageMulti: function(ba, ca) {\n            aa.getBigImageMulti(ba, function(da) {\n                var ea = ba.map(function(fa) {\n                    return da[fa];\n                });\n                ca(ea);\n            });\n        },\n        getMultiForceDownload: function(ba, ca) {\n            return y(ba, ca, true);\n        },\n        getUserID: function(ba) {\n            return k.getUserIDFromParticipantID(ba);\n        },\n        getIDForUser: function(ba) {\n            return ((\"fbid:\" + ba));\n        },\n        addParticipants: function(ba) {\n            ba.forEach(w);\n        }\n    };\n    o.subscribe(\"update-participants\", function(ba, ca) {\n        aa.addParticipants(((ca.participants || [])));\n    });\n    e.exports = aa;\n});\n__d(\"RangedCallbackManager\", [\"CallbackManagerController\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"CallbackManagerController\"), h = b(\"copyProperties\"), i = b(\"createObjectFrom\"), j = function(k, l, m) {\n        this._resources = [];\n        this._reachedEndOfArray = false;\n        this._error = false;\n        this._existingIDs = {\n        };\n        this._controller = new g(this._constructCallbackArg.bind(this));\n        this._getValueHandler = k;\n        this._compareValuesHandler = l;\n        this._skipOnStrictHandler = m;\n    };\n    h(j.prototype, {\n        executeOrEnqueue: function(k, l, m, n) {\n            return this._controller.executeOrEnqueue({\n                start: k,\n                limit: l\n            }, m, {\n                strict: !!n\n            });\n        },\n        unsubscribe: function(k) {\n            this._controller.unsubscribe(k);\n        },\n        getUnavailableResources: function(k) {\n            var l = this._controller.getRequest(k), m = [];\n            if (((l && !this._reachedEndOfArray))) {\n                var n = l.request, o = this._filterForStrictResults(l.options), p = ((n.start + n.limit));\n                for (var q = o.length; ((q < p)); q++) {\n                    m.push(q);\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            return m;\n        },\n        addResources: function(k) {\n            k.forEach(function(l) {\n                if (!this._existingIDs[l]) {\n                    this._existingIDs[l] = true;\n                    this._resources.push(l);\n                    this._error = null;\n                }\n            ;\n            ;\n            }.bind(this));\n            this.resortResources();\n            this._controller.runPossibleCallbacks();\n        },\n        addResourcesWithoutSorting: function(k, l) {\n            var m = this._resources.slice(0, l);\n            m = m.concat(k);\n            m = m.concat(this._resources.slice(l));\n            this._resources = m;\n            h(this._existingIDs, i(k, true));\n            this._error = null;\n            this._controller.runPossibleCallbacks();\n        },\n        removeResources: function(k) {\n            k.forEach(function(l) {\n                if (this._existingIDs[l]) {\n                    this._existingIDs[l] = false;\n                    var m = this._resources.indexOf(l);\n                    if (((m != -1))) {\n                        this._resources.splice(m, 1);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        removeAllResources: function() {\n            this._resources = [];\n            this._existingIDs = {\n            };\n        },\n        resortResources: function() {\n            this._resources = this._resources.sort(function(k, l) {\n                return this._compareValuesHandler(this._getValueHandler(k), this._getValueHandler(l));\n            }.bind(this));\n        },\n        setReachedEndOfArray: function() {\n            if (!this._reachedEndOfArray) {\n                this._reachedEndOfArray = true;\n                this._error = null;\n                this._controller.runPossibleCallbacks();\n            }\n        ;\n        ;\n        },\n        hasReachedEndOfArray: function() {\n            return this._reachedEndOfArray;\n        },\n        setError: function(k) {\n            if (((this._error !== k))) {\n                this._error = k;\n                this._controller.runPossibleCallbacks();\n            }\n        ;\n        ;\n        },\n        getError: function(k, l, m) {\n            var n = this._filterForStrictResults({\n                strict: m\n            });\n            return ((((((k + l)) > n.length)) ? this._error : null));\n        },\n        hasResource: function(k) {\n            return this._existingIDs[k];\n        },\n        getResourceAtIndex: function(k) {\n            return this._resources[k];\n        },\n        getAllResources: function() {\n            return this._resources.concat();\n        },\n        getCurrentArraySize: function() {\n            return this._resources.length;\n        },\n        _filterForStrictResults: function(k) {\n            var l = this._resources;\n            if (((((k && k.strict)) && this._skipOnStrictHandler))) {\n                l = l.filter(this._skipOnStrictHandler);\n            }\n        ;\n        ;\n            return l;\n        },\n        _constructCallbackArg: function(k, l) {\n            var m = this._filterForStrictResults(l);\n            if (((((!this._reachedEndOfArray && !this._error)) && ((((k.start + k.limit)) > m.length))))) {\n                return false;\n            }\n             else {\n                var n = m.slice(k.start, ((k.start + k.limit))), o = ((((((k.start + k.limit)) > m.length)) ? this._error : null));\n                return [n,o,];\n            }\n        ;\n        ;\n        },\n        getElementsUntil: function(k) {\n            var l = [];\n            for (var m = 0; ((m < this._resources.length)); m++) {\n                var n = this._getValueHandler(this._resources[m]);\n                if (((this._compareValuesHandler(n, k) > 0))) {\n                    break;\n                }\n            ;\n            ;\n                l.push(this._resources[m]);\n            };\n        ;\n            return l;\n        }\n    });\n    e.exports = j;\n});\n__d(\"MercuryFolders\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.INBOX,g.OTHER,g.ACTION_ARCHIVED,g.SPAM,], j = {\n        getSupportedFolders: function() {\n            return i.concat();\n        },\n        isSupportedFolder: function(k) {\n            return h(i, k);\n        },\n        getFromMeta: function(k) {\n            var l = k.folder;\n            if (k.is_archived) {\n                l = g.ACTION_ARCHIVED;\n            }\n        ;\n        ;\n            return l;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryAttachment\", [\"MercuryAttachmentContentType\",\"MercuryAttachmentType\",\"startsWith\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAttachmentContentType\"), h = b(\"MercuryAttachmentType\"), i = b(\"startsWith\"), j = {\n        getAttachIconClass: function(k) {\n            switch (k) {\n              case g.PHOTO:\n                return \"MercuryPhotoIcon\";\n              case g.VIDEO:\n                return \"MercuryVideoIcon\";\n              case g.MUSIC:\n                return \"MercuryMusicIcon\";\n              case g.VOICE:\n                return \"MercuryVoiceIcon\";\n              case g.TEXT:\n                return \"MercuryTextIcon\";\n              case g.MSWORD:\n                return \"MercuryMSWordIcon\";\n              case g.MSXLS:\n                return \"MercuryMSXLSIcon\";\n              case g.MSPPT:\n                return \"MercuryMSPPTIcon\";\n            };\n        ;\n            return \"MercuryDefaultIcon\";\n        },\n        getAttachIconClassByMime: function(k) {\n            if (i(k, \"image\")) {\n                return \"MercuryPhotoIcon\";\n            }\n             else if (i(k, \"video\")) {\n                return \"MercuryVideoIcon\";\n            }\n             else if (i(k, \"audio\")) {\n                return \"MercuryMusicIcon\";\n            }\n             else if (i(k, \"text/plain\")) {\n                return \"MercuryTextIcon\";\n            }\n             else return \"MercuryDefaultIcon\"\n            \n            \n            \n        ;\n        },\n        getAttachTypeByMime: function(k) {\n            if (i(k, \"image\")) {\n                return g.PHOTO;\n            }\n             else if (i(k, \"video\")) {\n                return g.VIDEO;\n            }\n             else if (i(k, \"audio\")) {\n                return g.MUSIC;\n            }\n             else if (i(k, \"text/plain\")) {\n                return g.TEXT;\n            }\n             else return g.UNKNOWN\n            \n            \n            \n        ;\n        },\n        convertRaw: function(k) {\n            var l = [];\n            for (var m = 0; ((m < k.length)); m++) {\n                var n = k[m];\n                if (((n.attach_type === h.PHOTO))) {\n                    l.push(n);\n                }\n                 else if (n.filename) {\n                    var o = j.getAttachTypeByMime(n.filetype), p = {\n                    };\n                    p.attach_type = h.FILE;\n                    p.JSBNG__name = n.filename;\n                    p.icon_type = o;\n                    p.url = \"\";\n                    if (((o == g.PHOTO))) {\n                        p.preview_loading = true;\n                    }\n                ;\n                ;\n                    l.push(p);\n                }\n                \n            ;\n            ;\n            };\n        ;\n            return l;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryThreads\", [\"Arbiter\",\"TimestampConverter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryAssert\",\"MercuryAttachment\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercurySingletonMixin\",\"MercuryThreadMode\",\"MessagingTag\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"MercuryFolders\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryAssert\"), n = b(\"MercuryAttachment\"), o = b(\"MercuryGlobalActionType\"), p = b(\"MercuryIDs\"), q = b(\"MercuryLogMessageType\"), r = b(\"MercurySingletonMixin\"), s = b(\"MercuryThreadMode\"), t = b(\"MessagingTag\"), u = b(\"MercuryParticipants\"), v = b(\"MercuryServerRequests\"), w = b(\"MercuryThreadInformer\"), x = b(\"copyProperties\"), y = b(\"createObjectFrom\"), z = b(\"removeFromArray\"), aa = j.create(\"mercury_threads\");\n    function ba(na, oa, pa) {\n        var qa = y(oa.participants, true), ra = u.getIDForUser(na._fbid);\n        pa.forEach(function(sa) {\n            if (((qa[sa] !== true))) {\n                oa.participants.push(sa);\n                if (((sa === ra))) {\n                    oa.is_subscribed = true;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        });\n    };\n;\n    function ca(na, oa, pa) {\n        z(oa.participants, pa);\n        if (((pa === u.getIDForUser(na._fbid)))) {\n            oa.is_subscribed = false;\n        }\n    ;\n    ;\n    };\n;\n    function da(na, oa) {\n        if (((na.participants[0] != oa))) {\n            z(na.participants, oa);\n            na.participants.unshift(oa);\n        }\n    ;\n    ;\n    };\n;\n    function ea(na, oa) {\n        var pa = oa.body, qa = oa.subject, ra = \"\";\n        if (qa) {\n            qa = qa.toLowerCase();\n            if (((pa.slice(0, qa.length).toLowerCase() == qa))) {\n                ra = pa;\n            }\n             else if (pa) {\n                ra = ((((qa + \" \\u00b7 \")) + pa));\n            }\n             else ra = qa;\n            \n        ;\n        ;\n        }\n         else ra = pa;\n    ;\n    ;\n        na.snippet = ra;\n        na.snippet_has_attachment = oa.has_attachment;\n        if (((oa.raw_attachments && ((oa.raw_attachments.length > 0))))) {\n            var sa = n.convertRaw(oa.raw_attachments);\n            na.snippet_attachments = sa;\n        }\n         else na.snippet_attachments = oa.attachments;\n    ;\n    ;\n        na.is_forwarded_snippet = !!oa.forward_count;\n        na.snippet_sender = oa.author;\n    };\n;\n    function fa(na, oa, pa) {\n        if (!oa) {\n            return false;\n        }\n    ;\n    ;\n        if (!oa.timestamp) {\n            return true;\n        }\n    ;\n    ;\n        var qa = !oa.unread_count;\n        if (((pa == qa))) {\n            return false;\n        }\n    ;\n    ;\n        oa.unread_count = ((pa ? 0 : 1));\n        na._threadInformer.updatedThread(oa.thread_id);\n        return true;\n    };\n;\n    function ga(na, oa) {\n        var pa = na._threads.getAllResources();\n        {\n            var fin150keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin150i = (0);\n            var qa;\n            for (; (fin150i < fin150keys.length); (fin150i++)) {\n                ((qa) = (fin150keys[fin150i]));\n                {\n                    var ra = pa[qa];\n                    if (((ra.folder == oa))) {\n                        ra.unread_count = 0;\n                        na._threads.setResource(qa, ra);\n                        na._threadInformer.updatedThread(qa);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function ha(na, oa, pa) {\n        if (((!oa || ((oa.chat_clear_time === pa))))) {\n            return false;\n        }\n    ;\n    ;\n        oa.chat_clear_time = pa;\n        na._threadInformer.reorderedMessages(oa.thread_id);\n        return true;\n    };\n;\n    function ia(na, oa, pa, qa) {\n        var ra = pa.action_type;\n        if (((((ra == l.USER_GENERATED_MESSAGE)) || ((ra == l.LOG_MESSAGE))))) {\n            ((pa.is_unread && oa.unread_count++));\n            oa.message_count++;\n            oa.is_archived = false;\n        }\n    ;\n    ;\n        switch (ra) {\n          case l.USER_GENERATED_MESSAGE:\n            da(oa, pa.author);\n            break;\n          case l.SEND_MESSAGE:\n            var sa = pa.log_message_type;\n            if (((sa == q.THREAD_IMAGE))) {\n                oa.image_src = ((pa.log_message_data.image ? pa.log_message_data.image.preview_url : null));\n            }\n        ;\n        ;\n            oa.snippet_attachments = pa.attachments;\n            break;\n          case l.LOG_MESSAGE:\n            var sa = pa.log_message_type;\n            if (((sa == q.SUBSCRIBE))) {\n                ba(na, oa, pa.log_message_data.added_participants);\n            }\n             else if (((sa == q.JOINABLE_JOINED))) {\n                ba(na, oa, [pa.log_message_data.joined_participant,]);\n            }\n             else if (((sa == q.UNSUBSCRIBE))) {\n                ca(na, oa, pa.author);\n            }\n             else if (((sa == q.THREAD_IMAGE))) {\n                if (!qa) {\n                    oa.image_src = ((pa.log_message_data.image ? pa.log_message_data.image.preview_url : null));\n                }\n            ;\n            ;\n            }\n             else if (((sa == q.THREAD_NAME))) {\n                oa.JSBNG__name = pa.log_message_data.JSBNG__name;\n            }\n            \n            \n            \n            \n        ;\n        ;\n            break;\n          case l.CHANGE_READ_STATUS:\n            if (pa.timestamp) {\n                na._threadInformer.changedThreadReadState(oa.thread_id, pa.mark_as_read, pa.timestamp);\n            }\n        ;\n        ;\n            fa(na, oa, pa.mark_as_read);\n            break;\n          case l.CLEAR_CHAT:\n            ha(na, oa, pa.clear_time);\n            break;\n          case l.CHANGE_ARCHIVED_STATUS:\n            oa.is_archived = pa.archived;\n            break;\n          case l.CHANGE_FOLDER:\n            oa.folder = pa.new_folder;\n            break;\n          case l.DELETE_MESSAGES:\n            if (qa) {\n                oa.snippet = \"...\";\n                oa.snippet_has_attachment = false;\n                oa.snippet_attachments = null;\n                oa.snippet_sender = null;\n                oa.is_forwarded_snippet = false;\n                na._threadInformer.updatedThread(pa.thread_id);\n            }\n             else if (pa.message_ids) {\n                oa.message_count = ((oa.message_count - pa.message_ids.length));\n            }\n            \n        ;\n        ;\n            break;\n          case l.CHANGE_MUTE_SETTINGS:\n            if (((pa.mute_settings !== undefined))) {\n                var ta = ((na._fbid + \"@facebook.com\"));\n                if (oa.mute_settings) {\n                    if (pa.mute_settings) {\n                        oa.mute_settings[ta] = pa.mute_settings;\n                    }\n                     else delete oa.mute_settings[ta];\n                ;\n                ;\n                    na._threadInformer.updatedThread(oa.thread_id);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            break;\n        };\n    ;\n        if (pa.action_id) {\n            oa.last_action_id = h.maxValidActionID(pa.action_id, oa.last_action_id);\n        }\n    ;\n    ;\n    };\n;\n    function ja(na, oa) {\n        var pa = na._serverRequests.tokenizeThreadID(oa.thread_id);\n        if (((pa.type == \"group\"))) {\n            aa.error(\"invalid_new_thread_message\", oa);\n            return undefined;\n        }\n    ;\n    ;\n        var qa = la(na, oa.specific_to_list), ra = {\n            thread_id: oa.thread_id,\n            last_action_id: oa.action_id,\n            participants: oa.specific_to_list,\n            JSBNG__name: null,\n            snippet: oa.body,\n            snippet_has_attachment: false,\n            snippet_attachments: [],\n            snippet_sender: oa.author,\n            unread_count: 0,\n            message_count: 0,\n            image_src: null,\n            timestamp_absolute: oa.timestamp_absolute,\n            timestamp_relative: oa.timestamp_relative,\n            timestamp: oa.timestamp,\n            canonical_fbid: ((((pa.type === \"user\")) ? pa.value : null)),\n            is_canonical_user: ((pa.type === \"user\")),\n            is_canonical: qa,\n            is_subscribed: true,\n            root_message_threading_id: oa.message_id,\n            folder: t.INBOX,\n            is_archived: false,\n            mode: s.TITAN_ORIGINATED\n        };\n        return ra;\n    };\n;\n    function ka(na) {\n        this._fbid = na;\n        this._serverRequests = v.getForFBID(this._fbid);\n        this._threadInformer = w.getForFBID(this._fbid);\n        this._threads = new k();\n        ma(this);\n    };\n;\n    x(ka.prototype, {\n        getThreadMetaNow: function(na) {\n            m.isThreadID(na);\n            return this._threads.getResource(na);\n        },\n        getThreadMeta: function(na, oa, pa) {\n            m.isThreadID(na);\n            var qa = this._threads.executeOrEnqueue(na, oa), ra = this._threads.getUnavailableResources(qa);\n            if (ra.length) {\n                var sa = this._serverRequests.tokenizeThreadID(na);\n                if (((sa.type == \"user\"))) {\n                    this.getCanonicalThreadToUser(sa.value);\n                }\n                 else this._serverRequests.fetchThreadData(ra, pa);\n            ;\n            ;\n            }\n        ;\n        ;\n            return qa;\n        },\n        unsubscribe: function(na) {\n            this._threads.unsubscribe(na);\n        },\n        changeThreadReadStatus: function(na, oa) {\n            m.isThreadID(na);\n            var pa = this._threads.getResource(na);\n            if (fa(this, pa, oa)) {\n                this._serverRequests.changeThreadReadStatus(na, oa, i.getFromMeta(pa));\n            }\n        ;\n        ;\n        },\n        changeThreadArchivedStatus: function(na, oa) {\n            m.isThreadID(na);\n            var pa = this._threads.getResource(na);\n            if (((pa.is_archived != oa))) {\n                pa.is_archived = oa;\n                this._threadInformer.updatedThread(pa.thread_id);\n                this._serverRequests.changeThreadArchivedStatus(na, oa);\n            }\n        ;\n        ;\n        },\n        markThreadSpam: function(na) {\n            this._serverRequests.markThreadSpam(na);\n        },\n        unmarkThreadSpam: function(na) {\n            this._serverRequests.unmarkThreadSpam(na);\n        },\n        updateThreadMuteSetting: function(na, oa) {\n            this._serverRequests.changeMutingOnThread(na, oa);\n        },\n        changeFolder: function(na, oa) {\n            m.isThreadID(na);\n            var pa = this._threads.getResource(na);\n            if (((pa && ((pa.folder != oa))))) {\n                pa.folder = oa;\n                this._threadInformer.updatedThread(pa.thread_id);\n                this._serverRequests.changeThreadFolder(na, oa);\n            }\n        ;\n        ;\n        },\n        deleteThread: function(na) {\n            m.isThreadID(na);\n            this._serverRequests.deleteThread(na);\n        },\n        updateThreads: function(na) {\n            if (((!na || !na.length))) {\n                return;\n            }\n        ;\n        ;\n            var oa = {\n            };\n            na.forEach(function(pa) {\n                oa[pa.thread_id] = pa;\n            });\n            this._threads.addResourcesAndExecute(oa);\n        },\n        updateMetadataByActions: function(na, oa) {\n            if (((!na || !na.length))) {\n                return;\n            }\n        ;\n        ;\n            var pa = {\n            }, qa = {\n            }, ra = {\n            };\n            for (var sa = 0; ((sa < na.length)); sa++) {\n                var ta = na[sa];\n                if (ta.is_forward) {\n                    continue;\n                }\n            ;\n            ;\n                var ua = ta.action_type, va = ta.thread_id;\n                m.isThreadID(va);\n                var wa = this.getThreadMetaNow(va);\n                if (((((ua == l.LOG_MESSAGE)) && ((ta.log_message_type == q.SERVER_ERROR))))) {\n                    continue;\n                }\n            ;\n            ;\n                if (((((!wa && !ta.action_id)) && ((ua == l.USER_GENERATED_MESSAGE))))) {\n                    wa = ja(this, ta);\n                    this._threads.setResource(va, wa);\n                }\n            ;\n            ;\n                if (wa) {\n                    if (((ua == l.DELETE_THREAD))) {\n                        wa.message_count = 0;\n                        this._threadInformer.deletedThread(va);\n                        continue;\n                    }\n                ;\n                ;\n                    var xa = !!ta.action_id;\n                    if (((((ua == l.LOG_MESSAGE)) || ((ua == l.USER_GENERATED_MESSAGE))))) {\n                        xa = !oa;\n                    }\n                ;\n                ;\n                    if (((((wa.server_timestamp && ((ta.timestamp <= wa.server_timestamp)))) && xa))) {\n                        continue;\n                    }\n                ;\n                ;\n                    if (!ra[va]) {\n                        ra[va] = x({\n                        }, wa);\n                    }\n                ;\n                ;\n                    ia(this, ra[va], ta, oa);\n                    if (((ua == l.USER_GENERATED_MESSAGE))) {\n                        pa[va] = ta;\n                    }\n                ;\n                ;\n                    if (((((((ua == l.USER_GENERATED_MESSAGE)) || ((ua == l.LOG_MESSAGE)))) || ((ua == l.SEND_MESSAGE))))) {\n                        if (((((ta && ta.timestamp)) && ((!qa[va] || ((ta.timestamp > qa[va].timestamp))))))) {\n                            qa[va] = ta;\n                        }\n                    ;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            {\n                var fin151keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin151i = (0);\n                var ya;\n                for (; (fin151i < fin151keys.length); (fin151i++)) {\n                    ((ya) = (fin151keys[fin151i]));\n                    {\n                        var za = ra[ya], ab = pa[ya];\n                        if (ab) {\n                            ea(za, ab);\n                        }\n                    ;\n                    ;\n                        var bb = qa[ya], cb = za.timestamp;\n                        if (bb) {\n                            if (((bb.timestamp > cb))) {\n                                za = x(za, {\n                                    timestamp_absolute: bb.timestamp_absolute,\n                                    timestamp_relative: bb.timestamp_relative,\n                                    timestamp: bb.timestamp\n                                });\n                            }\n                        ;\n                        ;\n                            var db = za.server_timestamp;\n                            if (((!oa && ((bb.timestamp > db))))) {\n                                za.server_timestamp = bb.timestamp;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                        this._threads.setResource(ya, za);\n                    };\n                };\n            };\n        ;\n        },\n        getCanonicalThreadToUser: function(na, oa, pa) {\n            return this.getCanonicalThreadToParticipant(((\"fbid:\" + na)), oa, pa);\n        },\n        getCanonicalThreadToParticipant: function(na, oa, pa) {\n            var qa = this.getThreadIDForParticipant(na), ra = this._threads.getResource(qa);\n            if (((typeof ra == \"undefined\"))) {\n                ra = this.createNewLocalThread(qa, [u.getIDForUser(this._fbid),na,], oa);\n                this._serverRequests.fetchThreadData([qa,], pa);\n            }\n        ;\n        ;\n            return ra;\n        },\n        getThreadIdForUser: function(na) {\n            return ((\"user:\" + na));\n        },\n        getThreadIDForParticipant: function(na) {\n            var oa = p.tokenize(na);\n            return this.getThreadIdForUser(oa.value);\n        },\n        createNewLocalThread: function(na, oa, pa) {\n            var qa = this._threads.getResource(na);\n            if (!qa) {\n                var ra = this._serverRequests.tokenizeThreadID(na);\n                qa = {\n                    thread_id: na,\n                    last_action_id: null,\n                    participants: oa,\n                    JSBNG__name: null,\n                    snippet: \"\",\n                    snippet_has_attachment: false,\n                    snippet_sender: null,\n                    unread_count: ((pa ? pa : 0)),\n                    message_count: 0,\n                    image_src: null,\n                    timestamp_absolute: null,\n                    timestamp_relative: null,\n                    timestamp: null,\n                    canonical_fbid: ((((ra.type === \"user\")) ? ra.value : null)),\n                    is_canonical_user: ((ra.type == \"user\")),\n                    is_canonical: la(this, oa),\n                    is_subscribed: true,\n                    root_message_threading_id: null,\n                    folder: t.INBOX,\n                    is_archived: false,\n                    mode: s.TITAN_ORIGINATED\n                };\n                this._threads.setResource(na, qa);\n            }\n        ;\n        ;\n            return qa;\n        },\n        addParticipantsToThreadLocally: function(na, oa) {\n            var pa = this._threads.getResource(na);\n            if (pa) {\n                ba(this, pa, oa);\n                this._threadInformer.updatedThread(pa.thread_id);\n            }\n        ;\n        ;\n        },\n        getCanonicalUserInThread: function(na) {\n            var oa = this._serverRequests.tokenizeThreadID(na);\n            return ((((oa.type == \"user\")) ? oa.value : null));\n        },\n        getCanonicalGroupInThread: function(na) {\n            var oa = this._serverRequests.tokenizeThreadID(na);\n            return ((((oa.type == \"group\")) ? oa.value : null));\n        },\n        isEmptyLocalThread: function(na) {\n            var oa = this._threads.getResource(na);\n            if (!oa) {\n                return false;\n            }\n        ;\n        ;\n            var pa = this._serverRequests.tokenizeThreadID(na);\n            return ((((pa.type == \"root\")) && !oa.timestamp));\n        },\n        isNewEmptyLocalThread: function(na) {\n            if (!this.isEmptyLocalThread(na)) {\n                return false;\n            }\n        ;\n        ;\n            var oa = this._threads.getResource(na);\n            return ((oa.participants && ((oa.participants.length === 0))));\n        },\n        canReply: function(na) {\n            var oa = this._threads.getResource(na);\n            return ((((((oa && oa.is_subscribed)) && ((oa.mode != s.OBJECT_ORIGINATED)))) && ((oa.recipients_loadable || ((oa.recipients_loadable === undefined))))));\n        }\n    });\n    x(ka, r);\n    function la(na, oa) {\n        var pa = oa.filter(function(qa) {\n            return ((qa != u.getIDForUser(na._fbid)));\n        });\n        return ((pa.length <= 1));\n    };\n;\n    function ma(na) {\n        na._serverRequests.subscribe(\"update-threads\", function(oa, pa) {\n            var qa = ((pa.actions || [])).filter(function(ua) {\n                return ua.thread_id;\n            });\n            na.updateThreads(pa.threads);\n            na.updateMetadataByActions(qa, pa.from_client);\n            ((pa.threads || [])).forEach(function(ua) {\n                na._threadInformer.updatedThread(ua.thread_id);\n            });\n            var ra = ((pa.global_actions || []));\n            for (var sa = 0; ((sa < ra.length)); sa++) {\n                var ta = ra[sa];\n                if (((ta.action_type == o.MARK_ALL_READ))) {\n                    ga(na, ta.folder);\n                }\n            ;\n            ;\n            };\n        ;\n        });\n    };\n;\n    g.subscribe(j.DUMP_EVENT, function(na, oa) {\n        oa.messaging = ((oa.messaging || {\n        }));\n        oa.messaging.threads = {\n        };\n        var pa = ka._getInstances();\n        {\n            var fin152keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin152i = (0);\n            var qa;\n            for (; (fin152i < fin152keys.length); (fin152i++)) {\n                ((qa) = (fin152keys[fin152i]));\n                {\n                    oa.messaging.threads[qa] = pa[qa]._threads.dumpResources();\n                ;\n                };\n            };\n        };\n    ;\n    });\n    e.exports = ka;\n});\n__d(\"formatDate\", [\"DateFormatConfig\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"DateFormatConfig\"), h = b(\"tx\"), i = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",], j = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",], k = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",], l = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",];\n    function m(o, p) {\n        p = ((p || 2));\n        o = ((\"\" + o));\n        while (((o.length < p))) {\n            o = ((\"0\" + o));\n        ;\n        };\n    ;\n        return o;\n    };\n;\n    function n(o, p, q, r) {\n        if (!p) {\n            return \"\";\n        }\n    ;\n    ;\n        var s = [], t = null, u = null, v = ((q ? \"getUTC\" : \"get\")), w = o[((v + \"JSBNG__Date\"))](), x = o[((v + \"Day\"))](), y = o[((v + \"Month\"))](), z = o[((v + \"FullYear\"))](), aa = o[((v + \"Hours\"))](), ba = o[((v + \"Minutes\"))](), ca = o[((v + \"Seconds\"))](), da = o[((v + \"Milliseconds\"))]();\n        for (var ea = 0; ((ea < p.length)); ea++) {\n            u = p.charAt(ea);\n            if (((u == \"\\\\\"))) {\n                ea++;\n                s.push(p.charAt(ea));\n                continue;\n            }\n        ;\n        ;\n            switch (u) {\n              case \"d\":\n                t = m(w);\n                break;\n              case \"D\":\n                t = i[x];\n                break;\n              case \"j\":\n                t = w;\n                break;\n              case \"l\":\n                t = j[x];\n                break;\n              case \"F\":\n            \n              case \"f\":\n                t = l[y];\n                break;\n              case \"m\":\n                t = m(((y + 1)));\n                break;\n              case \"M\":\n                t = k[y];\n                break;\n              case \"n\":\n                t = ((y + 1));\n                break;\n              case \"Y\":\n                t = z;\n                break;\n              case \"y\":\n                t = ((\"\" + z)).slice(2);\n                break;\n              case \"a\":\n                t = ((((aa < 12)) ? \"am\" : \"pm\"));\n                break;\n              case \"A\":\n                t = ((((aa < 12)) ? \"AM\" : \"PM\"));\n                break;\n              case \"g\":\n                t = ((((((aa == 0)) || ((aa == 12)))) ? 12 : ((aa % 12))));\n                break;\n              case \"G\":\n                t = aa;\n                break;\n              case \"h\":\n                t = ((((((aa == 0)) || ((aa == 12)))) ? 12 : m(((aa % 12)))));\n                break;\n              case \"H\":\n                t = m(aa);\n                break;\n              case \"i\":\n                t = m(ba);\n                break;\n              case \"s\":\n                t = m(ca);\n                break;\n              case \"S\":\n                if (r) {\n                    t = g.ordinalSuffixes[w];\n                }\n                 else t = m(da, 3);\n            ;\n            ;\n                break;\n              default:\n                t = u;\n            };\n        ;\n            s.push(t);\n        };\n    ;\n        return s.join(\"\");\n    };\n;\n    e.exports = n;\n});\n__d(\"MercuryMessages\", [\"Arbiter\",\"AsyncRequest\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAssert\",\"MercuryAttachmentType\",\"MercuryConfig\",\"MercuryGenericConstants\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryMessageSourceTags\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MercurySourceType\",\"MercuryTimePassed\",\"MercuryMessageIDs\",\"MercuryParticipants\",\"PresenceUtil\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"debounce\",\"formatDate\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryActionStatus\"), n = b(\"MercuryAssert\"), o = b(\"MercuryAttachmentType\"), p = b(\"MercuryConfig\"), q = b(\"MercuryGenericConstants\"), r = b(\"MercuryIDs\"), s = b(\"MercuryLogMessageType\"), t = b(\"MercuryMessageSourceTags\"), u = b(\"MercuryPayloadSource\"), v = b(\"MercurySingletonMixin\"), w = b(\"MercurySourceType\"), x = b(\"MercuryTimePassed\"), y = b(\"MercuryMessageIDs\"), z = b(\"MercuryParticipants\"), aa = b(\"PresenceUtil\"), ba = b(\"RangedCallbackManager\"), ca = b(\"MercuryServerRequests\"), da = b(\"MercuryThreadInformer\"), ea = b(\"MercuryThreads\"), fa = b(\"copyProperties\"), ga = b(\"debounce\"), ha = b(\"formatDate\"), ia = b(\"randomInt\"), ja = b(\"tx\");\n    function ka(bb, cb) {\n        var db = cb;\n        if (bb._localIdsMap[cb]) {\n            db = bb._localIdsMap[cb];\n        }\n    ;\n    ;\n        return bb._messages[db];\n    };\n;\n    var la = new k();\n    function ma(bb, cb) {\n        if (((cb.JSBNG__status === undefined))) {\n            cb.JSBNG__status = m.UNSENT;\n        }\n    ;\n    ;\n        cb.timestamp_absolute = \"Today\";\n        cb.message_id = ((cb.message_id || bb.generateNewClientMessageID(cb.timestamp)));\n        var db = z.getIDForUser(bb._fbid);\n        cb.specific_to_list = ((cb.specific_to_list || []));\n        if (((cb.specific_to_list.length && ((cb.specific_to_list.indexOf(db) === -1))))) {\n            cb.specific_to_list.push(db);\n        }\n    ;\n    ;\n        if (!cb.thread_id) {\n            if (((cb.specific_to_list.length == 1))) {\n                cb.thread_id = ((\"user:\" + bb._fbid));\n            }\n             else if (((cb.specific_to_list.length == 2))) {\n                var eb = ((((cb.specific_to_list[0] == db)) ? cb.specific_to_list[1] : cb.specific_to_list[0]));\n                if (((r.tokenize(eb).type == \"email\"))) {\n                    cb.thread_id = q.PENDING_THREAD_ID;\n                }\n                 else cb.thread_id = bb._threads.getThreadIDForParticipant(eb);\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            cb.thread_id = ((cb.thread_id || ((\"root:\" + cb.message_id))));\n        }\n    ;\n    ;\n        if (!cb.specific_to_list.length) {\n            var fb = bb._serverRequests.tokenizeThreadID(cb.thread_id);\n            if (((fb.type == \"user\"))) {\n                cb.specific_to_list = [((\"fbid:\" + fb.value)),db,];\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function na(bb, cb, db, eb) {\n        var fb = ((xa(db) ? [t.CHAT,] : [])), gb = JSBNG__Date.now(), hb = ha(new JSBNG__Date(gb), ((p[\"24h_times\"] ? \"H:i\" : \"g:ia\"))), ib = {\n            action_type: cb,\n            thread_id: eb,\n            author: z.getIDForUser(bb._fbid),\n            author_email: null,\n            coordinates: null,\n            timestamp: gb,\n            timestamp_absolute: (new JSBNG__Date(gb)).toLocaleDateString(),\n            timestamp_relative: hb,\n            timestamp_time_passed: x.TODAY,\n            is_unread: false,\n            is_cleared: false,\n            is_forward: false,\n            is_filtered_content: false,\n            spoof_warning: false,\n            source: db,\n            source_tags: fb\n        };\n        return ib;\n    };\n;\n    function oa(bb) {\n        switch (bb) {\n          case u.UNKNOWN:\n        \n          case u.SERVER_INITIAL_DATA:\n        \n          case u.SERVER_FETCH_THREAD_INFO:\n        \n          case u.SERVER_THREAD_SYNC:\n            return true;\n        };\n    ;\n        return false;\n    };\n;\n    function pa(bb) {\n        return ((bb && ((bb.substr(0, 6) === \"server\"))));\n    };\n;\n    function qa(bb, cb) {\n        if (!bb._threadsToMessages[cb]) {\n            bb._threadsToMessages[cb] = new ba(function(db) {\n                return ka(bb, db).timestamp;\n            }, function(db, eb) {\n                return ((eb - db));\n            });\n        }\n    ;\n    ;\n        return bb._threadsToMessages[cb];\n    };\n;\n    g.subscribe(j.DUMP_EVENT, function(bb, cb) {\n        var db = {\n        }, eb = {\n        }, fb = sa._getInstances();\n        {\n            var fin153keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin153i = (0);\n            var gb;\n            for (; (fin153i < fin153keys.length); (fin153i++)) {\n                ((gb) = (fin153keys[fin153i]));\n                {\n                    db[gb] = {\n                    };\n                    {\n                        var fin154keys = ((window.top.JSBNG_Replay.forInKeys)((fb[gb]._messages))), fin154i = (0);\n                        var hb;\n                        for (; (fin154i < fin154keys.length); (fin154i++)) {\n                            ((hb) = (fin154keys[fin154i]));\n                            {\n                                var ib = fb[gb]._messages[hb];\n                                if (((Object.keys(ib).length === 0))) {\n                                    continue;\n                                }\n                            ;\n                            ;\n                                var jb = ib.thread_id;\n                                db[gb][jb] = ((db[gb][jb] || {\n                                }));\n                                db[gb][jb][ib.message_id] = {\n                                    action_type: ib.action_type,\n                                    author: ib.author,\n                                    is_unread: ib.is_unread,\n                                    timestamp: ib.timestamp\n                                };\n                            };\n                        };\n                    };\n                ;\n                    eb[gb] = fa({\n                    }, fb[gb]._localIdsMap);\n                };\n            };\n        };\n    ;\n        cb.messaging = ((cb.messaging || {\n        }));\n        cb.messaging.local_message_ids = eb;\n        cb.messaging.messages = db;\n    });\n    function ra(bb, cb, db) {\n        cb.forEach(function(eb) {\n            var fb = qa(bb, eb);\n            fb.setReachedEndOfArray();\n            bb._threadInformer.reorderedMessages(eb, db);\n        });\n    };\n;\n    function sa(bb) {\n        this._fbid = bb;\n        this._serverRequests = ca.getForFBID(this._fbid);\n        this._threadInformer = da.getForFBID(this._fbid);\n        this._threads = ea.getForFBID(this._fbid);\n        this._failedHistoryFetchThreads = {\n        };\n        this._threadsToMessages = {\n        };\n        this._titanMessagesCount = {\n        };\n        this._localTitanMessagesCount = {\n        };\n        this._messages = {\n        };\n        this._attachmentData = {\n        };\n        this._messagesNeedingAttachmentData = {\n        };\n        this._localIdsMap = {\n        };\n        this._serverRequests.subscribe(\"update-messages\", function(cb, db) {\n            var eb = ((db.actions || [])).filter(function(gb) {\n                var hb = gb.action_type;\n                return ((((gb.is_forward || gb.thread_id)) && ((((((((((((hb == l.LOG_MESSAGE)) || ((hb == l.USER_GENERATED_MESSAGE)))) || ((hb == l.SEND_MESSAGE)))) || ((hb == l.CLEAR_CHAT)))) || ((hb == l.DELETE_THREAD)))) || ((hb == l.DELETE_MESSAGES))))));\n            }), fb = oa(db.payload_source);\n            if (pa(db.payload_source)) {\n                eb.forEach(function(gb) {\n                    if (!gb.is_forward) {\n                        var hb = this._threads.getThreadMetaNow(gb.thread_id);\n                        if (hb) {\n                            gb.is_cleared = ((gb.timestamp < hb.chat_clear_time));\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n        ;\n        ;\n            this.handleUpdates(eb, fb, db.payload_source, db.from_client);\n            if (db.end_of_history) {\n                ra(this, db.end_of_history, db.payload_source);\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n;\n    fa(sa.prototype, {\n        getMessagesFromIDs: function(bb) {\n            return ((bb || [])).map(ka.curry(this)).filter(function(cb) {\n                return cb;\n            });\n        },\n        hasLoadedNMessages: function(bb, cb) {\n            var db = qa(this, bb);\n            return ((db.hasReachedEndOfArray() || ((db.getCurrentArraySize() >= cb))));\n        },\n        hasLoadedExactlyNMessages: function(bb, cb) {\n            var db = qa(this, bb);\n            return ((db.getCurrentArraySize() == cb));\n        },\n        getThreadMessagesRange: function(bb, cb, db, eb, fb, gb) {\n            var hb = qa(this, bb), ib = function(ob) {\n                eb(ta(this, ob));\n            }.bind(this), jb = hb.executeOrEnqueue(cb, db, ib), kb = hb.getUnavailableResources(jb), lb = this._failedHistoryFetchThreads[bb];\n            if (((kb.length && !lb))) {\n                var mb = ((((this._titanMessagesCount[bb] || 0)) - ((this._localTitanMessagesCount[bb] || 0)))), nb = ((kb.length + ((this._localTitanMessagesCount[bb] || 0))));\n                this._serverRequests.fetchThreadMessages(bb, mb, nb, fb, gb);\n            }\n             else this._failedHistoryFetchThreads[bb] = false;\n        ;\n        ;\n            return jb;\n        },\n        getThreadMessagesSinceTimestamp: function(bb, cb) {\n            var db = qa(this, bb), eb = db.getElementsUntil(cb);\n            return ta(this, eb);\n        },\n        hasLoadedAllMessages: function(bb) {\n            return qa(this, bb).hasReachedEndOfArray();\n        },\n        getCurrentlyLoadedMessages: function(bb) {\n            var cb = qa(this, bb).getAllResources();\n            return ta(this, cb);\n        },\n        unsubscribe: function(bb, cb) {\n            n.isThreadID(cb);\n            var db = qa(this, cb);\n            db.unsubscribe(bb);\n        },\n        addAttachmentData: function(bb, cb, db) {\n            var eb = ka(this, bb);\n            if (eb) {\n                var fb = eb.attachments.indexOf(cb);\n                if (((fb != -1))) {\n                    eb.attachments[fb] = db;\n                    this._threadInformer.updatedMessage(eb.thread_id, eb.message_id, \"attach\");\n                }\n            ;\n            ;\n            }\n             else {\n                if (!this._attachmentData[bb]) {\n                    this._attachmentData[bb] = [];\n                }\n            ;\n            ;\n                this._attachmentData[bb].push({\n                    attach_key: cb,\n                    data: db\n                });\n            }\n        ;\n        ;\n        },\n        handleUpdates: function(bb, cb, db, eb) {\n            var fb, gb = {\n            }, hb = {\n            };\n            for (var ib = 0; ((ib < bb.length)); ib++) {\n                var jb = bb[ib];\n                if (((jb.is_forward || ((db == u.SERVER_SEARCH))))) {\n                    if (!this._messages[jb.message_id]) {\n                        this._messages[jb.message_id] = jb;\n                        ya(this, jb);\n                    }\n                ;\n                ;\n                    continue;\n                }\n            ;\n            ;\n                var kb = jb.action_type;\n                if (((kb == l.SEND_MESSAGE))) {\n                    var lb = jb.client_message_id;\n                    if (((((lb && this._localIdsMap[lb])) && jb.JSBNG__status))) {\n                        if (((jb.JSBNG__status == m.UNCONFIRMED))) {\n                            if (!hb[jb.thread_id]) {\n                                hb[jb.thread_id] = [];\n                            }\n                        ;\n                        ;\n                            hb[jb.thread_id].push(jb.client_message_id);\n                        }\n                         else if (!gb[jb.thread_id]) {\n                            gb[jb.thread_id] = [];\n                        }\n                        \n                    ;\n                    ;\n                        var mb = ka(this, jb.client_message_id), nb = mb.JSBNG__status;\n                        mb.JSBNG__status = jb.JSBNG__status;\n                        if (((((jb.JSBNG__status === m.SUCCESS)) || jb.error_data))) {\n                            mb.error_data = jb.error_data;\n                        }\n                    ;\n                    ;\n                        if (((jb.JSBNG__status == m.SUCCESS))) {\n                            this.updateLocalMessage(jb, db);\n                            if (((jb.client_thread_id == q.PENDING_THREAD_ID))) {\n                                mb.thread_id = jb.thread_id;\n                                gb[jb.thread_id].push(mb.message_id);\n                                la.setResource(mb.message_id, mb.thread_id);\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                        if (((((((((((typeof nb != \"undefined\")) || ((jb.JSBNG__status == m.FAILED_UNKNOWN_REASON)))) || ((jb.JSBNG__status == m.UNABLE_TO_CONFIRM)))) || ((jb.JSBNG__status == m.SUCCESS)))) || ((jb.JSBNG__status == m.ERROR))))) {\n                            this._threadInformer.updatedMessage(jb.thread_id, ka(this, jb.client_message_id).message_id, db);\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    continue;\n                }\n                 else if (((kb == l.DELETE_THREAD))) {\n                    qa(this, jb.thread_id).removeAllResources();\n                    continue;\n                }\n                 else if (((kb == l.DELETE_MESSAGES))) {\n                    var ob = jb.message_ids.map(function(wb) {\n                        return ka(this, wb).message_id;\n                    }.bind(this));\n                    fb = qa(this, jb.thread_id);\n                    fb.removeResources(ob);\n                    this._threadInformer.reorderedMessages(jb.thread_id, db);\n                    continue;\n                }\n                 else if (((kb == l.LOG_MESSAGE))) {\n                    if (((jb.log_message_type == s.SERVER_ERROR))) {\n                        this._failedHistoryFetchThreads[jb.thread_id] = true;\n                    }\n                ;\n                ;\n                }\n                 else if (((kb == l.CLEAR_CHAT))) {\n                    var pb = qa(this, jb.thread_id).getAllResources();\n                    pb.map(ka.curry(this)).forEach(function(wb) {\n                        wb.is_cleared = true;\n                    });\n                    continue;\n                }\n                \n                \n                \n                \n            ;\n            ;\n                if (((jb.threading_id && this._localIdsMap[jb.threading_id]))) {\n                    var qb = ka(this, jb.threading_id);\n                    if (((qb && qb.is_zap))) {\n                        fb = qa(this, jb.thread_id);\n                        fb.removeResources([qb.message_id,]);\n                        this._localIdsMap[jb.threading_id] = null;\n                        this._threadInformer.reorderedMessages(jb.thread_id, db);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                var rb = ka(this, jb.message_id);\n                if (((((jb.threading_id && this._localIdsMap[jb.threading_id])) || ((rb && !rb.is_forward))))) {\n                    continue;\n                }\n            ;\n            ;\n                if (!gb[jb.thread_id]) {\n                    gb[jb.thread_id] = [];\n                }\n            ;\n            ;\n                gb[jb.thread_id].push(jb.message_id);\n                this._messages[jb.message_id] = jb;\n                ya(this, jb);\n                if (((jb.threading_id && ((jb.threading_id != jb.message_id))))) {\n                    y.addServerID(jb.threading_id, jb.message_id);\n                }\n            ;\n            ;\n                if (!cb) {\n                    this._threadInformer.receivedMessage(jb);\n                }\n            ;\n            ;\n            };\n        ;\n            {\n                var fin155keys = ((window.top.JSBNG_Replay.forInKeys)((gb))), fin155i = (0);\n                var sb;\n                for (; (fin155i < fin155keys.length); (fin155i++)) {\n                    ((sb) = (fin155keys[fin155i]));\n                    {\n                        fb = qa(this, sb);\n                        var tb = fb.getAllResources(), ub = tb.filter(function(wb) {\n                            var xb = this._messages[wb];\n                            return ((((xb.action_type == l.LOG_MESSAGE)) && ((xb.log_message_type == s.SERVER_ERROR))));\n                        }.bind(this));\n                        fb.removeResources(ub);\n                        ua(this, sb, gb[sb]);\n                        if (eb) {\n                            va(this, sb, gb[sb]);\n                        }\n                    ;\n                    ;\n                        if (cb) {\n                            fb.addResources(gb[sb]);\n                            this._threadInformer.reorderedMessages(sb, db);\n                        }\n                         else fb.addResourcesWithoutSorting(gb[sb].reverse(), 0);\n                    ;\n                    ;\n                        this._threadInformer.updatedThread(sb);\n                    };\n                };\n            };\n        ;\n            var vb = Object.keys(hb);\n            if (vb.length) {\n                this._serverRequests.requestMessageConfirmation(hb);\n            }\n        ;\n        ;\n        },\n        sendMessage: function(bb, cb, db) {\n            cb = ((cb || Function.prototype));\n            ma(this, bb);\n            this._localIdsMap[bb.message_id] = bb.message_id;\n            if (((bb.thread_id == ((\"root:\" + bb.message_id))))) {\n                qa(this, bb.thread_id).setReachedEndOfArray();\n            }\n        ;\n        ;\n            this._serverRequests.sendNewMessage(bb, db);\n            if (((bb.thread_id == q.PENDING_THREAD_ID))) {\n                this._messages[bb.message_id] = bb;\n                return la.executeOrEnqueue(bb.message_id, cb);\n            }\n             else cb(bb.thread_id);\n        ;\n        ;\n        },\n        zapMessage: function(bb, cb, db) {\n            if (((bb.thread_id == q.PENDING_THREAD_ID))) {\n                return;\n            }\n        ;\n        ;\n            this._localIdsMap[bb.message_id] = bb.message_id;\n            this._serverRequests.handleUpdate({\n                actions: [fa({\n                }, bb),],\n                from_client: true,\n                payload_source: u.SERVER_ZAP\n            });\n        },\n        isFirstMessage: function(bb) {\n            var cb = qa(this, bb.thread_id);\n            if (((cb.getCurrentArraySize() === 0))) {\n                return false;\n            }\n        ;\n        ;\n            var db = cb.getResourceAtIndex(((cb.getCurrentArraySize() - 1))), eb = ka(this, db).message_id, fb = ka(this, bb.message_id).message_id;\n            return ((cb.hasReachedEndOfArray() && ((eb == fb))));\n        },\n        unsubscribeSend: function(bb) {\n            la.unsubscribe(bb);\n        },\n        resendMessage: function(bb, cb) {\n            var db = fa({\n            }, bb);\n            db.JSBNG__status = m.RESENDING;\n            db.timestamp = JSBNG__Date.now();\n            db.message_id = bb.message_id;\n            this._messages[bb.message_id] = db;\n            var eb = qa(this, bb.thread_id);\n            eb.resortResources([bb.message_id,]);\n            this.sendMessage(db, null, cb);\n            this._threadInformer.reorderedMessages(bb.thread_id, u.CLIENT_SEND_MESSAGE);\n        },\n        deleteMessages: function(bb, cb) {\n            if (cb.length) {\n                var db = qa(this, bb), eb = ((((db.getCurrentArraySize() == cb.length)) && db.hasReachedEndOfArray()));\n                this._serverRequests.deleteMessages(bb, cb, eb);\n            }\n        ;\n        ;\n        },\n        markMessagesSpam: function(bb, cb) {\n            if (cb.length) {\n                var db = qa(this, bb), eb = ((((db.getCurrentArraySize() == cb.length)) && db.hasReachedEndOfArray()));\n                if (eb) {\n                    this._serverRequests.markThreadSpam(bb);\n                }\n                 else this._serverRequests.markMessagesSpam(bb, cb);\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        updateLocalMessage: function(bb, cb) {\n            var db = bb.message_id, eb = bb.client_message_id;\n            this._localIdsMap[eb] = db;\n            this._messages[db] = this._messages[eb];\n            y.addServerID(eb, db);\n            this._messages[eb] = {\n            };\n            var fb = ka(this, eb);\n            if (bb.timestamp) {\n                fb.timestamp = bb.timestamp;\n            }\n        ;\n        ;\n            if (((bb.attachments && bb.attachments.length))) {\n                fb.raw_attachments = null;\n                fb.attachments = bb.attachments;\n                ya(this, fb, db);\n            }\n        ;\n        ;\n            if (bb.log_message_data) {\n                fb.log_message_data = bb.log_message_data;\n            }\n        ;\n        ;\n            if (wa(fb)) {\n                this._localTitanMessagesCount[fb.thread_id]--;\n            }\n        ;\n        ;\n        },\n        constructUserGeneratedMessageObject: function(bb, cb, db, eb) {\n            var fb = na(this, l.USER_GENERATED_MESSAGE, cb, db);\n            fb.body = bb;\n            fb.has_attachment = false;\n            fb.html_body = false;\n            fb.attachments = [];\n            fb.specific_to_list = ((eb || []));\n            return fb;\n        },\n        constructLogMessageObject: function(bb, cb, db, eb) {\n            var fb = na(this, l.LOG_MESSAGE, bb, cb);\n            fb.log_message_type = db;\n            fb.log_message_data = eb;\n            return fb;\n        },\n        generateNewClientMessageID: function(bb) {\n            var cb = ((((((((bb + \":\")) + ((ia(0, 4294967295) + 1)))) + \"-\")) + aa.getSessionID()));\n            return ((((\"\\u003C\" + cb)) + \"@mail.projektitan.com\\u003E\"));\n        },\n        getNumberLocalMessages: function(bb) {\n            return ((this._localTitanMessagesCount[bb] || 0));\n        }\n    });\n    fa(sa, v, {\n        addAttachmentData: function(bb, cb, db, eb) {\n            eb = ((eb || i.user));\n            sa.getForFBID(eb).addAttachmentData(bb, cb, db);\n        }\n    });\n    function ta(bb, cb) {\n        var db = cb.map(ka.curry(bb));\n        return db.reverse();\n    };\n;\n    function ua(bb, cb, db) {\n        var eb = db.filter(function(fb) {\n            return wa(ka(bb, fb));\n        });\n        if (!bb._titanMessagesCount[cb]) {\n            bb._titanMessagesCount[cb] = 0;\n        }\n    ;\n    ;\n        bb._titanMessagesCount[cb] += eb.length;\n    };\n;\n    function va(bb, cb, db) {\n        var eb = db.filter(function(fb) {\n            return wa(ka(bb, fb));\n        });\n        if (!bb._localTitanMessagesCount[cb]) {\n            bb._localTitanMessagesCount[cb] = 0;\n        }\n    ;\n    ;\n        bb._localTitanMessagesCount[cb] += eb.length;\n    };\n;\n    function wa(bb) {\n        var cb = bb.action_type;\n        if (((cb == l.USER_GENERATED_MESSAGE))) {\n            return !bb.is_zap;\n        }\n    ;\n    ;\n        switch (bb.log_message_type) {\n          case s.SUBSCRIBE:\n        \n          case s.UNSUBSCRIBE:\n        \n          case s.SERVER_ERROR:\n        \n          case s.LIVE_LISTEN:\n            return false;\n          default:\n            return true;\n        };\n    ;\n    };\n;\n    function xa(bb) {\n        switch (bb) {\n          case w.CHAT_WEB:\n        \n          case w.CHAT_JABBER:\n        \n          case w.CHAT_IPHONE:\n        \n          case w.CHAT_MEEBO:\n        \n          case w.CHAT_ORCA:\n        \n          case w.CHAT_TEST:\n        \n          case w.CHAT:\n        \n          case w.DESKTOP:\n            return true;\n          default:\n            return false;\n        };\n    ;\n    };\n;\n    function ya(bb, cb, db) {\n        db = ((db || cb.message_id));\n        var eb = bb._attachmentData[db];\n        if (eb) {\n            eb.forEach(function(fb) {\n                var gb = cb.attachments.indexOf(fb.attach_key);\n                if (((gb !== -1))) {\n                    cb.attachments[gb] = fb.data;\n                }\n            ;\n            ;\n            });\n            delete bb._attachmentData[db];\n        }\n         else if (((!cb.is_forward && za(bb, cb)))) {\n            bb._messagesNeedingAttachmentData[db] = true;\n            ab(bb);\n        }\n        \n    ;\n    ;\n    };\n;\n    function za(bb, cb) {\n        if (((!cb || !cb.attachments))) {\n            return false;\n        }\n    ;\n    ;\n        for (var db = 0; ((db < cb.attachments.length)); db++) {\n            var eb = cb.attachments[db];\n            if (((((typeof eb === \"string\")) && ((eb.indexOf(o.SHARE) === 0))))) {\n                return true;\n            }\n        ;\n        ;\n        };\n    ;\n        var fb = ((cb.forward_message_ids || []));\n        for (db = 0; ((db < fb.length)); db++) {\n            var gb = ka(bb, fb[db]);\n            if (za(bb, gb)) {\n                return true;\n            }\n        ;\n        ;\n        };\n    ;\n        return false;\n    };\n;\n    var ab = ga(function(bb) {\n        var cb = {\n        };\n        {\n            var fin156keys = ((window.top.JSBNG_Replay.forInKeys)((bb._messagesNeedingAttachmentData))), fin156i = (0);\n            var db;\n            for (; (fin156i < fin156keys.length); (fin156i++)) {\n                ((db) = (fin156keys[fin156i]));\n                {\n                    var eb = ka(bb, db);\n                    if (za(bb, eb)) {\n                        cb[db] = true;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        var fb = Object.keys(cb);\n        if (fb.length) {\n            new h(\"/ajax/mercury/attachments/fetch_shares.php\").setData({\n                message_ids: fb\n            }).setAllowCrossPageTransition(true).send();\n        }\n    ;\n    ;\n        bb._messagesNeedingAttachmentData = {\n        };\n    }, 0, this, true);\n    e.exports = sa;\n});\n__d(\"ChatOpenTab\", [\"Arbiter\",\"Banzai\",\"Bootloader\",\"ChatVisibility\",\"JSBNG__Event\",\"MercuryIDs\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"Bootloader\"), j = b(\"ChatVisibility\"), k = b(\"JSBNG__Event\"), l = b(\"MercuryIDs\"), m = b(\"MercuryMessages\").get(), n = b(\"MercuryServerRequests\").get(), o = b(\"MercuryThreads\").get(), p = \"messaging_tracking\";\n    function q(u) {\n        o.getThreadMeta(u, function() {\n            g.inform(\"chat/open-tab\", {\n                thread_id: u\n            });\n        });\n    };\n;\n    function r(u, v, w, x) {\n        k.listen(u, \"click\", function(y) {\n            if (x(v, w)) {\n                return;\n            }\n        ;\n        ;\n            return y.kill();\n        });\n    };\n;\n    function s(u, v, w) {\n        var x = {\n            referrer: ((u || \"\")),\n            message_thread_id: v,\n            message_view: \"chat\",\n            timestamp_send: JSBNG__Date.now()\n        };\n        if (((w !== undefined))) {\n            x.message_target_ids = [w,];\n        }\n    ;\n    ;\n        h.post(p, x, {\n            delay: 0,\n            retry: true\n        });\n    };\n;\n    var t = {\n        openEmptyTab: function(u, v) {\n            if (((!window.Chat || !j.isOnline()))) {\n                return true;\n            }\n        ;\n        ;\n            i.loadModules([\"ChatTabModel\",], function(w) {\n                var x = w.getEmptyTab();\n                if (!x) {\n                    x = ((\"root:\" + m.generateNewClientMessageID(JSBNG__Date.now())));\n                    o.createNewLocalThread(x, []);\n                }\n            ;\n            ;\n                q(x);\n                s(v, x);\n            });\n        },\n        listenOpenEmptyTab: function(u, v) {\n            r(u, null, v, t.openEmptyTab);\n        },\n        openThread: function(u, v) {\n            if (l.isValid(u)) {\n                q(u);\n            }\n             else n.getClientThreadID(u, q);\n        ;\n        ;\n            s(v, u);\n        },\n        listenOpenThread: function(u, v, w) {\n            r(u, v, w, t.openThread);\n        },\n        openUserTab: function(u, v) {\n            var w = o.getCanonicalThreadToUser(u);\n            q(w.thread_id);\n            s(v, w.thread_id, u);\n        },\n        listenOpenUserTab: function(u, v, w) {\n            r(u, v, w, t.openUserTab);\n        }\n    };\n    e.exports = t;\n});\n__d(\"SplitImage.react\", [\"React\",\"JSBNG__Image.react\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"JSBNG__Image.react\"), i = b(\"cx\"), j = g.createClass({\n        displayName: \"SplitImage\",\n        render: function() {\n            var k = this.props.size;\n            return this.transferPropsTo(g.DOM.div({\n                className: \"_55lt\",\n                style: {\n                    width: k,\n                    height: k\n                }\n            }, this.renderImages()));\n        },\n        renderImages: function() {\n            if (!this.props.srcs) {\n                return null;\n            }\n        ;\n        ;\n            if (!((this.props.srcs instanceof Array))) {\n                return (h({\n                    src: this.props.srcs,\n                    height: this.props.size,\n                    width: this.props.size\n                }));\n            }\n        ;\n        ;\n            switch (this.props.srcs.length) {\n              case 1:\n                return (h({\n                    src: this.props.srcs[0],\n                    height: this.props.size,\n                    width: this.props.size\n                }));\n              case 2:\n                return this.renderTwo();\n              default:\n                return this.renderThree();\n            };\n        ;\n        },\n        renderTwo: function() {\n            var k = Math.floor(((this.props.size / 2))), l = -Math.floor(((k / 2))), m = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57xo\")) : \"\"))));\n            return (g.DOM.div(null, g.DOM.div({\n                className: \"_55lu\",\n                style: {\n                    width: k\n                }\n            }, h({\n                src: this.props.srcs[0],\n                width: this.props.size,\n                height: this.props.size,\n                style: {\n                    marginLeft: l\n                }\n            })), g.DOM.div({\n                className: m,\n                style: {\n                    width: k\n                }\n            }, h({\n                src: this.props.srcs[1],\n                width: this.props.size,\n                height: this.props.size,\n                style: {\n                    marginLeft: l\n                }\n            }))));\n        },\n        renderThree: function() {\n            var k = Math.floor(((((this.props.size / 3)) * 2))), l = -Math.floor(((((this.props.size - k)) / 2))), m = Math.floor(((this.props.size / 2))), n = ((this.props.size - k)), o = -Math.floor(((((m - n)) / 2))), p = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57pl\")) : \"\")))), q = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57pm\")) : \"\"))));\n            return (g.DOM.div(null, g.DOM.div({\n                className: p,\n                style: {\n                    width: k\n                }\n            }, h({\n                src: this.props.srcs[0],\n                width: this.props.size,\n                height: this.props.size,\n                style: {\n                    marginLeft: l\n                }\n            })), g.DOM.div({\n                className: q,\n                style: {\n                    width: n,\n                    height: m\n                }\n            }, h({\n                src: this.props.srcs[1],\n                width: m,\n                height: m,\n                style: {\n                    marginLeft: o\n                }\n            })), g.DOM.div({\n                className: \"_55lu\",\n                style: {\n                    width: n,\n                    height: m\n                }\n            }, h({\n                src: this.props.srcs[2],\n                width: m,\n                height: m,\n                style: {\n                    marginLeft: o\n                }\n            }))));\n        }\n    });\n    e.exports = j;\n});\n__d(\"TypeaheadFacepile\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\");\n    function h() {\n    \n    };\n;\n    h.render = function(i) {\n        var j = [g.create(\"span\", {\n            className: \"splitpic leftpic\"\n        }, [g.create(\"img\", {\n            alt: \"\",\n            src: i[0]\n        }),]),g.create(\"span\", {\n            className: ((\"splitpic\" + ((i[2] ? \" toppic\" : \"\"))))\n        }, [g.create(\"img\", {\n            alt: \"\",\n            src: i[1]\n        }),]),];\n        if (i[2]) {\n            j.push(g.create(\"span\", {\n                className: \"splitpic bottompic\"\n            }, [g.create(\"img\", {\n                alt: \"\",\n                src: i[2]\n            }),]));\n        }\n    ;\n    ;\n        return g.create(\"span\", {\n            className: \"splitpics clearfix\"\n        }, j);\n    };\n    e.exports = h;\n});\n__d(\"ModalMask\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = null, i = 0, j = {\n        show: function() {\n            i++;\n            if (!h) {\n                h = g.create(\"div\", {\n                    id: \"modalMaskOverlay\"\n                });\n                g.appendContent(JSBNG__document.body, h);\n            }\n        ;\n        ;\n        },\n        hide: function() {\n            if (i) {\n                i--;\n                if (((!i && h))) {\n                    g.remove(h);\n                    h = null;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"LitestandMessages\", [], function(a, b, c, d, e, f) {\n    var g = {\n        FILTER_SWITCH_BEGIN: \"LitestandMessages/FilterSwitchBegin\",\n        NEWSFEED_LOAD: \"LitestandMessages/NewsFeedLoad\",\n        LEAVE_HOME: \"LitestandMessages/LeaveHome\",\n        UPDATE_HOME_COUNT: \"LitestandMessages/UpdateHomeCount\",\n        STORIES_INSERTED: \"LitestandMessages/StoriesInserted\",\n        STORIES_REMOVED: \"LitestandMessages/StoriesRemoved\",\n        NEWER_STORIES_INSERTED: \"LitestandMessages/NewerStoriesInserted\",\n        EXPAND_FILTER_SWITCHER: \"LitestandMessages/ExpandFilterSwitcher\",\n        RESTORE_FILTER_SWITCHER: \"LitestandMessages/RestoreFilterSwitcher\",\n        NEW_STORY_BAR_CLICK: \"LitestandMessages/NewStoryBarClick\",\n        COLLAPSE_FILTER_SWITCHER: \"LitestandMessages/CollapseFilterSwitcher\",\n        TOUR_BEGIN: \"LitestandMessages/TourBegin\",\n        TOUR_END: \"LitestandMessages/TourEnd\",\n        TOUR_SIDEBAR_HIGHLIGHT: \"LitestandMessages/TourSidebarHighlight\",\n        TOUR_SIDEBAR_UNHIGHLIGHT: \"LitestandMessages/TourSidebarUnhighlight\",\n        RHC_RELOADED: \"LitestandMessages/RHCReloaded\",\n        UNLOCK_FILTER_SWITCHER: \"LitestandMessage/UnlockFilterSwitcher\"\n    };\n    e.exports = g;\n});\n__d(\"WebMessengerPermalinkConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        ARCHIVED_PATH: \"/messages/archived\",\n        BASE_PATH: \"/messages\",\n        OTHER_PATH: \"/messages/other\",\n        SPAM_PATH: \"/messages/spam\",\n        COMPOSE_POSTFIX_PATH: \"/new\",\n        SEARCH_POSTFIX_PATH: \"/search\",\n        TID_POSTFIX_PARTIAL_PATH: \"/conversation-\",\n        overriddenVanities: \"(archived|other|spam|new|search|conversation-.*)\",\n        getURIPathForThreadID: function(i, j) {\n            return ((((((j || h.BASE_PATH)) + h.TID_POSTFIX_PARTIAL_PATH)) + g.encodeComponent(g.encodeComponent(i))));\n        },\n        getThreadIDFromURI: function(i) {\n            var j = i.getPath().match(((((((h.BASE_PATH + \"(/[^/]*)*\")) + h.TID_POSTFIX_PARTIAL_PATH)) + \"([^/]+)\")));\n            if (j) {\n                var k = g.decodeComponent(g.decodeComponent(j[2]));\n                return k;\n            }\n        ;\n        ;\n        },\n        getURIPathForIDOrVanity: function(i, j) {\n            if (i.match(((((\"^\" + h.overriddenVanities)) + \"$\")))) {\n                i = ((\".\" + i));\n            }\n        ;\n        ;\n            return ((((((j || h.BASE_PATH)) + \"/\")) + i));\n        },\n        getUserIDOrVanity: function(i) {\n            var j = i.match(((h.BASE_PATH + \".*/([^/]+)/?$\"))), k = ((j && j[1])), l = h.overriddenVanities;\n            if (((!k || k.match(((((\"^\" + l)) + \"$\")))))) {\n                return false;\n            }\n             else if (k.match(((((\"^\\\\.\" + l)) + \"$\")))) {\n                return k.substr(1);\n            }\n             else return k\n            \n        ;\n        }\n    };\n    e.exports = h;\n});\n__d(\"MercuryEmoji\", [\"MercuryConfig\",\"Emoji\",\"Emote\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryConfig\"), h = b(\"Emoji\"), i = b(\"Emote\"), j = {\n        htmlEmojiAndEmote: function(k, l) {\n            if (g.MessagingDisplayEmojiGK) {\n                return h.htmlEmojiAndEmote(k, l);\n            }\n             else return i.htmlEmote(k, l)\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryErrorInfo\", [\"MercuryErrorType\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryErrorType\"), h = b(\"tx\"), i = {\n        getMessage: function(j) {\n            var k = \"This message failed to send.\";\n            if (i.isConnectionError(j)) {\n                k = \"Unable to connect to Facebook. This message failed to send. \";\n            }\n             else if (j.description) {\n                k = j.description;\n            }\n            \n        ;\n        ;\n            return k;\n        },\n        isConnectionError: function(j) {\n            if (((j && ((j.type == g.TRANSPORT))))) {\n                return ((((((j.code === 1001)) || ((j.code === 1004)))) || ((j.code === 1006))));\n            }\n        ;\n        ;\n            return false;\n        }\n    };\n    e.exports = i;\n});\n__d(\"MercuryChannelHandler\", [\"Arbiter\",\"ChannelConstants\",\"Env\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercuryMessages\",\"MercuryPayloadSource\",\"MessagingReliabilityLogger\",\"MessagingEvent\",\"MessagingTag\",\"MercuryParticipants\",\"PresenceUtil\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"Env\"), j = b(\"MercuryActionTypeConstants\"), k = b(\"MercuryGlobalActionType\"), l = b(\"MercuryMessages\").get(), m = b(\"MercuryPayloadSource\"), n = b(\"MessagingReliabilityLogger\"), o = b(\"MessagingEvent\"), p = b(\"MessagingTag\"), q = b(\"MercuryParticipants\"), r = b(\"PresenceUtil\"), s = b(\"MercuryServerRequests\").get(), t = b(\"MercuryThreadInformer\").get(), u = b(\"copyProperties\");\n    function v(la, ma) {\n        if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.message))) {\n            n.addEntry(\"channel_receive\", \"invalid_data\");\n            return;\n        }\n    ;\n    ;\n        var na = ma.obj.message, oa = {\n            author: na.mercury_author_id,\n            author_email: na.mercury_author_email,\n            body: na.body,\n            subject: na.subject,\n            has_attachment: na.has_attachment,\n            attachments: na.attachments,\n            html_body: na.html_body,\n            thread_id: na.tid,\n            message_id: na.mid,\n            coordinates: na.mercury_coordinates,\n            spoof_warning: na.mercury_spoof_warning,\n            source: na.mercury_source,\n            source_tags: na.mercury_source_tags,\n            threading_id: na.threading_id,\n            timestamp: na.timestamp,\n            timestamp_absolute: na.timestamp_absolute,\n            timestamp_relative: na.timestamp_relative,\n            timestamp_time_passed: na.timestamp_time_passed,\n            action_type: j.USER_GENERATED_MESSAGE,\n            is_unread: na.is_unread,\n            action_id: na.action_id,\n            is_forward: false,\n            forward_count: ((na.forward_count || na.JSBNG__forward)),\n            forward_message_ids: na.forward_msg_ids,\n            location_text: na.location_text,\n            folder: ma.obj.folder\n        }, pa = [u({\n        }, oa),];\n        pa = pa.concat(((na.forward_actions || [])));\n        var qa = m.CLIENT_CHANNEL_MESSAGE;\n        s.handleUpdateWaitForThread({\n            actions: pa,\n            payload_source: qa\n        }, na.tid);\n        if (((!na.is_unread && ((na.mercury_author_id === q.user))))) {\n            var ra = {\n            };\n            ra[na.tid] = ma.obj.folder;\n            w(h.getArbiterType(\"messaging\"), {\n                obj: {\n                    JSBNG__event: o.READ,\n                    tids: [na.tid,],\n                    folder_info: ra,\n                    timestamp: na.timestamp\n                }\n            });\n        }\n    ;\n    ;\n        n.addEntry(\"channel_receive\", \"success\", [oa.thread_id,oa.message_id,r.getSessionID(),]);\n    };\n;\n    function w(la, ma) {\n        if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids))) {\n            return;\n        }\n    ;\n    ;\n        var na = [], oa = ((ma.obj.JSBNG__event == o.READ));\n        ma.obj.tids.forEach(function(pa) {\n            na.push({\n                action_type: j.CHANGE_READ_STATUS,\n                action_id: null,\n                thread_id: pa,\n                mark_as_read: oa,\n                timestamp: ((ma.obj.timestamp || 0)),\n                folder: ma.obj.folder_info[pa]\n            });\n        });\n        s.handleUpdate({\n            actions: na,\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n;\n    function x(la, ma) {\n        if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids))) {\n            return;\n        }\n    ;\n    ;\n        var na = [];\n        ma.obj.tids.forEach(function(oa) {\n            na.push({\n                action_type: j.DELETE_THREAD,\n                action_id: null,\n                thread_id: oa\n            });\n        });\n        s.handleUpdate({\n            actions: na,\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n;\n    function y(la, ma) {\n        if (((((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids)) || !ma.obj.mids))) {\n            return;\n        }\n    ;\n    ;\n        var na = ma.obj.tids[0], oa = {\n            action_type: j.DELETE_MESSAGES,\n            action_id: null,\n            thread_id: na,\n            message_ids: ma.obj.mids\n        };\n        s.handleUpdate({\n            actions: [oa,],\n            threads: [ma.obj.updated_thread,],\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n;\n    function z(la, ma) {\n        if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.folder))) {\n            return;\n        }\n    ;\n    ;\n        var na = {\n            action_type: k.MARK_ALL_READ,\n            action_id: ma.obj.action_id,\n            folder: ma.obj.folder\n        };\n        s.handleUpdate({\n            global_actions: [na,]\n        });\n    };\n;\n    function aa(la, ma) {\n        if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tids))) {\n            return;\n        }\n    ;\n    ;\n        var na = m.CLIENT_CHANNEL_MESSAGE;\n        ma.obj.tids.forEach(function(oa) {\n            var pa = {\n                action_type: j.CHANGE_ARCHIVED_STATUS,\n                action_id: null,\n                thread_id: oa,\n                archived: ma.obj.state\n            };\n            s.handleUpdateWaitForThread({\n                actions: [u({\n                }, pa),],\n                payload_source: na\n            }, oa);\n        });\n    };\n;\n    function ba(la, ma) {\n        if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tids))) {\n            return;\n        }\n    ;\n    ;\n        var na = m.CLIENT_CHANNEL_MESSAGE, oa;\n        ma.obj.tids.forEach(function(pa) {\n            if (((ma.obj.JSBNG__event == o.TAG))) {\n                oa = ma.obj.tag;\n            }\n             else oa = ((ma.obj.marked_as_spam ? p.SPAM : p.INBOX));\n        ;\n        ;\n            var qa = {\n                action_type: j.CHANGE_FOLDER,\n                action_id: null,\n                thread_id: pa,\n                new_folder: oa\n            };\n            s.handleUpdateWaitForThread({\n                actions: [u({\n                }, qa),],\n                payload_source: na\n            }, pa);\n        });\n    };\n;\n    function ca(la, ma) {\n        if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tag))) {\n            return;\n        }\n    ;\n    ;\n        switch (ma.obj.tag) {\n          case p.ACTION_ARCHIVED:\n            aa(la, ma);\n            break;\n          case p.INBOX:\n        \n          case p.OTHER:\n            ba(la, ma);\n            break;\n        };\n    ;\n    };\n;\n    function da(la, ma) {\n        if (((((((la != h.getArbiterType(\"inbox\"))) || !ma.obj)) || !ma.obj.seen_timestamp))) {\n            return;\n        }\n    ;\n    ;\n        s.handleUpdate({\n            message_counts: [{\n                seen_timestamp: ma.obj.seen_timestamp,\n                folder: p.INBOX\n            },],\n            unseen_thread_ids: [{\n                thread_ids: [],\n                folder: p.INBOX\n            },],\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n;\n    function ea(la, ma) {\n        if (((((la != h.getArbiterType(\"mercury\"))) || !ma.obj))) {\n            return;\n        }\n    ;\n    ;\n        t.synchronizeInforms(function() {\n            var na = ma.obj, oa = [];\n            ((na.actions || [])).forEach(function(pa) {\n                var qa = j.USER_GENERATED_MESSAGE;\n                if (((pa.action_type == j.LOG_MESSAGE))) {\n                    var ra = m.CLIENT_CHANNEL_MESSAGE;\n                    s.handleUpdateWaitForThread({\n                        actions: [u({\n                        }, pa),],\n                        payload_source: ra\n                    }, pa.thread_id);\n                }\n                 else if (((pa.action_type != qa))) {\n                    oa.push(pa);\n                }\n                \n            ;\n            ;\n            });\n            na.actions = oa;\n            na.payload_source = m.CLIENT_CHANNEL_MESSAGE;\n            s.handleUpdate(na);\n        });\n    };\n;\n    function fa(la, ma) {\n        s.handleRoger(ma.obj);\n    };\n;\n    function ga(la, ma) {\n        if (((((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || ((ma.obj.mute_settings === undefined)))) || !ma.obj.thread_id))) {\n            return;\n        }\n    ;\n    ;\n        var na = j.CHANGE_MUTE_SETTINGS, oa = [{\n            action_type: na,\n            action_id: null,\n            thread_id: ma.obj.thread_id,\n            mute_settings: ma.obj.mute_settings\n        },];\n        s.handleUpdate({\n            actions: oa,\n            payload_source: m.CLIENT_CHANNEL_MESSAGE\n        });\n    };\n;\n    function ha(la, ma) {\n        switch (ma.obj.JSBNG__event) {\n          case o.DELIVER:\n            v(la, ma);\n            break;\n          case o.READ:\n        \n          case o.UNREAD:\n            w(la, ma);\n            break;\n          case o.READ_ALL:\n            z(la, ma);\n            break;\n          case o.DELETE:\n            x(la, ma);\n            break;\n          case o.DELETE_MESSAGES:\n            y(la, ma);\n            break;\n          case o.TAG:\n            ca(la, ma);\n            break;\n          case o.REPORT_SPAM:\n            ba(la, ma);\n            break;\n          case o.READ_RECEIPT:\n            fa(la, ma);\n            break;\n          case o.CHANGE_MUTE_SETTINGS:\n            ga(la, ma);\n            break;\n        };\n    ;\n    };\n;\n    function ia(la, ma) {\n        if (((((la != h.getArbiterType(\"messaging_zap\"))) || !ma.obj))) {\n            n.addEntry(\"channel_receive_zap\", \"invalid_data\");\n            return;\n        }\n    ;\n    ;\n        if (!ma.obj.is_canonical) {\n            return;\n        }\n    ;\n    ;\n        var na = ma.obj.sender_id;\n        if (((na == i.user))) {\n            na = ma.obj.recipient_id;\n        }\n    ;\n    ;\n        na = ((\"user:\" + na));\n        var oa = {\n            action_type: j.USER_GENERATED_MESSAGE,\n            author: ((\"fbid:\" + ma.obj.sender_id)),\n            body: ma.obj.body,\n            source: ma.obj.source,\n            timestamp: ma.obj.timestamp,\n            message_id: ma.obj.message_id,\n            thread_id: na,\n            specific_to_list: [((\"fbid:\" + ma.obj.sender_id)),((\"fbid:\" + ma.obj.recipient_id)),],\n            spoof_warning: false,\n            is_unread: true,\n            is_zap: true\n        };\n        l.zapMessage(oa);\n    };\n;\n    var ja = [], ka = {\n        turnOn: function() {\n            if (!ja.length) {\n                var la = {\n                    mercury: ea,\n                    messaging: ha,\n                    messaging_zap: ia,\n                    inbox: da\n                };\n                {\n                    var fin157keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin157i = (0);\n                    var ma;\n                    for (; (fin157i < fin157keys.length); (fin157i++)) {\n                        ((ma) = (fin157keys[fin157i]));\n                        {\n                            ja.push(g.subscribe(h.getArbiterType(ma), la[ma]));\n                        ;\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n        },\n        turnOff: function() {\n            if (ja.length) {\n                ja.forEach(g.unsubscribe);\n                ja = [];\n            }\n        ;\n        ;\n        }\n    };\n    ka.turnOn();\n    e.exports = ka;\n});\n__d(\"MercuryRoger\", [\"ArbiterMixin\",\"MercuryActionStatus\",\"MercuryServerRequests\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"MercuryActionStatus\"), i = b(\"MercuryServerRequests\").get(), j = b(\"copyProperties\"), k = {\n    }, l = {\n        getSeenBy: function(m, n) {\n            if (!m) {\n                return [];\n            }\n        ;\n        ;\n            var o = [], p = k[m.thread_id], q = h.SUCCESS;\n            {\n                var fin158keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin158i = (0);\n                var r;\n                for (; (fin158i < fin158keys.length); (fin158i++)) {\n                    ((r) = (fin158keys[fin158i]));\n                    {\n                        if (((((((p[r] > m.timestamp)) && ((((m.JSBNG__status === undefined)) || ((m.JSBNG__status === q)))))) && ((!n || ((r != m.author))))))) {\n                            o.push(r);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return o;\n        },\n        getSeenTimestamp: function(m, n) {\n            var o = k[m];\n            return ((o ? o[n] : null));\n        }\n    };\n    j(l, g);\n    i.subscribe(\"update-roger\", function(m, n) {\n        {\n            var fin159keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin159i = (0);\n            var o;\n            for (; (fin159i < fin159keys.length); (fin159i++)) {\n                ((o) = (fin159keys[fin159i]));\n                {\n                    if (!k[o]) {\n                        k[o] = {\n                        };\n                    }\n                ;\n                ;\n                    {\n                        var fin160keys = ((window.top.JSBNG_Replay.forInKeys)((n[o]))), fin160i = (0);\n                        var p;\n                        for (; (fin160i < fin160keys.length); (fin160i++)) {\n                            ((p) = (fin160keys[fin160i]));\n                            {\n                                var q = k[o][p], r = n[o][p];\n                                if (((!q || ((r > q))))) {\n                                    k[o][p] = r;\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                };\n            };\n        };\n    ;\n        if (n) {\n            l.inform(\"state-changed\", n);\n        }\n    ;\n    ;\n    });\n    e.exports = l;\n});\n__d(\"MercuryDelayedRoger\", [\"ArbiterMixin\",\"LiveTimer\",\"MercuryActionStatus\",\"MercuryConfig\",\"MercuryMessages\",\"MercuryRoger\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"LiveTimer\"), i = b(\"MercuryActionStatus\"), j = b(\"MercuryConfig\"), k = b(\"MercuryMessages\").get(), l = b(\"MercuryRoger\"), m = b(\"MercuryThreadInformer\").get(), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\"), p = b(\"setTimeoutAcrossTransitions\"), q = {\n    }, r = {\n    }, s = j[\"roger.seen_delay\"], t = o({\n        getSeenBy: function(x, y) {\n            if (r[x]) {\n                return [];\n            }\n        ;\n        ;\n            if (!q[x]) {\n                var z = n.getThreadMetaNow(x);\n                if (z) {\n                    q[x] = {\n                        thread_id: x,\n                        author: z.participants[0],\n                        timestamp: z.timestamp\n                    };\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return l.getSeenBy(q[x], y);\n        }\n    }, g);\n    function u(x) {\n        var y = false;\n        k.getThreadMessagesRange(x, 0, 1, function(z) {\n            var aa = z[0];\n            if (!aa) {\n                return;\n            }\n        ;\n        ;\n            var ba = aa.timestamp;\n            if (((aa.action_id || ((aa.JSBNG__status == i.SUCCESS))))) {\n                ba -= h.getServerTimeOffset();\n            }\n        ;\n        ;\n            var ca = t.getSeenBy(x);\n            if (r[x]) {\n                JSBNG__clearTimeout(r[x]);\n                delete r[x];\n            }\n        ;\n        ;\n            var da = ((ba + s)), ea = ((da - JSBNG__Date.now()));\n            if (((ea > 0))) {\n                r[x] = p(function() {\n                    delete r[x];\n                    v(x);\n                }, ea);\n            }\n        ;\n        ;\n            q[x] = aa;\n            var fa = t.getSeenBy(x);\n            if (((ca.length || fa.length))) {\n                y = true;\n            }\n        ;\n        ;\n        });\n        return y;\n    };\n;\n    function v(x) {\n        var y = {\n        };\n        y[x] = true;\n        t.inform(\"state-changed\", y);\n    };\n;\n    function w(JSBNG__event, x) {\n        var y = {\n        };\n        {\n            var fin161keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin161i = (0);\n            var z;\n            for (; (fin161i < fin161keys.length); (fin161i++)) {\n                ((z) = (fin161keys[fin161i]));\n                {\n                    if (u(z)) {\n                        y[z] = true;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        {\n            var fin162keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin162i = (0);\n            var aa;\n            for (; (fin162i < fin162keys.length); (fin162i++)) {\n                ((aa) = (fin162keys[fin162i]));\n                {\n                    t.inform(\"state-changed\", y);\n                    break;\n                };\n            };\n        };\n    ;\n    };\n;\n    l.subscribe(\"state-changed\", function(x, y) {\n        {\n            var fin163keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin163i = (0);\n            var z;\n            for (; (fin163i < fin163keys.length); (fin163i++)) {\n                ((z) = (fin163keys[fin163i]));\n                {\n                    ((!r[z] && v(z)));\n                ;\n                };\n            };\n        };\n    ;\n    });\n    m.subscribe(\"messages-received\", w);\n    m.subscribe(\"messages-reordered\", w);\n    m.subscribe(\"messages-updated\", w);\n    e.exports = t;\n});\n__d(\"MercuryFilters\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.UNREAD,], j = {\n        ALL: \"all\",\n        getSupportedFilters: function() {\n            return i.concat();\n        },\n        isSupportedFilter: function(k) {\n            return h(i, k);\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryOrderedThreadlist\", [\"JSLogger\",\"MercuryActionTypeConstants\",\"MercuryFilters\",\"MercuryFolders\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MessagingTag\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSLogger\"), h = b(\"MercuryActionTypeConstants\"), i = b(\"MercuryFilters\"), j = b(\"MercuryFolders\"), k = b(\"MercuryPayloadSource\"), l = b(\"MercurySingletonMixin\"), m = b(\"MessagingTag\"), n = b(\"RangedCallbackManager\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"MercuryThreads\"), r = b(\"arrayContains\"), s = b(\"copyProperties\"), t = g.create(\"ordered_threadlist_model\"), u = i.getSupportedFilters().concat([i.ALL,m.GROUPS,]), v = j.getSupportedFolders();\n    function w(ga, ha, ia, ja) {\n        var ka = [], la = false, ma = false, na = ((ha || [])).filter(function(ua) {\n            var va = ((ua.filter || i.ALL));\n            return ((((((ua.folder == ia)) || ((!ua.folder && ((ia == m.INBOX)))))) && ((va == ja))));\n        }), oa = ga._threadlistOrderMap[ia][ja].getAllResources(), pa;\n        na.forEach(function(ua) {\n            ka = ka.concat(ua.thread_ids);\n            if (ua.error) {\n                if (((ua.end > oa.length))) {\n                    ma = ua.error;\n                }\n            ;\n            ;\n            }\n             else {\n                var va = ((ua.end - ua.start));\n                if (((ua.thread_ids.length < va))) {\n                    la = true;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((!pa || ((ua.end > pa))))) {\n                pa = ua.end;\n            }\n        ;\n        ;\n        });\n        aa(ga, ka, ia, ja);\n        if (la) {\n            ga._threadlistOrderMap[ia][ja].setReachedEndOfArray();\n        }\n         else if (ma) {\n            ga._threadlistOrderMap[ia][ja].setError(ma);\n        }\n         else {\n            var qa = ga._threadlistOrderMap[ia][ja].getCurrentArraySize();\n            if (((pa && ((qa < pa))))) {\n                var ra = {\n                }, sa = oa.concat(ka), ta = sa.filter(function(ua) {\n                    var va = ra[ua];\n                    ra[ua] = true;\n                    return va;\n                });\n                if (ta.length) {\n                    t.warn(\"duplicate_threads\", {\n                        folder: ia,\n                        expected_final_size: pa,\n                        actual_final_size: qa,\n                        duplicate_thread_ids: ta\n                    });\n                    ga._serverRequests.fetchThreadlistInfo(pa, ta.length, ia, ((((ja == i.ALL)) ? null : ja)));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n        \n    ;\n    ;\n    };\n;\n    function x(ga, ha) {\n        v.forEach(function(ia) {\n            u.forEach(function(ja) {\n                w(ga, ha, ia, ja);\n            });\n        });\n    };\n;\n    function y(ga, ha) {\n        var ia = {\n        };\n        v.forEach(function(ja) {\n            ia[ja] = {\n            };\n            u.forEach(function(ka) {\n                ia[ja][ka] = {\n                    to_add: [],\n                    to_remove: [],\n                    to_remove_if_last_after_add: {\n                    }\n                };\n            });\n        });\n        ha.forEach(function(ja) {\n            if (ja.is_forward) {\n                return;\n            }\n        ;\n        ;\n            var ka = ja.thread_id, la = ba(ga, ka), ma = ca(ga, ka);\n            function na() {\n                ma.forEach(function(pa) {\n                    ia[la][pa].to_add.push(ka);\n                    if (((!ga._threadlistOrderMap[la][pa].hasReachedEndOfArray() && !ga._threadlistOrderMap[la][pa].hasResource(ka)))) {\n                        ia[la][pa].to_remove_if_last_after_add[ka] = true;\n                    }\n                ;\n                ;\n                });\n            };\n        ;\n            function oa(pa) {\n                if (r(u, pa)) {\n                    if (r(ma, pa)) {\n                        ia[la][pa].to_add.push(ka);\n                    }\n                     else ia[la][pa].to_remove.push(ka);\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            if (!la) {\n                if (((((ja.action_type === h.CHANGE_FOLDER)) || ((ja.action_type === h.CHANGE_ARCHIVED_STATUS))))) {\n                    v.forEach(function(pa) {\n                        if (((pa !== la))) {\n                            u.forEach(function(qa) {\n                                ga._threadlistOrderMap[pa][qa].removeResources([ka,]);\n                            });\n                        }\n                    ;\n                    ;\n                    });\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            switch (ja.action_type) {\n              case h.DELETE_THREAD:\n                ma.forEach(function(pa) {\n                    ia[la][pa].to_remove.push(ka);\n                });\n                break;\n              case h.CHANGE_ARCHIVED_STATUS:\n            \n              case h.CHANGE_FOLDER:\n                na();\n                break;\n              case h.CHANGE_READ_STATUS:\n                oa(m.UNREAD);\n                break;\n              case h.USER_GENERATED_MESSAGE:\n            \n              case h.LOG_MESSAGE:\n                ma.forEach(function(pa) {\n                    if (da(ga, ka, la, pa)) {\n                        ia[la][pa].to_add.push(ka);\n                    }\n                ;\n                ;\n                });\n                break;\n            };\n        ;\n        });\n        v.forEach(function(ja) {\n            u.forEach(function(ka) {\n                var la = ga._threadlistOrderMap[ja][ka];\n                aa(ga, ia[ja][ka].to_add, ja, ka);\n                for (var ma = ((la.getCurrentArraySize() - 1)); ((ma >= 0)); ma--) {\n                    var na = la.getResourceAtIndex(ma);\n                    if (!ia[ja][ka].to_remove_if_last_after_add[na]) {\n                        break;\n                    }\n                ;\n                ;\n                    ia[ja][ka].to_remove.push(na);\n                };\n            ;\n                la.removeResources(ia[ja][ka].to_remove);\n            });\n        });\n    };\n;\n    function z(ga, ha) {\n        var ia = {\n        };\n        v.forEach(function(ja) {\n            ia[ja] = {\n            };\n            u.forEach(function(ka) {\n                ia[ja][ka] = [];\n            });\n        });\n        ha.forEach(function(ja) {\n            var ka = ba(ga, ja.thread_id), la = ca(ga, ja.thread_id);\n            if (ka) {\n                la.forEach(function(ma) {\n                    if (da(ga, ja.thread_id, ka, ma)) {\n                        ia[ka][ma].push(ja.thread_id);\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n        });\n        v.forEach(function(ja) {\n            u.forEach(function(ka) {\n                if (((ia[ja][ka].length > 0))) {\n                    aa(ga, ia[ja][ka], ja, ka);\n                }\n            ;\n            ;\n            });\n        });\n    };\n;\n    function aa(ga, ha, ia, ja) {\n        ja = ((ja || i.ALL));\n        ga._threadlistOrderMap[ia][ja].addResources(ha);\n        v.forEach(function(ka) {\n            if (((ka != ia))) {\n                ga._threadlistOrderMap[ka][ja].removeResources(ha);\n            }\n        ;\n        ;\n        });\n    };\n;\n    function ba(ga, ha) {\n        var ia = ga._threads.getThreadMetaNow(ha), ja = null;\n        if (!ia) {\n            ja = \"No thread metadata\";\n        }\n         else if (!ia.folder) {\n            ja = \"No thread folder\";\n        }\n        \n    ;\n    ;\n        if (ja) {\n            var ka = {\n                error: ja,\n                tid: ha\n            };\n            t.warn(\"no_thread_folder\", ka);\n            return null;\n        }\n    ;\n    ;\n        var la = ia.folder;\n        if (ia.is_archived) {\n            la = m.ACTION_ARCHIVED;\n        }\n    ;\n    ;\n        if (ga._threadlistOrderMap[la]) {\n            return la;\n        }\n         else return null\n    ;\n    };\n;\n    function ca(ga, ha) {\n        var ia = ga._threads.getThreadMetaNow(ha), ja = [i.ALL,];\n        if (!ia) {\n            var ka = {\n                error: \"no_thread_metadata\",\n                tid: ha\n            };\n            t.warn(\"no_thread_metadata\", ka);\n            return [];\n        }\n    ;\n    ;\n        if (ia.unread_count) {\n            ja.push(m.UNREAD);\n        }\n    ;\n    ;\n        if (!ia.is_canonical) {\n            ja.push(m.GROUPS);\n        }\n    ;\n    ;\n        return ja;\n    };\n;\n    function da(ga, ha, ia, ja) {\n        var ka = ga._threads.getThreadMetaNow(ha);\n        return ((((((ka && ka.timestamp)) && ((ba(ga, ha) == ia)))) && r(ca(ga, ha), ja)));\n    };\n;\n    function ea(ga) {\n        this._fbid = ga;\n        this._serverRequests = o.getForFBID(this._fbid);\n        this._threadInformer = p.getForFBID(this._fbid);\n        this._threads = q.getForFBID(this._fbid);\n        this._threadlistOrderMap = {\n        };\n        v.forEach(function(ha) {\n            this._threadlistOrderMap[ha] = {\n            };\n            u.forEach(function(ia) {\n                this._threadlistOrderMap[ha][ia] = new n(function(ja) {\n                    return this._threads.getThreadMetaNow(ja).timestamp;\n                }.bind(this), function(ja, ka) {\n                    return ((ka - ja));\n                }, this._serverRequests.canLinkExternally.bind(this._serverRequests));\n            }.bind(this));\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-threadlist\", function(ha, ia) {\n            if (!fa(ia)) {\n                return;\n            }\n        ;\n        ;\n            var ja = ia.ordered_threadlists;\n            if (((ja && ja.length))) {\n                x(this, ja);\n            }\n             else {\n                var ka = ((ia.actions || [])).filter(function(la) {\n                    return la.thread_id;\n                });\n                z(this, ((ia.threads || [])));\n                y(this, ka);\n            }\n        ;\n        ;\n            this._threadInformer.updatedThreadlist();\n        }.bind(this));\n    };\n;\n    s(ea.prototype, {\n        getThreadlist: function(ga, ha, ia, ja, ka, la) {\n            return this.getFilteredThreadlist(ga, ha, ia, i.ALL, ja, ka, la);\n        },\n        getFilteredThreadlist: function(ga, ha, ia, ja, ka, la, ma) {\n            var na = this._threadlistOrderMap[ia][ja], oa = na.executeOrEnqueue(ga, ha, ka, la), pa = na.getUnavailableResources(oa), qa = na.getError(ga, ha, la);\n            if (((pa.length || qa))) {\n                if (((na.getCurrentArraySize() < ga))) {\n                    var ra = {\n                        start: ga,\n                        limit: ha,\n                        filter: ja,\n                        resources_size: na.getCurrentArraySize()\n                    };\n                    t.warn(\"range_with_gap\", ra);\n                }\n            ;\n            ;\n                na.setError(false);\n                this._serverRequests.fetchThreadlistInfo(na.getCurrentArraySize(), pa.length, ia, ((((ja == i.ALL)) ? null : ja)), ma);\n            }\n        ;\n        ;\n            return oa;\n        },\n        getThreadlistUntilTimestamp: function(ga, ha, ia) {\n            ia = ((ia || i.ALL));\n            return this._threadlistOrderMap[ha][ia].getElementsUntil(ga);\n        },\n        unsubscribe: function(ga, ha, ia) {\n            ia = ((ia || i.ALL));\n            this._threadlistOrderMap[ha][ia].unsubscribe(ga);\n        }\n    });\n    s(ea, l);\n    function fa(ga) {\n        switch (ga.payload_source) {\n          case k.CLIENT_CHANGE_ARCHIVED_STATUS:\n        \n          case k.CLIENT_CHANGE_READ_STATUS:\n        \n          case k.CLIENT_CHANGE_FOLDER:\n        \n          case k.CLIENT_CHANNEL_MESSAGE:\n        \n          case k.CLIENT_DELETE_MESSAGES:\n        \n          case k.CLIENT_DELETE_THREAD:\n        \n          case k.CLIENT_SEND_MESSAGE:\n        \n          case k.SERVER_SEND_MESSAGE:\n        \n          case k.SERVER_CONFIRM_MESSAGES:\n        \n          case k.SERVER_FETCH_THREADLIST_INFO:\n        \n          case k.SERVER_THREAD_SYNC:\n        \n          case k.SERVER_ZAP:\n            return true;\n          case k.SERVER_INITIAL_DATA:\n            return ga.ordered_threadlists;\n          default:\n            return false;\n        };\n    ;\n    };\n;\n    e.exports = ea;\n});\n__d(\"MercuryUnreadState\", [\"Arbiter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"MercuryFolders\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercuryGlobalActionType\"), m = b(\"MercurySingletonMixin\"), n = b(\"MercuryThreadlistConstants\"), o = b(\"MessagingTag\"), p = b(\"MercuryServerRequests\"), q = b(\"MercuryThreadInformer\"), r = b(\"MercuryThreads\"), s = b(\"arrayContains\"), t = b(\"copyProperties\"), u = b(\"createObjectFrom\"), v = ((h.getSupportedFolders() || [])).filter(function(ma) {\n        return ((ma != o.ACTION_ARCHIVED));\n    }), w = \"unread_thread_hash\", x = \"unseen_thread_list\", y = n.MAX_UNREAD_COUNT, z = i.create(\"mercury_unread_state\");\n    function aa(ma) {\n        this._fbid = ma;\n        this._serverRequests = p.getForFBID(this._fbid);\n        this._threadInformer = q.getForFBID(this._fbid);\n        this._threads = r.getForFBID(this._fbid);\n        this._allReadTimestamp = {\n        };\n        this._threadReadTimestamp = {\n        };\n        this._initialUnreadCount = {\n        };\n        this._maxCount = {\n        };\n        this._unreadResources = {\n        };\n        v.forEach(function(na) {\n            this._initialUnreadCount[na] = 0;\n            this._maxCount[na] = false;\n            this._unreadResources[na] = new j();\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-unread\", function(na, oa) {\n            fa(this, oa);\n            var pa = ((oa.global_actions || []));\n            for (var qa = 0; ((qa < pa.length)); qa++) {\n                var ra = pa[qa];\n                if (((ra.action_type == l.MARK_ALL_READ))) {\n                    ia(this, ra.folder, ra.timestamp);\n                }\n            ;\n            ;\n            };\n        ;\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-thread-ids\", function(na, oa) {\n            ka(this, oa);\n        }.bind(this));\n    };\n;\n    t(aa.prototype, {\n        getUnreadCount: function(ma) {\n            if (this.exceedsMaxCount(ma)) {\n                z.error(\"unguarded_unread_count_fetch\", {\n                });\n                return 0;\n            }\n        ;\n        ;\n            return ea(this, ma);\n        },\n        exceedsMaxCount: function(ma) {\n            return ((this._maxCount[ma] || ((ea(this, ma) > y))));\n        },\n        markFolderAsRead: function(ma) {\n            if (((this._maxCount[ma] || ((ea(this, ma) > 0))))) {\n                this._serverRequests.markFolderAsRead(ma);\n            }\n        ;\n        ;\n        }\n    });\n    t(aa, m);\n    function ba(ma, na, oa) {\n        ma._unreadResources[na].setResource(w, oa);\n        ma._unreadResources[na].setResource(x, Object.keys(oa));\n    };\n;\n    function ca(ma, na, oa) {\n        var pa = ma._unreadResources[na].executeOrEnqueue(w, oa), qa = ma._unreadResources[na].getUnavailableResources(pa);\n        if (qa.length) {\n            ma._serverRequests.fetchUnreadThreadIDs(na);\n        }\n    ;\n    ;\n    };\n;\n    function da(ma, na) {\n        return ma._unreadResources[na].getResource(w);\n    };\n;\n    function ea(ma, na) {\n        var oa = ma._unreadResources[na].getResource(x);\n        if (oa) {\n            return oa.length;\n        }\n         else return ma._initialUnreadCount[na]\n    ;\n    };\n;\n    function fa(ma, na) {\n        var oa;\n        ((na.unread_thread_ids || [])).forEach(function(pa) {\n            oa = pa.folder;\n            if (!la(oa)) {\n                return;\n            }\n        ;\n        ;\n            var qa = ja(ma, pa.thread_ids);\n            ba(ma, oa, u(qa, true));\n            if (((qa.length > y))) {\n                ma._maxCount[oa] = true;\n            }\n        ;\n        ;\n            ma._threadInformer.updatedUnreadState();\n        });\n        ((na.message_counts || [])).forEach(function(pa) {\n            if (((pa.unread_count === undefined))) {\n                return;\n            }\n        ;\n        ;\n            oa = pa.folder;\n            if (((pa.unread_count > y))) {\n                ma._maxCount[oa] = true;\n                ba(ma, oa, {\n                });\n                ma._threadInformer.updatedUnreadState();\n            }\n             else {\n                ma._initialUnreadCount[oa] = pa.unread_count;\n                if (((ma._initialUnreadCount[oa] === 0))) {\n                    ba(ma, oa, {\n                    });\n                }\n            ;\n            ;\n                ma._threadInformer.updatedUnreadState();\n            }\n        ;\n        ;\n        });\n        ((na.actions || [])).forEach(function(pa) {\n            if (pa.is_forward) {\n                return;\n            }\n        ;\n        ;\n            var qa = k, ra = ((pa.thread_id ? pa.thread_id : pa.server_thread_id));\n            if (((pa.action_type == qa.DELETE_THREAD))) {\n                v.forEach(function(ta) {\n                    ha(ma, ta, ra);\n                });\n            }\n             else if (((((pa.action_type == qa.CHANGE_ARCHIVED_STATUS)) || ((pa.action_type == qa.CHANGE_FOLDER))))) {\n                var sa = ma._threads.getThreadMetaNow(pa.thread_id);\n                oa = h.getFromMeta(sa);\n                if (((la(oa) && ((sa.unread_count > 0))))) {\n                    ga(ma, oa, ra);\n                }\n            ;\n            ;\n                v.forEach(function(ta) {\n                    if (((ta != oa))) {\n                        ha(ma, ta, ra);\n                    }\n                ;\n                ;\n                });\n            }\n             else {\n                oa = pa.folder;\n                if (!la(oa)) {\n                    return;\n                }\n            ;\n            ;\n                if (((pa.action_type == qa.CHANGE_READ_STATUS))) {\n                    if (pa.mark_as_read) {\n                        ha(ma, oa, ra, pa.timestamp);\n                    }\n                     else ga(ma, oa, ra, pa.timestamp);\n                ;\n                ;\n                }\n                 else if (((((pa.action_type == qa.USER_GENERATED_MESSAGE)) || ((pa.action_type == qa.LOG_MESSAGE))))) {\n                    if (pa.is_unread) {\n                        ga(ma, oa, ra, pa.timestamp);\n                    }\n                ;\n                }\n                \n            ;\n            ;\n            }\n            \n        ;\n        ;\n        });\n    };\n;\n    function ga(ma, na, oa, pa) {\n        if (ma._maxCount[na]) {\n            return;\n        }\n    ;\n    ;\n        ca(ma, na, function(qa) {\n            var ra = ((ma._allReadTimestamp[na] || 0)), sa = ((ma._threadReadTimestamp[oa] || 0)), ta = ((pa || Number.POSITIVE_INFINITY));\n            if (((((((ta >= ra)) && ((ta >= sa)))) && !qa[oa]))) {\n                qa[oa] = ((pa || 0));\n                ba(ma, na, qa);\n                ma._threadInformer.updatedUnreadState();\n            }\n        ;\n        ;\n        });\n    };\n;\n    function ha(ma, na, oa, pa) {\n        if (ma._maxCount[na]) {\n            return;\n        }\n    ;\n    ;\n        ca(ma, na, function(qa) {\n            if (pa) {\n                var ra = ma._threadReadTimestamp[oa];\n                if (((!ra || ((ra < pa))))) {\n                    ma._threadReadTimestamp[oa] = pa;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var sa = qa[oa];\n            if (((((pa && ((typeof sa == \"number\")))) && ((pa < sa))))) {\n                return;\n            }\n        ;\n        ;\n            if (((oa in qa))) {\n                delete qa[oa];\n                ba(ma, na, qa);\n                ma._threadInformer.updatedUnreadState();\n            }\n        ;\n        ;\n        });\n    };\n;\n    function ia(ma, na, oa) {\n        ma._maxCount[na] = false;\n        ba(ma, na, {\n        });\n        ma._allReadTimestamp[na] = Math.max(((ma._allReadTimestamp[na] || 0)), ((oa || 0)));\n        ma._threadInformer.updatedUnreadState();\n    };\n;\n    function ja(ma, na) {\n        return na.map(ma._serverRequests.convertThreadIDIfAvailable.bind(ma._serverRequests));\n    };\n;\n    function ka(ma, na) {\n        v.forEach(function(oa) {\n            var pa = da(ma, oa);\n            if (!pa) {\n                return;\n            }\n        ;\n        ;\n            {\n                var fin164keys = ((window.top.JSBNG_Replay.forInKeys)((na))), fin164i = (0);\n                var qa;\n                for (; (fin164i < fin164keys.length); (fin164i++)) {\n                    ((qa) = (fin164keys[fin164i]));\n                    {\n                        var ra = na[qa];\n                        if (pa[qa]) {\n                            pa[ra] = pa[qa];\n                            delete pa[qa];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            ba(ma, oa, pa);\n        });\n    };\n;\n    function la(ma) {\n        return s(v, ma);\n    };\n;\n    g.subscribe(i.DUMP_EVENT, function(ma, na) {\n        na.messaging = ((na.messaging || {\n        }));\n        na.messaging.unread = {\n        };\n        na.messaging.unread_max_count = {\n        };\n        var oa = aa._getInstances();\n        {\n            var fin165keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin165i = (0);\n            var pa;\n            for (; (fin165i < fin165keys.length); (fin165i++)) {\n                ((pa) = (fin165keys[fin165i]));\n                {\n                    na.messaging.unread[pa] = {\n                    };\n                    na.messaging.unread_max_count[pa] = {\n                    };\n                    v.forEach(function(qa) {\n                        na.messaging.unread[pa][qa] = t({\n                        }, da(oa[pa], qa));\n                        na.messaging.unread_max_count[pa][qa] = oa[pa]._maxCount[qa];\n                    });\n                };\n            };\n        };\n    ;\n    });\n    e.exports = aa;\n});\n__d(\"MercuryUnseenState\", [\"Arbiter\",\"TimestampConverter\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercurySingletonMixin\"), m = b(\"MercuryThreadlistConstants\"), n = b(\"MessagingTag\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"copyProperties\"), r = b(\"createObjectFrom\"), s = m.MAX_UNSEEN_COUNT, t = \"unseen_thread_hash\", u = \"unseen_thread_list\", v = i.create(\"mercury_unseen_state\");\n    function w(ja) {\n        this._fbid = ja;\n        this._serverRequests = o.getForFBID(this._fbid);\n        this._threadInformer = p.getForFBID(this._fbid);\n        this._initialUnseenCount = 0;\n        this._lastSeenTimestamp = 0;\n        this._maxCount = false;\n        this._unseenResources = new j();\n        this._serverRequests.subscribe(\"update-unseen\", function(ka, la) {\n            ba(this, la);\n        }.bind(this));\n        this._serverRequests.subscribe(\"update-thread-ids\", function(ka, la) {\n            ha(this, la);\n        }.bind(this));\n    };\n;\n    q(w.prototype, {\n        getUnseenCount: function() {\n            if (this.exceedsMaxCount()) {\n                v.error(\"unguarded_unseen_count_fetch\", {\n                });\n                return 0;\n            }\n        ;\n        ;\n            return aa(this);\n        },\n        exceedsMaxCount: function() {\n            return ((this._maxCount || ((aa(this) > s))));\n        },\n        markAsSeen: function() {\n            if (((((aa(this) > 0)) || this._maxCount))) {\n                this._serverRequests.markSeen();\n                ca(this, h.convertActionIDToTimestamp(this._serverRequests.getLastActionID()), []);\n            }\n        ;\n        ;\n        },\n        markThreadSeen: function(ja, ka) {\n            var la = {\n            };\n            la[ja] = null;\n            ea(this, la, ka);\n        }\n    });\n    q(w, l);\n    function x(ja, ka) {\n        ja._unseenResources.setResource(t, ka);\n        ja._unseenResources.setResource(u, Object.keys(ka));\n    };\n;\n    function y(ja, ka) {\n        var la = ja._unseenResources.executeOrEnqueue(t, ka), ma = ja._unseenResources.getUnavailableResources(la);\n        if (ma.length) {\n            ja._serverRequests.fetchUnseenThreadIDs();\n        }\n    ;\n    ;\n    };\n;\n    function z(ja) {\n        return ja._unseenResources.getResource(t);\n    };\n;\n    function aa(ja) {\n        var ka = ja._unseenResources.getResource(u);\n        if (ka) {\n            return ka.length;\n        }\n         else return ja._initialUnseenCount\n    ;\n    };\n;\n    function ba(ja, ka) {\n        var la = ia(ka);\n        if (ka.unseen_thread_ids) {\n            ka.unseen_thread_ids.forEach(function(wa) {\n                if (((wa.folder != n.INBOX))) {\n                    return;\n                }\n            ;\n            ;\n                var xa = ga(ja, wa.thread_ids), ya = ja._lastSeenTimestamp;\n                if (((la && la.seen_timestamp))) {\n                    ya = la.seen_timestamp;\n                }\n            ;\n            ;\n                ca(ja, ya, xa);\n                if (((la && ((la.unseen_count > s))))) {\n                    ja._maxCount = true;\n                }\n            ;\n            ;\n            });\n        }\n         else if (((la && la.seen_timestamp))) {\n            ja._lastSeenTimestamp = la.seen_timestamp;\n            if (((la.unseen_count > s))) {\n                ja._maxCount = true;\n                x(ja, {\n                });\n            }\n             else {\n                ja._initialUnseenCount = la.unseen_count;\n                if (((ja._initialUnseenCount === 0))) {\n                    x(ja, {\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n         else {\n            if (ja._maxCount) {\n                return;\n            }\n        ;\n        ;\n            var ma = ka.actions;\n            if (((!ma || !(ma.length)))) {\n                return;\n            }\n        ;\n        ;\n            var na = {\n            }, oa = {\n            };\n            for (var pa = 0; ((pa < ma.length)); pa++) {\n                var qa = ma[pa];\n                if (qa.is_forward) {\n                    continue;\n                }\n            ;\n            ;\n                var ra = qa.action_type, sa = qa.action_id, ta = ((qa.thread_id ? qa.thread_id : qa.server_thread_id)), ua = ((((qa.folder === undefined)) || ((qa.folder == n.INBOX))));\n                if (!ua) {\n                    continue;\n                }\n            ;\n            ;\n                if (((((ra == k.USER_GENERATED_MESSAGE)) || ((ra == k.LOG_MESSAGE))))) {\n                    var va = h.isGreaterThan(sa, na[ta]);\n                    if (((qa.is_unread && ((!na[ta] || va))))) {\n                        na[ta] = sa;\n                    }\n                ;\n                ;\n                }\n                 else if (((((ra == k.CHANGE_READ_STATUS)) && qa.mark_as_read))) {\n                    oa[ta] = sa;\n                }\n                \n            ;\n            ;\n            };\n        ;\n            da(ja, na);\n            ea(ja, oa);\n        }\n        \n    ;\n    ;\n    };\n;\n    function ca(ja, ka, la) {\n        var ma = z(ja);\n        if (((((((ma === undefined)) || ((ka > ja._lastSeenTimestamp)))) || ja._maxCount))) {\n            ja._lastSeenTimestamp = ka;\n            la = ((la || []));\n            if (((la.length <= s))) {\n                ja._maxCount = false;\n            }\n        ;\n        ;\n            var na = {\n            }, oa = ((z(ja) || {\n            }));\n            {\n                var fin166keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin166i = (0);\n                var pa;\n                for (; (fin166i < fin166keys.length); (fin166i++)) {\n                    ((pa) = (fin166keys[fin166i]));\n                    {\n                        if (((oa[pa] !== true))) {\n                            var qa = oa[pa];\n                            if (fa(ja, qa)) {\n                                na[pa] = qa;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var ra = q(r(la, true), na);\n            x(ja, ra);\n            ja._threadInformer.updatedUnseenState();\n        }\n    ;\n    ;\n    };\n;\n    function da(ja, ka) {\n        if (ja._maxCount) {\n            return;\n        }\n    ;\n    ;\n        var la = {\n        }, ma = false;\n        {\n            var fin167keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin167i = (0);\n            var na;\n            for (; (fin167i < fin167keys.length); (fin167i++)) {\n                ((na) = (fin167keys[fin167i]));\n                {\n                    var oa = ka[na];\n                    if (fa(ja, oa)) {\n                        la[na] = oa;\n                        ma = true;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        if (!ma) {\n            return;\n        }\n    ;\n    ;\n        y(ja, function(pa) {\n            {\n                var fin168keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin168i = (0);\n                var qa;\n                for (; (fin168i < fin168keys.length); (fin168i++)) {\n                    ((qa) = (fin168keys[fin168i]));\n                    {\n                        var ra = la[qa];\n                        if (((!pa[qa] && fa(ja, ra)))) {\n                            pa[qa] = la[qa];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            x(ja, pa);\n            ja._threadInformer.updatedUnseenState();\n        });\n    };\n;\n    function ea(ja, ka, la) {\n        var ma = false;\n        {\n            var fin169keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin169i = (0);\n            var na;\n            for (; (fin169i < fin169keys.length); (fin169i++)) {\n                ((na) = (fin169keys[fin169i]));\n                {\n                    ma = true;\n                    break;\n                };\n            };\n        };\n    ;\n        if (ma) {\n            y(ja, function(oa) {\n                var pa = false;\n                {\n                    var fin170keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin170i = (0);\n                    var qa;\n                    for (; (fin170i < fin170keys.length); (fin170i++)) {\n                        ((qa) = (fin170keys[fin170i]));\n                        {\n                            var ra = ka[qa], sa = h.isGreaterThan(ra, oa[qa]);\n                            if (((oa[qa] && ((!ra || sa))))) {\n                                delete oa[qa];\n                                pa = true;\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n                if (pa) {\n                    x(ja, oa);\n                    ja._threadInformer.updatedUnseenState();\n                    if (((la && ((aa(ja) === 0))))) {\n                        ja._serverRequests.markSeen();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n        }\n    ;\n    ;\n    };\n;\n    function fa(ja, ka) {\n        var la = h.convertActionIDToTimestamp(ka);\n        return ((la > ja._lastSeenTimestamp));\n    };\n;\n    function ga(ja, ka) {\n        return ka.map(ja._serverRequests.convertThreadIDIfAvailable.bind(ja._serverRequests));\n    };\n;\n    function ha(ja, ka) {\n        var la = z(ja);\n        if (!la) {\n            return;\n        }\n    ;\n    ;\n        {\n            var fin171keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin171i = (0);\n            var ma;\n            for (; (fin171i < fin171keys.length); (fin171i++)) {\n                ((ma) = (fin171keys[fin171i]));\n                {\n                    var na = ka[ma];\n                    if (la[ma]) {\n                        la[na] = la[ma];\n                        delete la[ma];\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        x(ja, la);\n    };\n;\n    function ia(ja) {\n        var ka = ((ja.message_counts || []));\n        for (var la = 0; ((la < ka.length)); la++) {\n            if (((ka[la].folder == n.INBOX))) {\n                return ka[la];\n            }\n        ;\n        ;\n        };\n    ;\n        return null;\n    };\n;\n    g.subscribe(i.DUMP_EVENT, function(ja, ka) {\n        ka.messaging = ((ka.messaging || {\n        }));\n        ka.messaging.unseen = {\n        };\n        ka.messaging.unseen_max_count = {\n        };\n        ka.messaging.unseen_time = {\n        };\n        var la = w._getInstances();\n        {\n            var fin172keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin172i = (0);\n            var ma;\n            for (; (fin172i < fin172keys.length); (fin172i++)) {\n                ((ma) = (fin172keys[fin172i]));\n                {\n                    ka.messaging.unseen[ma] = q({\n                    }, z(la[ma]));\n                    ka.messaging.unseen_max_count[ma] = la[ma]._maxCount;\n                    ka.messaging.unseen_time[ma] = la[ma]._lastSeenTimestamp;\n                };\n            };\n        };\n    ;\n    });\n    e.exports = w;\n});\n__d(\"MercuryThreadMetadataRawRenderer\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"MercuryActionStatus\",\"MercuryErrorInfo\",\"MessagingTag\",\"MercuryStatusTemplates\",\"Tooltip\",\"URI\",\"WebMessengerPermalinkConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MercuryActionStatus\"), k = b(\"MercuryErrorInfo\"), l = b(\"MessagingTag\"), m = b(\"MercuryStatusTemplates\"), n = b(\"Tooltip\"), o = b(\"URI\"), p = b(\"WebMessengerPermalinkConstants\"), q = b(\"cx\"), r = b(\"tx\"), s = {\n        renderParticipantListWithNoThreadName: function(u, v, w, x, y, z) {\n            var aa = {\n                callback: true,\n                check_length: true,\n                show_unread_count: true\n            };\n            z = ((z || {\n            }));\n            var ba = {\n            };\n            {\n                var fin173keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin173i = (0);\n                var ca;\n                for (; (fin173i < fin173keys.length); (fin173i++)) {\n                    ((ca) = (fin173keys[fin173i]));\n                    {\n                        if (aa[ca]) {\n                            ba[ca] = z[ca];\n                            delete z[ca];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var da = w.map(function(ia) {\n                return x[ia];\n            }), ea = this.renderRawParticipantList(u, da, w.length, z);\n            ea = this.renderRawTitleWithUnreadCount(ea, ((ba.show_unread_count ? v.unread_count : 0)));\n            var fa = z.abbr_mode, ga = {\n            };\n            {\n                var fin174keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin174i = (0);\n                var ha;\n                for (; (fin174i < fin174keys.length); (fin174i++)) {\n                    ((ha) = (fin174keys[fin174i]));\n                    {\n                        ga[ha] = z[ha];\n                    ;\n                    };\n                };\n            };\n        ;\n            ga.abbr_mode = true;\n            y.forEach(function(ia) {\n                var ja = ((((y.length > 1)) ? this._cloneIfDOMElement(ea) : ea));\n                i.setContent(ia, ja);\n                if (((((ba.check_length && !fa)) && ((ia.scrollWidth > ia.clientWidth))))) {\n                    var ka = this.renderRawParticipantList(u, da, w.length, ga), la = this.renderRawTitleWithUnreadCount(ka, ((ba.show_unread_count ? v.unread_count : 0)));\n                    i.setContent(ia, la);\n                }\n            ;\n            ;\n            }.bind(this));\n            ((ba.callback && ba.callback(ea)));\n        },\n        renderRawParticipantList: function(u, v, w, x) {\n            var y = {\n                abbr_mode: true,\n                last_separator_uses_and: true,\n                names_renderer: true\n            };\n            x = ((x || {\n            }));\n            var z = null;\n            if (x.names_renderer) {\n                z = x.names_renderer(v);\n            }\n             else z = v.map(function(ca) {\n                return ca.JSBNG__name;\n            });\n        ;\n        ;\n            var aa = null;\n            if (((z.length === 0))) {\n                if (!u) {\n                    aa = \"New Message\";\n                }\n                 else aa = \"No Participants\";\n            ;\n            ;\n            }\n             else if (((z.length == 1))) {\n                aa = z[0];\n            }\n             else if (((z.length == 2))) {\n                var ba = {\n                    participant1: z[0],\n                    participant2: z[1]\n                };\n                if (x.last_separator_uses_and) {\n                    aa = r._(\"{participant1} and {participant2}\", ba);\n                }\n                 else aa = r._(\"{participant1}, {participant2}\", ba);\n            ;\n            ;\n            }\n             else if (x.last_separator_uses_and) {\n                if (x.abbr_mode) {\n                    aa = r._(\"{participant1} and {others_link}\", {\n                        participant1: z[0],\n                        others_link: this.renderRawParticipantCount(u, {\n                            render_subset: true,\n                            count: ((w - 1))\n                        })\n                    });\n                }\n                 else if (((z.length == 3))) {\n                    aa = r._(\"{participant1}, {participant2} and {participant3}\", {\n                        participant1: z[0],\n                        participant2: z[1],\n                        participant3: z[2]\n                    });\n                }\n                 else aa = r._(\"{participant1}, {participant2} and {others_link}\", {\n                    participant1: z[0],\n                    participant2: z[1],\n                    others_link: this.renderRawParticipantCount(u, {\n                        render_subset: true,\n                        count: ((w - 2))\n                    })\n                });\n                \n            ;\n            ;\n            }\n             else if (((z.length == 3))) {\n                aa = r._(\"{participant1}, {participant2}, {participant3}\", {\n                    participant1: z[0],\n                    participant2: z[1],\n                    participant3: z[2]\n                });\n            }\n             else aa = r._(\"{participant1}, {participant2}, {participant3}, {others_link}\", {\n                participant1: z[0],\n                participant2: z[1],\n                participant3: z[2],\n                others_link: this.renderRawParticipantCount(u, {\n                    render_subset: true,\n                    count: ((w - 3))\n                })\n            });\n            \n            \n            \n            \n        ;\n        ;\n            if (Array.isArray(aa)) {\n                aa = i.create(\"span\", {\n                }, aa);\n            }\n        ;\n        ;\n            return aa;\n        },\n        renderRawTitleWithUnreadCount: function(u, v) {\n            var w = u;\n            if (((v && ((v > 1))))) {\n                w = i.create(\"span\", {\n                }, r._(\"{conversation_title} ({unread_count})\", {\n                    conversation_title: u,\n                    unread_count: v\n                }));\n            }\n        ;\n        ;\n            return w;\n        },\n        renderRawParticipantCount: function(u, v) {\n            var w = v.render_subset, x;\n            if (!w) {\n                x = ((((v.count > 1)) ? r._(\"{num} people\", {\n                    num: v.count\n                }) : \"1 person\"));\n            }\n             else x = ((((v.count > 1)) ? r._(\"{others_count} others\", {\n                others_count: v.count\n            }) : \"1 other\"));\n        ;\n        ;\n            return x;\n        },\n        renderShortNames: function(u) {\n            if (((u.length == 1))) {\n                return [u[0].JSBNG__name,];\n            }\n        ;\n        ;\n            return u.map(function(v) {\n                return v.short_name;\n            });\n        },\n        getUserCanonicalTitanURL: function(u, v, w) {\n            var x = new o().setSubdomain(\"www\"), y = u.substr(((u.indexOf(\":\") + 1)));\n            x.setPath(((((t(w) + \"/\")) + y)));\n            ((v && v(x.toString())));\n            return x.toString();\n        },\n        getTitanURLWithServerID: function(u, v, w) {\n            var x = new o().setSubdomain(\"www\");\n            x.setPath(p.getURIPathForThreadID(u, t(w)));\n            ((v && v(x.toString())));\n            return x.toString();\n        },\n        renderUserCanonicalTitanLink: function(u, v, w, x) {\n            var y = this.getUserCanonicalTitanURL(u, null, x);\n            v.setAttribute(\"href\", y);\n            ((w && w()));\n        },\n        renderTitanLinkWithServerID: function(u, v, w, x) {\n            var y = this.getTitanURLWithServerID(u, null, x);\n            v.setAttribute(\"href\", y);\n            ((w && w()));\n        },\n        renderStatusIndicator: function(u, v, w) {\n            var x;\n            if (((u == j.RESENDING))) {\n                x = this.renderResendIndicator();\n            }\n             else if (((((((((u !== undefined)) && ((u != j.UNSENT)))) && ((u != j.UNCONFIRMED)))) && ((u != j.SUCCESS))))) {\n                x = this.renderErrorIndicator(v, w);\n            }\n            \n        ;\n        ;\n            return x;\n        },\n        renderResendIndicator: function() {\n            return m[\":fb:mercury:resend-indicator\"].render();\n        },\n        renderErrorIndicator: function(u, v) {\n            if (!u) {\n                return null;\n            }\n        ;\n        ;\n            var w = m[\":fb:mercury:error-indicator\"].render(), x = u.is_transient, y = k.getMessage(u);\n            if (x) {\n                if (k.isConnectionError(u)) {\n                    y = r._(\"{message} Check your network connection or click to try again.\", {\n                        message: y\n                    });\n                }\n                 else y = r._(\"{message} Click to send again.\", {\n                    message: y\n                });\n            ;\n            }\n        ;\n        ;\n            n.set(w, y, \"above\", \"center\");\n            if (((v && x))) {\n                g.listen(w, \"click\", v);\n                w.setAttribute(\"tabindex\", \"0\");\n                h.addClass(w, \"_55q-\");\n            }\n        ;\n        ;\n            return w;\n        },\n        _cloneIfDOMElement: function(u) {\n            if (u.cloneNode) {\n                return u.cloneNode();\n            }\n             else return u\n        ;\n        }\n    };\n    function t(u) {\n        var v = p.BASE_PATH;\n        if (((u && ((u != l.INBOX))))) {\n            v += ((\"/\" + u));\n        }\n    ;\n    ;\n        return v;\n    };\n;\n    e.exports = s;\n});\n__d(\"MercurySeenByAll\", [\"CSS\",\"DataStore\",\"DOM\",\"MercuryParticipants\",\"MercuryDelayedRoger\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"MercuryParticipants\"), k = b(\"MercuryDelayedRoger\"), l = b(\"MercuryThreads\").get(), m = {\n    }, n = {\n        updateOnSeenChange: function(p, q) {\n            m[p.tagName] = true;\n            h.set(p, \"thread-id\", q.thread_id);\n            g.addClass(p, \"seenByListener\");\n            o(p, q);\n        }\n    };\n    function o(p, q) {\n        var r = q.participants.filter(function(t) {\n            return ((t !== j.user));\n        }), s = ((((q.participants.length > 0)) && ((q.participants[0] === j.user))));\n        g.conditionClass(p, \"repliedLast\", s);\n        g.conditionClass(p, \"seenByAll\", ((s && ((k.getSeenBy(q.thread_id).length === r.length)))));\n    };\n;\n    k.subscribe(\"state-changed\", function(p, q) {\n        {\n            var fin175keys = ((window.top.JSBNG_Replay.forInKeys)((m))), fin175i = (0);\n            var r;\n            for (; (fin175i < fin175keys.length); (fin175i++)) {\n                ((r) = (fin175keys[fin175i]));\n                {\n                    var s = i.scry(JSBNG__document.body, ((r + \".seenByListener\")));\n                    for (var t = 0; ((t < s.length)); t++) {\n                        var u = s[t], v = h.get(u, \"thread-id\");\n                        if (q[v]) {\n                            l.getThreadMeta(v, function(w) {\n                                o(u, w);\n                            });\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                };\n            };\n        };\n    ;\n    });\n    e.exports = n;\n});\n__d(\"MercuryThreadMetadataRenderer\", [\"MercuryConfig\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"MercuryAttachment\",\"MercuryAttachmentType\",\"MercuryEmoji\",\"MercuryMessageSourceTags\",\"MercurySingletonMixin\",\"MercuryThreadMetadataRawRenderer\",\"MercuryParticipants\",\"MercuryParticipantsConstants\",\"React\",\"MercurySeenByAll\",\"MercuryServerRequests\",\"SplitImage.react\",\"Style\",\"MercuryThreadlistIconTemplates\",\"MercuryThreads\",\"Tooltip\",\"URI\",\"arrayContains\",\"createArrayFrom\",\"copyProperties\",\"cx\",\"formatDate\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryConfig\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"JSLogger\"), l = b(\"MercuryAttachment\"), m = b(\"MercuryAttachmentType\"), n = b(\"MercuryEmoji\"), o = b(\"MercuryMessageSourceTags\"), p = b(\"MercurySingletonMixin\"), q = b(\"MercuryThreadMetadataRawRenderer\"), r = b(\"MercuryParticipants\"), s = b(\"MercuryParticipantsConstants\"), t = b(\"React\"), u = b(\"MercurySeenByAll\"), v = b(\"MercuryServerRequests\"), w = b(\"SplitImage.react\"), x = b(\"Style\"), y = b(\"MercuryThreadlistIconTemplates\"), z = b(\"MercuryThreads\"), aa = b(\"Tooltip\"), ba = b(\"URI\"), ca = b(\"arrayContains\"), da = b(\"createArrayFrom\"), ea = b(\"copyProperties\"), fa = b(\"cx\"), ga = b(\"formatDate\"), ha = b(\"tx\"), ia = k.create(\"wm_timestamp\");\n    function ja(pa) {\n        this._fbid = pa;\n        this._serverRequests = v.getForFBID(pa);\n        this._threads = z.getForFBID(pa);\n    };\n;\n    ea(ja, p);\n    ea(ja.prototype, {\n        renderTimestamp: function(pa, qa, ra, sa) {\n            if (sa) {\n                if (!qa) {\n                    ia.warn(\"no_title\");\n                    qa = (new JSBNG__Date(sa)).toLocaleDateString();\n                }\n            ;\n            ;\n                pa.setAttribute(\"title\", qa);\n                pa.setAttribute(\"data-utime\", ((sa / 1000)));\n                if (!ra) {\n                    ia.warn(\"no_display\");\n                    ra = ga(new JSBNG__Date(sa), ((g[\"24h_times\"] ? \"H:i\" : \"g:ia\")));\n                }\n            ;\n            ;\n                i.setContent(pa, ra);\n                h.show(pa);\n            }\n        ;\n        ;\n        },\n        renderMessageSourceTags: function(pa, qa, ra, sa) {\n            var ta = \"\", ua = \"\", va = \"\";\n            if (ca(ra, o.MESSENGER)) {\n                ta = \"Sent from Messenger\";\n                ua = new ba(\"/mobile/messenger\");\n                va = \"_9g\";\n            }\n             else if (ca(ra, o.MOBILE)) {\n                ta = \"Sent from Mobile\";\n                ua = new ba(\"/mobile/\");\n                va = \"_9j\";\n            }\n             else if (ca(ra, o.CHAT)) {\n                ta = \"Sent from chat\";\n                va = \"_9h\";\n            }\n             else if (ca(ra, o.EMAIL)) {\n                if (sa) {\n                    ta = ha._(\"Sent from {email}\", {\n                        email: sa\n                    });\n                }\n                 else ta = \"Sent from email\";\n            ;\n            ;\n                va = \"_9i\";\n            }\n            \n            \n            \n        ;\n        ;\n            if (va) {\n                aa.set(pa, ta);\n                h.addClass(qa, va);\n                if (ua) {\n                    pa.setAttribute(\"href\", ua);\n                }\n                 else pa.removeAttribute(\"href\");\n            ;\n            ;\n            }\n             else h.hide(pa);\n        ;\n        ;\n        },\n        renderMessageLocation: function(pa, qa, ra) {\n            var sa = ba(\"/ajax/messaging/hovercard/map.php\").setQueryData(ra);\n            pa.setAttribute(\"data-hovercard\", sa);\n            h.removeClass(pa, \"_b9\");\n            h.show(qa);\n        },\n        renderSpoofWarning: function(pa, qa, ra) {\n            if (qa) {\n                h.addClass(pa, \"_sa\");\n                aa.set(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n                    name_or_email: ra.JSBNG__name\n                }));\n            }\n        ;\n        ;\n        },\n        renderChatSpoofWarning: function(pa, qa, ra) {\n            if (qa) {\n                i.appendContent(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n                    name_or_email: ra.JSBNG__name\n                }));\n            }\n        ;\n        ;\n        },\n        renderCoreThreadlist: function(pa, qa, ra, sa, ta) {\n            sa = ((sa || {\n            }));\n            this.renderThreadImage(pa, qa.getNode(\"image\"));\n            var ua = qa.getNode(\"accessibleName\"), va = [qa.getNode(\"JSBNG__name\"),];\n            if (ua) {\n                va.push(ua);\n            }\n        ;\n        ;\n            oa(this, pa, va, sa);\n            if (((pa.folder && ta))) {\n                na(qa.getNode(\"folderBadge\"), pa.folder);\n            }\n        ;\n        ;\n            var wa = qa.getNode(\"timestamp\");\n            this.renderTimestamp(wa, pa.timestamp_absolute, pa.timestamp_relative, pa.timestamp);\n            this.renderSnippet(pa, qa.getNode(\"snippet\"));\n            la(qa, pa);\n            ra(qa, pa);\n        },\n        renderAndSeparatedParticipantList: function(pa, qa, ra) {\n            ra = ((ra || {\n            }));\n            ra.last_separator_uses_and = true;\n            this._threads.getThreadMeta(pa, function(sa) {\n                oa(this, sa, qa, ra);\n            }.bind(this));\n        },\n        renderSnippet: function(pa, qa) {\n            var ra = false, sa = i.create(\"span\");\n            h.addClass(sa, \"MercuryRepliedIndicator\");\n            i.appendContent(qa, sa);\n            u.updateOnSeenChange(sa, pa);\n            var ta = pa.snippet;\n            if (ta) {\n                if (pa.snippet_has_attachment) {\n                    i.appendContent(qa, i.create(\"span\", {\n                        className: \"MercuryAttachmentIndicator\"\n                    }));\n                }\n            ;\n            ;\n                if (pa.is_forwarded_snippet) {\n                    i.appendContent(qa, i.create(\"strong\", {\n                        className: \"_55q_\"\n                    }, \"Forwarded Message:\"));\n                }\n            ;\n            ;\n                if (((ta.substr(0, 4) == \"?OTR\"))) {\n                    ta = \"[encrypted message]\";\n                }\n                 else ta = ta.replace(/\\r\\n|[\\r\\n]/g, \" \");\n            ;\n            ;\n                ta = j(n.htmlEmojiAndEmote(ta));\n            }\n             else {\n                if (pa.is_forwarded_snippet) {\n                    i.appendContent(qa, i.create(\"strong\", {\n                        className: \"_55q_\"\n                    }, \"Forwarded Message\"));\n                }\n            ;\n            ;\n                if (((((pa.snippet_has_attachment && pa.snippet_attachments)) && pa.snippet_attachments.length))) {\n                    ra = true;\n                    ta = i.create(\"span\");\n                    ma(this, pa, ta);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var ua = pa.participants.length;\n            if (pa.is_subscribed) {\n                ua--;\n            }\n        ;\n        ;\n            if (((((((!ra && pa.snippet_sender)) && ((r.getIDForUser(this._fbid) != pa.snippet_sender)))) && ((ua > 1))))) {\n                r.get(pa.snippet_sender, function(va) {\n                    if (va.short_name) {\n                        i.appendContent(qa, ha._(\"{name}: {conversation_snippet}\", {\n                            JSBNG__name: va.short_name,\n                            conversation_snippet: ta\n                        }));\n                    }\n                     else i.appendContent(qa, ta);\n                ;\n                ;\n                });\n            }\n             else i.appendContent(qa, ta);\n        ;\n        ;\n        },\n        getTitanURL: function(pa, qa, ra) {\n            if (((pa.substr(0, pa.indexOf(\":\")) == \"user\"))) {\n                q.getUserCanonicalTitanURL(pa, qa, ra);\n            }\n             else this._serverRequests.getServerThreadID(pa, function(sa) {\n                q.getTitanURLWithServerID(sa, qa, ra);\n            });\n        ;\n        ;\n        },\n        renderTitanLink: function(pa, qa, ra, sa) {\n            if (((pa.substr(0, pa.indexOf(\":\")) == \"user\"))) {\n                q.renderUserCanonicalTitanLink(pa, qa, ra, sa);\n            }\n             else this._serverRequests.getServerThreadID(pa, function(ta) {\n                q.renderTitanLinkWithServerID(ta, qa, ra, sa);\n            });\n        ;\n        ;\n        },\n        renderThreadImage: function(pa, qa) {\n            if (pa.image_src) {\n                var ra = w({\n                    srcs: pa.image_src,\n                    size: s.BIG_IMAGE_SIZE\n                });\n                t.renderComponent(ra, qa);\n                return;\n            }\n        ;\n        ;\n            var sa = r.getIDForUser(this._fbid), ta = [], ua = pa.participants.filter(function(va) {\n                return ((va != sa));\n            });\n            if (!ua.length) {\n                ta = [sa,];\n            }\n             else if (((ua.length == 1))) {\n                ta = [ua[0],];\n            }\n             else ta = ua.slice(0, 3);\n            \n        ;\n        ;\n            this.renderParticipantImages(ta, qa);\n        },\n        renderParticipantImages: function(pa, qa) {\n            r.getOrderedBigImageMulti(pa, function(ra) {\n                var sa = w({\n                    srcs: ra,\n                    border: true,\n                    size: s.BIG_IMAGE_SIZE\n                });\n                t.renderComponent(sa, qa);\n            });\n        },\n        renderParticipantList: function(pa, qa, ra, sa) {\n            return q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa);\n        },\n        renderThreadNameAndParticipantList: function(pa, qa, ra, sa) {\n            var ta = q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa), ua = this._threads.getThreadMetaNow(pa);\n            if (!ua.JSBNG__name) {\n                return ta;\n            }\n        ;\n        ;\n            return ha._(\"{conversation_name} [with {participant_list}]\", {\n                conversation_name: ua.JSBNG__name,\n                participant_list: ta\n            });\n        },\n        renderParticipantCount: function(pa, qa) {\n            return q.renderRawParticipantCount(this._serverRequests.getServerThreadIDNow(pa), qa);\n        }\n    });\n    function ka(pa) {\n        if (!pa.snippet_attachments) {\n            return [];\n        }\n    ;\n    ;\n        return pa.snippet_attachments.filter(function(qa) {\n            return ((qa.attach_type === m.PHOTO));\n        });\n    };\n;\n    function la(pa, qa) {\n        var ra = ka(qa);\n        if (((ra.length === 0))) {\n            return;\n        }\n    ;\n    ;\n        var sa = ra[0].thumbnail_url;\n        if (!sa) {\n            return;\n        }\n    ;\n    ;\n        var ta = ((((ra.length == 1)) ? \"snippet-thumbnail-single\" : \"snippet-thumbnail-multiple\")), ua = pa.getNode(ta);\n        if (!ua) {\n            return;\n        }\n    ;\n    ;\n        var va = i.JSBNG__find(ua, \"i\");\n        x.set(va, \"background-image\", ((((\"url(\" + sa)) + \")\")));\n        h.show(ua);\n    };\n;\n    function ma(pa, qa, ra) {\n        var sa = ((qa.snippet_sender && ((r.getIDForUser(pa._fbid) == qa.snippet_sender)))), ta = function(ya) {\n            if (((!qa.snippet_sender || sa))) {\n                ya(null);\n                return;\n            }\n        ;\n        ;\n            r.get(qa.snippet_sender, function(za) {\n                ya(za.short_name);\n            });\n        }, ua = ka(qa), va = ((ua.length == qa.snippet_attachments.length)), wa = ((((((qa.snippet_attachments.length === 1)) && qa.snippet_attachments[0].metadata)) && ((qa.snippet_attachments[0].metadata.type == \"fb_voice_message\")))), xa = ((((qa.snippet_attachments.length === 1)) && ((qa.snippet_attachments[0].attach_type === m.STICKER))));\n        ta(function(ya) {\n            var za = null;\n            if (va) {\n                var ab = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n                if (((ua.length === 1))) {\n                    za = ((sa ? \"You sent a photo.\" : ha._(\"{name} sent a photo.\", {\n                        JSBNG__name: ya\n                    })));\n                }\n                 else za = ((sa ? ha._(\"You sent {num_photos} photos.\", {\n                    num_photos: ua.length\n                }) : ha._(\"{name} sent {num_photos} photos.\", {\n                    JSBNG__name: ya,\n                    num_photos: ua.length\n                })));\n            ;\n            ;\n                h.addClass(ab, l.getAttachIconClass(ua[0].icon_type));\n                i.appendContent(ab, za);\n                i.appendContent(ra, ab);\n            }\n             else if (wa) {\n                var bb = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n                za = ((sa ? \"You sent a voice message.\" : ha._(\"{name} sent a voice message.\", {\n                    JSBNG__name: ya\n                })));\n                h.addClass(bb, l.getAttachIconClass(qa.snippet_attachments[0].icon_type));\n                i.appendContent(bb, za);\n                i.appendContent(ra, bb);\n            }\n             else if (xa) {\n                za = ((sa ? \"You sent a sticker.\" : ha._(\"{name} sent a sticker.\", {\n                    JSBNG__name: ya\n                })));\n                i.appendContent(ra, za);\n            }\n             else qa.snippet_attachments.filter(function(cb) {\n                return ((((cb.attach_type == m.FILE)) || ((cb.attach_type == m.PHOTO))));\n            }).forEach(function(cb) {\n                var db = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n                i.appendContent(db, cb.JSBNG__name);\n                h.addClass(db, l.getAttachIconClass(cb.icon_type));\n                i.appendContent(ra, db);\n            });\n            \n            \n        ;\n        ;\n        });\n    };\n;\n    function na(pa, qa) {\n        da(pa).forEach(function(ra) {\n            i.setContent(ra, qa);\n        });\n    };\n;\n    function oa(pa, qa, ra, sa) {\n        ra = da(ra);\n        if (qa.JSBNG__name) {\n            var ta = q.renderRawTitleWithUnreadCount(qa.JSBNG__name, ((sa.show_unread_count ? qa.unread_count : 0)));\n            ra.forEach(function(va) {\n                i.setContent(va, ta);\n            });\n            ((sa.callback && sa.callback(ta)));\n            return;\n        }\n    ;\n    ;\n        var ua = qa.participants;\n        if (((qa.participants.length > 1))) {\n            ua = qa.participants.filter(function(va) {\n                return ((va != r.getIDForUser(pa._fbid)));\n            });\n        }\n    ;\n    ;\n        r.getMulti(ua, function(va) {\n            q.renderParticipantListWithNoThreadName(pa._serverRequests.getServerThreadIDNow(qa.thread_id), qa, ua, va, ra, sa);\n        });\n    };\n;\n    e.exports = ja;\n});\n__d(\"MercuryChatUtils\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = {\n        canOpenChatTab: function(i) {\n            var j = ((i.is_canonical && !i.is_canonical_user));\n            return ((((i.is_subscribed && !j)) && ((i.canonical_fbid != g.user))));\n        }\n    };\n    e.exports = h;\n});\n__d(\"RenderManager\", [\"function-extensions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._isDirty = false;\n        this._obj = i;\n    };\n;\n    g(h.prototype, {\n        dirty: function() {\n            if (!this._isDirty) {\n                this._isDirty = true;\n                this._doPaint.bind(this).defer();\n            }\n        ;\n        ;\n        },\n        _doPaint: function() {\n            this._isDirty = false;\n            this._obj.paint();\n        }\n    });\n    e.exports = h;\n});\n__d(\"CounterDisplay\", [\"Arbiter\",\"CSS\",\"DOM\",\"RenderManager\",\"Run\",\"$\",\"copyProperties\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"RenderManager\"), k = b(\"Run\"), l = b(\"$\"), m = b(\"copyProperties\"), n = b(\"removeFromArray\");\n    function o(p, q, r, s, t, u) {\n        m(this, {\n            _name: p,\n            _valueNode: l(q),\n            _wrapperNode: ((l(r) || null)),\n            _statusClass: t,\n            _rm: new j(this),\n            _arbiterSubscription: null,\n            _count: 0\n        });\n        var v = this._valueNode.firstChild;\n        if (v) {\n            var w = parseInt(v.nodeValue, 10);\n            if (!isNaN(w)) {\n                this._count = w;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        this._statusNode = ((s ? l(s) : null));\n        this._subscribeAll();\n        o.instances.push(this);\n        if (!u) {\n            k.onLeave(this._destroy.bind(this), true);\n        }\n    ;\n    ;\n    };\n;\n    m(o, {\n        EVENT_TYPE_ADJUST: \"CounterDisplay/adjust\",\n        EVENT_TYPE_UPDATE: \"CounterDisplay/update\",\n        instances: [],\n        adjustCount: function(p, q) {\n            g.inform(((((o.EVENT_TYPE_ADJUST + \"/\")) + p)), q);\n        },\n        setCount: function(p, q) {\n            g.inform(((((o.EVENT_TYPE_UPDATE + \"/\")) + p)), q);\n        }\n    });\n    m(o.prototype, {\n        _destroy: function() {\n            delete this._valueNode;\n            delete this._wrapperNode;\n            if (this._arbiterSubscription) {\n                this._arbiterSubscription.unsubscribe();\n                delete this._arbiterSubscription;\n            }\n        ;\n        ;\n            n(o.instances, this);\n        },\n        adjustCount: function(p) {\n            this._count = Math.max(0, ((this._count + p)));\n            this._rm.dirty();\n            return this;\n        },\n        setCount: function(p) {\n            this._count = Math.max(0, p);\n            this._rm.dirty();\n            return this;\n        },\n        paint: function() {\n            i.setContent(this._valueNode, this._count);\n            this._toggleNodes();\n        },\n        _toggleNodes: function() {\n            if (this._wrapperNode) {\n                h.conditionClass(this._wrapperNode, \"hidden_elem\", ((this._count <= 0)));\n            }\n        ;\n        ;\n            if (((this._statusClass && this._statusNode))) {\n                h.conditionClass(this._statusNode, this._statusClass, ((this._count > 0)));\n            }\n        ;\n        ;\n        },\n        _subscribeAll: function() {\n            var p = [((((o.EVENT_TYPE_ADJUST + \"/\")) + this._name)),((((o.EVENT_TYPE_UPDATE + \"/\")) + this._name)),];\n            this._arbiterSubscription = g.subscribe(p, this._onInform.bind(this), g.SUBSCRIBE_NEW);\n        },\n        _onInform: function(p, q) {\n            q = parseInt(q);\n            if (isNaN(q)) {\n                return;\n            }\n        ;\n        ;\n            if (((p.indexOf(o.EVENT_TYPE_ADJUST) != -1))) {\n                this.adjustCount(q);\n            }\n             else if (((p.indexOf(o.EVENT_TYPE_UPDATE) != -1))) {\n                this.setCount(q);\n            }\n             else return\n            \n        ;\n            return;\n        }\n    });\n    e.exports = o;\n});\n__d(\"CacheStorage\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = {\n        memory: k,\n        localstorage: i,\n        sessionstorage: j\n    };\n    function i() {\n        this._store = a.JSBNG__localStorage;\n    };\n;\n    i.available = function() {\n        try {\n            return !!a.JSBNG__localStorage;\n        } catch (m) {\n            return false;\n        };\n    ;\n    };\n    g(i.prototype, {\n        keys: function() {\n            var m = [];\n            for (var n = 0; ((n < this._store.length)); n++) {\n                m.push(this._store.key(n));\n            ;\n            };\n        ;\n            return m;\n        },\n        get: function(m) {\n            return this._store.getItem(m);\n        },\n        set: function(m, n) {\n            this._store.setItem(m, n);\n        },\n        remove: function(m) {\n            this._store.removeItem(m);\n        },\n        clear: function() {\n            this._store.clear();\n        }\n    });\n    function j() {\n        this._store = a.JSBNG__sessionStorage;\n    };\n;\n    j.available = function() {\n        try {\n            return !!a.JSBNG__sessionStorage;\n        } catch (m) {\n            return false;\n        };\n    ;\n    };\n    g(j.prototype, {\n        keys: function() {\n            var m = [];\n            for (var n = 0; ((n < this._store.length)); n++) {\n                m.push(this._store.key(n));\n            ;\n            };\n        ;\n            return m;\n        },\n        get: function(m) {\n            return this._store.getItem(m);\n        },\n        set: function(m, n) {\n            this._store.setItem(m, n);\n        },\n        remove: function(m) {\n            this._store.removeItem(m);\n        },\n        clear: function() {\n            this._store.clear();\n        }\n    });\n    function k() {\n        this._store = {\n        };\n    };\n;\n    k.available = function() {\n        return true;\n    };\n    g(k.prototype, {\n        keys: function() {\n            return Object.keys(this._store);\n        },\n        get: function(m) {\n            if (((this._store[m] === undefined))) {\n                return null;\n            }\n        ;\n        ;\n            return this._store[m];\n        },\n        set: function(m, n) {\n            this._store[m] = n;\n        },\n        remove: function(m) {\n            if (((m in this._store))) {\n                delete this._store[m];\n            }\n        ;\n        ;\n        },\n        clear: function() {\n            this._store = {\n            };\n        }\n    });\n    function l(m, n) {\n        this._key_prefix = ((n || \"_cs_\"));\n        this._magic_prefix = \"_@_\";\n        if (((((m == \"AUTO\")) || !m))) {\n            {\n                var fin176keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin176i = (0);\n                var o;\n                for (; (fin176i < fin176keys.length); (fin176i++)) {\n                    ((o) = (fin176keys[fin176i]));\n                    {\n                        var p = h[o];\n                        if (p.available()) {\n                            m = o;\n                            break;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        }\n    ;\n    ;\n        if (m) {\n            if (((typeof m == \"string\"))) {\n                if (((!h[m] || !h[m].available()))) {\n                    this._backend = new k();\n                }\n                 else this._backend = new h[m]();\n            ;\n            ;\n            }\n             else if (((!m.available || !m.available()))) {\n                this._backend = new k();\n            }\n             else this._backend = m;\n            \n        ;\n        }\n    ;\n    ;\n    };\n;\n    g(l, {\n        getAllStorageTypes: function() {\n            return Object.keys(h);\n        }\n    });\n    g(l.prototype, {\n        keys: function() {\n            var m = [];\n            try {\n                if (this._backend) {\n                    var o = this._backend.keys();\n                    for (var p = 0; ((p < o.length)); p++) {\n                        if (((o[p].substr(0, this._key_prefix.length) == this._key_prefix))) {\n                            m.push(o[p].substr(this._key_prefix.length));\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                }\n            ;\n            ;\n            } catch (n) {\n            \n            };\n        ;\n            return m;\n        },\n        set: function(m, n) {\n            if (this._backend) {\n                if (((typeof n == \"string\"))) {\n                    n = ((this._magic_prefix + n));\n                }\n                 else n = JSON.stringify(n);\n            ;\n            ;\n                try {\n                    this._backend.set(((this._key_prefix + m)), n);\n                } catch (o) {\n                \n                };\n            ;\n            }\n        ;\n        ;\n        },\n        get: function(m, n) {\n            var o;\n            if (this._backend) {\n                try {\n                    o = this._backend.get(((this._key_prefix + m)));\n                } catch (p) {\n                    o = null;\n                };\n            ;\n                if (((o !== null))) {\n                    if (((o.substr(0, this._magic_prefix.length) == this._magic_prefix))) {\n                        o = o.substr(this._magic_prefix.length);\n                    }\n                     else try {\n                        o = JSON.parse(o);\n                    } catch (q) {\n                        o = undefined;\n                    }\n                ;\n                ;\n                }\n                 else o = undefined;\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((((o === undefined)) && ((n !== undefined))))) {\n                o = n;\n                if (this._backend) {\n                    var r;\n                    if (((typeof o == \"string\"))) {\n                        r = ((this._magic_prefix + o));\n                    }\n                     else r = JSON.stringify(o);\n                ;\n                ;\n                    try {\n                        this._backend.set(((this._key_prefix + m)), r);\n                    } catch (p) {\n                    \n                    };\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return o;\n        },\n        remove: function(m) {\n            if (this._backend) {\n                try {\n                    this._backend.remove(((this._key_prefix + m)));\n                } catch (n) {\n                \n                };\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = l;\n});\n__d(\"Badge\", [\"DOM\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"cx\"), i = function(j) {\n        var k;\n        switch (j) {\n          case \"xsmall\":\n            k = \"_56_g _58to\";\n            break;\n          case \"small\":\n            k = \"_56_g _56_h\";\n            break;\n          case \"medium\":\n            k = \"_56_g _56_j\";\n            break;\n          case \"large\":\n            k = \"_56_g _56_k\";\n            break;\n          case \"xlarge\":\n            k = \"_56_g _57s-\";\n            break;\n        };\n    ;\n        if (k) {\n            return g.create(\"span\", {\n                className: k\n            });\n        }\n    ;\n    ;\n        return null;\n    };\n    e.exports = i;\n});\n__d(\"BasicTypeaheadRenderer\", [\"Badge\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Badge\"), h = b(\"DOM\");\n    function i(j, k) {\n        var l = [];\n        if (j.icon) {\n            l.push(h.create(\"img\", {\n                alt: \"\",\n                src: j.icon\n            }));\n        }\n    ;\n    ;\n        if (j.text) {\n            var m = [j.text,];\n            if (j.verified) {\n                m.push(g(\"xsmall\"));\n            }\n        ;\n        ;\n            l.push(h.create(\"span\", {\n                className: \"text\"\n            }, m));\n        }\n    ;\n    ;\n        if (j.subtext) {\n            l.push(h.create(\"span\", {\n                className: \"subtext\"\n            }, [j.subtext,]));\n        }\n    ;\n    ;\n        var n = h.create(\"li\", {\n            className: ((j.type || \"\"))\n        }, l);\n        if (j.text) {\n            n.setAttribute(\"aria-label\", j.text);\n        }\n    ;\n    ;\n        return n;\n    };\n;\n    i.className = \"basic\";\n    e.exports = i;\n});\n__d(\"TypeaheadView\", [\"JSBNG__Event\",\"ArbiterMixin\",\"BasicTypeaheadRenderer\",\"CSS\",\"DOM\",\"Parent\",\"$\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"BasicTypeaheadRenderer\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Parent\"), m = b(\"$\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\");\n    function p(q, r) {\n        this.element = this.JSBNG__content = m(q);\n        this.showBadges = r.showBadges;\n        n(this, r);\n    };\n;\n    n(p.prototype, h, {\n        events: [\"highlight\",\"render\",\"reset\",\"select\",\"beforeRender\",\"next\",\"prev\",],\n        renderer: i,\n        autoSelect: false,\n        ignoreMouseover: false,\n        init: function() {\n            this.init = o;\n            this.initializeEvents();\n            this.reset();\n        },\n        initializeEvents: function() {\n            g.listen(this.element, {\n                mouseup: this.mouseup.bind(this),\n                mouseover: this.mouseover.bind(this)\n            });\n        },\n        setTypeahead: function(q) {\n            this.typeahead = q;\n        },\n        setAccessibilityControlElement: function(q) {\n            this.accessibilityElement = q;\n        },\n        getElement: function() {\n            return this.element;\n        },\n        mouseup: function(JSBNG__event) {\n            if (((JSBNG__event.button != 2))) {\n                this.select(true);\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        mouseover: function(JSBNG__event) {\n            if (this.ignoreMouseover) {\n                this.ignoreMouseover = false;\n                return;\n            }\n        ;\n        ;\n            if (this.visible) {\n                this.highlight(this.getIndex(JSBNG__event));\n            }\n        ;\n        ;\n        },\n        reset: function(q) {\n            if (!q) {\n                this.disableAutoSelect = false;\n            }\n        ;\n        ;\n            this.justRendered = false;\n            this.justShown = false;\n            this.index = -1;\n            this.items = [];\n            this.results = [];\n            this.value = \"\";\n            this.JSBNG__content.innerHTML = \"\";\n            this.inform(\"reset\");\n            return this;\n        },\n        getIndex: function(JSBNG__event) {\n            return this.items.indexOf(l.byTag(JSBNG__event.getTarget(), \"li\"));\n        },\n        JSBNG__getSelection: function() {\n            var q = ((this.results[this.index] || null));\n            return ((this.visible ? q : null));\n        },\n        isEmpty: function() {\n            return !this.results.length;\n        },\n        isVisible: function() {\n            return this.visible;\n        },\n        show: function() {\n            j.show(this.element);\n            if (((this.results && this.results.length))) {\n                if (((((this.autoSelect && this.accessibilityElement)) && this.selected))) {\n                    this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n                }\n            ;\n            }\n        ;\n        ;\n            ((this.accessibilityElement && this.accessibilityElement.setAttribute(\"aria-expanded\", \"true\")));\n            this.visible = true;\n            return this;\n        },\n        hide: function() {\n            j.hide(this.element);\n            if (this.accessibilityElement) {\n                this.accessibilityElement.setAttribute(\"aria-expanded\", \"false\");\n                this.accessibilityElement.removeAttribute(\"aria-activedescendant\");\n            }\n        ;\n        ;\n            this.visible = false;\n            return this;\n        },\n        render: function(q, r, s) {\n            this.value = q;\n            if (!r.length) {\n                ((this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\")));\n                this.reset(true);\n                return;\n            }\n        ;\n        ;\n            this.justRendered = true;\n            if (!this.results.length) {\n                this.justShown = true;\n            }\n        ;\n        ;\n            var t = {\n                results: r,\n                value: q\n            };\n            this.inform(\"beforeRender\", t);\n            r = t.results;\n            var u = this.getDefaultIndex(r);\n            if (((((this.index > 0)) && ((this.index !== this.getDefaultIndex(this.results)))))) {\n                var v = this.results[this.index];\n                for (var w = 0, x = r.length; ((w < x)); ++w) {\n                    if (((v.uid == r[w].uid))) {\n                        u = w;\n                        break;\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            this.results = r;\n            k.setContent(this.JSBNG__content, this.buildResults(r));\n            this.items = this.getItems();\n            this.highlight(u, false);\n            this.inform(\"render\", r);\n        },\n        getItems: function() {\n            return k.scry(this.JSBNG__content, \"li\");\n        },\n        buildResults: function(q) {\n            var r, s = null;\n            if (((typeof this.renderer == \"function\"))) {\n                r = this.renderer;\n                s = ((this.renderer.className || \"\"));\n            }\n             else {\n                r = a.TypeaheadRenderers[this.renderer];\n                s = this.renderer;\n            }\n        ;\n        ;\n            r = r.bind(this);\n            var t = this.showBadges, u = q.map(function(w, x) {\n                if (!t) {\n                    w.verified = null;\n                }\n            ;\n            ;\n                var y = ((w.node || r(w, x)));\n                y.setAttribute(\"role\", \"option\");\n                return y;\n            }), v = k.create(\"ul\", {\n                className: s,\n                id: ((\"typeahead_list_\" + ((this.typeahead ? k.getID(this.typeahead) : k.getID(this.element)))))\n            }, u);\n            v.setAttribute(\"role\", \"listbox\");\n            return v;\n        },\n        getDefaultIndex: function(q) {\n            var r = ((this.autoSelect && !this.disableAutoSelect));\n            return ((((((this.index < 0)) && !r)) ? -1 : 0));\n        },\n        next: function() {\n            this.highlight(((this.index + 1)));\n            this.inform(\"next\", this.selected);\n        },\n        prev: function() {\n            this.highlight(((this.index - 1)));\n            this.inform(\"prev\", this.selected);\n        },\n        getItemText: function(q) {\n            var r = \"\";\n            if (q) {\n                r = q.getAttribute(\"aria-label\");\n                if (!r) {\n                    r = k.getText(q);\n                    q.setAttribute(\"aria-label\", r);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return r;\n        },\n        setIsViewingSelectedItems: function(q) {\n            this.viewingSelected = q;\n            return this;\n        },\n        getIsViewingSelectedItems: function() {\n            return this.viewingSelected;\n        },\n        highlight: function(q, r) {\n            var s = true;\n            if (this.selected) {\n                j.removeClass(this.selected, \"selected\");\n                this.selected.setAttribute(\"aria-selected\", \"false\");\n            }\n        ;\n        ;\n            if (((q > ((this.items.length - 1))))) {\n                q = -1;\n            }\n             else if (((q < -1))) {\n                q = ((this.items.length - 1));\n            }\n            \n        ;\n        ;\n            if (((((q >= 0)) && ((q < this.items.length))))) {\n                if (((this.selected && ((this.getItemText(this.items[q]) === this.getItemText(this.selected)))))) {\n                    s = false;\n                }\n            ;\n            ;\n                this.selected = this.items[q];\n                j.addClass(this.selected, \"selected\");\n                this.selected.setAttribute(\"aria-selected\", \"true\");\n                if (this.accessibilityElement) {\n                    (function() {\n                        this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n                    }).bind(this).defer();\n                }\n            ;\n            ;\n            }\n             else ((this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\")));\n        ;\n        ;\n            this.index = q;\n            this.disableAutoSelect = ((q == -1));\n            var t = ((q !== -1)), u = this.getItemText(this.selected);\n            if (((((((((q !== -1)) && this.isVisible())) && u)) && this.autoSelect))) {\n                if (this.justShown) {\n                    this.justRendered = false;\n                    this.justShown = false;\n                    t = false;\n                }\n                 else if (((s && this.justRendered))) {\n                    this.justRendered = false;\n                    t = false;\n                }\n                \n            ;\n            }\n        ;\n        ;\n            if (((r !== false))) {\n                this.inform(\"highlight\", {\n                    index: q,\n                    selected: this.results[q],\n                    element: this.selected\n                });\n            }\n        ;\n        ;\n        },\n        select: function(q) {\n            var r = this.index, s = this.results[r], t = this.element.getAttribute(\"id\");\n            if (s) {\n                this.inform(\"select\", {\n                    index: r,\n                    clicked: !!q,\n                    selected: s,\n                    id: t,\n                    query: this.value\n                });\n                this.inform(\"afterSelect\");\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = p;\n});\n__d(\"BucketedTypeaheadView\", [\"Class\",\"DOM\",\"tx\",\"TypeaheadView\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"tx\"), j = b(\"TypeaheadView\"), k = b(\"copyProperties\");\n    function l(m, n) {\n        this.parent.construct(this, m, n);\n    };\n;\n    g.extend(l, j);\n    k(l.prototype, {\n        render: function(m, n, o) {\n            n = this.buildBuckets(m, n);\n            return this.parent.render(m, n, o);\n        },\n        highlight: function(m, n) {\n            if (((((m == -1)) && ((this.index !== 0))))) {\n                m = this.index;\n            }\n        ;\n        ;\n            while (((((((m >= 0)) && ((m < this.items.length)))) && !this.isHighlightable(this.results[m])))) {\n                m = ((m + 1));\n            ;\n            };\n        ;\n            this.parent.highlight(m, n);\n        },\n        buildBuckets: function(m, n) {\n            if (((((!this.typeObjects || !n)) || !n.length))) {\n                return n;\n            }\n        ;\n        ;\n            var o = [], p = {\n            };\n            for (var q = 0; ((q < n.length)); ++q) {\n                var r = n[q], s = ((r.render_type || r.type));\n                if (!p.hasOwnProperty(s)) {\n                    p[s] = o.length;\n                    o.push([this.buildBucketHeader(s),]);\n                }\n            ;\n            ;\n                r.classNames = s;\n                r.groupIndex = p[s];\n                r.indexInGroup = ((o[r.groupIndex].length - 1));\n                o[r.groupIndex].push(r);\n            };\n        ;\n            {\n                var fin177keys = ((window.top.JSBNG_Replay.forInKeys)((this.typeObjects))), fin177i = (0);\n                (0);\n                for (; (fin177i < fin177keys.length); (fin177i++)) {\n                    ((s) = (fin177keys[fin177i]));\n                    {\n                        if (((!p.hasOwnProperty(s) && this.typeObjects[s].show_always))) {\n                            p[s] = o.length;\n                            o.push([this.buildBucketHeader(s),]);\n                            r = this.buildNoResultsEntry();\n                            r.classNames = r.type;\n                            r.groupIndex = p[s];\n                            r.indexInGroup = ((o[r.groupIndex].length - 1));\n                            o[r.groupIndex].push(r);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var t = [];\n            if (this.typeObjectsOrder) {\n                for (var u = 0; ((u < this.typeObjectsOrder.length)); ++u) {\n                    var v = this.typeObjectsOrder[u];\n                    if (p.hasOwnProperty(v)) {\n                        t = t.concat(o[p[v]]);\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n             else for (var w = 0; ((w < o.length)); ++w) {\n                t = t.concat(o[w]);\n            ;\n            }\n        ;\n        ;\n            return t;\n        },\n        buildNoResultsEntry: function() {\n            return {\n                uid: \"disabled_result\",\n                type: \"disabled_result\",\n                text: \"No Results\"\n            };\n        },\n        buildBucketHeader: function(m) {\n            var n = this.typeObjects[m];\n            if (((n === undefined))) {\n                throw new Error(((((m + \" is undefined in \")) + JSON.stringify(this.typeObjects))));\n            }\n        ;\n        ;\n            if (n.markup) {\n                n.text = n.markup;\n                delete n.markup;\n            }\n        ;\n        ;\n            return this.typeObjects[m];\n        },\n        buildResults: function(m) {\n            var n = this.parent.buildResults(m);\n            if (this.typeObjects) {\n                return h.create(\"div\", {\n                    className: \"bucketed\"\n                }, [n,]);\n            }\n             else return n\n        ;\n        },\n        isHighlightable: function(m) {\n            return ((((m.type != \"header\")) && ((m.type != \"disabled_result\"))));\n        },\n        select: function(m) {\n            var n = this.results[this.index];\n            if (((n && this.isHighlightable(n)))) {\n                this.parent.select(m);\n            }\n        ;\n        ;\n        },\n        normalizeIndex: function(m) {\n            var n = this.results.length;\n            if (((n === 0))) {\n                return -1;\n            }\n             else if (((m < -1))) {\n                return ((((((m % n)) + n)) + 1));\n            }\n             else if (((m >= n))) {\n                return ((((m % n)) - 1));\n            }\n             else return m\n            \n            \n        ;\n        },\n        getDefaultIndex: function(m) {\n            var n = ((this.autoSelect && !this.disableAutoSelect));\n            if (((((this.index < 0)) && !n))) {\n                return -1;\n            }\n        ;\n        ;\n            if (((m.length === 0))) {\n                return -1;\n            }\n        ;\n        ;\n            var o = 0;\n            while (((!this.isHighlightable(m) && ((o < m.length))))) {\n                o++;\n            ;\n            };\n        ;\n            return o;\n        },\n        prev: function() {\n            var m = this.results[this.normalizeIndex(((this.index - 1)))];\n            while (((m && !this.isHighlightable(m)))) {\n                this.index = this.normalizeIndex(((this.index - 1)));\n                m = this.results[this.normalizeIndex(((this.index - 1)))];\n            };\n        ;\n            return this.parent.prev();\n        },\n        next: function() {\n            var m = this.results[this.normalizeIndex(((this.index + 1)))];\n            while (((m && !this.isHighlightable(m)))) {\n                this.index = this.normalizeIndex(((this.index + 1)));\n                m = this.results[this.normalizeIndex(((this.index + 1)))];\n            };\n        ;\n            return this.parent.next();\n        }\n    });\n    e.exports = l;\n});\n__d(\"ContextualTypeaheadView\", [\"BucketedTypeaheadView\",\"CSS\",\"Class\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"ContextualLayerHideOnScroll\",\"DOM\",\"DOMDimensions\",\"Style\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"BucketedTypeaheadView\"), h = b(\"CSS\"), i = b(\"Class\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerAutoFlip\"), l = b(\"ContextualLayerHideOnScroll\"), m = b(\"DOM\"), n = b(\"DOMDimensions\"), o = b(\"Style\"), p = b(\"copyProperties\");\n    function q(r, s) {\n        this.parent.construct(this, r, s);\n    };\n;\n    i.extend(q, g);\n    p(q.prototype, {\n        init: function() {\n            this.initializeLayer();\n            this.parent.init();\n        },\n        initializeLayer: function() {\n            this.context = this.getContext();\n            this.wrapper = m.create(\"div\");\n            m.appendContent(this.wrapper, this.element);\n            h.addClass(this.element, \"uiContextualTypeaheadView\");\n            this.layer = new j({\n                context: this.context,\n                position: \"below\",\n                alignment: this.alignment,\n                causalElement: this.causalElement,\n                permanent: true\n            }, this.wrapper);\n            this.layer.enableBehavior(l);\n            if (((o.isFixed(this.context) || this.autoflip))) {\n                this.layer.enableBehavior(k);\n            }\n        ;\n        ;\n            this.subscribe(\"render\", this.renderLayer.bind(this));\n        },\n        show: function() {\n            if (this.minWidth) {\n                o.set(this.wrapper, \"min-width\", ((this.minWidth + \"px\")));\n            }\n             else if (this.width) {\n                o.set(this.wrapper, \"width\", ((this.width + \"px\")));\n            }\n             else o.set(this.wrapper, \"width\", ((n.getElementDimensions(this.context).width + \"px\")));\n            \n        ;\n        ;\n            var r = this.parent.show();\n            this.layer.show();\n            return r;\n        },\n        hide: function() {\n            this.layer.hide();\n            return this.parent.hide();\n        },\n        renderLayer: function() {\n            if (!this.isVisible()) {\n                return;\n            }\n        ;\n        ;\n            if (this.layer.isShown()) {\n                this.layer.updatePosition();\n            }\n             else this.layer.show();\n        ;\n        ;\n        },\n        clearText: function() {\n            this.layer.getCausalElement().value = \"\";\n        },\n        getContext: function() {\n            return this.element.parentNode;\n        }\n    });\n    e.exports = q;\n});\n__d(\"DOMClone\", [], function(a, b, c, d, e, f) {\n    var g = {\n        shallowClone: function(i) {\n            return h(i, false);\n        },\n        deepClone: function(i) {\n            return h(i, true);\n        }\n    };\n    function h(i, j) {\n        var k = i.cloneNode(j);\n        if (((typeof k.__FB_TOKEN !== \"undefined\"))) {\n            delete k.__FB_TOKEN;\n        }\n    ;\n    ;\n        return k;\n    };\n;\n    e.exports = g;\n});\n__d(\"Dcode\", [], function(a, b, c, d, e, f) {\n    var g, h = {\n    }, i = {\n        _: \"%\",\n        A: \"%2\",\n        B: \"000\",\n        C: \"%7d\",\n        D: \"%7b%22\",\n        E: \"%2c%22\",\n        F: \"%22%3a\",\n        G: \"%2c%22ut%22%3a1\",\n        H: \"%2c%22bls%22%3a\",\n        I: \"%2c%22n%22%3a%22%\",\n        J: \"%22%3a%7b%22i%22%3a0%7d\",\n        K: \"%2c%22pt%22%3a0%2c%22vis%22%3a\",\n        L: \"%2c%22ch%22%3a%7b%22h%22%3a%22\",\n        M: \"%7b%22v%22%3a2%2c%22time%22%3a1\",\n        N: \".channel%22%2c%22sub%22%3a%5b\",\n        O: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b\",\n        P: \"%2c%22ud%22%3a100%2c%22lc%22%3a0\",\n        Q: \"%5d%2c%22f%22%3anull%2c%22uct%22%3a\",\n        R: \".channel%22%2c%22sub%22%3a%5b1%5d\",\n        S: \"%22%2c%22m%22%3a0%7d%2c%7b%22i%22%3a\",\n        T: \"%2c%22blc%22%3a1%2c%22snd%22%3a1%2c%22ct%22%3a\",\n        U: \"%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n        V: \"%2c%22blc%22%3a0%2c%22snd%22%3a0%2c%22ct%22%3a\",\n        W: \"%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\",\n        X: \"%2c%22ri%22%3a0%7d%2c%22state%22%3a%7b%22p%22%3a0%2c%22ut%22%3a1\",\n        Y: \"%2c%22pt%22%3a0%2c%22vis%22%3a1%2c%22bls%22%3a0%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n        Z: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b%5d%2c%22f%22%3anull%2c%22uct%22%3a0%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\"\n    };\n    (function() {\n        var k = [];\n        {\n            var fin178keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin178i = (0);\n            var l;\n            for (; (fin178i < fin178keys.length); (fin178i++)) {\n                ((l) = (fin178keys[fin178i]));\n                {\n                    h[i[l]] = l;\n                    k.push(i[l]);\n                };\n            };\n        };\n    ;\n        k.reverse();\n        g = new RegExp(k.join(\"|\"), \"g\");\n    })();\n    var j = {\n        encode: function(k) {\n            return encodeURIComponent(k).replace(/([_A-Z])|%../g, function(l, m) {\n                return ((m ? ((\"%\" + m.charCodeAt(0).toString(16))) : l));\n            }).toLowerCase().replace(g, function(l) {\n                return h[l];\n            });\n        },\n        decode: function(k) {\n            return decodeURIComponent(k.replace(/[_A-Z]/g, function(l) {\n                return i[l];\n            }));\n        }\n    };\n    e.exports = j;\n});\n__d(\"FileInput\", [\"JSBNG__Event\",\"ArbiterMixin\",\"DOM\",\"DOMClone\",\"Focus\",\"UserAgent\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"DOMClone\"), k = b(\"Focus\"), l = b(\"UserAgent\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = l.ie();\n    function p(q, r, s) {\n        this.container = q;\n        this.control = r;\n        this.input = s;\n        var t = i.scry(this.container, \"a\")[0];\n        ((t && t.removeAttribute(\"href\")));\n        var u = i.create(\"div\", {\n            className: \"_3jk\"\n        }, this.input);\n        i.appendContent(this.control, u);\n        this._initListeners();\n    };\n;\n    m(p.prototype, h, {\n        getValue: function() {\n            return this.input.value;\n        },\n        getInput: function() {\n            return this.input;\n        },\n        clear: function() {\n            if (o) {\n                var q = j.deepClone(this.input);\n                i.replace(this.input, q);\n                this.input = q;\n                while (this._listeners.length) {\n                    this._listeners.pop().remove();\n                ;\n                };\n            ;\n                this._initListeners();\n            }\n             else {\n                this.input.value = \"\";\n                this.input.files = null;\n            }\n        ;\n        ;\n        },\n        _initListeners: function() {\n            k.relocate(this.input, this.control);\n            this._listeners = [g.listen(this.input, \"change\", this._handleChange.bind(this)),];\n        },\n        _handleChange: function(JSBNG__event) {\n            this.inform(\"change\", JSBNG__event);\n            var q = this.input.form;\n            if (((q && ((o < 9))))) {\n                g.fire(q, \"change\", JSBNG__event);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = p;\n});\n__d(\"Poller\", [\"ArbiterMixin\",\"AsyncRequest\",\"Cookie\",\"Env\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"Cookie\"), j = b(\"Env\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n    function m(p) {\n        this._config = k({\n            clearOnQuicklingEvents: true,\n            setupRequest: l,\n            interval: null,\n            maxRequests: Infinity,\n            dontStart: false\n        }, p);\n        if (!this._config.dontStart) {\n            this.start();\n        }\n    ;\n    ;\n    };\n;\n    m.MIN_INTERVAL = 2000;\n    k(m.prototype, g, {\n        start: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_739), function() {\n            if (this._polling) {\n                return this;\n            }\n        ;\n        ;\n            this._requests = 0;\n            this.request();\n            return this;\n        })),\n        JSBNG__stop: function() {\n            this._cancelRequest();\n            return this;\n        },\n        mute: function() {\n            this._muted = true;\n            return this;\n        },\n        resume: function() {\n            if (this._muted) {\n                this._muted = false;\n                if (((!this._handle && this._polling))) {\n                    return this.request();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return this;\n        },\n        skip: function() {\n            this._skip = true;\n            return this;\n        },\n        reset: function() {\n            return this.JSBNG__stop().start();\n        },\n        request: function() {\n            this._cancelRequest();\n            this._polling = true;\n            if (!o()) {\n                return this._done();\n            }\n        ;\n        ;\n            if (this._muted) {\n                return this;\n            }\n        ;\n        ;\n            if (((++this._requests > this._config.maxRequests))) {\n                return this._done();\n            }\n        ;\n        ;\n            var p = new h(), q = false;\n            p.setInitialHandler(function() {\n                return !q;\n            });\n            this._cancelRequest = function() {\n                q = true;\n                this._cleanup();\n            }.bind(this);\n            p.setFinallyHandler(n.bind(this));\n            p.setInitialHandler = l;\n            p.setFinallyHandler = l;\n            this._config.setupRequest(p, this);\n            if (this._skip) {\n                this._skip = false;\n                n.bind(this).defer();\n            }\n             else p.send();\n        ;\n        ;\n            return this;\n        },\n        isPolling: function() {\n            return this._polling;\n        },\n        isMuted: function() {\n            return this._muted;\n        },\n        JSBNG__setInterval: function(p) {\n            if (p) {\n                this._config.interval = p;\n                this.start();\n            }\n        ;\n        ;\n        },\n        getInterval: function() {\n            return this._config.interval;\n        },\n        _cleanup: function() {\n            if (this._handle) {\n                JSBNG__clearTimeout(this._handle);\n            }\n        ;\n        ;\n            this._handle = null;\n            this._cancelRequest = l;\n            this._polling = false;\n        },\n        _done: function() {\n            this._cleanup();\n            this.inform(\"done\", {\n                sender: this\n            });\n            return this;\n        },\n        _config: null,\n        _requests: 0,\n        _muted: false,\n        _polling: false,\n        _skip: false,\n        _cancelRequest: l\n    });\n    function n() {\n        if (!this._polling) {\n            return;\n        }\n    ;\n    ;\n        if (((this._requests < this._config.maxRequests))) {\n            var p = this._config.interval;\n            p = ((((typeof p === \"function\")) ? p(this._requests) : p));\n            this._handle = this.request.bind(this).defer(((((p > m.MIN_INTERVAL)) ? p : m.MIN_INTERVAL)), this._config.clearOnQuicklingEvents);\n        }\n         else this._done();\n    ;\n    ;\n    };\n;\n    function o() {\n        return ((j.user == i.get(\"c_user\")));\n    };\n;\n    e.exports = m;\n});\n__d(\"SystemEvents\", [\"Arbiter\",\"Env\",\"ErrorUtils\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"ErrorUtils\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = new g(), m = [], n = 1000;\n    JSBNG__setInterval(((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757), function() {\n        for (var w = 0; ((w < m.length)); w++) {\n            m[w]();\n        ;\n        };\n    ;\n    })), n, false);\n    function o() {\n        return ((((/c_user=(\\d+)/.test(JSBNG__document.cookie) && RegExp.$1)) || 0));\n    };\n;\n    var p = h.user, q = JSBNG__navigator.onLine;\n    function r() {\n        if (!q) {\n            q = true;\n            l.inform(l.ONLINE, q);\n        }\n    ;\n    ;\n    };\n;\n    function s() {\n        if (q) {\n            q = false;\n            l.inform(l.ONLINE, q);\n        }\n    ;\n    ;\n    };\n;\n    if (j.ie()) {\n        if (((j.ie() >= 8))) {\n            window.JSBNG__attachEvent(\"JSBNG__onload\", function() {\n                JSBNG__document.body.JSBNG__ononline = r;\n                JSBNG__document.body.JSBNG__onoffline = s;\n            });\n        }\n         else m.push(function() {\n            ((JSBNG__navigator.onLine ? r : s))();\n        });\n    ;\n    ;\n    }\n     else if (window.JSBNG__addEventListener) {\n        if (!j.chrome()) {\n            window.JSBNG__addEventListener(\"online\", r, false);\n            window.JSBNG__addEventListener(\"offline\", s, false);\n        }\n    ;\n    }\n    \n;\n;\n    var t = p;\n    m.push(function() {\n        var w = o();\n        if (((t != w))) {\n            l.inform(l.USER, w);\n            t = w;\n        }\n    ;\n    ;\n    });\n    var u = JSBNG__Date.now();\n    function v() {\n        var w = JSBNG__Date.now(), x = ((w - u)), y = ((((x < 0)) || ((x > 10000))));\n        u = w;\n        if (y) {\n            l.inform(l.TIME_TRAVEL, x);\n        }\n    ;\n    ;\n        return y;\n    };\n;\n    m.push(v);\n    m.push(function() {\n        if (((window.JSBNG__onerror != i.JSBNG__onerror))) {\n            window.JSBNG__onerror = i.JSBNG__onerror;\n        }\n    ;\n    ;\n    });\n    k(l, {\n        USER: \"SystemEvents/USER\",\n        ONLINE: \"SystemEvents/ONLINE\",\n        TIME_TRAVEL: \"SystemEvents/TIME_TRAVEL\",\n        isPageOwner: function(w) {\n            return ((((w || o())) == p));\n        },\n        isOnline: function() {\n            return ((j.chrome() || q));\n        },\n        checkTimeTravel: v\n    });\n    e.exports = l;\n});\n__d(\"Typeahead\", [\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"DataStore\",\"JSBNG__Event\",\"Parent\",\"Run\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"BehaviorsMixin\"), i = b(\"DOM\"), j = b(\"DataStore\"), k = b(\"JSBNG__Event\"), l = b(\"Parent\"), m = b(\"Run\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\"), p = b(\"ge\");\n    function q(r, s, t, u) {\n        this.args = {\n            data: r,\n            view: s,\n            core: t\n        };\n        j.set(u, \"Typeahead\", this);\n        this.element = u;\n    };\n;\n    q.getInstance = function(r) {\n        var s = l.byClass(r, \"uiTypeahead\");\n        return ((s ? j.get(s, \"Typeahead\") : null));\n    };\n    n(q.prototype, g, h, {\n        init: function(r) {\n            this.init = o;\n            this.getCore();\n            this.getView().setAccessibilityControlElement(this.getCore().getElement());\n            this.proxyEvents();\n            this.initBehaviors(((r || [])));\n            this.inform(\"init\", this);\n            this.data.bootstrap();\n            this.core.JSBNG__focus();\n        },\n        getData: function() {\n            if (!this.data) {\n                var r = this.args.data;\n                this.data = r;\n                this.data.init();\n            }\n        ;\n        ;\n            return this.data;\n        },\n        getView: function() {\n            if (!this.view) {\n                var r = this.args.view, s = ((r.node || p(r.node_id)));\n                if (!s) {\n                    s = i.create(\"div\", {\n                        className: \"uiTypeaheadView\"\n                    });\n                    i.appendContent(this.element, s);\n                }\n            ;\n            ;\n                if (((typeof r.ctor === \"string\"))) {\n                    this.view = new window[r.ctor](s, ((r.options || {\n                    })));\n                }\n                 else this.view = new r.ctor(s, ((r.options || {\n                })));\n            ;\n            ;\n                this.view.init();\n                this.view.setTypeahead(this.element);\n            }\n        ;\n        ;\n            return this.view;\n        },\n        getCore: function() {\n            if (!this.core) {\n                var r = this.args.core;\n                if (((typeof r.ctor === \"string\"))) {\n                    this.core = new window[r.ctor](((r.options || {\n                    })));\n                }\n                 else this.core = new r.ctor(((r.options || {\n                })));\n            ;\n            ;\n                this.core.init(this.getData(), this.getView(), this.getElement());\n            }\n        ;\n        ;\n            return this.core;\n        },\n        getElement: function() {\n            return this.element;\n        },\n        swapData: function(r) {\n            var s = this.core;\n            this.data = this.args.data = r;\n            r.init();\n            if (s) {\n                s.data = r;\n                s.initData();\n                s.reset();\n            }\n        ;\n        ;\n            r.bootstrap();\n            return r;\n        },\n        proxyEvents: function() {\n            [this.data,this.view,this.core,].forEach(function(r) {\n                r.subscribe(r.events, this.inform.bind(this));\n            }, this);\n        },\n        initBehaviors: function(r) {\n            r.forEach(function(s) {\n                if (((typeof s === \"string\"))) {\n                    if (((a.TypeaheadBehaviors && a.TypeaheadBehaviors[s]))) {\n                        a.TypeaheadBehaviors[s](this);\n                    }\n                     else m.onLoad(function() {\n                        if (a.TypeaheadBehaviors) {\n                            ((a.TypeaheadBehaviors[s] || o))(this);\n                        }\n                    ;\n                    ;\n                    }.bind(this));\n                ;\n                ;\n                }\n                 else this.enableBehavior(s);\n            ;\n            ;\n            }, this);\n        }\n    });\n    q.initNow = function(r, s, t) {\n        if (t) {\n            t.init(r);\n        }\n    ;\n    ;\n        r.init(s);\n    };\n    q.init = function(r, s, t, u) {\n        if (!i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n            r = ((i.scry(r, \"input\")[0] || i.scry(r, \"textarea\")[0]));\n        }\n    ;\n    ;\n        var v = false;\n        try {\n            v = ((JSBNG__document.activeElement === r));\n        } catch (w) {\n        \n        };\n    ;\n        if (v) {\n            q.initNow(s, t, u);\n        }\n         else var x = k.listen(r, \"JSBNG__focus\", function() {\n            q.initNow(s, t, u);\n            x.remove();\n        })\n    ;\n    };\n    e.exports = q;\n});\n__d(\"TypeaheadCore\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"Focus\",\"Input\",\"InputSelection\",\"Keys\",\"StickyPlaceholderInput\",\"UserAgent\",\"bind\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"Input\"), n = b(\"InputSelection\"), o = b(\"Keys\"), p = b(\"StickyPlaceholderInput\"), q = b(\"UserAgent\"), r = b(\"bind\"), s = b(\"copyProperties\"), t = b(\"emptyFunction\");\n    function u(v) {\n        s(this, v);\n    };\n;\n    s(u.prototype, i, {\n        events: [\"JSBNG__blur\",\"JSBNG__focus\",\"click\",\"unselect\",\"loading\",],\n        keepFocused: true,\n        resetOnSelect: false,\n        resetOnKeyup: true,\n        setValueOnSelect: false,\n        queryTimeout: 250,\n        preventFocusChangeOnTab: false,\n        init: function(v, w, x) {\n            this.init = t;\n            this.data = v;\n            this.view = w;\n            this.root = x;\n            this.initInput();\n            this.inputWrap = k.JSBNG__find(x, \"div.wrap\");\n            this.hiddenInput = k.JSBNG__find(x, \"input.hiddenInput\");\n            this.value = \"\";\n            this.nextQuery = null;\n            this.selectedText = null;\n            if (((this.setValueOnSelect && j.hasClass(this.inputWrap, \"selected\")))) {\n                this.selectedText = this.getValue();\n            }\n        ;\n        ;\n            this.initView();\n            this.initData();\n            this.initEvents();\n            this.initToggle();\n            this._exclusions = [];\n        },\n        initInput: function() {\n            this.element = k.JSBNG__find(this.root, \".textInput\");\n            var v = k.scry(this.element, \"input\")[0];\n            if (v) {\n                this.element = v;\n            }\n        ;\n        ;\n        },\n        initView: function() {\n            this.view.subscribe(\"highlight\", l.set.curry(this.element));\n            this.view.subscribe(\"select\", function(v, w) {\n                this.select(w.selected);\n            }.bind(this));\n            this.view.subscribe(\"afterSelect\", function() {\n                this.afterSelect();\n            }.bind(this));\n        },\n        initData: function() {\n            this.data.subscribe(\"respond\", function(v, w) {\n                if (((w.forceDisplay || ((((w.value == this.getValue())) && !this.element.disabled))))) {\n                    this.view.render(w.value, w.results, w.isAsync);\n                }\n            ;\n            ;\n            }.bind(this));\n            this.data.subscribe(\"activity\", function(v, w) {\n                this.fetching = w.activity;\n                if (!this.fetching) {\n                    ((this.nextQuery && this.performQuery()));\n                }\n            ;\n            ;\n                if (((this.loading != this.fetching))) {\n                    this.loading = this.fetching;\n                    this.inform(\"loading\", {\n                        loading: this.loading\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        initEvents: function() {\n            g.listen(this.view.getElement(), {\n                mouseup: this.viewMouseup.bind(this),\n                mousedown: this.viewMousedown.bind(this)\n            });\n            var v = {\n                JSBNG__blur: r(this, \"JSBNG__blur\"),\n                JSBNG__focus: r(this, \"JSBNG__focus\"),\n                click: r(this, \"click\"),\n                keyup: r(this, \"keyup\"),\n                keydown: r(this, \"keydown\")\n            };\n            if (q.firefox()) {\n                v.text = v.keyup;\n            }\n        ;\n        ;\n            if (((q.firefox() < 4))) {\n                v.keypress = v.keydown;\n                delete v.keydown;\n            }\n        ;\n        ;\n            g.listen(this.element, v);\n            g.listen(this.element, \"keypress\", r(this, \"keypress\"));\n        },\n        initToggle: function() {\n            this.subscribe(\"JSBNG__blur\", this.view.hide.bind(this.view));\n            this.subscribe(\"JSBNG__focus\", this.view.show.bind(this.view));\n        },\n        viewMousedown: function() {\n            this.selecting = true;\n        },\n        viewMouseup: function() {\n            this.selecting = false;\n        },\n        JSBNG__blur: function() {\n            if (this.selecting) {\n                this.selecting = false;\n                return;\n            }\n        ;\n        ;\n            this.inform(\"JSBNG__blur\");\n        },\n        click: function() {\n            var v = n.get(this.element);\n            if (((v.start == v.end))) {\n                this.element.select();\n            }\n        ;\n        ;\n            this.inform(\"click\");\n        },\n        JSBNG__focus: function() {\n            this.checkValue();\n            this.inform(\"JSBNG__focus\");\n        },\n        keyup: function() {\n            if (((this.resetOnKeyup && !this.getValue()))) {\n                this.view.reset();\n            }\n        ;\n        ;\n            this.checkValue();\n        },\n        keydown: function(JSBNG__event) {\n            if (((!this.view.isVisible() || this.view.isEmpty()))) {\n                this.checkValue.bind(this).defer();\n                return;\n            }\n        ;\n        ;\n            switch (g.getKeyCode(JSBNG__event)) {\n              case o.TAB:\n                this.handleTab(JSBNG__event);\n                return;\n              case o.UP:\n                this.view.prev();\n                break;\n              case o.DOWN:\n                this.view.next();\n                break;\n              case o.ESC:\n                this.view.reset();\n                break;\n              default:\n                this.checkValue.bind(this).defer();\n                return;\n            };\n        ;\n            JSBNG__event.kill();\n        },\n        keypress: function(JSBNG__event) {\n            if (((this.view.JSBNG__getSelection() && ((g.getKeyCode(JSBNG__event) == o.RETURN))))) {\n                this.view.select();\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        handleTab: function(JSBNG__event) {\n            if (this.preventFocusChangeOnTab) {\n                if (this.view.JSBNG__getSelection()) {\n                    JSBNG__event.kill();\n                }\n                 else JSBNG__event.prevent();\n            ;\n            }\n        ;\n        ;\n            this.view.select();\n        },\n        select: function(v) {\n            if (((v && this.setValueOnSelect))) {\n                this.setValue(v.text);\n                this.setHiddenValue(v.uid);\n                this.selectedText = v.text;\n                j.addClass(this.inputWrap, \"selected\");\n            }\n        ;\n        ;\n        },\n        afterSelect: function() {\n            ((this.keepFocused ? l.set(this.element) : this.element.JSBNG__blur()));\n            ((this.resetOnSelect ? this.reset() : this.view.reset()));\n        },\n        unselect: function() {\n            if (this.setValueOnSelect) {\n                this.selectedText = null;\n                j.removeClass(this.inputWrap, \"selected\");\n            }\n        ;\n        ;\n            this.setHiddenValue();\n            this.inform(\"unselect\", this);\n        },\n        setEnabled: function(v) {\n            var w = ((v === false));\n            this.element.disabled = w;\n            j.conditionClass(this.root, \"uiTypeaheadDisabled\", w);\n        },\n        reset: function() {\n            this.unselect();\n            this.setValue();\n            ((!this.keepFocused && m.reset(this.element)));\n            this.view.reset();\n            this.inform(\"reset\");\n        },\n        getElement: function() {\n            return this.element;\n        },\n        setExclusions: function(v) {\n            this._exclusions = v;\n        },\n        getExclusions: function() {\n            return this._exclusions;\n        },\n        setValue: function(v) {\n            this.value = this.nextQuery = ((v || \"\"));\n            m.setValue(this.element, this.value);\n            p.update(this.element);\n        },\n        setHiddenValue: function(v) {\n            this.hiddenInput.value = ((((v || ((v === 0)))) ? v : \"\"));\n            h.inform(\"Form/change\", {\n                node: this.hiddenInput\n            });\n        },\n        getValue: function() {\n            return m.getValue(this.element);\n        },\n        getHiddenValue: function() {\n            return ((this.hiddenInput.value || \"\"));\n        },\n        checkValue: function() {\n            var v = this.getValue();\n            if (((v == this.value))) {\n                return;\n            }\n        ;\n        ;\n            if (((this.selectedText && ((this.selectedText != v))))) {\n                this.unselect();\n            }\n        ;\n        ;\n            var w = JSBNG__Date.now(), x = ((w - this.time));\n            this.time = w;\n            this.value = this.nextQuery = v;\n            this.performQuery(x);\n        },\n        performQuery: function(v) {\n            if (this.selectedText) {\n                return;\n            }\n        ;\n        ;\n            v = ((v || 0));\n            if (((this.fetching && ((v < this.queryTimeout))))) {\n                this.data.query(this.nextQuery, true, this._exclusions, v);\n            }\n             else {\n                this.data.query(this.nextQuery, false, this._exclusions, v);\n                this.nextQuery = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = u;\n});\n__d(\"setIntervalAcrossTransitions\", [], function(a, b, c, d, e, f) {\n    function g(h, i) {\n        return JSBNG__setInterval(h, i, false);\n    };\n;\n    e.exports = g;\n});\n__d(\"PresenceCookieManager\", [\"Cookie\",\"Dcode\",\"ErrorUtils\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"URI\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"Dcode\"), i = b(\"ErrorUtils\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"PresenceUtil\"), m = b(\"URI\"), n = b(\"PresenceInitialData\"), o = n.cookieVersion, p = n.dictEncode, q = \"presence\", r = {\n    }, s = null, t = null, u = k.create(\"presence_cookie\");\n    function v() {\n        try {\n            var z = g.get(q);\n            if (((s !== z))) {\n                s = z;\n                t = null;\n                if (((z && ((z.charAt(0) == \"E\"))))) {\n                    z = h.decode(z.substring(1));\n                }\n            ;\n            ;\n                if (z) {\n                    t = JSON.parse(z);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((t && ((!t.user || ((t.user === j.user))))))) {\n                return t;\n            }\n        ;\n        ;\n        } catch (y) {\n            u.warn(\"getcookie_error\");\n        };\n    ;\n        return null;\n    };\n;\n    function w() {\n        return parseInt(((JSBNG__Date.now() / 1000)), 10);\n    };\n;\n    var x = {\n        register: function(y, z) {\n            r[y] = z;\n        },\n        store: function() {\n            var y = v();\n            if (((((y && y.v)) && ((o < y.v))))) {\n                return;\n            }\n        ;\n        ;\n            var z = {\n                v: o,\n                time: w(),\n                user: j.user\n            };\n            {\n                var fin179keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin179i = (0);\n                var aa;\n                for (; (fin179i < fin179keys.length); (fin179i++)) {\n                    ((aa) = (fin179keys[fin179i]));\n                    {\n                        z[aa] = i.applyWithGuard(r[aa], r, [((y && y[aa])),], function(ea) {\n                            ea.presence_subcookie = aa;\n                        });\n                    ;\n                    };\n                };\n            };\n        ;\n            var ba = JSON.stringify(z);\n            if (p) {\n                ba = ((\"E\" + h.encode(ba)));\n            }\n        ;\n        ;\n            if (l.hasUserCookie()) {\n                var ca = ba.length;\n                if (((ca > 1024))) {\n                    u.warn(\"big_cookie\", ca);\n                }\n            ;\n            ;\n                var da = ((m.getRequestURI(false).isSecure() && !!g.get(\"csm\")));\n                g.set(q, ba, null, null, da);\n            }\n        ;\n        ;\n        },\n        clear: function() {\n            g.clear(q);\n        },\n        getSubCookie: function(y) {\n            var z = v();\n            if (!z) {\n                return null;\n            }\n        ;\n        ;\n            return z[y];\n        }\n    };\n    e.exports = x;\n});\n__d(\"PresenceState\", [\"Arbiter\",\"ErrorUtils\",\"JSLogger\",\"PresenceCookieManager\",\"copyProperties\",\"debounceAcrossTransitions\",\"setIntervalAcrossTransitions\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"JSLogger\"), j = b(\"PresenceCookieManager\"), k = b(\"copyProperties\"), l = b(\"debounceAcrossTransitions\"), m = b(\"setIntervalAcrossTransitions\"), n = b(\"PresenceInitialData\"), o = ((n.cookiePollInterval || 2000)), p = [], q = [], r = null, s = null, t = 0, u = null, v = 0, w = [\"sb2\",\"t2\",\"lm2\",\"uct2\",\"tr\",\"tw\",\"at\",\"wml\",], x = i.create(\"presence_state\");\n    function y() {\n        return j.getSubCookie(\"state\");\n    };\n;\n    function z() {\n        t = JSBNG__Date.now();\n        j.store();\n        da(s);\n    };\n;\n    var aa = l(z, 0);\n    function ba(ia) {\n        if (((((((((typeof ia == \"undefined\")) || isNaN(ia))) || ((ia == Number.POSITIVE_INFINITY)))) || ((ia == Number.NEGATIVE_INFINITY))))) {\n            ia = 0;\n        }\n    ;\n    ;\n        return ia;\n    };\n;\n    function ca(ia) {\n        var ja = {\n        };\n        if (ia) {\n            w.forEach(function(ma) {\n                ja[ma] = ia[ma];\n            });\n            if (((t < ia.ut))) {\n                x.error(\"new_cookie\", {\n                    cookie_time: ia.ut,\n                    local_time: t\n                });\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        ja.ut = t;\n        for (var ka = 0, la = p.length; ((ka < la)); ka++) {\n            h.applyWithGuard(p[ka], null, [ja,]);\n        ;\n        };\n    ;\n        s = ja;\n        return s;\n    };\n;\n    function da(ia) {\n        v++;\n        t = ba(ia.ut);\n        if (!r) {\n            r = m(ga, o);\n        }\n    ;\n    ;\n        s = ia;\n        if (((u === null))) {\n            u = ia;\n        }\n    ;\n    ;\n        for (var ja = 0, ka = q.length; ((ja < ka)); ja++) {\n            h.applyWithGuard(q[ja], null, [ia,]);\n        ;\n        };\n    ;\n        v--;\n    };\n;\n    function ea(ia) {\n        if (((ia && ia.ut))) {\n            if (((t < ia.ut))) {\n                return true;\n            }\n             else if (((ia.ut < t))) {\n                x.error(\"old_cookie\", {\n                    cookie_time: ia.ut,\n                    local_time: t\n                });\n            }\n            \n        ;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function fa() {\n        var ia = y();\n        if (ea(ia)) {\n            s = ia;\n        }\n    ;\n    ;\n        return s;\n    };\n;\n    function ga() {\n        var ia = y();\n        if (ea(ia)) {\n            da(ia);\n        }\n    ;\n    ;\n    };\n;\n    j.register(\"state\", ca);\n    g.subscribe(i.DUMP_EVENT, function(ia, ja) {\n        ja.presence_state = {\n            initial: k({\n            }, u),\n            state: k({\n            }, s),\n            update_time: t,\n            sync_paused: v,\n            poll_time: o\n        };\n    });\n    (function() {\n        var ia = fa();\n        if (ia) {\n            da(ia);\n        }\n         else {\n            x.debug(\"no_cookie_initial\");\n            da(ca());\n            return;\n        }\n    ;\n    ;\n    })();\n    var ha = {\n        doSync: function(ia) {\n            if (v) {\n                return;\n            }\n        ;\n        ;\n            if (ia) {\n                z();\n            }\n             else aa();\n        ;\n        ;\n        },\n        registerStateStorer: function(ia) {\n            p.push(ia);\n        },\n        registerStateLoader: function(ia) {\n            q.push(ia);\n        },\n        get: function() {\n            return fa();\n        },\n        getInitial: function() {\n            return u;\n        },\n        verifyNumber: ba\n    };\n    e.exports = ha;\n});\n__d(\"TypeaheadBestName\", [\"TypeaheadUtil\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"TypeaheadUtil\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._typeahead = j;\n    };\n;\n    i.prototype.enable = function() {\n        var j = this._typeahead.getView();\n        this._subscription = j.subscribe(\"beforeRender\", function(k, l) {\n            var m = l.value;\n            for (var n = 0; ((n < l.results.length)); ++n) {\n                var o = l.results[n];\n                if (((o.alternate_names == null))) {\n                    continue;\n                }\n            ;\n            ;\n                if (g.isQueryMatch(m, o.default_name)) {\n                    o.text = o.default_name;\n                    return;\n                }\n            ;\n            ;\n                for (var p = 0; ((p < o.alternate_names.length)); p++) {\n                    if (g.isQueryMatch(m, o.alternate_names[p])) {\n                        o.text = o.alternate_names[p];\n                        return;\n                    }\n                ;\n                ;\n                };\n            ;\n                o.text = o.default_name;\n            };\n        ;\n        });\n    };\n    i.prototype.disable = function() {\n        this._typeahead.getView().unsubscribe(this._subscription);\n        this._subscription = null;\n    };\n    h(i.prototype, {\n        _subscription: null\n    });\n    e.exports = i;\n});\n__d(\"legacy:BestNameTypeaheadBehavior\", [\"TypeaheadBestName\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadBestName\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.buildBestAvailableNames = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"TypingDetector\", [\"JSBNG__Event\",\"function-extensions\",\"ArbiterMixin\",\"Input\",\"Run\",\"copyProperties\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"ArbiterMixin\"), i = b(\"Input\"), j = b(\"Run\"), k = b(\"copyProperties\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\");\n    function n(o) {\n        this._input = o;\n        this._ignoreKeys = {\n        };\n    };\n;\n    n.INACTIVE = 0;\n    n.TYPING = 1;\n    n.QUITTING = 2;\n    k(n.prototype, h, {\n        _timeout: 7000,\n        _currentState: n.INACTIVE,\n        init: function() {\n            this.init = m;\n            this.reset();\n            g.listen(this._input, \"keyup\", this._update.bind(this));\n            j.onUnload(this._onunload.bind(this));\n        },\n        reset: function() {\n            JSBNG__clearTimeout(this._checkTimer);\n            this._checkTimer = null;\n            this._lastKeystrokeAt = null;\n            this._currentState = n.INACTIVE;\n        },\n        setIgnoreKeys: function(o) {\n            this._ignoreKeys = l(o);\n        },\n        _onunload: function() {\n            if (((this._currentState == n.TYPING))) {\n                this._transition(n.QUITTING);\n            }\n        ;\n        ;\n        },\n        _update: function(JSBNG__event) {\n            var o = g.getKeyCode(JSBNG__event), p = this._currentState;\n            if (!this._ignoreKeys[o]) {\n                if (((i.getValue(this._input).trim().length === 0))) {\n                    if (((p == n.TYPING))) {\n                        this._transition(n.INACTIVE);\n                    }\n                ;\n                ;\n                }\n                 else if (((p == n.TYPING))) {\n                    this._recordKeystroke();\n                }\n                 else if (((p == n.INACTIVE))) {\n                    this._transition(n.TYPING);\n                    this._recordKeystroke();\n                }\n                \n                \n            ;\n            }\n        ;\n        ;\n        },\n        _transition: function(o) {\n            this.reset();\n            this._currentState = o;\n            this.inform(\"change\", o);\n        },\n        _recordKeystroke: function() {\n            this._lastKeystrokeTime = JSBNG__Date.now();\n            if (!this._checkTimer) {\n                this._checkTimer = this._checkTyping.bind(this).defer(this._timeout);\n            }\n        ;\n        ;\n        },\n        _checkTyping: function() {\n            var o = ((this._lastKeystrokeTime + this._timeout)), p = JSBNG__Date.now();\n            if (((p > o))) {\n                this._transition(n.INACTIVE);\n            }\n             else {\n                JSBNG__clearTimeout(this._checkTimer);\n                this._checkTimer = this._checkTyping.bind(this).defer(((((o - p)) + 10)));\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"ClearableTypeahead\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = {\n        resetOnCloseButtonClick: function(i, j) {\n            g.listen(j, \"click\", function() {\n                var k = i.getCore();\n                k.getElement().JSBNG__focus();\n                k.reset();\n            });\n        }\n    };\n    e.exports = h;\n});\n__d(\"TypeaheadShowLoadingIndicator\", [\"CSS\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._typeahead = j;\n    };\n;\n    h(i.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._typeahead.subscribe(\"loading\", function(j, k) {\n                g.conditionClass(this._typeahead.getElement(), \"typeaheadLoading\", k.loading);\n                g.conditionClass(this._typeahead.getView().getElement(), \"typeaheadViewLoading\", k.loading);\n            }.bind(this));\n        },\n        disable: function() {\n            this._typeahead.unsubscribe(this._subscription);\n            this._subscription = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"legacy:ShowLoadingIndicatorTypeaheadBehavior\", [\"TypeaheadShowLoadingIndicator\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadShowLoadingIndicator\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.showLoadingIndicator = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"CompactTypeaheadRenderer\", [\"Badge\",\"DOM\",\"TypeaheadFacepile\",], function(a, b, c, d, e, f) {\n    var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"TypeaheadFacepile\");\n    function j(k, l) {\n        var m = [];\n        if (k.xhp) {\n            return h.create(\"li\", {\n                className: \"raw\"\n            }, k.xhp);\n        }\n    ;\n    ;\n        var n = ((k.photos || k.photo));\n        if (n) {\n            if (((n instanceof Array))) {\n                n = i.render(n);\n            }\n             else n = h.create(\"img\", {\n                alt: \"\",\n                src: n\n            });\n        ;\n        ;\n            m.push(n);\n        }\n    ;\n    ;\n        if (k.text) {\n            var o = [k.text,];\n            if (k.verified) {\n                o.push(g(\"xsmall\"));\n            }\n        ;\n        ;\n            m.push(h.create(\"span\", {\n                className: \"text\"\n            }, o));\n        }\n    ;\n    ;\n        var p = k.subtext, q = k.category;\n        if (((p || q))) {\n            var r = [];\n            ((p && r.push(p)));\n            ((((p && q)) && r.push(\" \\u00b7 \")));\n            ((q && r.push(q)));\n            m.push(h.create(\"span\", {\n                className: \"subtext\"\n            }, r));\n        }\n    ;\n    ;\n        var s = h.create(\"li\", {\n            className: ((k.type || \"\"))\n        }, m);\n        if (k.text) {\n            s.setAttribute(\"aria-label\", k.text);\n        }\n    ;\n    ;\n        return s;\n    };\n;\n    j.className = \"compact\";\n    e.exports = j;\n});\n__d(\"URLMatcher\", [], function(a, b, c, d, e, f) {\n    var g = \"!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\", h = \"\\u2000-\\u206f\\u00ab\\u00bb\\uff08\\uff09\", i = \"(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\", j = \"(?:(?:ht|f)tps?)://\", k = ((((((((\"(?:(?:\" + i)) + \"[.]){3}\")) + i)) + \")\")), l = \"\\\\[(?:(?:[A-Za-z0-9]{1,4}::?){1,7}[A-Za-z0-9]{1,4})\\\\]\", m = \"(?:\\\\b)www\\\\d{0,3}[.]\", n = ((((((\"[^\\\\s\" + g)) + h)) + \"]\")), o = ((((((((((((\"(?:(?:(?:[.:\\\\-_%@]|\" + n)) + \")*\")) + n)) + \")|\")) + l)) + \")\")), p = \"(?:[.][a-z]{2,4})\", q = \"(?::\\\\d+){0,1}\", r = \"(?=[/?#])\", s = ((((((((((((((((((((((((((((((((((((((((((((((((((((\"(?:\" + \"(?:\")) + j)) + o)) + q)) + \")|\")) + \"(?:\")) + k)) + q)) + \")|\")) + \"(?:\")) + l)) + q)) + \")|\")) + \"(?:\")) + m)) + o)) + p)) + q)) + \")|\")) + \"(?:\")) + o)) + p)) + q)) + r)) + \")\")) + \")\")), t = \"[/#?]\", u = \"\\\\([^\\\\s()\\u003C\\u003E]+\\\\)\", v = \"[^\\\\s()\\u003C\\u003E?#]+\", w = new RegExp(s, \"im\"), x = ((((((((((((((((((((((\"(?:\" + \"(?:\")) + t)) + \")\")) + \"(?:\")) + \"(?:\")) + u)) + \"|\")) + v)) + \")*\")) + \")*\")) + \")*\")), y = new RegExp(((((((((((((((\"(\" + \"(?:\")) + s)) + \")\")) + \"(?:\")) + x)) + \")\")) + \")\")), \"im\"), z = new RegExp(((((((((((((((((((((((((\"(\" + \"(?:\")) + j)) + o)) + q)) + \")|\")) + \"(?:\")) + m)) + o)) + p)) + q)) + \")\")) + \")\"))), aa = /[\\s'\";]/, ba = new RegExp(t, \"im\"), ca = new RegExp(\"[\\\\s!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\\u00ab\\u00bb\\u2000-\\u206f\\uff08\\uff09]\", \"im\"), da = new RegExp(\"[\\\\s()\\u003C\\u003E?#]\", \"im\"), ea = new RegExp(\"\\\\s()\\u003C\\u003E\"), fa = function(ma) {\n        if (((ma && ((ma.indexOf(\"@\") != -1))))) {\n            return (((z.exec(ma)) ? ma : null));\n        }\n         else return ma\n    ;\n    }, ga = function(ma) {\n        return ha(ma, y);\n    }, ha = function(ma, na) {\n        var oa = ((((na.exec(ma) || []))[1] || null));\n        return fa(oa);\n    }, ia = function(ma) {\n        return w.exec(ma);\n    }, ja = function(ma) {\n        return !aa.test(ma.charAt(((ma.length - 1))));\n    }, ka = function(ma) {\n        var na = w.exec(ma);\n        if (!na) {\n            return null;\n        }\n    ;\n    ;\n        var oa = ma.substr(((na.index + na[0].length)));\n        if (((((oa.length === 0)) || !(ba.test(oa[0]))))) {\n            return fa(na[0]);\n        }\n    ;\n    ;\n        var pa = 0, qa = 0, ra = 1, sa = 0, ta = qa;\n        for (var ua = 1; ((ua < oa.length)); ua++) {\n            var va = oa[ua];\n            if (((ta === qa))) {\n                if (((va === \"(\"))) {\n                    sa = ((sa + 1));\n                    ta = ra;\n                }\n                 else if (((ba.test(va) || !(ca.test(va))))) {\n                    pa = ua;\n                }\n                 else if (da.test(va)) {\n                    break;\n                }\n                \n                \n            ;\n            ;\n            }\n             else if (((va === \"(\"))) {\n                sa = ((sa + 1));\n            }\n             else if (((va === \")\"))) {\n                sa = ((sa - 1));\n                if (((sa === 0))) {\n                    ta = qa;\n                    pa = ua;\n                }\n            ;\n            ;\n            }\n             else if (ea.test(va)) {\n                break;\n            }\n            \n            \n            \n        ;\n        ;\n        };\n    ;\n        return fa(((na[0] + oa.substring(0, ((pa + 1))))));\n    }, la = {\n    };\n    la.permissiveMatch = ga;\n    la.matchToPattern = ha;\n    la.matchHost = ia;\n    la.trigger = ja;\n    la.match = ka;\n    e.exports = la;\n});");
36493 // 10527
36494 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o107,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yn/r/-5WtOV0lZ_r.js",o112);
36495 // undefined
36496 o107 = null;
36497 // undefined
36498 o112 = null;
36499 // 10531
36500 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"hfrQl\",]);\n}\n;\n__d(\"FriendBrowserCheckboxController\", [\"AsyncRequest\",\"CSS\",\"DOM\",\"Event\",\"Form\",\"OnVisible\",\"$\",\"bind\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"Form\"), l = b(\"OnVisible\"), m = b(\"$\"), n = b(\"bind\"), o = b(\"copyProperties\"), p = b(\"ge\");\n    function q() {\n    \n    };\n    o(q, {\n        instances: {\n        },\n        getInstance: function(r) {\n            return this.instances[r];\n        }\n    });\n    o(q.prototype, {\n        init: function(r, s, t, u) {\n            q.instances[r] = this;\n            this._id = r;\n            this._simplified = t;\n            this._infiniteScroll = u;\n            this._form = s;\n            this._contentGrid = i.find(s, \".friendBrowserCheckboxContentGrid\");\n            this._loadingIndicator = i.find(s, \".friendBrowsingCheckboxContentLoadingIndicator\");\n            this._checkboxResults = i.find(s, \".friendBrowserCheckboxResults\");\n            this._contentPager = i.find(s, \".friendBrowserCheckboxContentPager\");\n            this.numGetNewRequests = 0;\n            this.queuedRequests = {\n            };\n            j.listen(this._form, \"submit\", this.onFormSubmit.bind(this));\n        },\n        addTypeahead: function(r, s) {\n            r.subscribe(\"select\", this.onHubSelect.bind(this, r, s));\n            if (this._simplified) {\n                r.subscribe(\"unselect\", this.onHubSelect.bind(this, r, s));\n            };\n        },\n        onFormSubmit: function() {\n            this.getNew(true);\n            return false;\n        },\n        addSelector: function(r) {\n            r.subscribe(\"change\", this.getNew.bind(this, false));\n        },\n        onHubSelect: function(r, s, event, t) {\n            if (this._simplified) {\n                this.getNew(true);\n                return;\n            }\n        ;\n            if (!((((event == \"select\")) && t.selected))) {\n                return\n            };\n            var u = this.buildNewCheckbox(s, t.selected.text, t.selected.uid), v = i.find(this._form, (\".checkboxes_\" + s));\n            i.appendContent(v.firstChild, u);\n            var w = i.scry(r.getElement(), \"input[type=\\\"button\\\"]\");\n            if ((w && w[0])) {\n                w[0].click();\n            };\n            this.getNew(true);\n        },\n        buildNewCheckbox: function(r, s, t) {\n            var u = ((r + \"_ids_\") + t), v = (r + \"_ids[]\"), w = i.create(\"input\", {\n                id: u,\n                type: \"checkbox\",\n                value: t,\n                name: v,\n                checked: true\n            });\n            j.listen(w, \"click\", n(this, \"getNew\", false));\n            var x = i.create(\"td\", null, w);\n            h.addClass(x, \"vTop\");\n            h.addClass(x, \"hLeft\");\n            var y = i.create(\"label\", null, s), z = i.create(\"td\", null, y);\n            h.addClass(z, \"vMid\");\n            h.addClass(z, \"hLeft\");\n            var aa = i.create(\"tr\");\n            aa.appendChild(x);\n            aa.appendChild(z);\n            return aa;\n        },\n        showMore: function() {\n            var r = i.scry(this._contentPager, \".friendBrowserMorePager\")[0];\n            if (!r) {\n                return false\n            };\n            if (h.hasClass(r, \"async_saving\")) {\n                return false\n            };\n            var s = this.numGetNewRequests, t = k.serialize(this._form);\n            t.show_more = true;\n            var u = new g().setURI(\"/ajax/growth/friend_browser/checkbox.php\").setData(t).setHandler(n(this, function(v) {\n                this.showMoreHandler(v, s);\n            })).setStatusElement(r).send();\n        },\n        showMoreHandler: function(r, s) {\n            if ((s == this.numGetNewRequests)) {\n                var t = r.payload;\n                i.appendContent(this._contentGrid, t.results);\n                this.updatePagerAndExtraData(t.pager, t.extra_data);\n            }\n        ;\n        },\n        getNew: function(r) {\n            this.numGetNewRequests++;\n            var s = this.numGetNewRequests;\n            h.addClass(this._checkboxResults, \"friendBrowserCheckboxContentOnload\");\n            if (p(\"friendBrowserCI\")) {\n                h.addClass(m(\"friendBrowserCI\"), \"friendBrowserCheckboxContentOnload\");\n            };\n            h.show(this._loadingIndicator);\n            var t = k.serialize(this._form);\n            t.used_typeahead = r;\n            new g().setURI(\"/ajax/growth/friend_browser/checkbox.php\").setData(t).setHandler(n(this, function(u) {\n                this.getNewHandler(u, s);\n            })).send();\n        },\n        getNewHandler: function(r, s) {\n            if ((s == this.numGetNewRequests)) {\n                var t = r.payload;\n                i.setContent(this._contentGrid, t.results);\n                h.removeClass(this._checkboxResults, \"friendBrowserCheckboxContentOnload\");\n                if (p(\"friendBrowserCI\")) {\n                    h.hide(m(\"friendBrowserCI\"));\n                };\n                h.hide(this._loadingIndicator);\n                this.updatePagerAndExtraData(t.pager, t.extra_data);\n            }\n        ;\n        },\n        updatePagerAndExtraData: function(r, s) {\n            i.setContent(this._contentPager, r);\n            if (this._infiniteScroll) {\n                this.setupOnVisible();\n            };\n            i.replace(this._form.elements.extra_data, s);\n        },\n        setupOnVisible: function() {\n            var r = i.scry(this._contentPager, \".friendBrowserMorePager\")[0];\n            if ((r && (this._id != \"jewel\"))) {\n                (this._onVisible && this._onVisible.remove());\n                this._onVisible = new l(r, n(this, \"showMore\"), false, 1000);\n            }\n        ;\n        }\n    });\n    e.exports = q;\n});\n__d(\"legacy:friend-browser-checkbox-js\", [\"FriendBrowserCheckboxController\",], function(a, b, c, d) {\n    a.FriendBrowserCheckboxController = b(\"FriendBrowserCheckboxController\");\n}, 3);\n__d(\"FacebarResultStoreUtils\", [], function(a, b, c, d, e, f) {\n    var g = {\n        processEntityResult: function(h, i, j, k) {\n            var l = {\n                semantic: i.toString(),\n                structure: [{\n                    type: (\"ent:\" + h),\n                    text: j,\n                    uid: i\n                },],\n                type: ((\"{\" + h) + \"}\"),\n                cost: k,\n                cache_id_length: 0,\n                bolding: []\n            };\n            l.tuid = JSON.stringify({\n                semantic: l.semantic,\n                structure: l.structure\n            });\n            return l;\n        }\n    };\n    e.exports = g;\n});\n__d(\"HashtagParser\", [\"URLMatcher\",], function(a, b, c, d, e, f) {\n    var g = b(\"URLMatcher\"), h = 100, i = 30, j = /@\\[([0-9]+):([0-9]+):((?:[^\\\\\\]]*(?:\\\\.)*)*)\\]/g;\n    function k() {\n        var da = ((((((((((((((((\"\\u00c0-\\u00d6\" + \"\\u00d8-\\u00f6\") + \"\\u00f8-\\u00ff\") + \"\\u0100-\\u024f\") + \"\\u0253-\\u0254\") + \"\\u0256-\\u0257\") + \"\\u0259\") + \"\\u025b\") + \"\\u0263\") + \"\\u0268\") + \"\\u026f\") + \"\\u0272\") + \"\\u0289\") + \"\\u028b\") + \"\\u02bb\") + \"\\u0300-\\u036f\") + \"\\u1e00-\\u1eff\"), ea = ((((((((((((((((((((((((((((((((((((((((((((\"\\u0400-\\u04ff\" + \"\\u0500-\\u0527\") + \"\\u2de0-\\u2dff\") + \"\\ua640-\\ua69f\") + \"\\u0591-\\u05bf\") + \"\\u05c1-\\u05c2\") + \"\\u05c4-\\u05c5\") + \"\\u05c7\") + \"\\u05d0-\\u05ea\") + \"\\u05f0-\\u05f4\") + \"\\ufb12-\\ufb28\") + \"\\ufb2a-\\ufb36\") + \"\\ufb38-\\ufb3c\") + \"\\ufb3e\") + \"\\ufb40-\\ufb41\") + \"\\ufb43-\\ufb44\") + \"\\ufb46-\\ufb4f\") + \"\\u0610-\\u061a\") + \"\\u0620-\\u065f\") + \"\\u066e-\\u06d3\") + \"\\u06d5-\\u06dc\") + \"\\u06de-\\u06e8\") + \"\\u06ea-\\u06ef\") + \"\\u06fa-\\u06fc\") + \"\\u06ff\") + \"\\u0750-\\u077f\") + \"\\u08a0\") + \"\\u08a2-\\u08ac\") + \"\\u08e4-\\u08fe\") + \"\\ufb50-\\ufbb1\") + \"\\ufbd3-\\ufd3d\") + \"\\ufd50-\\ufd8f\") + \"\\ufd92-\\ufdc7\") + \"\\ufdf0-\\ufdfb\") + \"\\ufe70-\\ufe74\") + \"\\ufe76-\\ufefc\") + \"\\u200c-\\u200c\") + \"\\u0e01-\\u0e3a\") + \"\\u0e40-\\u0e4e\") + \"\\u1100-\\u11ff\") + \"\\u3130-\\u3185\") + \"\\ua960-\\ua97f\") + \"\\uac00-\\ud7af\") + \"\\ud7b0-\\ud7ff\") + \"\\uffa1-\\uffdc\"), fa = String.fromCharCode, ga = ((((((((((((((((\"\\u30a1-\\u30fa\\u30fc-\\u30fe\" + \"\\uff66-\\uff9f\") + \"\\uff10-\\uff19\\uff21-\\uff3a\") + \"\\uff41-\\uff5a\") + \"\\u3041-\\u3096\\u3099-\\u309e\") + \"\\u3400-\\u4dbf\") + \"\\u4e00-\\u9fff\") + fa(173824)) + \"-\") + fa(177983)) + fa(177984)) + \"-\") + fa(178207)) + fa(194560)) + \"-\") + fa(195103)) + \"\\u3003\\u3005\\u303b\"), ha = ((da + ea) + ga), ia = ((((((((((((((((((((((((((((((((((((((((((((((((((\"A-Za-z\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\" + \"\\u00f8-\\u0241\\u0250-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ee\\u037a\\u0386\") + \"\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03ce\\u03d0-\\u03f5\\u03f7-\\u0481\") + \"\\u048a-\\u04ce\\u04d0-\\u04f9\\u0500-\\u050f\\u0531-\\u0556\\u0559\\u0561-\\u0587\") + \"\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0621-\\u063a\\u0640-\\u064a\\u066e-\\u066f\") + \"\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\") + \"\\u0712-\\u072f\\u074d-\\u076d\\u0780-\\u07a5\\u07b1\\u0904-\\u0939\\u093d\\u0950\") + \"\\u0958-\\u0961\\u097d\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\") + \"\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\") + \"\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\") + \"\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\") + \"\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\") + \"\\u0ad0\\u0ae0-\\u0ae1\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\") + \"\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\") + \"\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\") + \"\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0c05-\\u0c0c\\u0c0e-\\u0c10\") + \"\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c60-\\u0c61\\u0c85-\\u0c8c\") + \"\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\") + \"\\u0ce0-\\u0ce1\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d28\\u0d2a-\\u0d39\") + \"\\u0d60-\\u0d61\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\") + \"\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e87-\\u0e88\") + \"\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\") + \"\\u0eaa-\\u0eab\\u0ead-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\") + \"\\u0edc-\\u0edd\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6a\\u0f88-\\u0f8b\\u1000-\\u1021\") + \"\\u1023-\\u1027\\u1029-\\u102a\\u1050-\\u1055\\u10a0-\\u10c5\\u10d0-\\u10fa\\u10fc\") + \"\\u1100-\\u1159\\u115f-\\u11a2\\u11a8-\\u11f9\\u1200-\\u1248\\u124a-\\u124d\") + \"\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\") + \"\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\") + \"\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\") + \"\\u166f-\\u1676\\u1681-\\u169a\\u16a0-\\u16ea\\u1700-\\u170c\\u170e-\\u1711\") + \"\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\") + \"\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\") + \"\\u1980-\\u19a9\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1d00-\\u1dbf\\u1e00-\\u1e9b\") + \"\\u1ea0-\\u1ef9\\u1f00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\") + \"\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\") + \"\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\") + \"\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u2094\\u2102\\u2107\") + \"\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\") + \"\\u212f-\\u2131\\u2133-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u2c00-\\u2c2e\") + \"\\u2c30-\\u2c5e\\u2c80-\\u2ce4\\u2d00-\\u2d25\\u2d30-\\u2d65\\u2d6f\\u2d80-\\u2d96\") + \"\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\") + \"\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3006\\u3031-\\u3035\") + \"\\u303b-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\") + \"\\u3105-\\u312c\\u3131-\\u318e\\u31a0-\\u31b7\\u31f0-\\u31ff\\u3400-\\u4db5\") + \"\\u4e00-\\u9fbb\\ua000-\\ua48c\\ua800-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\") + \"\\ua80c-\\ua822\\uac00-\\ud7a3\\uf900-\\ufa2d\\ufa30-\\ufa6a\\ufa70-\\ufad9\") + \"\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\") + \"\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\") + \"\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\") + \"\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\") + \"\\uffda-\\uffdc\"), ja = ((((((((((((((((((((\"\\u0300-\\u036f\\u0483-\\u0486\\u0591-\\u05b9\\u05bb-\\u05bd\\u05bf\" + \"\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u0615\\u064b-\\u065e\\u0670\") + \"\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\") + \"\\u07a6-\\u07b0\\u0901-\\u0903\\u093c\\u093e-\\u094d\\u0951-\\u0954\\u0962-\\u0963\") + \"\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09cd\\u09d7\") + \"\\u09e2-\\u09e3\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\") + \"\\u0a70-\\u0a71\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\") + \"\\u0ae2-\\u0ae3\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b43\\u0b47-\\u0b48\\u0b4b-\\u0b4d\") + \"\\u0b56-\\u0b57\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\") + \"\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\") + \"\\u0c82-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\") + \"\\u0d02-\\u0d03\\u0d3e-\\u0d43\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d82-\\u0d83\") + \"\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2-\\u0df3\\u0e31\\u0e34-\\u0e3a\") + \"\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\") + \"\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f3f\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f90-\\u0f97\") + \"\\u0f99-\\u0fbc\\u0fc6\\u102c-\\u1032\\u1036-\\u1039\\u1056-\\u1059\\u135f\") + \"\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b6-\\u17d3\\u17dd\") + \"\\u180b-\\u180d\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u19b0-\\u19c0\\u19c8-\\u19c9\") + \"\\u1a17-\\u1a1b\\u1dc0-\\u1dc3\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20eb\\u302a-\\u302f\") + \"\\u3099-\\u309a\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ufb1e\\ufe00-\\ufe0f\") + \"\\ufe20-\\ufe23\"), ka = ((((\"0-9\\u0660-\\u0669\\u06f0-\\u06f9\\u0966-\\u096f\\u09e6-\\u09ef\" + \"\\u0a66-\\u0a6f\\u0ae6-\\u0aef\\u0b66-\\u0b6f\\u0be6-\\u0bef\\u0c66-\\u0c6f\") + \"\\u0ce6-\\u0cef\\u0d66-\\u0d6f\\u0e50-\\u0e59\\u0ed0-\\u0ed9\\u0f20-\\u0f29\") + \"\\u1040-\\u1049\\u17e0-\\u17e9\\u1810-\\u1819\\u1946-\\u194f\\u19d0-\\u19d9\") + \"\\uff10-\\uff19\"), la = ((ia + ja) + ha), ma = (ka + \"_\"), na = (la + ma), oa = ((\"[\" + la) + \"]\"), pa = ((\"[\" + na) + \"]\"), qa = ((\"^|$|[^&\" + na) + \"]\"), ra = \"[#\\\\uFF03]\", sa = (((((((((\"(\" + qa) + \")(\") + ra) + \")(\") + pa) + \"*\") + oa) + pa) + \"*)\");\n        return new RegExp(sa, \"ig\");\n    };\n    function l(da) {\n        var ea = y(da), fa = 0, ga = 0;\n        return n(da).map(function(ha) {\n            while ((fa < ea.length)) {\n                var ia = ea[fa], ja = (ia.offset - ga);\n                if ((ja < ha.offset)) {\n                    ga += (ia.token.length - ia.name.length);\n                    fa++;\n                }\n                 else break;\n            ;\n            };\n            return {\n                marker: ha.marker,\n                tag: ha.hashtag,\n                rawOffset: (ha.offset + ga),\n                offset: ha.offset\n            };\n        });\n    };\n    function m(da) {\n        return o(da, t(da));\n    };\n    function n(da) {\n        var ea = aa(da);\n        return o(ea, p(da, ea));\n    };\n    function o(da, ea) {\n        return r(da).slice(0, i).filter(function(fa) {\n            var ga = v(fa.offset, fa.hashtag.length, ea);\n            return (!ga && (fa.hashtag.length <= h));\n        });\n    };\n    function p(da, ea) {\n        return u(s(da), t(ea));\n    };\n    var q = k();\n    function r(da) {\n        var ea = [];\n        da.replace(q, function(fa, ga, ha, ia, ja) {\n            ea.push({\n                marker: ha,\n                hashtag: ia,\n                offset: (ja + ga.length)\n            });\n        });\n        return ea;\n    };\n    function s(da) {\n        return ba(da).map(function(ea) {\n            return [ea.offset,ea.name.length,];\n        });\n    };\n    function t(da) {\n        var ea = [], fa, ga = 0;\n        while ((fa = g.permissiveMatch(da))) {\n            var ha = da.indexOf(fa);\n            ea.push([(ga + ha),fa.length,]);\n            da = da.substring((ha + fa.length));\n            ga += (ha + fa.length);\n        };\n        return ea;\n    };\n    function u(da, ea) {\n        var fa = [], ga = 0, ha = 0, ia = 0;\n        while (((ga < da.length) && (ha < ea.length))) {\n            if ((da[ga][0] > ea[ha][0])) {\n                fa[ia++] = ea[ha++];\n            }\n             else fa[ia++] = da[ga++];\n        ;\n        };\n        return fa.concat(da.slice(ga), ea.slice(ha));\n    };\n    function v(da, ea, fa) {\n        if (!fa) {\n            return false\n        };\n        var ga = x(fa, da);\n        return (w(da, ea, fa, ga) || w(da, ea, fa, (ga + 1)));\n    };\n    function w(da, ea, fa, ga) {\n        if (!fa[ga]) {\n            return false\n        };\n        var ha = fa[ga][0], ia = fa[ga][1];\n        return !((((((da + ea) - 1) < ha)) || ((da > ((ha + ia) - 1)))));\n    };\n    function x(da, ea) {\n        var fa = 0, ga = (da.length - 1);\n        while ((fa <= ga)) {\n            var ha = Math.floor((((fa + ga)) / 2)), ia = da[ha][0];\n            if ((ia == ea)) {\n                return ha;\n            }\n             else if ((ia < ea)) {\n                fa = (ha + 1);\n            }\n             else ga = (ha - 1);\n            \n        ;\n        };\n        return ga;\n    };\n    function y(da) {\n        var ea = [];\n        da.replace(j, function(fa, ga, ha, ia, ja) {\n            ea.push({\n                token: fa,\n                id: ga,\n                type: ha,\n                name: ia,\n                offset: ja\n            });\n        });\n        return ea;\n    };\n    function z(da) {\n        return (da ? da.replace(/\\\\([^\\\\])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\") : null);\n    };\n    function aa(da) {\n        return da.replace(j, function(ea, fa, ga, ha, ia) {\n            return z(ha);\n        });\n    };\n    function ba(da) {\n        var ea = 0, fa = 0;\n        return y(da).map(function(ga) {\n            var ha = da.indexOf(ga.token, fa);\n            fa = (ha + 1);\n            ha -= ea;\n            var ia = z(ga.name);\n            ea += (ga.token.length - ia.length);\n            if ((ha >= 0)) {\n                return {\n                    id: ga.id,\n                    name: ia,\n                    type: ga.type,\n                    offset: ha\n                }\n            };\n        });\n    };\n    var ca = {\n    };\n    ca.parse = l;\n    ca.parseWithoutMentions = m;\n    e.exports = ca;\n});\n__d(\"HashtagSearchResultUtils\", [\"FacebarResultStoreUtils\",\"HashtagParser\",\"HashtagSearchResultConfig\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"FacebarResultStoreUtils\"), h = b(\"HashtagParser\"), i = b(\"HashtagSearchResultConfig\"), j = b(\"URI\"), k = {\n        getHashtagFromQuery: function(l) {\n            var m = h.parse(l);\n            if (((m && (m.length === 1)) && (m[0].offset === 0))) {\n                return m[0].tag\n            };\n            return false;\n        },\n        makeTypeaheadResult: function(l) {\n            return {\n                category: \"Hashtag\",\n                path: j((\"/hashtag/\" + l)).toString(),\n                photo: i.image_url,\n                rankType: null,\n                replace_results: (i.boost_result ? true : false),\n                scaled_score: 1,\n                score: 0,\n                text: (\"#\" + l),\n                type: \"hashtag_exact\",\n                uid: (\"hashtag:\" + l)\n            };\n        },\n        makeFacebarEntry: function(l) {\n            return {\n                category: \"Hashtag\",\n                path: j((\"/hashtag/\" + l)).toString(),\n                photo: i.image_url,\n                replace_results: (i.boost_result ? true : false),\n                text: (\"#\" + l),\n                type: \"hashtag_exact\",\n                uid: (\"hashtag:\" + l)\n            };\n        },\n        makeFacebarResult: function(l) {\n            var m = g.processEntityResult(\"hashtag_exact\", (\"hashtag:\" + l), (\"#\" + l), i.hashtag_cost);\n            m.parse = {\n                display: [{\n                    type: \"ent:hashtag_exact\",\n                    uid: (\"hashtag:\" + l)\n                },],\n                remTokens: [],\n                suffix: \"\",\n                unmatch: []\n            };\n            return m;\n        }\n    };\n    e.exports = k;\n});\n__d(\"ContextualHelpSearchController\", [\"Event\",\"AsyncRequest\",\"DOM\",\"CSS\",\"Focus\",\"Input\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"CSS\"), k = b(\"Focus\"), l = b(\"Input\"), m = b(\"copyProperties\"), n = 400;\n    function o() {\n        this._token = null;\n        this._timerID = 0;\n        this._lastQuery = null;\n        this.typing_listener = null;\n        this.clear_listener = null;\n        this.async_request = null;\n    };\n    m(o.prototype, {\n        init: function(p, q, r, s, t) {\n            this.loader = p;\n            this.search_box = q;\n            this.topics_area = r;\n            this.results_area = s;\n            this.clear_button = t;\n            this.typing_listener = g.listen(this.search_box, \"keyup\", this.setTimer.bind(this));\n            this.clear_listener = g.listen(this.clear_button, \"click\", this.clearResults.bind(this));\n            k.set(this.search_box);\n        },\n        source: \"contextual_help\",\n        clearResults: function() {\n            this.show(this.topics_area);\n            this._lastQuery = \"\";\n            l.reset(this.search_box);\n            k.set(this.search_box);\n            if ((this.async_request !== null)) {\n                this.async_request.abort();\n                this.async_request = null;\n            }\n        ;\n            j.addClass(this.clear_button, \"hidden_elem\");\n        },\n        update: function() {\n            var p = l.getValue(this.search_box);\n            if ((p === this._lastQuery)) {\n                return\n            };\n            this._lastQuery = p;\n            if ((p === \"\")) {\n                this.clearResults();\n                return;\n            }\n        ;\n            this.show(this.loader);\n            var q = {\n                query: p,\n                width: (this._width || n),\n                source: this.source\n            };\n            this.async_request = new h(\"/help/ajax/search/\").setData(q).setHandler(function(r) {\n                this._update(r);\n            }.bind(this));\n            this.async_request.send();\n        },\n        _update: function(p) {\n            this.async_request = null;\n            var q = p.getPayload().results;\n            i.setContent(this.results_area, q);\n            this.show(this.results_area);\n            if ((l.getValue(this.search_box) === \"\")) {\n                this.clearResults();\n            }\n             else j.removeClass(this.clear_button, \"hidden_elem\");\n        ;\n        },\n        setTimer: function() {\n            if ((this._timerID !== 0)) {\n                clearTimeout(this._timerID);\n            };\n            this._timerID = setTimeout(this.update.bind(this), 300);\n            if ((this.async_request != null)) {\n                this.async_request.abort();\n                this.async_request = null;\n            }\n        ;\n        },\n        show: function(p) {\n            var q = [this.loader,this.topics_area,this.results_area,];\n            for (var r = 0; (r < q.length); r++) {\n                j.addClass(q[r], \"hidden_elem\");;\n            };\n            j.removeClass(p, \"hidden_elem\");\n        }\n    });\n    e.exports = o;\n});\n__d(\"RequestsJewel\", [\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ChannelConstants\",\"CSS\",\"DOM\",\"Event\",\"FriendBrowserCheckboxController\",\"LinkController\",\"Parent\",\"ScrollableArea\",\"Vector\",\"copyProperties\",\"ge\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"AsyncSignal\"), j = b(\"ChannelConstants\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Event\"), n = b(\"FriendBrowserCheckboxController\"), o = b(\"LinkController\"), p = b(\"Parent\"), q = b(\"ScrollableArea\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"ge\"), u = b(\"shield\"), v = b(\"tx\");\n    function w() {\n    \n    };\n    s(w, {\n        instance: null,\n        getInstance: function() {\n            return this.instance;\n        }\n    });\n    s(w.prototype, {\n        init: function(x, y, z) {\n            w.instance = this;\n            this.countNew = 0;\n            this.jewel = x;\n            this.jewelFlyoutCase = x.getRoot();\n            this.jewelFlyout = t(\"fbRequestsFlyout\");\n            this.newCountSpan = t(\"newRequestCount\");\n            this.folder = y;\n            this.doNewMarkRead = z;\n            this.openTimestamp = 0;\n            this._requestList = {\n            };\n            this._requestCount = 0;\n            this.egoPredictedCount = 0;\n            this.pendingCount = 0;\n            this.shouldLogEgoClick = false;\n            this.shouldClearPredictionAssocOnClick = false;\n            var aa = t(\"requestsMarkReadButton\");\n            if (aa) {\n                m.listen(aa, \"click\", u(this._markRead, this));\n            };\n            this.jewel.subscribe(\"marked-seen\", u(this._markSeenCallback, this));\n            this.jewel.subscribe(\"closed\", u(this._clearNewItems, this));\n            this.jewel.subscribe(\"updated\", this._updateCount.bind(this));\n            this.jewel.subscribe(\"opened\", this._openHandler.bind(this));\n            o.registerHandler(this._handleLink.bind(this));\n            g.subscribe(j.getArbiterType(\"jewel_requests_add\"), this._addRequest.bind(this));\n            g.subscribe(j.getArbiterType(\"jewel_requests_remove_old\"), this._removeOldRequest.bind(this));\n            g.subscribe(j.getArbiterType(\"friend_requests_seen\"), this._markSeenFromMessage.bind(this));\n            g.subscribe(\"jewel/ego_predicted_count\", function(ba, ca) {\n                this.egoPredictedCount = ca.ego_predicted_count;\n                this.pendingCount = ca.pending_count;\n                this.egoUnseenTimestamp = ca.unseen_timestamp;\n                this.shouldLogEgoClick = ca.should_log_ego_click;\n                this.actionContext = ca.action_context;\n            }.bind(this));\n            m.listen(this.jewelFlyout, \"submit\", function(ba) {\n                var ca = p.byClass(ba.getTarget(), \"objectListItem\");\n                if (ca) {\n                    k.removeClass(ca, \"jewelItemNew\");\n                    k.addClass(ca, \"jewelItemResponded\");\n                    this.pageInCollapsedRequests();\n                }\n            ;\n            }.bind(this));\n            this.setupScroll();\n            return this;\n        },\n        setupScroll: function() {\n            var x = l.scry(this.jewelFlyout, \".uiScrollableAreaWrap\")[0];\n            if (x) {\n                this._scrollableWrap = x;\n                this._lastLinkPosition = 0;\n                this._scrollListener = m.listen(x, \"scroll\", this._handleScroll.bind(this), m.Priority._BUBBLE);\n            }\n        ;\n        },\n        fromDom: function() {\n            l.scry(this.jewelFlyout, \".jewelItemList li.objectListItem\").forEach(function(x) {\n                var y = x.getAttribute(\"id\");\n                if (y) {\n                    var z = this._parseIDToInts(y);\n                    if (z.requester) {\n                        this._requestList[z.requester] = y;\n                    };\n                    ++this._requestCount;\n                }\n            ;\n            }.bind(this));\n            this._conditionShowEmptyMessage();\n        },\n        _parseID: function(x) {\n            var y = x.match(/^(\\d+)_(\\d+)/);\n            return ((y) ? {\n                requester: y[1],\n                type: y[2]\n            } : undefined);\n        },\n        _parseIDToInts: function(x) {\n            var y = (x ? this._parseID(x) : undefined), z;\n            if ((y && y.requester)) {\n                z = parseInt(y.requester, 10);\n                if (isNaN(z)) {\n                    z = undefined;\n                };\n            }\n        ;\n            var aa;\n            if ((y && y.type)) {\n                aa = parseInt(y.type, 10);\n                if (isNaN(aa)) {\n                    aa = undefined;\n                };\n            }\n        ;\n            return {\n                requester: z,\n                type: aa\n            };\n        },\n        _handleLink: function(x, event) {\n            var y = p.byClass(x, \"jewelItemNew\");\n            if (((y && p.byClass(y, \"fbRequestList\")) && p.byClass(y, \"beeperEnabled\"))) {\n                var z = this._parseID(y.id);\n                (z && this._markSeenCallback(z.requester, z.type));\n                g.inform(\"jewel/count-updated\", {\n                    jewel: \"requests\",\n                    count: --this.countNew\n                });\n                k.removeClass(y, \"jewelItemNew\");\n            }\n        ;\n            return true;\n        },\n        _handleScroll: function() {\n            var x = l.scry(this._scrollableWrap, \".uiMorePager\");\n            if ((!x || ((t(\"fbRequestsJewelManualPager\") && (x.length < 2))))) {\n                return\n            };\n            var y = x.pop();\n            if (y) {\n                var z = r.getElementPosition(y, \"viewport\").y;\n                if ((z > 0)) {\n                    k.addClass(p.byClass(this._scrollableWrap, \"uiScrollableArea\"), \"contentAfter\");\n                };\n                var aa = l.find(y, \"a\");\n                if (!aa) {\n                    return\n                };\n                var ba = r.getElementPosition(aa, \"viewport\").y;\n                if ((ba == this._lastLinkPosition)) {\n                    return\n                };\n                var ca = (r.getElementPosition(this._scrollableWrap, \"viewport\").y + r.getElementDimensions(this._scrollableWrap).y);\n                if ((((ba - 300) < ca) && (ba > 0))) {\n                    this._lastLinkPosition = ba;\n                    var da = aa.getAttribute(\"ajaxify\");\n                    if (da) {\n                        new h(da).setRelativeTo(aa).setStatusElement(p.byClass(aa, \"stat_elem\")).send();\n                    }\n                     else n.getInstance(\"jewel\").showMore();\n                ;\n                }\n            ;\n            }\n        ;\n        },\n        _addRequest: function(x, y) {\n            if (!y) {\n                return\n            };\n            var z = y.obj.from, aa = y.obj.suggester, ba = this._parseIDToInts(this._requestList[z]).type, ca = ((ba === 19) && !aa);\n            if ((!ca && ((ba || this.jewel.isOpen())))) {\n                return\n            };\n            if (t(\"fbRequestsJewelLoading\")) {\n                new h().setURI(\"/ajax/requests/loader/\").send();\n            }\n             else {\n                var da = this._onMarkupCallback.bind(this, z, !!aa), ea = {\n                    from: z\n                };\n                if (aa) {\n                    ea.suggester = aa;\n                };\n                new h().setURI(\"/ajax/friends/jewel/request_markup\").setData(ea).setHandler(da).send();\n            }\n        ;\n        },\n        _onMarkupCallback: function(x, y, z) {\n            var aa = z.getPayload();\n            if (!aa) {\n                return\n            };\n            var ba = this._requestList[x], ca = this._parseIDToInts(ba).type;\n            if (((ca === 19) && !y)) {\n                var da = (ba && t(ba));\n                (da && l.replace(da, aa.markup));\n            }\n             else {\n                var ea = l.scry(this.jewelFlyout, \".fbRequestList .uiList\")[0];\n                if (!ea) {\n                    return\n                };\n                l.prependContent(ea, aa.markup);\n                var fa = {\n                    jewel: \"requests\",\n                    count: ++this.countNew\n                };\n                g.inform(\"jewel/count-updated\", fa);\n                ++this._requestCount;\n                this._conditionShowEmptyMessage();\n            }\n        ;\n            this._requestList[x] = aa.item_id;\n        },\n        _removeOldRequest: function(x, y) {\n            if (((!y || this.jewel.isOpen()) || (t(\"fbRequestsJewelLoading\") !== null))) {\n                return\n            };\n            var z = this._requestList[y.obj.from], aa = (z && t(z));\n            if (aa) {\n                (k.hasClass(aa, \"jewelItemNew\") && g.inform(\"jewel/count-updated\", {\n                    jewel: \"requests\",\n                    count: --this.countNew\n                }));\n                if (!k.hasClass(aa, \"jewelItemResponded\")) {\n                    l.remove(aa);\n                    delete this._requestList[y.obj.from];\n                    --this._requestCount;\n                    this._conditionShowEmptyMessage();\n                }\n            ;\n            }\n        ;\n        },\n        pageInCollapsedRequests: function() {\n            var x = t(\"fbRequestsJewelManualPager\");\n            if (x) {\n                var y = l.scry(x, \".uiMorePagerPrimary\")[0];\n                if ((y.style && (y.style.display != \"none\"))) {\n                    setTimeout(function() {\n                        y.click();\n                    }, 100);\n                };\n            }\n        ;\n        },\n        _markRead: function() {\n            this.jewel.markSeen();\n            this._clearNewItems();\n        },\n        _markSeenCallback: function(x, y) {\n            var z = l.scry(this.jewelFlyout, \"li\");\n            new i(\"/ajax/gigaboxx/endpoint/UpdateLastSeenTime.php\", {\n                folder: this.folder,\n                first_item: z[0].id\n            }).send();\n            new h().setURI(\"/ajax/friends/jewel/predicted_count_logging\").setData({\n                ego_predicted_count: this.egoPredictedCount,\n                pending_count: this.pendingCount,\n                unseen_timestamp: this.egoUnseenTimestamp,\n                action_context: this.actionContext,\n                should_log_ego_click: this.shouldLogEgoClick\n            }).send();\n            var aa = (((typeof x != \"undefined\") && (typeof y != \"undefined\")) ? {\n                requester: x,\n                type: y\n            } : {\n            });\n            (this.doNewMarkRead && new i(\"/ajax/requests/mark_read/\", aa).send());\n        },\n        _markSeenFromMessage: function(x, y) {\n            g.inform(\"jewel/count-updated\", {\n                jewel: \"requests\",\n                count: 0\n            });\n        },\n        _removeRequest: function(x, y) {\n            var z = y.obj.item_id;\n            if (z) {\n                var aa = t(z), ba = (aa && k.hasClass(aa, \"jewelItemNew\"));\n                (aa ? l.remove(aa) : (ba && g.inform(\"jewel/count-updated\", {\n                    jewel: \"requests\",\n                    count: --this.countNew\n                })));\n            }\n        ;\n        },\n        _clearNewItems: function(x, y) {\n            l.scry(this.jewel.root, \"li.jewelItemNew\").forEach(function(z) {\n                k.removeClass(z, \"jewelItemNew\");\n            });\n        },\n        _updateCount: function(x, y) {\n            this.countNew = y.count;\n            k.conditionClass(this.jewelFlyout, \"beeperUnread\", (this.countNew > 0));\n            k.conditionClass(this.jewelFlyoutCase, \"showRequests\", (this.countNew > 0));\n            if (this.newCountSpan) {\n                var z = ((this.countNew == 1) ? v._(\"{num} NEW REQUEST\", {\n                    num: this.countNew\n                }) : v._(\"{num} NEW REQUESTS\", {\n                    num: this.countNew\n                }));\n                l.setContent(this.newCountSpan, z);\n            }\n        ;\n        },\n        _conditionShowEmptyMessage: function() {\n            l.scry(this.jewelFlyout, \"li.empty\").forEach(function(x) {\n                k.conditionShow(x, (this._requestCount <= 0));\n            }.bind(this));\n        },\n        _openHandler: function() {\n            var x = l.scry(this.jewelFlyout, \".uiScrollableArea\")[0];\n            if (t(\"fbRequestsJewelLoading\")) {\n                var y = Date.now();\n                if (((this.openTimestamp + 5000) < y)) {\n                    this.openTimestamp = y;\n                    new h().setURI(\"/ajax/requests/loader/\").setData({\n                        log_impressions: true\n                    }).send();\n                }\n            ;\n            }\n             else {\n                var z = Object.keys(this._requestList);\n                if ((z.length > 0)) {\n                    new h().setURI(\"/friends/requests/log_impressions\").setData({\n                        ids: z.join(\",\"),\n                        ref: \"jewel\"\n                    }).send();\n                };\n            }\n        ;\n            (x && q.poke(x));\n        }\n    });\n    e.exports = w;\n});\n__d(\"legacy:RequestsJewel\", [\"RequestsJewel\",], function(a, b, c, d) {\n    a.RequestsJewel = b(\"RequestsJewel\");\n}, 3);\n__d(\"JewelX\", [\"Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"HTML\",\"Keys\",\"TabIsolation\",\"Toggler\",\"copyProperties\",\"emptyFunction\",\"reportData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"TabIsolation\"), o = b(\"Toggler\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"reportData\"), s = function(t, u) {\n        ((t && u) && this.init(t, u));\n    };\n    p(s, {\n        _instancesByName: {\n        },\n        _resizeListener: null\n    });\n    p(s.prototype, i, {\n        init: function(t, u) {\n            this.name = u.name;\n            this.root = t;\n            this.countNew = 0;\n            this.initialCount = 0;\n            this.escHandler = null;\n            s._instancesByName[this.name] = this;\n            var v = k.find(t, \".jewelFlyout\"), w = new n(v);\n            o.listen(\"show\", this.root, function(x) {\n                this._logFirstClick();\n                (this.hasNew() && this.markSeen());\n                this.reset();\n                this.inform(\"opened\");\n                h.inform(\"layer_shown\", {\n                    type: \"Jewel\"\n                });\n                w.enable();\n                this.setupEvents();\n            }.bind(this));\n            o.listen(\"hide\", this.root, function(x, y) {\n                (this.hasNew() && this.markSeen());\n                this.reset();\n                this.inform(\"closed\");\n                h.inform(\"layer_hidden\", {\n                    type: \"Jewel\"\n                });\n                w.disable();\n                this.removeEvents();\n            }.bind(this));\n            h.subscribe(\"jewel/count-updated\", function(x, y) {\n                ((y.jewel == this.name) && this.update(y));\n            }.bind(this));\n            h.subscribe(\"jewel/count-initial\", function(x, y) {\n                ((y.jewel == this.name) && this.setInitial(y));\n            }.bind(this));\n            h.subscribe(\"jewel/reset\", function(x, y) {\n                ((y.jewel == this.name) && this.reset());\n            }.bind(this));\n            s._resizeListener = (s._resizeListener || (function() {\n                var x = null;\n                return g.listen(window, \"resize\", function() {\n                    clearTimeout(x);\n                    x = h.inform.bind(h, \"jewel/resize\").defer(100, false);\n                });\n            })());\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        hasNew: function() {\n            return j.hasClass(this.root, \"hasNew\");\n        },\n        isOpen: function() {\n            return j.hasClass(this.root, \"openToggler\");\n        },\n        reset: function() {\n            j.removeClass(this.root, \"hasNew\");\n        },\n        setContent: function(t) {\n            var u = k.find(this.root, \"ul.jewelItemList\");\n            k.setContent(u, l(t));\n        },\n        update: function(t) {\n            this.countNew = t.count;\n            var u = k.find(this.root, \"span.jewelCount span\");\n            k.setContent(u, this.countNew);\n            var v = (isNaN(this.countNew) || (this.countNew > 0));\n            j.conditionClass(this.root, \"hasNew\", v);\n            if (v) {\n                var w = ((\"\" + this.countNew)).length;\n                j.conditionClass(this.root, \"hasCountSmall\", (w === 1));\n                j.conditionClass(this.root, \"hasCountMedium\", (w === 2));\n                j.conditionClass(this.root, \"hasCountLarge\", (w > 2));\n            }\n        ;\n            this.inform(\"updated\", t);\n        },\n        setInitial: function(t) {\n            this.initialCount = t;\n        },\n        setupEvents: function() {\n            this.escHandler = g.listen(document.documentElement, \"keydown\", function(t) {\n                if (((t.keyCode === m.ESC) && this.isOpen())) {\n                    o.hide(this.root);\n                };\n            }.bind(this));\n        },\n        removeEvents: function() {\n            if (this.escHandler) {\n                this.escHandler.remove();\n            };\n        },\n        markSeen: function() {\n            h.inform(\"jewel/count-updated\", {\n                jewel: this.name,\n                count: 0\n            }, h.BEHAVIOR_STATE);\n            this.inform(\"marked-seen\");\n        },\n        _logFirstClick: function() {\n            this._logFirstClick = q;\n            r(\"jewel_click\", {\n                gt: {\n                    count: this.countNew,\n                    initial: this.initialCount,\n                    jewel: this.name\n                }\n            });\n        }\n    });\n    e.exports = s;\n});\n__d(\"MercuryJewelCountControl\", [\"Arbiter\",\"DOM\",\"MercuryThreadlistConstants\",\"copyProperties\",\"shield\",\"tx\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryUnseenState\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"MercuryThreadlistConstants\"), j = b(\"copyProperties\"), k = b(\"shield\"), l = b(\"tx\"), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreadInformer\").get(), o = b(\"MercuryUnseenState\").get(), p, q, r, s = function(u) {\n        if ((u || r.isOpen())) {\n            o.markAsSeen();\n        };\n    }, t = function(u, v) {\n        p = u;\n        q = h.find(p, \"#mercurymessagesCountValue\");\n        r = v;\n        this.render();\n        m.subscribe(\"model-update-completed\", function(w, x) {\n            s(false);\n        });\n        n.subscribe(\"unseen-updated\", this.render.bind(this));\n        r.subscribe(\"marked-seen\", k(s, this, true));\n    };\n    j(t.prototype, {\n        render: function() {\n            var u = \"\";\n            if (o.exceedsMaxCount()) {\n                u = l._(\"{count}+\", {\n                    count: i.MAX_UNSEEN_COUNT\n                });\n            }\n             else u = o.getUnseenCount().toString();\n        ;\n            g.inform(\"jewel/count-updated\", {\n                jewel: \"mercurymessages\",\n                count: u\n            }, g.BEHAVIOR_STATE);\n        }\n    });\n    e.exports = t;\n});\n__d(\"MercuryJewelThreadlistControl\", [\"Arbiter\",\"ArbiterMixin\",\"MercuryChatUtils\",\"MercuryConfig\",\"CSS\",\"DOM\",\"Event\",\"JSLogger\",\"JSXDOM\",\"MercuryAPIArgsSource\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryOrderedThreadlist\",\"Parent\",\"MercuryJewelTemplates\",\"MercuryThreadInformer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreads\",\"Tooltip\",\"MercuryUnreadState\",\"copyProperties\",\"csx\",\"cx\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"MercuryChatUtils\"), j = b(\"MercuryConfig\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Event\"), n = b(\"JSLogger\"), o = b(\"JSXDOM\"), p = b(\"MercuryAPIArgsSource\"), q = b(\"MercuryThreadlistConstants\"), r = b(\"MessagingTag\"), s = b(\"MercuryOrderedThreadlist\").get(), t = b(\"Parent\"), u = b(\"MercuryJewelTemplates\"), v = b(\"MercuryThreadInformer\").get(), w = b(\"MercuryThreadMetadataRenderer\").get(), x = b(\"MercuryThreads\").get(), y = b(\"Tooltip\"), z = b(\"MercuryUnreadState\").get(), aa = b(\"copyProperties\"), ba = b(\"csx\"), ca = b(\"cx\"), da = b(\"throttle\"), ea = b(\"tx\"), fa = n.create(\"mercury_jewel\");\n    function ga(na, oa) {\n        this._contentArea = (l.scry(na, \".scrollable\")[0] || na);\n        this._contentElement = l.find(this._contentArea, \".jewelContent\");\n        this._loadingElement = l.find(this._contentArea, \".jewelLoading\");\n        this._loadMoreButton = l.find(this._contentArea, \"._8y5\");\n        this._loadMoreLink = l.find(this._contentArea, \"a._8y6\");\n        this._currentFolder = r.INBOX;\n        this._jewelFolderLinks = [];\n        this._jewelFolderLinks[r.INBOX] = l.find(oa, \"._1sde\");\n        this._jewelFolderLinks[r.OTHER] = l.find(oa, \"._1sdf\");\n        this._jewelFolderCounts = [];\n        this._jewelFolderCounts[r.INBOX] = l.find(oa, \"._1sdg\");\n        this._jewelFolderCounts[r.OTHER] = l.find(oa, \"._1sdh\");\n        la.bind(this)();\n        m.listen(this._jewelFolderLinks[r.INBOX], \"click\", ka.bind(this, r.INBOX));\n        m.listen(this._jewelFolderLinks[r.OTHER], \"click\", ka.bind(this, r.OTHER));\n        this._curCount = [];\n        this._curCount[r.INBOX] = (q.JEWEL_THREAD_COUNT + 1);\n        this._curCount[r.OTHER] = (q.JEWEL_THREAD_COUNT + 1);\n        this._isFolderLoaded = [];\n        this._isFolderLoaded[r.INBOX] = false;\n        this._isFolderLoaded[r.OTHER] = false;\n        this._folderIsLoading = [];\n        this._folderIsLoading[r.INBOX] = false;\n        this._folderIsLoading[r.OTHER] = false;\n        v.subscribe(\"threadlist-updated\", this.render.bind(this));\n        v.subscribe(\"unread-updated\", la.bind(this));\n        this.render();\n        fa.bump((\"opened_threadlist_\" + this._currentFolder));\n        m.listen(this._contentArea, \"scroll\", da(ha, 50, this));\n        m.listen(this._loadMoreLink, \"click\", this.renderMoreThreads.bind(this));\n    };\n    aa(ga, {\n        EVENT_THREADS_LOADED: \"threads-loaded\",\n        EVENT_THREADS_RENDERED: \"threads-rendered\"\n    });\n    aa(ga.prototype, h);\n    aa(ga.prototype, {\n        render: function() {\n            l.empty(this._contentElement);\n            k.show(this._loadingElement);\n            k.hide(this._loadMoreButton);\n            var na = l.create(\"div\");\n            l.appendContent(this._contentElement, na);\n            s.getThreadlist(q.RECENT_THREAD_OFFSET, this._curCount[this._currentFolder], this._currentFolder, this.renderThreads.bind(this, na), true);\n        },\n        renderThreads: function(na, oa) {\n            this.inform(ga.EVENT_THREADS_LOADED);\n            if (oa.length) {\n                oa.forEach(function(pa) {\n                    var qa = u[\":fb:mercury:jewel:threadlist-row\"].build();\n                    x.getThreadMeta(pa, function(ra) {\n                        w.renderCoreThreadlist(ra, qa, this.renderSingleThread.bind(this), {\n                            show_unread_count: true\n                        });\n                    }.bind(this));\n                    l.appendContent(na, qa.getRoot());\n                }.bind(this));\n            }\n             else l.setContent(this._contentElement, this.renderEmptyThreadlist());\n        ;\n            k.hide(this._loadingElement);\n            k.conditionShow(this._loadMoreButton, !this._isFolderLoaded[this._currentFolder]);\n            this.inform(ga.EVENT_THREADS_RENDERED);\n        },\n        renderSingleThread: function(na, oa) {\n            var pa = (oa.unread_count > 0);\n            if (pa) {\n                k.addClass(na.getRoot(), \"jewelItemNew\");\n            };\n            if (j.MessagesJewelToggleReadGK) {\n                var qa = o.div({\n                    className: \"x_div\"\n                }), ra = o.div({\n                    className: \"_5c9q\"\n                }), sa = \"Mark as Unread\";\n                if (pa) {\n                    sa = \"Mark as Read\";\n                };\n                y.set(ra, sa, \"above\", \"right\");\n                m.listen(ra, \"click\", function(event) {\n                    x.changeThreadReadStatus(oa.thread_id, (oa.unread_count > 0));\n                    return false;\n                });\n                qa.appendChild(ra);\n                na.getNode(\"link\").appendChild(qa);\n            }\n        ;\n            if ((j.MessagesJewelOpenInChat && i.canOpenChatTab(oa))) {\n                m.listen(na.getRoot(), \"click\", function(event) {\n                    g.inform(\"chat/open-tab\", {\n                        thread_id: oa.thread_id\n                    });\n                });\n            }\n             else w.renderTitanLink(oa.thread_id, na.getNode(\"link\"), null, this._currentFolder);\n        ;\n            m.listen(na.getRoot(), \"mouseover\", function(event) {\n                var ta = na.getRoot();\n                if (!t.byClass(ta, \"notifNegativeBase\")) {\n                    k.addClass(ta, \"selected\");\n                };\n            });\n            m.listen(na.getRoot(), \"mouseout\", function(event) {\n                k.removeClass(na.getRoot(), \"selected\");\n            });\n        },\n        renderMoreThreads: function() {\n            k.addClass(this._loadMoreButton, \"async_saving\");\n            this._folderIsLoading[this._currentFolder] = true;\n            var na = (this._curCount[this._currentFolder] + q.JEWEL_MORE_COUNT);\n            s.getThreadlist(q.RECENT_THREAD_OFFSET, (na + 1), this._currentFolder, ja.bind(this, na, this._currentFolder), true, p.JEWEL);\n        },\n        renderEmptyThreadlist: function() {\n            return l.create(\"li\", {\n                className: \"empty\"\n            }, \"No messages\");\n        }\n    });\n    function ha() {\n        if (((!this._isFolderLoaded[this._currentFolder] && !this._folderIsLoading[this._currentFolder]) && ia.bind(this)())) {\n            this.renderMoreThreads();\n        };\n    };\n    function ia() {\n        return ((this._contentArea.scrollTop + this._contentArea.clientHeight) >= (this._contentArea.scrollHeight - 1));\n    };\n    function ja(na, oa, pa) {\n        this._curCount[oa] = na;\n        if ((!this._isFolderLoaded[oa] && (pa.length < (this._curCount[oa] + 1)))) {\n            this._isFolderLoaded[oa] = true;\n        };\n        this._folderIsLoading[oa] = false;\n        k.removeClass(this._loadMoreButton, \"async_saving\");\n        this.render();\n    };\n    function ka(na) {\n        if ((this._currentFolder != na)) {\n            fa.bump((\"opened_threadlist_\" + na));\n            k.addClass(this._jewelFolderLinks[na], \"_1sdd\");\n            k.removeClass(this._jewelFolderLinks[this._currentFolder], \"_1sdd\");\n            this._currentFolder = na;\n            this.render();\n        }\n    ;\n    };\n    function la() {\n        ma.bind(this)(r.INBOX);\n        ma.bind(this)(r.OTHER);\n    };\n    function ma(na) {\n        var oa;\n        if (z.exceedsMaxCount(na)) {\n            oa = q.MAX_UNREAD_COUNT;\n        }\n         else oa = z.getUnreadCount(na);\n    ;\n        var pa = this._jewelFolderCounts[na];\n        if ((oa > 0)) {\n            if ((oa == q.MAX_UNREAD_COUNT)) {\n                oa += \"+\";\n            };\n            l.setContent(pa, ea._(\"({unread_count})\", {\n                unread_count: oa\n            }));\n        }\n         else l.setContent(pa, \"\");\n    ;\n    };\n    e.exports = ga;\n});\n__d(\"MercuryJewel\", [\"MercuryChannelHandler\",\"MercuryJewelCountControl\",\"DOM\",\"MercuryJewelThreadlistControl\",\"MercuryServerRequests\",\"userAction\",], function(a, b, c, d, e, f) {\n    b(\"MercuryChannelHandler\");\n    var g = b(\"MercuryJewelCountControl\"), h = b(\"DOM\"), i = b(\"MercuryJewelThreadlistControl\"), j = b(\"MercuryServerRequests\").get(), k = b(\"userAction\"), l = false;\n    function m(q, r, s, t) {\n        j.handleUpdate(t);\n        var u = new g(r, s), v = h.find(q, \"#MercuryJewelThreadList\");\n        if ((s.getRoot() && s.isOpen())) {\n            n.call(this, v, q);\n        }\n         else s.subscribe(\"opened\", n.bind(this, v, q));\n    ;\n    };\n    e.exports = m;\n    function n(q, r) {\n        this._ua = k(\"messages\").uai(\"click\", \"jewel\");\n        this._listenForLoad = this._listenForRender = true;\n        if (!l) {\n            var s = new i(q, r);\n            s.subscribe(i.EVENT_THREADS_LOADED, o.bind(this));\n            s.subscribe(i.EVENT_THREADS_RENDERED, p.bind(this));\n            l = true;\n        }\n    ;\n    };\n    function o() {\n        if (this._listenForLoad) {\n            this._ua.add_event(\"loaded\");\n            this._listenForLoad = false;\n        }\n    ;\n    };\n    function p() {\n        if (this._listenForRender) {\n            this._ua.add_event(\"rendered\");\n            this._listenForRender = false;\n        }\n    ;\n    };\n});\n__d(\"MessagingEvents\", [\"Arbiter\",\"ChannelConstants\",\"arrayContains\",\"copyProperties\",\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"isEmpty\"), l = {\n    }, m = new g();\n    function n(o) {\n        if (!k(l)) {\n            return\n        };\n        for (var p in o) {\n            m.inform((\"count/\" + p), o[p]);;\n        };\n    };\n    m.subscribe(\"mark-as-read\", function(o, p) {\n        (((p.tids || p.chat_ids) || [])).forEach(function(q) {\n            q = (\"\" + q);\n            if (!((q in l))) {\n                l[q] = true;\n                var r = function() {\n                    m.unsubscribe(s);\n                    clearTimeout(t);\n                    delete l[q];\n                }, s = m.subscribe(\"read\", function(u, v) {\n                    if ((i(((v.tids || [])), q) || i(((v.chat_ids || [])), q))) {\n                        r();\n                    };\n                }), t = r.defer(60000);\n            }\n        ;\n        });\n    });\n    g.subscribe(h.getArbiterType(\"messaging\"), function(o, p) {\n        var q = j({\n        }, p.obj), event = (q.event || \"\");\n        delete q.type;\n        delete q.event;\n        m.inform(event, q);\n        if ((\"unread_counts\" in q)) {\n            var r = q.unread_counts;\n            n({\n                unread: r.inbox,\n                other_unseen: r.other\n            });\n        }\n    ;\n    });\n    g.subscribe(h.getArbiterType(\"inbox\"), function(o, p) {\n        var q = j(p.obj);\n        delete q.type;\n        n(q);\n    });\n    a.MessagingEvents = e.exports = m;\n}, 3);\n__d(\"TitanLeftNav\", [\"CounterDisplay\",\"MessagingEvents\",], function(a, b, c, d, e, f) {\n    var g = b(\"CounterDisplay\"), h = b(\"MessagingEvents\"), i = {\n        initialize: function() {\n            h.subscribe(\"count/other_unseen\", function(j, k) {\n                g.setCount(\"other_unseen\", k);\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"AccessibleMenu\", [\"Event\",\"CSS\",\"DOM\",\"Keys\",\"TabbableElements\",\"Toggler\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"Toggler\"), m, n, o;\n    function p() {\n        var x = i.scry(m, \"a[rel=\\\"toggle\\\"]\")[0];\n        (x && x.focus());\n        l.getInstance(m).hide();\n    };\n    function q(x) {\n        if (!x) {\n            return false\n        };\n        h.removeClass(x, \"selected\");\n        x.setAttribute(\"aria-selected\", \"false\");\n    };\n    function r(x) {\n        if (!x) {\n            return false\n        };\n        h.addClass(x, \"selected\");\n        x.setAttribute(\"aria-selected\", \"true\");\n        var y = k.find(x);\n        if (y[0]) {\n            y[0].focus();\n        };\n    };\n    function s(x) {\n        var y = i.scry(m, \".selected\")[0], z = (n.indexOf(y) + x), aa = n[z];\n        if (!aa) {\n            return false\n        };\n        q(y);\n        r(aa);\n    };\n    function t(x) {\n        if ((!l.isShown() || (l.getActive() !== m))) {\n            return true\n        };\n        var y = g.getKeyCode(x);\n        switch (y) {\n          case j.TAB:\n            s((x.shiftKey ? -1 : 1));\n            g.prevent(x);\n            break;\n          case j.ESC:\n            p();\n            g.prevent(x);\n            break;\n          case j.UP:\n        \n          case j.DOWN:\n            s(((y === j.UP) ? -1 : 1));\n            g.prevent(x);\n            break;\n        };\n    };\n    function u(x, y) {\n        m = y.getActive();\n        n = i.scry(m, \"[role=\\\"menuitem\\\"]\");\n        if (!o) {\n            o = g.listen(document.documentElement, \"keydown\", t);\n        };\n    };\n    function v() {\n        if ((l.getActive() == m)) {\n            q(i.scry(m, \".selected\")[0]);\n        };\n    };\n    var w = {\n        init: function(x) {\n            l.listen(\"show\", x, u);\n            l.listen(\"hide\", x, v);\n        }\n    };\n    e.exports = w;\n});\n__d(\"UserNoOp\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"emptyFunction\"), i = function() {\n    \n    };\n    g(i.prototype, {\n        add_event: h.thatReturnsThis,\n        add_data: h.thatReturnsThis,\n        uai: h.thatReturnsThis,\n        uai_fallback: h.thatReturnsThis\n    });\n    e.exports = i;\n});\n__d(\"isEmail\", [], function(a, b, c, d, e, f) {\n    var g = /^[\\w!#\\$%&'\\*\\+\\/\\=\\?\\^`\\{\\|\\}~\\-]+(:?\\.[\\w!#\\$%&`\\*\\+\\/\\=\\?\\^`\\{\\|\\}~\\-]+)*@(?:[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?$/i;\n    function h(i) {\n        return g.test(i);\n    };\n    e.exports = h;\n});\n__d(\"NegativeNotif\", [\"Animation\",\"AsyncRequest\",\"CSS\",\"DataStore\",\"DOM\",\"Event\",\"Parent\",\"Tooltip\",\"NotifXList\",\"$\",\"clickRefAction\",\"copyProperties\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"Event\"), m = b(\"Parent\"), n = b(\"Tooltip\"), o = b(\"NotifXList\"), p = b(\"$\"), q = b(\"clickRefAction\"), r = b(\"copyProperties\"), s = b(\"userAction\");\n    function t(u, v) {\n        r(this, v);\n        this.owner = u;\n        this.xLink = k.find(this.obj, \".notif_x\");\n        this.confirmingMsg = k.find(this.obj, \".confirmingMsg\");\n        this.mainLink = k.find(this.obj, \".notifMainLink\");\n        this.userXClicked = false;\n        this.userUnsubscribed = false;\n        l.listen(this.xLink, \"click\", this.xClick.bind(this));\n        if ((i.hasClass(this.obj, \"first_receipt\") && i.hasClass(p(\"jewelContainer\"), \"notifGentleAppReceipt\"))) {\n            this.gentleFirstReceiptHoverEventHandler = l.listen(this.obj, \"mouseover\", this.gentleFirstReceiptNotifHover.bind(this));\n        };\n    };\n    r(t.prototype, {\n        FADE_AWAY_DURATION: 2500,\n        X_OUT_DURATION: 100,\n        X_OUT_DURATION_SHORT: 2,\n        GENTLE_FRUI_MIN_HOVER_DURATION: 500,\n        GENTLE_FRUI_FADE_DURATION_FAST: 200,\n        GENTLE_FRUI_FADE_DURATION_SLOW: 2500,\n        GENTLE_FRUI_DELAY_FADE_TIME: 60000,\n        xClick: function(event) {\n            this._activateX();\n            var u = this.xLink.getAttribute(\"data-gt\"), v = (u ? {\n                gt: JSON.parse(u)\n            } : {\n            });\n            s(\"xbutton\", this.xLink, event).uai(\"click\");\n            q(\"click\", this.xLink, event, null, v);\n            return false;\n        },\n        gentleFirstReceiptNotifHover: function(event) {\n            event.stop();\n            var u = k.find(this.obj, \".first_receipt_no_button\"), v = j.get(u, \"notif_fr_prompt\");\n            n.set(u, v, \"above\", \"center\");\n            n.show(u);\n            this._gentleFirstReceiptTooltipFadeIn();\n            if (!this.gentleFirstReceiptUnhoverEventHandler) {\n                this.hoverTime = new Date();\n                this.gentleFirstReceiptUnhoverEventHandler = l.listen(document.documentElement, \"mouseover\", this.gentleFirstReceiptNotifUnhover.bind(this));\n            }\n        ;\n            if (!this.gentleFirstReceiptNoClickEventHandler) {\n                this.gentleFirstReceiptNoClickEventHandler = l.listen(u, \"click\", this.gentleFirstReceiptNoClick.bind(this));\n            };\n        },\n        gentleFirstReceiptNotifUnhover: function(event) {\n            if ((m.byClass(event.getTarget(), \"uiContextualLayer\") || m.byClass(event.getTarget(), \"uiScrollableAreaTrack\"))) {\n                return false\n            };\n            var u = new Date();\n            if ((this.hoverTime && ((u - this.hoverTime) < this.GENTLE_FRUI_MIN_HOVER_DURATION))) {\n                this.gentleFirstReceiptUnhoverEventHandler.remove();\n                this.gentleFirstReceiptUnhoverEventHandler = null;\n                this._gentleFirstReceiptTooltipAlreadyFadedIn = false;\n                return;\n            }\n        ;\n            this._removeGentleFirstReceiptListeners();\n            this._gentleFirstReceiptTooltipFadeAway();\n            this._gentleFirstReceiptXButtonFadeAway();\n            var v = this;\n            setTimeout(function() {\n                v._gentleFirstReceiptUIFadeAway();\n            }, this.GENTLE_FRUI_DELAY_FADE_TIME);\n            this._sendFirstReceiptYesToServer();\n        },\n        gentleFirstReceiptNoClick: function(event) {\n            this._removeGentleFirstReceiptListeners();\n        },\n        restore: function() {\n            if (o.newNotifExist(this.id)) {\n                o.resumeInsert(this.id);\n            }\n             else o.removeNotif(this.id);\n        ;\n            this._confirmingMsgFadeAway(this.confirmingMsg);\n            this._notifMainLinkShowUp(this.mainLink);\n            this._buttonShowUp(this.xLink);\n            this._adjustContainer(this.obj);\n        },\n        reset: function() {\n            if ((this.userXClicked && !this.userUnsubscribed)) {\n                this.userXClicked = false;\n                this.restore();\n            }\n        ;\n        },\n        onTurnedOff: function() {\n            this.userUnsubscribed = true;\n            i.hide(this.confirmingMsg);\n            this._notifMainLinkShowUp(k.find(this.obj, \".confirmedMsg\"));\n            this._adjustContainer(this.obj);\n        },\n        onUndid: function() {\n            this.userXClicked = false;\n            this.userUnsubscribed = false;\n            this.restore();\n            i.show(this.confirmingMsg);\n            this._notifMainLinkFadeAway(k.find(this.obj, \".confirmedMsg\"));\n            k.remove(k.find(this.obj, \".confirmedMsg\"));\n        },\n        onMarkedSpam: function() {\n            k.remove(k.find(this.obj, \".confirmedMsg\"));\n            this._fadeAway(k.find(this.obj, \".spamMsg\"));\n        },\n        onFirstReceiptYes: function() {\n            this._hideFirstReceiptDiv();\n            this._fadeAway(k.find(this.obj, \".firstConfirmedMsg\"));\n        },\n        onFirstReceiptNo: function() {\n            this._hideFirstReceiptDiv();\n            i.hide(this.confirmingMsg);\n            this._activateX();\n            new h().setURI(\"/ajax/notifications/negative_req.php\").setData({\n                request_type: \"turn_off\",\n                notification_id: this.id\n            }).send();\n        },\n        _sendFirstReceiptYesToServer: function() {\n            new h().setURI(\"/ajax/notifications/negative_req.php\").setData({\n                request_type: \"first_receipt_yes\",\n                notification_id: this.id\n            }).send();\n        },\n        _gentleFirstReceiptTooltipFadeIn: function() {\n            if (this._gentleFirstReceiptTooltipAlreadyFadedIn) {\n                return\n            };\n            var u = k.find(document.documentElement, \".uiLayer .uiContextualLayer .uiTooltipX\");\n            new g(u).from(\"opacity\", \"0\").to(\"opacity\", \"1\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).go();\n            this._gentleFirstReceiptTooltipAlreadyFadedIn = true;\n        },\n        _gentleFirstReceiptTooltipFadeAway: function() {\n            if (!this._gentleFirstReceiptTooltipAlreadyFadedIn) {\n                return\n            };\n            var u = k.find(document.documentElement, \".uiLayer .uiContextualLayer .uiTooltipX\"), v = m.byClass(u, \"uiLayer\"), w = v.cloneNode(true);\n            k.insertAfter(v, w);\n            new g(w).from(\"opacity\", \"1\").to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).ondone(function() {\n                k.remove(w);\n            }).go();\n            this._gentleFirstReceiptTooltipAlreadyFadedIn = false;\n        },\n        _gentleFirstReceiptXButtonFadeAway: function() {\n            var u = k.find(this.obj, \".first_receipt_no_button\");\n            new g(u).from(\"opacity\", \"1\").to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).hide().go();\n            i.addClass(this.obj, \"show_original_x\");\n        },\n        _gentleFirstReceiptUIFadeAway: function() {\n            var u = this.obj;\n            this.new_label = k.find(this.obj, \".notif_new_label\");\n            new g(this.new_label).to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_SLOW).ondone(function() {\n                i.removeClass(u, \"first_receipt\");\n            }).go();\n            if (!i.hasClass(this.obj, \"jewelItemNew\")) {\n                new g(this.obj).from(\"backgroundColor\", \"#ECEFF5\").to(\"backgroundColor\", \"#FFFFFF\").duration(this.GENTLE_FRUI_FADE_DURATION_SLOW).go();\n            };\n        },\n        _removeGentleFirstReceiptListeners: function() {\n            if (this.gentleFirstReceiptHoverEventHandler) {\n                this.gentleFirstReceiptHoverEventHandler.remove();\n            };\n            if (this.gentleFirstReceiptUnhoverEventHandler) {\n                this.gentleFirstReceiptUnhoverEventHandler.remove();\n            };\n            if (this.gentleFirstReceiptNoClickEventHandler) {\n                this.gentleFirstReceiptNoClickEventHandler.remove();\n            };\n        },\n        _activateX: function() {\n            i.addClass(this.obj, \"forPushSafety\");\n            this.userXClicked = true;\n            o.userXClick(this.id);\n            this._notifMainLinkFadeAway(this.mainLink);\n            this._buttonFadeAway(this.xLink);\n            if (i.shown(this.confirmingMsg)) {\n                this._confirmingMsgShowUp(this.confirmingMsg);\n            };\n            this._adjustContainer(this.obj);\n        },\n        _hideFirstReceiptDiv: function() {\n            i.removeClass(this.obj, \"first_receipt\");\n            i.hide(k.find(this.obj, \".first_receipt_div\"));\n        },\n        _fadeAway: function(u) {\n            new g(u).from(\"backgroundColor\", \"#FFF9D7\").to(\"backgroundColor\", \"#FFFFFF\").duration(this.FADE_AWAY_DURATION).checkpoint().to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.X_OUT_DURATION).go();\n        },\n        _adjustContainer: function(u) {\n            new g(u).by(\"height\", \"0px\").duration(this.X_OUT_DURATION).checkpoint().by(\"height\", \"0px\").duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"height\", \"auto\").duration(this.X_OUT_DURATION).go();\n        },\n        _notifMainLinkShowUp: function(u) {\n            new g(u).duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"auto\").to(\"paddingTop\", \"4px\").to(\"paddingBottom\", \"4px\").blind().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n        },\n        _confirmingMsgShowUp: function(u) {\n            new g(u).duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"auto\").to(\"paddingTop\", \"10px\").to(\"paddingBottom\", \"10px\").blind().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n        },\n        _notifMainLinkFadeAway: function(u) {\n            new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.X_OUT_DURATION_SHORT).go();\n        },\n        _confirmingMsgFadeAway: function(u) {\n            new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().duration(this.X_OUT_DURATION_SHORT).go();\n        },\n        _buttonShowUp: function(u) {\n            new g(u).duration(this.X_OUT_DURATION).checkpoint().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n        },\n        _buttonFadeAway: function(u) {\n            new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().hide().duration(this.X_OUT_DURATION_SHORT).go();\n        }\n    });\n    e.exports = t;\n});\n__d(\"NotificationCounter\", [\"Arbiter\",\"DocumentTitle\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DocumentTitle\"), i = b(\"JSLogger\"), j = {\n        messages: 0,\n        notifications: 0,\n        requests: 0\n    }, k = {\n        init: function(l) {\n            g.subscribe(\"update_title\", this._handleUpdate.bind(this));\n            g.subscribe(\"jewel/count-updated\", this._handleCountUpdate.bind(this));\n        },\n        getCount: function() {\n            var l = 0;\n            for (var m in j) {\n                var n = Number(j[m]);\n                if (((typeof j[m] == \"string\") && isNaN(n))) {\n                    return j[m]\n                };\n                if ((isNaN(n) || (n < 0))) {\n                    i.create(\"jewels\").error(\"bad_count\", {\n                        jewel: m,\n                        count: j[m]\n                    });\n                    continue;\n                }\n            ;\n                l += n;\n            };\n            return l;\n        },\n        updateTitle: function() {\n            var l = this.getCount(), m = h.get();\n            m = (l ? (((\"(\" + l) + \") \") + m) : m);\n            h.set(m, true);\n        },\n        _handleCountUpdate: function(l, m) {\n            j[m.jewel] = m.count;\n            this.updateTitle();\n        },\n        _handleUpdate: function(l, m) {\n            this.updateTitle();\n        }\n    };\n    e.exports = k;\n});\n__d(\"NotificationList\", [\"Animation\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"DoublyLinkedListMap\",\"HTML\",\"NotificationURI\",\"Tooltip\",\"Event\",\"$\",\"copyProperties\",\"cx\",\"csx\",\"ge\",\"isEmpty\",\"tx\",\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DoublyLinkedListMap\"), l = b(\"HTML\"), m = b(\"NotificationURI\"), n = b(\"Tooltip\"), o = b(\"Event\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = b(\"csx\"), t = b(\"ge\"), u = b(\"isEmpty\"), v = b(\"tx\"), w = b(\"hasArrayNature\"), x = \"0\", y = \"1\", z = \"2\";\n    function aa(da) {\n        return ((da == y) || (da == z));\n    };\n    function ba(da) {\n        return (da == y);\n    };\n    function ca(da, ea) {\n        this._list = new k();\n        this._filter_func = null;\n        this.unseenCount = 0;\n        this.contentRoot = da;\n        this.noItemsElement = null;\n        this.ITEM_TAG = \"li\";\n        this.ITEM_CLASS = \"notification\";\n        this.NO_ITEMS_ID = \"jewelNoNotifications\";\n        this.NO_ITEMS_CLASS = \"empty\";\n        this.compare = (ea.compare || this.compare);\n        this.shouldBlockAnimation = (ea.shouldBlockAnimation || null);\n        this.unseenVsUnread = (ea.unseenVsUnread || false);\n        this.markReadSignalServer = ea.markReadSignalServer;\n        this.animations = {\n        };\n    };\n    q(ca, {\n        ITEM_UNREAD_CLASS: \"jewelItemNew\",\n        MARK_READ_TYPE: \"mark_read\",\n        UNREAD_COUNT_CHANGE_TYPE: \"unread_count_change\",\n        INSERTION_TYPE: \"insert\",\n        REMOVAL_TYPE: \"remove\",\n        getIdFromDom: function(da) {\n            return da.getAttribute(\"id\").replace(\"notification_\", \"\");\n        },\n        localizeUrls: function(da) {\n            j.scry(da, \"a\").forEach(function(ea) {\n                ea.href = m.localize(ea.href);\n            });\n        }\n    });\n    q(ca.prototype, h, {\n        FADE_DURATION: 250,\n        RESIZE_DURATION: 200,\n        _getField: function(da, ea) {\n            var fa = this._list.get(da);\n            return (fa && fa[ea]);\n        },\n        getDomObj: function(da) {\n            return this._getField(da, \"obj\");\n        },\n        fromDom: function() {\n            var da = ((this.ITEM_TAG + \".\") + this.ITEM_CLASS), ea = j.scry(this.contentRoot, da);\n            for (var fa = 0; (fa < ea.length); ++fa) {\n                var ga = ea[fa], ha = ca.getIdFromDom(ga);\n                this.insert(ha, ga.getAttribute(\"data-notiftime\"), null);\n            };\n        },\n        compare: function(da, ea) {\n            return ((da.time < ea.time) || (((da.time === ea.time) && (da.id < ea.id))));\n        },\n        insert: function(da, ea, fa, ga, ha, ia) {\n            var ja = y, ka = 0, la = this._list.exists(da), ma = (ia && this._list.exists(ia)), na = null, oa;\n            if ((la || ma)) {\n                if (!((ga && fa))) {\n                    return false;\n                }\n                 else {\n                    if (this._filter_func) {\n                        oa = {\n                            notif_id: da,\n                            notif_time: ea,\n                            notif_markup: fa,\n                            replace: ga,\n                            ignoreUnread: ha,\n                            notif_alt_id: ia\n                        };\n                        if (this._filter_func(oa)) {\n                            return false\n                        };\n                    }\n                ;\n                    ja = this._getField(da, \"readness\");\n                    ka = this._getField(da, \"time\");\n                    if ((ka > ea)) {\n                        return false\n                    };\n                    na = (la ? da : ia);\n                    this._remove(na);\n                }\n            \n            };\n            var pa = (((fa && l(fa).getRootNode())) || p((\"notification_\" + da))), qa = Math.max(ea, ka), ra = pa.getAttribute(\"data-readness\");\n            if ((!this.unseenVsUnread && (z == ra))) {\n                ra = x;\n            };\n            oa = {\n                id: da,\n                obj: pa,\n                time: qa,\n                readness: ra,\n                app_id: pa.getAttribute(\"data-appid\")\n            };\n            this._insert(oa);\n            this._setUpReadStateToggle(da, pa);\n            ca.localizeUrls(pa);\n            (this.noItemsElement && i.hide(this.noItemsElement));\n            if (ba(ra)) {\n                ((ha && !aa(ja)) && this.markRead([da,]));\n                this.unseenCount = this.getUnseenIds().length;\n                this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n            }\n        ;\n            var sa = ((!na || (ka < qa)) || (((ra && !ja) && !ha)));\n            this.inform(ca.INSERTION_TYPE, {\n                id: da,\n                is_new: sa,\n                obj: pa,\n                replaced_id: na,\n                time: qa\n            });\n            return true;\n        },\n        _setReadStateToggleReadness: function(da, ea) {\n            var fa;\n            if (ea) {\n                fa = (this.unseenVsUnread ? \"Mark as Read\" : \"Unread\");\n            }\n             else fa = \"Read\";\n        ;\n            if (!((ea && this.unseenVsUnread))) {\n                i.removeClass(da, \"_5c9q\");\n                i.addClass(da, \"_5c9_\");\n            }\n        ;\n            n.set(da, fa, \"above\", \"center\");\n        },\n        _setUpReadStateToggle: function(da, ea) {\n            var fa = this.isUnreadId(da), ga = j.scry(ea, \"._5c9q\")[0];\n            if (!ga) {\n                return\n            };\n            this._setReadStateToggleReadness(ga, fa);\n            var ha = function(event) {\n                if ((this.unseenVsUnread && this.isUnreadId(da))) {\n                    this.markReadSignalServer([da,]);\n                };\n                o.kill(event);\n                return false;\n            };\n            o.listen(ga, \"click\", ha.bind(this));\n        },\n        showNoNotifications: function() {\n            if ((null == this.noItemsElement)) {\n                this.noItemsElement = t(this.NO_ITEMS_ID);\n            };\n            if ((null == this.noItemsElement)) {\n                this.noItemsElement = j.create(this.ITEM_TAG, {\n                    id: this.NO_ITEMS_ID,\n                    className: this.NO_ITEMS_CLASS\n                }, \"No new notifications\");\n                j.appendContent(this.contentRoot, this.noItemsElement);\n            }\n        ;\n            i.show(this.noItemsElement);\n        },\n        _insert: function(da) {\n            this._list.remove(da.id);\n            var ea = null;\n            this._list.find(function(ga) {\n                var ha = this.compare(ga, da);\n                (!ha && (ea = ga.id));\n                return ha;\n            }.bind(this));\n            var fa = this.getDomObj(ea);\n            if (fa) {\n                this._list.insertAfter(da.id, da, ea);\n                j.insertAfter(fa, da.obj);\n            }\n             else {\n                this._list.prepend(da.id, da);\n                j.prependContent(this.contentRoot, da.obj);\n            }\n        ;\n        },\n        _remove: function(da) {\n            var ea = this._getField(da, \"obj\");\n            if (!ea) {\n                return false\n            };\n            this.inform(ca.REMOVAL_TYPE, {\n                id: da\n            });\n            this._list.remove(da);\n            j.remove(ea);\n            (this.isEmpty() && this.showNoNotifications());\n            return true;\n        },\n        getUnreadIds: function() {\n            return this._list.reduce(function(da, ea) {\n                (aa(da.readness) && ea.push(da.id));\n                return ea;\n            }, []);\n        },\n        getUnseenIds: function() {\n            return this._list.reduce(function(da, ea) {\n                (ba(da.readness) && ea.push(da.id));\n                return ea;\n            }, []);\n        },\n        getIds: function() {\n            return this._list.reduce(function(da, ea) {\n                ea.push(da.id);\n                return ea;\n            }, []);\n        },\n        isUnreadId: function(da) {\n            var ea = this.getDomObj(da);\n            return (aa(this._getField(da, \"readness\")) || ((ea && i.hasClass(ea, ca.ITEM_UNREAD_CLASS))));\n        },\n        isUnseenId: function(da) {\n            return ba(this._getField(da, \"readness\"));\n        },\n        markRead: function(da, ea) {\n            da = (da ? da.filter(this.isUnreadId.bind(this)) : this.getUnreadIds());\n            var fa = false;\n            for (var ga = 0; (ga < da.length); ga++) {\n                var ha = this._list.get(da[ga]);\n                if (ha) {\n                    if (this._setReadness(da[ga], x)) {\n                        fa = true;\n                    };\n                    if (ea) {\n                        this._markReadInDom(da[ga], ha.obj);\n                    }\n                     else this.animateMarkRead(ha.obj);\n                ;\n                }\n            ;\n            };\n            if (fa) {\n                this.unseenCount = this.getUnseenIds().length;\n                this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n            }\n        ;\n        },\n        markSeen: function(da) {\n            if (!w(da)) {\n                return\n            };\n            if (!this.unseenVsUnread) {\n                this.markRead(da);\n                return;\n            }\n        ;\n            da = da.filter(this.isUnseenId.bind(this));\n            var ea = false;\n            for (var fa = 0; (fa < da.length); fa++) {\n                if (this._setReadness(da[fa], z)) {\n                    ea = true;\n                };\n            };\n            if (ea) {\n                this.unseenCount = this.getUnseenIds().length;\n                this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n            }\n        ;\n        },\n        _setReadness: function(da, ea) {\n            var fa = this._list.get(da);\n            if ((!fa || (fa.readness == ea))) {\n                return false\n            };\n            if (((fa.readness == x) && (ea == z))) {\n                return false\n            };\n            fa.readness = ea;\n            fa.obj.setAttribute(\"data-readness\", ea);\n            return true;\n        },\n        _markReadInDom: function(da, ea) {\n            if (!this.isUnreadId(da)) {\n                return\n            };\n            var fa = p(ea);\n            if (fa) {\n                this.stopAnimation(da);\n                i.removeClass(fa, ca.ITEM_UNREAD_CLASS);\n                var ga = j.scry(fa, \".read_toggle\")[0];\n                (ga && this._setReadStateToggleReadness(ga, false));\n            }\n        ;\n        },\n        animateMarkRead: function(da) {\n            if (!i.hasClass(da, ca.ITEM_UNREAD_CLASS)) {\n                return\n            };\n            var ea = ca.getIdFromDom(da), fa = this._markReadInDom.bind(this, ea, da);\n            if (i.hasClass(da, \"fbJewelBeep\")) {\n                fa();\n                return;\n            }\n        ;\n            if ((this.shouldBlockAnimation && this.shouldBlockAnimation(da))) {\n                return\n            };\n            fa.defer(10000);\n        },\n        stopAnimation: function(da) {\n            ((da in this.animations) && this.animations[da].stop());\n            delete this.animations[da];\n            return true;\n        },\n        insertMany: function(da, ea) {\n            if (((\"object\" == typeof da) && !u(da))) {\n                for (var fa in da) {\n                    var ga = da[fa];\n                    this.insert(fa, ga.time, ga.markup, true, ea, (ga.alt_id || null));\n                };\n                (this.noItemsElement && i.hide(this.noItemsElement));\n            }\n             else (this.isEmpty() && this.showNoNotifications());\n        ;\n        },\n        isEmpty: function() {\n            return this._list.isEmpty();\n        },\n        getEarliestNotifTime: function() {\n            return (this._list.isEmpty() ? 0 : Math.min.apply(null, this.getIds().map(function(da) {\n                return this._getField(da, \"time\");\n            }.bind(this))));\n        },\n        setFilterFn: function(da) {\n            this._filter_func = da;\n        },\n        toggleNotifsSimilarTo: function(da, ea, fa) {\n            var ga = this._getField(da, \"app_id\");\n            if (ga) {\n                var ha = this.getIds();\n                for (var ia = 0; (ia < ha.length); ++ia) {\n                    if ((ga == this._getField(ha[ia], \"app_id\"))) {\n                        var ja = this.getDomObj(ha[ia]);\n                        if ((da != ha[ia])) {\n                            (ea ? this._hideWithAnimation(ja) : this._showWithAnimation(ja));\n                        };\n                        var ka = j.scry(ja, \".first_receipt_div\");\n                        if ((ka.length == 1)) {\n                            if (fa) {\n                                i.hide(ka[0]);\n                                i.removeClass(ja, \"first_receipt\");\n                            }\n                             else {\n                                i.show(ka[0]);\n                                i.addClass(ja, \"first_receipt\");\n                            }\n                        \n                        };\n                    }\n                ;\n                };\n            }\n        ;\n        },\n        _hideWithAnimation: function(da) {\n            new g(da).to(\"opacity\", \"0\").blind().duration(this.FADE_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.RESIZE_DURATION).go();\n        },\n        _showWithAnimation: function(da) {\n            new g(da).to(\"height\", \"auto\").to(\"paddingTop\", \"auto\").to(\"paddingBottom\", \"auto\").blind().show().duration(this.RESIZE_DURATION).checkpoint().to(\"opacity\", \"1\").blind().duration(this.FADE_DURATION).go();\n        }\n    });\n    e.exports = ca;\n});\n__d(\"Notifications\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"Bootloader\",\"ChannelConstants\",\"CSS\",\"DOM\",\"Env\",\"Event\",\"JSLogger\",\"NegativeNotif\",\"NotificationCounter\",\"NotificationList\",\"NotifXList\",\"Parent\",\"Poller\",\"ScrollableArea\",\"Style\",\"SystemEvents\",\"Toggler\",\"URI\",\"UserActivity\",\"UserNoOp\",\"Vector\",\"$\",\"copyProperties\",\"emptyFunction\",\"ge\",\"hasArrayNature\",\"isEmpty\",\"shield\",\"throttle\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"AsyncSignal\"), k = b(\"Bootloader\"), l = b(\"ChannelConstants\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Env\"), p = b(\"Event\"), q = b(\"JSLogger\"), r = b(\"NegativeNotif\"), s = b(\"NotificationCounter\"), t = b(\"NotificationList\"), u = b(\"NotifXList\"), v = b(\"Parent\"), w = b(\"Poller\"), x = b(\"ScrollableArea\"), y = b(\"Style\"), z = b(\"SystemEvents\"), aa = b(\"Toggler\"), ba = b(\"URI\"), ca = b(\"UserActivity\"), da = b(\"UserNoOp\"), ea = b(\"Vector\"), fa = b(\"$\"), ga = b(\"copyProperties\"), ha = b(\"emptyFunction\"), ia = b(\"ge\"), ja = b(\"hasArrayNature\"), ka = b(\"isEmpty\"), la = b(\"shield\"), ma = b(\"throttle\"), na = b(\"userAction\");\n    function oa(pa) {\n        this.updateTime = (pa.updateTime || Date.now());\n        this.update_period = (pa.updatePeriod || 60000);\n        this.latest_notif_time = (pa.latestNotif || 0);\n        this.latest_read_notif_time = (pa.latestReadNotif || 0);\n        this.cache_version = (pa.cacheVersion || 0);\n        this.notifReceivedType = (pa.notifReceivedType || \"notification\");\n        this.wrapperID = (pa.wrapperID || \"notificationsWrapper\");\n        this.contentID = (pa.contentID || \"jewelNotifs\");\n        this.shouldLogImpressions = (pa.shouldLogImpressions || false);\n        this.allowDesktopNotifications = (pa.allowDesktopNotifications || false);\n        this.logAutoShutOffImpression = true;\n        this.useInfiniteScroll = (pa.useInfiniteScroll || false);\n        this.unseenVsUnread = (pa.unseenVsUnread || false);\n        this.scrollableAreaNode = null;\n        this.firstReceiptMap = {\n        };\n        this.user = o.user;\n        this.queuedNotifications = [];\n        this.timeElement = \"small.time\";\n        this.ua = new da();\n        this._init();\n    };\n    ga(oa.prototype, {\n        TIME_TRAVEL: \"time_travel\",\n        ONLINE: \"online\",\n        SCROLL_OFF_TINY: \"scroll_off_tiny\",\n        INACTIVE_REFRESH: \"inactive_refresh\",\n        _init: function() {\n            this.cookieName = (\"notifications_\" + this.user);\n            this.updateCheckCount = 0;\n            this.fetchListeners = [];\n            this.currentFetchRequest = null;\n            this.wrapper = ia(this.wrapperID);\n            this.content = ia(this.contentID);\n            this.jewelFlyout = ia(\"fbNotificationsFlyout\");\n            this.footer = n.find(this.jewelFlyout, \".jewelFooter\");\n            this.loadingIndicator = ia((this.contentID + \"_loading_indicator\"));\n            this.NOTIF_JEWEL_REF = \"notif_jewel\";\n            this.notifLogger = q.create(\"notifications\");\n            s.init();\n            this.alertList = new t(this.content, this._getListParams());\n            this._updateCount();\n            ((a.MinNotifications && a.MinNotifications.fetchSent()) && (this.fetch = ha));\n            h.subscribe(l.getArbiterType(this.notifReceivedType), this._handleNotificationMsg.bind(this));\n            h.subscribe(l.getArbiterType(\"notifications_read\"), this._handleNotificationsReadMsg.bind(this));\n            h.subscribe(l.getArbiterType(\"notifications_seen\"), this._handleNotificationsSeenMsg.bind(this));\n            h.subscribe(\"jewel/resize\", la(this._hideOverflow, this));\n            this.alertList.subscribe(t.UNREAD_COUNT_CHANGE_TYPE, this._updateCount.bind(this));\n            this._poller = new w({\n                interval: this.update_period,\n                setupRequest: this._update.bind(this),\n                clearOnQuicklingEvents: false,\n                dontStart: true\n            });\n            this._poller.start.bind(this._poller).defer(this.update_period, false);\n            if (this.wrapper) {\n                this.countSpan = n.find(this.wrapper, \"span.jewelCount span\");\n            };\n            this.initializeEvents();\n            this.fromDom();\n            if (this.useInfiniteScroll) {\n                this._autoLoadNotifIndex = 1;\n                this._truncate = false;\n                this.alertList.subscribe(t.INSERTION_TYPE, this._handleInsert.bind(this));\n            }\n        ;\n        },\n        _getListParams: function() {\n            return {\n                shouldBlockAnimation: function(pa) {\n                    return this.isNotifJewelOpen();\n                }.bind(this),\n                unseenVsUnread: this.unseenVsUnread,\n                markReadSignalServer: this.markRead.bind(this).curry(true)\n            };\n        },\n        fromDom: function() {\n            this.alertList.fromDom();\n            (((a.MinNotifications && a.MinNotifications.fetched()) && this.alertList.isEmpty()) && this.alertList.showNoNotifications());\n        },\n        initializeEvents: function() {\n            var pa = this.alertList.ITEM_TAG, qa = null;\n            p.listen(this.content, {\n                mouseover: function(event) {\n                    var ta = event.getTarget();\n                    qa = v.byTag(ta, pa);\n                    if ((qa && (ta != qa))) {\n                        if (v.byClass(qa, \"notifNegativeBase\")) {\n                            m.addClass(qa, \"notifHover\");\n                        }\n                         else m.addClass(qa, \"selected\");\n                    \n                    };\n                },\n                mouseout: function(event) {\n                    (qa && m.removeClass(qa, \"selected\"));\n                    (qa && m.removeClass(qa, \"notifHover\"));\n                    qa = null;\n                },\n                mousedown: this.onContentMouseDown.bind(this)\n            });\n            p.listen(this.wrapper, \"mouseover\", this.onMouseOver.bind(this));\n            aa.listen(\"show\", this.wrapper, this.onClick.bind(this));\n            aa.listen(\"hide\", this.wrapper, this.onHide.bind(this));\n            (this.shouldLogImpressions && aa.listen(\"show\", this.wrapper, this._logImpression.bind(this)));\n            var ra = function(ta) {\n                this._poller.request();\n                this.notifLogger.bump(ta);\n            }.bind(this);\n            z.subscribe(z.TIME_TRAVEL, ra.curry(this.TIME_TRAVEL));\n            z.subscribe(z.ONLINE, function(ta, ua) {\n                (ua && ra(this.ONLINE));\n            });\n            var sa = ((1000 * 60) * 60);\n            ca.subscribe(function(ta, ua) {\n                (((ua.idleness > sa)) && ra(this.INACTIVE_REFRESH));\n            }.bind(this));\n            this.negativeNotifs = {\n            };\n            this._initNotifNegativeFeedback();\n            if (this.useInfiniteScroll) {\n                this._setupScroll();\n                this._initializeScrollEvents();\n                this._updateScrollDataStructures.bind(this).defer();\n                this._hideOverflow();\n            }\n        ;\n        },\n        _setupScroll: function() {\n            this._scrollArea = n.scry(this.jewelFlyout, \"div.uiScrollableAreaWrap\")[0];\n            this._morePagerLink = n.find(this.jewelFlyout, \".notifMorePager a\");\n            this._morePager = (v.byClass(this._morePagerLink, \"notifMorePager\") || this._morePagerLink);\n            this._infiniteScrollNotif = null;\n            this.afterFirstFetch = false;\n            this.animate = false;\n            if ((a.MinNotifications && a.MinNotifications.fetched())) {\n                this.afterFirstFetch = true;\n                m.show(this._morePager);\n            }\n        ;\n        },\n        _initializeScrollEvents: function() {\n            p.listen(this._scrollArea, \"scroll\", ma(this._handleScroll.bind(this)));\n            p.listen(this._morePagerLink, \"success\", function(pa) {\n                this.fetchHandler(pa.getData().response);\n            }.bind(this));\n        },\n        _updateScrollDataStructures: function() {\n            var pa = this.alertList.getIds(), qa = Math.max(0, (pa.length - this._autoLoadNotifIndex));\n            this._infiniteScrollNotif = this.alertList.getDomObj(pa[qa]);\n            this._annotateMorePagerURI();\n        },\n        _annotateMorePagerURI: function() {\n            this._morePagerLink.setAttribute(\"ajaxify\", new ba(this._morePagerLink.getAttribute(\"ajaxify\")).addQueryData({\n                earliest_time: this.alertList.getEarliestNotifTime()\n            }));\n        },\n        onContentMouseDown: function(event) {\n            var pa = v.byTag(event.getTarget(), this.alertList.ITEM_TAG), qa = (pa && t.getIdFromDom(pa));\n            if ((qa && this.alertList.isUnreadId(qa))) {\n                this.markRead(true, [qa,]);\n            };\n        },\n        onMouseOver: function(event) {\n            if (m.hasClass(event.getTarget(), \"jewelButton\")) {\n                this.ua = na(\"notifs\", event.target, event, {\n                    mode: \"DEDUP\"\n                }).uai(\"mouseover\", \"jewel\").add_event(\"hover\");\n            };\n            this.fetch();\n        },\n        onClick: function() {\n            ((a.ArbiterMonitor && (this.fetch != ha)) && h.registerCallback(ha, [\"notifs/fetched\",]));\n            this.ua.add_event(\"show\");\n            this.fetch();\n            this.markRead(true);\n            this._hideOverflow();\n            if (this.scrollableAreaNode) {\n                var pa = x.getInstance(this.scrollableAreaNode);\n                (pa && pa.poke());\n            }\n        ;\n        },\n        onHide: function() {\n            this.animate = false;\n            (this.animation && this.animation.stop());\n            this.ua.add_event(\"hide\");\n            this.markRead(true);\n            this._dequeueNotifications();\n        },\n        _dequeueNotifications: function() {\n            this.queuedNotifications.forEach(function(pa) {\n                this._displayNotification(pa.type, pa.data);\n            }, this);\n            this.queuedNotifications.length = 0;\n        },\n        _handleScroll: function() {\n            if (this._checkInfiniteScroll()) {\n                this._autoLoadNotifIndex = 5;\n                this._sendFetchRequest(this._morePager);\n            }\n        ;\n        },\n        _handleInsert: function(pa, qa) {\n            if (qa.is_new) {\n                this._newDataFromInsert = true;\n            };\n            this._updateScrollDataStructures();\n        },\n        _checkInfiniteScroll: function() {\n            if ((this._infiniteScrollNotif && this._scrollArea)) {\n                var pa = ea.getElementPosition(this._infiniteScrollNotif).y, qa = (ea.getElementPosition(this._scrollArea).y + ea.getElementDimensions(this._scrollArea).y);\n                return (pa < qa);\n            }\n        ;\n            return false;\n        },\n        _initNotifNegativeFeedback: function() {\n            u.init(this);\n            this.alertList.setFilterFn(u.filterStoreClicked);\n            aa.listen(\"hide\", fa(this.wrapperID), function() {\n                for (var pa in this.negativeNotifs) {\n                    if (pa) {\n                        ((this.negativeNotifs[pa] instanceof r) && this.negativeNotifs[pa].reset());\n                    };\n                };\n            }.bind(this));\n            h.subscribe(\"notif/negativeCancel\", function(pa, qa) {\n                (this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].restore());\n            }.bind(this));\n            h.subscribe(\"notif/negativeConfirmed\", function(pa, qa) {\n                (this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onTurnedOff());\n                this.alertList.toggleNotifsSimilarTo(qa.id, true, true);\n                this._hideOverflow();\n                this._handleScroll();\n            }.bind(this));\n            h.subscribe(\"notif/negativeUndid\", function(pa, qa) {\n                (this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onUndid());\n                this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n                this._hideOverflow();\n            }.bind(this));\n            h.subscribe(\"notif/negativeMarkedSpam\", function(pa, qa) {\n                (this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onMarkedSpam());\n            }.bind(this));\n            h.subscribe(\"notif/negativeFirstReceiptYes\", function(pa, qa) {\n                (this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onFirstReceiptYes());\n                this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n            }.bind(this));\n            h.subscribe(\"notif/negativeFirstReceiptNo\", function(pa, qa) {\n                (this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onFirstReceiptNo());\n                this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n            }.bind(this));\n            this.alertList.subscribe(t.INSERTION_TYPE, function(pa, qa) {\n                this._updateFirstReceipt(qa);\n                var ra = n.scry(qa.obj, \".notif_x\");\n                if ((ra.length == 1)) {\n                    this.negativeNotifs[qa.id] = new r(this, qa);\n                };\n            }.bind(this));\n        },\n        _sendIDs: function(pa, qa, ra) {\n            var sa = (ra || {\n            });\n            for (var ta = 0; (ta < pa.length); ++ta) {\n                sa[((\"alert_ids[\" + ta) + \"]\")] = pa[ta];;\n            };\n            new j(ba(qa).getQualifiedURI().toString(), sa).send();\n        },\n        _waitForFetch: function(pa) {\n            return (this.currentFetchRequest && this.fetchListeners.push(pa.bind(this)));\n        },\n        _logImpression: function() {\n            var pa = this.alertList.getIds();\n            if (((pa.length === 0) && this._waitForFetch(this._logImpression))) {\n                return\n            };\n            this.logImpressionIds(pa, this.NOTIF_JEWEL_REF);\n        },\n        logImpressionIds: function(pa, qa) {\n            (this.shouldLogImpressions && this._sendIDs(pa, \"/ajax/notifications/impression.php\", {\n                ref: qa\n            }));\n        },\n        markRead: function(pa, qa) {\n            var ra = !ja(qa);\n            qa = (ra ? this.alertList.getUnseenIds() : qa.filter(this.alertList.isUnreadId.bind(this.alertList)));\n            if (qa.length) {\n                (pa && this._sendIDs(qa, \"/ajax/notifications/mark_read.php\", {\n                    seen: (ra ? 1 : 0)\n                }));\n                if ((ia(\"jewelNoticeMessage\") && this.logAutoShutOffImpression)) {\n                    new j(\"/ajax/notifications/auto_shutoff_seen.php\").send();\n                    this.logAutoShutOffImpression = false;\n                }\n            ;\n                var sa = pa;\n                (ra ? this.alertList.markSeen(qa) : this.alertList.markRead(qa, sa));\n            }\n        ;\n            (ra && this._waitForFetch(this.markRead.bind(this, pa)));\n        },\n        markAllRead: function() {\n            var pa = this.alertList.getUnreadIds();\n            this.markRead(true, pa);\n        },\n        _updateErrorHandler: function(pa) {\n        \n        },\n        _updateURI: \"/ajax/presence/update.php\",\n        _update: function(pa) {\n            pa.setHandler(this._handleUpdate.bind(this)).setOption(\"suppressErrorAlerts\", true).setErrorHandler(this._updateErrorHandler.bind(this)).setData({\n                notif_latest: this.latest_notif_time,\n                notif_latest_read: this.latest_read_notif_time\n            }).setURI(this._updateURI).setAllowCrossPageTransition(true);\n        },\n        _handleUpdate: function(pa) {\n            var qa = pa.payload.notifications;\n            if (!qa.no_change) {\n                this.updateTime = pa.payload.time;\n                this.latest_notif_time = qa.latest_notif;\n                this.latest_read_notif_time = qa.latest_read_notif;\n                this._updateDisplay();\n                this.alertList.insertMany(qa.notifications);\n            }\n        ;\n        },\n        _updateDisplay: function() {\n            if (!this.content) {\n                return\n            };\n            this._updateCount();\n        },\n        _updateCount: function() {\n            h.inform(\"jewel/count-updated\", {\n                jewel: \"notifications\",\n                count: this.alertList.unseenCount\n            }, h.BEHAVIOR_STATE);\n            this._hideOverflow();\n        },\n        fetch: function(pa) {\n            this._sendFetchRequest(pa);\n        },\n        _getFetchQueryData: function() {\n            var pa = {\n                time: this.latest_notif_time,\n                user: this.user,\n                version: this.cache_version,\n                locale: o.locale\n            };\n            if (this.useInfiniteScroll) {\n                pa.earliest_time = this.alertList.getEarliestNotifTime();\n            };\n            return pa;\n        },\n        _sendFetchRequest: function(pa) {\n            if (this.useInfiniteScroll) {\n                this._infiniteScrollNotif = null;\n                this._newDataFromInsert = false;\n                this._truncate = true;\n            }\n        ;\n            var qa = ba(\"/ajax/notifications/get.php\"), ra = (pa || this.loadingIndicator);\n            if (this.currentFetchRequest) {\n                return true\n            };\n            this.ua.add_event(\"fetch\");\n            qa.setQueryData(this._getFetchQueryData());\n            this.currentFetchRequest = new i().setURI(qa).setStatusElement(ra).setMethod(\"GET\").setReadOnly(true).setTimeoutHandler(30000, this.fetchErrorHandler.bind(this)).setHandler(this.fetchHandler.bind(this)).setErrorHandler(this.fetchErrorHandler.bind(this)).setAllowCrossPageTransition(true);\n            (!this.currentFetchRequest.send() && this.fetchErrorHandler());\n            return true;\n        },\n        fetchErrorHandler: function(pa) {\n            this.currentFetchRequest = null;\n            this.ua.add_event(\"fetch_error\");\n            (this.loadingIndicator && m.hide(this.loadingIndicator));\n            (this.useInfiniteScroll && this._updateScrollDataStructures());\n        },\n        fetchHandler: function(pa) {\n            this.ua.add_event(\"fetch_success\");\n            var qa = pa.getPayload();\n            this.alertList.insertMany(qa.notifications, true);\n            (this.loadingIndicator && m.hide(this.loadingIndicator));\n            this.loadingIndicator = null;\n            this.currentFetchRequest = null;\n            this.fetch = ha;\n            if (this.fetchListeners) {\n                for (var ra = 0; (ra < this.fetchListeners.length); ra++) {\n                    this.fetchListeners[ra]();;\n                };\n                this.fetchListeners = [];\n            }\n        ;\n            (a.ArbiterMonitor && h.inform(\"notifs/fetched\", \"\", h.BEHAVIOR_STATE));\n            var sa = qa.generated, ta = Math.round((Date.now() / 1000));\n            if (((ta - sa) > 15)) {\n                sa = ta;\n            };\n            k.loadModules([\"LiveTimer\",], function(ua) {\n                ua.restart(sa);\n                ua.startLoop(0);\n            });\n            if (this.useInfiniteScroll) {\n                if ((ka(qa.notifications) || !this._newDataFromInsert)) {\n                    this._noMoreNotifications();\n                }\n                 else m.show(this._morePager);\n            ;\n                this._updateScrollDataStructures();\n                if ((this.isNotifJewelOpen() && this.afterFirstFetch)) {\n                    this.animate = true;\n                };\n                this.afterFirstFetch = true;\n            }\n        ;\n            this._hideOverflow();\n        },\n        _noMoreNotifications: function() {\n            m.hide(this._morePager);\n            this.useInfiniteScroll = false;\n        },\n        _mergeNotification: function(pa, qa, ra, sa) {\n            var ta = !this.alertList.isUnreadId(pa);\n            this.alertList.insert(pa, qa, ra, true, null, (sa || null));\n            this.latest_notif_time = 0;\n            if (ta) {\n                this._updateCount();\n            };\n            var ua = this.alertList.getDomObj(pa);\n            if (ua) {\n                k.loadModules([\"LiveTimer\",], function(va) {\n                    va.addTimeStamps(ua);\n                });\n            };\n        },\n        _handleNotificationMsg: function(pa, qa) {\n            if (this.isNotifJewelOpen()) {\n                var ra = {\n                    type: pa,\n                    data: qa\n                };\n                this.queuedNotifications.push(ra);\n            }\n             else this._displayNotification(pa, qa);\n        ;\n        },\n        _displayNotification: function(pa, qa) {\n            var ra = qa.obj;\n            if ((typeof this.useDesktopNotifications == \"undefined\")) {\n                this.useDesktopNotifications = ((this.allowDesktopNotifications && window.webkitNotifications) && (window.webkitNotifications.checkPermission() === 0));\n            };\n            if (this.useDesktopNotifications) {\n                k.loadModules([\"DesktopNotifications\",], function(sa) {\n                    sa.addNotification(ra.alert_id);\n                });\n            };\n            if (ra.markup) {\n                this._mergeNotification(ra.alert_id, ra.time, ra.markup, (ra.alt_id || null));\n            }\n             else this._poller.request();\n        ;\n        },\n        _handleNotificationsReadMsg: function(pa, qa) {\n            var ra = qa.obj;\n            this.markRead(false, ra.alert_ids);\n        },\n        _handleNotificationsSeenMsg: function(pa, qa) {\n            if (!this.unseenVsUnread) {\n                this._handleNotificationsReadMsg(pa, qa);\n                return;\n            }\n        ;\n            var ra = qa.obj;\n            this.alertList.markSeen(ra.alert_ids);\n        },\n        _hideOverflow: function() {\n            if (!this.isNotifJewelOpen()) {\n                return\n            };\n            var pa = n.scry(fa(\"fbNotificationsList\"), \".notification\");\n            this.scrollableAreaNode = (this.scrollableAreaNode || n.scry(this.jewelFlyout, \".uiScrollableArea\")[0]);\n            var qa = 20, ra = (m.hasClass(document.documentElement, \"tinyViewport\") && !m.hasClass(document.body, \"fixedBody\"));\n            if ((!pa.length || ra)) {\n                y.set(this.scrollableAreaNode, \"height\", \"100%\");\n                this.notifLogger.rate(this.SCROLL_OFF_TINY, ra);\n                return;\n            }\n        ;\n            var sa = (this.scrollableAreaNode || pa[0]), ta = (((ea.getViewportDimensions().y - ea.getElementPosition(sa, \"viewport\").y) - ea.getElementDimensions(this.footer).y) - 5), ua = ta, va = 0;\n            for (; ((va < pa.length) && (ua > 0)); ++va) {\n                if (m.shown(pa[va])) {\n                    ua -= ea.getElementDimensions(pa[va]).y;\n                };\n            };\n            var wa = 530, xa = Math.min(wa, (ta - Math.max(ua, 0)));\n            if (((ua >= 0) && (xa < wa))) {\n                if (!this.useInfiniteScroll) {\n                    xa = \"100%\";\n                }\n                 else {\n                    if ((this._truncate && (pa.length >= 5))) {\n                        xa -= qa;\n                    };\n                    xa += \"px\";\n                }\n            ;\n            }\n             else xa += \"px\";\n        ;\n            if (((this.useInfiniteScroll && this.animate) && (xa != \"100%\"))) {\n                (this.animation && this.animation.stop());\n                this.animation = new g(this.scrollableAreaNode).to(\"height\", xa).duration(200).go();\n            }\n             else {\n                var ya = x.getInstance(this.scrollableAreaNode);\n                (ya && ya.showScrollbar.bind(ya).defer());\n                y.set(this.scrollableAreaNode, \"height\", xa);\n            }\n        ;\n        },\n        _updateFirstReceipt: function(pa) {\n            var qa = pa.obj.getAttribute(\"data-appid\"), ra = n.scry(pa.obj, \".first_receipt_div\");\n            if ((qa && (ra.length == 1))) {\n                if (this.firstReceiptMap[qa]) {\n                    if (((pa.id != this.firstReceiptMap[qa].id) && (this.firstReceiptMap[qa].time > pa.time))) {\n                        return\n                    };\n                    m.removeClass(this.firstReceiptMap[qa].obj, \"first_receipt\");\n                }\n            ;\n                this.firstReceiptMap[qa] = pa;\n                m.addClass(pa.obj, \"first_receipt\");\n            }\n        ;\n        },\n        isNotifJewelOpen: function() {\n            var pa = aa.getInstance(this.wrapper).getActive();\n            return (((pa === this.wrapper) && m.hasClass(pa, \"openToggler\")));\n        }\n    });\n    e.exports = oa;\n});\n__d(\"legacy:original-notifications-jewel\", [\"Notifications\",], function(a, b, c, d) {\n    a.Notifications = b(\"Notifications\");\n}, 3);\n__d(\"legacy:onvisible\", [\"OnVisible\",], function(a, b, c, d) {\n    a.OnVisible = b(\"OnVisible\");\n}, 3);\n__d(\"PagesVoiceBar\", [\"$\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"ChannelConstants\",\"DOM\",\"PageTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"ChannelConstants\"), l = b(\"DOM\"), m = b(\"PageTransitions\"), n = \"PagesVoiceBar/toggle\", o = \"PagesVoiceBar/initialized\", p = \"PagesVoiceBar/switchVoice\", q = \"page_transition\", r = \"pages_voice_bar_sync\", s = null, t = null, u = false, v = false;\n    function w() {\n        v = !v;\n        j.conditionClass(document.body, \"hasVoiceBar\", v);\n    };\n    function x(da, ea) {\n        new i(\"/ajax/pages/switch_voice.php\").setData(ea).setHandler(function(fa) {\n            ba();\n        }).send();\n    };\n    function y() {\n        s = null;\n    };\n    function z(da, ea) {\n        if ((ea.obj.profile_id && (ea.obj.profile_id == s))) {\n            ba();\n        };\n    };\n    function aa(da) {\n        h.subscribe(o, da);\n    };\n    function ba() {\n        m.getNextURI().go();\n    };\n    var ca = {\n        initVoiceBar: function() {\n            if (u) {\n                return\n            };\n            t = g(\"pagesVoiceBarContent\");\n            v = j.hasClass(document.body, \"hasVoiceBar\");\n            h.subscribe(n, w);\n            h.subscribe(p, x);\n            h.subscribe(q, y);\n            h.subscribe(k.getArbiterType(r), z);\n            u = true;\n            h.inform(o, null, h.BEHAVIOR_STATE);\n        },\n        update: function(da, ea) {\n            aa(function() {\n                s = ea;\n                l.setContent(t, da);\n            });\n        }\n    };\n    e.exports = ca;\n});\n__d(\"PrivacyLiteFlyout\", [\"Event\",\"function-extensions\",\"$\",\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Ease\",\"Parent\",\"SelectorDeprecated\",\"Style\",\"Toggler\",\"copyProperties\",\"cx\",\"csx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"$\"), i = b(\"Animation\"), j = b(\"Arbiter\"), k = b(\"ArbiterMixin\"), l = b(\"AsyncRequest\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Ease\"), p = b(\"Parent\"), q = b(\"SelectorDeprecated\"), r = b(\"Style\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"cx\"), v = b(\"csx\"), w = b(\"ge\"), x = \"PrivacyLiteFlyout/expandingSection\", y = {\n    }, z = {\n    };\n    function aa() {\n        switch (window.location.pathname) {\n          case \"/\":\n        \n          case \"/home.php\":\n        \n          case \"/index.php\":\n            return true;\n          default:\n            return false;\n        };\n    };\n    function ba(ka) {\n        var la = \"._59fb\";\n        return (!p.byClass(ka, \"hasSmurfbar\") && n.scry(h(\"blueBar\"), la).length);\n    };\n    function ca(ka, la, ma) {\n        var na = (la ? 0 : ka.offsetHeight);\n        r.set(ka, \"height\", (na + \"px\"));\n        r.set(ka, \"overflow\", \"hidden\");\n        m.show(ka);\n        var oa = (la ? ka.scrollHeight : 0), pa = n.getID(ka);\n        (y[pa] && y[pa].stop());\n        y[pa] = new i(ka).to(\"height\", oa).ondone(function() {\n            y[pa] = null;\n            r.set(ka, \"height\", \"\");\n            r.set(ka, \"overflow\", \"\");\n            (oa || m.hide(ka));\n            ma();\n        }).duration((Math.abs((oa - na)) * 1.5)).ease(o.sineOut).go();\n    };\n    function da(ka) {\n        return new l().setURI(ka).send();\n    };\n    function ea() {\n        return da(\"/ajax/privacy/privacy_lite/increment_masher_tip_count\");\n    };\n    function fa() {\n        return da(\"/ajax/privacy/privacy_lite/dismiss_masher_tip\");\n    };\n    var ga = null, ha = false, ia = false, ja = t({\n        loadBody: function(ka) {\n            if ((!ha && w(\"fbPrivacyLiteFlyoutLoading\"))) {\n                ha = true;\n                if (!ka) {\n                    ka = false;\n                };\n                new l(\"/ajax/privacy/privacy_lite/loader\").setData({\n                    from_megaphone: ka\n                }).send();\n            }\n        ;\n        },\n        renderBody: function(ka) {\n            var la = w(\"fbPrivacyLiteFlyoutLoading\");\n            if (la) {\n                n.replace(la, ka);\n                ja.inform(\"load\", null, j.BEHAVIOR_STATE);\n            }\n        ;\n        },\n        hideCleanup: function(ka) {\n            j.inform(x);\n            var la = n.scry(ka, \"._2va0\").forEach(function(ma) {\n                m.removeClass(ma, \"_2va0\");\n            });\n        },\n        registerFlyoutToggler: function(ka, la) {\n            ga = la;\n            var ma = s.createInstance(ka);\n            ma.setSticky(false);\n            s.listen([\"show\",\"hide\",], la, function(na) {\n                ja.inform(na);\n                ia = (na === \"show\");\n                if (!ia) {\n                    ja.hideCleanup(ka);\n                    ma.hide();\n                    j.inform(\"layer_hidden\", {\n                        type: \"PrivacyShortcutsFlyout\"\n                    });\n                }\n                 else j.inform(\"layer_shown\", {\n                    type: \"PrivacyShortcutsFlyout\"\n                });\n            ;\n            });\n        },\n        registerFinalReminderFlyout: function(ka) {\n            if ((ia || !aa())) {\n                return\n            };\n            var la = n.find(ka.getRoot(), \"._57bk\"), ma = ka.getContext();\n            if (ba(ma)) {\n                ka.setOffsetY(-5);\n            };\n            ja.subscribe(\"show\", function() {\n                ka.hide();\n            });\n            var na = g.listen(la, \"click\", function() {\n                ka.hide();\n                da(\"/ajax/privacy/privacy_lite/dismiss_rollout_reminder\");\n                na.remove();\n            });\n            da(\"/ajax/privacy/privacy_lite/increment_rollout_reminder\");\n            ka.show();\n        },\n        isFlyoutVisible: function() {\n            return (ga && (s.getActive() === ga));\n        },\n        exists: function() {\n            return !!n.scry(document.body, \"._59fc\")[0];\n        },\n        setFlyoutVisible: function(ka) {\n            (ka ? s.show(ga) : s.hide(ga));\n        },\n        showSection: function(ka) {\n            var la = z[ka], ma = la.chevron, na = la.sublist_container;\n            j.inform(x, ma);\n            if ((ja.inform(\"expand\", ka) !== false)) {\n                m.removeClass(ma, \"_9or\");\n                m.addClass(ma, \"_9os\");\n                ca(na, true, function() {\n                    ja.inform(\"expanded\", ka);\n                });\n            }\n        ;\n        },\n        hideSection: function(ka, la, ma) {\n            var na = z[ka], oa = na.chevron, pa = na.sublist_container;\n            if ((ma === oa)) {\n                return\n            };\n            if ((ja.inform(\"collapse\", ka) !== false)) {\n                m.addClass(oa, \"_9or\");\n                m.removeClass(oa, \"_9os\");\n                ca(pa, false, function() {\n                    ja.inform(\"collapsed\", ka);\n                });\n            }\n        ;\n        },\n        toggleSection: function(ka) {\n            var la = z[ka].chevron;\n            s.getInstance(la).hide();\n            if (m.hasClass(la, \"_9or\")) {\n                ja.showSection(ka);\n                new l(\"/ajax/privacy/privacy_lite/log_section_expand\").setData({\n                    section: ka\n                }).send();\n            }\n             else ja.hideSection(ka);\n        ;\n        },\n        registerSection: function(ka, la) {\n            z[ka] = la;\n            j.subscribe(x, ja.hideSection.curry(ka));\n            g.listen(la.section_block, \"click\", ja.toggleSection.curry(ka));\n        },\n        registerInlineHelpOnAudienceChange: function(ka, la, ma) {\n            q.subscribe(\"select\", function(na, oa) {\n                if ((oa.selector != ka)) {\n                    return\n                };\n                m.addClass(la, \"_2va0\");\n                if (ma) {\n                    new l(\"/ajax/privacy/privacy_lite/kill_intro\").send();\n                };\n            });\n        },\n        registerInlineHelpXOutOnClick: function(ka, la) {\n            g.listen(ka, \"click\", m.addClass.curry(la, \"_9p0\"));\n        },\n        registerBlockUnhideOnFocus: function(ka, la) {\n            g.listen(ka, \"focus\", m.show.curry(la));\n        },\n        registerMessageFilterSettingOnClick: function(ka, la) {\n            var ma = n.find(ka, \"._fv0\");\n            g.listen(ka, \"click\", function() {\n                if (ma.checked) {\n                    new l(\"/ajax/mercury/change_filtering_type.php\").setData({\n                        filtering_type: la,\n                        source: \"privacy_lite\"\n                    }).send();\n                };\n            });\n        },\n        registerGraphSearchPrivacyReminder: function(ka, la) {\n            g.listen(la, \"click\", function() {\n                n.remove(ka);\n                da(\"/ajax/privacy/privacy_lite/dismiss_gs_privacy_reminder\");\n            });\n        },\n        registerMasher: function(ka, la) {\n            var ma = false;\n            j.subscribe(x, function(na, oa) {\n                var pa = n.scry(p.byTag(oa, \"li\"), \"._571t\").length;\n                if ((ma || !pa)) {\n                    return\n                };\n                ma = Boolean(ea());\n            });\n            g.listen(la, \"click\", function() {\n                n.remove(ka);\n                fa();\n            });\n        }\n    }, k);\n    e.exports = ja;\n});\n__d(\"PrivacyLiteFlyoutHelp\", [\"Event\",\"Arbiter\",\"AsyncRequest\",\"ContextualHelpSearchController\",\"CSS\",\"DOM\",\"Parent\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ContextualHelpSearchController\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Parent\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"cx\"), q, r;\n    function s(t, u, v, w, x) {\n        this._width = 315;\n        r = l.find(u, \"input\");\n        var y = l.create(\"div\");\n        this.init(t, r, y, v, w);\n        q = m.byClass(u, \"_8-a\");\n        g.listen(x, \"click\", this._hideSearch.bind(this));\n        h.subscribe(\"PrivacyLiteFlyout/expandingSection\", this._hideSearch.bind(this));\n        var z = l.scry(q, \"._d1r\")[0];\n        (z && g.listen(z, \"click\", function() {\n            k.addClass(q, \"_aw6\");\n            r.focus();\n            if (!this.suggestedResults) {\n                new i(\"/ajax/privacy/privacy_lite/help_suggestions\").setHandler(function(aa) {\n                    var ba = aa.getPayload().searchSuggestions, ca = l.find(q, \"._4_8m\");\n                    l.setContent(ca, ba);\n                    k.addClass(q, \"_4_8l\");\n                }.bind(this)).send();\n            };\n        }.bind(this)));\n    };\n    n(s.prototype, new j(), {\n        source: \"privacy_shortcuts\",\n        _hideSearch: function() {\n            this.clearResults();\n            k.removeClass(q, \"_aw6\");\n        },\n        show: function(t) {\n            if ((t === this.topics_area)) {\n                k.removeClass(q, \"_aw7\");\n                return;\n            }\n             else if ((t === this.loader)) {\n                k.addClass(q, \"_aw7\");\n                k.hide(this.results_area);\n            }\n             else k.hide(this.loader);\n            \n        ;\n            k.show(t);\n        }\n    });\n    e.exports = s;\n});\n__d(\"LayerSlowlyFadeOnShow\", [\"Class\",\"LayerFadeOnShow\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"LayerFadeOnShow\"), i = b(\"emptyFunction\");\n    function j(k) {\n        this.parent.construct(this, k);\n    };\n    g.extend(j, h);\n    j.prototype._getDuration = i.thatReturns(500);\n    e.exports = j;\n});\n__d(\"PrivacyLiteNUXController\", [\"AsyncRequest\",\"CSS\",\"Event\",\"LayerSlowlyFadeOnShow\",\"Locale\",\"ModalMask\",\"PageTransitions\",\"Parent\",\"PrivacyLiteFlyout\",\"Toggler\",\"$\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"Event\"), j = b(\"LayerSlowlyFadeOnShow\"), k = b(\"Locale\"), l = b(\"ModalMask\"), m = b(\"PageTransitions\"), n = b(\"Parent\"), o = b(\"PrivacyLiteFlyout\"), p = b(\"Toggler\"), q = b(\"$\"), r = b(\"copyProperties\"), s = b(\"cx\"), t = \"_3oye\", u = \"_1luv\", v = [], w = {\n        bootload: function() {\n        \n        },\n        init: function(y) {\n            if (!w.initialized) {\n                r(this, {\n                    dialog: y.dialog,\n                    sectionID: y.sectionID,\n                    subsectionID: y.subsectionID,\n                    initialized: true,\n                    tourStarted: false\n                });\n            };\n            if (y.showOnExpand) {\n                w._attachFlyoutListener();\n            }\n             else w._detachFlyoutListener();\n        ;\n        },\n        startTourFromAnywhere: function() {\n            w._startTour(false);\n        },\n        startTourFromMegaphone: function() {\n            w._startTour(true);\n        },\n        _startTour: function(y) {\n            if (w.tourStarted) {\n                return\n            };\n            w.tourStarted = true;\n            w._detachFlyoutListener();\n            new g(\"/ajax/privacy/privacy_lite/log_nux_imp\").setData({\n                from_megaphone: y\n            }).send();\n            l.show();\n            h.conditionClass(w.dialog.getRoot(), t, y);\n            if (!y) {\n                w._maskListener = i.listen(q(\"modalMaskOverlay\"), \"click\", w._cleanup);\n            };\n            p.setSticky(true);\n            setTimeout(w._showFlyout);\n            m.registerHandler(function() {\n                w._cleanup();\n                o.setFlyoutVisible(false);\n            }, 10);\n        },\n        _showFlyout: function() {\n            o.loadBody(true);\n            o.setFlyoutVisible(true);\n            w._initDialog();\n            x(\"load\", w._showTour);\n        },\n        _showTour: function() {\n            o.showSection(w.sectionID);\n            x(\"expanded\", function(y, z) {\n                if ((z === w.sectionID)) {\n                    w.dialog.setContext(q(w.subsectionID)).setOffsetY(20).show();\n                };\n            });\n            x([\"collapse\",\"hide\",], w._cleanup);\n        },\n        _initDialog: function() {\n            var y = w.dialog.getRoot(), z = w.dialog.getContent();\n            h.addClass(y, \"_1luy\");\n            h.conditionClass(y, \"_3qz8\", k.isRTL());\n            h.addClass(z, \"_1luz\");\n            w.dialog.enableBehavior(j);\n            i.listen(y, \"click\", function(event) {\n                if (n.byClass(event.getTarget(), u)) {\n                    w._cleanup();\n                };\n            });\n        },\n        _attachFlyoutListener: function() {\n            if (!w.flyoutSubscription) {\n                if (o.isFlyoutVisible()) {\n                    w.startTourFromAnywhere();\n                }\n                 else w.flyoutSubscription = o.subscribe(\"show\", w.startTourFromAnywhere);\n            \n            };\n        },\n        _detachFlyoutListener: function() {\n            if (w.flyoutSubscription) {\n                w.flyoutSubscription.unsubscribe();\n                w.flyoutSubscription = null;\n            }\n        ;\n        },\n        _cleanup: function() {\n            if (!w.tourStarted) {\n                return\n            };\n            w.tourStarted = false;\n            p.setSticky(false);\n            l.hide();\n            w.dialog.hide();\n            while (v.length) {\n                v.pop().unsubscribe();;\n            };\n            if (w._maskListener) {\n                w._maskListener.remove();\n                w._maskListener = null;\n            }\n        ;\n        }\n    };\n    function x(y, z) {\n        v.push(o.subscribe(y, z));\n    };\n    e.exports = w;\n});\n__d(\"ViewasChromeBar\", [\"Event\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Focus\",\"ModalMask\",\"PageTransitions\",\"Parent\",\"cx\",\"csx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"ModalMask\"), n = b(\"PageTransitions\"), o = b(\"Parent\"), p = b(\"cx\"), q = b(\"csx\"), r = \"ViewasChromeBar/initialized\", s = null, t = false;\n    function u(x) {\n        h.subscribe(r, x);\n    };\n    function v(x) {\n        j.addClass(x, \"_7g7\");\n        var y = k.find(x, \"._7g0\");\n        l.set(k.find(y, \".textInput\"));\n    };\n    var w = {\n        initChromeBar: function(x) {\n            if (t) {\n                return\n            };\n            s = x;\n            t = true;\n            h.inform(r, null, h.BEHAVIOR_STATE);\n        },\n        update: function(x, y) {\n            u(function() {\n                k.setContent(s, x);\n                if (y) {\n                    new i(\"/ajax/privacy/glasgow/viewas_bar_flyout_open\").send();\n                };\n            });\n        },\n        registerSpecificModeOnClick: function(x) {\n            g.listen(x, \"click\", v.curry(o.byClass(x, \"_7f-\")));\n        },\n        registerFlyoutModalMask: function() {\n            m.show();\n            n.registerHandler(m.hide, 10);\n        }\n    };\n    e.exports = w;\n});\n__d(\"BingScalingCommon\", [], function(a, b, c, d, e, f) {\n    var g = {\n        integrateWebsuggestions: function(h, i, j, k, l) {\n            var m = [], n = (i ? m : []), o = [], p = 0, q = 0, r = j;\n            k = Math.floor((j * k));\n            for (var s = 0; (s < h.length); s++) {\n                var t = h[s];\n                if (((t.type === \"websuggestion\") && !t.isSeeMore)) {\n                    if (((((r > 0) && (p < k))) || (((p > 0) && (p < l))))) {\n                        n.push(t);\n                        p++;\n                        r--;\n                    }\n                     else if ((r > 0)) {\n                        o.push(t);\n                    }\n                ;\n                }\n                 else {\n                    if (((r <= 0) && !i)) {\n                        continue;\n                    };\n                    m.push(t);\n                    q++;\n                    r--;\n                }\n            ;\n            };\n            if (((r > 0) && (o.length > 0))) {\n                n = n.concat(o.slice(0, r));\n            };\n            if (!i) {\n                return m.concat(n)\n            };\n            return n;\n        }\n    };\n    e.exports = g;\n});\n__d(\"TypeaheadSearchSponsoredUtils\", [], function(a, b, c, d, e, f) {\n    function g(o) {\n        return (o.selected_target_id != o.s_target);\n    };\n    function h(o, p) {\n        return Math.min(p.maxNumberAds, ((p.maxNumberRemovedResults + p.maxNumberResultsAndAds) - o));\n    };\n    function i(o, p) {\n        var q = {\n        };\n        for (var r = (o.length - 1); (r >= 0); --r) {\n            var s = o[r];\n            q[s] = s;\n            if (p.hasOwnProperty(s)) {\n                p[s].forEach(function(t) {\n                    q[t] = s;\n                });\n            };\n        };\n        return q;\n    };\n    function j(o, p, q) {\n        for (var r = p; (r < o.length); r++) {\n            (o[r].setDebugString && o[r].setDebugString(q));;\n        };\n    };\n    function k(o, p) {\n        return (p.indexOf(String(o)) != -1);\n    };\n    function l(o, p, q, r) {\n        if (n.isSelfPromoted(o)) {\n            return false\n        };\n        if (((q + p.length) < r.maxNumberResultsAndAds)) {\n            return false\n        };\n        return true;\n    };\n    function m(o, p, q, r) {\n        var s = o[(o.length - 1)];\n        if (p.hasOwnProperty(s)) {\n            return false\n        };\n        if ((s == q)) {\n            return false\n        };\n        if ((s == r)) {\n            return false\n        };\n        return true;\n    };\n    var n = {\n        isSelfPromoted: function(o) {\n            return (o.uid == o.s_target);\n        },\n        prepareAndSortAds: function(o, p, q) {\n            if (!p) {\n                return []\n            };\n            var r = [], s = o.length, t = {\n            };\n            for (var u = 0; (u < s); u++) {\n                var v = o[u];\n                t[v.uid] = true;\n                if (v.s_categories) {\n                    v.s_categories.forEach(function(z) {\n                        t[z] = true;\n                    });\n                };\n            };\n            for (var w in t) {\n                if (p[w]) {\n                    for (var x in p[w]) {\n                        var y = p[w][x];\n                        if ((q && q.hasOwnProperty(y.uid))) {\n                            continue;\n                        };\n                        r.push(y);\n                    }\n                };\n            };\n            r.sort(function(z, aa) {\n                return (aa.s_value - z.s_value);\n            });\n            return r;\n        },\n        selectAds: function(o, p, q, r, s) {\n            var t = [], u = {\n            }, v = {\n            }, w = {\n            }, x = 0, y = h(o.length, r), z = i(o, p);\n            for (var aa = 0; (aa < q.length); aa++) {\n                if ((t.length >= y)) {\n                    j(q, aa, ((\"filtered: \" + y) + \" ads already selected\"));\n                    break;\n                }\n            ;\n                var ba = q[aa], ca = (z[ba.s_target] || ba.s_target);\n                ba.selected_target_id = ca;\n                if (!k(ca, o)) {\n                    (ba.setDebugString && ba.setDebugString(((((\"filtered: targeted organic \" + ca) + \" does not exist. \") + \"promoted id \") + ba.uid)));\n                    continue;\n                }\n            ;\n                if ((l(ba, o, x, r) && !m(o, v, ca, s))) {\n                    (ba.setDebugString && ba.setDebugString(\"filtered: last organic need but cannot be removed\"));\n                    continue;\n                }\n            ;\n                if ((!n.isSelfPromoted(ba) && (o.indexOf(String(ba.uid)) != -1))) {\n                    (ba.setDebugString && ba.setDebugString((((\"filtered: organic \" + ba.uid) + \" targets another organic \") + ca)));\n                    continue;\n                }\n            ;\n                if (u.hasOwnProperty(ba.s_account)) {\n                    (ba.setDebugString && ba.setDebugString(((\"filtered: ad account \" + ba.s_account) + \" already selected\")));\n                    continue;\n                }\n            ;\n                if (w.hasOwnProperty(ba.uid)) {\n                    (ba.setDebugString && ba.setDebugString(((\"filtered: ad promoted id \" + ba.uid) + \" already selected\")));\n                    continue;\n                }\n            ;\n                (ba.setDebugString && ba.setDebugString(\"selected\"));\n                t.push(ba);\n                u[ba.s_account] = true;\n                v[ca] = true;\n                w[ba.uid] = true;\n                if (!n.isSelfPromoted(ba)) {\n                    ++x;\n                    if (((x + o.length) > r.maxNumberResultsAndAds)) {\n                        o.pop();\n                    };\n                }\n            ;\n            };\n            return t;\n        },\n        hasTopResult: function(o, p, q) {\n            if ((o == null)) {\n                return false\n            };\n            if ((o.type == \"user\")) {\n                return false\n            };\n            if ((o.type == \"grammar\")) {\n                return false\n            };\n            if ((o.score > q.v0)) {\n                return true\n            };\n            if ((o.s_value > q.v3)) {\n                return true\n            };\n            if ((o.s_value > p.s_value)) {\n                return true\n            };\n            var r = (g(p) ? q.v4 : ((o.bootstrapped ? q.v1 : q.v2)));\n            if ((r < p.s_value)) {\n                return false\n            };\n            return true;\n        },\n        setOrganicECPM: function(o, p) {\n            if ((o == null)) {\n                return\n            };\n            for (var q = 0; (q < p.length); q++) {\n                if (o.hasOwnProperty(p[q].uid)) {\n                    p[q].s_value = o[p[q].uid];\n                };\n            };\n            return;\n        },\n        buildResultIndices: function(o) {\n            var p = {\n            }, q = o.length;\n            for (var r = 0; (r < q); r++) {\n                p[o[r].uid] = r;;\n            };\n            return p;\n        },\n        getTopAdPosition: function(o, p, q) {\n            if ((o.length < 1)) {\n                return null\n            };\n            if ((p.length < 1)) {\n                return null\n            };\n            if ((((o[0].type == \"user\")) || ((o[0].type == \"grammar\")))) {\n                for (var r = 1; (r < o.length); ++r) {\n                    if ((o[r].type != o[0].type)) {\n                        return r\n                    };\n                };\n                return o.length;\n            }\n        ;\n            if (n.hasTopResult(o[0], p[0], q)) {\n                return 1\n            };\n            return 0;\n        }\n    };\n    e.exports = n;\n});\n__d(\"TypeaheadSearchSponsored\", [\"Event\",\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"copyProperties\",\"TypeaheadSearchSponsoredUtils\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"URI\"), l = b(\"copyProperties\"), m = b(\"TypeaheadSearchSponsoredUtils\"), n = b(\"tx\");\n    function o(p) {\n        this._typeahead = p;\n    };\n    o.prototype.enable = function() {\n        this._data = this._typeahead.getData();\n        this._dataSubscriptions = [this._data.subscribe(\"beginFetchHandler\", function(p, q) {\n            var r = q.response.getPayload();\n            if (r.s_entries) {\n                this._sponsoredEntries = (this._sponsoredEntries || {\n                });\n                var s = r.s_entries.length;\n                for (var t = 0; (t < s); t++) {\n                    var u = new o.Ad();\n                    l(u, r.s_entries[t]);\n                    var v = u.s_target;\n                    if (!this._sponsoredEntries[v]) {\n                        this._sponsoredEntries[v] = {\n                        };\n                    };\n                    this._sponsoredEntries[v][u.uid] = u;\n                };\n                if (r.s_bootstrap_id) {\n                    this._sBootstrapID = r.s_bootstrap_id;\n                };\n                if (r.organic_s_value) {\n                    this._organicECPM = l(this._organicECPM, r.organic_s_value);\n                };\n            }\n        ;\n        }.bind(this)),];\n        if (o.auctionOptions.bootstrap) {\n            this._dataSubscriptions.push(this._data.subscribe(\"onload\", function(p, q) {\n                var r = l(this.bootstrapData, {\n                    no_cache: 1,\n                    options: [\"sponsored\",]\n                });\n                this.fetch(this.bootstrapEndpoint, r, {\n                    type: \"sponsored\"\n                });\n            }.bind(this._data)));\n        };\n        this._view = this._typeahead.getView();\n        this._viewSubscriptions = [this._view.subscribe(\"finalResultsReordering\", function(p, q) {\n            o.query = q.value;\n            m.setOrganicECPM(this._organicECPM, q.results);\n            var r = o.getOriginalOrganics(q.results);\n            o.setAuctionOptions({\n                maxNumberResultsAndAds: Math.max(q.results.length, (((this._data && this._data._maxResults)) || o.auctionOptions.maxNumberResultsAndAds))\n            });\n            var s = this.runAuction(q.results, this._sponsoredEntries, this._hiddenSponsoredEntities, o.auctionOptions), t = m.prepareAndSortAds(q.results, this._sponsoredEntries, this._hiddenSponsoredEntities), u = t.map(function(y) {\n                return y.s_token;\n            }), v = [];\n            for (var w = 0; (w < s.length); w++) {\n                var x = s[w];\n                if (x.s_token) {\n                    v.push({\n                        position: w,\n                        is_self: x.is_self\n                    });\n                };\n            };\n            this._view.inform(\"recordAfterReorder\", {\n                organic: r,\n                tokens: u,\n                position_data: v,\n                s_bootstrap_id: this._sBootstrapID,\n                options: o.auctionOptions,\n                variant: o.auctionOptions.rerankingStrategy\n            });\n            q.results = s;\n            this._data.inform(\"recordAuctionState\", {\n                organic: r,\n                auctionOptions: o.auctionOptions,\n                event_data: q\n            });\n        }.bind(this)),this._view.subscribe(\"highlight\", function(p, q) {\n            if (this._view.content) {\n                j.scry(this._view.content, \"a.report\").forEach(i.hide);\n            };\n            if (((!q.element || !q.selected) || !q.selected.s_token)) {\n                return\n            };\n            var r = j.scry(q.element, \"a.report\");\n            if (r.length) {\n                i.show(r[0]);\n            }\n             else j.appendContent(q.element, this._createHideAdLink(q.selected));\n        ;\n        }.bind(this)),];\n        this._globalSubscriptions = [h.subscribe(\"TypeaheadSearchSponsored/hideAdResult\", function(p, q) {\n            this._hiddenSponsoredEntities = (this._hiddenSponsoredEntities || {\n            });\n            this._hiddenSponsoredEntities[q.uid] = true;\n            this._hideReasonDialog = q.reason_dialog;\n            this._forceRefreshResults();\n        }.bind(this)),h.subscribe(\"TypeaheadSearchSponsored/undoHideAdResult\", function(p, q) {\n            if (this._hiddenSponsoredEntities) {\n                delete this._hiddenSponsoredEntities[q.uid];\n            };\n            if (this._hideReasonDialog) {\n                this._hideReasonDialog.hide();\n                this._hideReasonDialog = null;\n            }\n        ;\n            this._forceRefreshResults();\n        }.bind(this)),];\n    };\n    o.prototype.disable = function() {\n        this._dataSubscriptions.forEach(this._data.unsubscribe.bind(this._data));\n        this._dataSubscriptions = null;\n        this._viewSubscriptions.forEach(this._view.unsubscribe.bind(this._view));\n        this._viewSubscriptions = null;\n        this._globalSubscriptions.forEach(h.unsubscribe.bind(h));\n        this._globalSubscriptions = null;\n        this._data = null;\n        this._view = null;\n        this._sponsoredEntries = null;\n    };\n    o.prototype.runAuction = function(p, q, r, s) {\n        if ((p.length === 0)) {\n            return p\n        };\n        p = o.initResults(p);\n        if (!q) {\n            return p\n        };\n        var t = m.prepareAndSortAds(p, q, r);\n        if (this._typeahead) {\n            var u = this._typeahead.getData();\n            u.inform(\"recordAuctionState\", {\n                sorted_ads: t\n            });\n        }\n    ;\n        var v = {\n        }, w = p.map(function(ba) {\n            if (ba.s_categories) {\n                v[ba.uid] = ba.s_categories;\n            };\n            return String(ba.uid);\n        }), x = m.selectAds(w, v, t, s);\n        if ((x.length === 0)) {\n            return p\n        };\n        if (m.hasTopResult(p[0], x[0], s)) {\n            o.setTopResult(p);\n        };\n        var y = 0;\n        for (var z = 0; (z < x.length); ++z) {\n            if (!m.isSelfPromoted(x[z])) {\n                y++;\n            };\n        };\n        p.length = Math.min(p.length, (s.maxNumberResultsAndAds - y));\n        var aa = o.rerankAds(p, x, s);\n        return aa;\n    };\n    o.prototype._forceRefreshResults = function() {\n        if ((this._data && this._data.value)) {\n            this._data.respond(this._data.value, this._data.buildUids(this._data.value));\n        };\n    };\n    o.prototype._createHideAdLink = function(p) {\n        var q = new k(\"/ajax/emu/end.php\").addQueryData({\n            eid: p.s_token,\n            f: 0,\n            ui: (\"typeahead_\" + p.s_token.replace(\".\", \"_\")),\n            en: \"fad_hide\",\n            ed: \"true\",\n            a: 1\n        }).toString(), r = {\n            className: \"report\",\n            rel: \"dialog-post\",\n            href: \"#\",\n            ajaxify: q,\n            title: \"Hide the ad\"\n        }, s = j.create(\"a\", r);\n        g.listen(s, \"mouseover\", function(event) {\n            this._view.index = -1;\n            this._view.highlight(-1, false);\n            event.kill();\n        }.bind(this));\n        return s;\n    };\n    o.auctionOptions = {\n    };\n    o.query = null;\n    o.getOriginalOrganics = function(p) {\n        return p.map(function(q) {\n            return {\n                uid: q.uid,\n                text: q.text,\n                type: o.getRealType(q),\n                source: (q.bootstrapped ? 1 : 0),\n                index: q.index,\n                s_value: (q.s_value || 0),\n                s_categories: (q.s_categories || []),\n                score: q.score\n            };\n        });\n    };\n    o.setTopResult = function(p) {\n        p[0].renderTypeOverride = true;\n        p[0].orig_render_type = p[0].render_type;\n        p[0].render_type = \"tophit\";\n    };\n    o.finalizeAd = function(p, q, r) {\n        var s = \"Sponsored\";\n        p.rankType = ((p.rankType || p.render_type) || p.type);\n        if (m.isSelfPromoted(p)) {\n            q.s_token = p.s_token;\n            q.message = p.s_message;\n            if ((r.rerankingStrategy === 0)) {\n                q.subtextOverride = (q.subtext ? ((q.subtext + \" \\u00b7 \") + s) : s);\n            };\n            if (p.path) {\n                q.pathOverride = true;\n                q.orig_path = q.path;\n                q.path = p.path;\n            }\n        ;\n            q.is_self = true;\n        }\n         else {\n            p.message = p.s_message;\n            p.subtextOverride = null;\n            if ((r.rerankingStrategy === 0)) {\n                p.subtextOverride = (p.subtext ? ((p.subtext + \" \\u00b7 \") + s) : s);\n            };\n            if (r.debug) {\n                if ((!p.subtextOverride && p.subtext)) {\n                    p.subtextOverride = p.subtext;\n                };\n                if (p.subtextOverride) {\n                    p.subtextOverride += ((\" \\u00b7 (Debug: \" + q.text) + \")\");\n                }\n                 else p.subtextOverride = ((\"(Debug: \" + q.text) + \")\");\n            ;\n            }\n        ;\n            p.type = q.type;\n            p.render_type = q.render_type;\n            p.is_self = false;\n        }\n    ;\n    };\n    o.promoteSelfPromotedResultToTop = function(p, q, r, s) {\n        var t = p[q];\n        if ((q < r)) {\n            var u = \"Sponsored\";\n            t.subtextOverride = (t.subtext ? ((t.subtext + \" \\u00b7 \") + u) : u);\n            return;\n        }\n    ;\n        if ((q > r)) {\n            p.splice(r, 0, p.splice(q, 1)[0]);\n        };\n        t = p[r];\n        t.renderTypeOverride = true;\n        t.orig_render_type = t.render_type;\n        t.render_type = \"ownsection\";\n    };\n    o.insertAdToTop = function(p, q, r, s) {\n        p.splice(r, 0, q);\n        q.render_type = \"ownsection\";\n    };\n    o.rerankMethod5 = function(p, q, r) {\n        if ((r.rerankingStrategy != 5)) {\n            return\n        };\n        var s = m.getTopAdPosition(p, q, r), t = m.buildResultIndices(p);\n        for (var u = (q.length - 1); (u >= 0); u--) {\n            var v = q[u], w = t[v.selected_target_id], x = p[w];\n            o.finalizeAd(v, x, r);\n            if (m.isSelfPromoted(v)) {\n                o.promoteSelfPromotedResultToTop(p, w, s, r);\n            }\n             else o.insertAdToTop(p, v, s, r);\n        ;\n            t = m.buildResultIndices(p);\n        };\n    };\n    o.rerankAds = function(p, q, r) {\n        switch (r.rerankingStrategy) {\n          case 5:\n            o.rerankMethod5(p, q, r);\n            break;\n          default:\n            break;\n        };\n        p.length = Math.min(p.length, r.maxNumberResultsAndAds);\n        return p;\n    };\n    o.initResults = function(p) {\n        var q = p.length;\n        for (var r = 0; (r < q); r++) {\n            var s = p[r];\n            s.is_self = null;\n            s.s_token = null;\n            s.message = null;\n            s.subtextOverride = null;\n            if (s.pathOverride) {\n                s.path = s.orig_path;\n                s.pathOverride = false;\n            }\n        ;\n            if (s.renderTypeOverride) {\n                s.render_type = s.orig_render_type;\n                s.renderTypeOverride = false;\n            }\n        ;\n            s.rankType = ((s.rankType || s.render_type) || s.type);\n        };\n        return p;\n    };\n    o.setAuctionOptions = function(p) {\n        l(o.auctionOptions, p);\n    };\n    o.getRealType = function(p) {\n        if (p.renderTypeOverride) {\n            return (p.orig_render_type || p.type)\n        };\n        return (p.render_type || p.type);\n    };\n    o.hideAdResult = function(p, q) {\n        h.inform(\"TypeaheadSearchSponsored/hideAdResult\", {\n            uid: p,\n            reason_dialog: q\n        });\n    };\n    o.undoHideAdResult = function(p) {\n        h.inform(\"TypeaheadSearchSponsored/undoHideAdResult\", {\n            uid: p\n        });\n    };\n    o.Ad = function() {\n    \n    };\n    l(o.prototype, {\n        _dataSubscriptions: null,\n        _viewSubscriptions: null,\n        _globalSubscriptions: null,\n        _data: null,\n        _view: null,\n        _sponsoredEntries: null,\n        _hiddenSponsoredEntities: null,\n        _hideReasonDialog: null,\n        _sBootstrapID: null,\n        _organicECPM: null\n    });\n    e.exports = o;\n});\n__d(\"legacy:SearchSponsoredTypeaheadBehavior\", [\"TypeaheadSearchSponsored\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadSearchSponsored\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.searchSponsored = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"legacy:TypeaheadSearchSponsored\", [\"TypeaheadSearchSponsored\",], function(a, b, c, d) {\n    a.TypeaheadSearchSponsored = b(\"TypeaheadSearchSponsored\");\n}, 3);\n__d(\"SearchDataSource\", [\"Event\",\"Arbiter\",\"AsyncResponse\",\"DataSource\",\"HashtagSearchResultUtils\",\"copyProperties\",\"createArrayFrom\",\"BingScalingCommon\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AsyncResponse\"), j = b(\"DataSource\"), k = b(\"HashtagSearchResultUtils\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\"), n = b(\"BingScalingCommon\"), o = ((j === null) ? null : j.prototype);\n    p.prototype = Object.create(o);\n    p.prototype.constructor = p;\n    p.__superConstructor__ = j;\n    function p(q) {\n        this._token = (q.token || \"\");\n        this._lazyonload = ((q.lazyonload === false) ? false : true);\n        this._extraTypes = q.extraTypes;\n        this._buckets = q.buckets;\n        this._noMultiFetch = (q.noMultiFetch || false);\n        this._maxWebSuggToCountFetchMore = (q.maxWebSuggToCountFetchMore || 0);\n        var r = (q.maxResults || 8);\n        j.call(this, q);\n        this._numResults = {\n            min: 3,\n            max: r\n        };\n        this.recordingRoute = (q.recordingRoute || \"non_banzai\");\n        this._enabledHashtag = (q.enabledHashtag || false);\n        this.logBackendQueriesWindow = (q.logBackendQueriesWindow || 25);\n        this._minWebSugg = (q.minWebSugg || 2);\n        this._queryToWebSuggState = {\n        };\n        this._genTime = q.genTime;\n    };\n    p.prototype.init = function() {\n        o.init.call(this);\n        this._leanPayload = null;\n        this._bootstrapRequestsPending = 0;\n        this._criticalOnly = true;\n        this._updateMaxResults();\n        g.listen(window, \"resize\", this._updateMaxResults.bind(this));\n        this.complexChars = new RegExp(\"[\\uff66-\\uffdd\\u4e00-\\u9fcc\\u3400-\\u4dbf]\");\n    };\n    p.prototype.dirty = function() {\n        o.dirty.call(this);\n        this._fetchOnUseRequests = [];\n    };\n    p.prototype.asyncErrorHandler = function(q) {\n        if (((window.Dialog && (window.Dialog.getCurrent() == null)) && (q.getError() == 1400003))) {\n            i.verboseErrorHandler(q);\n        };\n    };\n    p.prototype.fetch = function(q, r, s) {\n        s = (s || {\n        });\n        s.fetch_start = Date.now();\n        o.fetch.call(this, q, r, s);\n    };\n    p.prototype.fetchHandler = function(q, r) {\n        var s = q.getPayload(), t = l({\n            fetch_end: Date.now()\n        }, r), u = (t.value ? h.BEHAVIOR_EVENT : h.BEHAVIOR_PERSISTENT);\n        this.inform(\"beginFetchHandler\", {\n            response: q\n        });\n        if ((r.type == \"lean\")) {\n            this._leanPayload = s;\n            this._processLean();\n        }\n         else {\n            if (s.coeff2_ts) {\n                t.coeff2_ts = s.coeff2_ts;\n            };\n            var v = {\n                limit: ((typeof s.webSuggLimit !== \"undefined\") ? s.webSuggLimit : 6),\n                showOnTop: ((typeof s.webSuggOnTop !== \"undefined\") ? s.webSuggOnTop : false)\n            };\n            this._queryToWebSuggState[r.value] = v;\n            o.fetchHandler.call(this, q, r);\n            if ((r.bootstrap && !q.getRequest().getData().no_cache)) {\n                t.browserCacheHit = ((s.timestamp < this._genTime));\n            };\n            if (((r.bootstrap && !s.no_data) && (this._bootstrapRequestsPending > 0))) {\n                r.bootstrap = false;\n                --this._bootstrapRequestsPending;\n                (!this._bootstrapRequestsPending && this._bootstrapPostProcess());\n            }\n        ;\n            if (((s.no_data || s.stale) || (s.token !== this._token))) {\n                var w = l({\n                }, q.getRequest().getData());\n                if (w.lazy) {\n                    delete w.lazy;\n                    w.token = this._token;\n                    this._fetchOnUse(w, r);\n                }\n            ;\n            }\n        ;\n        }\n    ;\n        this.inform(\"endpointStats\", t, u);\n    };\n    p.prototype.respond = function(q, r, s) {\n        this.inform(\"respondValidUids\", r);\n        this.inform(\"reorderResults\", r);\n        var t = this.buildData(r, q);\n        t.forEach(function(u, v) {\n            u.origIndex = v;\n        });\n        this.inform(\"respond\", {\n            value: q,\n            results: t,\n            isAsync: !!s\n        });\n        return t;\n    };\n    p.prototype.buildData = function(q, r) {\n        if ((!q || (q.length === 0))) {\n            return []\n        };\n        var s = this.getWebSuggState(r), t = s.showOnTop, u = n.integrateWebsuggestions(q.map(this.getEntry.bind(this)), Boolean(t), this._maxResults, s.limit);\n        u.length = Math.min(u.length, this._maxResults);\n        return u;\n    };\n    p.prototype.getWebSuggState = function(q) {\n        while (q) {\n            var r = this._queryToWebSuggState[q];\n            if ((typeof r !== \"undefined\")) {\n                return r\n            };\n            q = q.slice(0, (q.length - 1));\n        };\n        return {\n            limit: 0,\n            showOnTop: false\n        };\n    };\n    p.prototype._isQueryTooShort = function(q) {\n        return ((q.length < this._minQueryLength) && !((this.complexChars && this.complexChars.test(q))));\n    };\n    p.prototype.shouldFetchMoreResults = function(q) {\n        var r = 0, s = 0;\n        q.forEach(function(t) {\n            if (((t.type !== \"websuggestion\") || (s++ < this._maxWebSuggToCountFetchMore))) {\n                r++;\n            };\n        }.bind(this));\n        return (r < this._maxResults);\n    };\n    p.prototype._bootstrapPostProcess = function() {\n        var q = {\n            time: Date.now()\n        };\n        this.inform(\"bootstrapped\", q, h.BEHAVIOR_PERSISTENT);\n        this._processLean();\n    };\n    p.prototype._processLean = function() {\n        if (this._leanPayload) {\n            var q, r = this._leanPayload.entries;\n            for (var s in r) {\n                q = this.getEntry(s);\n                (q && (q.index = r[s]));\n            };\n            this.setExclusions(this._leanPayload.blocked);\n            this._leanPayload = null;\n        }\n    ;\n    };\n    p.prototype._updateMaxResults = function() {\n        var q = (window.innerHeight || document.documentElement.clientHeight);\n        this.setMaxResults(Math.max(this._numResults.min, Math.min(this._numResults.max, Math.ceil((2 + ((((q - 370)) / 56)))))));\n    };\n    p.prototype._bootstrapFetch = function(q, r) {\n        var s = l(r, this.bootstrapData);\n        if ((this._criticalOnly && this._lazyonload)) {\n            s.lazy = 1;\n        };\n        this.fetch(this.bootstrapEndpoint, s, {\n            bootstrap: true,\n            type: q\n        });\n        ++this._bootstrapRequestsPending;\n    };\n    p.prototype._fetchOnUse = function(q, r) {\n        for (var s in this.bootstrapData) {\n            (!q.hasOwnProperty(s) && (q[s] = this.bootstrapData[s]));;\n        };\n        if (this._criticalOnly) {\n            this._fetchOnUseRequests.push({\n                args: q,\n                ctx: r\n            });\n        }\n         else this.fetch(this.bootstrapEndpoint, q, r);\n    ;\n    };\n    p.prototype._fetchLean = function() {\n        var q = {\n            no_cache: 1\n        };\n        q.options = m(q.options);\n        q.options.push(\"lean\");\n        this._fetchOnUse(q, {\n            type: \"lean\"\n        });\n    };\n    p.prototype.bootstrap = function(q) {\n        if (!q) {\n            this._criticalOnly = false;\n            this._flushFetchOnUseRequests();\n        }\n    ;\n        if (this._bootstrapped) {\n            return\n        };\n        var r = {\n            filter: [\"event\",],\n            no_cache: 1\n        };\n        this._fetchOnUse(r, {\n            type: \"event\"\n        });\n        var s = [\"app\",\"page\",\"group\",\"friendlist\",];\n        s = s.concat((this._extraTypes || []));\n        if (this._noMultiFetch) {\n            s.push(\"user\");\n            this._bootstrapFetch(\"user\", {\n                filter: s\n            });\n        }\n         else {\n            this._bootstrapFetch(\"other\", {\n                filter: s\n            });\n            if (this._buckets) {\n                for (var t = 0; (t < this._buckets.length); ++t) {\n                    var u = {\n                        filter: [\"user\",],\n                        buckets: this._buckets[t]\n                    };\n                    this._bootstrapFetch(\"user\", u);\n                };\n            }\n             else this._bootstrapFetch(\"user\", {\n                filter: [\"user\",]\n            });\n        ;\n        }\n    ;\n        this._fetchLean();\n        this._bootstrapped = true;\n    };\n    p.prototype._flushFetchOnUseRequests = function() {\n        var q = this._fetchOnUseRequests.length;\n        for (var r = 0; (r < q); ++r) {\n            var s = this._fetchOnUseRequests[r];\n            this.fetch(this.bootstrapEndpoint, s.args, s.ctx);\n        };\n        if ((q > 0)) {\n            this.inform(\"extra_bootstrap\", {\n                time: Date.now()\n            }, h.BEHAVIOR_PERSISTENT);\n        };\n        this._fetchOnUseRequests = [];\n    };\n    p.prototype.onLoad = function(q, r) {\n        this.inform(\"onload\", {\n            time: Date.now()\n        }, h.BEHAVIOR_PERSISTENT);\n        if (q) {\n            this.bootstrap.bind(this, r).defer();\n        };\n    };\n    p.prototype.mergeUids = function(q, r, s, t) {\n        var u = this.getDynamicHashtagResult(t);\n        if (((t && u) && (r.indexOf(u) <= 0))) {\n            r.unshift(u);\n        };\n        var v = (s[0] ? this.getEntry(s[0]) : null), w = (r[0] ? this.getEntry(r[0]) : null), x = (((v && v.replace_results)) ? v : null);\n        x = ((((!x && w) && w.replace_results)) ? w : x);\n        var y = o.mergeUids.call(this, q, r, s, t);\n        if (x) {\n            this.inform(\"backend_topreplace\", {\n            });\n            return this.deduplicateByKey([x.uid,].concat(y));\n        }\n    ;\n        return y;\n    };\n    p.prototype.getTextToIndexFromFields = function(q, r) {\n        var s = [], t = (q.tokenVersion === \"v2\");\n        for (var u = 0; (u < r.length); ++u) {\n            if ((t && (((r[u] === \"text\") || (r[u] === \"alias\"))))) {\n                continue;\n            };\n            var v = q[r[u]];\n            if (v) {\n                s.push((v.join ? v.join(\" \") : v));\n            };\n        };\n        return s.join(\" \");\n    };\n    p.prototype.getDynamicHashtagResult = function(q) {\n        if ((!q || !this._enabledHashtag)) {\n            return\n        };\n        var r = k.getHashtagFromQuery(q);\n        if (!r) {\n            return\n        };\n        var s = (\"hashtag:\" + r), t = this.getEntry(s);\n        if (!t) {\n            this.processEntries([k.makeTypeaheadResult(r),], q);\n        };\n        return s;\n    };\n    e.exports = p;\n});\n__d(\"legacy:SearchDataSource\", [\"SearchDataSource\",], function(a, b, c, d) {\n    a.SearchDataSource = b(\"SearchDataSource\");\n}, 3);\n__d(\"SearchTypeaheadCore\", [\"Event\",\"function-extensions\",\"Arbiter\",\"Class\",\"DOM\",\"Input\",\"Parent\",\"TypeaheadCore\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"DOM\"), k = b(\"Input\"), l = b(\"Parent\"), m = b(\"TypeaheadCore\"), n = b(\"copyProperties\"), o = ((m === null) ? null : m.prototype);\n    p.prototype = Object.create(o);\n    p.prototype.constructor = p;\n    p.__superConstructor__ = m;\n    function p(q) {\n        m.call(this, q);\n    };\n    p.prototype.init = function(q, r, s) {\n        o.init.call(this, q, r, s);\n        var t = l.byTag(s, \"form\"), u = this.reset.bind(this);\n        h.subscribe(\"pre_page_transition\", function(event, w) {\n            var x = /^\\/search/, y = x.test(w.from.path), z = x.test(w.to.path);\n            if ((y && !z)) {\n                u.defer();\n            };\n        });\n        if (t) {\n            var v = j.find(t, \"input.search_sid_input\");\n            g.listen(t, \"submit\", function() {\n                if ((this.data && this.data.queryData)) {\n                    v.value = this.data.queryData.sid;\n                };\n                u.defer();\n            }.bind(this), g.Priority.URGENT);\n        }\n    ;\n    };\n    p.prototype.select = function() {\n        this.reset();\n        this.element.focus();\n        (function() {\n            this.element.blur();\n        }).bind(this).defer();\n    };\n    p.prototype.handleTab = function(event) {\n        var q = this.view.getQuerySuggestion(this.value);\n        if (q) {\n            k.setValue(this.element, q);\n            this.checkValue();\n            event.kill();\n        }\n         else o.handleTab.call(this, event);\n    ;\n    };\n    p.prototype.getSearchType = function() {\n        return \"regular\";\n    };\n    e.exports = p;\n});\n__d(\"legacy:SearchTypeaheadCore\", [\"SearchTypeaheadCore\",], function(a, b, c, d) {\n    a.SearchTypeaheadCore = b(\"SearchTypeaheadCore\");\n}, 3);\n__d(\"SearchTypeaheadView\", [\"Arbiter\",\"ContextualTypeaheadView\",\"ContextualLayerUpdateOnScroll\",\"copyProperties\",\"DOM\",\"goURI\",\"MusicConstants\",\"MusicEvents\",\"tx\",\"URI\",\"isEmail\",\"fbt\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ContextualTypeaheadView\"), i = b(\"ContextualLayerUpdateOnScroll\"), j = b(\"copyProperties\"), k = b(\"DOM\"), l = b(\"goURI\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"tx\"), p = b(\"URI\"), q = b(\"isEmail\"), r = b(\"fbt\"), s = ((h === null) ? null : h.prototype);\n    t.prototype = Object.create(s);\n    t.prototype.constructor = t;\n    t.__superConstructor__ = h;\n    function t(v, w) {\n        h.call(this, v, w);\n    };\n    t.prototype.initializeLayer = function() {\n        s.initializeLayer.call(this);\n        this.layer.setOffsetY(-1);\n        this.layer.enableBehavior(i);\n    };\n    t.prototype.ignoreClick = function(event) {\n        event.prevent();\n    };\n    t.prototype.render = function(v, w, x) {\n        if (this._bucketize) {\n            w = u(w);\n        };\n        var y = {\n            results: w,\n            value: v\n        };\n        this.inform(\"finalResultsReordering\", y);\n        return s.render.call(this, v, y.results, x);\n    };\n    t.prototype.disableBucketization = function() {\n        this._bucketize = false;\n    };\n    t.prototype.buildBuckets = function(v, w) {\n        var x = w.length, y = 0, z;\n        for (z = 0; (z < x); ++z) {\n            if ((w[z].type == \"user\")) {\n                y++;\n            };\n        };\n        this._redirectToUsersResultsPage = (this.showFilterResults && (y === x));\n        this.setWebSuggLoggingParams(v, w);\n        if (this._bucketize) {\n            w = s.buildBuckets.call(this, v, w);\n        };\n        if ((v && this._shouldShowSeeMore)) {\n            w.push(this.buildSeeMore(v, x));\n            if ((q(v) && ((y < 1)))) {\n                w.push(this.buildInvite(v));\n            };\n        }\n    ;\n        return w;\n    };\n    t.prototype.buildSeeMore = function(v, w) {\n        var x = this.getSeeMoreText(v, w), y = ((w == 1) ? \"Displaying top result\" : o._(\"Displaying top {number} results\", {\n            number: w\n        })), z = k.create(\"li\", {\n            className: \"calltoaction\"\n        }, [k.create(\"a\", {\n            href: this.getSeeMoreEndpoint(v),\n            rel: \"ignore\"\n        }, [k.create(\"span\", {\n            className: \"text\"\n        }, [k.create(\"span\", {\n            className: \"seeMore\"\n        }, [x,k.create(\"span\", {\n            className: \"arrow\"\n        }),]),k.create(\"span\", {\n            className: \"subtext\"\n        }, [y,]),]),]),]);\n        z.setAttribute(\"aria-label\", x);\n        return {\n            uid: \"search\",\n            node: z,\n            search: true\n        };\n    };\n    t.prototype.getSeeMoreText = function(v, w) {\n        if (this.showKeywordResultsPage) {\n            return r._(\"Search for {query}\", [r.param(\"query\", v),])\n        };\n        if ((w <= 0)) {\n            return o._(\"See results for {query}\", {\n                query: v\n            })\n        };\n        if (this._redirectToUsersResultsPage) {\n            return r._(\"Filter results for {query}\", [r.param(\"query\", v),])\n        };\n        return o._(\"See more results for {query}\", {\n            query: v\n        });\n    };\n    t.prototype.buildInvite = function(v) {\n        var w = o._(\"Invite {query} to Facebook\", {\n            query: v\n        }), x = k.create(\"li\", {\n            className: \"calltoaction\"\n        }, [k.create(\"a\", {\n            href: this.getInviteEndpoint(v),\n            rel: \"ignore\"\n        }, [k.create(\"span\", {\n            className: \"text\"\n        }, [k.create(\"span\", {\n            className: \"invite\"\n        }, [w,]),]),]),]);\n        x.setAttribute(\"aria-label\", w);\n        return {\n            uid: \"invite\",\n            node: x,\n            search: true\n        };\n    };\n    t.prototype.searchPageQueryData = function(v) {\n        return j({\n            q: v\n        }, (this.queryData || {\n        }));\n    };\n    t.prototype.searchPageTypeData = function() {\n        return (this._redirectToUsersResultsPage ? {\n            type: \"users\"\n        } : {\n        });\n    };\n    t.prototype.select = function(v) {\n        var w = this.index, x = this.results[w];\n        if ((!x || (x.type == \"header\"))) {\n            return\n        };\n        var y = this.items[w], z = k.scry(y, \"a\")[0];\n        if (x.song) {\n            if (z) {\n                n.inform(m.MUSIC_BUTTON.ACTIVATE, z);\n            };\n            (v && this.inform(\"highlight\", {\n                index: w,\n                selected: x\n            }));\n        }\n         else {\n            s.select.call(this, v);\n            if ((z && z.href)) {\n                if ((z.target == \"_blank\")) {\n                    window.open(z.href);\n                }\n                 else l(z.href);\n            \n            };\n        }\n    ;\n    };\n    t.prototype.setSid = function(v) {\n        this.queryData.tas = v;\n    };\n    t.prototype.getSeeMoreEndpoint = function(v) {\n        return p(this.seeMoreEndpoint).addQueryData(this.searchPageQueryData(v)).addQueryData(this.searchPageTypeData()).toString();\n    };\n    t.prototype.getInviteEndpoint = function(v) {\n        return p(\"/invite.php\").addQueryData({\n            email_list: v\n        });\n    };\n    t.prototype.show = function() {\n        if (!this.isVisible()) {\n            g.inform(\"layer_shown\", {\n                type: \"SearchTypeahead\"\n            });\n            s.show.call(this);\n        }\n    ;\n    };\n    t.prototype.hide = function() {\n        if (this.isVisible()) {\n            g.inform(\"layer_hidden\", {\n                type: \"SearchTypeahead\"\n            });\n            s.hide.call(this);\n        }\n    ;\n    };\n    t.prototype.getQuerySuggestion = function(v) {\n        var w = this.results[this.index], x = ((w && (w.type != \"header\")) ? w.text.toLowerCase() : \"\");\n        return ((x == v.toLowerCase()) ? \"\" : x);\n    };\n    t.prototype.setWebSuggLoggingParams = function(v, w) {\n        var x = 0, y = 0;\n        for (var z = 0; (z < w.length); z++) {\n            if ((w[z].type === \"websuggestion\")) {\n                if ((y === 0)) {\n                    y = (z + 1);\n                };\n                var aa = (((\"FR\" + ((z - x))) + \"AS\") + x), ba = (z + 1);\n                w[z].path += (((((\"&wssk=\" + aa) + \"&wssp=\") + ba) + \"&wspq=\") + encodeURIComponent(v));\n                w[z].path += (\"&wssrc=\" + w[z].websuggestion_source);\n                x++;\n            }\n        ;\n        };\n        var ca = (((((((\"&wssc=\" + w.length) + \"-\") + v.length) + \"&wsbp=\") + x) + \"-\") + y);\n        for (z = 0; (z < w.length); z++) {\n            if ((w[z].type === \"websuggestion\")) {\n                w[z].path += ca;\n            };\n        };\n    };\n    function u(v) {\n        var w, x, y, z, aa = [], ba = {\n        };\n        x = v.length;\n        for (w = 0; (w < x); w++) {\n            y = v[w];\n            z = (y.render_type || y.type);\n            if (!ba.hasOwnProperty(z)) {\n                ba[z] = aa.length;\n                aa.push([]);\n            }\n        ;\n            aa[ba[z]].push(y);\n        };\n        var ca = [];\n        x = aa.length;\n        for (w = 0; (w < x); ++w) {\n            y = aa[w][0];\n            z = (y.render_type || y.type);\n            ca = ca.concat(aa[w]);\n        };\n        return ca;\n    };\n    j(t.prototype, {\n        _shouldShowSeeMore: true,\n        _bucketize: true,\n        queryData: {\n            init: \"quick\"\n        }\n    });\n    e.exports = t;\n});\n__d(\"legacy:SearchTypeaheadView\", [\"SearchTypeaheadView\",], function(a, b, c, d) {\n    a.SearchTypeaheadView = b(\"SearchTypeaheadView\");\n}, 3);\n__d(\"legacy:Typeahead\", [\"Typeahead\",], function(a, b, c, d) {\n    a.Typeahead = b(\"Typeahead\");\n}, 3);\n__d(\"SearchTypeaheadRecorder\", [\"Event\",\"AsyncRequest\",\"Banzai\",\"Keys\",\"TypeaheadUtil\",\"Vector\",\"ge\",\"clickRefAction\",\"copyProperties\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"Banzai\"), j = b(\"Keys\"), k = b(\"TypeaheadUtil\"), l = b(\"Vector\"), m = b(\"ge\"), n = b(\"clickRefAction\"), o = b(\"copyProperties\"), p = b(\"userAction\");\n    function q(s) {\n        this.init(s);\n        this.initEvents();\n    };\n    q.prototype.init = function(s) {\n        this.core = s.getCore();\n        this.data = s.getData();\n        this.view = s.getView();\n        this.element = this.core.getElement();\n        this.initTime = Date.now();\n        this._onloadTime = 0;\n        this._extraRecorder = [];\n        var t = m(\"search_first_focus\");\n        this.initStartTime = (t && t.value);\n        this.bootstrapStats = {\n            bootstrapped: 0\n        };\n        this._reset();\n    };\n    q.prototype._reset = function() {\n        this.stats = {\n        };\n        this.avgStats = {\n        };\n        this.appendStats = {\n        };\n        this._backspacing = false;\n        this.backendQueries = [];\n        this._topreplace = false;\n        this._inflightRequests = {\n        };\n        this._reorderInfo = null;\n        var s = Math.random().toString();\n        this.data.setQueryData({\n            sid: s\n        });\n        this.view.setSid(s);\n        this.recordStat(\"sid\", s);\n    };\n    q.prototype.initEvents = function() {\n        this.core.subscribe(\"focus\", function(event) {\n            if (!this.stats.session_start_time) {\n                this.recordStat(\"session_start_time\", Date.now());\n            };\n        }.bind(this));\n        this.core.subscribe(\"blur\", function(event) {\n            var s = Date.now();\n            for (var t in this._inflightRequests) {\n                var u = this._inflightRequests[t], v = (s - u);\n                this.recordAvgStat(\"search_endpoint_ms_from_js\", v);\n            };\n            this.recordStat(\"session_end_time\", s);\n            this.submit();\n        }.bind(this));\n        this.view.subscribe(\"select\", function(s, t) {\n            this.recordSelectInfo(t);\n        }.bind(this));\n        this.view.subscribe(\"render\", function(s, t) {\n            this.recordRender(t);\n        }.bind(this));\n        this.view.subscribe(\"recordAfterReorder\", function(s, t) {\n            this._reorderInfo = o(this._reorderInfo, t);\n        }.bind(this));\n        this.data.subscribe(\"activity\", function(s, t) {\n            this.recordStat(\"pending_request\", t.activity);\n        }.bind(this));\n        this.data.subscribe(\"respondValidUids\", function(s, t) {\n            this.validUids = t.slice(0);\n        }.bind(this));\n        this.data.subscribe(\"beforeQuery\", function(s, t) {\n            if (!t.value) {\n                this.query = \"\";\n                this.results = [];\n                return;\n            }\n        ;\n            if (!this.stats.first_query_time) {\n                this.recordStat(\"first_query_time\", Date.now());\n            };\n            this.query = t.value;\n            this.recordCountStat(\"num_queries\");\n        }.bind(this));\n        this.data.subscribe(\"queryEndpoint\", function(s, t) {\n            this.recordCountStat(\"num_search_ajax_requests\");\n            this.recordAvgStat(\"endpoint_query_length\", t.value.length);\n            this._inflightRequests[t.value] = Date.now();\n        }.bind(this));\n        this.data.subscribe(\"onload\", function(s, t) {\n            this._onloadTime = t.time;\n        }.bind(this));\n        this.data.subscribe(\"bootstrapped\", function(s, t) {\n            this.bootstrapStats.endTime = t.time;\n            this.bootstrapStats.bootstrapped = 1;\n        }.bind(this));\n        this.core.subscribe(\"recordFunction\", function(s, t) {\n            this._extraRecorder.push(t);\n        }.bind(this));\n        this.data.subscribe(\"endpointStats\", function(s, t) {\n            var u = (t.fetch_end - t.fetch_start);\n            if (t.value) {\n                this.recordAvgStat(\"search_endpoint_ms_from_js\", u);\n            }\n             else this.bootstrapStats[t.type] = u;\n        ;\n            if (t.coeff2_ts) {\n                this.bootstrapStats.coeff2_ts = t.coeff2_ts;\n            };\n            if ((typeof t.browserCacheHit != \"undefined\")) {\n                this.recordCountStat((t.browserCacheHit ? \"bootstrap_cachehits\" : \"bootstrap_cachemisses\"));\n            };\n            if (this._inflightRequests[t.value]) {\n                delete this._inflightRequests[t.value];\n            };\n        }.bind(this));\n        this.data.subscribe(\"query\", function(s, t) {\n            this.recordAvgStat(\"num_results_from_cache\", t.results.length);\n        }.bind(this));\n        this.data.subscribe(\"backend_topreplace\", function(s, t) {\n            if ((false === this._topreplace)) {\n                this.recordStat(\"backend_topreplace\", 1);\n                this._topreplace = true;\n            }\n        ;\n        }.bind(this));\n        g.listen(this.element, \"keydown\", function(event) {\n            if ((g.getKeyCode(event) == j.BACKSPACE)) {\n                if ((!this._backspacing && this.query)) {\n                    this._backspacing = true;\n                    this.recordAppendStat(\"before_backspace_queries\", this.query);\n                }\n            ;\n            }\n             else this._backspacing = false;\n        ;\n        }.bind(this));\n        this.data.subscribe(\"beforeFetch\", function(s, t) {\n            var u = t.request.data.value;\n            if (!u) {\n                return\n            };\n            this.backendQueries.push(u);\n        }.bind(this));\n    };\n    q.prototype.recordStat = function(s, t) {\n        this.stats[s] = t;\n    };\n    q.prototype.recordCountStat = function(s) {\n        var t = this.stats[s];\n        this.stats[s] = (t ? (t + 1) : 1);\n    };\n    q.prototype.recordAvgStat = function(s, t) {\n        if (this.avgStats[s]) {\n            this.avgStats[s][0] += t;\n            ++this.avgStats[s][1];\n        }\n         else this.avgStats[s] = [t,1,];\n    ;\n    };\n    q.prototype.recordAppendStat = function(s, t) {\n        if (!this.appendStats.hasOwnProperty(s)) {\n            this.appendStats[s] = [];\n        };\n        this.appendStats[s].push(t);\n    };\n    q.prototype.recordRender = function(s) {\n        this.results = s.filter(function(u) {\n            return ((((u.uid != \"search\") && (u.type != \"disabled_result\")) && (u.type != \"header\")));\n        }).map(function(u) {\n            return o(null, u);\n        });\n        var t = l.getViewportDimensions();\n        this.recordStat(\"window_size_width\", t.x);\n        this.recordStat(\"window_size_height\", t.y);\n        if (((this.results.length > 0) && !this.stats.first_result_time)) {\n            this.recordStat(\"first_result_time\", Date.now());\n        };\n    };\n    q.prototype.recordSelectInfo = function(s) {\n        var t = s.selected, u = s.index;\n        if ((t.groupIndex !== undefined)) {\n            u = ((s.index - t.groupIndex) - 1);\n        };\n        var v = {\n            href: t.path\n        }, w = (t.dataGT ? {\n            gt: JSON.parse(t.dataGT)\n        } : {\n        });\n        n(\"click\", v, null, null, w);\n        p(\"search\").uai(\"click\");\n        if ((t.uid == \"search\")) {\n            this.recordStat(\"selected_search\", 1);\n        }\n         else if ((t.uid == \"invite\")) {\n            this.recordStat(\"selected_invite\", 1);\n        }\n         else {\n            var x = ((t.rankType || t.render_type) || t.type), y = (((x == \"friend\") ? \"user\" : x));\n            this.recordStat((\"selected_\" + y), 1);\n            this.recordStat(\"selected_position\", u);\n            this.recordStat(\"selected_type\", x);\n            this.recordStat(\"selected_name_length\", t.text.length);\n            this.recordStat(\"selected_id\", t.uid);\n            this.recordStat(\"selected_degree\", (t.bootstrapped ? 1 : 2));\n            var z = k.parse(this.data.getTextToIndex(t)).tokens, aa = r(z, this.query);\n            if (aa) {\n                this.recordStat(\"matched_terms\", aa);\n            };\n        }\n        \n    ;\n        var ba = {\n        };\n        this._extraRecorder.forEach(function(ca) {\n            ca(s, this.results, ba);\n        }.bind(this));\n        this.recordStat(\"extra_select_info\", JSON.stringify(ba));\n        if ((t.type === \"websuggestion\")) {\n            this.recordStat(\"selected_memcached_websuggestion\", t.fromMemcache);\n            this.recordStat(\"selected_websuggestion_source\", t.websuggestion_source);\n        }\n    ;\n        this.recordStat(\"selected_with_mouse\", (s.clicked ? 1 : 0));\n    };\n    q.prototype._dataToSubmit = function() {\n        this.recordStat(\"candidate_results\", this.buildResults());\n        this.recordStat(\"query\", this.query);\n        this.recordStat(\"init_time\", this.initTime);\n        if (this.initStartTime) {\n            this.recordStat(\"init_start_time\", this.initStartTime);\n            this.recordStat(\"onload_time\", this._onloadTime);\n            this.initStartTime = 0;\n        }\n    ;\n        this.recordStat(\"bootstrapped\", this.bootstrapStats.bootstrapped);\n        if (this.bootstrapStats.endTime) {\n            this.recordStat(\"bootstrapped_time\", this.bootstrapStats.endTime);\n            this.recordStat(\"user_bootstrap_ms\", this.bootstrapStats.user);\n            this.recordStat(\"other_bootstrap_ms\", this.bootstrapStats.other);\n            this.bootstrapStats.endTime = 0;\n        }\n    ;\n        this.recordStat(\"coeff2_ts\", this.bootstrapStats.coeff2_ts);\n        this.recordStat(\"max_results\", this.data._maxResults);\n        if ((this.backendQueries.length > 0)) {\n            if ((this.backendQueries.length > this.data.logBackendQueriesWindow)) {\n                this.backendQueries = this.backendQueries.slice((this.backendQueries.length - this.data.logBackendQueriesWindow));\n            };\n            this.recordStat(\"backend_queries\", this.backendQueries);\n        }\n    ;\n        if (this._reorderInfo) {\n            var s = this._reorderInfo;\n            s.organic.forEach(function(x) {\n                delete x.text;\n            });\n            this.recordStat(\"s_count\", s.position_data.length);\n            this.recordStat(\"s_bootstrap_id\", s.s_bootstrap_id);\n            this.recordStat(\"s_organic_results\", JSON.stringify(s.organic));\n            this.recordStat(\"s_candidate_tokens\", JSON.stringify(s.tokens));\n            this.recordStat(\"s_positions\", JSON.stringify(s.position_data));\n            this.recordStat(\"s_options\", JSON.stringify(s.options));\n            this.recordStat(\"s_variant\", JSON.stringify(s.variant));\n        }\n    ;\n        var t = this.stats;\n        for (var u in this.avgStats) {\n            var v = this.avgStats[u];\n            t[u] = (v[0] / v[1]);\n        };\n        for (var w in this.appendStats) {\n            t[w] = JSON.stringify(this.appendStats[w]);;\n        };\n        return t;\n    };\n    q.prototype.buildResults = function() {\n        var s = ((this.results || [])).map(function(t, u) {\n            var v = k.parse(this.data.getTextToIndex(t)).tokens, w = ((t.rankType || t.render_type) || t.type), x = (t.bootstrapped ? 1 : 0), y = (t.s_token || \"\"), z = (r(v, this.query) || this.query), aa = t.index_rank, ba = t.match_type, ca = t.prefix_match, da = t.prefix_length;\n            if ((typeof t.groupIndex == \"number\")) {\n                return [t.groupIndex,t.indexInGroup,t.uid,w,x,y,z,aa,ba,ca,da,t.origIndex,]\n            };\n            return [0,u,t.uid,w,x,y,z,aa,ba,ca,da,t.origIndex,];\n        }.bind(this));\n        return JSON.stringify(s);\n    };\n    q.prototype.submit = function() {\n        var s = this._dataToSubmit();\n        switch (this.data.recordingRoute) {\n          case \"double_recording\":\n            if ((Math.random() > 113062)) {\n                s.recorded_first = \"legacy\";\n                setTimeout(this.submitThroughAsyncRequest.bind(this, s), 0);\n                i.post(this._banzaiRoute, s, {\n                    delay: 0,\n                    retry: true\n                });\n            }\n             else {\n                s.recorded_first = \"banzai\";\n                i.post(this._banzaiRoute, s, {\n                    delay: 0,\n                    retry: true\n                });\n                setTimeout(this.submitThroughAsyncRequest.bind(this, s), 0);\n            }\n        ;\n            break;\n          case \"random_recording\":\n            if ((Math.random() > 113386)) {\n                this.submitThroughAsyncRequest(s);\n            }\n             else i.post(this._banzaiRoute, s, {\n                delay: 0,\n                retry: true\n            });\n        ;\n            break;\n          case \"banzai_basic\":\n            i.post(this._banzaiRoute, s);\n            break;\n          case \"banzai_vital\":\n            i.post(this._banzaiRoute, s, {\n                delay: 0,\n                retry: true\n            });\n            break;\n          default:\n            this.submitThroughAsyncRequest(s);\n        };\n        this._reset();\n    };\n    q.prototype.submitThroughAsyncRequest = function(s) {\n        if ((Object.keys(s).length > 0)) {\n            new h().setURI(this._endPoint).setMethod(\"POST\").setData({\n                stats: s\n            }).setOption(\"handleErrorAfterUnload\", true).setErrorHandler(function(t) {\n                s.retry = true;\n                new h().setURI(this._endPoint).setMethod(\"POST\").setData({\n                    stats: s\n                }).setOption(\"asynchronous\", false).send();\n            }.bind(this)).send();\n        };\n    };\n    var r = function(s, t) {\n        var u = k.parse(t);\n        if ((u.flatValue[(u.flatValue.length - 1)] === \" \")) {\n            return u.flatValue\n        };\n        var v = u.tokens[(u.tokens.length - 1)], w = {\n        };\n        s.forEach(function(ba) {\n            w[ba] = (((w[ba] || 0)) + 1);\n        });\n        var x = {\n        }, y = u.tokens.slice(0, (u.tokens.length - 1));\n        y.forEach(function(ba) {\n            x[ba] = (((x[ba] || 0)) + 1);\n        });\n        for (var z = 0; (z < s.length); ++z) {\n            var aa = s[z];\n            if (((aa.indexOf(v) === 0) && (((w[aa] - ((x[aa] || 0))) > 0)))) {\n                y.push(aa);\n                return y.join(\" \");\n            }\n        ;\n        };\n        return undefined;\n    };\n    o(q.prototype, {\n        _endPoint: \"/ajax/typeahead/record_metrics.php\",\n        _banzaiRoute: \"search\"\n    });\n    e.exports = q;\n});\n__d(\"TypeaheadSearchRecorderBasic\", [\"SearchTypeaheadRecorder\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"SearchTypeaheadRecorder\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j(k) {\n        this._typeahead = k;\n    };\n    j.prototype.enable = function() {\n        new g(this._typeahead);\n    };\n    h(j.prototype, {\n        disable: i\n    });\n    e.exports = j;\n});\n__d(\"legacy:SearchRecorderBasicTypeaheadBehavior\", [\"TypeaheadSearchRecorderBasic\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadSearchRecorderBasic\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.searchRecorderBasic = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"SearchTypeaheadRenderer\", [\"Badge\",\"DOM\",\"Env\",\"MusicButtonManager\",\"TypeaheadFacepile\",\"TypeaheadUtil\",], function(a, b, c, d, e, f) {\n    var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"Env\"), j = b(\"MusicButtonManager\"), k = b(\"TypeaheadFacepile\"), l = b(\"TypeaheadUtil\");\n    function m(n, o) {\n        var p = [], q = (n.photos || n.photo);\n        if (q) {\n            if ((q instanceof Array)) {\n                q = k.render(q);\n            }\n             else q = h.create(\"img\", {\n                alt: \"\",\n                src: q\n            });\n        ;\n            p.push(q);\n            if (n.song) {\n                p.push(h.create(\"span\", {\n                    className: \"playButton\"\n                }));\n                p.push(h.create(\"span\", {\n                    className: \"playLoader\"\n                }));\n            }\n        ;\n        }\n    ;\n        var r;\n        if (n.text) {\n            var s = n.alias, t = this.value, u = n.text;\n            r = [u,];\n            if (((s && l.isQueryMatch(t, s)) && !l.isQueryMatch(t, u))) {\n                r.push(h.create(\"span\", {\n                    className: \"alias\"\n                }, [(\" \\u00b7 \" + s),]));\n            };\n            if (n.verified) {\n                r.push(g(\"xsmall\"));\n            };\n            p.push(h.create(\"span\", {\n                className: \"text\"\n            }, r));\n        }\n    ;\n        if (n.category) {\n            var v = [n.category,];\n            if (n.is_external) {\n                v.push(h.create(\"span\", {\n                    className: \"arrow\"\n                }));\n            };\n            var w = (n.message ? \"preCategory\" : \"category\");\n            p.push(h.create(\"span\", {\n                className: w\n            }, v));\n        }\n    ;\n        if (n.message) {\n            p.push(h.create(\"span\", {\n                className: \"category\"\n            }, [n.message,]));\n        };\n        var x = (n.subtextOverride || n.subtext);\n        if (x) {\n            p.push(h.create(\"span\", {\n                className: \"subtext\"\n            }, [x,]));\n        };\n        var y = ((n.classNames || n.type) || \"\"), z = (n.is_external ? \"_blank\" : \"\"), aa = ((!n.song && n.path) || \"\");\n        if (aa) {\n            if (!(/^https?\\:\\/\\//).test(aa)) {\n                aa = (i.www_base + aa.substr(1));\n            };\n            aa += ((((aa.indexOf(\"?\") > 0) ? \"&\" : \"?\")) + \"ref=ts&fref=ts\");\n        }\n    ;\n        var ba = h.create(\"a\", {\n            href: aa,\n            rel: \"ignore\",\n            target: z\n        }, p);\n        if (n.song) {\n            ba.id = (\"mb_\" + (((Math.random() * 1000000) | 0)));\n            j.addButton.curry(n.song.provider, ba.id, n.song.url, n.song.context, n.song.media_type).defer();\n            ba.onclick = this.ignoreClick;\n        }\n    ;\n        var ca = h.create(\"li\", {\n            className: y\n        }, [ba,]);\n        if (n.text) {\n            ca.setAttribute(\"aria-label\", n.text);\n        };\n        return ca;\n    };\n    m.className = \"search\";\n    e.exports = m;\n});\n__d(\"legacy:SearchTypeaheadRenderer\", [\"SearchTypeaheadRenderer\",], function(a, b, c, d) {\n    if (!a.TypeaheadRenderers) {\n        a.TypeaheadRenderers = {\n        };\n    };\n    a.TypeaheadRenderers.search = b(\"SearchTypeaheadRenderer\");\n}, 3);\nvoid (0);\n__d(\"TypeaheadSearchFilter\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._typeahead = j;\n    };\n    i.prototype.enable = function() {\n        var j = this._typeahead, k = j.getView().seeMoreEndpoint;\n        this._subscriptions = [g.subscribe(\"search/typeahead/updateFilter\", function(l, m) {\n            if ((m.filter_type == \"web\")) {\n                j.getView().queryData.form = \"FBKBFR\";\n            };\n            j.getView().queryData.type = m.filter_type;\n        }),g.subscribe(\"search/typeahead/updateSeeMoreEndpoint\", function(l, m) {\n            j.getView().seeMoreEndpoint = m;\n        }),g.subscribe(\"page_transition\", function(l, m) {\n            if (j.getView().queryData.form) {\n                delete j.getView().queryData.form;\n            };\n            delete j.getView().queryData.type;\n            j.getView().seeMoreEndpoint = k;\n        }, g.SUBSCRIBE_NEW),];\n    };\n    i.prototype.disable = function() {\n        this._subscriptions.forEach(function(j) {\n            j.unsubscribe();\n        });\n        this._subscriptions = null;\n    };\n    h(i.prototype, {\n        _subscription: null\n    });\n    e.exports = i;\n});\n__d(\"legacy:SearchFilterTypeaheadBehavior\", [\"TypeaheadSearchFilter\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadSearchFilter\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.initFilters = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"TypeaheadDetectQueryLocale\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        this._typeahead = h;\n        this._data = h.getData();\n        this._queryCache = {\n            \"\": this._data.queryCache,\n            ja_JP: {\n            },\n            zh_TW: {\n            }\n        };\n    };\n    g.prototype.enable = function() {\n        this._previousLocale = \"\";\n        this._reset = this._typeahead.subscribe(\"reset\", this._swapQueryCache.bind(this, \"\"));\n        this._beforeQuery = this._data.subscribe(\"beforeQuery\", function(h, i) {\n            var j = i.value;\n            if ((j === \"\")) {\n                this._swapQueryCache(\"\");\n                return;\n            }\n        ;\n            var k = null, l = j.charCodeAt((j.length - 1));\n            if (((12352 <= l) && (l <= 12543))) {\n                k = \"ja_JP\";\n            }\n             else if (((12544 <= l) && (l <= 12735))) {\n                k = \"zh_TW\";\n            }\n        ;\n            this._swapQueryCache(k);\n        }.bind(this));\n    };\n    g.prototype.disable = function() {\n        this._swapQueryCache(\"\");\n        this._data.unsubscribe(this._beforeQuery);\n        this._typeahead.ubsubscribe(this._reset);\n    };\n    g.prototype._swapQueryCache = function(h) {\n        if (((h === null) || (h === this._previousLocale))) {\n            return\n        };\n        this._data.queryCache = this._queryCache[h];\n        this._data.setQueryData({\n            query_locale: h\n        });\n        this._previousLocale = h;\n    };\n    e.exports = g;\n});\n__d(\"TypeaheadDisableBucketization\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n    function i(j) {\n        this._typeahead = j;\n    };\n    i.prototype.enable = function() {\n        this._typeahead.getView().disableBucketization();\n        this._typeahead.getData().inform(\"recordFunction\", function(j, k, l) {\n            l.bucketization_disabled = 1;\n        });\n    };\n    g(i.prototype, {\n        disable: h.thatReturns\n    });\n    e.exports = i;\n});\n__d(\"TypeaheadExcludeBootstrapFromQueryCache\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        this._data = h.getData();\n    };\n    g.prototype.enable = function() {\n        this._buildingQueryCache = false;\n        this._buildQueryCache = this._data.subscribe(\"buildQueryCache\", function() {\n            this._buildingQueryCache = true;\n        }.bind(this));\n        this._mergeUids = this._data.subscribe(\"mergeUids\", function(h, i) {\n            if (this._buildingQueryCache) {\n                i.local_uids.splice(0, i.local_uids.length);\n            };\n        }.bind(this));\n        this._fetchComplete = this._data.subscribe(\"fetchComplete\", function() {\n            this._buildingQueryCache = false;\n        }.bind(this));\n    };\n    g.prototype.disable = function() {\n        this._data.unsubscribe(this._buildQueryCache);\n        this._data.unsubscribe(this._mergeUids);\n        this._data.unsubscribe(this._fetchComplete);\n    };\n    e.exports = g;\n});\n__d(\"TypeaheadSearchBrowseUpsell\", [\"Arbiter\",\"CSS\",\"DOM\",\"Event\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\"), m = \"TypeaheadSearchBrowseUpsell/form\";\n    function n(o) {\n        this._typeahead = o;\n        this._form = null;\n        g.subscribe(m, this._registerForm.bind(this));\n    };\n    n.prototype._registerForm = function(o, p) {\n        this._form = p.cloneNode(true);\n        i.scry(this._form, \"button\").forEach(function(q) {\n            h.removeClass(q, \"selected\");\n        });\n        j.listen(this._form, \"success\", function() {\n            this._typeahead.view.hide();\n            h.addClass(this._form, \"browseSuccess\");\n        }.bind(this));\n    };\n    n.prototype.addUpsell = function(o) {\n        if (this._form) {\n            var p = i.create(\"li\", {\n                className: \"browseUpsell\"\n            }, this._form);\n            o.push({\n                type: \"disabled_result\",\n                uid: \"upsell\",\n                node: p\n            });\n        }\n    ;\n    };\n    n.prototype.decorateSeeMore = function(o) {\n        var p = o[(o.length - 1)];\n        if ((p && (p.uid === \"search\"))) {\n            h.addClass(p.node, \"browseMore\");\n        };\n    };\n    n.prototype.showUpsell = function() {\n        var o = this._typeahead.view;\n        return (o._shouldShowSeeMore && !h.hasClass(o.element, \"typeaheadViewLoading\"));\n    };\n    n.prototype.enable = function() {\n        this._typeahead.subscribe(\"beforeRender\", function(o, p) {\n            var q = p.results.length;\n            if ((q && this.showUpsell())) {\n                this.decorateSeeMore(p.results);\n                this.addUpsell(p.results);\n            }\n        ;\n        }.bind(this));\n    };\n    n.registerForm = function(o) {\n        g.inform(m, o, g.BEHAVIOR_STATE);\n    };\n    k(n.prototype, {\n        disable: l\n    });\n    e.exports = n;\n});\n__d(\"TypeaheadRegulateMemorializedUsers\", [\"copyProperties\",\"TypeaheadUtil\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"TypeaheadUtil\");\n    function i(j) {\n        this._typeahead = j;\n    };\n    g(i.prototype, {\n        _filterRegistry: null,\n        _filter: function(j, k) {\n            if (((j.type !== \"user\") || !j.memorialized)) {\n                return true\n            };\n            var l = h.parse(j.text).tokens;\n            if (((l.length === 1) && h.isExactMatch(k, j.text))) {\n                return true\n            };\n            var m = this._typeahead.getData().getTextToIndex(j), n = h.parse(k).tokens;\n            return (((n.length > 1) && h.isQueryMatch(k, m)));\n        },\n        enable: function() {\n            this._filterRegistry = this._typeahead.getData().addFilter(this._filter.bind(this));\n        },\n        disable: function() {\n            this._filterRegistry.remove();\n            this._filterRegistry = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"legacy:RegulateMemorializedUsersTypeaheadBehavior\", [\"TypeaheadRegulateMemorializedUsers\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadRegulateMemorializedUsers\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.regulateMemorializedUsers = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);");
36501 // 10532
36502 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sa0cdb1bc3c127a88a086a13f4a6ca1502f98adf1");
36503 // 10533
36504 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"hfrQl\",]);\n}\n;\n;\n__d(\"FriendBrowserCheckboxController\", [\"AsyncRequest\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"Form\",\"OnVisible\",\"$\",\"bind\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"Form\"), l = b(\"OnVisible\"), m = b(\"$\"), n = b(\"bind\"), o = b(\"copyProperties\"), p = b(\"ge\");\n    function q() {\n    \n    };\n;\n    o(q, {\n        instances: {\n        },\n        getInstance: function(r) {\n            return this.instances[r];\n        }\n    });\n    o(q.prototype, {\n        init: function(r, s, t, u) {\n            q.instances[r] = this;\n            this._id = r;\n            this._simplified = t;\n            this._infiniteScroll = u;\n            this._form = s;\n            this._contentGrid = i.JSBNG__find(s, \".friendBrowserCheckboxContentGrid\");\n            this._loadingIndicator = i.JSBNG__find(s, \".friendBrowsingCheckboxContentLoadingIndicator\");\n            this._checkboxResults = i.JSBNG__find(s, \".friendBrowserCheckboxResults\");\n            this._contentPager = i.JSBNG__find(s, \".friendBrowserCheckboxContentPager\");\n            this.numGetNewRequests = 0;\n            this.queuedRequests = {\n            };\n            j.listen(this._form, \"submit\", this.onFormSubmit.bind(this));\n        },\n        addTypeahead: function(r, s) {\n            r.subscribe(\"select\", this.onHubSelect.bind(this, r, s));\n            if (this._simplified) {\n                r.subscribe(\"unselect\", this.onHubSelect.bind(this, r, s));\n            }\n        ;\n        ;\n        },\n        onFormSubmit: function() {\n            this.getNew(true);\n            return false;\n        },\n        addSelector: function(r) {\n            r.subscribe(\"change\", this.getNew.bind(this, false));\n        },\n        onHubSelect: function(r, s, JSBNG__event, t) {\n            if (this._simplified) {\n                this.getNew(true);\n                return;\n            }\n        ;\n        ;\n            if (!((((JSBNG__event == \"select\")) && t.selected))) {\n                return;\n            }\n        ;\n        ;\n            var u = this.buildNewCheckbox(s, t.selected.text, t.selected.uid), v = i.JSBNG__find(this._form, ((\".checkboxes_\" + s)));\n            i.appendContent(v.firstChild, u);\n            var w = i.scry(r.getElement(), \"input[type=\\\"button\\\"]\");\n            if (((w && w[0]))) {\n                w[0].click();\n            }\n        ;\n        ;\n            this.getNew(true);\n        },\n        buildNewCheckbox: function(r, s, t) {\n            var u = ((((r + \"_ids_\")) + t)), v = ((r + \"_ids[]\")), w = i.create(\"input\", {\n                id: u,\n                type: \"checkbox\",\n                value: t,\n                JSBNG__name: v,\n                checked: true\n            });\n            j.listen(w, \"click\", n(this, \"getNew\", false));\n            var x = i.create(\"td\", null, w);\n            h.addClass(x, \"vTop\");\n            h.addClass(x, \"hLeft\");\n            var y = i.create(\"label\", null, s), z = i.create(\"td\", null, y);\n            h.addClass(z, \"vMid\");\n            h.addClass(z, \"hLeft\");\n            var aa = i.create(\"tr\");\n            aa.appendChild(x);\n            aa.appendChild(z);\n            return aa;\n        },\n        showMore: function() {\n            var r = i.scry(this._contentPager, \".friendBrowserMorePager\")[0];\n            if (!r) {\n                return false;\n            }\n        ;\n        ;\n            if (h.hasClass(r, \"async_saving\")) {\n                return false;\n            }\n        ;\n        ;\n            var s = this.numGetNewRequests, t = k.serialize(this._form);\n            t.show_more = true;\n            var u = new g().setURI(\"/ajax/growth/friend_browser/checkbox.php\").setData(t).setHandler(n(this, function(v) {\n                this.showMoreHandler(v, s);\n            })).setStatusElement(r).send();\n        },\n        showMoreHandler: function(r, s) {\n            if (((s == this.numGetNewRequests))) {\n                var t = r.payload;\n                i.appendContent(this._contentGrid, t.results);\n                this.updatePagerAndExtraData(t.pager, t.extra_data);\n            }\n        ;\n        ;\n        },\n        getNew: function(r) {\n            this.numGetNewRequests++;\n            var s = this.numGetNewRequests;\n            h.addClass(this._checkboxResults, \"friendBrowserCheckboxContentOnload\");\n            if (p(\"friendBrowserCI\")) {\n                h.addClass(m(\"friendBrowserCI\"), \"friendBrowserCheckboxContentOnload\");\n            }\n        ;\n        ;\n            h.show(this._loadingIndicator);\n            var t = k.serialize(this._form);\n            t.used_typeahead = r;\n            new g().setURI(\"/ajax/growth/friend_browser/checkbox.php\").setData(t).setHandler(n(this, function(u) {\n                this.getNewHandler(u, s);\n            })).send();\n        },\n        getNewHandler: function(r, s) {\n            if (((s == this.numGetNewRequests))) {\n                var t = r.payload;\n                i.setContent(this._contentGrid, t.results);\n                h.removeClass(this._checkboxResults, \"friendBrowserCheckboxContentOnload\");\n                if (p(\"friendBrowserCI\")) {\n                    h.hide(m(\"friendBrowserCI\"));\n                }\n            ;\n            ;\n                h.hide(this._loadingIndicator);\n                this.updatePagerAndExtraData(t.pager, t.extra_data);\n            }\n        ;\n        ;\n        },\n        updatePagerAndExtraData: function(r, s) {\n            i.setContent(this._contentPager, r);\n            if (this._infiniteScroll) {\n                this.setupOnVisible();\n            }\n        ;\n        ;\n            i.replace(this._form.elements.extra_data, s);\n        },\n        setupOnVisible: function() {\n            var r = i.scry(this._contentPager, \".friendBrowserMorePager\")[0];\n            if (((r && ((this._id != \"jewel\"))))) {\n                ((this._onVisible && this._onVisible.remove()));\n                this._onVisible = new l(r, n(this, \"showMore\"), false, 1000);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = q;\n});\n__d(\"legacy:friend-browser-checkbox-js\", [\"FriendBrowserCheckboxController\",], function(a, b, c, d) {\n    a.FriendBrowserCheckboxController = b(\"FriendBrowserCheckboxController\");\n}, 3);\n__d(\"FacebarResultStoreUtils\", [], function(a, b, c, d, e, f) {\n    var g = {\n        processEntityResult: function(h, i, j, k) {\n            var l = {\n                semantic: i.toString(),\n                structure: [{\n                    type: ((\"ent:\" + h)),\n                    text: j,\n                    uid: i\n                },],\n                type: ((((\"{\" + h)) + \"}\")),\n                cost: k,\n                cache_id_length: 0,\n                bolding: []\n            };\n            l.tuid = JSON.stringify({\n                semantic: l.semantic,\n                structure: l.structure\n            });\n            return l;\n        }\n    };\n    e.exports = g;\n});\n__d(\"HashtagParser\", [\"URLMatcher\",], function(a, b, c, d, e, f) {\n    var g = b(\"URLMatcher\"), h = 100, i = 30, j = /@\\[([0-9]+):([0-9]+):((?:[^\\\\\\]]*(?:\\\\.)*)*)\\]/g;\n    function k() {\n        var da = ((((((((((((((((((((((((((((((((\"\\u00c0-\\u00d6\" + \"\\u00d8-\\u00f6\")) + \"\\u00f8-\\u00ff\")) + \"\\u0100-\\u024f\")) + \"\\u0253-\\u0254\")) + \"\\u0256-\\u0257\")) + \"\\u0259\")) + \"\\u025b\")) + \"\\u0263\")) + \"\\u0268\")) + \"\\u026f\")) + \"\\u0272\")) + \"\\u0289\")) + \"\\u028b\")) + \"\\u02bb\")) + \"\\u0300-\\u036f\")) + \"\\u1e00-\\u1eff\")), ea = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((\"\\u0400-\\u04ff\" + \"\\u0500-\\u0527\")) + \"\\u2de0-\\u2dff\")) + \"\\ua640-\\ua69f\")) + \"\\u0591-\\u05bf\")) + \"\\u05c1-\\u05c2\")) + \"\\u05c4-\\u05c5\")) + \"\\u05c7\")) + \"\\u05d0-\\u05ea\")) + \"\\u05f0-\\u05f4\")) + \"\\ufb12-\\ufb28\")) + \"\\ufb2a-\\ufb36\")) + \"\\ufb38-\\ufb3c\")) + \"\\ufb3e\")) + \"\\ufb40-\\ufb41\")) + \"\\ufb43-\\ufb44\")) + \"\\ufb46-\\ufb4f\")) + \"\\u0610-\\u061a\")) + \"\\u0620-\\u065f\")) + \"\\u066e-\\u06d3\")) + \"\\u06d5-\\u06dc\")) + \"\\u06de-\\u06e8\")) + \"\\u06ea-\\u06ef\")) + \"\\u06fa-\\u06fc\")) + \"\\u06ff\")) + \"\\u0750-\\u077f\")) + \"\\u08a0\")) + \"\\u08a2-\\u08ac\")) + \"\\u08e4-\\u08fe\")) + \"\\ufb50-\\ufbb1\")) + \"\\ufbd3-\\ufd3d\")) + \"\\ufd50-\\ufd8f\")) + \"\\ufd92-\\ufdc7\")) + \"\\ufdf0-\\ufdfb\")) + \"\\ufe70-\\ufe74\")) + \"\\ufe76-\\ufefc\")) + \"\\u200c-\\u200c\")) + \"\\u0e01-\\u0e3a\")) + \"\\u0e40-\\u0e4e\")) + \"\\u1100-\\u11ff\")) + \"\\u3130-\\u3185\")) + \"\\ua960-\\ua97f\")) + \"\\uac00-\\ud7af\")) + \"\\ud7b0-\\ud7ff\")) + \"\\uffa1-\\uffdc\")), fa = String.fromCharCode, ga = ((((((((((((((((((((((((((((((((\"\\u30a1-\\u30fa\\u30fc-\\u30fe\" + \"\\uff66-\\uff9f\")) + \"\\uff10-\\uff19\\uff21-\\uff3a\")) + \"\\uff41-\\uff5a\")) + \"\\u3041-\\u3096\\u3099-\\u309e\")) + \"\\u3400-\\u4dbf\")) + \"\\u4e00-\\u9fff\")) + fa(173824))) + \"-\")) + fa(177983))) + fa(177984))) + \"-\")) + fa(178207))) + fa(194560))) + \"-\")) + fa(195103))) + \"\\u3003\\u3005\\u303b\")), ha = ((((da + ea)) + ga)), ia = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((\"A-Za-z\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\" + \"\\u00f8-\\u0241\\u0250-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ee\\u037a\\u0386\")) + \"\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03ce\\u03d0-\\u03f5\\u03f7-\\u0481\")) + \"\\u048a-\\u04ce\\u04d0-\\u04f9\\u0500-\\u050f\\u0531-\\u0556\\u0559\\u0561-\\u0587\")) + \"\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0621-\\u063a\\u0640-\\u064a\\u066e-\\u066f\")) + \"\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\")) + \"\\u0712-\\u072f\\u074d-\\u076d\\u0780-\\u07a5\\u07b1\\u0904-\\u0939\\u093d\\u0950\")) + \"\\u0958-\\u0961\\u097d\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\")) + \"\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\")) + \"\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\")) + \"\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\")) + \"\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\")) + \"\\u0ad0\\u0ae0-\\u0ae1\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\")) + \"\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\")) + \"\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\")) + \"\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0c05-\\u0c0c\\u0c0e-\\u0c10\")) + \"\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c60-\\u0c61\\u0c85-\\u0c8c\")) + \"\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\")) + \"\\u0ce0-\\u0ce1\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d28\\u0d2a-\\u0d39\")) + \"\\u0d60-\\u0d61\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\")) + \"\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e87-\\u0e88\")) + \"\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\")) + \"\\u0eaa-\\u0eab\\u0ead-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\")) + \"\\u0edc-\\u0edd\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6a\\u0f88-\\u0f8b\\u1000-\\u1021\")) + \"\\u1023-\\u1027\\u1029-\\u102a\\u1050-\\u1055\\u10a0-\\u10c5\\u10d0-\\u10fa\\u10fc\")) + \"\\u1100-\\u1159\\u115f-\\u11a2\\u11a8-\\u11f9\\u1200-\\u1248\\u124a-\\u124d\")) + \"\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\")) + \"\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\")) + \"\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\")) + \"\\u166f-\\u1676\\u1681-\\u169a\\u16a0-\\u16ea\\u1700-\\u170c\\u170e-\\u1711\")) + \"\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\")) + \"\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\")) + \"\\u1980-\\u19a9\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1d00-\\u1dbf\\u1e00-\\u1e9b\")) + \"\\u1ea0-\\u1ef9\\u1f00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\")) + \"\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\")) + \"\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\")) + \"\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u2094\\u2102\\u2107\")) + \"\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\")) + \"\\u212f-\\u2131\\u2133-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u2c00-\\u2c2e\")) + \"\\u2c30-\\u2c5e\\u2c80-\\u2ce4\\u2d00-\\u2d25\\u2d30-\\u2d65\\u2d6f\\u2d80-\\u2d96\")) + \"\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\")) + \"\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3006\\u3031-\\u3035\")) + \"\\u303b-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\")) + \"\\u3105-\\u312c\\u3131-\\u318e\\u31a0-\\u31b7\\u31f0-\\u31ff\\u3400-\\u4db5\")) + \"\\u4e00-\\u9fbb\\ua000-\\ua48c\\ua800-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\")) + \"\\ua80c-\\ua822\\uac00-\\ud7a3\\uf900-\\ufa2d\\ufa30-\\ufa6a\\ufa70-\\ufad9\")) + \"\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\")) + \"\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\")) + \"\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\")) + \"\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\")) + \"\\uffda-\\uffdc\")), ja = ((((((((((((((((((((((((((((((((((((((((\"\\u0300-\\u036f\\u0483-\\u0486\\u0591-\\u05b9\\u05bb-\\u05bd\\u05bf\" + \"\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u0615\\u064b-\\u065e\\u0670\")) + \"\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\")) + \"\\u07a6-\\u07b0\\u0901-\\u0903\\u093c\\u093e-\\u094d\\u0951-\\u0954\\u0962-\\u0963\")) + \"\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09cd\\u09d7\")) + \"\\u09e2-\\u09e3\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\")) + \"\\u0a70-\\u0a71\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\")) + \"\\u0ae2-\\u0ae3\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b43\\u0b47-\\u0b48\\u0b4b-\\u0b4d\")) + \"\\u0b56-\\u0b57\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\")) + \"\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\")) + \"\\u0c82-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\")) + \"\\u0d02-\\u0d03\\u0d3e-\\u0d43\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d82-\\u0d83\")) + \"\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2-\\u0df3\\u0e31\\u0e34-\\u0e3a\")) + \"\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\")) + \"\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f3f\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f90-\\u0f97\")) + \"\\u0f99-\\u0fbc\\u0fc6\\u102c-\\u1032\\u1036-\\u1039\\u1056-\\u1059\\u135f\")) + \"\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b6-\\u17d3\\u17dd\")) + \"\\u180b-\\u180d\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u19b0-\\u19c0\\u19c8-\\u19c9\")) + \"\\u1a17-\\u1a1b\\u1dc0-\\u1dc3\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20eb\\u302a-\\u302f\")) + \"\\u3099-\\u309a\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ufb1e\\ufe00-\\ufe0f\")) + \"\\ufe20-\\ufe23\")), ka = ((((((((\"0-9\\u0660-\\u0669\\u06f0-\\u06f9\\u0966-\\u096f\\u09e6-\\u09ef\" + \"\\u0a66-\\u0a6f\\u0ae6-\\u0aef\\u0b66-\\u0b6f\\u0be6-\\u0bef\\u0c66-\\u0c6f\")) + \"\\u0ce6-\\u0cef\\u0d66-\\u0d6f\\u0e50-\\u0e59\\u0ed0-\\u0ed9\\u0f20-\\u0f29\")) + \"\\u1040-\\u1049\\u17e0-\\u17e9\\u1810-\\u1819\\u1946-\\u194f\\u19d0-\\u19d9\")) + \"\\uff10-\\uff19\")), la = ((((ia + ja)) + ha)), ma = ((ka + \"_\")), na = ((la + ma)), oa = ((((\"[\" + la)) + \"]\")), pa = ((((\"[\" + na)) + \"]\")), qa = ((((\"^|$|[^&\" + na)) + \"]\")), ra = \"[#\\\\uFF03]\", sa = ((((((((((((((((((\"(\" + qa)) + \")(\")) + ra)) + \")(\")) + pa)) + \"*\")) + oa)) + pa)) + \"*)\"));\n        return new RegExp(sa, \"ig\");\n    };\n;\n    function l(da) {\n        var ea = y(da), fa = 0, ga = 0;\n        return n(da).map(function(ha) {\n            while (((fa < ea.length))) {\n                var ia = ea[fa], ja = ((ia.offset - ga));\n                if (((ja < ha.offset))) {\n                    ga += ((ia.token.length - ia.JSBNG__name.length));\n                    fa++;\n                }\n                 else break;\n            ;\n            ;\n            };\n        ;\n            return {\n                marker: ha.marker,\n                tag: ha.hashtag,\n                rawOffset: ((ha.offset + ga)),\n                offset: ha.offset\n            };\n        });\n    };\n;\n    function m(da) {\n        return o(da, t(da));\n    };\n;\n    function n(da) {\n        var ea = aa(da);\n        return o(ea, p(da, ea));\n    };\n;\n    function o(da, ea) {\n        return r(da).slice(0, i).filter(function(fa) {\n            var ga = v(fa.offset, fa.hashtag.length, ea);\n            return ((!ga && ((fa.hashtag.length <= h))));\n        });\n    };\n;\n    function p(da, ea) {\n        return u(s(da), t(ea));\n    };\n;\n    var q = k();\n    function r(da) {\n        var ea = [];\n        da.replace(q, function(fa, ga, ha, ia, ja) {\n            ea.push({\n                marker: ha,\n                hashtag: ia,\n                offset: ((ja + ga.length))\n            });\n        });\n        return ea;\n    };\n;\n    function s(da) {\n        return ba(da).map(function(ea) {\n            return [ea.offset,ea.JSBNG__name.length,];\n        });\n    };\n;\n    function t(da) {\n        var ea = [], fa, ga = 0;\n        while ((fa = g.permissiveMatch(da))) {\n            var ha = da.indexOf(fa);\n            ea.push([((ga + ha)),fa.length,]);\n            da = da.substring(((ha + fa.length)));\n            ga += ((ha + fa.length));\n        };\n    ;\n        return ea;\n    };\n;\n    function u(da, ea) {\n        var fa = [], ga = 0, ha = 0, ia = 0;\n        while (((((ga < da.length)) && ((ha < ea.length))))) {\n            if (((da[ga][0] > ea[ha][0]))) {\n                fa[ia++] = ea[ha++];\n            }\n             else fa[ia++] = da[ga++];\n        ;\n        ;\n        };\n    ;\n        return fa.concat(da.slice(ga), ea.slice(ha));\n    };\n;\n    function v(da, ea, fa) {\n        if (!fa) {\n            return false;\n        }\n    ;\n    ;\n        var ga = x(fa, da);\n        return ((w(da, ea, fa, ga) || w(da, ea, fa, ((ga + 1)))));\n    };\n;\n    function w(da, ea, fa, ga) {\n        if (!fa[ga]) {\n            return false;\n        }\n    ;\n    ;\n        var ha = fa[ga][0], ia = fa[ga][1];\n        return !((((((((da + ea)) - 1)) < ha)) || ((da > ((((ha + ia)) - 1))))));\n    };\n;\n    function x(da, ea) {\n        var fa = 0, ga = ((da.length - 1));\n        while (((fa <= ga))) {\n            var ha = Math.floor(((((fa + ga)) / 2))), ia = da[ha][0];\n            if (((ia == ea))) {\n                return ha;\n            }\n             else if (((ia < ea))) {\n                fa = ((ha + 1));\n            }\n             else ga = ((ha - 1));\n            \n        ;\n        ;\n        };\n    ;\n        return ga;\n    };\n;\n    function y(da) {\n        var ea = [];\n        da.replace(j, function(fa, ga, ha, ia, ja) {\n            ea.push({\n                token: fa,\n                id: ga,\n                type: ha,\n                JSBNG__name: ia,\n                offset: ja\n            });\n        });\n        return ea;\n    };\n;\n    function z(da) {\n        return ((da ? da.replace(/\\\\([^\\\\])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\") : null));\n    };\n;\n    function aa(da) {\n        return da.replace(j, function(ea, fa, ga, ha, ia) {\n            return z(ha);\n        });\n    };\n;\n    function ba(da) {\n        var ea = 0, fa = 0;\n        return y(da).map(function(ga) {\n            var ha = da.indexOf(ga.token, fa);\n            fa = ((ha + 1));\n            ha -= ea;\n            var ia = z(ga.JSBNG__name);\n            ea += ((ga.token.length - ia.length));\n            if (((ha >= 0))) {\n                return {\n                    id: ga.id,\n                    JSBNG__name: ia,\n                    type: ga.type,\n                    offset: ha\n                };\n            }\n        ;\n        ;\n        });\n    };\n;\n    var ca = {\n    };\n    ca.parse = l;\n    ca.parseWithoutMentions = m;\n    e.exports = ca;\n});\n__d(\"HashtagSearchResultUtils\", [\"FacebarResultStoreUtils\",\"HashtagParser\",\"HashtagSearchResultConfig\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"FacebarResultStoreUtils\"), h = b(\"HashtagParser\"), i = b(\"HashtagSearchResultConfig\"), j = b(\"URI\"), k = {\n        getHashtagFromQuery: function(l) {\n            var m = h.parse(l);\n            if (((((m && ((m.length === 1)))) && ((m[0].offset === 0))))) {\n                return m[0].tag;\n            }\n        ;\n        ;\n            return false;\n        },\n        makeTypeaheadResult: function(l) {\n            return {\n                category: \"Hashtag\",\n                path: j(((\"/hashtag/\" + l))).toString(),\n                photo: i.image_url,\n                rankType: null,\n                replace_results: ((i.boost_result ? true : false)),\n                scaled_score: 1,\n                score: 0,\n                text: ((\"#\" + l)),\n                type: \"hashtag_exact\",\n                uid: ((\"hashtag:\" + l))\n            };\n        },\n        makeFacebarEntry: function(l) {\n            return {\n                category: \"Hashtag\",\n                path: j(((\"/hashtag/\" + l))).toString(),\n                photo: i.image_url,\n                replace_results: ((i.boost_result ? true : false)),\n                text: ((\"#\" + l)),\n                type: \"hashtag_exact\",\n                uid: ((\"hashtag:\" + l))\n            };\n        },\n        makeFacebarResult: function(l) {\n            var m = g.processEntityResult(\"hashtag_exact\", ((\"hashtag:\" + l)), ((\"#\" + l)), i.hashtag_cost);\n            m.parse = {\n                display: [{\n                    type: \"ent:hashtag_exact\",\n                    uid: ((\"hashtag:\" + l))\n                },],\n                remTokens: [],\n                suffix: \"\",\n                unmatch: []\n            };\n            return m;\n        }\n    };\n    e.exports = k;\n});\n__d(\"ContextualHelpSearchController\", [\"JSBNG__Event\",\"AsyncRequest\",\"DOM\",\"CSS\",\"Focus\",\"Input\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"CSS\"), k = b(\"Focus\"), l = b(\"Input\"), m = b(\"copyProperties\"), n = 400;\n    function o() {\n        this._token = null;\n        this._timerID = 0;\n        this._lastQuery = null;\n        this.typing_listener = null;\n        this.clear_listener = null;\n        this.async_request = null;\n    };\n;\n    m(o.prototype, {\n        init: function(p, q, r, s, t) {\n            this.loader = p;\n            this.search_box = q;\n            this.topics_area = r;\n            this.results_area = s;\n            this.clear_button = t;\n            this.typing_listener = g.listen(this.search_box, \"keyup\", this.setTimer.bind(this));\n            this.clear_listener = g.listen(this.clear_button, \"click\", this.clearResults.bind(this));\n            k.set(this.search_box);\n        },\n        source: \"contextual_help\",\n        clearResults: function() {\n            this.show(this.topics_area);\n            this._lastQuery = \"\";\n            l.reset(this.search_box);\n            k.set(this.search_box);\n            if (((this.async_request !== null))) {\n                this.async_request.abort();\n                this.async_request = null;\n            }\n        ;\n        ;\n            j.addClass(this.clear_button, \"hidden_elem\");\n        },\n        update: function() {\n            var p = l.getValue(this.search_box);\n            if (((p === this._lastQuery))) {\n                return;\n            }\n        ;\n        ;\n            this._lastQuery = p;\n            if (((p === \"\"))) {\n                this.clearResults();\n                return;\n            }\n        ;\n        ;\n            this.show(this.loader);\n            var q = {\n                query: p,\n                width: ((this._width || n)),\n                source: this.source\n            };\n            this.async_request = new h(\"/help/ajax/search/\").setData(q).setHandler(function(r) {\n                this._update(r);\n            }.bind(this));\n            this.async_request.send();\n        },\n        _update: function(p) {\n            this.async_request = null;\n            var q = p.getPayload().results;\n            i.setContent(this.results_area, q);\n            this.show(this.results_area);\n            if (((l.getValue(this.search_box) === \"\"))) {\n                this.clearResults();\n            }\n             else j.removeClass(this.clear_button, \"hidden_elem\");\n        ;\n        ;\n        },\n        setTimer: function() {\n            if (((this._timerID !== 0))) {\n                JSBNG__clearTimeout(this._timerID);\n            }\n        ;\n        ;\n            this._timerID = JSBNG__setTimeout(this.update.bind(this), 300);\n            if (((this.async_request != null))) {\n                this.async_request.abort();\n                this.async_request = null;\n            }\n        ;\n        ;\n        },\n        show: function(p) {\n            var q = [this.loader,this.topics_area,this.results_area,];\n            for (var r = 0; ((r < q.length)); r++) {\n                j.addClass(q[r], \"hidden_elem\");\n            ;\n            };\n        ;\n            j.removeClass(p, \"hidden_elem\");\n        }\n    });\n    e.exports = o;\n});\n__d(\"RequestsJewel\", [\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ChannelConstants\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"FriendBrowserCheckboxController\",\"LinkController\",\"Parent\",\"ScrollableArea\",\"Vector\",\"copyProperties\",\"ge\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"AsyncSignal\"), j = b(\"ChannelConstants\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"FriendBrowserCheckboxController\"), o = b(\"LinkController\"), p = b(\"Parent\"), q = b(\"ScrollableArea\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"ge\"), u = b(\"shield\"), v = b(\"tx\");\n    function w() {\n    \n    };\n;\n    s(w, {\n        instance: null,\n        getInstance: function() {\n            return this.instance;\n        }\n    });\n    s(w.prototype, {\n        init: function(x, y, z) {\n            w.instance = this;\n            this.countNew = 0;\n            this.jewel = x;\n            this.jewelFlyoutCase = x.getRoot();\n            this.jewelFlyout = t(\"fbRequestsFlyout\");\n            this.newCountSpan = t(\"newRequestCount\");\n            this.folder = y;\n            this.doNewMarkRead = z;\n            this.openTimestamp = 0;\n            this._requestList = {\n            };\n            this._requestCount = 0;\n            this.egoPredictedCount = 0;\n            this.pendingCount = 0;\n            this.shouldLogEgoClick = false;\n            this.shouldClearPredictionAssocOnClick = false;\n            var aa = t(\"requestsMarkReadButton\");\n            if (aa) {\n                m.listen(aa, \"click\", u(this._markRead, this));\n            }\n        ;\n        ;\n            this.jewel.subscribe(\"marked-seen\", u(this._markSeenCallback, this));\n            this.jewel.subscribe(\"JSBNG__closed\", u(this._clearNewItems, this));\n            this.jewel.subscribe(\"updated\", this._updateCount.bind(this));\n            this.jewel.subscribe(\"opened\", this._openHandler.bind(this));\n            o.registerHandler(this._handleLink.bind(this));\n            g.subscribe(j.getArbiterType(\"jewel_requests_add\"), this._addRequest.bind(this));\n            g.subscribe(j.getArbiterType(\"jewel_requests_remove_old\"), this._removeOldRequest.bind(this));\n            g.subscribe(j.getArbiterType(\"friend_requests_seen\"), this._markSeenFromMessage.bind(this));\n            g.subscribe(\"jewel/ego_predicted_count\", function(ba, ca) {\n                this.egoPredictedCount = ca.ego_predicted_count;\n                this.pendingCount = ca.pending_count;\n                this.egoUnseenTimestamp = ca.unseen_timestamp;\n                this.shouldLogEgoClick = ca.should_log_ego_click;\n                this.actionContext = ca.action_context;\n            }.bind(this));\n            m.listen(this.jewelFlyout, \"submit\", function(ba) {\n                var ca = p.byClass(ba.getTarget(), \"objectListItem\");\n                if (ca) {\n                    k.removeClass(ca, \"jewelItemNew\");\n                    k.addClass(ca, \"jewelItemResponded\");\n                    this.pageInCollapsedRequests();\n                }\n            ;\n            ;\n            }.bind(this));\n            this.setupScroll();\n            return this;\n        },\n        setupScroll: function() {\n            var x = l.scry(this.jewelFlyout, \".uiScrollableAreaWrap\")[0];\n            if (x) {\n                this._scrollableWrap = x;\n                this._lastLinkPosition = 0;\n                this._scrollListener = m.listen(x, \"JSBNG__scroll\", this._handleScroll.bind(this), m.Priority._BUBBLE);\n            }\n        ;\n        ;\n        },\n        fromDom: function() {\n            l.scry(this.jewelFlyout, \".jewelItemList li.objectListItem\").forEach(function(x) {\n                var y = x.getAttribute(\"id\");\n                if (y) {\n                    var z = this._parseIDToInts(y);\n                    if (z.requester) {\n                        this._requestList[z.requester] = y;\n                    }\n                ;\n                ;\n                    ++this._requestCount;\n                }\n            ;\n            ;\n            }.bind(this));\n            this._conditionShowEmptyMessage();\n        },\n        _parseID: function(x) {\n            var y = x.match(/^(\\d+)_(\\d+)/);\n            return (((y) ? {\n                requester: y[1],\n                type: y[2]\n            } : undefined));\n        },\n        _parseIDToInts: function(x) {\n            var y = ((x ? this._parseID(x) : undefined)), z;\n            if (((y && y.requester))) {\n                z = parseInt(y.requester, 10);\n                if (isNaN(z)) {\n                    z = undefined;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var aa;\n            if (((y && y.type))) {\n                aa = parseInt(y.type, 10);\n                if (isNaN(aa)) {\n                    aa = undefined;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return {\n                requester: z,\n                type: aa\n            };\n        },\n        _handleLink: function(x, JSBNG__event) {\n            var y = p.byClass(x, \"jewelItemNew\");\n            if (((((y && p.byClass(y, \"fbRequestList\"))) && p.byClass(y, \"beeperEnabled\")))) {\n                var z = this._parseID(y.id);\n                ((z && this._markSeenCallback(z.requester, z.type)));\n                g.inform(\"jewel/count-updated\", {\n                    jewel: \"requests\",\n                    count: --this.countNew\n                });\n                k.removeClass(y, \"jewelItemNew\");\n            }\n        ;\n        ;\n            return true;\n        },\n        _handleScroll: function() {\n            var x = l.scry(this._scrollableWrap, \".uiMorePager\");\n            if (((!x || ((t(\"fbRequestsJewelManualPager\") && ((x.length < 2))))))) {\n                return;\n            }\n        ;\n        ;\n            var y = x.pop();\n            if (y) {\n                var z = r.getElementPosition(y, \"viewport\").y;\n                if (((z > 0))) {\n                    k.addClass(p.byClass(this._scrollableWrap, \"uiScrollableArea\"), \"contentAfter\");\n                }\n            ;\n            ;\n                var aa = l.JSBNG__find(y, \"a\");\n                if (!aa) {\n                    return;\n                }\n            ;\n            ;\n                var ba = r.getElementPosition(aa, \"viewport\").y;\n                if (((ba == this._lastLinkPosition))) {\n                    return;\n                }\n            ;\n            ;\n                var ca = ((r.getElementPosition(this._scrollableWrap, \"viewport\").y + r.getElementDimensions(this._scrollableWrap).y));\n                if (((((((ba - 300)) < ca)) && ((ba > 0))))) {\n                    this._lastLinkPosition = ba;\n                    var da = aa.getAttribute(\"ajaxify\");\n                    if (da) {\n                        new h(da).setRelativeTo(aa).setStatusElement(p.byClass(aa, \"stat_elem\")).send();\n                    }\n                     else n.getInstance(\"jewel\").showMore();\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _addRequest: function(x, y) {\n            if (!y) {\n                return;\n            }\n        ;\n        ;\n            var z = y.obj.from, aa = y.obj.suggester, ba = this._parseIDToInts(this._requestList[z]).type, ca = ((((ba === 19)) && !aa));\n            if (((!ca && ((ba || this.jewel.isOpen()))))) {\n                return;\n            }\n        ;\n        ;\n            if (t(\"fbRequestsJewelLoading\")) {\n                new h().setURI(\"/ajax/requests/loader/\").send();\n            }\n             else {\n                var da = this._onMarkupCallback.bind(this, z, !!aa), ea = {\n                    from: z\n                };\n                if (aa) {\n                    ea.suggester = aa;\n                }\n            ;\n            ;\n                new h().setURI(\"/ajax/friends/jewel/request_markup\").setData(ea).setHandler(da).send();\n            }\n        ;\n        ;\n        },\n        _onMarkupCallback: function(x, y, z) {\n            var aa = z.getPayload();\n            if (!aa) {\n                return;\n            }\n        ;\n        ;\n            var ba = this._requestList[x], ca = this._parseIDToInts(ba).type;\n            if (((((ca === 19)) && !y))) {\n                var da = ((ba && t(ba)));\n                ((da && l.replace(da, aa.markup)));\n            }\n             else {\n                var ea = l.scry(this.jewelFlyout, \".fbRequestList .uiList\")[0];\n                if (!ea) {\n                    return;\n                }\n            ;\n            ;\n                l.prependContent(ea, aa.markup);\n                var fa = {\n                    jewel: \"requests\",\n                    count: ++this.countNew\n                };\n                g.inform(\"jewel/count-updated\", fa);\n                ++this._requestCount;\n                this._conditionShowEmptyMessage();\n            }\n        ;\n        ;\n            this._requestList[x] = aa.item_id;\n        },\n        _removeOldRequest: function(x, y) {\n            if (((((!y || this.jewel.isOpen())) || ((t(\"fbRequestsJewelLoading\") !== null))))) {\n                return;\n            }\n        ;\n        ;\n            var z = this._requestList[y.obj.from], aa = ((z && t(z)));\n            if (aa) {\n                ((k.hasClass(aa, \"jewelItemNew\") && g.inform(\"jewel/count-updated\", {\n                    jewel: \"requests\",\n                    count: --this.countNew\n                })));\n                if (!k.hasClass(aa, \"jewelItemResponded\")) {\n                    l.remove(aa);\n                    delete this._requestList[y.obj.from];\n                    --this._requestCount;\n                    this._conditionShowEmptyMessage();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        pageInCollapsedRequests: function() {\n            var x = t(\"fbRequestsJewelManualPager\");\n            if (x) {\n                var y = l.scry(x, \".uiMorePagerPrimary\")[0];\n                if (((y.style && ((y.style.display != \"none\"))))) {\n                    JSBNG__setTimeout(function() {\n                        y.click();\n                    }, 100);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _markRead: function() {\n            this.jewel.markSeen();\n            this._clearNewItems();\n        },\n        _markSeenCallback: function(x, y) {\n            var z = l.scry(this.jewelFlyout, \"li\");\n            new i(\"/ajax/gigaboxx/endpoint/UpdateLastSeenTime.php\", {\n                folder: this.folder,\n                first_item: z[0].id\n            }).send();\n            new h().setURI(\"/ajax/friends/jewel/predicted_count_logging\").setData({\n                ego_predicted_count: this.egoPredictedCount,\n                pending_count: this.pendingCount,\n                unseen_timestamp: this.egoUnseenTimestamp,\n                action_context: this.actionContext,\n                should_log_ego_click: this.shouldLogEgoClick\n            }).send();\n            var aa = ((((((typeof x != \"undefined\")) && ((typeof y != \"undefined\")))) ? {\n                requester: x,\n                type: y\n            } : {\n            }));\n            ((this.doNewMarkRead && new i(\"/ajax/requests/mark_read/\", aa).send()));\n        },\n        _markSeenFromMessage: function(x, y) {\n            g.inform(\"jewel/count-updated\", {\n                jewel: \"requests\",\n                count: 0\n            });\n        },\n        _removeRequest: function(x, y) {\n            var z = y.obj.item_id;\n            if (z) {\n                var aa = t(z), ba = ((aa && k.hasClass(aa, \"jewelItemNew\")));\n                ((aa ? l.remove(aa) : ((ba && g.inform(\"jewel/count-updated\", {\n                    jewel: \"requests\",\n                    count: --this.countNew\n                })))));\n            }\n        ;\n        ;\n        },\n        _clearNewItems: function(x, y) {\n            l.scry(this.jewel.root, \"li.jewelItemNew\").forEach(function(z) {\n                k.removeClass(z, \"jewelItemNew\");\n            });\n        },\n        _updateCount: function(x, y) {\n            this.countNew = y.count;\n            k.conditionClass(this.jewelFlyout, \"beeperUnread\", ((this.countNew > 0)));\n            k.conditionClass(this.jewelFlyoutCase, \"showRequests\", ((this.countNew > 0)));\n            if (this.newCountSpan) {\n                var z = ((((this.countNew == 1)) ? v._(\"{num} NEW REQUEST\", {\n                    num: this.countNew\n                }) : v._(\"{num} NEW REQUESTS\", {\n                    num: this.countNew\n                })));\n                l.setContent(this.newCountSpan, z);\n            }\n        ;\n        ;\n        },\n        _conditionShowEmptyMessage: function() {\n            l.scry(this.jewelFlyout, \"li.empty\").forEach(function(x) {\n                k.conditionShow(x, ((this._requestCount <= 0)));\n            }.bind(this));\n        },\n        _openHandler: function() {\n            var x = l.scry(this.jewelFlyout, \".uiScrollableArea\")[0];\n            if (t(\"fbRequestsJewelLoading\")) {\n                var y = JSBNG__Date.now();\n                if (((((this.openTimestamp + 5000)) < y))) {\n                    this.openTimestamp = y;\n                    new h().setURI(\"/ajax/requests/loader/\").setData({\n                        log_impressions: true\n                    }).send();\n                }\n            ;\n            ;\n            }\n             else {\n                var z = Object.keys(this._requestList);\n                if (((z.length > 0))) {\n                    new h().setURI(\"/friends/requests/log_impressions\").setData({\n                        ids: z.join(\",\"),\n                        ref: \"jewel\"\n                    }).send();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ((x && q.poke(x)));\n        }\n    });\n    e.exports = w;\n});\n__d(\"legacy:RequestsJewel\", [\"RequestsJewel\",], function(a, b, c, d) {\n    a.RequestsJewel = b(\"RequestsJewel\");\n}, 3);\n__d(\"JewelX\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"HTML\",\"Keys\",\"TabIsolation\",\"Toggler\",\"copyProperties\",\"emptyFunction\",\"reportData\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"TabIsolation\"), o = b(\"Toggler\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"reportData\"), s = function(t, u) {\n        ((((t && u)) && this.init(t, u)));\n    };\n    p(s, {\n        _instancesByName: {\n        },\n        _resizeListener: null\n    });\n    p(s.prototype, i, {\n        init: function(t, u) {\n            this.JSBNG__name = u.JSBNG__name;\n            this.root = t;\n            this.countNew = 0;\n            this.initialCount = 0;\n            this.escHandler = null;\n            s._instancesByName[this.JSBNG__name] = this;\n            var v = k.JSBNG__find(t, \".jewelFlyout\"), w = new n(v);\n            o.listen(\"show\", this.root, function(x) {\n                this._logFirstClick();\n                ((this.hasNew() && this.markSeen()));\n                this.reset();\n                this.inform(\"opened\");\n                h.inform(\"layer_shown\", {\n                    type: \"Jewel\"\n                });\n                w.enable();\n                this.setupEvents();\n            }.bind(this));\n            o.listen(\"hide\", this.root, function(x, y) {\n                ((this.hasNew() && this.markSeen()));\n                this.reset();\n                this.inform(\"JSBNG__closed\");\n                h.inform(\"layer_hidden\", {\n                    type: \"Jewel\"\n                });\n                w.disable();\n                this.removeEvents();\n            }.bind(this));\n            h.subscribe(\"jewel/count-updated\", function(x, y) {\n                ((((y.jewel == this.JSBNG__name)) && this.update(y)));\n            }.bind(this));\n            h.subscribe(\"jewel/count-initial\", function(x, y) {\n                ((((y.jewel == this.JSBNG__name)) && this.setInitial(y)));\n            }.bind(this));\n            h.subscribe(\"jewel/reset\", function(x, y) {\n                ((((y.jewel == this.JSBNG__name)) && this.reset()));\n            }.bind(this));\n            s._resizeListener = ((s._resizeListener || (function() {\n                var x = null;\n                return g.listen(window, \"resize\", function() {\n                    JSBNG__clearTimeout(x);\n                    x = h.inform.bind(h, \"jewel/resize\").defer(100, false);\n                });\n            })()));\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        hasNew: function() {\n            return j.hasClass(this.root, \"hasNew\");\n        },\n        isOpen: function() {\n            return j.hasClass(this.root, \"openToggler\");\n        },\n        reset: function() {\n            j.removeClass(this.root, \"hasNew\");\n        },\n        setContent: function(t) {\n            var u = k.JSBNG__find(this.root, \"ul.jewelItemList\");\n            k.setContent(u, l(t));\n        },\n        update: function(t) {\n            this.countNew = t.count;\n            var u = k.JSBNG__find(this.root, \"span.jewelCount span\");\n            k.setContent(u, this.countNew);\n            var v = ((isNaN(this.countNew) || ((this.countNew > 0))));\n            j.conditionClass(this.root, \"hasNew\", v);\n            if (v) {\n                var w = ((\"\" + this.countNew)).length;\n                j.conditionClass(this.root, \"hasCountSmall\", ((w === 1)));\n                j.conditionClass(this.root, \"hasCountMedium\", ((w === 2)));\n                j.conditionClass(this.root, \"hasCountLarge\", ((w > 2)));\n            }\n        ;\n        ;\n            this.inform(\"updated\", t);\n        },\n        setInitial: function(t) {\n            this.initialCount = t;\n        },\n        setupEvents: function() {\n            this.escHandler = g.listen(JSBNG__document.documentElement, \"keydown\", function(t) {\n                if (((((t.keyCode === m.ESC)) && this.isOpen()))) {\n                    o.hide(this.root);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        removeEvents: function() {\n            if (this.escHandler) {\n                this.escHandler.remove();\n            }\n        ;\n        ;\n        },\n        markSeen: function() {\n            h.inform(\"jewel/count-updated\", {\n                jewel: this.JSBNG__name,\n                count: 0\n            }, h.BEHAVIOR_STATE);\n            this.inform(\"marked-seen\");\n        },\n        _logFirstClick: function() {\n            this._logFirstClick = q;\n            r(\"jewel_click\", {\n                gt: {\n                    count: this.countNew,\n                    initial: this.initialCount,\n                    jewel: this.JSBNG__name\n                }\n            });\n        }\n    });\n    e.exports = s;\n});\n__d(\"MercuryJewelCountControl\", [\"Arbiter\",\"DOM\",\"MercuryThreadlistConstants\",\"copyProperties\",\"shield\",\"tx\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryUnseenState\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"MercuryThreadlistConstants\"), j = b(\"copyProperties\"), k = b(\"shield\"), l = b(\"tx\"), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreadInformer\").get(), o = b(\"MercuryUnseenState\").get(), p, q, r, s = function(u) {\n        if (((u || r.isOpen()))) {\n            o.markAsSeen();\n        }\n    ;\n    ;\n    }, t = function(u, v) {\n        p = u;\n        q = h.JSBNG__find(p, \"#mercurymessagesCountValue\");\n        r = v;\n        this.render();\n        m.subscribe(\"model-update-completed\", function(w, x) {\n            s(false);\n        });\n        n.subscribe(\"unseen-updated\", this.render.bind(this));\n        r.subscribe(\"marked-seen\", k(s, this, true));\n    };\n    j(t.prototype, {\n        render: function() {\n            var u = \"\";\n            if (o.exceedsMaxCount()) {\n                u = l._(\"{count}+\", {\n                    count: i.MAX_UNSEEN_COUNT\n                });\n            }\n             else u = o.getUnseenCount().toString();\n        ;\n        ;\n            g.inform(\"jewel/count-updated\", {\n                jewel: \"mercurymessages\",\n                count: u\n            }, g.BEHAVIOR_STATE);\n        }\n    });\n    e.exports = t;\n});\n__d(\"MercuryJewelThreadlistControl\", [\"Arbiter\",\"ArbiterMixin\",\"MercuryChatUtils\",\"MercuryConfig\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"JSLogger\",\"JSXDOM\",\"MercuryAPIArgsSource\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryOrderedThreadlist\",\"Parent\",\"MercuryJewelTemplates\",\"MercuryThreadInformer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreads\",\"Tooltip\",\"MercuryUnreadState\",\"copyProperties\",\"csx\",\"cx\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"MercuryChatUtils\"), j = b(\"MercuryConfig\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"JSLogger\"), o = b(\"JSXDOM\"), p = b(\"MercuryAPIArgsSource\"), q = b(\"MercuryThreadlistConstants\"), r = b(\"MessagingTag\"), s = b(\"MercuryOrderedThreadlist\").get(), t = b(\"Parent\"), u = b(\"MercuryJewelTemplates\"), v = b(\"MercuryThreadInformer\").get(), w = b(\"MercuryThreadMetadataRenderer\").get(), x = b(\"MercuryThreads\").get(), y = b(\"Tooltip\"), z = b(\"MercuryUnreadState\").get(), aa = b(\"copyProperties\"), ba = b(\"csx\"), ca = b(\"cx\"), da = b(\"throttle\"), ea = b(\"tx\"), fa = n.create(\"mercury_jewel\");\n    function ga(na, oa) {\n        this._contentArea = ((l.scry(na, \".scrollable\")[0] || na));\n        this._contentElement = l.JSBNG__find(this._contentArea, \".jewelContent\");\n        this._loadingElement = l.JSBNG__find(this._contentArea, \".jewelLoading\");\n        this._loadMoreButton = l.JSBNG__find(this._contentArea, \"._8y5\");\n        this._loadMoreLink = l.JSBNG__find(this._contentArea, \"a._8y6\");\n        this._currentFolder = r.INBOX;\n        this._jewelFolderLinks = [];\n        this._jewelFolderLinks[r.INBOX] = l.JSBNG__find(oa, \"._1sde\");\n        this._jewelFolderLinks[r.OTHER] = l.JSBNG__find(oa, \"._1sdf\");\n        this._jewelFolderCounts = [];\n        this._jewelFolderCounts[r.INBOX] = l.JSBNG__find(oa, \"._1sdg\");\n        this._jewelFolderCounts[r.OTHER] = l.JSBNG__find(oa, \"._1sdh\");\n        la.bind(this)();\n        m.listen(this._jewelFolderLinks[r.INBOX], \"click\", ka.bind(this, r.INBOX));\n        m.listen(this._jewelFolderLinks[r.OTHER], \"click\", ka.bind(this, r.OTHER));\n        this._curCount = [];\n        this._curCount[r.INBOX] = ((q.JEWEL_THREAD_COUNT + 1));\n        this._curCount[r.OTHER] = ((q.JEWEL_THREAD_COUNT + 1));\n        this._isFolderLoaded = [];\n        this._isFolderLoaded[r.INBOX] = false;\n        this._isFolderLoaded[r.OTHER] = false;\n        this._folderIsLoading = [];\n        this._folderIsLoading[r.INBOX] = false;\n        this._folderIsLoading[r.OTHER] = false;\n        v.subscribe(\"threadlist-updated\", this.render.bind(this));\n        v.subscribe(\"unread-updated\", la.bind(this));\n        this.render();\n        fa.bump(((\"opened_threadlist_\" + this._currentFolder)));\n        m.listen(this._contentArea, \"JSBNG__scroll\", da(ha, 50, this));\n        m.listen(this._loadMoreLink, \"click\", this.renderMoreThreads.bind(this));\n    };\n;\n    aa(ga, {\n        EVENT_THREADS_LOADED: \"threads-loaded\",\n        EVENT_THREADS_RENDERED: \"threads-rendered\"\n    });\n    aa(ga.prototype, h);\n    aa(ga.prototype, {\n        render: function() {\n            l.empty(this._contentElement);\n            k.show(this._loadingElement);\n            k.hide(this._loadMoreButton);\n            var na = l.create(\"div\");\n            l.appendContent(this._contentElement, na);\n            s.getThreadlist(q.RECENT_THREAD_OFFSET, this._curCount[this._currentFolder], this._currentFolder, this.renderThreads.bind(this, na), true);\n        },\n        renderThreads: function(na, oa) {\n            this.inform(ga.EVENT_THREADS_LOADED);\n            if (oa.length) {\n                oa.forEach(function(pa) {\n                    var qa = u[\":fb:mercury:jewel:threadlist-row\"].build();\n                    x.getThreadMeta(pa, function(ra) {\n                        w.renderCoreThreadlist(ra, qa, this.renderSingleThread.bind(this), {\n                            show_unread_count: true\n                        });\n                    }.bind(this));\n                    l.appendContent(na, qa.getRoot());\n                }.bind(this));\n            }\n             else l.setContent(this._contentElement, this.renderEmptyThreadlist());\n        ;\n        ;\n            k.hide(this._loadingElement);\n            k.conditionShow(this._loadMoreButton, !this._isFolderLoaded[this._currentFolder]);\n            this.inform(ga.EVENT_THREADS_RENDERED);\n        },\n        renderSingleThread: function(na, oa) {\n            var pa = ((oa.unread_count > 0));\n            if (pa) {\n                k.addClass(na.getRoot(), \"jewelItemNew\");\n            }\n        ;\n        ;\n            if (j.MessagesJewelToggleReadGK) {\n                var qa = o.div({\n                    className: \"x_div\"\n                }), ra = o.div({\n                    className: \"_5c9q\"\n                }), sa = \"Mark as Unread\";\n                if (pa) {\n                    sa = \"Mark as Read\";\n                }\n            ;\n            ;\n                y.set(ra, sa, \"above\", \"right\");\n                m.listen(ra, \"click\", function(JSBNG__event) {\n                    x.changeThreadReadStatus(oa.thread_id, ((oa.unread_count > 0)));\n                    return false;\n                });\n                qa.appendChild(ra);\n                na.getNode(\"link\").appendChild(qa);\n            }\n        ;\n        ;\n            if (((j.MessagesJewelOpenInChat && i.canOpenChatTab(oa)))) {\n                m.listen(na.getRoot(), \"click\", function(JSBNG__event) {\n                    g.inform(\"chat/open-tab\", {\n                        thread_id: oa.thread_id\n                    });\n                });\n            }\n             else w.renderTitanLink(oa.thread_id, na.getNode(\"link\"), null, this._currentFolder);\n        ;\n        ;\n            m.listen(na.getRoot(), \"mouseover\", function(JSBNG__event) {\n                var ta = na.getRoot();\n                if (!t.byClass(ta, \"notifNegativeBase\")) {\n                    k.addClass(ta, \"selected\");\n                }\n            ;\n            ;\n            });\n            m.listen(na.getRoot(), \"mouseout\", function(JSBNG__event) {\n                k.removeClass(na.getRoot(), \"selected\");\n            });\n        },\n        renderMoreThreads: function() {\n            k.addClass(this._loadMoreButton, \"async_saving\");\n            this._folderIsLoading[this._currentFolder] = true;\n            var na = ((this._curCount[this._currentFolder] + q.JEWEL_MORE_COUNT));\n            s.getThreadlist(q.RECENT_THREAD_OFFSET, ((na + 1)), this._currentFolder, ja.bind(this, na, this._currentFolder), true, p.JEWEL);\n        },\n        renderEmptyThreadlist: function() {\n            return l.create(\"li\", {\n                className: \"empty\"\n            }, \"No messages\");\n        }\n    });\n    function ha() {\n        if (((((!this._isFolderLoaded[this._currentFolder] && !this._folderIsLoading[this._currentFolder])) && ia.bind(this)()))) {\n            this.renderMoreThreads();\n        }\n    ;\n    ;\n    };\n;\n    function ia() {\n        return ((((this._contentArea.scrollTop + this._contentArea.clientHeight)) >= ((this._contentArea.scrollHeight - 1))));\n    };\n;\n    function ja(na, oa, pa) {\n        this._curCount[oa] = na;\n        if (((!this._isFolderLoaded[oa] && ((pa.length < ((this._curCount[oa] + 1))))))) {\n            this._isFolderLoaded[oa] = true;\n        }\n    ;\n    ;\n        this._folderIsLoading[oa] = false;\n        k.removeClass(this._loadMoreButton, \"async_saving\");\n        this.render();\n    };\n;\n    function ka(na) {\n        if (((this._currentFolder != na))) {\n            fa.bump(((\"opened_threadlist_\" + na)));\n            k.addClass(this._jewelFolderLinks[na], \"_1sdd\");\n            k.removeClass(this._jewelFolderLinks[this._currentFolder], \"_1sdd\");\n            this._currentFolder = na;\n            this.render();\n        }\n    ;\n    ;\n    };\n;\n    function la() {\n        ma.bind(this)(r.INBOX);\n        ma.bind(this)(r.OTHER);\n    };\n;\n    function ma(na) {\n        var oa;\n        if (z.exceedsMaxCount(na)) {\n            oa = q.MAX_UNREAD_COUNT;\n        }\n         else oa = z.getUnreadCount(na);\n    ;\n    ;\n        var pa = this._jewelFolderCounts[na];\n        if (((oa > 0))) {\n            if (((oa == q.MAX_UNREAD_COUNT))) {\n                oa += \"+\";\n            }\n        ;\n        ;\n            l.setContent(pa, ea._(\"({unread_count})\", {\n                unread_count: oa\n            }));\n        }\n         else l.setContent(pa, \"\");\n    ;\n    ;\n    };\n;\n    e.exports = ga;\n});\n__d(\"MercuryJewel\", [\"MercuryChannelHandler\",\"MercuryJewelCountControl\",\"DOM\",\"MercuryJewelThreadlistControl\",\"MercuryServerRequests\",\"userAction\",], function(a, b, c, d, e, f) {\n    b(\"MercuryChannelHandler\");\n    var g = b(\"MercuryJewelCountControl\"), h = b(\"DOM\"), i = b(\"MercuryJewelThreadlistControl\"), j = b(\"MercuryServerRequests\").get(), k = b(\"userAction\"), l = false;\n    function m(q, r, s, t) {\n        j.handleUpdate(t);\n        var u = new g(r, s), v = h.JSBNG__find(q, \"#MercuryJewelThreadList\");\n        if (((s.getRoot() && s.isOpen()))) {\n            n.call(this, v, q);\n        }\n         else s.subscribe(\"opened\", n.bind(this, v, q));\n    ;\n    ;\n    };\n;\n    e.exports = m;\n    function n(q, r) {\n        this._ua = k(\"messages\").uai(\"click\", \"jewel\");\n        this._listenForLoad = this._listenForRender = true;\n        if (!l) {\n            var s = new i(q, r);\n            s.subscribe(i.EVENT_THREADS_LOADED, o.bind(this));\n            s.subscribe(i.EVENT_THREADS_RENDERED, p.bind(this));\n            l = true;\n        }\n    ;\n    ;\n    };\n;\n    function o() {\n        if (this._listenForLoad) {\n            this._ua.add_event(\"loaded\");\n            this._listenForLoad = false;\n        }\n    ;\n    ;\n    };\n;\n    function p() {\n        if (this._listenForRender) {\n            this._ua.add_event(\"rendered\");\n            this._listenForRender = false;\n        }\n    ;\n    ;\n    };\n;\n});\n__d(\"MessagingEvents\", [\"Arbiter\",\"ChannelConstants\",\"arrayContains\",\"copyProperties\",\"isEmpty\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"isEmpty\"), l = {\n    }, m = new g();\n    function n(o) {\n        if (!k(l)) {\n            return;\n        }\n    ;\n    ;\n        {\n            var fin180keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin180i = (0);\n            var p;\n            for (; (fin180i < fin180keys.length); (fin180i++)) {\n                ((p) = (fin180keys[fin180i]));\n                {\n                    m.inform(((\"count/\" + p)), o[p]);\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    m.subscribe(\"mark-as-read\", function(o, p) {\n        ((((p.tids || p.chat_ids)) || [])).forEach(function(q) {\n            q = ((\"\" + q));\n            if (!((q in l))) {\n                l[q] = true;\n                var r = function() {\n                    m.unsubscribe(s);\n                    JSBNG__clearTimeout(t);\n                    delete l[q];\n                }, s = m.subscribe(\"read\", function(u, v) {\n                    if (((i(((v.tids || [])), q) || i(((v.chat_ids || [])), q)))) {\n                        r();\n                    }\n                ;\n                ;\n                }), t = r.defer(60000);\n            }\n        ;\n        ;\n        });\n    });\n    g.subscribe(h.getArbiterType(\"messaging\"), function(o, p) {\n        var q = j({\n        }, p.obj), JSBNG__event = ((q.JSBNG__event || \"\"));\n        delete q.type;\n        delete q.JSBNG__event;\n        m.inform(JSBNG__event, q);\n        if (((\"unread_counts\" in q))) {\n            var r = q.unread_counts;\n            n({\n                unread: r.inbox,\n                other_unseen: r.other\n            });\n        }\n    ;\n    ;\n    });\n    g.subscribe(h.getArbiterType(\"inbox\"), function(o, p) {\n        var q = j(p.obj);\n        delete q.type;\n        n(q);\n    });\n    a.MessagingEvents = e.exports = m;\n}, 3);\n__d(\"TitanLeftNav\", [\"CounterDisplay\",\"MessagingEvents\",], function(a, b, c, d, e, f) {\n    var g = b(\"CounterDisplay\"), h = b(\"MessagingEvents\"), i = {\n        initialize: function() {\n            h.subscribe(\"count/other_unseen\", function(j, k) {\n                g.setCount(\"other_unseen\", k);\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"AccessibleMenu\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"Keys\",\"TabbableElements\",\"Toggler\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"Toggler\"), m, n, o;\n    function p() {\n        var x = i.scry(m, \"a[rel=\\\"toggle\\\"]\")[0];\n        ((x && x.JSBNG__focus()));\n        l.getInstance(m).hide();\n    };\n;\n    function q(x) {\n        if (!x) {\n            return false;\n        }\n    ;\n    ;\n        h.removeClass(x, \"selected\");\n        x.setAttribute(\"aria-selected\", \"false\");\n    };\n;\n    function r(x) {\n        if (!x) {\n            return false;\n        }\n    ;\n    ;\n        h.addClass(x, \"selected\");\n        x.setAttribute(\"aria-selected\", \"true\");\n        var y = k.JSBNG__find(x);\n        if (y[0]) {\n            y[0].JSBNG__focus();\n        }\n    ;\n    ;\n    };\n;\n    function s(x) {\n        var y = i.scry(m, \".selected\")[0], z = ((n.indexOf(y) + x)), aa = n[z];\n        if (!aa) {\n            return false;\n        }\n    ;\n    ;\n        q(y);\n        r(aa);\n    };\n;\n    function t(x) {\n        if (((!l.isShown() || ((l.getActive() !== m))))) {\n            return true;\n        }\n    ;\n    ;\n        var y = g.getKeyCode(x);\n        switch (y) {\n          case j.TAB:\n            s(((x.shiftKey ? -1 : 1)));\n            g.prevent(x);\n            break;\n          case j.ESC:\n            p();\n            g.prevent(x);\n            break;\n          case j.UP:\n        \n          case j.DOWN:\n            s(((((y === j.UP)) ? -1 : 1)));\n            g.prevent(x);\n            break;\n        };\n    ;\n    };\n;\n    function u(x, y) {\n        m = y.getActive();\n        n = i.scry(m, \"[role=\\\"menuitem\\\"]\");\n        if (!o) {\n            o = g.listen(JSBNG__document.documentElement, \"keydown\", t);\n        }\n    ;\n    ;\n    };\n;\n    function v() {\n        if (((l.getActive() == m))) {\n            q(i.scry(m, \".selected\")[0]);\n        }\n    ;\n    ;\n    };\n;\n    var w = {\n        init: function(x) {\n            l.listen(\"show\", x, u);\n            l.listen(\"hide\", x, v);\n        }\n    };\n    e.exports = w;\n});\n__d(\"UserNoOp\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"emptyFunction\"), i = function() {\n    \n    };\n    g(i.prototype, {\n        add_event: h.thatReturnsThis,\n        add_data: h.thatReturnsThis,\n        uai: h.thatReturnsThis,\n        uai_fallback: h.thatReturnsThis\n    });\n    e.exports = i;\n});\n__d(\"isEmail\", [], function(a, b, c, d, e, f) {\n    var g = /^[\\w!#\\$%&'\\*\\+\\/\\=\\?\\^`\\{\\|\\}~\\-]+(:?\\.[\\w!#\\$%&`\\*\\+\\/\\=\\?\\^`\\{\\|\\}~\\-]+)*@(?:[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?$/i;\n    function h(i) {\n        return g.test(i);\n    };\n;\n    e.exports = h;\n});\n__d(\"NegativeNotif\", [\"Animation\",\"AsyncRequest\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Tooltip\",\"NotifXList\",\"$\",\"clickRefAction\",\"copyProperties\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"JSBNG__Event\"), m = b(\"Parent\"), n = b(\"Tooltip\"), o = b(\"NotifXList\"), p = b(\"$\"), q = b(\"clickRefAction\"), r = b(\"copyProperties\"), s = b(\"userAction\");\n    function t(u, v) {\n        r(this, v);\n        this.owner = u;\n        this.xLink = k.JSBNG__find(this.obj, \".notif_x\");\n        this.confirmingMsg = k.JSBNG__find(this.obj, \".confirmingMsg\");\n        this.mainLink = k.JSBNG__find(this.obj, \".notifMainLink\");\n        this.userXClicked = false;\n        this.userUnsubscribed = false;\n        l.listen(this.xLink, \"click\", this.xClick.bind(this));\n        if (((i.hasClass(this.obj, \"first_receipt\") && i.hasClass(p(\"jewelContainer\"), \"notifGentleAppReceipt\")))) {\n            this.gentleFirstReceiptHoverEventHandler = l.listen(this.obj, \"mouseover\", this.gentleFirstReceiptNotifHover.bind(this));\n        }\n    ;\n    ;\n    };\n;\n    r(t.prototype, {\n        FADE_AWAY_DURATION: 2500,\n        X_OUT_DURATION: 100,\n        X_OUT_DURATION_SHORT: 2,\n        GENTLE_FRUI_MIN_HOVER_DURATION: 500,\n        GENTLE_FRUI_FADE_DURATION_FAST: 200,\n        GENTLE_FRUI_FADE_DURATION_SLOW: 2500,\n        GENTLE_FRUI_DELAY_FADE_TIME: 60000,\n        xClick: function(JSBNG__event) {\n            this._activateX();\n            var u = this.xLink.getAttribute(\"data-gt\"), v = ((u ? {\n                gt: JSON.parse(u)\n            } : {\n            }));\n            s(\"xbutton\", this.xLink, JSBNG__event).uai(\"click\");\n            q(\"click\", this.xLink, JSBNG__event, null, v);\n            return false;\n        },\n        gentleFirstReceiptNotifHover: function(JSBNG__event) {\n            JSBNG__event.JSBNG__stop();\n            var u = k.JSBNG__find(this.obj, \".first_receipt_no_button\"), v = j.get(u, \"notif_fr_prompt\");\n            n.set(u, v, \"above\", \"center\");\n            n.show(u);\n            this._gentleFirstReceiptTooltipFadeIn();\n            if (!this.gentleFirstReceiptUnhoverEventHandler) {\n                this.hoverTime = new JSBNG__Date();\n                this.gentleFirstReceiptUnhoverEventHandler = l.listen(JSBNG__document.documentElement, \"mouseover\", this.gentleFirstReceiptNotifUnhover.bind(this));\n            }\n        ;\n        ;\n            if (!this.gentleFirstReceiptNoClickEventHandler) {\n                this.gentleFirstReceiptNoClickEventHandler = l.listen(u, \"click\", this.gentleFirstReceiptNoClick.bind(this));\n            }\n        ;\n        ;\n        },\n        gentleFirstReceiptNotifUnhover: function(JSBNG__event) {\n            if (((m.byClass(JSBNG__event.getTarget(), \"uiContextualLayer\") || m.byClass(JSBNG__event.getTarget(), \"uiScrollableAreaTrack\")))) {\n                return false;\n            }\n        ;\n        ;\n            var u = new JSBNG__Date();\n            if (((this.hoverTime && ((((u - this.hoverTime)) < this.GENTLE_FRUI_MIN_HOVER_DURATION))))) {\n                this.gentleFirstReceiptUnhoverEventHandler.remove();\n                this.gentleFirstReceiptUnhoverEventHandler = null;\n                this._gentleFirstReceiptTooltipAlreadyFadedIn = false;\n                return;\n            }\n        ;\n        ;\n            this._removeGentleFirstReceiptListeners();\n            this._gentleFirstReceiptTooltipFadeAway();\n            this._gentleFirstReceiptXButtonFadeAway();\n            var v = this;\n            JSBNG__setTimeout(function() {\n                v._gentleFirstReceiptUIFadeAway();\n            }, this.GENTLE_FRUI_DELAY_FADE_TIME);\n            this._sendFirstReceiptYesToServer();\n        },\n        gentleFirstReceiptNoClick: function(JSBNG__event) {\n            this._removeGentleFirstReceiptListeners();\n        },\n        restore: function() {\n            if (o.newNotifExist(this.id)) {\n                o.resumeInsert(this.id);\n            }\n             else o.removeNotif(this.id);\n        ;\n        ;\n            this._confirmingMsgFadeAway(this.confirmingMsg);\n            this._notifMainLinkShowUp(this.mainLink);\n            this._buttonShowUp(this.xLink);\n            this._adjustContainer(this.obj);\n        },\n        reset: function() {\n            if (((this.userXClicked && !this.userUnsubscribed))) {\n                this.userXClicked = false;\n                this.restore();\n            }\n        ;\n        ;\n        },\n        onTurnedOff: function() {\n            this.userUnsubscribed = true;\n            i.hide(this.confirmingMsg);\n            this._notifMainLinkShowUp(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n            this._adjustContainer(this.obj);\n        },\n        onUndid: function() {\n            this.userXClicked = false;\n            this.userUnsubscribed = false;\n            this.restore();\n            i.show(this.confirmingMsg);\n            this._notifMainLinkFadeAway(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n            k.remove(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n        },\n        onMarkedSpam: function() {\n            k.remove(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n            this._fadeAway(k.JSBNG__find(this.obj, \".spamMsg\"));\n        },\n        onFirstReceiptYes: function() {\n            this._hideFirstReceiptDiv();\n            this._fadeAway(k.JSBNG__find(this.obj, \".firstConfirmedMsg\"));\n        },\n        onFirstReceiptNo: function() {\n            this._hideFirstReceiptDiv();\n            i.hide(this.confirmingMsg);\n            this._activateX();\n            new h().setURI(\"/ajax/notifications/negative_req.php\").setData({\n                request_type: \"turn_off\",\n                notification_id: this.id\n            }).send();\n        },\n        _sendFirstReceiptYesToServer: function() {\n            new h().setURI(\"/ajax/notifications/negative_req.php\").setData({\n                request_type: \"first_receipt_yes\",\n                notification_id: this.id\n            }).send();\n        },\n        _gentleFirstReceiptTooltipFadeIn: function() {\n            if (this._gentleFirstReceiptTooltipAlreadyFadedIn) {\n                return;\n            }\n        ;\n        ;\n            var u = k.JSBNG__find(JSBNG__document.documentElement, \".uiLayer .uiContextualLayer .uiTooltipX\");\n            new g(u).from(\"opacity\", \"0\").to(\"opacity\", \"1\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).go();\n            this._gentleFirstReceiptTooltipAlreadyFadedIn = true;\n        },\n        _gentleFirstReceiptTooltipFadeAway: function() {\n            if (!this._gentleFirstReceiptTooltipAlreadyFadedIn) {\n                return;\n            }\n        ;\n        ;\n            var u = k.JSBNG__find(JSBNG__document.documentElement, \".uiLayer .uiContextualLayer .uiTooltipX\"), v = m.byClass(u, \"uiLayer\"), w = v.cloneNode(true);\n            k.insertAfter(v, w);\n            new g(w).from(\"opacity\", \"1\").to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).ondone(function() {\n                k.remove(w);\n            }).go();\n            this._gentleFirstReceiptTooltipAlreadyFadedIn = false;\n        },\n        _gentleFirstReceiptXButtonFadeAway: function() {\n            var u = k.JSBNG__find(this.obj, \".first_receipt_no_button\");\n            new g(u).from(\"opacity\", \"1\").to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).hide().go();\n            i.addClass(this.obj, \"show_original_x\");\n        },\n        _gentleFirstReceiptUIFadeAway: function() {\n            var u = this.obj;\n            this.new_label = k.JSBNG__find(this.obj, \".notif_new_label\");\n            new g(this.new_label).to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_SLOW).ondone(function() {\n                i.removeClass(u, \"first_receipt\");\n            }).go();\n            if (!i.hasClass(this.obj, \"jewelItemNew\")) {\n                new g(this.obj).from(\"backgroundColor\", \"#ECEFF5\").to(\"backgroundColor\", \"#FFFFFF\").duration(this.GENTLE_FRUI_FADE_DURATION_SLOW).go();\n            }\n        ;\n        ;\n        },\n        _removeGentleFirstReceiptListeners: function() {\n            if (this.gentleFirstReceiptHoverEventHandler) {\n                this.gentleFirstReceiptHoverEventHandler.remove();\n            }\n        ;\n        ;\n            if (this.gentleFirstReceiptUnhoverEventHandler) {\n                this.gentleFirstReceiptUnhoverEventHandler.remove();\n            }\n        ;\n        ;\n            if (this.gentleFirstReceiptNoClickEventHandler) {\n                this.gentleFirstReceiptNoClickEventHandler.remove();\n            }\n        ;\n        ;\n        },\n        _activateX: function() {\n            i.addClass(this.obj, \"forPushSafety\");\n            this.userXClicked = true;\n            o.userXClick(this.id);\n            this._notifMainLinkFadeAway(this.mainLink);\n            this._buttonFadeAway(this.xLink);\n            if (i.shown(this.confirmingMsg)) {\n                this._confirmingMsgShowUp(this.confirmingMsg);\n            }\n        ;\n        ;\n            this._adjustContainer(this.obj);\n        },\n        _hideFirstReceiptDiv: function() {\n            i.removeClass(this.obj, \"first_receipt\");\n            i.hide(k.JSBNG__find(this.obj, \".first_receipt_div\"));\n        },\n        _fadeAway: function(u) {\n            new g(u).from(\"backgroundColor\", \"#FFF9D7\").to(\"backgroundColor\", \"#FFFFFF\").duration(this.FADE_AWAY_DURATION).checkpoint().to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.X_OUT_DURATION).go();\n        },\n        _adjustContainer: function(u) {\n            new g(u).by(\"height\", \"0px\").duration(this.X_OUT_DURATION).checkpoint().by(\"height\", \"0px\").duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"height\", \"auto\").duration(this.X_OUT_DURATION).go();\n        },\n        _notifMainLinkShowUp: function(u) {\n            new g(u).duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"auto\").to(\"paddingTop\", \"4px\").to(\"paddingBottom\", \"4px\").blind().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n        },\n        _confirmingMsgShowUp: function(u) {\n            new g(u).duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"auto\").to(\"paddingTop\", \"10px\").to(\"paddingBottom\", \"10px\").blind().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n        },\n        _notifMainLinkFadeAway: function(u) {\n            new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.X_OUT_DURATION_SHORT).go();\n        },\n        _confirmingMsgFadeAway: function(u) {\n            new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().duration(this.X_OUT_DURATION_SHORT).go();\n        },\n        _buttonShowUp: function(u) {\n            new g(u).duration(this.X_OUT_DURATION).checkpoint().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n        },\n        _buttonFadeAway: function(u) {\n            new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().hide().duration(this.X_OUT_DURATION_SHORT).go();\n        }\n    });\n    e.exports = t;\n});\n__d(\"NotificationCounter\", [\"Arbiter\",\"DocumentTitle\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DocumentTitle\"), i = b(\"JSLogger\"), j = {\n        messages: 0,\n        notifications: 0,\n        requests: 0\n    }, k = {\n        init: function(l) {\n            g.subscribe(\"update_title\", this._handleUpdate.bind(this));\n            g.subscribe(\"jewel/count-updated\", this._handleCountUpdate.bind(this));\n        },\n        getCount: function() {\n            var l = 0;\n            {\n                var fin181keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin181i = (0);\n                var m;\n                for (; (fin181i < fin181keys.length); (fin181i++)) {\n                    ((m) = (fin181keys[fin181i]));\n                    {\n                        var n = Number(j[m]);\n                        if (((((typeof j[m] == \"string\")) && isNaN(n)))) {\n                            return j[m];\n                        }\n                    ;\n                    ;\n                        if (((isNaN(n) || ((n < 0))))) {\n                            i.create(\"jewels\").error(\"bad_count\", {\n                                jewel: m,\n                                count: j[m]\n                            });\n                            continue;\n                        }\n                    ;\n                    ;\n                        l += n;\n                    };\n                };\n            };\n        ;\n            return l;\n        },\n        updateTitle: function() {\n            var l = this.getCount(), m = h.get();\n            m = ((l ? ((((((\"(\" + l)) + \") \")) + m)) : m));\n            h.set(m, true);\n        },\n        _handleCountUpdate: function(l, m) {\n            j[m.jewel] = m.count;\n            this.updateTitle();\n        },\n        _handleUpdate: function(l, m) {\n            this.updateTitle();\n        }\n    };\n    e.exports = k;\n});\n__d(\"NotificationList\", [\"Animation\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"DoublyLinkedListMap\",\"HTML\",\"NotificationURI\",\"Tooltip\",\"JSBNG__Event\",\"$\",\"copyProperties\",\"cx\",\"csx\",\"ge\",\"isEmpty\",\"tx\",\"hasArrayNature\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DoublyLinkedListMap\"), l = b(\"HTML\"), m = b(\"NotificationURI\"), n = b(\"Tooltip\"), o = b(\"JSBNG__Event\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = b(\"csx\"), t = b(\"ge\"), u = b(\"isEmpty\"), v = b(\"tx\"), w = b(\"hasArrayNature\"), x = \"0\", y = \"1\", z = \"2\";\n    function aa(da) {\n        return ((((da == y)) || ((da == z))));\n    };\n;\n    function ba(da) {\n        return ((da == y));\n    };\n;\n    function ca(da, ea) {\n        this._list = new k();\n        this._filter_func = null;\n        this.unseenCount = 0;\n        this.contentRoot = da;\n        this.noItemsElement = null;\n        this.ITEM_TAG = \"li\";\n        this.ITEM_CLASS = \"notification\";\n        this.NO_ITEMS_ID = \"jewelNoNotifications\";\n        this.NO_ITEMS_CLASS = \"empty\";\n        this.compare = ((ea.compare || this.compare));\n        this.shouldBlockAnimation = ((ea.shouldBlockAnimation || null));\n        this.unseenVsUnread = ((ea.unseenVsUnread || false));\n        this.markReadSignalServer = ea.markReadSignalServer;\n        this.animations = {\n        };\n    };\n;\n    q(ca, {\n        ITEM_UNREAD_CLASS: \"jewelItemNew\",\n        MARK_READ_TYPE: \"mark_read\",\n        UNREAD_COUNT_CHANGE_TYPE: \"unread_count_change\",\n        INSERTION_TYPE: \"insert\",\n        REMOVAL_TYPE: \"remove\",\n        getIdFromDom: function(da) {\n            return da.getAttribute(\"id\").replace(\"notification_\", \"\");\n        },\n        localizeUrls: function(da) {\n            j.scry(da, \"a\").forEach(function(ea) {\n                ea.href = m.localize(ea.href);\n            });\n        }\n    });\n    q(ca.prototype, h, {\n        FADE_DURATION: 250,\n        RESIZE_DURATION: 200,\n        _getField: function(da, ea) {\n            var fa = this._list.get(da);\n            return ((fa && fa[ea]));\n        },\n        getDomObj: function(da) {\n            return this._getField(da, \"obj\");\n        },\n        fromDom: function() {\n            var da = ((((this.ITEM_TAG + \".\")) + this.ITEM_CLASS)), ea = j.scry(this.contentRoot, da);\n            for (var fa = 0; ((fa < ea.length)); ++fa) {\n                var ga = ea[fa], ha = ca.getIdFromDom(ga);\n                this.insert(ha, ga.getAttribute(\"data-notiftime\"), null);\n            };\n        ;\n        },\n        compare: function(da, ea) {\n            return ((((da.time < ea.time)) || ((((da.time === ea.time)) && ((da.id < ea.id))))));\n        },\n        insert: function(da, ea, fa, ga, ha, ia) {\n            var ja = y, ka = 0, la = this._list.exists(da), ma = ((ia && this._list.exists(ia))), na = null, oa;\n            if (((la || ma))) {\n                if (!((ga && fa))) {\n                    return false;\n                }\n                 else {\n                    if (this._filter_func) {\n                        oa = {\n                            notif_id: da,\n                            notif_time: ea,\n                            notif_markup: fa,\n                            replace: ga,\n                            ignoreUnread: ha,\n                            notif_alt_id: ia\n                        };\n                        if (this._filter_func(oa)) {\n                            return false;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    ja = this._getField(da, \"readness\");\n                    ka = this._getField(da, \"time\");\n                    if (((ka > ea))) {\n                        return false;\n                    }\n                ;\n                ;\n                    na = ((la ? da : ia));\n                    this._remove(na);\n                }\n            ;\n            }\n        ;\n        ;\n            var pa = ((((fa && l(fa).getRootNode())) || p(((\"notification_\" + da))))), qa = Math.max(ea, ka), ra = pa.getAttribute(\"data-readness\");\n            if (((!this.unseenVsUnread && ((z == ra))))) {\n                ra = x;\n            }\n        ;\n        ;\n            oa = {\n                id: da,\n                obj: pa,\n                time: qa,\n                readness: ra,\n                app_id: pa.getAttribute(\"data-appid\")\n            };\n            this._insert(oa);\n            this._setUpReadStateToggle(da, pa);\n            ca.localizeUrls(pa);\n            ((this.noItemsElement && i.hide(this.noItemsElement)));\n            if (ba(ra)) {\n                ((((ha && !aa(ja))) && this.markRead([da,])));\n                this.unseenCount = this.getUnseenIds().length;\n                this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n            }\n        ;\n        ;\n            var sa = ((((!na || ((ka < qa)))) || ((((ra && !ja)) && !ha))));\n            this.inform(ca.INSERTION_TYPE, {\n                id: da,\n                is_new: sa,\n                obj: pa,\n                replaced_id: na,\n                time: qa\n            });\n            return true;\n        },\n        _setReadStateToggleReadness: function(da, ea) {\n            var fa;\n            if (ea) {\n                fa = ((this.unseenVsUnread ? \"Mark as Read\" : \"Unread\"));\n            }\n             else fa = \"Read\";\n        ;\n        ;\n            if (!((ea && this.unseenVsUnread))) {\n                i.removeClass(da, \"_5c9q\");\n                i.addClass(da, \"_5c9_\");\n            }\n        ;\n        ;\n            n.set(da, fa, \"above\", \"center\");\n        },\n        _setUpReadStateToggle: function(da, ea) {\n            var fa = this.isUnreadId(da), ga = j.scry(ea, \"._5c9q\")[0];\n            if (!ga) {\n                return;\n            }\n        ;\n        ;\n            this._setReadStateToggleReadness(ga, fa);\n            var ha = function(JSBNG__event) {\n                if (((this.unseenVsUnread && this.isUnreadId(da)))) {\n                    this.markReadSignalServer([da,]);\n                }\n            ;\n            ;\n                o.kill(JSBNG__event);\n                return false;\n            };\n            o.listen(ga, \"click\", ha.bind(this));\n        },\n        showNoNotifications: function() {\n            if (((null == this.noItemsElement))) {\n                this.noItemsElement = t(this.NO_ITEMS_ID);\n            }\n        ;\n        ;\n            if (((null == this.noItemsElement))) {\n                this.noItemsElement = j.create(this.ITEM_TAG, {\n                    id: this.NO_ITEMS_ID,\n                    className: this.NO_ITEMS_CLASS\n                }, \"No new notifications\");\n                j.appendContent(this.contentRoot, this.noItemsElement);\n            }\n        ;\n        ;\n            i.show(this.noItemsElement);\n        },\n        _insert: function(da) {\n            this._list.remove(da.id);\n            var ea = null;\n            this._list.JSBNG__find(function(ga) {\n                var ha = this.compare(ga, da);\n                ((!ha && (ea = ga.id)));\n                return ha;\n            }.bind(this));\n            var fa = this.getDomObj(ea);\n            if (fa) {\n                this._list.insertAfter(da.id, da, ea);\n                j.insertAfter(fa, da.obj);\n            }\n             else {\n                this._list.prepend(da.id, da);\n                j.prependContent(this.contentRoot, da.obj);\n            }\n        ;\n        ;\n        },\n        _remove: function(da) {\n            var ea = this._getField(da, \"obj\");\n            if (!ea) {\n                return false;\n            }\n        ;\n        ;\n            this.inform(ca.REMOVAL_TYPE, {\n                id: da\n            });\n            this._list.remove(da);\n            j.remove(ea);\n            ((this.isEmpty() && this.showNoNotifications()));\n            return true;\n        },\n        getUnreadIds: function() {\n            return this._list.reduce(function(da, ea) {\n                ((aa(da.readness) && ea.push(da.id)));\n                return ea;\n            }, []);\n        },\n        getUnseenIds: function() {\n            return this._list.reduce(function(da, ea) {\n                ((ba(da.readness) && ea.push(da.id)));\n                return ea;\n            }, []);\n        },\n        getIds: function() {\n            return this._list.reduce(function(da, ea) {\n                ea.push(da.id);\n                return ea;\n            }, []);\n        },\n        isUnreadId: function(da) {\n            var ea = this.getDomObj(da);\n            return ((aa(this._getField(da, \"readness\")) || ((ea && i.hasClass(ea, ca.ITEM_UNREAD_CLASS)))));\n        },\n        isUnseenId: function(da) {\n            return ba(this._getField(da, \"readness\"));\n        },\n        markRead: function(da, ea) {\n            da = ((da ? da.filter(this.isUnreadId.bind(this)) : this.getUnreadIds()));\n            var fa = false;\n            for (var ga = 0; ((ga < da.length)); ga++) {\n                var ha = this._list.get(da[ga]);\n                if (ha) {\n                    if (this._setReadness(da[ga], x)) {\n                        fa = true;\n                    }\n                ;\n                ;\n                    if (ea) {\n                        this._markReadInDom(da[ga], ha.obj);\n                    }\n                     else this.animateMarkRead(ha.obj);\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            if (fa) {\n                this.unseenCount = this.getUnseenIds().length;\n                this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n            }\n        ;\n        ;\n        },\n        markSeen: function(da) {\n            if (!w(da)) {\n                return;\n            }\n        ;\n        ;\n            if (!this.unseenVsUnread) {\n                this.markRead(da);\n                return;\n            }\n        ;\n        ;\n            da = da.filter(this.isUnseenId.bind(this));\n            var ea = false;\n            for (var fa = 0; ((fa < da.length)); fa++) {\n                if (this._setReadness(da[fa], z)) {\n                    ea = true;\n                }\n            ;\n            ;\n            };\n        ;\n            if (ea) {\n                this.unseenCount = this.getUnseenIds().length;\n                this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n            }\n        ;\n        ;\n        },\n        _setReadness: function(da, ea) {\n            var fa = this._list.get(da);\n            if (((!fa || ((fa.readness == ea))))) {\n                return false;\n            }\n        ;\n        ;\n            if (((((fa.readness == x)) && ((ea == z))))) {\n                return false;\n            }\n        ;\n        ;\n            fa.readness = ea;\n            fa.obj.setAttribute(\"data-readness\", ea);\n            return true;\n        },\n        _markReadInDom: function(da, ea) {\n            if (!this.isUnreadId(da)) {\n                return;\n            }\n        ;\n        ;\n            var fa = p(ea);\n            if (fa) {\n                this.stopAnimation(da);\n                i.removeClass(fa, ca.ITEM_UNREAD_CLASS);\n                var ga = j.scry(fa, \".read_toggle\")[0];\n                ((ga && this._setReadStateToggleReadness(ga, false)));\n            }\n        ;\n        ;\n        },\n        animateMarkRead: function(da) {\n            if (!i.hasClass(da, ca.ITEM_UNREAD_CLASS)) {\n                return;\n            }\n        ;\n        ;\n            var ea = ca.getIdFromDom(da), fa = this._markReadInDom.bind(this, ea, da);\n            if (i.hasClass(da, \"fbJewelBeep\")) {\n                fa();\n                return;\n            }\n        ;\n        ;\n            if (((this.shouldBlockAnimation && this.shouldBlockAnimation(da)))) {\n                return;\n            }\n        ;\n        ;\n            fa.defer(10000);\n        },\n        stopAnimation: function(da) {\n            ((((da in this.animations)) && this.animations[da].JSBNG__stop()));\n            delete this.animations[da];\n            return true;\n        },\n        insertMany: function(da, ea) {\n            if (((((\"object\" == typeof da)) && !u(da)))) {\n                {\n                    var fin182keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin182i = (0);\n                    var fa;\n                    for (; (fin182i < fin182keys.length); (fin182i++)) {\n                        ((fa) = (fin182keys[fin182i]));\n                        {\n                            var ga = da[fa];\n                            this.insert(fa, ga.time, ga.markup, true, ea, ((ga.alt_id || null)));\n                        };\n                    };\n                };\n            ;\n                ((this.noItemsElement && i.hide(this.noItemsElement)));\n            }\n             else ((this.isEmpty() && this.showNoNotifications()));\n        ;\n        ;\n        },\n        isEmpty: function() {\n            return this._list.isEmpty();\n        },\n        getEarliestNotifTime: function() {\n            return ((this._list.isEmpty() ? 0 : Math.min.apply(null, this.getIds().map(function(da) {\n                return this._getField(da, \"time\");\n            }.bind(this)))));\n        },\n        setFilterFn: function(da) {\n            this._filter_func = da;\n        },\n        toggleNotifsSimilarTo: function(da, ea, fa) {\n            var ga = this._getField(da, \"app_id\");\n            if (ga) {\n                var ha = this.getIds();\n                for (var ia = 0; ((ia < ha.length)); ++ia) {\n                    if (((ga == this._getField(ha[ia], \"app_id\")))) {\n                        var ja = this.getDomObj(ha[ia]);\n                        if (((da != ha[ia]))) {\n                            ((ea ? this._hideWithAnimation(ja) : this._showWithAnimation(ja)));\n                        }\n                    ;\n                    ;\n                        var ka = j.scry(ja, \".first_receipt_div\");\n                        if (((ka.length == 1))) {\n                            if (fa) {\n                                i.hide(ka[0]);\n                                i.removeClass(ja, \"first_receipt\");\n                            }\n                             else {\n                                i.show(ka[0]);\n                                i.addClass(ja, \"first_receipt\");\n                            }\n                        ;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n        },\n        _hideWithAnimation: function(da) {\n            new g(da).to(\"opacity\", \"0\").blind().duration(this.FADE_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.RESIZE_DURATION).go();\n        },\n        _showWithAnimation: function(da) {\n            new g(da).to(\"height\", \"auto\").to(\"paddingTop\", \"auto\").to(\"paddingBottom\", \"auto\").blind().show().duration(this.RESIZE_DURATION).checkpoint().to(\"opacity\", \"1\").blind().duration(this.FADE_DURATION).go();\n        }\n    });\n    e.exports = ca;\n});\n__d(\"Notifications\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"Bootloader\",\"ChannelConstants\",\"CSS\",\"DOM\",\"Env\",\"JSBNG__Event\",\"JSLogger\",\"NegativeNotif\",\"NotificationCounter\",\"NotificationList\",\"NotifXList\",\"Parent\",\"Poller\",\"ScrollableArea\",\"Style\",\"SystemEvents\",\"Toggler\",\"URI\",\"UserActivity\",\"UserNoOp\",\"Vector\",\"$\",\"copyProperties\",\"emptyFunction\",\"ge\",\"hasArrayNature\",\"isEmpty\",\"shield\",\"throttle\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"AsyncSignal\"), k = b(\"Bootloader\"), l = b(\"ChannelConstants\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Env\"), p = b(\"JSBNG__Event\"), q = b(\"JSLogger\"), r = b(\"NegativeNotif\"), s = b(\"NotificationCounter\"), t = b(\"NotificationList\"), u = b(\"NotifXList\"), v = b(\"Parent\"), w = b(\"Poller\"), x = b(\"ScrollableArea\"), y = b(\"Style\"), z = b(\"SystemEvents\"), aa = b(\"Toggler\"), ba = b(\"URI\"), ca = b(\"UserActivity\"), da = b(\"UserNoOp\"), ea = b(\"Vector\"), fa = b(\"$\"), ga = b(\"copyProperties\"), ha = b(\"emptyFunction\"), ia = b(\"ge\"), ja = b(\"hasArrayNature\"), ka = b(\"isEmpty\"), la = b(\"shield\"), ma = b(\"throttle\"), na = b(\"userAction\");\n    function oa(pa) {\n        this.updateTime = ((pa.updateTime || JSBNG__Date.now()));\n        this.update_period = ((pa.updatePeriod || 60000));\n        this.latest_notif_time = ((pa.latestNotif || 0));\n        this.latest_read_notif_time = ((pa.latestReadNotif || 0));\n        this.cache_version = ((pa.cacheVersion || 0));\n        this.notifReceivedType = ((pa.notifReceivedType || \"notification\"));\n        this.wrapperID = ((pa.wrapperID || \"notificationsWrapper\"));\n        this.contentID = ((pa.contentID || \"jewelNotifs\"));\n        this.shouldLogImpressions = ((pa.shouldLogImpressions || false));\n        this.allowDesktopNotifications = ((pa.allowDesktopNotifications || false));\n        this.logAutoShutOffImpression = true;\n        this.useInfiniteScroll = ((pa.useInfiniteScroll || false));\n        this.unseenVsUnread = ((pa.unseenVsUnread || false));\n        this.scrollableAreaNode = null;\n        this.firstReceiptMap = {\n        };\n        this.user = o.user;\n        this.queuedNotifications = [];\n        this.timeElement = \"small.time\";\n        this.ua = new da();\n        this._init();\n    };\n;\n    ga(oa.prototype, {\n        TIME_TRAVEL: \"time_travel\",\n        ONLINE: \"online\",\n        SCROLL_OFF_TINY: \"scroll_off_tiny\",\n        INACTIVE_REFRESH: \"inactive_refresh\",\n        _init: function() {\n            this.cookieName = ((\"notifications_\" + this.user));\n            this.updateCheckCount = 0;\n            this.fetchListeners = [];\n            this.currentFetchRequest = null;\n            this.wrapper = ia(this.wrapperID);\n            this.JSBNG__content = ia(this.contentID);\n            this.jewelFlyout = ia(\"fbNotificationsFlyout\");\n            this.footer = n.JSBNG__find(this.jewelFlyout, \".jewelFooter\");\n            this.loadingIndicator = ia(((this.contentID + \"_loading_indicator\")));\n            this.NOTIF_JEWEL_REF = \"notif_jewel\";\n            this.notifLogger = q.create(\"notifications\");\n            s.init();\n            this.alertList = new t(this.JSBNG__content, this._getListParams());\n            this._updateCount();\n            ((((a.MinNotifications && a.MinNotifications.fetchSent())) && (this.fetch = ha)));\n            h.subscribe(l.getArbiterType(this.notifReceivedType), this._handleNotificationMsg.bind(this));\n            h.subscribe(l.getArbiterType(\"notifications_read\"), this._handleNotificationsReadMsg.bind(this));\n            h.subscribe(l.getArbiterType(\"notifications_seen\"), this._handleNotificationsSeenMsg.bind(this));\n            h.subscribe(\"jewel/resize\", la(this._hideOverflow, this));\n            this.alertList.subscribe(t.UNREAD_COUNT_CHANGE_TYPE, this._updateCount.bind(this));\n            this._poller = new w({\n                interval: this.update_period,\n                setupRequest: this._update.bind(this),\n                clearOnQuicklingEvents: false,\n                dontStart: true\n            });\n            this._poller.start.bind(this._poller).defer(this.update_period, false);\n            if (this.wrapper) {\n                this.countSpan = n.JSBNG__find(this.wrapper, \"span.jewelCount span\");\n            }\n        ;\n        ;\n            this.initializeEvents();\n            this.fromDom();\n            if (this.useInfiniteScroll) {\n                this._autoLoadNotifIndex = 1;\n                this._truncate = false;\n                this.alertList.subscribe(t.INSERTION_TYPE, this._handleInsert.bind(this));\n            }\n        ;\n        ;\n        },\n        _getListParams: function() {\n            return {\n                shouldBlockAnimation: function(pa) {\n                    return this.isNotifJewelOpen();\n                }.bind(this),\n                unseenVsUnread: this.unseenVsUnread,\n                markReadSignalServer: this.markRead.bind(this).curry(true)\n            };\n        },\n        fromDom: function() {\n            this.alertList.fromDom();\n            ((((((a.MinNotifications && a.MinNotifications.fetched())) && this.alertList.isEmpty())) && this.alertList.showNoNotifications()));\n        },\n        initializeEvents: function() {\n            var pa = this.alertList.ITEM_TAG, qa = null;\n            p.listen(this.JSBNG__content, {\n                mouseover: function(JSBNG__event) {\n                    var ta = JSBNG__event.getTarget();\n                    qa = v.byTag(ta, pa);\n                    if (((qa && ((ta != qa))))) {\n                        if (v.byClass(qa, \"notifNegativeBase\")) {\n                            m.addClass(qa, \"notifHover\");\n                        }\n                         else m.addClass(qa, \"selected\");\n                    ;\n                    }\n                ;\n                ;\n                },\n                mouseout: function(JSBNG__event) {\n                    ((qa && m.removeClass(qa, \"selected\")));\n                    ((qa && m.removeClass(qa, \"notifHover\")));\n                    qa = null;\n                },\n                mousedown: this.onContentMouseDown.bind(this)\n            });\n            p.listen(this.wrapper, \"mouseover\", this.onMouseOver.bind(this));\n            aa.listen(\"show\", this.wrapper, this.onClick.bind(this));\n            aa.listen(\"hide\", this.wrapper, this.onHide.bind(this));\n            ((this.shouldLogImpressions && aa.listen(\"show\", this.wrapper, this._logImpression.bind(this))));\n            var ra = function(ta) {\n                this._poller.request();\n                this.notifLogger.bump(ta);\n            }.bind(this);\n            z.subscribe(z.TIME_TRAVEL, ra.curry(this.TIME_TRAVEL));\n            z.subscribe(z.ONLINE, function(ta, ua) {\n                ((ua && ra(this.ONLINE)));\n            });\n            var sa = ((((1000 * 60)) * 60));\n            ca.subscribe(function(ta, ua) {\n                ((((ua.idleness > sa)) && ra(this.INACTIVE_REFRESH)));\n            }.bind(this));\n            this.negativeNotifs = {\n            };\n            this._initNotifNegativeFeedback();\n            if (this.useInfiniteScroll) {\n                this._setupScroll();\n                this._initializeScrollEvents();\n                this._updateScrollDataStructures.bind(this).defer();\n                this._hideOverflow();\n            }\n        ;\n        ;\n        },\n        _setupScroll: function() {\n            this._scrollArea = n.scry(this.jewelFlyout, \"div.uiScrollableAreaWrap\")[0];\n            this._morePagerLink = n.JSBNG__find(this.jewelFlyout, \".notifMorePager a\");\n            this._morePager = ((v.byClass(this._morePagerLink, \"notifMorePager\") || this._morePagerLink));\n            this._infiniteScrollNotif = null;\n            this.afterFirstFetch = false;\n            this.animate = false;\n            if (((a.MinNotifications && a.MinNotifications.fetched()))) {\n                this.afterFirstFetch = true;\n                m.show(this._morePager);\n            }\n        ;\n        ;\n        },\n        _initializeScrollEvents: function() {\n            p.listen(this._scrollArea, \"JSBNG__scroll\", ma(this._handleScroll.bind(this)));\n            p.listen(this._morePagerLink, \"success\", function(pa) {\n                this.fetchHandler(pa.getData().response);\n            }.bind(this));\n        },\n        _updateScrollDataStructures: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sa0cdb1bc3c127a88a086a13f4a6ca1502f98adf1_257), function() {\n            var pa = this.alertList.getIds(), qa = Math.max(0, ((pa.length - this._autoLoadNotifIndex)));\n            this._infiniteScrollNotif = this.alertList.getDomObj(pa[qa]);\n            this._annotateMorePagerURI();\n        })),\n        _annotateMorePagerURI: function() {\n            this._morePagerLink.setAttribute(\"ajaxify\", new ba(this._morePagerLink.getAttribute(\"ajaxify\")).addQueryData({\n                earliest_time: this.alertList.getEarliestNotifTime()\n            }));\n        },\n        onContentMouseDown: function(JSBNG__event) {\n            var pa = v.byTag(JSBNG__event.getTarget(), this.alertList.ITEM_TAG), qa = ((pa && t.getIdFromDom(pa)));\n            if (((qa && this.alertList.isUnreadId(qa)))) {\n                this.markRead(true, [qa,]);\n            }\n        ;\n        ;\n        },\n        onMouseOver: function(JSBNG__event) {\n            if (m.hasClass(JSBNG__event.getTarget(), \"jewelButton\")) {\n                this.ua = na(\"notifs\", JSBNG__event.target, JSBNG__event, {\n                    mode: \"DEDUP\"\n                }).uai(\"mouseover\", \"jewel\").add_event(\"hover\");\n            }\n        ;\n        ;\n            this.fetch();\n        },\n        onClick: function() {\n            ((((a.ArbiterMonitor && ((this.fetch != ha)))) && h.registerCallback(ha, [\"notifs/fetched\",])));\n            this.ua.add_event(\"show\");\n            this.fetch();\n            this.markRead(true);\n            this._hideOverflow();\n            if (this.scrollableAreaNode) {\n                var pa = x.getInstance(this.scrollableAreaNode);\n                ((pa && pa.poke()));\n            }\n        ;\n        ;\n        },\n        onHide: function() {\n            this.animate = false;\n            ((this.animation && this.animation.JSBNG__stop()));\n            this.ua.add_event(\"hide\");\n            this.markRead(true);\n            this._dequeueNotifications();\n        },\n        _dequeueNotifications: function() {\n            this.queuedNotifications.forEach(function(pa) {\n                this._displayNotification(pa.type, pa.data);\n            }, this);\n            this.queuedNotifications.length = 0;\n        },\n        _handleScroll: function() {\n            if (this._checkInfiniteScroll()) {\n                this._autoLoadNotifIndex = 5;\n                this._sendFetchRequest(this._morePager);\n            }\n        ;\n        ;\n        },\n        _handleInsert: function(pa, qa) {\n            if (qa.is_new) {\n                this._newDataFromInsert = true;\n            }\n        ;\n        ;\n            this._updateScrollDataStructures();\n        },\n        _checkInfiniteScroll: function() {\n            if (((this._infiniteScrollNotif && this._scrollArea))) {\n                var pa = ea.getElementPosition(this._infiniteScrollNotif).y, qa = ((ea.getElementPosition(this._scrollArea).y + ea.getElementDimensions(this._scrollArea).y));\n                return ((pa < qa));\n            }\n        ;\n        ;\n            return false;\n        },\n        _initNotifNegativeFeedback: function() {\n            u.init(this);\n            this.alertList.setFilterFn(u.filterStoreClicked);\n            aa.listen(\"hide\", fa(this.wrapperID), function() {\n                {\n                    var fin183keys = ((window.top.JSBNG_Replay.forInKeys)((this.negativeNotifs))), fin183i = (0);\n                    var pa;\n                    for (; (fin183i < fin183keys.length); (fin183i++)) {\n                        ((pa) = (fin183keys[fin183i]));\n                        {\n                            if (pa) {\n                                ((((this.negativeNotifs[pa] instanceof r)) && this.negativeNotifs[pa].reset()));\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            }.bind(this));\n            h.subscribe(\"notif/negativeCancel\", function(pa, qa) {\n                ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].restore()));\n            }.bind(this));\n            h.subscribe(\"notif/negativeConfirmed\", function(pa, qa) {\n                ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onTurnedOff()));\n                this.alertList.toggleNotifsSimilarTo(qa.id, true, true);\n                this._hideOverflow();\n                this._handleScroll();\n            }.bind(this));\n            h.subscribe(\"notif/negativeUndid\", function(pa, qa) {\n                ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onUndid()));\n                this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n                this._hideOverflow();\n            }.bind(this));\n            h.subscribe(\"notif/negativeMarkedSpam\", function(pa, qa) {\n                ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onMarkedSpam()));\n            }.bind(this));\n            h.subscribe(\"notif/negativeFirstReceiptYes\", function(pa, qa) {\n                ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onFirstReceiptYes()));\n                this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n            }.bind(this));\n            h.subscribe(\"notif/negativeFirstReceiptNo\", function(pa, qa) {\n                ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onFirstReceiptNo()));\n                this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n            }.bind(this));\n            this.alertList.subscribe(t.INSERTION_TYPE, function(pa, qa) {\n                this._updateFirstReceipt(qa);\n                var ra = n.scry(qa.obj, \".notif_x\");\n                if (((ra.length == 1))) {\n                    this.negativeNotifs[qa.id] = new r(this, qa);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _sendIDs: function(pa, qa, ra) {\n            var sa = ((ra || {\n            }));\n            for (var ta = 0; ((ta < pa.length)); ++ta) {\n                sa[((((\"alert_ids[\" + ta)) + \"]\"))] = pa[ta];\n            ;\n            };\n        ;\n            new j(ba(qa).getQualifiedURI().toString(), sa).send();\n        },\n        _waitForFetch: function(pa) {\n            return ((this.currentFetchRequest && this.fetchListeners.push(pa.bind(this))));\n        },\n        _logImpression: function() {\n            var pa = this.alertList.getIds();\n            if (((((pa.length === 0)) && this._waitForFetch(this._logImpression)))) {\n                return;\n            }\n        ;\n        ;\n            this.logImpressionIds(pa, this.NOTIF_JEWEL_REF);\n        },\n        logImpressionIds: function(pa, qa) {\n            ((this.shouldLogImpressions && this._sendIDs(pa, \"/ajax/notifications/impression.php\", {\n                ref: qa\n            })));\n        },\n        markRead: function(pa, qa) {\n            var ra = !ja(qa);\n            qa = ((ra ? this.alertList.getUnseenIds() : qa.filter(this.alertList.isUnreadId.bind(this.alertList))));\n            if (qa.length) {\n                ((pa && this._sendIDs(qa, \"/ajax/notifications/mark_read.php\", {\n                    seen: ((ra ? 1 : 0))\n                })));\n                if (((ia(\"jewelNoticeMessage\") && this.logAutoShutOffImpression))) {\n                    new j(\"/ajax/notifications/auto_shutoff_seen.php\").send();\n                    this.logAutoShutOffImpression = false;\n                }\n            ;\n            ;\n                var sa = pa;\n                ((ra ? this.alertList.markSeen(qa) : this.alertList.markRead(qa, sa)));\n            }\n        ;\n        ;\n            ((ra && this._waitForFetch(this.markRead.bind(this, pa))));\n        },\n        markAllRead: function() {\n            var pa = this.alertList.getUnreadIds();\n            this.markRead(true, pa);\n        },\n        _updateErrorHandler: function(pa) {\n        \n        },\n        _updateURI: \"/ajax/presence/update.php\",\n        _update: function(pa) {\n            pa.setHandler(this._handleUpdate.bind(this)).setOption(\"suppressErrorAlerts\", true).setErrorHandler(this._updateErrorHandler.bind(this)).setData({\n                notif_latest: this.latest_notif_time,\n                notif_latest_read: this.latest_read_notif_time\n            }).setURI(this._updateURI).setAllowCrossPageTransition(true);\n        },\n        _handleUpdate: function(pa) {\n            var qa = pa.payload.notifications;\n            if (!qa.no_change) {\n                this.updateTime = pa.payload.time;\n                this.latest_notif_time = qa.latest_notif;\n                this.latest_read_notif_time = qa.latest_read_notif;\n                this._updateDisplay();\n                this.alertList.insertMany(qa.notifications);\n            }\n        ;\n        ;\n        },\n        _updateDisplay: function() {\n            if (!this.JSBNG__content) {\n                return;\n            }\n        ;\n        ;\n            this._updateCount();\n        },\n        _updateCount: function() {\n            h.inform(\"jewel/count-updated\", {\n                jewel: \"notifications\",\n                count: this.alertList.unseenCount\n            }, h.BEHAVIOR_STATE);\n            this._hideOverflow();\n        },\n        fetch: function(pa) {\n            this._sendFetchRequest(pa);\n        },\n        _getFetchQueryData: function() {\n            var pa = {\n                time: this.latest_notif_time,\n                user: this.user,\n                version: this.cache_version,\n                locale: o.locale\n            };\n            if (this.useInfiniteScroll) {\n                pa.earliest_time = this.alertList.getEarliestNotifTime();\n            }\n        ;\n        ;\n            return pa;\n        },\n        _sendFetchRequest: function(pa) {\n            if (this.useInfiniteScroll) {\n                this._infiniteScrollNotif = null;\n                this._newDataFromInsert = false;\n                this._truncate = true;\n            }\n        ;\n        ;\n            var qa = ba(\"/ajax/notifications/get.php\"), ra = ((pa || this.loadingIndicator));\n            if (this.currentFetchRequest) {\n                return true;\n            }\n        ;\n        ;\n            this.ua.add_event(\"fetch\");\n            qa.setQueryData(this._getFetchQueryData());\n            this.currentFetchRequest = new i().setURI(qa).setStatusElement(ra).setMethod(\"GET\").setReadOnly(true).setTimeoutHandler(30000, this.fetchErrorHandler.bind(this)).setHandler(this.fetchHandler.bind(this)).setErrorHandler(this.fetchErrorHandler.bind(this)).setAllowCrossPageTransition(true);\n            ((!this.currentFetchRequest.send() && this.fetchErrorHandler()));\n            return true;\n        },\n        fetchErrorHandler: function(pa) {\n            this.currentFetchRequest = null;\n            this.ua.add_event(\"fetch_error\");\n            ((this.loadingIndicator && m.hide(this.loadingIndicator)));\n            ((this.useInfiniteScroll && this._updateScrollDataStructures()));\n        },\n        fetchHandler: function(pa) {\n            this.ua.add_event(\"fetch_success\");\n            var qa = pa.getPayload();\n            this.alertList.insertMany(qa.notifications, true);\n            ((this.loadingIndicator && m.hide(this.loadingIndicator)));\n            this.loadingIndicator = null;\n            this.currentFetchRequest = null;\n            this.fetch = ha;\n            if (this.fetchListeners) {\n                for (var ra = 0; ((ra < this.fetchListeners.length)); ra++) {\n                    this.fetchListeners[ra]();\n                ;\n                };\n            ;\n                this.fetchListeners = [];\n            }\n        ;\n        ;\n            ((a.ArbiterMonitor && h.inform(\"notifs/fetched\", \"\", h.BEHAVIOR_STATE)));\n            var sa = qa.generated, ta = Math.round(((JSBNG__Date.now() / 1000)));\n            if (((((ta - sa)) > 15))) {\n                sa = ta;\n            }\n        ;\n        ;\n            k.loadModules([\"LiveTimer\",], function(ua) {\n                ua.restart(sa);\n                ua.startLoop(0);\n            });\n            if (this.useInfiniteScroll) {\n                if (((ka(qa.notifications) || !this._newDataFromInsert))) {\n                    this._noMoreNotifications();\n                }\n                 else m.show(this._morePager);\n            ;\n            ;\n                this._updateScrollDataStructures();\n                if (((this.isNotifJewelOpen() && this.afterFirstFetch))) {\n                    this.animate = true;\n                }\n            ;\n            ;\n                this.afterFirstFetch = true;\n            }\n        ;\n        ;\n            this._hideOverflow();\n        },\n        _noMoreNotifications: function() {\n            m.hide(this._morePager);\n            this.useInfiniteScroll = false;\n        },\n        _mergeNotification: function(pa, qa, ra, sa) {\n            var ta = !this.alertList.isUnreadId(pa);\n            this.alertList.insert(pa, qa, ra, true, null, ((sa || null)));\n            this.latest_notif_time = 0;\n            if (ta) {\n                this._updateCount();\n            }\n        ;\n        ;\n            var ua = this.alertList.getDomObj(pa);\n            if (ua) {\n                k.loadModules([\"LiveTimer\",], function(va) {\n                    va.addTimeStamps(ua);\n                });\n            }\n        ;\n        ;\n        },\n        _handleNotificationMsg: function(pa, qa) {\n            if (this.isNotifJewelOpen()) {\n                var ra = {\n                    type: pa,\n                    data: qa\n                };\n                this.queuedNotifications.push(ra);\n            }\n             else this._displayNotification(pa, qa);\n        ;\n        ;\n        },\n        _displayNotification: function(pa, qa) {\n            var ra = qa.obj;\n            if (((typeof this.useDesktopNotifications == \"undefined\"))) {\n                this.useDesktopNotifications = ((((this.allowDesktopNotifications && window.JSBNG__webkitNotifications)) && ((window.JSBNG__webkitNotifications.checkPermission() === 0))));\n            }\n        ;\n        ;\n            if (this.useDesktopNotifications) {\n                k.loadModules([\"DesktopNotifications\",], function(sa) {\n                    sa.addNotification(ra.alert_id);\n                });\n            }\n        ;\n        ;\n            if (ra.markup) {\n                this._mergeNotification(ra.alert_id, ra.time, ra.markup, ((ra.alt_id || null)));\n            }\n             else this._poller.request();\n        ;\n        ;\n        },\n        _handleNotificationsReadMsg: function(pa, qa) {\n            var ra = qa.obj;\n            this.markRead(false, ra.alert_ids);\n        },\n        _handleNotificationsSeenMsg: function(pa, qa) {\n            if (!this.unseenVsUnread) {\n                this._handleNotificationsReadMsg(pa, qa);\n                return;\n            }\n        ;\n        ;\n            var ra = qa.obj;\n            this.alertList.markSeen(ra.alert_ids);\n        },\n        _hideOverflow: function() {\n            if (!this.isNotifJewelOpen()) {\n                return;\n            }\n        ;\n        ;\n            var pa = n.scry(fa(\"fbNotificationsList\"), \".notification\");\n            this.scrollableAreaNode = ((this.scrollableAreaNode || n.scry(this.jewelFlyout, \".uiScrollableArea\")[0]));\n            var qa = 20, ra = ((m.hasClass(JSBNG__document.documentElement, \"tinyViewport\") && !m.hasClass(JSBNG__document.body, \"fixedBody\")));\n            if (((!pa.length || ra))) {\n                y.set(this.scrollableAreaNode, \"height\", \"100%\");\n                this.notifLogger.rate(this.SCROLL_OFF_TINY, ra);\n                return;\n            }\n        ;\n        ;\n            var sa = ((this.scrollableAreaNode || pa[0])), ta = ((((((ea.getViewportDimensions().y - ea.getElementPosition(sa, \"viewport\").y)) - ea.getElementDimensions(this.footer).y)) - 5)), ua = ta, va = 0;\n            for (; ((((va < pa.length)) && ((ua > 0)))); ++va) {\n                if (m.shown(pa[va])) {\n                    ua -= ea.getElementDimensions(pa[va]).y;\n                }\n            ;\n            ;\n            };\n        ;\n            var wa = 530, xa = Math.min(wa, ((ta - Math.max(ua, 0))));\n            if (((((ua >= 0)) && ((xa < wa))))) {\n                if (!this.useInfiniteScroll) {\n                    xa = \"100%\";\n                }\n                 else {\n                    if (((this._truncate && ((pa.length >= 5))))) {\n                        xa -= qa;\n                    }\n                ;\n                ;\n                    xa += \"px\";\n                }\n            ;\n            ;\n            }\n             else xa += \"px\";\n        ;\n        ;\n            if (((((this.useInfiniteScroll && this.animate)) && ((xa != \"100%\"))))) {\n                ((this.animation && this.animation.JSBNG__stop()));\n                this.animation = new g(this.scrollableAreaNode).to(\"height\", xa).duration(200).go();\n            }\n             else {\n                var ya = x.getInstance(this.scrollableAreaNode);\n                ((ya && ya.showScrollbar.bind(ya).defer()));\n                y.set(this.scrollableAreaNode, \"height\", xa);\n            }\n        ;\n        ;\n        },\n        _updateFirstReceipt: function(pa) {\n            var qa = pa.obj.getAttribute(\"data-appid\"), ra = n.scry(pa.obj, \".first_receipt_div\");\n            if (((qa && ((ra.length == 1))))) {\n                if (this.firstReceiptMap[qa]) {\n                    if (((((pa.id != this.firstReceiptMap[qa].id)) && ((this.firstReceiptMap[qa].time > pa.time))))) {\n                        return;\n                    }\n                ;\n                ;\n                    m.removeClass(this.firstReceiptMap[qa].obj, \"first_receipt\");\n                }\n            ;\n            ;\n                this.firstReceiptMap[qa] = pa;\n                m.addClass(pa.obj, \"first_receipt\");\n            }\n        ;\n        ;\n        },\n        isNotifJewelOpen: function() {\n            var pa = aa.getInstance(this.wrapper).getActive();\n            return ((((pa === this.wrapper)) && m.hasClass(pa, \"openToggler\")));\n        }\n    });\n    e.exports = oa;\n});\n__d(\"legacy:original-notifications-jewel\", [\"Notifications\",], function(a, b, c, d) {\n    a.Notifications = b(\"Notifications\");\n}, 3);\n__d(\"legacy:onvisible\", [\"OnVisible\",], function(a, b, c, d) {\n    a.OnVisible = b(\"OnVisible\");\n}, 3);\n__d(\"PagesVoiceBar\", [\"$\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"ChannelConstants\",\"DOM\",\"PageTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"ChannelConstants\"), l = b(\"DOM\"), m = b(\"PageTransitions\"), n = \"PagesVoiceBar/toggle\", o = \"PagesVoiceBar/initialized\", p = \"PagesVoiceBar/switchVoice\", q = \"page_transition\", r = \"pages_voice_bar_sync\", s = null, t = null, u = false, v = false;\n    function w() {\n        v = !v;\n        j.conditionClass(JSBNG__document.body, \"hasVoiceBar\", v);\n    };\n;\n    function x(da, ea) {\n        new i(\"/ajax/pages/switch_voice.php\").setData(ea).setHandler(function(fa) {\n            ba();\n        }).send();\n    };\n;\n    function y() {\n        s = null;\n    };\n;\n    function z(da, ea) {\n        if (((ea.obj.profile_id && ((ea.obj.profile_id == s))))) {\n            ba();\n        }\n    ;\n    ;\n    };\n;\n    function aa(da) {\n        h.subscribe(o, da);\n    };\n;\n    function ba() {\n        m.getNextURI().go();\n    };\n;\n    var ca = {\n        initVoiceBar: function() {\n            if (u) {\n                return;\n            }\n        ;\n        ;\n            t = g(\"pagesVoiceBarContent\");\n            v = j.hasClass(JSBNG__document.body, \"hasVoiceBar\");\n            h.subscribe(n, w);\n            h.subscribe(p, x);\n            h.subscribe(q, y);\n            h.subscribe(k.getArbiterType(r), z);\n            u = true;\n            h.inform(o, null, h.BEHAVIOR_STATE);\n        },\n        update: function(da, ea) {\n            aa(function() {\n                s = ea;\n                l.setContent(t, da);\n            });\n        }\n    };\n    e.exports = ca;\n});\n__d(\"PrivacyLiteFlyout\", [\"JSBNG__Event\",\"function-extensions\",\"$\",\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Ease\",\"Parent\",\"SelectorDeprecated\",\"Style\",\"Toggler\",\"copyProperties\",\"cx\",\"csx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"$\"), i = b(\"Animation\"), j = b(\"Arbiter\"), k = b(\"ArbiterMixin\"), l = b(\"AsyncRequest\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Ease\"), p = b(\"Parent\"), q = b(\"SelectorDeprecated\"), r = b(\"Style\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"cx\"), v = b(\"csx\"), w = b(\"ge\"), x = \"PrivacyLiteFlyout/expandingSection\", y = {\n    }, z = {\n    };\n    function aa() {\n        switch (window.JSBNG__location.pathname) {\n          case \"/\":\n        \n          case \"/home.php\":\n        \n          case \"/index.php\":\n            return true;\n          default:\n            return false;\n        };\n    ;\n    };\n;\n    function ba(ka) {\n        var la = \"._59fb\";\n        return ((!p.byClass(ka, \"hasSmurfbar\") && n.scry(h(\"blueBar\"), la).length));\n    };\n;\n    function ca(ka, la, ma) {\n        var na = ((la ? 0 : ka.offsetHeight));\n        r.set(ka, \"height\", ((na + \"px\")));\n        r.set(ka, \"overflow\", \"hidden\");\n        m.show(ka);\n        var oa = ((la ? ka.scrollHeight : 0)), pa = n.getID(ka);\n        ((y[pa] && y[pa].JSBNG__stop()));\n        y[pa] = new i(ka).to(\"height\", oa).ondone(function() {\n            y[pa] = null;\n            r.set(ka, \"height\", \"\");\n            r.set(ka, \"overflow\", \"\");\n            ((oa || m.hide(ka)));\n            ma();\n        }).duration(((Math.abs(((oa - na))) * 1.5))).ease(o.sineOut).go();\n    };\n;\n    function da(ka) {\n        return new l().setURI(ka).send();\n    };\n;\n    function ea() {\n        return da(\"/ajax/privacy/privacy_lite/increment_masher_tip_count\");\n    };\n;\n    function fa() {\n        return da(\"/ajax/privacy/privacy_lite/dismiss_masher_tip\");\n    };\n;\n    var ga = null, ha = false, ia = false, ja = t({\n        loadBody: function(ka) {\n            if (((!ha && w(\"fbPrivacyLiteFlyoutLoading\")))) {\n                ha = true;\n                if (!ka) {\n                    ka = false;\n                }\n            ;\n            ;\n                new l(\"/ajax/privacy/privacy_lite/loader\").setData({\n                    from_megaphone: ka\n                }).send();\n            }\n        ;\n        ;\n        },\n        renderBody: function(ka) {\n            var la = w(\"fbPrivacyLiteFlyoutLoading\");\n            if (la) {\n                n.replace(la, ka);\n                ja.inform(\"load\", null, j.BEHAVIOR_STATE);\n            }\n        ;\n        ;\n        },\n        hideCleanup: function(ka) {\n            j.inform(x);\n            var la = n.scry(ka, \"._2va0\").forEach(function(ma) {\n                m.removeClass(ma, \"_2va0\");\n            });\n        },\n        registerFlyoutToggler: function(ka, la) {\n            ga = la;\n            var ma = s.createInstance(ka);\n            ma.setSticky(false);\n            s.listen([\"show\",\"hide\",], la, function(na) {\n                ja.inform(na);\n                ia = ((na === \"show\"));\n                if (!ia) {\n                    ja.hideCleanup(ka);\n                    ma.hide();\n                    j.inform(\"layer_hidden\", {\n                        type: \"PrivacyShortcutsFlyout\"\n                    });\n                }\n                 else j.inform(\"layer_shown\", {\n                    type: \"PrivacyShortcutsFlyout\"\n                });\n            ;\n            ;\n            });\n        },\n        registerFinalReminderFlyout: function(ka) {\n            if (((ia || !aa()))) {\n                return;\n            }\n        ;\n        ;\n            var la = n.JSBNG__find(ka.getRoot(), \"._57bk\"), ma = ka.getContext();\n            if (ba(ma)) {\n                ka.setOffsetY(-5);\n            }\n        ;\n        ;\n            ja.subscribe(\"show\", function() {\n                ka.hide();\n            });\n            var na = g.listen(la, \"click\", function() {\n                ka.hide();\n                da(\"/ajax/privacy/privacy_lite/dismiss_rollout_reminder\");\n                na.remove();\n            });\n            da(\"/ajax/privacy/privacy_lite/increment_rollout_reminder\");\n            ka.show();\n        },\n        isFlyoutVisible: function() {\n            return ((ga && ((s.getActive() === ga))));\n        },\n        exists: function() {\n            return !!n.scry(JSBNG__document.body, \"._59fc\")[0];\n        },\n        setFlyoutVisible: function(ka) {\n            ((ka ? s.show(ga) : s.hide(ga)));\n        },\n        showSection: function(ka) {\n            var la = z[ka], ma = la.chevron, na = la.sublist_container;\n            j.inform(x, ma);\n            if (((ja.inform(\"expand\", ka) !== false))) {\n                m.removeClass(ma, \"_9or\");\n                m.addClass(ma, \"_9os\");\n                ca(na, true, function() {\n                    ja.inform(\"expanded\", ka);\n                });\n            }\n        ;\n        ;\n        },\n        hideSection: function(ka, la, ma) {\n            var na = z[ka], oa = na.chevron, pa = na.sublist_container;\n            if (((ma === oa))) {\n                return;\n            }\n        ;\n        ;\n            if (((ja.inform(\"collapse\", ka) !== false))) {\n                m.addClass(oa, \"_9or\");\n                m.removeClass(oa, \"_9os\");\n                ca(pa, false, function() {\n                    ja.inform(\"collapsed\", ka);\n                });\n            }\n        ;\n        ;\n        },\n        toggleSection: function(ka) {\n            var la = z[ka].chevron;\n            s.getInstance(la).hide();\n            if (m.hasClass(la, \"_9or\")) {\n                ja.showSection(ka);\n                new l(\"/ajax/privacy/privacy_lite/log_section_expand\").setData({\n                    section: ka\n                }).send();\n            }\n             else ja.hideSection(ka);\n        ;\n        ;\n        },\n        registerSection: function(ka, la) {\n            z[ka] = la;\n            j.subscribe(x, ja.hideSection.curry(ka));\n            g.listen(la.section_block, \"click\", ja.toggleSection.curry(ka));\n        },\n        registerInlineHelpOnAudienceChange: function(ka, la, ma) {\n            q.subscribe(\"select\", function(na, oa) {\n                if (((oa.selector != ka))) {\n                    return;\n                }\n            ;\n            ;\n                m.addClass(la, \"_2va0\");\n                if (ma) {\n                    new l(\"/ajax/privacy/privacy_lite/kill_intro\").send();\n                }\n            ;\n            ;\n            });\n        },\n        registerInlineHelpXOutOnClick: function(ka, la) {\n            g.listen(ka, \"click\", m.addClass.curry(la, \"_9p0\"));\n        },\n        registerBlockUnhideOnFocus: function(ka, la) {\n            g.listen(ka, \"JSBNG__focus\", m.show.curry(la));\n        },\n        registerMessageFilterSettingOnClick: function(ka, la) {\n            var ma = n.JSBNG__find(ka, \"._fv0\");\n            g.listen(ka, \"click\", function() {\n                if (ma.checked) {\n                    new l(\"/ajax/mercury/change_filtering_type.php\").setData({\n                        filtering_type: la,\n                        source: \"privacy_lite\"\n                    }).send();\n                }\n            ;\n            ;\n            });\n        },\n        registerGraphSearchPrivacyReminder: function(ka, la) {\n            g.listen(la, \"click\", function() {\n                n.remove(ka);\n                da(\"/ajax/privacy/privacy_lite/dismiss_gs_privacy_reminder\");\n            });\n        },\n        registerMasher: function(ka, la) {\n            var ma = false;\n            j.subscribe(x, function(na, oa) {\n                var pa = n.scry(p.byTag(oa, \"li\"), \"._571t\").length;\n                if (((ma || !pa))) {\n                    return;\n                }\n            ;\n            ;\n                ma = Boolean(ea());\n            });\n            g.listen(la, \"click\", function() {\n                n.remove(ka);\n                fa();\n            });\n        }\n    }, k);\n    e.exports = ja;\n});\n__d(\"PrivacyLiteFlyoutHelp\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"ContextualHelpSearchController\",\"CSS\",\"DOM\",\"Parent\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ContextualHelpSearchController\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Parent\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"cx\"), q, r;\n    function s(t, u, v, w, x) {\n        this._width = 315;\n        r = l.JSBNG__find(u, \"input\");\n        var y = l.create(\"div\");\n        this.init(t, r, y, v, w);\n        q = m.byClass(u, \"_8-a\");\n        g.listen(x, \"click\", this._hideSearch.bind(this));\n        h.subscribe(\"PrivacyLiteFlyout/expandingSection\", this._hideSearch.bind(this));\n        var z = l.scry(q, \"._d1r\")[0];\n        ((z && g.listen(z, \"click\", function() {\n            k.addClass(q, \"_aw6\");\n            r.JSBNG__focus();\n            if (!this.suggestedResults) {\n                new i(\"/ajax/privacy/privacy_lite/help_suggestions\").setHandler(function(aa) {\n                    var ba = aa.getPayload().searchSuggestions, ca = l.JSBNG__find(q, \"._4_8m\");\n                    l.setContent(ca, ba);\n                    k.addClass(q, \"_4_8l\");\n                }.bind(this)).send();\n            }\n        ;\n        ;\n        }.bind(this))));\n    };\n;\n    n(s.prototype, new j(), {\n        source: \"privacy_shortcuts\",\n        _hideSearch: function() {\n            this.clearResults();\n            k.removeClass(q, \"_aw6\");\n        },\n        show: function(t) {\n            if (((t === this.topics_area))) {\n                k.removeClass(q, \"_aw7\");\n                return;\n            }\n             else if (((t === this.loader))) {\n                k.addClass(q, \"_aw7\");\n                k.hide(this.results_area);\n            }\n             else k.hide(this.loader);\n            \n        ;\n        ;\n            k.show(t);\n        }\n    });\n    e.exports = s;\n});\n__d(\"LayerSlowlyFadeOnShow\", [\"Class\",\"LayerFadeOnShow\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"LayerFadeOnShow\"), i = b(\"emptyFunction\");\n    function j(k) {\n        this.parent.construct(this, k);\n    };\n;\n    g.extend(j, h);\n    j.prototype._getDuration = i.thatReturns(500);\n    e.exports = j;\n});\n__d(\"PrivacyLiteNUXController\", [\"AsyncRequest\",\"CSS\",\"JSBNG__Event\",\"LayerSlowlyFadeOnShow\",\"Locale\",\"ModalMask\",\"PageTransitions\",\"Parent\",\"PrivacyLiteFlyout\",\"Toggler\",\"$\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"JSBNG__Event\"), j = b(\"LayerSlowlyFadeOnShow\"), k = b(\"Locale\"), l = b(\"ModalMask\"), m = b(\"PageTransitions\"), n = b(\"Parent\"), o = b(\"PrivacyLiteFlyout\"), p = b(\"Toggler\"), q = b(\"$\"), r = b(\"copyProperties\"), s = b(\"cx\"), t = \"_3oye\", u = \"_1luv\", v = [], w = {\n        bootload: function() {\n        \n        },\n        init: function(y) {\n            if (!w.initialized) {\n                r(this, {\n                    dialog: y.dialog,\n                    sectionID: y.sectionID,\n                    subsectionID: y.subsectionID,\n                    initialized: true,\n                    tourStarted: false\n                });\n            }\n        ;\n        ;\n            if (y.showOnExpand) {\n                w._attachFlyoutListener();\n            }\n             else w._detachFlyoutListener();\n        ;\n        ;\n        },\n        startTourFromAnywhere: function() {\n            w._startTour(false);\n        },\n        startTourFromMegaphone: function() {\n            w._startTour(true);\n        },\n        _startTour: function(y) {\n            if (w.tourStarted) {\n                return;\n            }\n        ;\n        ;\n            w.tourStarted = true;\n            w._detachFlyoutListener();\n            new g(\"/ajax/privacy/privacy_lite/log_nux_imp\").setData({\n                from_megaphone: y\n            }).send();\n            l.show();\n            h.conditionClass(w.dialog.getRoot(), t, y);\n            if (!y) {\n                w._maskListener = i.listen(q(\"modalMaskOverlay\"), \"click\", w._cleanup);\n            }\n        ;\n        ;\n            p.setSticky(true);\n            JSBNG__setTimeout(w._showFlyout);\n            m.registerHandler(function() {\n                w._cleanup();\n                o.setFlyoutVisible(false);\n            }, 10);\n        },\n        _showFlyout: function() {\n            o.loadBody(true);\n            o.setFlyoutVisible(true);\n            w._initDialog();\n            x(\"load\", w._showTour);\n        },\n        _showTour: function() {\n            o.showSection(w.sectionID);\n            x(\"expanded\", function(y, z) {\n                if (((z === w.sectionID))) {\n                    w.dialog.setContext(q(w.subsectionID)).setOffsetY(20).show();\n                }\n            ;\n            ;\n            });\n            x([\"collapse\",\"hide\",], w._cleanup);\n        },\n        _initDialog: function() {\n            var y = w.dialog.getRoot(), z = w.dialog.getContent();\n            h.addClass(y, \"_1luy\");\n            h.conditionClass(y, \"_3qz8\", k.isRTL());\n            h.addClass(z, \"_1luz\");\n            w.dialog.enableBehavior(j);\n            i.listen(y, \"click\", function(JSBNG__event) {\n                if (n.byClass(JSBNG__event.getTarget(), u)) {\n                    w._cleanup();\n                }\n            ;\n            ;\n            });\n        },\n        _attachFlyoutListener: function() {\n            if (!w.flyoutSubscription) {\n                if (o.isFlyoutVisible()) {\n                    w.startTourFromAnywhere();\n                }\n                 else w.flyoutSubscription = o.subscribe(\"show\", w.startTourFromAnywhere);\n            ;\n            }\n        ;\n        ;\n        },\n        _detachFlyoutListener: function() {\n            if (w.flyoutSubscription) {\n                w.flyoutSubscription.unsubscribe();\n                w.flyoutSubscription = null;\n            }\n        ;\n        ;\n        },\n        _cleanup: function() {\n            if (!w.tourStarted) {\n                return;\n            }\n        ;\n        ;\n            w.tourStarted = false;\n            p.setSticky(false);\n            l.hide();\n            w.dialog.hide();\n            while (v.length) {\n                v.pop().unsubscribe();\n            ;\n            };\n        ;\n            if (w._maskListener) {\n                w._maskListener.remove();\n                w._maskListener = null;\n            }\n        ;\n        ;\n        }\n    };\n    function x(y, z) {\n        v.push(o.subscribe(y, z));\n    };\n;\n    e.exports = w;\n});\n__d(\"ViewasChromeBar\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Focus\",\"ModalMask\",\"PageTransitions\",\"Parent\",\"cx\",\"csx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"ModalMask\"), n = b(\"PageTransitions\"), o = b(\"Parent\"), p = b(\"cx\"), q = b(\"csx\"), r = \"ViewasChromeBar/initialized\", s = null, t = false;\n    function u(x) {\n        h.subscribe(r, x);\n    };\n;\n    function v(x) {\n        j.addClass(x, \"_7g7\");\n        var y = k.JSBNG__find(x, \"._7g0\");\n        l.set(k.JSBNG__find(y, \".textInput\"));\n    };\n;\n    var w = {\n        initChromeBar: function(x) {\n            if (t) {\n                return;\n            }\n        ;\n        ;\n            s = x;\n            t = true;\n            h.inform(r, null, h.BEHAVIOR_STATE);\n        },\n        update: function(x, y) {\n            u(function() {\n                k.setContent(s, x);\n                if (y) {\n                    new i(\"/ajax/privacy/glasgow/viewas_bar_flyout_open\").send();\n                }\n            ;\n            ;\n            });\n        },\n        registerSpecificModeOnClick: function(x) {\n            g.listen(x, \"click\", v.curry(o.byClass(x, \"_7f-\")));\n        },\n        registerFlyoutModalMask: function() {\n            m.show();\n            n.registerHandler(m.hide, 10);\n        }\n    };\n    e.exports = w;\n});\n__d(\"BingScalingCommon\", [], function(a, b, c, d, e, f) {\n    var g = {\n        integrateWebsuggestions: function(h, i, j, k, l) {\n            var m = [], n = ((i ? m : [])), o = [], p = 0, q = 0, r = j;\n            k = Math.floor(((j * k)));\n            for (var s = 0; ((s < h.length)); s++) {\n                var t = h[s];\n                if (((((t.type === \"websuggestion\")) && !t.isSeeMore))) {\n                    if (((((((r > 0)) && ((p < k)))) || ((((p > 0)) && ((p < l))))))) {\n                        n.push(t);\n                        p++;\n                        r--;\n                    }\n                     else if (((r > 0))) {\n                        o.push(t);\n                    }\n                    \n                ;\n                ;\n                }\n                 else {\n                    if (((((r <= 0)) && !i))) {\n                        continue;\n                    }\n                ;\n                ;\n                    m.push(t);\n                    q++;\n                    r--;\n                }\n            ;\n            ;\n            };\n        ;\n            if (((((r > 0)) && ((o.length > 0))))) {\n                n = n.concat(o.slice(0, r));\n            }\n        ;\n        ;\n            if (!i) {\n                return m.concat(n);\n            }\n        ;\n        ;\n            return n;\n        }\n    };\n    e.exports = g;\n});\n__d(\"TypeaheadSearchSponsoredUtils\", [], function(a, b, c, d, e, f) {\n    function g(o) {\n        return ((o.selected_target_id != o.s_target));\n    };\n;\n    function h(o, p) {\n        return Math.min(p.maxNumberAds, ((((p.maxNumberRemovedResults + p.maxNumberResultsAndAds)) - o)));\n    };\n;\n    function i(o, p) {\n        var q = {\n        };\n        for (var r = ((o.length - 1)); ((r >= 0)); --r) {\n            var s = o[r];\n            q[s] = s;\n            if (p.hasOwnProperty(s)) {\n                p[s].forEach(function(t) {\n                    q[t] = s;\n                });\n            }\n        ;\n        ;\n        };\n    ;\n        return q;\n    };\n;\n    function j(o, p, q) {\n        for (var r = p; ((r < o.length)); r++) {\n            ((o[r].setDebugString && o[r].setDebugString(q)));\n        ;\n        };\n    ;\n    };\n;\n    function k(o, p) {\n        return ((p.indexOf(String(o)) != -1));\n    };\n;\n    function l(o, p, q, r) {\n        if (n.isSelfPromoted(o)) {\n            return false;\n        }\n    ;\n    ;\n        if (((((q + p.length)) < r.maxNumberResultsAndAds))) {\n            return false;\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    function m(o, p, q, r) {\n        var s = o[((o.length - 1))];\n        if (p.hasOwnProperty(s)) {\n            return false;\n        }\n    ;\n    ;\n        if (((s == q))) {\n            return false;\n        }\n    ;\n    ;\n        if (((s == r))) {\n            return false;\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    var n = {\n        isSelfPromoted: function(o) {\n            return ((o.uid == o.s_target));\n        },\n        prepareAndSortAds: function(o, p, q) {\n            if (!p) {\n                return [];\n            }\n        ;\n        ;\n            var r = [], s = o.length, t = {\n            };\n            for (var u = 0; ((u < s)); u++) {\n                var v = o[u];\n                t[v.uid] = true;\n                if (v.s_categories) {\n                    v.s_categories.forEach(function(z) {\n                        t[z] = true;\n                    });\n                }\n            ;\n            ;\n            };\n        ;\n            {\n                var fin184keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin184i = (0);\n                var w;\n                for (; (fin184i < fin184keys.length); (fin184i++)) {\n                    ((w) = (fin184keys[fin184i]));\n                    {\n                        if (p[w]) {\n                            {\n                                var fin185keys = ((window.top.JSBNG_Replay.forInKeys)((p[w]))), fin185i = (0);\n                                var x;\n                                for (; (fin185i < fin185keys.length); (fin185i++)) {\n                                    ((x) = (fin185keys[fin185i]));\n                                    {\n                                        var y = p[w][x];\n                                        if (((q && q.hasOwnProperty(y.uid)))) {\n                                            continue;\n                                        }\n                                    ;\n                                    ;\n                                        r.push(y);\n                                    };\n                                };\n                            };\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            r.sort(function(z, aa) {\n                return ((aa.s_value - z.s_value));\n            });\n            return r;\n        },\n        selectAds: function(o, p, q, r, s) {\n            var t = [], u = {\n            }, v = {\n            }, w = {\n            }, x = 0, y = h(o.length, r), z = i(o, p);\n            for (var aa = 0; ((aa < q.length)); aa++) {\n                if (((t.length >= y))) {\n                    j(q, aa, ((((\"filtered: \" + y)) + \" ads already selected\")));\n                    break;\n                }\n            ;\n            ;\n                var ba = q[aa], ca = ((z[ba.s_target] || ba.s_target));\n                ba.selected_target_id = ca;\n                if (!k(ca, o)) {\n                    ((ba.setDebugString && ba.setDebugString(((((((((\"filtered: targeted organic \" + ca)) + \" does not exist. \")) + \"promoted id \")) + ba.uid)))));\n                    continue;\n                }\n            ;\n            ;\n                if (((l(ba, o, x, r) && !m(o, v, ca, s)))) {\n                    ((ba.setDebugString && ba.setDebugString(\"filtered: last organic need but cannot be removed\")));\n                    continue;\n                }\n            ;\n            ;\n                if (((!n.isSelfPromoted(ba) && ((o.indexOf(String(ba.uid)) != -1))))) {\n                    ((ba.setDebugString && ba.setDebugString(((((((\"filtered: organic \" + ba.uid)) + \" targets another organic \")) + ca)))));\n                    continue;\n                }\n            ;\n            ;\n                if (u.hasOwnProperty(ba.s_account)) {\n                    ((ba.setDebugString && ba.setDebugString(((((\"filtered: ad account \" + ba.s_account)) + \" already selected\")))));\n                    continue;\n                }\n            ;\n            ;\n                if (w.hasOwnProperty(ba.uid)) {\n                    ((ba.setDebugString && ba.setDebugString(((((\"filtered: ad promoted id \" + ba.uid)) + \" already selected\")))));\n                    continue;\n                }\n            ;\n            ;\n                ((ba.setDebugString && ba.setDebugString(\"selected\")));\n                t.push(ba);\n                u[ba.s_account] = true;\n                v[ca] = true;\n                w[ba.uid] = true;\n                if (!n.isSelfPromoted(ba)) {\n                    ++x;\n                    if (((((x + o.length)) > r.maxNumberResultsAndAds))) {\n                        o.pop();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            return t;\n        },\n        hasTopResult: function(o, p, q) {\n            if (((o == null))) {\n                return false;\n            }\n        ;\n        ;\n            if (((o.type == \"user\"))) {\n                return false;\n            }\n        ;\n        ;\n            if (((o.type == \"grammar\"))) {\n                return false;\n            }\n        ;\n        ;\n            if (((o.score > q.v0))) {\n                return true;\n            }\n        ;\n        ;\n            if (((o.s_value > q.v3))) {\n                return true;\n            }\n        ;\n        ;\n            if (((o.s_value > p.s_value))) {\n                return true;\n            }\n        ;\n        ;\n            var r = ((g(p) ? q.v4 : ((o.bootstrapped ? q.v1 : q.v2))));\n            if (((r < p.s_value))) {\n                return false;\n            }\n        ;\n        ;\n            return true;\n        },\n        setOrganicECPM: function(o, p) {\n            if (((o == null))) {\n                return;\n            }\n        ;\n        ;\n            for (var q = 0; ((q < p.length)); q++) {\n                if (o.hasOwnProperty(p[q].uid)) {\n                    p[q].s_value = o[p[q].uid];\n                }\n            ;\n            ;\n            };\n        ;\n            return;\n        },\n        buildResultIndices: function(o) {\n            var p = {\n            }, q = o.length;\n            for (var r = 0; ((r < q)); r++) {\n                p[o[r].uid] = r;\n            ;\n            };\n        ;\n            return p;\n        },\n        getTopAdPosition: function(o, p, q) {\n            if (((o.length < 1))) {\n                return null;\n            }\n        ;\n        ;\n            if (((p.length < 1))) {\n                return null;\n            }\n        ;\n        ;\n            if (((((o[0].type == \"user\")) || ((o[0].type == \"grammar\"))))) {\n                for (var r = 1; ((r < o.length)); ++r) {\n                    if (((o[r].type != o[0].type))) {\n                        return r;\n                    }\n                ;\n                ;\n                };\n            ;\n                return o.length;\n            }\n        ;\n        ;\n            if (n.hasTopResult(o[0], p[0], q)) {\n                return 1;\n            }\n        ;\n        ;\n            return 0;\n        }\n    };\n    e.exports = n;\n});\n__d(\"TypeaheadSearchSponsored\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"copyProperties\",\"TypeaheadSearchSponsoredUtils\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"URI\"), l = b(\"copyProperties\"), m = b(\"TypeaheadSearchSponsoredUtils\"), n = b(\"tx\");\n    function o(p) {\n        this._typeahead = p;\n    };\n;\n    o.prototype.enable = function() {\n        this._data = this._typeahead.getData();\n        this._dataSubscriptions = [this._data.subscribe(\"beginFetchHandler\", function(p, q) {\n            var r = q.response.getPayload();\n            if (r.s_entries) {\n                this._sponsoredEntries = ((this._sponsoredEntries || {\n                }));\n                var s = r.s_entries.length;\n                for (var t = 0; ((t < s)); t++) {\n                    var u = new o.Ad();\n                    l(u, r.s_entries[t]);\n                    var v = u.s_target;\n                    if (!this._sponsoredEntries[v]) {\n                        this._sponsoredEntries[v] = {\n                        };\n                    }\n                ;\n                ;\n                    this._sponsoredEntries[v][u.uid] = u;\n                };\n            ;\n                if (r.s_bootstrap_id) {\n                    this._sBootstrapID = r.s_bootstrap_id;\n                }\n            ;\n            ;\n                if (r.organic_s_value) {\n                    this._organicECPM = l(this._organicECPM, r.organic_s_value);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }.bind(this)),];\n        if (o.auctionOptions.bootstrap) {\n            this._dataSubscriptions.push(this._data.subscribe(\"JSBNG__onload\", function(p, q) {\n                var r = l(this.bootstrapData, {\n                    no_cache: 1,\n                    options: [\"sponsored\",]\n                });\n                this.fetch(this.bootstrapEndpoint, r, {\n                    type: \"sponsored\"\n                });\n            }.bind(this._data)));\n        }\n    ;\n    ;\n        this._view = this._typeahead.getView();\n        this._viewSubscriptions = [this._view.subscribe(\"finalResultsReordering\", function(p, q) {\n            o.query = q.value;\n            m.setOrganicECPM(this._organicECPM, q.results);\n            var r = o.getOriginalOrganics(q.results);\n            o.setAuctionOptions({\n                maxNumberResultsAndAds: Math.max(q.results.length, ((((this._data && this._data._maxResults)) || o.auctionOptions.maxNumberResultsAndAds)))\n            });\n            var s = this.runAuction(q.results, this._sponsoredEntries, this._hiddenSponsoredEntities, o.auctionOptions), t = m.prepareAndSortAds(q.results, this._sponsoredEntries, this._hiddenSponsoredEntities), u = t.map(function(y) {\n                return y.s_token;\n            }), v = [];\n            for (var w = 0; ((w < s.length)); w++) {\n                var x = s[w];\n                if (x.s_token) {\n                    v.push({\n                        position: w,\n                        is_self: x.is_self\n                    });\n                }\n            ;\n            ;\n            };\n        ;\n            this._view.inform(\"recordAfterReorder\", {\n                organic: r,\n                tokens: u,\n                position_data: v,\n                s_bootstrap_id: this._sBootstrapID,\n                options: o.auctionOptions,\n                variant: o.auctionOptions.rerankingStrategy\n            });\n            q.results = s;\n            this._data.inform(\"recordAuctionState\", {\n                organic: r,\n                auctionOptions: o.auctionOptions,\n                event_data: q\n            });\n        }.bind(this)),this._view.subscribe(\"highlight\", function(p, q) {\n            if (this._view.JSBNG__content) {\n                j.scry(this._view.JSBNG__content, \"a.report\").forEach(i.hide);\n            }\n        ;\n        ;\n            if (((((!q.element || !q.selected)) || !q.selected.s_token))) {\n                return;\n            }\n        ;\n        ;\n            var r = j.scry(q.element, \"a.report\");\n            if (r.length) {\n                i.show(r[0]);\n            }\n             else j.appendContent(q.element, this._createHideAdLink(q.selected));\n        ;\n        ;\n        }.bind(this)),];\n        this._globalSubscriptions = [h.subscribe(\"TypeaheadSearchSponsored/hideAdResult\", function(p, q) {\n            this._hiddenSponsoredEntities = ((this._hiddenSponsoredEntities || {\n            }));\n            this._hiddenSponsoredEntities[q.uid] = true;\n            this._hideReasonDialog = q.reason_dialog;\n            this._forceRefreshResults();\n        }.bind(this)),h.subscribe(\"TypeaheadSearchSponsored/undoHideAdResult\", function(p, q) {\n            if (this._hiddenSponsoredEntities) {\n                delete this._hiddenSponsoredEntities[q.uid];\n            }\n        ;\n        ;\n            if (this._hideReasonDialog) {\n                this._hideReasonDialog.hide();\n                this._hideReasonDialog = null;\n            }\n        ;\n        ;\n            this._forceRefreshResults();\n        }.bind(this)),];\n    };\n    o.prototype.disable = function() {\n        this._dataSubscriptions.forEach(this._data.unsubscribe.bind(this._data));\n        this._dataSubscriptions = null;\n        this._viewSubscriptions.forEach(this._view.unsubscribe.bind(this._view));\n        this._viewSubscriptions = null;\n        this._globalSubscriptions.forEach(h.unsubscribe.bind(h));\n        this._globalSubscriptions = null;\n        this._data = null;\n        this._view = null;\n        this._sponsoredEntries = null;\n    };\n    o.prototype.runAuction = function(p, q, r, s) {\n        if (((p.length === 0))) {\n            return p;\n        }\n    ;\n    ;\n        p = o.initResults(p);\n        if (!q) {\n            return p;\n        }\n    ;\n    ;\n        var t = m.prepareAndSortAds(p, q, r);\n        if (this._typeahead) {\n            var u = this._typeahead.getData();\n            u.inform(\"recordAuctionState\", {\n                sorted_ads: t\n            });\n        }\n    ;\n    ;\n        var v = {\n        }, w = p.map(function(ba) {\n            if (ba.s_categories) {\n                v[ba.uid] = ba.s_categories;\n            }\n        ;\n        ;\n            return String(ba.uid);\n        }), x = m.selectAds(w, v, t, s);\n        if (((x.length === 0))) {\n            return p;\n        }\n    ;\n    ;\n        if (m.hasTopResult(p[0], x[0], s)) {\n            o.setTopResult(p);\n        }\n    ;\n    ;\n        var y = 0;\n        for (var z = 0; ((z < x.length)); ++z) {\n            if (!m.isSelfPromoted(x[z])) {\n                y++;\n            }\n        ;\n        ;\n        };\n    ;\n        p.length = Math.min(p.length, ((s.maxNumberResultsAndAds - y)));\n        var aa = o.rerankAds(p, x, s);\n        return aa;\n    };\n    o.prototype._forceRefreshResults = function() {\n        if (((this._data && this._data.value))) {\n            this._data.respond(this._data.value, this._data.buildUids(this._data.value));\n        }\n    ;\n    ;\n    };\n    o.prototype._createHideAdLink = function(p) {\n        var q = new k(\"/ajax/emu/end.php\").addQueryData({\n            eid: p.s_token,\n            f: 0,\n            ui: ((\"typeahead_\" + p.s_token.replace(\".\", \"_\"))),\n            en: \"fad_hide\",\n            ed: \"true\",\n            a: 1\n        }).toString(), r = {\n            className: \"report\",\n            rel: \"dialog-post\",\n            href: \"#\",\n            ajaxify: q,\n            title: \"Hide the ad\"\n        }, s = j.create(\"a\", r);\n        g.listen(s, \"mouseover\", function(JSBNG__event) {\n            this._view.index = -1;\n            this._view.highlight(-1, false);\n            JSBNG__event.kill();\n        }.bind(this));\n        return s;\n    };\n    o.auctionOptions = {\n    };\n    o.query = null;\n    o.getOriginalOrganics = function(p) {\n        return p.map(function(q) {\n            return {\n                uid: q.uid,\n                text: q.text,\n                type: o.getRealType(q),\n                source: ((q.bootstrapped ? 1 : 0)),\n                index: q.index,\n                s_value: ((q.s_value || 0)),\n                s_categories: ((q.s_categories || [])),\n                score: q.score\n            };\n        });\n    };\n    o.setTopResult = function(p) {\n        p[0].renderTypeOverride = true;\n        p[0].orig_render_type = p[0].render_type;\n        p[0].render_type = \"tophit\";\n    };\n    o.finalizeAd = function(p, q, r) {\n        var s = \"Sponsored\";\n        p.rankType = ((((p.rankType || p.render_type)) || p.type));\n        if (m.isSelfPromoted(p)) {\n            q.s_token = p.s_token;\n            q.message = p.s_message;\n            if (((r.rerankingStrategy === 0))) {\n                q.subtextOverride = ((q.subtext ? ((((q.subtext + \" \\u00b7 \")) + s)) : s));\n            }\n        ;\n        ;\n            if (p.path) {\n                q.pathOverride = true;\n                q.orig_path = q.path;\n                q.path = p.path;\n            }\n        ;\n        ;\n            q.is_self = true;\n        }\n         else {\n            p.message = p.s_message;\n            p.subtextOverride = null;\n            if (((r.rerankingStrategy === 0))) {\n                p.subtextOverride = ((p.subtext ? ((((p.subtext + \" \\u00b7 \")) + s)) : s));\n            }\n        ;\n        ;\n            if (r.debug) {\n                if (((!p.subtextOverride && p.subtext))) {\n                    p.subtextOverride = p.subtext;\n                }\n            ;\n            ;\n                if (p.subtextOverride) {\n                    p.subtextOverride += ((((\" \\u00b7 (Debug: \" + q.text)) + \")\"));\n                }\n                 else p.subtextOverride = ((((\"(Debug: \" + q.text)) + \")\"));\n            ;\n            ;\n            }\n        ;\n        ;\n            p.type = q.type;\n            p.render_type = q.render_type;\n            p.is_self = false;\n        }\n    ;\n    ;\n    };\n    o.promoteSelfPromotedResultToTop = function(p, q, r, s) {\n        var t = p[q];\n        if (((q < r))) {\n            var u = \"Sponsored\";\n            t.subtextOverride = ((t.subtext ? ((((t.subtext + \" \\u00b7 \")) + u)) : u));\n            return;\n        }\n    ;\n    ;\n        if (((q > r))) {\n            p.splice(r, 0, p.splice(q, 1)[0]);\n        }\n    ;\n    ;\n        t = p[r];\n        t.renderTypeOverride = true;\n        t.orig_render_type = t.render_type;\n        t.render_type = \"ownsection\";\n    };\n    o.insertAdToTop = function(p, q, r, s) {\n        p.splice(r, 0, q);\n        q.render_type = \"ownsection\";\n    };\n    o.rerankMethod5 = function(p, q, r) {\n        if (((r.rerankingStrategy != 5))) {\n            return;\n        }\n    ;\n    ;\n        var s = m.getTopAdPosition(p, q, r), t = m.buildResultIndices(p);\n        for (var u = ((q.length - 1)); ((u >= 0)); u--) {\n            var v = q[u], w = t[v.selected_target_id], x = p[w];\n            o.finalizeAd(v, x, r);\n            if (m.isSelfPromoted(v)) {\n                o.promoteSelfPromotedResultToTop(p, w, s, r);\n            }\n             else o.insertAdToTop(p, v, s, r);\n        ;\n        ;\n            t = m.buildResultIndices(p);\n        };\n    ;\n    };\n    o.rerankAds = function(p, q, r) {\n        switch (r.rerankingStrategy) {\n          case 5:\n            o.rerankMethod5(p, q, r);\n            break;\n          default:\n            break;\n        };\n    ;\n        p.length = Math.min(p.length, r.maxNumberResultsAndAds);\n        return p;\n    };\n    o.initResults = function(p) {\n        var q = p.length;\n        for (var r = 0; ((r < q)); r++) {\n            var s = p[r];\n            s.is_self = null;\n            s.s_token = null;\n            s.message = null;\n            s.subtextOverride = null;\n            if (s.pathOverride) {\n                s.path = s.orig_path;\n                s.pathOverride = false;\n            }\n        ;\n        ;\n            if (s.renderTypeOverride) {\n                s.render_type = s.orig_render_type;\n                s.renderTypeOverride = false;\n            }\n        ;\n        ;\n            s.rankType = ((((s.rankType || s.render_type)) || s.type));\n        };\n    ;\n        return p;\n    };\n    o.setAuctionOptions = function(p) {\n        l(o.auctionOptions, p);\n    };\n    o.getRealType = function(p) {\n        if (p.renderTypeOverride) {\n            return ((p.orig_render_type || p.type));\n        }\n    ;\n    ;\n        return ((p.render_type || p.type));\n    };\n    o.hideAdResult = function(p, q) {\n        h.inform(\"TypeaheadSearchSponsored/hideAdResult\", {\n            uid: p,\n            reason_dialog: q\n        });\n    };\n    o.undoHideAdResult = function(p) {\n        h.inform(\"TypeaheadSearchSponsored/undoHideAdResult\", {\n            uid: p\n        });\n    };\n    o.Ad = function() {\n    \n    };\n    l(o.prototype, {\n        _dataSubscriptions: null,\n        _viewSubscriptions: null,\n        _globalSubscriptions: null,\n        _data: null,\n        _view: null,\n        _sponsoredEntries: null,\n        _hiddenSponsoredEntities: null,\n        _hideReasonDialog: null,\n        _sBootstrapID: null,\n        _organicECPM: null\n    });\n    e.exports = o;\n});\n__d(\"legacy:SearchSponsoredTypeaheadBehavior\", [\"TypeaheadSearchSponsored\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadSearchSponsored\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.searchSponsored = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"legacy:TypeaheadSearchSponsored\", [\"TypeaheadSearchSponsored\",], function(a, b, c, d) {\n    a.TypeaheadSearchSponsored = b(\"TypeaheadSearchSponsored\");\n}, 3);\n__d(\"SearchDataSource\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncResponse\",\"DataSource\",\"HashtagSearchResultUtils\",\"copyProperties\",\"createArrayFrom\",\"BingScalingCommon\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncResponse\"), j = b(\"DataSource\"), k = b(\"HashtagSearchResultUtils\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\"), n = b(\"BingScalingCommon\"), o = ((((j === null)) ? null : j.prototype));\n    p.prototype = Object.create(o);\n    p.prototype.constructor = p;\n    p.__superConstructor__ = j;\n    function p(q) {\n        this._token = ((q.token || \"\"));\n        this._lazyonload = ((((q.lazyonload === false)) ? false : true));\n        this._extraTypes = q.extraTypes;\n        this._buckets = q.buckets;\n        this._noMultiFetch = ((q.noMultiFetch || false));\n        this._maxWebSuggToCountFetchMore = ((q.maxWebSuggToCountFetchMore || 0));\n        var r = ((q.maxResults || 8));\n        j.call(this, q);\n        this._numResults = {\n            min: 3,\n            max: r\n        };\n        this.recordingRoute = ((q.recordingRoute || \"non_banzai\"));\n        this._enabledHashtag = ((q.enabledHashtag || false));\n        this.logBackendQueriesWindow = ((q.logBackendQueriesWindow || 25));\n        this._minWebSugg = ((q.minWebSugg || 2));\n        this._queryToWebSuggState = {\n        };\n        this._genTime = q.genTime;\n    };\n;\n    p.prototype.init = function() {\n        o.init.call(this);\n        this._leanPayload = null;\n        this._bootstrapRequestsPending = 0;\n        this._criticalOnly = true;\n        this._updateMaxResults();\n        g.listen(window, \"resize\", this._updateMaxResults.bind(this));\n        this.complexChars = new RegExp(\"[\\uff66-\\uffdd\\u4e00-\\u9fcc\\u3400-\\u4dbf]\");\n    };\n    p.prototype.dirty = function() {\n        o.dirty.call(this);\n        this._fetchOnUseRequests = [];\n    };\n    p.prototype.asyncErrorHandler = function(q) {\n        if (((((window.Dialog && ((window.Dialog.getCurrent() == null)))) && ((q.getError() == 1400003))))) {\n            i.verboseErrorHandler(q);\n        }\n    ;\n    ;\n    };\n    p.prototype.fetch = function(q, r, s) {\n        s = ((s || {\n        }));\n        s.fetch_start = JSBNG__Date.now();\n        o.fetch.call(this, q, r, s);\n    };\n    p.prototype.fetchHandler = function(q, r) {\n        var s = q.getPayload(), t = l({\n            fetch_end: JSBNG__Date.now()\n        }, r), u = ((t.value ? h.BEHAVIOR_EVENT : h.BEHAVIOR_PERSISTENT));\n        this.inform(\"beginFetchHandler\", {\n            response: q\n        });\n        if (((r.type == \"lean\"))) {\n            this._leanPayload = s;\n            this._processLean();\n        }\n         else {\n            if (s.coeff2_ts) {\n                t.coeff2_ts = s.coeff2_ts;\n            }\n        ;\n        ;\n            var v = {\n                limit: ((((typeof s.webSuggLimit !== \"undefined\")) ? s.webSuggLimit : 6)),\n                showOnTop: ((((typeof s.webSuggOnTop !== \"undefined\")) ? s.webSuggOnTop : false))\n            };\n            this._queryToWebSuggState[r.value] = v;\n            o.fetchHandler.call(this, q, r);\n            if (((r.bootstrap && !q.getRequest().getData().no_cache))) {\n                t.browserCacheHit = ((s.timestamp < this._genTime));\n            }\n        ;\n        ;\n            if (((((r.bootstrap && !s.no_data)) && ((this._bootstrapRequestsPending > 0))))) {\n                r.bootstrap = false;\n                --this._bootstrapRequestsPending;\n                ((!this._bootstrapRequestsPending && this._bootstrapPostProcess()));\n            }\n        ;\n        ;\n            if (((((s.no_data || s.stale)) || ((s.token !== this._token))))) {\n                var w = l({\n                }, q.getRequest().getData());\n                if (w.lazy) {\n                    delete w.lazy;\n                    w.token = this._token;\n                    this._fetchOnUse(w, r);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        this.inform(\"endpointStats\", t, u);\n    };\n    p.prototype.respond = function(q, r, s) {\n        this.inform(\"respondValidUids\", r);\n        this.inform(\"reorderResults\", r);\n        var t = this.buildData(r, q);\n        t.forEach(function(u, v) {\n            u.origIndex = v;\n        });\n        this.inform(\"respond\", {\n            value: q,\n            results: t,\n            isAsync: !!s\n        });\n        return t;\n    };\n    p.prototype.buildData = function(q, r) {\n        if (((!q || ((q.length === 0))))) {\n            return [];\n        }\n    ;\n    ;\n        var s = this.getWebSuggState(r), t = s.showOnTop, u = n.integrateWebsuggestions(q.map(this.getEntry.bind(this)), Boolean(t), this._maxResults, s.limit);\n        u.length = Math.min(u.length, this._maxResults);\n        return u;\n    };\n    p.prototype.getWebSuggState = function(q) {\n        while (q) {\n            var r = this._queryToWebSuggState[q];\n            if (((typeof r !== \"undefined\"))) {\n                return r;\n            }\n        ;\n        ;\n            q = q.slice(0, ((q.length - 1)));\n        };\n    ;\n        return {\n            limit: 0,\n            showOnTop: false\n        };\n    };\n    p.prototype._isQueryTooShort = function(q) {\n        return ((((q.length < this._minQueryLength)) && !((this.complexChars && this.complexChars.test(q)))));\n    };\n    p.prototype.shouldFetchMoreResults = function(q) {\n        var r = 0, s = 0;\n        q.forEach(function(t) {\n            if (((((t.type !== \"websuggestion\")) || ((s++ < this._maxWebSuggToCountFetchMore))))) {\n                r++;\n            }\n        ;\n        ;\n        }.bind(this));\n        return ((r < this._maxResults));\n    };\n    p.prototype._bootstrapPostProcess = function() {\n        var q = {\n            time: JSBNG__Date.now()\n        };\n        this.inform(\"bootstrapped\", q, h.BEHAVIOR_PERSISTENT);\n        this._processLean();\n    };\n    p.prototype._processLean = function() {\n        if (this._leanPayload) {\n            var q, r = this._leanPayload.entries;\n            {\n                var fin186keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin186i = (0);\n                var s;\n                for (; (fin186i < fin186keys.length); (fin186i++)) {\n                    ((s) = (fin186keys[fin186i]));\n                    {\n                        q = this.getEntry(s);\n                        ((q && (q.index = r[s])));\n                    };\n                };\n            };\n        ;\n            this.setExclusions(this._leanPayload.blocked);\n            this._leanPayload = null;\n        }\n    ;\n    ;\n    };\n    p.prototype._updateMaxResults = function() {\n        var q = ((window.JSBNG__innerHeight || JSBNG__document.documentElement.clientHeight));\n        this.setMaxResults(Math.max(this._numResults.min, Math.min(this._numResults.max, Math.ceil(((2 + ((((q - 370)) / 56))))))));\n    };\n    p.prototype._bootstrapFetch = function(q, r) {\n        var s = l(r, this.bootstrapData);\n        if (((this._criticalOnly && this._lazyonload))) {\n            s.lazy = 1;\n        }\n    ;\n    ;\n        this.fetch(this.bootstrapEndpoint, s, {\n            bootstrap: true,\n            type: q\n        });\n        ++this._bootstrapRequestsPending;\n    };\n    p.prototype._fetchOnUse = function(q, r) {\n        {\n            var fin187keys = ((window.top.JSBNG_Replay.forInKeys)((this.bootstrapData))), fin187i = (0);\n            var s;\n            for (; (fin187i < fin187keys.length); (fin187i++)) {\n                ((s) = (fin187keys[fin187i]));\n                {\n                    ((!q.hasOwnProperty(s) && (q[s] = this.bootstrapData[s])));\n                ;\n                };\n            };\n        };\n    ;\n        if (this._criticalOnly) {\n            this._fetchOnUseRequests.push({\n                args: q,\n                ctx: r\n            });\n        }\n         else this.fetch(this.bootstrapEndpoint, q, r);\n    ;\n    ;\n    };\n    p.prototype._fetchLean = function() {\n        var q = {\n            no_cache: 1\n        };\n        q.options = m(q.options);\n        q.options.push(\"lean\");\n        this._fetchOnUse(q, {\n            type: \"lean\"\n        });\n    };\n    p.prototype.bootstrap = function(q) {\n        if (!q) {\n            this._criticalOnly = false;\n            this._flushFetchOnUseRequests();\n        }\n    ;\n    ;\n        if (this._bootstrapped) {\n            return;\n        }\n    ;\n    ;\n        var r = {\n            filter: [\"JSBNG__event\",],\n            no_cache: 1\n        };\n        this._fetchOnUse(r, {\n            type: \"JSBNG__event\"\n        });\n        var s = [\"app\",\"page\",\"group\",\"friendlist\",];\n        s = s.concat(((this._extraTypes || [])));\n        if (this._noMultiFetch) {\n            s.push(\"user\");\n            this._bootstrapFetch(\"user\", {\n                filter: s\n            });\n        }\n         else {\n            this._bootstrapFetch(\"other\", {\n                filter: s\n            });\n            if (this._buckets) {\n                for (var t = 0; ((t < this._buckets.length)); ++t) {\n                    var u = {\n                        filter: [\"user\",],\n                        buckets: this._buckets[t]\n                    };\n                    this._bootstrapFetch(\"user\", u);\n                };\n            ;\n            }\n             else this._bootstrapFetch(\"user\", {\n                filter: [\"user\",]\n            });\n        ;\n        ;\n        }\n    ;\n    ;\n        this._fetchLean();\n        this._bootstrapped = true;\n    };\n    p.prototype._flushFetchOnUseRequests = function() {\n        var q = this._fetchOnUseRequests.length;\n        for (var r = 0; ((r < q)); ++r) {\n            var s = this._fetchOnUseRequests[r];\n            this.fetch(this.bootstrapEndpoint, s.args, s.ctx);\n        };\n    ;\n        if (((q > 0))) {\n            this.inform(\"extra_bootstrap\", {\n                time: JSBNG__Date.now()\n            }, h.BEHAVIOR_PERSISTENT);\n        }\n    ;\n    ;\n        this._fetchOnUseRequests = [];\n    };\n    p.prototype.onLoad = function(q, r) {\n        this.inform(\"JSBNG__onload\", {\n            time: JSBNG__Date.now()\n        }, h.BEHAVIOR_PERSISTENT);\n        if (q) {\n            this.bootstrap.bind(this, r).defer();\n        }\n    ;\n    ;\n    };\n    p.prototype.mergeUids = function(q, r, s, t) {\n        var u = this.getDynamicHashtagResult(t);\n        if (((((t && u)) && ((r.indexOf(u) <= 0))))) {\n            r.unshift(u);\n        }\n    ;\n    ;\n        var v = ((s[0] ? this.getEntry(s[0]) : null)), w = ((r[0] ? this.getEntry(r[0]) : null)), x = ((((v && v.replace_results)) ? v : null));\n        x = ((((((!x && w)) && w.replace_results)) ? w : x));\n        var y = o.mergeUids.call(this, q, r, s, t);\n        if (x) {\n            this.inform(\"backend_topreplace\", {\n            });\n            return this.deduplicateByKey([x.uid,].concat(y));\n        }\n    ;\n    ;\n        return y;\n    };\n    p.prototype.getTextToIndexFromFields = function(q, r) {\n        var s = [], t = ((q.tokenVersion === \"v2\"));\n        for (var u = 0; ((u < r.length)); ++u) {\n            if (((t && ((((r[u] === \"text\")) || ((r[u] === \"alias\"))))))) {\n                continue;\n            }\n        ;\n        ;\n            var v = q[r[u]];\n            if (v) {\n                s.push(((v.join ? v.join(\" \") : v)));\n            }\n        ;\n        ;\n        };\n    ;\n        return s.join(\" \");\n    };\n    p.prototype.getDynamicHashtagResult = function(q) {\n        if (((!q || !this._enabledHashtag))) {\n            return;\n        }\n    ;\n    ;\n        var r = k.getHashtagFromQuery(q);\n        if (!r) {\n            return;\n        }\n    ;\n    ;\n        var s = ((\"hashtag:\" + r)), t = this.getEntry(s);\n        if (!t) {\n            this.processEntries([k.makeTypeaheadResult(r),], q);\n        }\n    ;\n    ;\n        return s;\n    };\n    e.exports = p;\n});\n__d(\"legacy:SearchDataSource\", [\"SearchDataSource\",], function(a, b, c, d) {\n    a.SearchDataSource = b(\"SearchDataSource\");\n}, 3);\n__d(\"SearchTypeaheadCore\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"Class\",\"DOM\",\"Input\",\"Parent\",\"TypeaheadCore\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"DOM\"), k = b(\"Input\"), l = b(\"Parent\"), m = b(\"TypeaheadCore\"), n = b(\"copyProperties\"), o = ((((m === null)) ? null : m.prototype));\n    p.prototype = Object.create(o);\n    p.prototype.constructor = p;\n    p.__superConstructor__ = m;\n    function p(q) {\n        m.call(this, q);\n    };\n;\n    p.prototype.init = function(q, r, s) {\n        o.init.call(this, q, r, s);\n        var t = l.byTag(s, \"form\"), u = this.reset.bind(this);\n        h.subscribe(\"pre_page_transition\", function(JSBNG__event, w) {\n            var x = /^\\/search/, y = x.test(w.from.path), z = x.test(w.to.path);\n            if (((y && !z))) {\n                u.defer();\n            }\n        ;\n        ;\n        });\n        if (t) {\n            var v = j.JSBNG__find(t, \"input.search_sid_input\");\n            g.listen(t, \"submit\", function() {\n                if (((this.data && this.data.queryData))) {\n                    v.value = this.data.queryData.sid;\n                }\n            ;\n            ;\n                u.defer();\n            }.bind(this), g.Priority.URGENT);\n        }\n    ;\n    ;\n    };\n    p.prototype.select = function() {\n        this.reset();\n        this.element.JSBNG__focus();\n        (function() {\n            this.element.JSBNG__blur();\n        }).bind(this).defer();\n    };\n    p.prototype.handleTab = function(JSBNG__event) {\n        var q = this.view.getQuerySuggestion(this.value);\n        if (q) {\n            k.setValue(this.element, q);\n            this.checkValue();\n            JSBNG__event.kill();\n        }\n         else o.handleTab.call(this, JSBNG__event);\n    ;\n    ;\n    };\n    p.prototype.getSearchType = function() {\n        return \"regular\";\n    };\n    e.exports = p;\n});\n__d(\"legacy:SearchTypeaheadCore\", [\"SearchTypeaheadCore\",], function(a, b, c, d) {\n    a.SearchTypeaheadCore = b(\"SearchTypeaheadCore\");\n}, 3);\n__d(\"SearchTypeaheadView\", [\"Arbiter\",\"ContextualTypeaheadView\",\"ContextualLayerUpdateOnScroll\",\"copyProperties\",\"DOM\",\"goURI\",\"MusicConstants\",\"MusicEvents\",\"tx\",\"URI\",\"isEmail\",\"fbt\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ContextualTypeaheadView\"), i = b(\"ContextualLayerUpdateOnScroll\"), j = b(\"copyProperties\"), k = b(\"DOM\"), l = b(\"goURI\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"tx\"), p = b(\"URI\"), q = b(\"isEmail\"), r = b(\"fbt\"), s = ((((h === null)) ? null : h.prototype));\n    t.prototype = Object.create(s);\n    t.prototype.constructor = t;\n    t.__superConstructor__ = h;\n    function t(v, w) {\n        h.call(this, v, w);\n    };\n;\n    t.prototype.initializeLayer = function() {\n        s.initializeLayer.call(this);\n        this.layer.setOffsetY(-1);\n        this.layer.enableBehavior(i);\n    };\n    t.prototype.ignoreClick = function(JSBNG__event) {\n        JSBNG__event.prevent();\n    };\n    t.prototype.render = function(v, w, x) {\n        if (this._bucketize) {\n            w = u(w);\n        }\n    ;\n    ;\n        var y = {\n            results: w,\n            value: v\n        };\n        this.inform(\"finalResultsReordering\", y);\n        return s.render.call(this, v, y.results, x);\n    };\n    t.prototype.disableBucketization = function() {\n        this._bucketize = false;\n    };\n    t.prototype.buildBuckets = function(v, w) {\n        var x = w.length, y = 0, z;\n        for (z = 0; ((z < x)); ++z) {\n            if (((w[z].type == \"user\"))) {\n                y++;\n            }\n        ;\n        ;\n        };\n    ;\n        this._redirectToUsersResultsPage = ((this.showFilterResults && ((y === x))));\n        this.setWebSuggLoggingParams(v, w);\n        if (this._bucketize) {\n            w = s.buildBuckets.call(this, v, w);\n        }\n    ;\n    ;\n        if (((v && this._shouldShowSeeMore))) {\n            w.push(this.buildSeeMore(v, x));\n            if (((q(v) && ((y < 1))))) {\n                w.push(this.buildInvite(v));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return w;\n    };\n    t.prototype.buildSeeMore = function(v, w) {\n        var x = this.getSeeMoreText(v, w), y = ((((w == 1)) ? \"Displaying top result\" : o._(\"Displaying top {number} results\", {\n            number: w\n        }))), z = k.create(\"li\", {\n            className: \"calltoaction\"\n        }, [k.create(\"a\", {\n            href: this.getSeeMoreEndpoint(v),\n            rel: \"ignore\"\n        }, [k.create(\"span\", {\n            className: \"text\"\n        }, [k.create(\"span\", {\n            className: \"seeMore\"\n        }, [x,k.create(\"span\", {\n            className: \"arrow\"\n        }),]),k.create(\"span\", {\n            className: \"subtext\"\n        }, [y,]),]),]),]);\n        z.setAttribute(\"aria-label\", x);\n        return {\n            uid: \"search\",\n            node: z,\n            search: true\n        };\n    };\n    t.prototype.getSeeMoreText = function(v, w) {\n        if (this.showKeywordResultsPage) {\n            return r._(\"Search for {query}\", [r.param(\"query\", v),]);\n        }\n    ;\n    ;\n        if (((w <= 0))) {\n            return o._(\"See results for {query}\", {\n                query: v\n            });\n        }\n    ;\n    ;\n        if (this._redirectToUsersResultsPage) {\n            return r._(\"Filter results for {query}\", [r.param(\"query\", v),]);\n        }\n    ;\n    ;\n        return o._(\"See more results for {query}\", {\n            query: v\n        });\n    };\n    t.prototype.buildInvite = function(v) {\n        var w = o._(\"Invite {query} to Facebook\", {\n            query: v\n        }), x = k.create(\"li\", {\n            className: \"calltoaction\"\n        }, [k.create(\"a\", {\n            href: this.getInviteEndpoint(v),\n            rel: \"ignore\"\n        }, [k.create(\"span\", {\n            className: \"text\"\n        }, [k.create(\"span\", {\n            className: \"invite\"\n        }, [w,]),]),]),]);\n        x.setAttribute(\"aria-label\", w);\n        return {\n            uid: \"invite\",\n            node: x,\n            search: true\n        };\n    };\n    t.prototype.searchPageQueryData = function(v) {\n        return j({\n            q: v\n        }, ((this.queryData || {\n        })));\n    };\n    t.prototype.searchPageTypeData = function() {\n        return ((this._redirectToUsersResultsPage ? {\n            type: \"users\"\n        } : {\n        }));\n    };\n    t.prototype.select = function(v) {\n        var w = this.index, x = this.results[w];\n        if (((!x || ((x.type == \"header\"))))) {\n            return;\n        }\n    ;\n    ;\n        var y = this.items[w], z = k.scry(y, \"a\")[0];\n        if (x.song) {\n            if (z) {\n                n.inform(m.MUSIC_BUTTON.ACTIVATE, z);\n            }\n        ;\n        ;\n            ((v && this.inform(\"highlight\", {\n                index: w,\n                selected: x\n            })));\n        }\n         else {\n            s.select.call(this, v);\n            if (((z && z.href))) {\n                if (((z.target == \"_blank\"))) {\n                    window.open(z.href);\n                }\n                 else l(z.href);\n            ;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n    t.prototype.setSid = function(v) {\n        this.queryData.tas = v;\n    };\n    t.prototype.getSeeMoreEndpoint = function(v) {\n        return p(this.seeMoreEndpoint).addQueryData(this.searchPageQueryData(v)).addQueryData(this.searchPageTypeData()).toString();\n    };\n    t.prototype.getInviteEndpoint = function(v) {\n        return p(\"/invite.php\").addQueryData({\n            email_list: v\n        });\n    };\n    t.prototype.show = function() {\n        if (!this.isVisible()) {\n            g.inform(\"layer_shown\", {\n                type: \"SearchTypeahead\"\n            });\n            s.show.call(this);\n        }\n    ;\n    ;\n    };\n    t.prototype.hide = function() {\n        if (this.isVisible()) {\n            g.inform(\"layer_hidden\", {\n                type: \"SearchTypeahead\"\n            });\n            s.hide.call(this);\n        }\n    ;\n    ;\n    };\n    t.prototype.getQuerySuggestion = function(v) {\n        var w = this.results[this.index], x = ((((w && ((w.type != \"header\")))) ? w.text.toLowerCase() : \"\"));\n        return ((((x == v.toLowerCase())) ? \"\" : x));\n    };\n    t.prototype.setWebSuggLoggingParams = function(v, w) {\n        var x = 0, y = 0;\n        for (var z = 0; ((z < w.length)); z++) {\n            if (((w[z].type === \"websuggestion\"))) {\n                if (((y === 0))) {\n                    y = ((z + 1));\n                }\n            ;\n            ;\n                var aa = ((((((\"FR\" + ((z - x)))) + \"AS\")) + x)), ba = ((z + 1));\n                w[z].path += ((((((((((\"&wssk=\" + aa)) + \"&wssp=\")) + ba)) + \"&wspq=\")) + encodeURIComponent(v)));\n                w[z].path += ((\"&wssrc=\" + w[z].websuggestion_source));\n                x++;\n            }\n        ;\n        ;\n        };\n    ;\n        var ca = ((((((((((((((\"&wssc=\" + w.length)) + \"-\")) + v.length)) + \"&wsbp=\")) + x)) + \"-\")) + y));\n        for (z = 0; ((z < w.length)); z++) {\n            if (((w[z].type === \"websuggestion\"))) {\n                w[z].path += ca;\n            }\n        ;\n        ;\n        };\n    ;\n    };\n    function u(v) {\n        var w, x, y, z, aa = [], ba = {\n        };\n        x = v.length;\n        for (w = 0; ((w < x)); w++) {\n            y = v[w];\n            z = ((y.render_type || y.type));\n            if (!ba.hasOwnProperty(z)) {\n                ba[z] = aa.length;\n                aa.push([]);\n            }\n        ;\n        ;\n            aa[ba[z]].push(y);\n        };\n    ;\n        var ca = [];\n        x = aa.length;\n        for (w = 0; ((w < x)); ++w) {\n            y = aa[w][0];\n            z = ((y.render_type || y.type));\n            ca = ca.concat(aa[w]);\n        };\n    ;\n        return ca;\n    };\n;\n    j(t.prototype, {\n        _shouldShowSeeMore: true,\n        _bucketize: true,\n        queryData: {\n            init: \"quick\"\n        }\n    });\n    e.exports = t;\n});\n__d(\"legacy:SearchTypeaheadView\", [\"SearchTypeaheadView\",], function(a, b, c, d) {\n    a.SearchTypeaheadView = b(\"SearchTypeaheadView\");\n}, 3);\n__d(\"legacy:Typeahead\", [\"Typeahead\",], function(a, b, c, d) {\n    a.Typeahead = b(\"Typeahead\");\n}, 3);\n__d(\"SearchTypeaheadRecorder\", [\"JSBNG__Event\",\"AsyncRequest\",\"Banzai\",\"Keys\",\"TypeaheadUtil\",\"Vector\",\"ge\",\"clickRefAction\",\"copyProperties\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"Banzai\"), j = b(\"Keys\"), k = b(\"TypeaheadUtil\"), l = b(\"Vector\"), m = b(\"ge\"), n = b(\"clickRefAction\"), o = b(\"copyProperties\"), p = b(\"userAction\");\n    function q(s) {\n        this.init(s);\n        this.initEvents();\n    };\n;\n    q.prototype.init = function(s) {\n        this.core = s.getCore();\n        this.data = s.getData();\n        this.view = s.getView();\n        this.element = this.core.getElement();\n        this.initTime = JSBNG__Date.now();\n        this._onloadTime = 0;\n        this._extraRecorder = [];\n        var t = m(\"search_first_focus\");\n        this.initStartTime = ((t && t.value));\n        this.bootstrapStats = {\n            bootstrapped: 0\n        };\n        this._reset();\n    };\n    q.prototype._reset = function() {\n        this.stats = {\n        };\n        this.avgStats = {\n        };\n        this.appendStats = {\n        };\n        this._backspacing = false;\n        this.backendQueries = [];\n        this._topreplace = false;\n        this._inflightRequests = {\n        };\n        this._reorderInfo = null;\n        var s = Math.JSBNG__random().toString();\n        this.data.setQueryData({\n            sid: s\n        });\n        this.view.setSid(s);\n        this.recordStat(\"sid\", s);\n    };\n    q.prototype.initEvents = function() {\n        this.core.subscribe(\"JSBNG__focus\", function(JSBNG__event) {\n            if (!this.stats.session_start_time) {\n                this.recordStat(\"session_start_time\", JSBNG__Date.now());\n            }\n        ;\n        ;\n        }.bind(this));\n        this.core.subscribe(\"JSBNG__blur\", function(JSBNG__event) {\n            var s = JSBNG__Date.now();\n            {\n                var fin188keys = ((window.top.JSBNG_Replay.forInKeys)((this._inflightRequests))), fin188i = (0);\n                var t;\n                for (; (fin188i < fin188keys.length); (fin188i++)) {\n                    ((t) = (fin188keys[fin188i]));\n                    {\n                        var u = this._inflightRequests[t], v = ((s - u));\n                        this.recordAvgStat(\"search_endpoint_ms_from_js\", v);\n                    };\n                };\n            };\n        ;\n            this.recordStat(\"session_end_time\", s);\n            this.submit();\n        }.bind(this));\n        this.view.subscribe(\"select\", function(s, t) {\n            this.recordSelectInfo(t);\n        }.bind(this));\n        this.view.subscribe(\"render\", function(s, t) {\n            this.recordRender(t);\n        }.bind(this));\n        this.view.subscribe(\"recordAfterReorder\", function(s, t) {\n            this._reorderInfo = o(this._reorderInfo, t);\n        }.bind(this));\n        this.data.subscribe(\"activity\", function(s, t) {\n            this.recordStat(\"pending_request\", t.activity);\n        }.bind(this));\n        this.data.subscribe(\"respondValidUids\", function(s, t) {\n            this.validUids = t.slice(0);\n        }.bind(this));\n        this.data.subscribe(\"beforeQuery\", function(s, t) {\n            if (!t.value) {\n                this.query = \"\";\n                this.results = [];\n                return;\n            }\n        ;\n        ;\n            if (!this.stats.first_query_time) {\n                this.recordStat(\"first_query_time\", JSBNG__Date.now());\n            }\n        ;\n        ;\n            this.query = t.value;\n            this.recordCountStat(\"num_queries\");\n        }.bind(this));\n        this.data.subscribe(\"queryEndpoint\", function(s, t) {\n            this.recordCountStat(\"num_search_ajax_requests\");\n            this.recordAvgStat(\"endpoint_query_length\", t.value.length);\n            this._inflightRequests[t.value] = JSBNG__Date.now();\n        }.bind(this));\n        this.data.subscribe(\"JSBNG__onload\", function(s, t) {\n            this._onloadTime = t.time;\n        }.bind(this));\n        this.data.subscribe(\"bootstrapped\", function(s, t) {\n            this.bootstrapStats.endTime = t.time;\n            this.bootstrapStats.bootstrapped = 1;\n        }.bind(this));\n        this.core.subscribe(\"recordFunction\", function(s, t) {\n            this._extraRecorder.push(t);\n        }.bind(this));\n        this.data.subscribe(\"endpointStats\", function(s, t) {\n            var u = ((t.fetch_end - t.fetch_start));\n            if (t.value) {\n                this.recordAvgStat(\"search_endpoint_ms_from_js\", u);\n            }\n             else this.bootstrapStats[t.type] = u;\n        ;\n        ;\n            if (t.coeff2_ts) {\n                this.bootstrapStats.coeff2_ts = t.coeff2_ts;\n            }\n        ;\n        ;\n            if (((typeof t.browserCacheHit != \"undefined\"))) {\n                this.recordCountStat(((t.browserCacheHit ? \"bootstrap_cachehits\" : \"bootstrap_cachemisses\")));\n            }\n        ;\n        ;\n            if (this._inflightRequests[t.value]) {\n                delete this._inflightRequests[t.value];\n            }\n        ;\n        ;\n        }.bind(this));\n        this.data.subscribe(\"query\", function(s, t) {\n            this.recordAvgStat(\"num_results_from_cache\", t.results.length);\n        }.bind(this));\n        this.data.subscribe(\"backend_topreplace\", function(s, t) {\n            if (((false === this._topreplace))) {\n                this.recordStat(\"backend_topreplace\", 1);\n                this._topreplace = true;\n            }\n        ;\n        ;\n        }.bind(this));\n        g.listen(this.element, \"keydown\", function(JSBNG__event) {\n            if (((g.getKeyCode(JSBNG__event) == j.BACKSPACE))) {\n                if (((!this._backspacing && this.query))) {\n                    this._backspacing = true;\n                    this.recordAppendStat(\"before_backspace_queries\", this.query);\n                }\n            ;\n            ;\n            }\n             else this._backspacing = false;\n        ;\n        ;\n        }.bind(this));\n        this.data.subscribe(\"beforeFetch\", function(s, t) {\n            var u = t.request.data.value;\n            if (!u) {\n                return;\n            }\n        ;\n        ;\n            this.backendQueries.push(u);\n        }.bind(this));\n    };\n    q.prototype.recordStat = function(s, t) {\n        this.stats[s] = t;\n    };\n    q.prototype.recordCountStat = function(s) {\n        var t = this.stats[s];\n        this.stats[s] = ((t ? ((t + 1)) : 1));\n    };\n    q.prototype.recordAvgStat = function(s, t) {\n        if (this.avgStats[s]) {\n            this.avgStats[s][0] += t;\n            ++this.avgStats[s][1];\n        }\n         else this.avgStats[s] = [t,1,];\n    ;\n    ;\n    };\n    q.prototype.recordAppendStat = function(s, t) {\n        if (!this.appendStats.hasOwnProperty(s)) {\n            this.appendStats[s] = [];\n        }\n    ;\n    ;\n        this.appendStats[s].push(t);\n    };\n    q.prototype.recordRender = function(s) {\n        this.results = s.filter(function(u) {\n            return ((((((u.uid != \"search\")) && ((u.type != \"disabled_result\")))) && ((u.type != \"header\"))));\n        }).map(function(u) {\n            return o(null, u);\n        });\n        var t = l.getViewportDimensions();\n        this.recordStat(\"window_size_width\", t.x);\n        this.recordStat(\"window_size_height\", t.y);\n        if (((((this.results.length > 0)) && !this.stats.first_result_time))) {\n            this.recordStat(\"first_result_time\", JSBNG__Date.now());\n        }\n    ;\n    ;\n    };\n    q.prototype.recordSelectInfo = function(s) {\n        var t = s.selected, u = s.index;\n        if (((t.groupIndex !== undefined))) {\n            u = ((((s.index - t.groupIndex)) - 1));\n        }\n    ;\n    ;\n        var v = {\n            href: t.path\n        }, w = ((t.dataGT ? {\n            gt: JSON.parse(t.dataGT)\n        } : {\n        }));\n        n(\"click\", v, null, null, w);\n        p(\"search\").uai(\"click\");\n        if (((t.uid == \"search\"))) {\n            this.recordStat(\"selected_search\", 1);\n        }\n         else if (((t.uid == \"invite\"))) {\n            this.recordStat(\"selected_invite\", 1);\n        }\n         else {\n            var x = ((((t.rankType || t.render_type)) || t.type)), y = ((((x == \"friend\")) ? \"user\" : x));\n            this.recordStat(((\"selected_\" + y)), 1);\n            this.recordStat(\"selected_position\", u);\n            this.recordStat(\"selected_type\", x);\n            this.recordStat(\"selected_name_length\", t.text.length);\n            this.recordStat(\"selected_id\", t.uid);\n            this.recordStat(\"selected_degree\", ((t.bootstrapped ? 1 : 2)));\n            var z = k.parse(this.data.getTextToIndex(t)).tokens, aa = r(z, this.query);\n            if (aa) {\n                this.recordStat(\"matched_terms\", aa);\n            }\n        ;\n        ;\n        }\n        \n    ;\n    ;\n        var ba = {\n        };\n        this._extraRecorder.forEach(function(ca) {\n            ca(s, this.results, ba);\n        }.bind(this));\n        this.recordStat(\"extra_select_info\", JSON.stringify(ba));\n        if (((t.type === \"websuggestion\"))) {\n            this.recordStat(\"selected_memcached_websuggestion\", t.fromMemcache);\n            this.recordStat(\"selected_websuggestion_source\", t.websuggestion_source);\n        }\n    ;\n    ;\n        this.recordStat(\"selected_with_mouse\", ((s.clicked ? 1 : 0)));\n    };\n    q.prototype._dataToSubmit = function() {\n        this.recordStat(\"candidate_results\", this.buildResults());\n        this.recordStat(\"query\", this.query);\n        this.recordStat(\"init_time\", this.initTime);\n        if (this.initStartTime) {\n            this.recordStat(\"init_start_time\", this.initStartTime);\n            this.recordStat(\"onload_time\", this._onloadTime);\n            this.initStartTime = 0;\n        }\n    ;\n    ;\n        this.recordStat(\"bootstrapped\", this.bootstrapStats.bootstrapped);\n        if (this.bootstrapStats.endTime) {\n            this.recordStat(\"bootstrapped_time\", this.bootstrapStats.endTime);\n            this.recordStat(\"user_bootstrap_ms\", this.bootstrapStats.user);\n            this.recordStat(\"other_bootstrap_ms\", this.bootstrapStats.other);\n            this.bootstrapStats.endTime = 0;\n        }\n    ;\n    ;\n        this.recordStat(\"coeff2_ts\", this.bootstrapStats.coeff2_ts);\n        this.recordStat(\"max_results\", this.data._maxResults);\n        if (((this.backendQueries.length > 0))) {\n            if (((this.backendQueries.length > this.data.logBackendQueriesWindow))) {\n                this.backendQueries = this.backendQueries.slice(((this.backendQueries.length - this.data.logBackendQueriesWindow)));\n            }\n        ;\n        ;\n            this.recordStat(\"backend_queries\", this.backendQueries);\n        }\n    ;\n    ;\n        if (this._reorderInfo) {\n            var s = this._reorderInfo;\n            s.organic.forEach(function(x) {\n                delete x.text;\n            });\n            this.recordStat(\"s_count\", s.position_data.length);\n            this.recordStat(\"s_bootstrap_id\", s.s_bootstrap_id);\n            this.recordStat(\"s_organic_results\", JSON.stringify(s.organic));\n            this.recordStat(\"s_candidate_tokens\", JSON.stringify(s.tokens));\n            this.recordStat(\"s_positions\", JSON.stringify(s.position_data));\n            this.recordStat(\"s_options\", JSON.stringify(s.options));\n            this.recordStat(\"s_variant\", JSON.stringify(s.variant));\n        }\n    ;\n    ;\n        var t = this.stats;\n        {\n            var fin189keys = ((window.top.JSBNG_Replay.forInKeys)((this.avgStats))), fin189i = (0);\n            var u;\n            for (; (fin189i < fin189keys.length); (fin189i++)) {\n                ((u) = (fin189keys[fin189i]));\n                {\n                    var v = this.avgStats[u];\n                    t[u] = ((v[0] / v[1]));\n                };\n            };\n        };\n    ;\n        {\n            var fin190keys = ((window.top.JSBNG_Replay.forInKeys)((this.appendStats))), fin190i = (0);\n            var w;\n            for (; (fin190i < fin190keys.length); (fin190i++)) {\n                ((w) = (fin190keys[fin190i]));\n                {\n                    t[w] = JSON.stringify(this.appendStats[w]);\n                ;\n                };\n            };\n        };\n    ;\n        return t;\n    };\n    q.prototype.buildResults = function() {\n        var s = ((this.results || [])).map(function(t, u) {\n            var v = k.parse(this.data.getTextToIndex(t)).tokens, w = ((((t.rankType || t.render_type)) || t.type)), x = ((t.bootstrapped ? 1 : 0)), y = ((t.s_token || \"\")), z = ((r(v, this.query) || this.query)), aa = t.index_rank, ba = t.match_type, ca = t.prefix_match, da = t.prefix_length;\n            if (((typeof t.groupIndex == \"number\"))) {\n                return [t.groupIndex,t.indexInGroup,t.uid,w,x,y,z,aa,ba,ca,da,t.origIndex,];\n            }\n        ;\n        ;\n            return [0,u,t.uid,w,x,y,z,aa,ba,ca,da,t.origIndex,];\n        }.bind(this));\n        return JSON.stringify(s);\n    };\n    q.prototype.submit = function() {\n        var s = this._dataToSubmit();\n        switch (this.data.recordingRoute) {\n          case \"double_recording\":\n            if (((Math.JSBNG__random() > 113062))) {\n                s.recorded_first = \"legacy\";\n                JSBNG__setTimeout(this.submitThroughAsyncRequest.bind(this, s), 0);\n                i.post(this._banzaiRoute, s, {\n                    delay: 0,\n                    retry: true\n                });\n            }\n             else {\n                s.recorded_first = \"banzai\";\n                i.post(this._banzaiRoute, s, {\n                    delay: 0,\n                    retry: true\n                });\n                JSBNG__setTimeout(this.submitThroughAsyncRequest.bind(this, s), 0);\n            }\n        ;\n        ;\n            break;\n          case \"random_recording\":\n            if (((Math.JSBNG__random() > 113386))) {\n                this.submitThroughAsyncRequest(s);\n            }\n             else i.post(this._banzaiRoute, s, {\n                delay: 0,\n                retry: true\n            });\n        ;\n        ;\n            break;\n          case \"banzai_basic\":\n            i.post(this._banzaiRoute, s);\n            break;\n          case \"banzai_vital\":\n            i.post(this._banzaiRoute, s, {\n                delay: 0,\n                retry: true\n            });\n            break;\n          default:\n            this.submitThroughAsyncRequest(s);\n        };\n    ;\n        this._reset();\n    };\n    q.prototype.submitThroughAsyncRequest = function(s) {\n        if (((Object.keys(s).length > 0))) {\n            new h().setURI(this._endPoint).setMethod(\"POST\").setData({\n                stats: s\n            }).setOption(\"handleErrorAfterUnload\", true).setErrorHandler(function(t) {\n                s.retry = true;\n                new h().setURI(this._endPoint).setMethod(\"POST\").setData({\n                    stats: s\n                }).setOption(\"asynchronous\", false).send();\n            }.bind(this)).send();\n        }\n    ;\n    ;\n    };\n    var r = function(s, t) {\n        var u = k.parse(t);\n        if (((u.flatValue[((u.flatValue.length - 1))] === \" \"))) {\n            return u.flatValue;\n        }\n    ;\n    ;\n        var v = u.tokens[((u.tokens.length - 1))], w = {\n        };\n        s.forEach(function(ba) {\n            w[ba] = ((((w[ba] || 0)) + 1));\n        });\n        var x = {\n        }, y = u.tokens.slice(0, ((u.tokens.length - 1)));\n        y.forEach(function(ba) {\n            x[ba] = ((((x[ba] || 0)) + 1));\n        });\n        for (var z = 0; ((z < s.length)); ++z) {\n            var aa = s[z];\n            if (((((aa.indexOf(v) === 0)) && ((((w[aa] - ((x[aa] || 0)))) > 0))))) {\n                y.push(aa);\n                return y.join(\" \");\n            }\n        ;\n        ;\n        };\n    ;\n        return undefined;\n    };\n    o(q.prototype, {\n        _endPoint: \"/ajax/typeahead/record_metrics.php\",\n        _banzaiRoute: \"search\"\n    });\n    e.exports = q;\n});\n__d(\"TypeaheadSearchRecorderBasic\", [\"SearchTypeaheadRecorder\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"SearchTypeaheadRecorder\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j(k) {\n        this._typeahead = k;\n    };\n;\n    j.prototype.enable = function() {\n        new g(this._typeahead);\n    };\n    h(j.prototype, {\n        disable: i\n    });\n    e.exports = j;\n});\n__d(\"legacy:SearchRecorderBasicTypeaheadBehavior\", [\"TypeaheadSearchRecorderBasic\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadSearchRecorderBasic\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.searchRecorderBasic = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"SearchTypeaheadRenderer\", [\"Badge\",\"DOM\",\"Env\",\"MusicButtonManager\",\"TypeaheadFacepile\",\"TypeaheadUtil\",], function(a, b, c, d, e, f) {\n    var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"Env\"), j = b(\"MusicButtonManager\"), k = b(\"TypeaheadFacepile\"), l = b(\"TypeaheadUtil\");\n    function m(n, o) {\n        var p = [], q = ((n.photos || n.photo));\n        if (q) {\n            if (((q instanceof Array))) {\n                q = k.render(q);\n            }\n             else q = h.create(\"img\", {\n                alt: \"\",\n                src: q\n            });\n        ;\n        ;\n            p.push(q);\n            if (n.song) {\n                p.push(h.create(\"span\", {\n                    className: \"playButton\"\n                }));\n                p.push(h.create(\"span\", {\n                    className: \"playLoader\"\n                }));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        var r;\n        if (n.text) {\n            var s = n.alias, t = this.value, u = n.text;\n            r = [u,];\n            if (((((s && l.isQueryMatch(t, s))) && !l.isQueryMatch(t, u)))) {\n                r.push(h.create(\"span\", {\n                    className: \"alias\"\n                }, [((\" \\u00b7 \" + s)),]));\n            }\n        ;\n        ;\n            if (n.verified) {\n                r.push(g(\"xsmall\"));\n            }\n        ;\n        ;\n            p.push(h.create(\"span\", {\n                className: \"text\"\n            }, r));\n        }\n    ;\n    ;\n        if (n.category) {\n            var v = [n.category,];\n            if (n.is_external) {\n                v.push(h.create(\"span\", {\n                    className: \"arrow\"\n                }));\n            }\n        ;\n        ;\n            var w = ((n.message ? \"preCategory\" : \"category\"));\n            p.push(h.create(\"span\", {\n                className: w\n            }, v));\n        }\n    ;\n    ;\n        if (n.message) {\n            p.push(h.create(\"span\", {\n                className: \"category\"\n            }, [n.message,]));\n        }\n    ;\n    ;\n        var x = ((n.subtextOverride || n.subtext));\n        if (x) {\n            p.push(h.create(\"span\", {\n                className: \"subtext\"\n            }, [x,]));\n        }\n    ;\n    ;\n        var y = ((((n.classNames || n.type)) || \"\")), z = ((n.is_external ? \"_blank\" : \"\")), aa = ((((!n.song && n.path)) || \"\"));\n        if (aa) {\n            if (!(/^https?\\:\\/\\//).test(aa)) {\n                aa = ((i.www_base + aa.substr(1)));\n            }\n        ;\n        ;\n            aa += ((((((aa.indexOf(\"?\") > 0)) ? \"&\" : \"?\")) + \"ref=ts&fref=ts\"));\n        }\n    ;\n    ;\n        var ba = h.create(\"a\", {\n            href: aa,\n            rel: \"ignore\",\n            target: z\n        }, p);\n        if (n.song) {\n            ba.id = ((\"mb_\" + ((((Math.JSBNG__random() * 1000000)) | 0))));\n            j.addButton.curry(n.song.provider, ba.id, n.song.url, n.song.context, n.song.media_type).defer();\n            ba.JSBNG__onclick = this.ignoreClick;\n        }\n    ;\n    ;\n        var ca = h.create(\"li\", {\n            className: y\n        }, [ba,]);\n        if (n.text) {\n            ca.setAttribute(\"aria-label\", n.text);\n        }\n    ;\n    ;\n        return ca;\n    };\n;\n    m.className = \"search\";\n    e.exports = m;\n});\n__d(\"legacy:SearchTypeaheadRenderer\", [\"SearchTypeaheadRenderer\",], function(a, b, c, d) {\n    if (!a.TypeaheadRenderers) {\n        a.TypeaheadRenderers = {\n        };\n    }\n;\n;\n    a.TypeaheadRenderers.search = b(\"SearchTypeaheadRenderer\");\n}, 3);\nvoid (0);\n__d(\"TypeaheadSearchFilter\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._typeahead = j;\n    };\n;\n    i.prototype.enable = function() {\n        var j = this._typeahead, k = j.getView().seeMoreEndpoint;\n        this._subscriptions = [g.subscribe(\"search/typeahead/updateFilter\", function(l, m) {\n            if (((m.filter_type == \"web\"))) {\n                j.getView().queryData.form = \"FBKBFR\";\n            }\n        ;\n        ;\n            j.getView().queryData.type = m.filter_type;\n        }),g.subscribe(\"search/typeahead/updateSeeMoreEndpoint\", function(l, m) {\n            j.getView().seeMoreEndpoint = m;\n        }),g.subscribe(\"page_transition\", function(l, m) {\n            if (j.getView().queryData.form) {\n                delete j.getView().queryData.form;\n            }\n        ;\n        ;\n            delete j.getView().queryData.type;\n            j.getView().seeMoreEndpoint = k;\n        }, g.SUBSCRIBE_NEW),];\n    };\n    i.prototype.disable = function() {\n        this._subscriptions.forEach(function(j) {\n            j.unsubscribe();\n        });\n        this._subscriptions = null;\n    };\n    h(i.prototype, {\n        _subscription: null\n    });\n    e.exports = i;\n});\n__d(\"legacy:SearchFilterTypeaheadBehavior\", [\"TypeaheadSearchFilter\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadSearchFilter\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.initFilters = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"TypeaheadDetectQueryLocale\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        this._typeahead = h;\n        this._data = h.getData();\n        this._queryCache = {\n            \"\": this._data.queryCache,\n            ja_JP: {\n            },\n            zh_TW: {\n            }\n        };\n    };\n;\n    g.prototype.enable = function() {\n        this._previousLocale = \"\";\n        this._reset = this._typeahead.subscribe(\"reset\", this._swapQueryCache.bind(this, \"\"));\n        this._beforeQuery = this._data.subscribe(\"beforeQuery\", function(h, i) {\n            var j = i.value;\n            if (((j === \"\"))) {\n                this._swapQueryCache(\"\");\n                return;\n            }\n        ;\n        ;\n            var k = null, l = j.charCodeAt(((j.length - 1)));\n            if (((((12352 <= l)) && ((l <= 12543))))) {\n                k = \"ja_JP\";\n            }\n             else if (((((12544 <= l)) && ((l <= 12735))))) {\n                k = \"zh_TW\";\n            }\n            \n        ;\n        ;\n            this._swapQueryCache(k);\n        }.bind(this));\n    };\n    g.prototype.disable = function() {\n        this._swapQueryCache(\"\");\n        this._data.unsubscribe(this._beforeQuery);\n        this._typeahead.ubsubscribe(this._reset);\n    };\n    g.prototype._swapQueryCache = function(h) {\n        if (((((h === null)) || ((h === this._previousLocale))))) {\n            return;\n        }\n    ;\n    ;\n        this._data.queryCache = this._queryCache[h];\n        this._data.setQueryData({\n            query_locale: h\n        });\n        this._previousLocale = h;\n    };\n    e.exports = g;\n});\n__d(\"TypeaheadDisableBucketization\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n    function i(j) {\n        this._typeahead = j;\n    };\n;\n    i.prototype.enable = function() {\n        this._typeahead.getView().disableBucketization();\n        this._typeahead.getData().inform(\"recordFunction\", function(j, k, l) {\n            l.bucketization_disabled = 1;\n        });\n    };\n    g(i.prototype, {\n        disable: h.thatReturns\n    });\n    e.exports = i;\n});\n__d(\"TypeaheadExcludeBootstrapFromQueryCache\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        this._data = h.getData();\n    };\n;\n    g.prototype.enable = function() {\n        this._buildingQueryCache = false;\n        this._buildQueryCache = this._data.subscribe(\"buildQueryCache\", function() {\n            this._buildingQueryCache = true;\n        }.bind(this));\n        this._mergeUids = this._data.subscribe(\"mergeUids\", function(h, i) {\n            if (this._buildingQueryCache) {\n                i.local_uids.splice(0, i.local_uids.length);\n            }\n        ;\n        ;\n        }.bind(this));\n        this._fetchComplete = this._data.subscribe(\"fetchComplete\", function() {\n            this._buildingQueryCache = false;\n        }.bind(this));\n    };\n    g.prototype.disable = function() {\n        this._data.unsubscribe(this._buildQueryCache);\n        this._data.unsubscribe(this._mergeUids);\n        this._data.unsubscribe(this._fetchComplete);\n    };\n    e.exports = g;\n});\n__d(\"TypeaheadSearchBrowseUpsell\", [\"Arbiter\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\"), m = \"TypeaheadSearchBrowseUpsell/form\";\n    function n(o) {\n        this._typeahead = o;\n        this._form = null;\n        g.subscribe(m, this._registerForm.bind(this));\n    };\n;\n    n.prototype._registerForm = function(o, p) {\n        this._form = p.cloneNode(true);\n        i.scry(this._form, \"button\").forEach(function(q) {\n            h.removeClass(q, \"selected\");\n        });\n        j.listen(this._form, \"success\", function() {\n            this._typeahead.view.hide();\n            h.addClass(this._form, \"browseSuccess\");\n        }.bind(this));\n    };\n    n.prototype.addUpsell = function(o) {\n        if (this._form) {\n            var p = i.create(\"li\", {\n                className: \"browseUpsell\"\n            }, this._form);\n            o.push({\n                type: \"disabled_result\",\n                uid: \"upsell\",\n                node: p\n            });\n        }\n    ;\n    ;\n    };\n    n.prototype.decorateSeeMore = function(o) {\n        var p = o[((o.length - 1))];\n        if (((p && ((p.uid === \"search\"))))) {\n            h.addClass(p.node, \"browseMore\");\n        }\n    ;\n    ;\n    };\n    n.prototype.showUpsell = function() {\n        var o = this._typeahead.view;\n        return ((o._shouldShowSeeMore && !h.hasClass(o.element, \"typeaheadViewLoading\")));\n    };\n    n.prototype.enable = function() {\n        this._typeahead.subscribe(\"beforeRender\", function(o, p) {\n            var q = p.results.length;\n            if (((q && this.showUpsell()))) {\n                this.decorateSeeMore(p.results);\n                this.addUpsell(p.results);\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n    n.registerForm = function(o) {\n        g.inform(m, o, g.BEHAVIOR_STATE);\n    };\n    k(n.prototype, {\n        disable: l\n    });\n    e.exports = n;\n});\n__d(\"TypeaheadRegulateMemorializedUsers\", [\"copyProperties\",\"TypeaheadUtil\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"TypeaheadUtil\");\n    function i(j) {\n        this._typeahead = j;\n    };\n;\n    g(i.prototype, {\n        _filterRegistry: null,\n        _filter: function(j, k) {\n            if (((((j.type !== \"user\")) || !j.memorialized))) {\n                return true;\n            }\n        ;\n        ;\n            var l = h.parse(j.text).tokens;\n            if (((((l.length === 1)) && h.isExactMatch(k, j.text)))) {\n                return true;\n            }\n        ;\n        ;\n            var m = this._typeahead.getData().getTextToIndex(j), n = h.parse(k).tokens;\n            return ((((n.length > 1)) && h.isQueryMatch(k, m)));\n        },\n        enable: function() {\n            this._filterRegistry = this._typeahead.getData().addFilter(this._filter.bind(this));\n        },\n        disable: function() {\n            this._filterRegistry.remove();\n            this._filterRegistry = null;\n        }\n    });\n    e.exports = i;\n});\n__d(\"legacy:RegulateMemorializedUsersTypeaheadBehavior\", [\"TypeaheadRegulateMemorializedUsers\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadRegulateMemorializedUsers\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.regulateMemorializedUsers = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);");
36505 // 10869
36506 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o162,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y7/r/MX9CLuapN6V.js",o164);
36507 // undefined
36508 o162 = null;
36509 // undefined
36510 o164 = null;
36511 // 10873
36512 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"C6rJk\",]);\n}\n;\n__d(\"NotifXList\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = null;\n    function i(p) {\n        if (!p) {\n            throw new Error(\"You have to init NotifXList with a non-null owner\")\n        };\n        h = p;\n    };\n    function j(p) {\n        g[p] = null;\n    };\n    function k(p, q) {\n        if (!q) {\n            throw new Error(\"You have to add a non-null data to xList\")\n        };\n        g[p] = q;\n    };\n    function l(p) {\n        var q = ((undefined !== g[p.notif_id])), r = ((p.notif_alt_id && (undefined !== g[p.notif_alt_id])));\n        if ((q || r)) {\n            k((q ? p.notif_id : p.notif_alt_id), p);\n            return true;\n        }\n    ;\n        return false;\n    };\n    function m(p) {\n        return (null != g[p]);\n    };\n    function n(p) {\n        if (m(p)) {\n            var q = g[p];\n            o(p);\n            h.alertList.insert(q.notif_id, q.notif_time, q.notif_markup, q.replace, q.ignoreUnread, q.notif_alt_id);\n        }\n    ;\n    };\n    function o(p) {\n        delete g[p];\n    };\n    e.exports = {\n        init: i,\n        userXClick: j,\n        filterStoreClicked: l,\n        newNotifExist: m,\n        resumeInsert: n,\n        removeNotif: o\n    };\n});");
36513 // 10874
36514 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sd0e0e320aa683436cafcda743d8b77745ad99691");
36515 // 10875
36516 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"C6rJk\",]);\n}\n;\n;\n__d(\"NotifXList\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = null;\n    function i(p) {\n        if (!p) {\n            throw new Error(\"You have to init NotifXList with a non-null owner\");\n        }\n    ;\n    ;\n        h = p;\n    };\n;\n    function j(p) {\n        g[p] = null;\n    };\n;\n    function k(p, q) {\n        if (!q) {\n            throw new Error(\"You have to add a non-null data to xList\");\n        }\n    ;\n    ;\n        g[p] = q;\n    };\n;\n    function l(p) {\n        var q = ((undefined !== g[p.notif_id])), r = ((p.notif_alt_id && ((undefined !== g[p.notif_alt_id]))));\n        if (((q || r))) {\n            k(((q ? p.notif_id : p.notif_alt_id)), p);\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function m(p) {\n        return ((null != g[p]));\n    };\n;\n    function n(p) {\n        if (m(p)) {\n            var q = g[p];\n            o(p);\n            h.alertList.insert(q.notif_id, q.notif_time, q.notif_markup, q.replace, q.ignoreUnread, q.notif_alt_id);\n        }\n    ;\n    ;\n    };\n;\n    function o(p) {\n        delete g[p];\n    };\n;\n    e.exports = {\n        init: i,\n        userXClick: j,\n        filterStoreClicked: l,\n        newNotifExist: m,\n        resumeInsert: n,\n        removeNotif: o\n    };\n});");
36517 // 10883
36518 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o165,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yk/r/mvmvxDKTeL4.js",o166);
36519 // undefined
36520 o165 = null;
36521 // undefined
36522 o166 = null;
36523 // 11597
36524 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o200,o201);
36525 // undefined
36526 o201 = null;
36527 // 11600
36528 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"bUzfU\",]);\n}\n;\n__d(\"TrackingPixel\", [\"Arbiter\",\"ControlledReferer\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ControlledReferer\"), i = {\n        _iframe: undefined,\n        loadWithNoReferrer: function(j) {\n            if (!i._iframe) {\n                var k = document.createElement(\"iframe\");\n                k.frameborder = 0;\n                k.width = k.height = 1;\n                k.style.position = \"absolute\";\n                k.style.top = \"-10px\";\n                h.useFacebookReferer(k, function() {\n                    g.inform(\"TrackingPixel/iframeIsLoaded\", null, g.BEHAVIOR_PERSISTENT);\n                }, null);\n                document.body.appendChild(k);\n                i._iframe = k;\n            }\n        ;\n            g.subscribe(\"TrackingPixel/iframeIsLoaded\", function() {\n                var l = i._iframe.contentWindow.document, m = l.createElement(\"img\");\n                m.src = j;\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"ExternalTrackingTag\", [\"AsyncSignal\",\"TrackingPixel\",\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"TrackingPixel\"), i = b(\"Event\"), j = {\n        listenForElementClick: function(k, l, m, n) {\n            i.listen(k, \"click\", function() {\n                j.sendRequest(l, m, n);\n            });\n        },\n        sendRequest: function(k, l, m) {\n            if (!k) {\n                return\n            };\n            new g(\"/ads/external_tracking_tag/\", {\n                href: k,\n                tracking_tag_id: l,\n                adgroup_id: m\n            }).send();\n            h.loadWithNoReferrer(k);\n        }\n    };\n    e.exports = j;\n});\n__d(\"ad-logging\", [\"Arbiter\",\"AsyncRequest\",\"Banzai\",\"collectDataAttributes\",\"Parent\",\"TrackingNodes\",\"ExternalTrackingTag\",], function(a, b, c, d, e, f) {\n    var g = \"ssinfeed\", h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Banzai\"), k = b(\"collectDataAttributes\"), l = b(\"Parent\"), m = b(\"TrackingNodes\"), n = b(\"ExternalTrackingTag\"), o = {\n    };\n    function p(s) {\n        return (((((s.getAttribute && ((s.getAttribute(\"ajaxify\") || s.getAttribute(\"data-endpoint\")))) || s.action) || s.href) || s.name));\n    };\n    function q(s) {\n        var t = (s.ei || s.ai);\n        if ((!t && s.mei)) {\n            t = s.mf_story_key;\n        };\n        if (((s !== null) && (typeof (t) === \"string\"))) {\n            var u = false;\n            if (s.tn) {\n                var v = m.parseTrackingNodeString(s.tn);\n                for (var w = 0; (w < v.length); w++) {\n                    var x = v[w][0];\n                    switch (x) {\n                      case m.types.LIKE_LINK:\n                    \n                      case m.types.UNLIKE_LINK:\n                    \n                      case m.types.COMMENT:\n                    \n                      case m.types.ADD_COMMENT_BOX:\n                        return;\n                      case m.types.XBUTTON:\n                    \n                      case m.types.HIDE_LINK:\n                    \n                      case m.types.REPORT_SPAM_LINK:\n                    \n                      case m.types.HIDE_ALL_LINK:\n                    \n                      case m.types.DROPDOWN_BUTTON:\n                    \n                      case m.types.UNHIDE_LINK:\n                        return;\n                      case m.types.ATTACHMENT:\n                    \n                      case m.types.USER_MESSAGE:\n                        u = true;\n                        break;\n                    };\n                };\n            }\n        ;\n            var y = Date.now(), z = 500;\n            s.duplicate_click = (!!o[t] && (((y - o[t]) < z)));\n            o[t] = y;\n            if (j.isEnabled(\"ssinfeed\")) {\n                j.post(g, s, {\n                    delay: 0,\n                    retry: j.isEnabled(\"ssinfeed_retry\")\n                });\n            }\n             else {\n                var aa = new i(\"/ajax/ssinfeed/end/\").setData(s).setAllowCrossPageTransition(true).setMethod(\"POST\");\n                aa.send();\n            }\n        ;\n            if (((u && s.external_tracking_tag) && !s.duplicate_click)) {\n                n.sendRequest(s.external_tracking_tag.url, s.external_tracking_tag.tag_id, s.external_tracking_tag.adgroup_id);\n            };\n        }\n    ;\n    };\n    function r(s, t) {\n        if (!t.node) {\n            return\n        };\n        var u = p(t.node), v = (l.byTag(t.node, \"input\") || l.byTag(t.node, \"button\"));\n        if (((((!u && v) && (v.type == \"submit\")) && v.getAttribute) && v.getAttribute(\"data-ft\"))) {\n            u = \"#\";\n        };\n        var w;\n        if (((u && t.event) && (((t.event.type === \"click\") || (t.event.type === \"contextmenu\"))))) {\n            w = k(t.node, [\"ft\",]);\n            w.ft.href = u;\n            w.ft.mouse_type = t.event.type;\n            q(w.ft);\n        }\n    ;\n    };\n    h.subscribe(\"ClickRefAction/new\", r);\n});\n__d(\"PopoverMenu.react\", [\"CSS\",\"InlineBlock.react\",\"Popover\",\"PopoverMenu\",\"React\",\"ReactProps\",\"SubscriptionsHandler\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"InlineBlock.react\"), i = b(\"Popover\"), j = b(\"PopoverMenu\"), k = b(\"React\"), l = b(\"ReactProps\"), m = b(\"SubscriptionsHandler\"), n = b(\"cx\"), o = b(\"joinClasses\");\n    function p(r, s) {\n        var t, u;\n        for (var v in r) {\n            t = r[v];\n            u = s[v];\n            if (((typeof t === \"object\") && (typeof u === \"object\"))) {\n                if (!p(t, u)) {\n                    return false\n                };\n            }\n             else if ((t !== u)) {\n                return false\n            }\n        ;\n        };\n        return true;\n    };\n    var q = k.createClass({\n        displayName: \"ReactPopoverMenu\",\n        props: {\n            alignh: l.oneOf([\"left\",\"center\",\"right\",]),\n            layerBehaviors: l.array,\n            menu: l.object,\n            disabled: l.bool\n        },\n        _menuSubscriptions: null,\n        componentDidMount: function() {\n            var r = this.refs.root.getDOMNode(), s = r.firstChild;\n            g.addClass(s, \"_p\");\n            this._popover = new i(r, s, this.props.layerBehaviors, {\n                alignh: this.props.alignh,\n                disabled: this.props.disabled\n            });\n            this._popoverMenu = new j(this._popover, s, this._createMenu(this.props.menu), this.props.behaviors);\n        },\n        componentDidUpdate: function(r) {\n            if (!p(r.menu, this.props.menu)) {\n                if (this._menuSubscriptions) {\n                    this._menuSubscriptions.release();\n                    this._menuSubscriptions = null;\n                }\n            ;\n                this._popoverMenu.setMenu(this._createMenu(this.props.menu));\n            }\n        ;\n            if ((this.props.alignh !== r.alignh)) {\n                this._popoverMenu.getPopover().getLayer().setAlignment(this.props.alignh);\n            };\n            if ((this.props.disabled !== r.disabled)) {\n                if (this.props.disabled) {\n                    this._popoverMenu.disable();\n                }\n                 else this._popoverMenu.enable();\n            \n            };\n        },\n        getFirstChild: function() {\n            var r = this.props.children;\n            return (Array.isArray(r) ? r[0] : r);\n        },\n        getButtonSize: function() {\n            var r = this.getFirstChild();\n            return (r && r.getButtonSize());\n        },\n        render: function() {\n            var r = this.getFirstChild();\n            r.props.className = o((r.props.className || \"\"), \"_p\");\n            return this.transferPropsTo(h({\n                alignv: \"middle\",\n                className: \"uiPopover\",\n                ref: \"root\",\n                disabled: null\n            }, this.props.children));\n        },\n        componentWillUnmount: function() {\n            if (this._menuSubscriptions) {\n                this._menuSubscriptions.release();\n                this._menuSubscriptions = null;\n            }\n        ;\n        },\n        _createMenu: function(r) {\n            var s = new r.ctor(r.menuitems, r.config);\n            this._menuSubscriptions = new m();\n            if (r.onItemClick) {\n                this._menuSubscriptions.addSubscriptions(s.subscribe(\"itemclick\", r.onItemClick));\n            };\n            if (r.onChange) {\n                this._menuSubscriptions.addSubscriptions(s.subscribe(\"change\", r.onChange));\n            };\n            if (this.props.onShow) {\n                this._menuSubscriptions.addSubscriptions(this._popover.subscribe(\"show\", this.props.onShow));\n            };\n            if (this.props.onHide) {\n                this._menuSubscriptions.addSubscriptions(this._popover.subscribe(\"hide\", this.props.onHide));\n            };\n            return s;\n        }\n    });\n    e.exports = q;\n});\n__d(\"ReactMenu\", [\"Menu\",\"MenuItem\",\"MenuSelectableItem\",\"MenuTheme\",\"SelectableMenu\",\"cx\",\"flattenArray\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Menu\"), h = b(\"MenuItem\"), i = b(\"MenuSelectableItem\"), j = b(\"MenuTheme\"), k = b(\"SelectableMenu\"), l = b(\"cx\"), m = b(\"flattenArray\"), n = b(\"merge\"), o = Array.prototype.slice;\n    function p(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        };\n        var s = {\n            ctor: g,\n            menuitems: m((r || [])),\n            config: {\n                theme: j,\n                maxheight: (q ? q.maxheight : null)\n            }\n        };\n        return n(s, q);\n    };\n    p.SelectableMenu = function(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        };\n        var s = {\n            ctor: k,\n            menuitems: m(r),\n            config: {\n                className: \"_57di\",\n                theme: j,\n                multiple: (q && q.multiple),\n                maxheight: (q ? q.maxheight : null)\n            }\n        };\n        return n(s, q);\n    };\n    p.Item = function(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        };\n        var s = {\n            ctor: h,\n            reactChildren: r\n        };\n        return n(s, q);\n    };\n    p.SelectableItem = function(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        };\n        var s = {\n            ctor: i,\n            reactChildren: r\n        };\n        return n(s, q);\n    };\n    e.exports = p;\n});\n__d(\"UFIOrderingModeSelector.react\", [\"InlineBlock.react\",\"Link.react\",\"LoadingIndicator.react\",\"React\",\"Image.react\",\"ReactMenu\",\"PopoverMenu.react\",\"cx\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"InlineBlock.react\"), h = b(\"Link.react\"), i = b(\"LoadingIndicator.react\"), j = b(\"React\"), k = b(\"Image.react\"), l = b(\"ReactMenu\"), m = b(\"PopoverMenu.react\"), n = b(\"cx\"), o = b(\"ix\"), p = l.SelectableMenu, q = l.SelectableItem, r = j.createClass({\n        displayName: \"UFIOrderingModeSelector\",\n        getInitialState: function() {\n            var s = null;\n            this.props.orderingmodes.map(function(t) {\n                if (t.selected) {\n                    s = t;\n                };\n            });\n            return {\n                selectedMode: s\n            };\n        },\n        onMenuItemClick: function(s, t) {\n            var u = t.item.getValue();\n            this.props.orderingmodes.map(function(v) {\n                if ((v.value === u)) {\n                    this.setState({\n                        selectedMode: v\n                    });\n                };\n            }.bind(this));\n            this.props.onOrderChanged(u);\n        },\n        render: function() {\n            var s = null;\n            if ((this.props.currentOrderingMode != this.state.selectedMode.value)) {\n                s = i({\n                    className: \"UFIOrderingModeSelectorLoading\",\n                    color: \"white\",\n                    size: \"small\"\n                });\n            };\n            var t = p({\n                onItemClick: this.onMenuItemClick\n            }, this.props.orderingmodes.map(function(u) {\n                return (q({\n                    key: u.value,\n                    value: u.value,\n                    selected: (u.value === this.state.selectedMode.value)\n                }, u.name));\n            }.bind(this)));\n            return (j.DOM.div({\n                className: \"UFIOrderingModeSelector\"\n            }, s, g(null, m({\n                className: \"UFIOrderingModeSelectorPopover\",\n                menu: t,\n                alignh: \"right\"\n            }, h(null, this.state.selectedMode.name, k({\n                className: \"UFIOrderingModeSelectorDownCaret\",\n                src: o(\"/images/ui/xhp/link/more/down_caret.gif\")\n            }))))));\n        }\n    });\n    e.exports = r;\n});\n__d(\"ComposerPublishTrackingStory\", [\"Event\",\"ge\",\"reportData\",\"DOMQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ge\"), i = b(\"reportData\"), j = b(\"DOMQuery\");\n    f.init = function(k) {\n        g.listen(k, \"submit\", function() {\n            var l = h(\"home_stream\");\n            if (!l) {\n                return\n            };\n            var m = j.scry(l, \".uiStreamStory\")[0];\n            if ((m && m.getAttribute(\"data-ft\"))) {\n                var n = JSON.parse(m.getAttribute(\"data-ft\"));\n                if (!((((\"mf_story_key\" in n)) && ((\"qid\" in n))))) {\n                    return\n                };\n                var o = {\n                    mf_story_key: n.mf_story_key,\n                    qid: n.qid\n                };\n                i(\"compose\", {\n                    ft: o\n                });\n            }\n        ;\n        });\n    };\n});\n__d(\"ComposerXAttachmentBootstrap\", [\"CSS\",\"Form\",\"Parent\",\"URI\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"Form\"), i = b(\"Parent\"), j = b(\"URI\"), k = b(\"cx\"), l = [], m = {\n        bootstrap: function(n) {\n            m.load(i.byTag(n, \"form\"), n.getAttribute(\"data-endpoint\"));\n        },\n        load: function(n, o, p) {\n            var q = j(o).addQueryData({\n                composerurihash: m.getURIHash(o)\n            });\n            g.conditionClass(n, \"_fu\", p);\n            var r = i.byClass(n, \"_2_4\");\n            g.removeClass(r, \"async_saving\");\n            h.setDisabled(n, false);\n            n.action = q.toString();\n            h.bootstrap(n);\n        },\n        getURIHash: function(n) {\n            if ((n === \"initial\")) {\n                return \"initial\"\n            };\n            var o = l.indexOf(n);\n            if ((o !== -1)) {\n                return (o + \"\");\n            }\n             else {\n                o = l.length;\n                l[o] = n;\n                return (o + \"\");\n            }\n        ;\n        }\n    };\n    e.exports = m;\n});\n__d(\"ComposerXStore\", [\"function-extensions\",\"Arbiter\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ge\"), i = {\n    };\n    function j(l, m) {\n        return (((\"ComposerX/\" + l) + \"/\") + m);\n    };\n    var k = {\n        set: function(l, m, n) {\n            if (!i[l]) {\n                i[l] = {\n                };\n            };\n            i[l][m] = n;\n            g.inform(j(l, m), {\n            }, g.BEHAVIOR_STATE);\n        },\n        get: function(l, m) {\n            if (i[l]) {\n                return i[l][m]\n            };\n            return null;\n        },\n        getAllForComposer: function(l) {\n            return (i[l] || {\n            });\n        },\n        waitForComponents: function(l, m, n) {\n            g.registerCallback(n, m.map(j.curry(l)));\n        }\n    };\n    g.subscribe(\"page_transition\", function() {\n        for (var l in i) {\n            if (!h(l)) {\n                delete i[l];\n            };\n        };\n    });\n    e.exports = k;\n});\n__d(\"ComposerX\", [\"Arbiter\",\"ComposerXAttachmentBootstrap\",\"ComposerXStore\",\"CSS\",\"DOM\",\"DOMQuery\",\"copyProperties\",\"csx\",\"cx\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ComposerXAttachmentBootstrap\"), i = b(\"ComposerXStore\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMQuery\"), m = b(\"copyProperties\"), n = b(\"csx\"), o = b(\"cx\"), p = b(\"getObjectValues\"), q = \"any\";\n    function r(s) {\n        this._root = s;\n        this._composerID = s.id;\n        this._attachments = {\n        };\n        this._attachmentFetchForm = l.find(s, \"._2_4\");\n        this._resetSubscription = g.subscribe(\"composer/publish\", function(t, u) {\n            if ((u.composer_id === this._composerID)) {\n                this.reset();\n            };\n        }.bind(this));\n    };\n    m(r.prototype, {\n        _endpointHashToShow: q,\n        _lastFetchEndpoint: \"\",\n        _initialAttachmentEndpoint: \"\",\n        getAttachment: function(s, t) {\n            var u = h.getURIHash(s);\n            this._endpointHashToShow = u;\n            var v = this._attachments[u];\n            if (v) {\n                this._showAttachmentAfterComponentsLoaded(u);\n            }\n             else this.fetchAttachmentData(s, t);\n        ;\n        },\n        fetchAttachmentData: function(s, t) {\n            var u = h.getURIHash(s);\n            if (this._attachments[u]) {\n                return\n            };\n            if ((s !== this._lastFetchEndpoint)) {\n                h.load(this._attachmentFetchForm, s, t);\n                this._lastFetchEndpoint = s;\n            }\n        ;\n        },\n        setAttachment: function(s, t, u, v) {\n            this._setupAttachment(s, t, u, v);\n            this._showAttachmentAfterComponentsLoaded(s);\n        },\n        setInitialAttachment: function(s, t, u, v) {\n            var w = h.getURIHash(s);\n            this._setupAttachment(w, t, u, v);\n            this._initialAttachmentEndpoint = s;\n            if (!this._currentInstance) {\n                this._showAttachmentAfterComponentsLoaded(w);\n            };\n        },\n        setComponent: function(s, t) {\n            if (!i.get(this._composerID, s)) {\n                i.set(this._composerID, s, t);\n                k.appendContent(this._attachmentFetchForm, k.create(\"input\", {\n                    type: \"hidden\",\n                    name: \"loaded_components[]\",\n                    value: s\n                }));\n            }\n        ;\n        },\n        reset: function() {\n            if (this._currentInstance) {\n                this._currentInstance.cleanup();\n                this._currentInstance = null;\n            }\n        ;\n            for (var s in this._attachments) {\n                this._attachments[s].instance.reset();;\n            };\n            var t = i.getAllForComposer(this._composerID);\n            p(t).forEach(function(u) {\n                if (u.reset) {\n                    u.reset(u);\n                };\n            });\n            this.getAttachment(this._initialAttachmentEndpoint);\n            g.inform(\"composer/reset\");\n        },\n        destroy: function() {\n            if (this._resetSubscription) {\n                this._resetSubscription.unsubscribe();\n                this._resetSubscription = null;\n            }\n        ;\n        },\n        addPlaceholders: function(s, t) {\n            var u;\n            for (var v in this._attachments) {\n                u = this._attachments[v];\n                if ((u.instance === s)) {\n                    t.forEach(function(w) {\n                        u.placeholders.push(w);\n                        u.required_components.push(w.component_name);\n                    });\n                    break;\n                }\n            ;\n            };\n            if ((this._currentInstance === s)) {\n                this._fillPlaceholders(t);\n            };\n        },\n        _setupAttachment: function(s, t, u, v) {\n            t.setComposerID(this._composerID);\n            this._attachments[s] = {\n                instance: t,\n                placeholders: u,\n                required_components: v\n            };\n            var w = l.find(this._root, \"div._55d0\"), x = t.getRoot();\n            if ((x.parentNode !== w)) {\n                j.hide(x);\n                k.appendContent(w, x);\n            }\n        ;\n        },\n        _showAttachment: function(s, t, u) {\n            if ((this._currentInstance === s)) {\n                return\n            };\n            if ((this._endpointHashToShow === q)) {\n                this._endpointHashToShow = null;\n            }\n             else if ((this._endpointHashToShow !== t)) {\n                return\n            }\n        ;\n            if (this._currentInstance) {\n                if (!this._currentInstance.canSwitchAway()) {\n                    return\n                };\n                this._currentInstance.cleanup();\n            }\n        ;\n            this._currentInstance = s;\n            var v = l.find(this._root, \"div._55d0\"), w = v.childNodes, x = s.getRoot();\n            for (var y = 0; (y < w.length); y++) {\n                if ((w[y] !== x)) {\n                    j.hide(w[y]);\n                };\n            };\n            j.show(x);\n            this._fillPlaceholders(u);\n            var z = h.getURIHash(this._initialAttachmentEndpoint), aa = (t === z);\n            s.initWithComponents(aa);\n            this._setAttachmentSelectedClass(s.attachmentClassName);\n            g.inform(\"composer/initializedAttachment\", {\n                composerRoot: this._root,\n                isInitial: aa\n            });\n        },\n        _showAttachmentAfterComponentsLoaded: function(s) {\n            var t = this._attachments[s];\n            i.waitForComponents(this._composerID, t.required_components, this._showAttachment.bind(this, t.instance, s, t.placeholders));\n        },\n        _fillPlaceholders: function(s) {\n            s.forEach(function(t) {\n                var u = i.get(this._composerID, t.component_name);\n                if ((t.element !== u.element.parentNode)) {\n                    k.setContent(t.element, u.element);\n                };\n            }.bind(this));\n        },\n        _setAttachmentSelectedClass: function(s) {\n            var t = l.scry(this._root, \"._519b\")[0], u;\n            if (t) {\n                j.removeClass(t, \"_519b\");\n                u = l.scry(t, \"*[aria-pressed=\\\"true\\\"]\")[0];\n                if (u) {\n                    u.setAttribute(\"aria-pressed\", \"false\");\n                };\n            }\n        ;\n            if (s) {\n                var v = l.scry(this._root, (\".\" + s))[0];\n                if (v) {\n                    j.addClass(v, \"_519b\");\n                    u = l.scry(v, \"*[aria-pressed=\\\"false\\\"]\")[0];\n                    if (u) {\n                        u.setAttribute(\"aria-pressed\", \"true\");\n                    };\n                }\n            ;\n            }\n        ;\n        }\n    });\n    e.exports = r;\n});\n__d(\"ComposerXAttachment\", [\"ComposerXStore\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ComposerXStore\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j() {\n    \n    };\n    h(j.prototype, {\n        getRoot: i,\n        initWithComponents: function(k) {\n        \n        },\n        cleanup: i,\n        reset: i,\n        attachmentClassName: \"\",\n        getComponent: function(k) {\n            return g.get(this._composerID, k);\n        },\n        canSwitchAway: i.thatReturnsTrue,\n        setComposerID: function(k) {\n            this._composerID = k;\n        },\n        allowOGTagPreview: function() {\n            return false;\n        }\n    });\n    e.exports = j;\n});\n__d(\"ComposerXController\", [\"Arbiter\",\"ComposerX\",\"ComposerXAttachmentBootstrap\",\"Parent\",\"$\",\"cx\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ComposerX\"), i = b(\"ComposerXAttachmentBootstrap\"), j = b(\"Parent\"), k = b(\"$\"), l = b(\"cx\"), m = b(\"emptyFunction\"), n = b(\"ge\"), o = {\n    };\n    function p(r) {\n        var s = j.byClass(k(r), \"_119\"), t = s.id;\n        if (!o[t]) {\n            o[t] = new h(s);\n        };\n        return o[t];\n    };\n    var q = {\n        getAttachment: function(r, s, t) {\n            var u = p(r);\n            u.getAttachment(s, t);\n        },\n        fetchAttachmentData: function(r, s, t) {\n            p(r).fetchAttachmentData(s, t);\n        },\n        setAttachment: function(r, s, t, u, v) {\n            var w = p(r);\n            w.setAttachment(s, t, u, v);\n        },\n        setInitialAttachment: function(r, s, t, u, v) {\n            var w = p(r);\n            w.setInitialAttachment(s, t, u, v);\n        },\n        setComponent: function(r, s, t) {\n            var u = p(r);\n            u.setComponent(s, t);\n        },\n        reset: function(r) {\n            var s = p(r);\n            s.reset();\n        },\n        holdTheMarkup: m,\n        getEndpoint: function(r, s, t) {\n            var u = p(r);\n            i.load(u._attachmentFetchForm, s, t);\n        },\n        addPlaceholders: function(r, s, t) {\n            var u = p(r);\n            u.addPlaceholders(s, t);\n        }\n    };\n    i.bootstrap = function(r) {\n        q.getAttachment(r, r.getAttribute(\"data-endpoint\"));\n    };\n    g.subscribe(\"page_transition\", function() {\n        for (var r in o) {\n            if (!n(r)) {\n                o[r].destroy();\n                delete o[r];\n            }\n        ;\n        };\n    });\n    e.exports = q;\n});\n__d(\"ComposerXAttachmentUtils\", [\"CSS\",\"DataStore\",\"DOMQuery\",\"Focus\",\"Input\",\"PageTransitions\",\"Run\",\"StickyPlaceholderInput\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"Focus\"), k = b(\"Input\"), l = b(\"PageTransitions\"), m = b(\"Run\"), n = b(\"StickyPlaceholderInput\"), o = b(\"tx\"), p = \"composer_fixed_placeholder\";\n    function q(s, t) {\n        if (!h.get(s.element, p, false)) {\n            s.instance.setPlaceholder(t);\n        };\n    };\n    var r = {\n        initMentions: function(s, t) {\n            q(s, t);\n            var u = i.find(s.element, \"textarea.input\");\n            j.set(u);\n        },\n        setStickyPlaceholderForMentions: function(s, t) {\n            if ((i.contains(s.element, document.activeElement) && g.hasClass(document.activeElement, \"DOMControl_placeholder\"))) {\n                document.activeElement.blur();\n            };\n            q(s, t);\n        },\n        setPlaceholderIsFixed: function(s, t) {\n            h.set(s.element, p, !!t);\n        },\n        setStickyPlaceholderForTypeahead: function(s, t) {\n            var u = i.find(s, \".textInput\");\n            n.setPlaceholderText(u, t);\n        },\n        registerInputForLeaveWarning: function(s) {\n            m.onBeforeUnload(function() {\n                var t = l.getNextURI();\n                if (t.getQueryData().hasOwnProperty(\"theater\")) {\n                    return\n                };\n                if ((a.Dialog && a.Dialog.getCurrent())) {\n                    return\n                };\n                if (((s.offsetParent !== null) && !k.isEmpty(s))) {\n                    return \"You haven't finished your post yet. Do you want to leave without finishing?\"\n                };\n            });\n        }\n    };\n    e.exports = r;\n});\n__d(\"DragDropFileUpload\", [], function(a, b, c, d, e, f) {\n    f.isSupported = function() {\n        return (typeof (FileList) !== \"undefined\");\n    };\n});\n__d(\"DocumentDragDrop\", [\"Event\",\"Arbiter\",\"CSS\",\"DOM\",\"DOMQuery\",\"DragDropFileUpload\",\"emptyFunction\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"DragDropFileUpload\"), m = b(\"emptyFunction\"), n = b(\"getObjectValues\"), o = {\n    }, p = 0;\n    function q() {\n        p = 0;\n        n(o).forEach(function(t) {\n            i.removeClass(t.element, t.className);\n            h.inform(\"dragleave\", {\n                element: t.element\n            });\n        });\n    };\n    function r() {\n        if (!l.isSupported()) {\n            return\n        };\n        g.listen(document, \"dragenter\", function(u) {\n            if ((p === 0)) {\n                n(o).forEach(function(v) {\n                    i.addClass(v.element, v.className);\n                    h.inform(\"dragenter\", {\n                        element: v.element,\n                        event: u\n                    });\n                });\n            };\n            p++;\n        });\n        g.listen(document, \"dragleave\", function(u) {\n            p--;\n            if ((p === 0)) {\n                q();\n            };\n        });\n        g.listen(document, \"drop\", function(u) {\n            var v = u.getTarget();\n            if (k.isNodeOfType(u.getTarget(), \"input\")) {\n                if ((v.type === \"file\")) {\n                    return\n                }\n            };\n            u.prevent();\n        });\n        g.listen(document, \"dragover\", g.prevent);\n        var t = null;\n        document.addEventListener(\"dragover\", function() {\n            (t && clearTimeout(t));\n            t = setTimeout(q, 839);\n        }, true);\n        r = m;\n    };\n    var s = {\n        registerStatusElement: function(t, u) {\n            r();\n            o[j.getID(t)] = {\n                element: t,\n                className: u\n            };\n        },\n        removeStatusElement: function(t) {\n            var u = j.getID(t), v = o[u];\n            i.removeClass(v.element, v.className);\n            delete o[u];\n        }\n    };\n    e.exports = s;\n});\n__d(\"DragDropTarget\", [\"Event\",\"CSS\",\"DocumentDragDrop\",\"DragDropFileUpload\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CSS\"), i = b(\"DocumentDragDrop\"), j = b(\"DragDropFileUpload\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n    function m(n) {\n        this._element = n;\n        this._listeners = [];\n        this._statusElem = n;\n        this._dragEnterCount = 0;\n        this._enabled = false;\n    };\n    k(m.prototype, {\n        _onFilesDropCallback: l,\n        _onURLDropCallback: l,\n        _onPlainTextDropCallback: l,\n        _onDropCallback: l,\n        _fileFilterFn: l.thatReturnsArgument,\n        setOnFilesDropCallback: function(n) {\n            this._onFilesDropCallback = n;\n            return this;\n        },\n        setOnURLDropCallback: function(n) {\n            this._onURLDropCallback = n;\n            return this;\n        },\n        setOnPlainTextDropCallback: function(n) {\n            this._onPlainTextDropCallback = n;\n            return this;\n        },\n        setOnDropCallback: function(n) {\n            this._onDropCallback = n;\n            return this;\n        },\n        enable: function() {\n            if (!j.isSupported()) {\n                return this\n            };\n            i.registerStatusElement(this._statusElem, \"fbWantsDragDrop\");\n            this._listeners.push(g.listen(this._element, \"dragenter\", this._onDragEnter.bind(this)));\n            this._listeners.push(g.listen(this._element, \"dragleave\", this._onDragLeave.bind(this)));\n            this._listeners.push(g.listen(this._element, \"dragover\", g.kill));\n            this._listeners.push(g.listen(this._element, \"drop\", function(n) {\n                this._dragEnterCount = 0;\n                h.removeClass(this._statusElem, \"fbDropReady\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhoto\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhotos\");\n                h.removeClass(this._statusElem, \"fbDropReadyLink\");\n                var o = {\n                }, p = false, q = this._fileFilterFn(n.dataTransfer.files);\n                if (q.length) {\n                    this._onFilesDropCallback(q, n);\n                    o.files = q;\n                    p = true;\n                }\n            ;\n                var r = (n.dataTransfer.getData(\"url\") || n.dataTransfer.getData(\"text/uri-list\"));\n                if (r) {\n                    this._onURLDropCallback(r, n);\n                    o.url = r;\n                    p = true;\n                }\n            ;\n                var s = n.dataTransfer.getData(\"text/plain\");\n                if (s) {\n                    this._onPlainTextDropCallback(s, n);\n                    o.plainText = s;\n                    p = true;\n                }\n            ;\n                if (p) {\n                    this._onDropCallback(o, n);\n                };\n                n.kill();\n            }.bind(this)));\n            this._enabled = true;\n            return this;\n        },\n        disable: function() {\n            if (!this._enabled) {\n                return this\n            };\n            i.removeStatusElement(this._statusElem, \"fbWantsDragDrop\");\n            h.removeClass(this._statusElem, \"fbDropReady\");\n            h.removeClass(this._statusElem, \"fbDropReadyPhoto\");\n            h.removeClass(this._statusElem, \"fbDropReadyPhotos\");\n            h.removeClass(this._statusElem, \"fbDropReadyLink\");\n            while (this._listeners.length) {\n                this._listeners.pop().remove();;\n            };\n            this._enabled = false;\n            return this;\n        },\n        setFileFilter: function(n) {\n            this._fileFilterFn = n;\n            return this;\n        },\n        setStatusElement: function(n) {\n            this._statusElem = n;\n            return this;\n        },\n        _onDragEnter: function(n) {\n            if ((this._dragEnterCount === 0)) {\n                var o = n.dataTransfer.items, p = false;\n                for (var q = 0; (q < o.length); q++) {\n                    if (!o[q].type.match(\"image/*\")) {\n                        p = true;\n                        break;\n                    }\n                ;\n                };\n                h.addClass(this._statusElem, \"fbDropReady\");\n                if (p) {\n                    h.addClass(this._statusElem, \"fbDropReadyLink\");\n                }\n                 else if ((o.length > 1)) {\n                    h.addClass(this._statusElem, \"fbDropReadyPhotos\");\n                }\n                 else h.addClass(this._statusElem, \"fbDropReadyPhoto\");\n                \n            ;\n            }\n        ;\n            this._dragEnterCount++;\n        },\n        _onDragLeave: function() {\n            this._dragEnterCount = Math.max((this._dragEnterCount - 1), 0);\n            if ((this._dragEnterCount === 0)) {\n                h.removeClass(this._statusElem, \"fbDropReady\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhoto\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhotos\");\n                h.removeClass(this._statusElem, \"fbDropReadyLink\");\n            }\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"ComposerXDragDrop\", [\"Arbiter\",\"ComposerXController\",\"CSS\",\"DragDropTarget\",\"DOMQuery\",\"Parent\",\"URI\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ComposerXController\"), i = b(\"CSS\"), j = b(\"DragDropTarget\"), k = b(\"DOMQuery\"), l = b(\"Parent\"), m = b(\"URI\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"cx\"), q = \"/ajax/composerx/attachment/media/upload/\", r = \"/ajax/composerx/attachment/link/scraper/\", s = function(u) {\n        u();\n    };\n    function t(u, v, w, x) {\n        this._root = u;\n        this._composerID = v;\n        this._targetID = w;\n        x = (x || s);\n        this._dragdrop = new j(u).setOnFilesDropCallback(function(y) {\n            x(this._uploadFiles.bind(this, y));\n        }.bind(this)).setFileFilter(t.filterImages).enable();\n        t.handleDragEnterAndLeave(u);\n        g.subscribe(\"composer/deactivateDragdrop\", function() {\n            this.deactivate();\n        }.bind(this));\n        g.subscribe(\"composer/reactivateDragdrop\", function() {\n            this.reactivate();\n        }.bind(this));\n    };\n    n(t, {\n        handleDragEnterAndLeave: function(u) {\n            var v = k.scry(l.byClass(u, \"_119\"), \"._2wr\");\n            g.subscribe(\"dragenter\", function(w, x) {\n                if ((u == x.element)) {\n                    v.forEach(i.hide);\n                };\n            });\n            g.subscribe(\"dragleave\", function(w, x) {\n                if ((u == x.element)) {\n                    v.forEach(i.show);\n                };\n            });\n        },\n        filterImages: function(u) {\n            var v = [];\n            for (var w = 0; (w < u.length); w++) {\n                if (u[w].type.match(\"image/*\")) {\n                    v.push(u[w]);\n                };\n            };\n            return v;\n        }\n    });\n    n(t.prototype, {\n        enableURLDropping: function() {\n            this._dragdrop.setOnURLDropCallback(this._onURLDrop.bind(this));\n        },\n        deactivate: function() {\n            this._dragdrop.disable();\n        },\n        reactivate: function() {\n            this._dragdrop.enable();\n        },\n        _uploadFiles: function(u) {\n            h.getAttachment(this._root, q);\n            g.inform(((\"ComposerXFilesStore/filesDropped/\" + this._composerID) + \"/mediaupload\"), {\n                files: u\n            }, g.BEHAVIOR_PERSISTENT);\n        },\n        _onURLDrop: function(u) {\n            var v = new m(r);\n            v.addQueryData({\n                scrape_url: encodeURIComponent(u)\n            });\n            h.getAttachment(this._root, v.toString());\n        }\n    });\n    e.exports = t;\n});\n__d(\"PrivacyConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        FRIENDS_PLUS_GAMER_FRIENDS: 128,\n        FRIENDS_MINUS_ACQUAINTANCES: 127,\n        FACEBOOK_EMPLOYEES: 112,\n        CUSTOM: 111,\n        EVERYONE: 80,\n        NETWORKS_FRIENDS_OF_FRIENDS: 60,\n        NETWORKS_FRIENDS: 55,\n        FRIENDS_OF_FRIENDS: 50,\n        ALL_FRIENDS: 40,\n        SELF: 10,\n        NOBODY: 0\n    }, h = {\n        EVERYONE: 80,\n        NETWORKS_FRIENDS: 55,\n        FRIENDS_OF_FRIENDS: 50,\n        ALL_FRIENDS: 40,\n        SOME_FRIENDS: 30,\n        SELF: 10,\n        NO_FRIENDS: 0\n    }, i = {\n        NONE: 0,\n        TAGGEES: 1,\n        FRIENDS_OF_TAGGEES: 2\n    }, j = {\n        BaseValue: g,\n        FriendsValue: h,\n        TagExpansion: i\n    };\n    e.exports = j;\n});\n__d(\"ComposerXBootloadStatusAttachment\", [\"Event\",\"function-extensions\",\"Arbiter\",\"AsyncRequest\",\"Bootloader\",\"Class\",\"ComposerXAttachment\",\"ComposerXController\",\"ComposerXDragDrop\",\"ComposerXStore\",\"CSS\",\"DOM\",\"DOMQuery\",\"Focus\",\"Parent\",\"PlaceholderListener\",\"PrivacyConst\",\"URI\",\"SelectorDeprecated\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Class\"), l = b(\"ComposerXAttachment\"), m = b(\"ComposerXController\"), n = b(\"ComposerXDragDrop\"), o = b(\"ComposerXStore\"), p = b(\"CSS\"), q = b(\"DOM\"), r = b(\"DOMQuery\"), s = b(\"Focus\"), t = b(\"Parent\"), u = b(\"PlaceholderListener\"), v = b(\"PrivacyConst\"), w = b(\"URI\"), x = b(\"SelectorDeprecated\"), y = b(\"copyProperties\"), z = b(\"csx\"), aa = b(\"cx\"), ba = {\n    };\n    function ca(da, ea) {\n        this.parent.construct(this);\n        this._root = da;\n        this._config = ea;\n    };\n    k.extend(ca, l);\n    y(ca.prototype, {\n        _attachmentIsActive: false,\n        _bootloading: false,\n        _fullVersion: false,\n        _focusListener: null,\n        _privacyWidgetTags: null,\n        _scraper: null,\n        _dragdrop: null,\n        attachmentClassName: \"_4j\",\n        getRoot: function() {\n            return this._root;\n        },\n        initWithComponents: function(da) {\n            ba[this._composerID] = this;\n            this._attachmentIsActive = true;\n            var ea = r.find(this.getComponent(\"maininput\").element, \"textarea.input\");\n            if (this._fullVersion) {\n                this._fullInitWithComponents();\n            }\n             else if (!this._bootloading) {\n                if (r.contains(this._root, document.activeElement)) {\n                    this._onInitialFocus();\n                }\n                 else this._focusListener = g.listen(ea, \"focus\", this._onInitialFocus.bind(this));\n            \n            }\n        ;\n            this._dragEnterHandler = h.subscribe(\"dragenter\", function(fa, ga) {\n                if ((ga.element == this._root)) {\n                    var ha = ga.event.dataTransfer.items, ia;\n                    if (ha) {\n                        ia = n.filterImages(ha);\n                    };\n                    if ((ia && (ia.length > 0))) {\n                        s.set(ea);\n                    }\n                     else {\n                        var ja = t.byClass(this._root, \"focus_target\");\n                        u.expandInput(ja);\n                        if ((!this._bootloading && !this._fullVersion)) {\n                            this._onInitialFocus();\n                        };\n                    }\n                ;\n                }\n            ;\n            }.bind(this));\n            this.getComponent(\"maininput\").instance.setPlaceholder(this._config.mentionsPlaceholder);\n            if (!da) {\n                s.set(ea);\n            };\n            if (this._config.plus_version) {\n                this._dragdrop = new n(this._root, this._composerID, this._config.targetID);\n                this._dragdrop.enableURLDropping();\n            }\n        ;\n        },\n        _fullInitWithComponents: function() {\n            j.loadModules([\"ComposerXPrivacyWidgetTags\",\"URLScraper\",\"URI\",], function(da, ea, fa) {\n                this._tagger.init(this);\n                this._privacyWidgetTags = new da(this);\n                var ga = r.find(this.getComponent(\"maininput\").element, \"textarea.input\");\n                if (!this._scraper) {\n                    this._scraper = new ea(ga);\n                    this._scraper.subscribe(\"match\", function(ha, ia) {\n                        var ja = this._getScraperEndpoint();\n                        ja.addQueryData({\n                            scrape_url: encodeURIComponent(ia.url)\n                        });\n                        m.getAttachment(this._root, ja.toString());\n                    }.bind(this));\n                }\n            ;\n                this._scraper.enable();\n                this._scraper.check();\n            }.bind(this));\n            this._initPrivacyReminder();\n        },\n        _initPrivacyReminder: function() {\n            if ((!this._reminderDialog || this._reminderShown)) {\n                return\n            };\n            var da = this.getComponent(\"mainprivacywidget\"), ea = x.getSelectedOptions(da.element), fa = x.getOptionValue(ea[0]);\n            if ((fa !== String(v.BaseValue.SELF))) {\n                return\n            };\n            this._reminderDialog.setContext(this.getComponent(\"mainprivacywidget\").element).show();\n            this._reminderShown = true;\n            var ga = function() {\n                new i(\"/ajax/privacy/reminders/dismiss\").setData({\n                    type: \"only_me\"\n                }).send();\n                this._reminderDialog.hide();\n            }.bind(this);\n            this._reminderEvents = [g.listen(this._reminderDialog.getContent(), \"click\", ga),g.listen(this._reminderDialog.getContext(), \"click\", ga),];\n        },\n        cleanup: function() {\n            this._attachmentIsActive = false;\n            if (this._focusListener) {\n                this._focusListener.remove();\n                this._focusListener = null;\n            }\n        ;\n            if ((this._reminderDialog && this._reminderShown)) {\n                this._reminderDialog.hide();\n                this._reminderEvents.forEach(function(da) {\n                    da.remove();\n                });\n            }\n        ;\n            if (this._dragdrop) {\n                this._dragdrop.deactivate();\n                this._dragdrop = null;\n            }\n        ;\n            if (this._fullVersion) {\n                this._tagger.cleanup();\n                this._privacyWidgetTags.destroy();\n                this._privacyWidgetTags = null;\n                this._scraper.disable();\n            }\n        ;\n            if (this._dragEnterHandler) {\n                this._dragEnterHandler.unsubscribe();\n                this._dragEnterHandler = null;\n            }\n        ;\n        },\n        reset: function() {\n            var da = t.byClass(this._root, \"child_was_focused\");\n            if (da) {\n                p.removeClass(da, \"child_was_focused\");\n            };\n            if (this._tagger) {\n                this._tagger.reset();\n            };\n            this.getComponent(\"maininput\").instance.setPlaceholder(this._config.mentionsPlaceholder);\n        },\n        canSwitchAway: function() {\n            return !t.byClass(this._root, \"async_saving\");\n        },\n        setBootloadedContent: function(da, ea, fa, ga) {\n            this._reminderDialog = ga;\n            var ha = fa.map(function(ia) {\n                return ia.component_name;\n            });\n            o.waitForComponents(this._composerID, ha, function() {\n                var ia = r.find(this._root, \"._3-6\"), ja = r.find(this._root, \"._3-7\");\n                q.setContent(ia, da.tagger_content);\n                q.setContent(ja, da.tagger_icons);\n                m.addPlaceholders(this._root, this, fa);\n                this._tagger = ea;\n                this._fullVersion = true;\n                if (this._attachmentIsActive) {\n                    if (this._focusListener) {\n                        this._focusListener.remove();\n                        this._focusListener = null;\n                    }\n                ;\n                    this._fullInitWithComponents();\n                }\n            ;\n            }.bind(this));\n        },\n        _getScraperEndpoint: function() {\n            return w(\"/ajax/composerx/attachment/link/scraper/\");\n        },\n        _onInitialFocus: function() {\n            h.inform(\"composer/focus\");\n            m.getEndpoint(this._root, \"/ajax/composerx/attachment/status/bootload/\", true);\n            this._bootloading = true;\n        },\n        allowOGTagPreview: function() {\n            return true;\n        }\n    });\n    ca.setBootloadedContent = function(da, ea, fa, ga, ha) {\n        var ia = ba[da];\n        if (ia) {\n            ia.setBootloadedContent(ea, fa, ga, ha);\n        };\n    };\n    e.exports = ca;\n});\n__d(\"ComposerXMentionsInputReset\", [\"DOMQuery\",\"Input\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"Input\");\n    function i(j) {\n        var k = g.scry(j.element, \"textarea.input\")[0];\n        j.instance.reset();\n        h.reset(k);\n    };\n    e.exports = i;\n});\n__d(\"ComposerXOGTaggerIconReset\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    function i(j) {\n        g.removeClass(j.element, \"_4-jh\");\n        g.removeClass(j.element, \"_509o\");\n    };\n    e.exports = i;\n});\n__d(\"ComposerXPrivacyWidgetReset\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\");\n    function h(i) {\n        g.inform(\"Composer/changedtags\", {\n            withTags: [],\n            mention: {\n            },\n            eventTag: false\n        });\n    };\n    e.exports = h;\n});\n__d(\"ComposerXTaggerIconReset\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    function i(j) {\n        g.removeClass(j.element, \"_1dsa\");\n        g.removeClass(j.element, \"_1dsb\");\n        g.removeClass(j.element, \"_509o\");\n    };\n    e.exports = i;\n});\n__d(\"SwapButtonDEPRECATED\", [\"Event\",\"Arbiter\",\"copyProperties\",\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"copyProperties\"), j = b(\"CSS\");\n    function k(l, m, n) {\n        this._swapperButton = l;\n        this._swappeeButton = m;\n        g.listen(l, \"click\", this.swap.bind(this));\n        if (n) {\n            g.listen(m, \"click\", this.unswap.bind(this));\n        };\n        h.subscribe(\"SwapButtonDEPRECATED/focusOnJoinButton\", this.setFocusOnSwapper.bind(this), h.SUBSCRIBE_ALL);\n    };\n    i(k.prototype, {\n        _swapperButton: null,\n        _swappeeButton: null,\n        swap: function(l) {\n            j.hide(this._swapperButton);\n            j.show(this._swappeeButton);\n            ((l !== false) && this._swappeeButton.focus());\n        },\n        unswap: function(l) {\n            j.show(this._swapperButton);\n            j.hide(this._swappeeButton);\n            ((l !== false) && this._swapperButton.focus());\n        },\n        toggle: function() {\n            j.toggle(this._swapperButton);\n            j.toggle(this._swappeeButton);\n        },\n        setFocusOnSwapper: function() {\n            this._swapperButton.focus();\n        }\n    });\n    e.exports = k;\n});\n__d(\"SubscribeButton\", [\"Arbiter\",\"AsyncRequest\",\"Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Event\"), j = {\n        SUBSCRIBED: \"FollowingUser\",\n        UNSUBSCRIBED: \"UnfollowingUser\",\n        init: function(k, l, m, n, o, p) {\n            i.listen(l, \"click\", function() {\n                g.inform(j.SUBSCRIBED, {\n                    profile_id: n\n                });\n            });\n            g.subscribe(j.SUBSCRIBED, function(q, r) {\n                if ((n === r.profile_id)) {\n                    if (!o) {\n                        m.suppressNextMouseEnter();\n                    };\n                    k.swap();\n                    if ((p === true)) {\n                        new h().setURI(\"/ajax/profile/suggestions_on_following.php\").setData({\n                            profileid: n\n                        }).send();\n                    };\n                }\n            ;\n            });\n            g.subscribe(j.UNSUBSCRIBED, function(q, r) {\n                if ((n === r.profile_id)) {\n                    k.unswap();\n                    m.hideFlyout();\n                    g.inform(\"SubMenu/Reset\");\n                }\n            ;\n            });\n        },\n        initUnsubscribe: function(k, l) {\n            i.listen(k, \"click\", function() {\n                g.inform.bind(g, j.UNSUBSCRIBED, {\n                    profile_id: l\n                }).defer();\n            });\n        }\n    };\n    e.exports = j;\n});\n__d(\"AudienceSelectorTags\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        hasTags: function(i) {\n            return g.hasOwnProperty(i);\n        },\n        setHasTags: function(i) {\n            if (i) {\n                g[i] = true;\n            };\n        }\n    };\n    e.exports = h;\n});\n__d(\"BasePrivacyOption\", [\"Arbiter\",\"AudienceSelectorTags\",\"copyProperties\",\"CSS\",\"DOM\",\"Env\",\"fbt\",\"Parent\",\"PrivacyConst\",\"SelectorDeprecated\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AudienceSelectorTags\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"fbt\"), n = b(\"Parent\"), o = b(\"PrivacyConst\"), p = b(\"SelectorDeprecated\"), q = b(\"tx\");\n    function r(s) {\n        this._selector = n.byClass(s, \"audienceSelector\");\n        this._plusLabel = k.scry(s, \".plusLabel\")[0];\n        if (!this._selector) {\n            return\n        };\n        this._elem = s;\n        this._taggedIDs = [];\n        this._tags = [];\n        this._hasEvent = false;\n        this._recalculateTooltipAndLabel();\n        this._updateSelector();\n        g.subscribe(\"Composer/changedtags\", function(t, u) {\n            if (!this._getChangedData()) {\n                return\n            };\n            var v = this._hasEvent;\n            this._hasEvent = !!u.eventTag;\n            this._tags = u.withTags.map(function(y) {\n                return y.getText();\n            });\n            this._taggedIDs = u.withTags.map(function(y) {\n                return y.getValue();\n            });\n            for (var w in u.mention) {\n                if (((u.mention[w].type == \"user\") && (u.mention[w].uid != l.user))) {\n                    this._tags.push(u.mention[w].text);\n                    this._taggedIDs.push(u.mention[w].uid);\n                }\n                 else if ((u.mention[w].type == \"event\")) {\n                    this._hasEvent = true;\n                }\n            ;\n            };\n            if ((this._hasEvent && (v != this._hasEvent))) {\n                this._eventTagChanged();\n            };\n            var x = this._recalculateTooltipAndLabel();\n            if ((x && p.isOptionSelected(this._elem))) {\n                this._updateSelector();\n                g.inform(\"SelectedPrivacyOption/changed\", this._getChangedData());\n            }\n        ;\n        }.bind(this));\n        p.listen(this._selector, \"change\", this._updateSelector.bind(this));\n    };\n    i(r.prototype, {\n        _eventTagChanged: function() {\n        \n        },\n        _getChangedData: function() {\n            return null;\n        },\n        _recalculateTooltipAndLabel: function() {\n            var s = this._tooltip, t = this._label, u = this._getIncludedAudience(), v = this._getExcludedAudience(), w = this._getTagExpansionText();\n            if (w) {\n                u = m._(\"{list of people who can see this}, {list of additional people who can see this}\", [m.param(\"list of people who can see this\", u),m.param(\"list of additional people who can see this\", w),]);\n            };\n            this._tooltip = this._getCombinedSentence(u, v);\n            this._recalcLabel();\n            return (((s != this._tooltip)) || ((t != this._label)));\n        },\n        _getIncludedAudience: function() {\n            return this._elem.getAttribute(\"data-label\");\n        },\n        _getExcludedAudience: function() {\n            return \"\";\n        },\n        _getTagExpansionText: function() {\n            var s = this._getTagExpansionBehavior();\n            if ((!!this._taggedIDs.length || this._alreadyHasTags())) {\n                if ((s == o.TagExpansion.FRIENDS_OF_TAGGEES)) {\n                    if (this._hasEvent) {\n                        return \"friends of anyone tagged, event guests\"\n                    };\n                    return \"friends of anyone tagged\";\n                }\n                 else if ((s == o.TagExpansion.TAGGEES)) {\n                    return \"Anyone tagged\"\n                }\n            ;\n                return \"\";\n            }\n        ;\n            if ((this._hasEvent && (s == o.TagExpansion.FRIENDS_OF_TAGGEES))) {\n                return \"event guests\"\n            };\n            return \"\";\n        },\n        _getCombinedSentence: function(s, t) {\n            if (!t) {\n                return s\n            };\n            return m._(\"{list of people who can see this}; Except: {list of people who cannot see this}\", [m.param(\"list of people who can see this\", s),m.param(\"list of people who cannot see this\", t),]);\n        },\n        _recalcLabel: function() {\n            this._label = this._elem.getAttribute(\"data-label\");\n            if (this._showPlusLabel()) {\n                this._label += \" (+)\";\n            };\n            j.conditionShow(this._plusLabel, this._showPlusLabel());\n        },\n        _showPlusLabel: function() {\n            var s = this._getTagExpansionBehavior();\n            return (((!!this._taggedIDs.length && (s != o.TagExpansion.NONE))) || ((!!this._hasEvent && (s == o.TagExpansion.FRIENDS_OF_TAGGEES))));\n        },\n        _getTagExpansionBehavior: function() {\n            return o.TagExpansion.NONE;\n        },\n        _alreadyHasTags: function() {\n            var s = k.scry(this._selector, \"*[data-oid]\")[0];\n            s = (s && s.getAttribute(\"data-oid\"));\n            return (s && h.hasTags(s));\n        },\n        _updateSelector: function() {\n            if (p.isOptionSelected(this._elem)) {\n                p.setButtonTooltip(this._selector, this._tooltip);\n                return false;\n            }\n        ;\n            return true;\n        }\n    });\n    e.exports = r;\n});\n__d(\"CustomPrivacyOption\", [\"Arbiter\",\"AsyncDialog\",\"AsyncRequest\",\"BasePrivacyOption\",\"Class\",\"DOM\",\"Event\",\"Form\",\"PrivacyConst\",\"SelectorDeprecated\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncDialog\"), i = b(\"AsyncRequest\"), j = b(\"BasePrivacyOption\"), k = b(\"Class\"), l = b(\"DOM\"), m = b(\"Event\"), n = b(\"Form\"), o = b(\"PrivacyConst\"), p = b(\"SelectorDeprecated\"), q = b(\"copyProperties\");\n    function r(s, t, u, v, w, x, y, z, aa, ba, ca, da) {\n        if (!s) {\n            return\n        };\n        this._baseAudienceValue = aa;\n        this._includedAudience = ba;\n        this._excludedAudience = ca;\n        this._tagExpansionBehavior = da;\n        (function() {\n            this.initCustomState(s, t, u);\n            m.listen(s, \"click\", function(event) {\n                this.openCustomDialog(event, t, v, x, y, z);\n            }.bind(this));\n            p.listen(this._selector, \"select\", function(ea) {\n                if ((ea.option._id != this._id)) {\n                    this.clearCustomState();\n                };\n            }.bind(this));\n            this.parent.construct(this, s);\n        }).bind(this).defer();\n    };\n    k.extend(r, j);\n    q(r, {\n        _instances: {\n        },\n        update: function(s, t, u, v, w, x, y, z) {\n            var aa = r._instances[s];\n            aa._update(t, u)._updateOptionValues(w, x, y, z)._updateOption(u);\n            g.inform(\"Form/change\", {\n                node: aa._container\n            });\n        },\n        getData: function(s) {\n            return r._instances[s]._privacyData;\n        },\n        setPrivacyData: function(s, t, u) {\n            r._instances[s]._update(t, u);\n            r._instances[s]._updateOption(u);\n        }\n    });\n    q(r.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: this._baseAudienceValue\n            };\n        },\n        _updateOptionValues: function(s, t, u, v) {\n            this._baseAudienceValue = s;\n            this._includedAudience = t;\n            this._excludedAudience = u;\n            this._tagExpansionBehavior = v;\n            return this;\n        },\n        _updateOption: function(s) {\n            var t = (p.getOption(this._selector, s) || p.getOption(this._selector, (o.BaseValue.CUSTOM + \"\")));\n            this._recalculateTooltipAndLabel();\n            g.inform(\"CustomPrivacyOption/update\", {\n                selector: this._selector,\n                option: t,\n                tooltip: this._tooltip,\n                label: this._label\n            });\n            return this;\n        },\n        _getIncludedAudience: function() {\n            return this._includedAudience;\n        },\n        _getExcludedAudience: function() {\n            return this._excludedAudience;\n        },\n        _getTagExpansionBehavior: function() {\n            return this._tagExpansionBehavior;\n        },\n        _update: function(s, t) {\n            var u = ((t == o.BaseValue.CUSTOM) || !p.getOption(this._selector, t)), v = this._selector.getAttribute(\"data-name\");\n            this.updateCustomState(s, u, v);\n            return this;\n        },\n        initCustomState: function(s, t, u) {\n            r._instances[t] = this;\n            this._container = l.find(s, \".customPrivacyInputs\");\n            this._id = u;\n            this._privacyData = {\n            };\n            var v = n.serialize(this._container);\n            if (v.audience) {\n                this._privacyData = v.audience[u];\n            };\n            return s;\n        },\n        openCustomDialog: function(event, s, t, u, v, w) {\n            var x = new i(\"/ajax/privacy/custom_dialog/\").setData({\n                option_id: s,\n                id: this._id,\n                privacy_data: this._privacyData,\n                explain_tags: t,\n                autosave: u,\n                limit_to_friends: v,\n                source: w\n            });\n            x.setRelativeTo(event.getTarget());\n            h.send(x);\n        },\n        updateCustomState: function(s, t, u) {\n            this.clearCustomState();\n            this._privacyData = q({\n            }, s);\n            if (t) {\n                if (u) {\n                    u = u.slice(0, -\"[value]\".length);\n                    var v = {\n                    };\n                    v[u] = s;\n                    n.createHiddenInputs(v, this._container, null, true);\n                }\n            \n            };\n        },\n        clearCustomState: function() {\n            this._privacyData = {\n            };\n            l.empty(this._container);\n        }\n    });\n    e.exports = r;\n});\n__d(\"DynamicIconSelector\", [\"Button\",\"CSS\",\"DOM\",\"SelectorDeprecated\",], function(a, b, c, d, e, f) {\n    var g = b(\"Button\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"SelectorDeprecated\"), k = {\n        swapIcon: function(l) {\n            var m = j.getSelectedOptions(l)[0], n = (m && i.scry(m, \".itemIcon\")[0]), o = j.getSelectorButton(l);\n            if (n) {\n                g.setIcon(o, n.cloneNode(true));\n            }\n             else {\n                var p = i.scry(o, \".img\")[0];\n                (p && i.remove(p));\n            }\n        ;\n            h.conditionClass(o, \"uiSelectorChevronOnly\", !n);\n        }\n    };\n    j.subscribe(\"change\", function(l, m) {\n        var n = m.selector;\n        if (h.hasClass(n, \"dynamicIconSelector\")) {\n            k.swapIcon(n);\n        };\n    });\n    e.exports = k;\n});\n__d(\"AudienceSelector\", [\"Arbiter\",\"AudienceSelectorTags\",\"CSS\",\"CustomPrivacyOption\",\"DOM\",\"DynamicIconSelector\",\"PrivacyConst\",\"SelectorDeprecated\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AudienceSelectorTags\"), i = b(\"CSS\"), j = b(\"CustomPrivacyOption\"), k = b(\"DOM\"), l = b(\"DynamicIconSelector\"), m = b(\"PrivacyConst\"), n = b(\"SelectorDeprecated\"), o = {\n    };\n    n.subscribe(\"select\", function(q, r) {\n        if (!i.hasClass(r.selector, \"audienceSelector\")) {\n            return\n        };\n        var s = n.getOptionValue(r.option);\n        r.value = s;\n        g.inform(\"AudienceSelector/changed\", r);\n        if (((s == m.BaseValue.CUSTOM) && !i.hasClass(r.option, \"noDialog\"))) {\n            n.toggle(r.selector);\n            return false;\n        }\n    ;\n        if (i.hasClass(r.selector, \"dataTooltip\")) {\n            var t = k.find(r.option, \".itemAnchor\").getAttribute(\"data-tooltip\");\n            n.setButtonTooltip(r.selector, (t || null));\n        }\n    ;\n        if (!i.hasClass(r.option, \"specialOption\")) {\n            return\n        };\n        var u = k.find(r.option, \"a\").getAttribute(\"data-type\");\n        if (i.hasClass(r.option, \"moreOption\")) {\n            i.addClass(r.selector, u);\n            i.addClass(r.selector, \"showSecondaryOptions\");\n            return false;\n        }\n         else if (i.hasClass(r.option, \"returnOption\")) {\n            i.removeClass(r.selector, \"showSecondaryOptions\");\n            i.removeClass(r.selector, \"friendList\");\n            return false;\n        }\n        \n    ;\n    });\n    var p = {\n        keepSynchronized: function(q, r) {\n            (o[q] || (o[q] = {\n            }));\n            o[q][r.id] = r;\n        },\n        setHasTags: function(q) {\n            h.setHasTags(q);\n        }\n    };\n    g.subscribe(\"CustomPrivacyOption/update\", function(q, r) {\n        if (!i.hasClass(r.selector, \"audienceSelector\")) {\n            return\n        };\n        n.setSelected(r.selector, n.getOptionValue(r.option));\n        l.swapIcon(r.selector);\n        n.setButtonLabel(r.selector, r.label);\n        n.setButtonTooltip(r.selector, r.tooltip);\n        g.inform(\"AudienceSelector/update\", r);\n    });\n    g.subscribe([\"AudienceSelector/changed\",\"AudienceSelector/update\",], function(event, q) {\n        var r = n.getOptionValue(q.option), s = {\n        };\n        if ((r == m.BaseValue.CUSTOM)) {\n            if ((event == \"AudienceSelector/changed\")) {\n                return\n            };\n            s = j.getData(q.option.id);\n        }\n    ;\n        for (var t in o) {\n            var u = o[t];\n            if (u[q.selector.id]) {\n                g.inform(\"AudienceSelector/syncNonSelectorIcon\", {\n                    category: t\n                });\n                for (var v in u) {\n                    var w = u[v];\n                    if ((!w || (q.selector === w))) {\n                        continue;\n                    };\n                    if ((n.getValue(w) !== r)) {\n                        n.setSelected(w, r);\n                        l.swapIcon(w);\n                    }\n                ;\n                    if ((r == m.BaseValue.CUSTOM)) {\n                        var x = n.getOption(w, (m.BaseValue.CUSTOM + \"\"));\n                        if (x) {\n                            j.setPrivacyData(x.id, s, r);\n                            n.setButtonTooltip(w, q.tooltip);\n                        }\n                    ;\n                    }\n                ;\n                };\n            }\n        ;\n        };\n    });\n    e.exports = p;\n});\n__d(\"ErrorDialog\", [\"Dialog\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Dialog\"), h = b(\"emptyFunction\"), i = {\n        showAsyncError: function(j) {\n            try {\n                return i.show(j.getErrorSummary(), j.getErrorDescription());\n            } catch (k) {\n                alert(j);\n            };\n        },\n        show: function(j, k, l, m) {\n            return (new g()).setTitle(j).setBody(k).setButtons([g.OK,]).setStackable(true).setModal(true).setHandler((l || h)).setButtonsMessage((m || \"\")).show();\n        }\n    };\n    e.exports = i;\n});\n__d(\"Tour\", [\"Arbiter\",\"LayerDestroyOnHide\",\"LayerHideOnEscape\",\"copyProperties\",\"NavigationMessage\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"LayerDestroyOnHide\"), i = b(\"LayerHideOnEscape\"), j = b(\"copyProperties\"), k = b(\"NavigationMessage\");\n    function l() {\n        if (l._instance) {\n            l._instance.setTourComplete();\n        };\n        l._instance = this;\n    };\n    j(l.prototype, {\n        tourStarted: false,\n        tourComplete: false,\n        _navigationBeginToken: null,\n        _pageLeaveToken: null,\n        steps: {\n        },\n        openDialog: null,\n        init: function() {\n            this._pageLeaveToken = g.subscribe(\"onload/exit\", this.handleLeavePage.bind(this));\n            this._navigationBeginToken = g.subscribe(k.NAVIGATION_BEGIN, this.handleTransition.bind(this));\n            this.steps = {\n            };\n            return this;\n        },\n        registerStep: function(m, n) {\n            m.disableBehavior(h);\n            m.disableBehavior(i);\n            this.steps[n] = m;\n            m.subscribe(\"show\", function() {\n                m.inform(\"tour-dialog-show\", m);\n            });\n            if (!this.getTourStarted()) {\n                this.setTourStart();\n            };\n        },\n        _unsubscribeSubscriptions: function() {\n            this._navigationBeginToken.unsubscribe();\n            this._pageLeaveToken.unsubscribe();\n        },\n        handleLeavePage: function() {\n            this._unsubscribeSubscriptions();\n        },\n        handleTransition: function() {\n            this._unsubscribeSubscriptions();\n        },\n        handleTourStart: function() {\n        \n        },\n        handleTourStop: function() {\n        \n        },\n        handleTourComplete: function() {\n        \n        },\n        showStep: function(m) {\n            var n = this.steps[m];\n            if (!((this.openDialog == n))) {\n                this.hideOpenDialog();\n            };\n            if (!n) {\n                return\n            };\n            this.openDialog = n;\n            n.show();\n        },\n        hideOpenDialog: function() {\n            if (this.openDialog) {\n                this.openDialog.hide();\n                this.openDialog = null;\n            }\n        ;\n        },\n        getTourStarted: function() {\n            return this.tourStarted;\n        },\n        setTourStart: function() {\n            this.tourStarted = true;\n            this.handleTourStart();\n        },\n        setTourStop: function() {\n            this.tourStarted = false;\n            this.hideOpenDialog();\n            this.handleTourStop();\n        },\n        setTourComplete: function() {\n            if (this.tourComplete) {\n                return\n            };\n            this.setTourStop();\n            this.tourComplete = true;\n            this.handleTourComplete();\n        },\n        hideStep: function(m) {\n            var n = this.steps[m];\n            (n && n.hide());\n        }\n    });\n    j(l, {\n        getInstance: function() {\n            return (l._instance || (l._instance = new l()));\n        }\n    });\n    e.exports = l;\n});\n__d(\"FutureSideNavItem\", [\"Arbiter\",\"CSS\",\"DOM\",\"Parent\",\"$\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Parent\"), k = b(\"$\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\");\n    function n(o, p) {\n        this.id = o.id;\n        this.up = p;\n        this.endpoint = o.endpoint;\n        this.type = o.type;\n        this.node = (o.node || k(o.id));\n        this.paths = (o.path ? m(o.path) : []);\n        this.keys = (o.key ? m(o.key) : []);\n        var q = this._findKeys(this.keys);\n        this.numericKey = (q.numeric || this.keys[0]);\n        this.textKey = (q.text || this.keys[0]);\n        this._pathPattern = this._buildRegex(this.paths);\n        this._keyPattern = this._buildRegex(this.keys);\n        this.hideLoading();\n        this.hideSelected();\n    };\n    l(n.prototype, {\n        equals: function(o) {\n            return (o && (o.id === this.id));\n        },\n        getLinkNode: function() {\n            return ((i.scry(this.node, \"a.item\")[0] || i.scry(this.node, \"a.subitem\")[0]));\n        },\n        matchPath: function(o) {\n            return this._matchInput(this._pathPattern, o);\n        },\n        matchKey: function(o) {\n            return this._matchInput(this._keyPattern, o);\n        },\n        _matchInput: function(o, p) {\n            var q = (o && o.exec(p));\n            return (q && q.slice(1));\n        },\n        getTop: function() {\n            return (this.isTop() ? this : this.up.getTop());\n        },\n        isTop: function(o) {\n            return !this.up;\n        },\n        setCount: function(o, p) {\n            return this._updateCount(o, true);\n        },\n        incrementCount: function(o, p) {\n            return this._updateCount(o, false);\n        },\n        _updateCount: function(o, p, q) {\n            var r = i.scry(this.node, \"span.count\")[0], s = (r && i.scry(r, \"span.countValue\")[0]);\n            if (s) {\n                var t = (p ? 0 : parseInt(i.getText(s), 10)), u = Math.max(0, (t + o)), v = (this.isTop() ? \"hidden\" : \"hiddenSubitem\");\n                i.setContent(s, u);\n                (q && h.conditionClass(this.node, v, !u));\n                h.conditionClass(r, \"hidden_elem\", !u);\n                if (this.isTop()) {\n                    var w = i.scry(this.node, \"div.linkWrap\")[0];\n                    if (w) {\n                        h.conditionClass(w, \"noCount\", !u);\n                        h.conditionClass(w, \"hasCount\", u);\n                    }\n                ;\n                }\n            ;\n            }\n        ;\n            g.inform(\"NavigationMessage.COUNT_UPDATE_DONE\");\n        },\n        showLoading: function() {\n            h.addClass(this.node, \"loading\");\n        },\n        hideLoading: function() {\n            h.removeClass(this.node, \"loading\");\n        },\n        showSelected: function() {\n            h.addClass(this.node, \"selectedItem\");\n            (h.hasClass(this.node, \"hider\") && h.addClass(this._getExpanderParent(), \"expandedMode\"));\n        },\n        hideSelected: function() {\n            h.removeClass(this.node, \"selectedItem\");\n        },\n        showChildren: function() {\n            h.addClass(this.node, \"open\");\n        },\n        hideChildren: function() {\n            h.removeClass(this.node, \"open\");\n        },\n        _getExpanderParent: function() {\n            return j.byClass(this.node, \"expandableSideNav\");\n        },\n        _buildRegex: function(o) {\n            if (o.length) {\n                var p = o.map(function(q) {\n                    if ((typeof q === \"string\")) {\n                        return q.replace(/([^a-z0-9_])/gi, \"\\\\$1\");\n                    }\n                     else if ((q && q.regex)) {\n                        return q.regex\n                    }\n                ;\n                });\n                return new RegExp(((\"^(?:\" + p.join(\"|\")) + \")$\"));\n            }\n        ;\n        },\n        _findKeys: function(o) {\n            var p = /^(app|group|fl)_/, q = {\n            };\n            for (var r = 0; (r < o.length); r++) {\n                var s = p.test(o[r]);\n                if ((s && !q.numeric)) {\n                    q.numeric = o[r];\n                }\n                 else if ((!s && !q.text)) {\n                    q.text = o[r];\n                }\n            ;\n                if ((q.numeric && q.text)) {\n                    break;\n                };\n            };\n            return q;\n        }\n    });\n    e.exports = n;\n});\n__d(\"FutureSideNavSection\", [\"Bootloader\",\"DOMQuery\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"DOMQuery\"), i = b(\"$\"), j = b(\"copyProperties\");\n    function k(l) {\n        this.id = l.id;\n        this.node = (this.node || i(l.id));\n        this.editEndpoint = l.editEndpoint;\n    };\n    j(k.prototype, {\n        equals: function(l) {\n            return (l && (l.id === this.id));\n        },\n        getEditorAsync: function(l) {\n            g.loadModules([\"SortableSideNav\",], function(m) {\n                var n = new m(h.find(this.node, \"ul.uiSideNav\"), this.editEndpoint);\n                l(n);\n            }.bind(this));\n        }\n    });\n    e.exports = k;\n});\n__d(\"FutureSideNav\", [\"Arbiter\",\"Bootloader\",\"ChannelConstants\",\"CSS\",\"DOM\",\"Event\",\"FutureSideNavItem\",\"FutureSideNavSection\",\"NavigationMessage\",\"PageTransitions\",\"Parent\",\"Run\",\"SelectorDeprecated\",\"URI\",\"UserAgent\",\"Vector\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"ChannelConstants\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Event\"), m = b(\"FutureSideNavItem\"), n = b(\"FutureSideNavSection\"), o = b(\"NavigationMessage\"), p = b(\"PageTransitions\"), q = b(\"Parent\"), r = b(\"Run\"), s = b(\"SelectorDeprecated\"), t = b(\"URI\"), u = b(\"UserAgent\"), v = b(\"Vector\"), w = b(\"copyProperties\"), x = b(\"createArrayFrom\");\n    function y() {\n        (y.instance && y.instance.uninstall());\n        y.instance = this;\n    };\n    y.instance = null;\n    y.getInstance = function() {\n        return (y.instance || new y());\n    };\n    w(y.prototype, {\n        init: function(z, aa, ba) {\n            this.root = z;\n            this.items = {\n            };\n            this.sections = {\n            };\n            this.editor = null;\n            this.editing = false;\n            this.selected = null;\n            this.loading = null;\n            this.keyParam = \"sk\";\n            this.defaultKey = aa;\n            this.uri = t.getRequestURI();\n            this.ajaxPipe = ba;\n            this.ajaxPipeEndpoints = {\n            };\n            this.sidecol = true;\n            this._installed = true;\n            this._handlePageTransitions = true;\n            p.registerHandler(function(ca) {\n                return (this._handlePageTransitions && this.handlePageTransition(ca));\n            }.bind(this));\n            this._eventHandlers = [];\n            this._arbiterSubscriptions = [g.subscribe(o.NAVIGATION_COMPLETED, this.navigationComplete.bind(this)),g.subscribe(o.NAVIGATION_FAILED, this.navigationFailed.bind(this)),g.subscribe(o.NAVIGATION_COUNT_UPDATE, this.navigationCountUpdate.bind(this)),g.subscribe(o.NAVIGATION_SELECT, this.navigationSelect.bind(this)),g.subscribe(i.getArbiterType(\"nav_update_counts\"), this.navigationCountUpdateFromPresence.bind(this)),];\n            this._explicitHover = [];\n            this._ensureHover(\"sideNavItem\");\n            this._eventHandlers.push(l.listen(window, \"resize\", this._handleResize.bind(this)));\n            this._checkNarrow();\n            this._selectorSubscriptions = [];\n            (window.Selector && this._selectorSubscriptions.push(s.subscribe([\"open\",\"close\",], function(ca, da) {\n                var ea = q.byClass(da.selector, \"sideNavItem\");\n                (ea && j.conditionClass(ea, \"editMenuOpened\", (ca === \"open\")));\n            })));\n            r.onLeave(this.uninstall.bind(this));\n            if (this._pendingSections) {\n                this._pendingSections.forEach(function(ca) {\n                    this.initSection.apply(this, ca);\n                }.bind(this));\n            };\n        },\n        _handleResize: (function() {\n            var z;\n            return function() {\n                (z && clearTimeout(z));\n                z = this._checkNarrow.bind(this).defer(200);\n            };\n        })(),\n        _checkNarrow: function() {\n            j.conditionClass(this.root, \"uiNarrowSideNav\", (v.getElementPosition(this.root).x < 20));\n        },\n        _ensureHover: function(z) {\n            if ((u.ie() < 8)) {\n                h.loadModules([\"ExplicitHover\",], function(aa) {\n                    this._explicitHover.push(new aa(this.root, z));\n                }.bind(this));\n            };\n        },\n        uninstall: function() {\n            if (this._installed) {\n                this._installed = false;\n                this._handlePageTransitions = false;\n                this._arbiterSubscriptions.forEach(g.unsubscribe);\n                this._selectorSubscriptions.forEach(function(z) {\n                    s.unsubscribe(z);\n                });\n                this._eventHandlers.forEach(function(z) {\n                    z.remove();\n                });\n                this._explicitHover.forEach(function(z) {\n                    z.uninstall();\n                });\n            }\n        ;\n        },\n        initSection: function(z, aa) {\n            if (!this._installed) {\n                this._pendingSections = (this._pendingSections || []);\n                this._pendingSections.push(arguments);\n                return;\n            }\n        ;\n            this._initItems(aa);\n            this._initSection(z);\n        },\n        addItem: function(z, aa) {\n            this._initItem(z, aa);\n        },\n        _initItems: function(z) {\n            var aa = function(ba, ca) {\n                var da = this._initItem(ba, ca);\n                if (ba.children) {\n                    ba.children.forEach(function(ea) {\n                        aa(ea, da);\n                    });\n                };\n            }.bind(this);\n            x(z).forEach(function(ba) {\n                aa(ba, null);\n            });\n        },\n        _initItem: function(z, aa) {\n            var ba = this.items[z.id] = this._constructItem(z, aa);\n            if ((ba.equals(this.selected) || z.selected)) {\n                this.setSelected(ba);\n            };\n            var ca = ba.getLinkNode();\n            (ca && this._eventHandlers.push(l.listen(ca, \"click\", function(event) {\n                return !this.editing;\n            }.bind(this))));\n            return ba;\n        },\n        _initSection: function(z) {\n            var aa = this.sections[z.id] = this._constructSection(z);\n            this._eventHandlers.push(l.listen(aa.node, \"click\", this.handleSectionClick.bind(this, aa)));\n            k.scry(aa.node, \"div.bookmarksMenuButton\").forEach(j.show);\n            return aa;\n        },\n        _constructItem: function(z, aa) {\n            return new m(z, aa);\n        },\n        _constructSection: function(z) {\n            return new n(z);\n        },\n        handleSectionClick: function(z, event) {\n            var aa = this._getEventTarget(event, \"a\"), ba = this._getItemForNode(aa);\n            if (!aa) {\n                return;\n            }\n             else if (j.hasClass(aa.parentNode, \"uiMenuItem\")) {\n                this._handleMenuClick(z, ba, aa.parentNode, event);\n            }\n             else this._handleLinkClick(z, aa, event);\n            \n        ;\n        },\n        _getEventTarget: function(event, z) {\n            var aa = event.getTarget();\n            if ((aa.tagName !== z.toUpperCase())) {\n                return q.byTag(aa, z);\n            }\n             else return aa\n        ;\n        },\n        _handleMenuClick: function(z, aa, ba, event) {\n            if (j.hasClass(ba, \"rearrange\")) {\n                this.beginEdit(z);\n            };\n        },\n        _handleLinkClick: function(z, aa, event) {\n            if (j.hasClass(aa, \"navEditDone\")) {\n                (this.editing ? this.endEdit() : this.beginEdit(z));\n                event.kill();\n            }\n        ;\n        },\n        getItem: function(z) {\n            if (this._isCurrentPath(z)) {\n                return this._getItemForKey((this._getKey(z.getQueryData()) || this.defaultKey));\n            }\n             else return this._getItemForPath(z.getPath())\n        ;\n        },\n        getNodeForKey: function(z) {\n            var aa = this._getItemForKey(z);\n            if (aa) {\n                return aa.node\n            };\n        },\n        _isCurrentPath: function(z) {\n            return ((z.getDomain() === this.uri.getDomain()) && (z.getPath() === this.uri.getPath()));\n        },\n        _getKey: function(z) {\n            return z[this.keyParam];\n        },\n        _getItemForNode: function(z) {\n            z = q.byClass(z, \"sideNavItem\");\n            return (z && this.items[z.id]);\n        },\n        _getItemForKey: function(z) {\n            return this._findItem(function(aa) {\n                return aa.matchKey(z);\n            });\n        },\n        _getItemForPath: function(z) {\n            return this._findItem(function(aa) {\n                return aa.matchPath(z);\n            });\n        },\n        _findItem: function(z) {\n            for (var aa in this.items) {\n                if (z(this.items[aa])) {\n                    return this.items[aa]\n                };\n            };\n        },\n        removeItem: function(z) {\n            if ((z && this.items[z.id])) {\n                k.remove(z.node);\n                delete this.items[z.id];\n            }\n        ;\n        },\n        removeItemByKey: function(z) {\n            this.removeItem(this._getItemForKey(z));\n        },\n        moveItem: function(z, aa, ba) {\n            var ca = k.find(z.node, \"ul.uiSideNav\");\n            ((ba ? k.prependContent : k.appendContent))(ca, aa.node);\n        },\n        setLoading: function(z) {\n            (this.loading && this.loading.hideLoading());\n            this.loading = z;\n            (this.loading && this.loading.showLoading());\n        },\n        setSelected: function(z) {\n            this.setLoading(null);\n            if (this.selected) {\n                this.selected.hideSelected();\n                this.selected.getTop().hideChildren();\n            }\n        ;\n            this.selected = z;\n            if (this.selected) {\n                this.selected.showSelected();\n                this.selected.getTop().showChildren();\n            }\n        ;\n        },\n        handlePageTransition: function(z) {\n            var aa = this.getItem(z), ba = ((aa && aa.endpoint) && this._doPageTransition(aa, z));\n            return ba;\n        },\n        _doPageTransition: function(z, aa) {\n            this.setLoading(z);\n            this._sendPageTransition(z.endpoint, w(this._getTransitionData(z, aa), aa.getQueryData()));\n            return true;\n        },\n        _sendPageTransition: function(z, aa) {\n            aa.endpoint = z;\n            g.inform(o.NAVIGATION_BEGIN, {\n                useAjaxPipe: this._useAjaxPipe(z),\n                params: aa\n            });\n        },\n        _getTransitionData: function(z, aa) {\n            var ba = {\n            };\n            ba.sidecol = this.sidecol;\n            ba.path = aa.getPath();\n            ba[this.keyParam] = z.textKey;\n            ba.key = z.textKey;\n            return ba;\n        },\n        _useAjaxPipe: function(z) {\n            return (this.ajaxPipe || this.ajaxPipeEndpoints[z]);\n        },\n        navigationComplete: function() {\n            (this.loading && this.setSelected(this.loading));\n        },\n        navigationFailed: function() {\n            this.setLoading(null);\n        },\n        navigationSelect: function(z, aa) {\n            var ba = this._getItemForKey(this._getKey(aa));\n            if (aa.asLoading) {\n                this.setLoading(ba);\n            }\n             else this.setSelected(ba);\n        ;\n        },\n        navigationCountUpdate: function(z, aa) {\n            var ba = this._getItemForKey((aa && aa.key));\n            if (ba) {\n                if ((typeof aa.count !== \"undefined\")) {\n                    ba.setCount(aa.count, aa.hide);\n                }\n                 else if ((typeof aa.increment !== \"undefined\")) {\n                    ba.incrementCount(aa.increment, aa.hide);\n                }\n            \n            };\n        },\n        navigationCountUpdateFromPresence: function(z, aa) {\n            aa = aa.obj;\n            if (aa) {\n                if ((!aa.class_name || (aa.class_name && j.hasClass(this.root, aa.class_name)))) {\n                    if (aa.items) {\n                        for (var ba = 0; (ba < aa.items.length); ba++) {\n                            this.navigationCountUpdate(z, aa.items[ba]);;\n                        }\n                    }\n                }\n            };\n        },\n        beginEdit: function(z) {\n            if (!this.editing) {\n                this.editing = true;\n                j.addClass(this.root, \"editMode\");\n                this._updateTrackingData();\n                this._initEditor(z);\n            }\n        ;\n        },\n        endEdit: function() {\n            if (this.editing) {\n                j.removeClass(this.root, \"editMode\");\n                (this.editor && this.editor.endEdit());\n                this.editor = null;\n                this.editing = false;\n                this._updateTrackingData();\n            }\n        ;\n        },\n        _updateTrackingData: function(z) {\n            var aa = (this.root.getAttribute(\"data-gt\") || \"{}\");\n            try {\n                aa = JSON.parse(aa);\n                if (this.editing) {\n                    aa.editing = true;\n                }\n                 else delete aa.editing;\n            ;\n                this.root.setAttribute(\"data-gt\", JSON.stringify(aa));\n            } catch (ba) {\n            \n            };\n        },\n        _initEditor: function(z) {\n            z.getEditorAsync(function(aa) {\n                if (this.editing) {\n                    this.editor = aa;\n                    this.editor.beginEdit();\n                }\n            ;\n            }.bind(this));\n        }\n    });\n    e.exports = y;\n});\n__d(\"PageFanning\", [\"Animation\",\"AsyncRequest\",\"CSS\",\"DOM\",\"FutureSideNav\",\"Parent\",\"URI\",\"$\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"FutureSideNav\"), l = b(\"Parent\"), m = b(\"URI\"), n = b(\"$\"), o = b(\"collectDataAttributes\"), p = b(\"copyProperties\"), q = {\n        setFanStatus: function(s, t, u, v, w, x, y) {\n            var z = {\n                ft: {\n                }\n            };\n            if (s) {\n                z = {\n                    ft: o(s, [\"ft\",]).ft\n                };\n            };\n            w = (w || function(ca) {\n                var da = ca.getPayload();\n                if ((!da || !s)) {\n                    return\n                };\n                if (da.reload) {\n                    q.reloadOnFanStatusChanged(da.preserve_tab);\n                }\n                 else r(s, da);\n            ;\n            });\n            var aa = {\n                fbpage_id: t,\n                add: u,\n                reload: v\n            };\n            if ((y != null)) {\n                p(aa, y);\n            };\n            p(aa, z);\n            var ba = new h().setURI(\"/ajax/pages/fan_status.php\").setData(aa).setNectarModuleDataSafe(s).setHandler(w);\n            if (x) {\n                ba.setErrorHandler(x);\n            };\n            ba.send();\n            return false;\n        },\n        reloadOnFanStatusChanged: function(s) {\n            var t = m.getRequestURI();\n            if (s) {\n                var u = k.getInstance().selected.textKey;\n                if ((!t.getQueryData().sk && u)) {\n                    t.addQueryData({\n                        sk: u\n                    });\n                };\n            }\n        ;\n            window.location.href = t;\n        },\n        toggleLikeOnFanStatusChanged: function(s, t) {\n            var u = n((\"liked_pages_like_action_\" + s)), v = n((\"liked_pages_undo_action_\" + s));\n            i.conditionClass(u, \"hidden_elem\", t);\n            i.conditionClass(v, \"hidden_elem\", !t);\n        },\n        informPageLikeButtonOnChange: function(s, t) {\n            var u = a.PageLikeButton;\n            if (u) {\n                if (t) {\n                    u.informLike(s);\n                    u.informLikeSuccess(s);\n                }\n                 else u.informUnlike(s);\n            \n            };\n        }\n    };\n    function r(s, t) {\n        var u = t.feedback;\n        if (!u) {\n            return\n        };\n        if (l.byClass(s, \"fbTimelineEscapeSectionItem\")) {\n            s = (l.byClass(s, \"fan_status_inactive\") || s);\n        };\n        var v = j.create(\"span\", {\n            className: \"fan_status_inactive\"\n        }, u);\n        s.parentNode.replaceChild(v, s);\n        var w = function() {\n            if (t.can_repeat_action) {\n                v.parentNode.replaceChild(s, v);\n            };\n        };\n        new g(v).duration(3000).checkpoint().to(\"backgroundColor\", \"#FFFFFF\").duration(1000).ondone(w).go();\n    };\n    e.exports = q;\n});\n__d(\"PageLikeButton\", [\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"Event\",\"PageFanning\",\"SubscribeButton\",\"Tour\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"Event\"), k = b(\"PageFanning\"), l = b(\"SubscribeButton\"), m = b(\"Tour\"), n = b(\"URI\"), o = {\n        LIKED: \"liked\",\n        UNLIKED: \"unliked\",\n        LIKED_SUCCESS: \"liked_success\",\n        init: function(r, s, t, u, v, w, x, y, z, aa, ba) {\n            g.subscribe(o.LIKED, function(ca, da) {\n                if ((u === da.profile_id)) {\n                    if (!z) {\n                        t.suppressNextMouseEnter();\n                    };\n                    r.swap(ba);\n                    if ((aa === true)) {\n                        new h().setURI(\"/ajax/pages/suggestions_on_liking.php\").setData({\n                            pageid: u\n                        }).send();\n                    };\n                }\n            ;\n            });\n            g.subscribe(o.UNLIKED, function(ca, da) {\n                if ((u === da.profile_id)) {\n                    r.unswap(ba);\n                    t.hideFlyout();\n                }\n            ;\n            });\n            if (y) {\n                g.subscribe(o.LIKED_SUCCESS, function(ca, da) {\n                    var ea = n.getRequestURI().getQueryData().app_data;\n                    if ((da.profile_id == u)) {\n                        new h().setURI(\"/ajax/pages/fetch_app_column.php\").setData({\n                            profile_id: u,\n                            tab_key: y,\n                            app_data: ea\n                        }).send();\n                    };\n                });\n            };\n            j.listen(s, \"click\", q.bind(null, u, v, w, x));\n        },\n        initCallout: function(r, s) {\n            var t = document.getElementById(\"pageActionLikeCalloutButton\");\n            j.listen(t, \"click\", q.bind(null, r, s, null, null));\n        },\n        initUnlike: function(r, s, t) {\n            j.listen(r, \"click\", function(event) {\n                p(event.getTarget(), s, false, function(u) {\n                    g.inform(o.LIKED, {\n                        profile_id: s\n                    });\n                    i.defaultErrorHandler(u);\n                }, t);\n                o.informUnlike(s);\n            });\n        },\n        informLike: function(r, s, t) {\n            var u = {\n                profile_id: r,\n                target: s,\n                origin: t\n            };\n            g.inform(o.LIKED, u);\n            g.inform(l.SUBSCRIBED, u);\n        },\n        informLikeSuccess: function(r) {\n            var s = {\n                profile_id: r\n            };\n            g.inform(o.LIKED_SUCCESS, s);\n        },\n        informUnlike: function(r) {\n            var s = {\n                profile_id: r\n            };\n            g.inform.bind(g, o.UNLIKED, s).defer();\n            g.inform.bind(g, l.UNSUBSCRIBED, s).defer();\n        }\n    };\n    function p(r, s, t, u, v, w, x) {\n        m.getInstance().hideStep(\"low_page_likes\");\n        k.setFanStatus(r, s, t, false, function() {\n            o.informLikeSuccess(s);\n        }, u, {\n            fan_origin: v,\n            fan_source: w,\n            cat: x\n        });\n    };\n    function q(r, s, t, u, event) {\n        p(event.getTarget(), r, true, function(v) {\n            g.inform(o.UNLIKED, {\n                profile_id: r\n            });\n            i.defaultErrorHandler(v);\n        }, s, t, u);\n        o.informLike(r, event.getTarget(), s);\n    };\n    e.exports = o;\n    a.PageLikeButton = o;\n});\n__d(\"legacy:PageLikeButton\", [\"PageLikeButton\",], function(a, b, c, d) {\n    a.PageLikeButton = b(\"PageLikeButton\");\n}, 3);\n__d(\"legacy:AudienceSelector\", [\"AudienceSelector\",], function(a, b, c, d) {\n    b(\"AudienceSelector\");\n}, 3);\n__d(\"FriendListPrivacyOptions\", [\"Arbiter\",\"AsyncDialog\",\"AsyncRequest\",\"Dialog\",\"DOMQuery\",\"PageTransitions\",\"Parent\",\"SelectorDeprecated\",\"$\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncDialog\"), i = b(\"AsyncRequest\"), j = b(\"Dialog\"), k = b(\"DOMQuery\"), l = b(\"PageTransitions\"), m = b(\"Parent\"), n = b(\"SelectorDeprecated\"), o = b(\"$\"), p = b(\"ge\"), q = false, r = false, s = null, t = {\n    }, u = function(w) {\n        if (!Object.keys(t).length) {\n            l.registerHandler(function() {\n                t = {\n                };\n                q = false;\n                r = false;\n            });\n        };\n        var x = w.getAttribute(\"data-name\");\n        t[x] = w;\n        n.listen(w, \"select\", function(y) {\n            var z = y.option, aa = k.find(z, \"a.itemAnchor\"), ba = aa.getAttribute(\"data-flid\");\n            if (!ba) {\n                return\n            };\n            var ca = aa.getAttribute(\"data-dynamic\");\n            if ((ca && q)) {\n                v.showSmartListNux(z, ba);\n            }\n             else if ((!ca && r)) {\n                v.showDumbListNux([ba,]);\n            }\n        ;\n        });\n    }, v = {\n        listen: function(w, x, y) {\n            var z = p(w);\n            if (!z) {\n                return\n            };\n            var aa = m.byClass(z, \"audienceSelector\");\n            if (aa) {\n                u(aa);\n                q = x;\n                r = y;\n            }\n        ;\n        },\n        showSmartListNux: function(w, x) {\n            w = o(w);\n            new i(\"/ajax/friends/lists/smart_list_publish_nux.php\").setData({\n                option_id: w.id,\n                flid: x\n            }).send();\n            q = false;\n        },\n        setContextualDialog: function(w, x) {\n            x = o(x);\n            var y = m.byClass(x, \"audienceSelector\");\n            if (y) {\n                w.setContext(y);\n                w.show();\n                var z = g.subscribe(\"composer/publish\", function() {\n                    w.hide();\n                });\n                w.subscribe(\"hide\", function() {\n                    z.unsubscribe();\n                });\n            }\n        ;\n        },\n        showDumbListNux: function(w) {\n            h.send(new i(\"/ajax/friends/lists/dumb_list_publish_nux.php\").setData({\n                flids: w\n            }));\n            r = false;\n        },\n        showBothListsNux: function(w, x) {\n            s = o(w);\n            v.showDumbListNux(x);\n        },\n        setDialogX: function(w) {\n            if (!s) {\n                return\n            };\n            w.subscribe(\"hide\", function() {\n                v.showSmartListNux(s);\n                s = null;\n            });\n        },\n        setDialog: function() {\n            if (!s) {\n                return\n            };\n            var w = j.getCurrent();\n            if (w) {\n                w.setCloseHandler(function() {\n                    v.showSmartListNux(s);\n                    s = null;\n                });\n            };\n        }\n    };\n    e.exports = v;\n});\n__d(\"FriendsMinusAcquaintancesPrivacyOption\", [\"AudienceSelectorTags\",\"BasePrivacyOption\",\"Class\",\"DOM\",\"PrivacyConst\",\"copyProperties\",\"fbt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AudienceSelectorTags\"), h = b(\"BasePrivacyOption\"), i = b(\"Class\"), j = b(\"DOM\"), k = b(\"PrivacyConst\"), l = k.FriendsValue, m = b(\"copyProperties\"), n = b(\"fbt\"), o = b(\"tx\");\n    function p(q, r) {\n        this._hasRestricted = r;\n        this.parent.construct(this, q);\n    };\n    i.extend(p, h);\n    m(p.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: l.FRIENDS_MINUS_ACQUAINTANCES\n            };\n        },\n        _recalculateTooltipAndLabel: function() {\n            var q = this._hasEvent, r = this._tags.length, s = this._tooltip, t = this._label;\n            if (q) {\n                if (((r > 1) || this._alreadyHasTags())) {\n                    this._tooltip = (this._hasRestricted ? \"Your friends, friends of anyone tagged and event guests; Except: Acquaintances, Restricted\" : \"Your friends, friends of anyone tagged and event guests; Except: Acquaintances\");\n                }\n                 else if ((r == 1)) {\n                    this._tooltip = (this._hasRestricted ? o._(\"Your friends, {user}'s friends and event guests; Except: Acquaintances, Restricted\", {\n                        user: this._tags[0]\n                    }) : o._(\"Your friends, {user}'s friends and event guests; Except: Acquaintances\", {\n                        user: this._tags[0]\n                    }));\n                }\n                 else this._tooltip = (this._hasRestricted ? \"Your friends and event guests; Except: Acquaintances, Restricted\" : \"Your friends and event guests; Except: Acquaintances\");\n                \n            ;\n            }\n             else if (((r > 0) || this._alreadyHasTags())) {\n                var u = \"friends of anyone tagged\", v = n._(\"{people who can see this}, {list of more people who can see this}\", [n.param(\"people who can see this\", \"Your friends\"),n.param(\"list of more people who can see this\", u),]), w = \"Acquaintances\";\n                if (this._hasRestricted) {\n                    w = n._(\"{Name of Acquaintances friend list}, {restricted}\", [n.param(\"Name of Acquaintances friend list\", w),n.param(\"restricted\", \"Restricted\"),]);\n                };\n                this._tooltip = this._getCombinedSentence(v, w);\n            }\n             else {\n                this._tooltip = \"Friends except Acquaintances\";\n                if (this._hasRestricted) {\n                    this._tooltip = \"Friends; Except: Acquaintances, Restricted\";\n                };\n            }\n            \n        ;\n            this._recalcLabel();\n            return ((((s != this._tooltip)) || ((t != this._label))));\n        },\n        _alreadyHasTags: function() {\n            var q = j.scry(this._selector, \"*[data-oid]\")[0];\n            q = (q && q.getAttribute(\"data-oid\"));\n            return (q && g.hasTags(q));\n        },\n        _getTagExpansionBehavior: function() {\n            return k.TagExpansion.FRIENDS_OF_TAGGEES;\n        }\n    });\n    e.exports = p;\n});\n__d(\"FriendsPrivacyOption\", [\"Arbiter\",\"BasePrivacyOption\",\"Class\",\"PrivacyConst\",\"SelectorDeprecated\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"BasePrivacyOption\"), i = b(\"Class\"), j = b(\"PrivacyConst\"), k = b(\"SelectorDeprecated\"), l = b(\"copyProperties\"), m = b(\"tx\");\n    function n(o, p) {\n        this._hasRestricted = p;\n        this.parent.construct(this, o);\n    };\n    i.extend(n, h);\n    l(n.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: j.FriendsValue.ALL_FRIENDS\n            };\n        },\n        _eventTagChanged: function() {\n            var o = this._getChangedData();\n            o.privacy = k.getValue(this._selector);\n            g.inform(\"EventTagged/changed\", o);\n        },\n        _recalculateTooltipAndLabel: function() {\n            var o = this._hasEvent, p = this._tags.length, q = this._tooltip, r = this._label;\n            if ((p > 2)) {\n                if (o) {\n                    this._tooltip = (this._hasRestricted ? \"Your friends, friends of anyone tagged and event guests; Except: Restricted\" : \"Your friends, friends of anyone tagged and event guests\");\n                }\n                 else this._tooltip = (this._hasRestricted ? \"Your friends and friends of anyone tagged; Except: Restricted\" : \"Your friends and friends of anyone tagged\");\n            ;\n            }\n             else if ((p == 2)) {\n                if (o) {\n                    if (this._hasRestricted) {\n                        this._tooltip = \"Your friends, friends of anyone tagged and event guests; Except: Restricted\";\n                    }\n                     else this._tooltip = \"Your friends, friends of anyone tagged and event guests\";\n                ;\n                }\n                 else if (this._hasRestricted) {\n                    this._tooltip = m._(\"Your friends, {user}'s friends and {user2}'s friends; Except: Restricted \", {\n                        user: this._tags[0],\n                        user2: this._tags[1]\n                    });\n                }\n                 else this._tooltip = m._(\"Your friends, {user}'s friends and {user2}'s friends\", {\n                    user: this._tags[0],\n                    user2: this._tags[1]\n                });\n                \n            ;\n            }\n             else if ((p == 1)) {\n                if (o) {\n                    if (this._hasRestricted) {\n                        this._tooltip = m._(\"Your friends, {user}'s friends and event guests; Except: Restricted\", {\n                            user: this._tags[0]\n                        });\n                    }\n                     else this._tooltip = m._(\"Your friends, {user}'s friends and event guests\", {\n                        user: this._tags[0]\n                    });\n                ;\n                }\n                 else if (this._hasRestricted) {\n                    this._tooltip = m._(\"Your friends and {user}'s friends; Except: Restricted\", {\n                        user: this._tags[0]\n                    });\n                }\n                 else this._tooltip = m._(\"Your friends and {user}'s friends\", {\n                    user: this._tags[0]\n                });\n                \n            ;\n            }\n             else if (o) {\n                this._tooltip = (this._hasRestricted ? \"Your friends and event guests; Except: Restricted\" : \"Your friends and event guests\");\n            }\n             else this._tooltip = (this._hasRestricted ? \"Your friends; Except: Restricted\" : \"Your friends\");\n            \n            \n            \n        ;\n            this._recalcLabel();\n            return (((q != this._tooltip)) || ((r != this._label)));\n        },\n        _getTagExpansionBehavior: function() {\n            return j.TagExpansion.FRIENDS_OF_TAGGEES;\n        }\n    });\n    e.exports = n;\n});\n__d(\"MetaComposerEdDialog\", [\"Animation\",\"Arbiter\",\"ARIA\",\"AsyncRequest\",\"copyProperties\",\"CSS\",\"DOM\",\"Ease\",\"ge\",\"Parent\",\"SelectorDeprecated\",\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"ARIA\"), j = b(\"AsyncRequest\"), k = b(\"copyProperties\"), l = b(\"CSS\"), m = b(\"DOM\"), n = b(\"Ease\"), o = b(\"ge\"), p = b(\"Parent\"), q = b(\"SelectorDeprecated\"), r = b(\"Vector\"), s = null;\n    function t(u) {\n        this._dialog = u.dialog;\n        this.config = u;\n        this._init();\n    };\n    t.init = function(u) {\n        if (s) {\n            s.config.show_audience = u.show_audience;\n            u.dialog.destroy();\n            return;\n        }\n    ;\n        s = new t(u);\n    };\n    k(t.prototype, {\n        _init: function() {\n            h.subscribe(\"ComposerXStatusAttachment/ready\", function() {\n                if (this.config.show_audience) {\n                    this._sendEducationRequest({\n                    }, \"/ajax/composer/audience/education\", this._handlerCustomDuration.bind(this, 6000));\n                    this.config.show_audience = false;\n                }\n            ;\n            }.bind(this));\n            if (this.config.show_sticky) {\n                h.subscribe(\"composer/mutate\", function(u, v) {\n                    this._sendEducationRequest({\n                        sticky_num: this.config.n_sticky_shown\n                    }, \"/ajax/composer/audience/sticky_education\");\n                }.bind(this));\n            };\n            if (this.config.show_event_tags) {\n                if ((this.config.n_event_tag_shown === 0)) {\n                    h.subscribe(\"EventTagged/changed\", function(u, v) {\n                        this._sendEducationRequest({\n                            selector: \"div.fbComposerAudienceTourContext\",\n                            privacy: v.privacy,\n                            event_tag_num: this.config.n_event_tag_shown\n                        }, \"/ajax/events/tagging/user_education\");\n                    }.bind(this));\n                    h.subscribe([\"composer/publish\",\"composer/reset\",], function() {\n                        var u = o(\"event_tagging_tag_expansion_NUX\");\n                        (u && l.hide(u));\n                    }.bind(this));\n                }\n                 else h.subscribe(\"EventTagged/changed\", function(u, v) {\n                    this._sendEducationRequest({\n                        ids: v.tags,\n                        from: \"AtTagger\",\n                        hasEvent: v.hasEvent,\n                        type: v.privacy,\n                        tag_num: this.config.n_tag_shown,\n                        event_tag_num: this.config.n_event_tag_shown\n                    }, \"ajax/composer/audience/tag_education\", this._handler.bind(this));\n                }.bind(this));\n            \n            };\n            if (this.config.show_tags) {\n                h.subscribe(\"SelectedPrivacyOption/changed\", function(u, v) {\n                    this._sendEducationRequest({\n                        ids: v.tags,\n                        from: \"WithTagger\",\n                        hasEvent: v.hasEvent,\n                        type: v.privacy,\n                        tag_num: this.config.n_tag_shown,\n                        event_tag_num: this.config.n_event_tag_shown\n                    }, \"/ajax/composer/audience/tag_education\", this._handler.bind(this));\n                }.bind(this));\n            };\n            q.subscribe(\"open\", this._killAnim.bind(this));\n        },\n        _sendEducationRequest: function(u, v, w) {\n            if (!this._updateDialogContext()) {\n                return\n            };\n            (this._async && this._async.abort());\n            this._async = new j(v);\n            this._async.setData(u).setHandler(w).send();\n        },\n        _updateDialogContext: function() {\n            var u = m.scry(document.body, \"div.composerAudienceWrapper\"), v, w;\n            for (var x = 0; (x < u.length); x++) {\n                v = u[x];\n                w = r.getElementPosition(v);\n                if (((v && (w.x > 0)) && (w.y > 0))) {\n                    this._dialog.setContext(v);\n                    return true;\n                }\n            ;\n            };\n            return false;\n        },\n        _handler: function(u) {\n            this._handlerCustomDuration(1500, u);\n        },\n        _handlerCustomDuration: function(u, v) {\n            var w = v.payload;\n            if ((!w || !this._updateDialogContext())) {\n                return\n            };\n            var x = this._dialog.getContent().firstChild;\n            m.setContent(x, w);\n            i.announce(m.getText(x));\n            this._dialog.show();\n            var y = p.byClass(x, \"metaComposerUserEd\");\n            if (this._anim) {\n                this._anim.stop();\n                this._anim = new g(y);\n            }\n             else this._anim = new g(y).from(\"opacity\", 0);\n        ;\n            this._anim.to(\"opacity\", 1).ease(n.sineOut).checkpoint().duration(u).checkpoint().to(\"opacity\", 0).ease(n.sineOut).checkpoint().ondone(this._killAnim.bind(this)).go();\n        },\n        _killAnim: function(u, v) {\n            if (this._anim) {\n                this._dialog.hide();\n                this._anim.stop();\n                this._anim = null;\n            }\n        ;\n        }\n    });\n    e.exports = t;\n});\n__d(\"OnlyMePrivacyOption\", [\"BasePrivacyOption\",\"copyProperties\",\"Class\",\"PrivacyConst\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BasePrivacyOption\"), h = b(\"copyProperties\"), i = b(\"Class\"), j = b(\"PrivacyConst\"), k = b(\"tx\");\n    function l(m) {\n        this.parent.construct(this, m);\n    };\n    i.extend(l, g);\n    h(l.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: j.FriendsValue.SELF\n            };\n        },\n        _getIncludedAudience: function() {\n            return \"Only you\";\n        },\n        _getTagExpansionBehavior: function() {\n            return j.TagExpansion.TAGGEES;\n        }\n    });\n    e.exports = l;\n});\n__d(\"legacy:UIPagelet\", [\"UIPagelet\",], function(a, b, c, d) {\n    a.UIPagelet = b(\"UIPagelet\");\n}, 3);\n__d(\"HoverButton\", [\"AsyncRequest\",\"CSS\",\"DOM\",\"URI\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"URI\"), k = b(\"copyProperties\"), l = b(\"cx\");\n    function m(n, o, p, q) {\n        this._button = n;\n        this._flyout = o;\n        this._flyoutAjaxify = q;\n        this._flyoutContent = p;\n        o.subscribe(\"show\", this._onShow.bind(this));\n        o.subscribe(\"hide\", this._onHide.bind(this));\n    };\n    k(m.prototype, {\n        _button: null,\n        _flyout: null,\n        _flyoutAjaxify: null,\n        _flyoutContent: null,\n        showFlyoutBriefly: function() {\n            this.showFlyout();\n            this._flyout.hideFlyoutDelayed(5000);\n        },\n        showFlyout: function() {\n            this._flyout.showFlyout(this._button, true);\n            this._flyout.inform(\"show\", this._button);\n        },\n        hideFlyout: function() {\n            this._flyout.hideFlyout(true);\n            this._flyout.inform(\"hide\", this._button);\n        },\n        enableButton: function() {\n            this._flyout.initNode(this._button);\n        },\n        disableButton: function() {\n            this.hideFlyout();\n            this._flyout.deactivateNode(this._button);\n        },\n        _onShow: function(n, o) {\n            h.addClass(o, \"_52nd\");\n            if ((h.hasClass(o, \"uiButton\") || h.hasClass(o, \"_42fu\"))) {\n                h.addClass(o, \"selected\");\n            };\n            if (this._flyoutAjaxify) {\n                h.addClass(this._flyoutContent, \"async_saving\");\n                new g().setURI(new j(this._flyoutAjaxify)).setHandler(function(p) {\n                    h.removeClass(this._flyoutContent, \"async_saving\");\n                    i.setContent(this._flyoutContent, p.payload);\n                }.bind(this)).send();\n                this._flyoutAjaxify = null;\n            }\n        ;\n        },\n        _onHide: function(n, o) {\n            h.removeClass(o, \"_52nd\");\n            if ((h.hasClass(o, \"uiButton\") || h.hasClass(o, \"_42fu\"))) {\n                h.removeClass(o, \"selected\");\n            };\n        },\n        destroy: function() {\n            this.hideFlyout();\n            this._flyout.destroy();\n        },\n        suppressNextMouseEnter: function() {\n            this._flyout.setActiveNode(this._button);\n        }\n    });\n    e.exports = m;\n});\n__d(\"legacy:DynamicIconSelector\", [\"DynamicIconSelector\",], function(a, b, c, d) {\n    a.DynamicIconSelector = b(\"DynamicIconSelector\");\n}, 3);\n__d(\"MentionsInputMatchers\", [], function(a, b, c, d, e, f) {\n    var g = [\"@\",\"\\\\uff20\",\"+\",\"\\\\uff0b\",].join(\"\"), h = \".,*?$|#{}()\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%&'\\\"~=\\u003C\\u003E_:;\", i = ((\"\\\\b[A-Z][^ A-Z\" + h) + \"]\"), j = (((((((\"([^\" + g) + h) + \"]|[\") + h) + \"][^ \") + h) + \"])\"), k = ((((\"(?:^|\\\\s)(?:[\" + g) + \"](\") + j) + \"{0,20}))\"), l = ((((\"(?:(?:^|[^#])(\" + i) + \"+)|\") + k) + \")\"), m = ((\"(?:\" + i) + \"{4,})\"), n = \"#\\\\uFF03\", o = {\n        trigger: new RegExp(((\"[\" + g) + \"]$\")),\n        hashtagTrigger: new RegExp(((\"[\" + n) + \"]\")),\n        mainMatcher: new RegExp((k + \"$\")),\n        autoMatcher: new RegExp((l + \"$\")),\n        userMatcher: new RegExp((m + \"$\"))\n    };\n    e.exports = o;\n});\n__d(\"MentionsInput\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"Bootloader\",\"CSS\",\"DataStore\",\"DOM\",\"Event\",\"HTML\",\"Input\",\"InputSelection\",\"Keys\",\"MentionsInputMatchers\",\"Parent\",\"Style\",\"TypeaheadUtil\",\"UserAgent\",\"copyProperties\",\"htmlize\",\"removeFromArray\",\"repeatString\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"Event\"), n = b(\"HTML\"), o = b(\"Input\"), p = b(\"InputSelection\"), q = b(\"Keys\"), r = b(\"MentionsInputMatchers\"), s = b(\"Parent\"), t = b(\"Style\"), u = b(\"TypeaheadUtil\"), v = b(\"UserAgent\"), w = b(\"copyProperties\"), x = b(\"htmlize\"), y = b(\"removeFromArray\"), z = b(\"repeatString\"), aa = \"\\ufeff\", ba = new RegExp(aa, \"g\"), ca = function(ja) {\n        return (ja + aa);\n    }, da = \"\\ufffd\", ea = /@+\\[[0-9]+\\:([^\\]]|\\\\\\])*\\]+/g, fa = /[\\\\\\]:]/g;\n    function ga(ja, ka) {\n        return ja.replace(ka, z(\" \", ka.length));\n    };\n    function ha(ja, ka) {\n        return (ja.substring(0, ka) + ja.substring((ka + 1)));\n    };\n    function ia(ja, ka, la, ma, na, oa) {\n        k.set(ja, \"MentionsInput\", this);\n        this._root = ja;\n        this._typeahead = ka;\n        this._input = la;\n        var pa = null, qa = this.init.bind(this, ma, na, oa);\n        try {\n            pa = (document.activeElement === this._input);\n        } catch (ra) {\n        \n        };\n        if (pa) {\n            qa.defer();\n        }\n         else var sa = m.listen(this._input, \"focus\", function() {\n            qa.defer();\n            sa.remove();\n        })\n    ;\n        this._hasHashtags = ma.hashtags;\n        this._hashtags = [];\n    };\n    ia.getInstance = function(ja) {\n        var ka = s.byClass(ja, \"uiMentionsInput\");\n        return (ka ? k.get(ka, \"MentionsInput\") : null);\n    };\n    w(ia.prototype, h, {\n        init: function(ja, ka, la) {\n            if (this._initialized) {\n                return\n            };\n            this._initialized = true;\n            this._highlighter = l.find(this._root, \".highlighter\");\n            this._highlighterInner = this._highlighter.firstChild;\n            this._highlighterContent = l.find(this._root, \".highlighterContent\");\n            this._hiddenInput = l.find(this._root, \".mentionsHidden\");\n            this._placeholder = (this._input.getAttribute(\"placeholder\") || \"\");\n            this._maxMentions = (ja.max || 6);\n            this._metrics = la;\n            if (!this._hiddenInput.name) {\n                var ma = this._input.name;\n                this._input.name = (ma + \"_text\");\n                this._hiddenInput.name = ma;\n            }\n        ;\n            this._initEvents();\n            this._initTypeahead();\n            this.reset(ka);\n            this.inform(\"init\", null, g.BEHAVIOR_STATE);\n        },\n        reset: function(ja) {\n            if (!this._initialized) {\n                return\n            };\n            this._mentioned = {\n            };\n            this._orderedUIDs = [];\n            this._numMentioned = 0;\n            this._filterData = null;\n            (this._hiddenInput && (this._hiddenInput.value = \"\"));\n            (this._highlighterContent && l.empty(this._highlighterContent));\n            (this._highlighterAuxContent && l.remove(this._highlighterAuxContent));\n            this._highlighterAuxContent = null;\n            o.setPlaceholder(this._input, this._placeholder);\n            t.set(this._typeahead.getElement(), \"height\", \"auto\");\n            var ka = ((ja && ja.value) || \"\"), la = (ja && ja.mentions);\n            if ((la && la.length)) {\n                var ma = [];\n                la.forEach(function(na) {\n                    ma.push((na.offset + na.length));\n                    delete na.offset;\n                    delete na.length;\n                    this._addToken(na);\n                }, this);\n                ma.reverse().forEach(function(na) {\n                    ka = ((ka.substring(0, na) + aa) + ka.substring(na));\n                });\n            }\n        ;\n            o.setValue(this._input, ka);\n            this._updateTypeahead();\n            this._updateWidth();\n            this._update();\n        },\n        getValue: function() {\n            return this._getMarkedValue().replace(ba, \"\");\n        },\n        _getMarkedValue: function() {\n            return o.getValue(this._input);\n        },\n        getRawValue: function() {\n            this._update();\n            return o.getValue(this._hiddenInput);\n        },\n        checkValue: function() {\n            var ja = this._typeahead.getCore().getValue();\n            if ((r.trigger.exec(ja) || (ja === \"\"))) {\n                this.inform(\"sessionEnd\", {\n                });\n            };\n        },\n        getTypeahead: function() {\n            return this._typeahead;\n        },\n        _initEvents: function() {\n            var ja = this._update.bind(this);\n            m.listen(this._input, {\n                input: ja,\n                keyup: ja,\n                change: ja,\n                blur: this._handleBlur.bind(this),\n                focus: this._handleFocus.bind(this),\n                keydown: this._handleKeydown.bind(this)\n            });\n            if (this._metrics) {\n                this._metrics._reset();\n                this._metrics.bindSessionStart(this._typeahead, \"render\", true);\n                this._metrics.bindSessionEnd(this._typeahead.getView(), \"select\", true);\n                this._metrics.bindSessionEnd(this, \"sessionEnd\", false);\n                m.listen(this._input, \"keyup\", function(event) {\n                    this.checkValue.bind(this).defer();\n                }.bind(this));\n            }\n        ;\n        },\n        _initTypeahead: function() {\n            this._typeahead.subscribe(\"select\", function(oa, pa) {\n                var qa = pa.selected;\n                this._addToken({\n                    uid: qa.uid,\n                    text: qa.text,\n                    type: qa.type,\n                    weakreference: qa.weak_reference\n                });\n                this.updateValue();\n            }.bind(this));\n            var ja = this._input, ka = null;\n            function la() {\n                if ((ka === null)) {\n                    ka = o.getSubmitOnEnter(ja);\n                    o.setSubmitOnEnter(ja, false);\n                }\n            ;\n            };\n            function ma() {\n                if ((ka !== null)) {\n                    o.setSubmitOnEnter(ja, ka);\n                    ka = null;\n                }\n            ;\n            };\n            this._typeahead.subscribe(\"reset\", ma);\n            this._typeahead.subscribe(\"render\", la);\n            this._typeahead.subscribe(\"highlight\", function(oa, pa) {\n                ((pa.index >= 0) ? la() : ma());\n            });\n            this._typeahead.subscribe(\"query\", function() {\n                this._filterData = null;\n            }.bind(this));\n            var na = this._typeahead.getCore();\n            na.suffix = aa;\n            this._handleFocus();\n        },\n        _handleBlur: function() {\n            if (this._filterToken) {\n                this._filterToken.remove();\n                this._filterToken = null;\n            }\n        ;\n        },\n        _handleFocus: function() {\n            if (!this._filterToken) {\n                this._filterToken = this._typeahead.getData().addFilter(this._filterResults.bind(this));\n            };\n            this._updateWidth();\n        },\n        _handleKeydown: function(event) {\n            var ja = event.keyCode;\n            if (((ja == q.BACKSPACE) || (ja == q.DELETE))) {\n                this._handleBackspaceAndDelete(event, ja);\n            };\n            if (((ja == q.LEFT) || (ja == q.RIGHT))) {\n                setTimeout(this._handleLeftAndRight.bind(this, ja), 10);\n            };\n        },\n        _handleLeftAndRight: function(ja) {\n            var ka = this._getMarkedValue(), la = p.get(this._input), ma = la.start, na = la.end, oa = (ja == q.LEFT), pa = (ja == q.RIGHT);\n            if ((ma == na)) {\n                var qa = (oa ? -1 : 1);\n                if ((ka.charAt(ma) == aa)) {\n                    p.set(this._input, (ma + qa));\n                };\n            }\n             else if ((oa && (ka.charAt(ma) == aa))) {\n                p.set(this._input, (ma - 1), na);\n            }\n             else if ((oa && (ka.charAt(na) == aa))) {\n                p.set(this._input, ma, (na - 1));\n            }\n             else if ((pa && (ka.charAt(na) == aa))) {\n                p.set(this._input, ma, (na + 1));\n            }\n             else if ((pa && (ka.charAt(ma) == aa))) {\n                p.set(this._input, (ma + 1), na);\n            }\n            \n            \n            \n        ;\n        },\n        _handleBackspaceAndDelete: function(event, ja) {\n            var ka = p.get(this._input), la = false;\n            if ((ka.start !== ka.end)) {\n                if ((this._offsetIsInsideMention((ka.start + 1)) && this._offsetIsInsideMention(ka.end))) {\n                    la = ((ja === q.BACKSPACE));\n                }\n                 else return\n            \n            };\n            var ma = ((ja === q.DELETE) ? 1 : -1), na = (ma + ((la ? ka.end : ka.start))), oa = this._getMarkedValue(), pa = oa;\n            for (var qa = 0; (qa < this._orderedUIDs.length); ++qa) {\n                var ra = this._mentioned[this._orderedUIDs[qa]], sa = ra.text, ta = ca(sa), ua = pa.indexOf(ta), va = (ua + ta.length);\n                if (((na < ua) || (na >= va))) {\n                    pa = ga(pa, ta);\n                    continue;\n                }\n            ;\n                var wa, xa;\n                if ((ra.type != \"user\")) {\n                    wa = 0;\n                    xa = [sa,];\n                }\n                 else {\n                    wa = (ta.substring(0, (na - ua)).split(\" \").length - 1);\n                    xa = sa.split(\" \");\n                }\n            ;\n                var ya = xa.splice(wa, 1)[0], za = xa.join(\" \"), ab = ((wa === 0) ? ua : ((va - ya.length) - 1));\n                if (za) {\n                    ra.text = za;\n                    za = ca(za);\n                }\n                 else this._removeToken(ra.uid);\n            ;\n                var bb = ((oa.substring(0, ua) + za) + oa.substring(va));\n                o.setValue(this._input, bb);\n                p.set(this._input, ab);\n                this._update();\n                event.kill();\n                break;\n            };\n        },\n        _offsetIsInsideMention: function(ja) {\n            for (var ka = 0; (ka < this._offsets.length); ka++) {\n                if (((ja > this._offsets[ka][0]) && (ja <= this._offsets[ka][1]))) {\n                    return true\n                };\n            };\n            return false;\n        },\n        _filterResults: function(ja) {\n            if ((this._filterData === null)) {\n                var ka = p.get(this._input).start;\n                if (this._offsetIsInsideMention(ka)) {\n                    this._filterData = {\n                        caretIsInsideMention: true\n                    };\n                    return false;\n                }\n            ;\n                var la = this._typeahead.getCore();\n                this._filterData = {\n                    value: la.getValue(),\n                    rawValue: la.getRawValue()\n                };\n            }\n        ;\n            if (this._filterData.caretIsInsideMention) {\n                return false\n            };\n            if (r.mainMatcher.test(this._filterData.rawValue)) {\n                return true\n            };\n            if ((ja.type != \"user\")) {\n                return false\n            };\n            if (ja.disable_autosuggest) {\n                return false\n            };\n            if (r.userMatcher.test(this._filterData.value)) {\n                return true\n            };\n            return u.isExactMatch(this._filterData.value, this._typeahead.getData().getTextToIndex(ja));\n        },\n        _addToken: function(ja) {\n            var ka = ja.uid;\n            if (!this._mentioned.hasOwnProperty(ka)) {\n                this._mentioned[ka] = ja;\n                this._orderedUIDs.push(ka);\n                this._numMentioned++;\n                this._updateTypeahead();\n            }\n        ;\n        },\n        _removeToken: function(ja) {\n            if (this._mentioned.hasOwnProperty(ja)) {\n                delete this._mentioned[ja];\n                y(this._orderedUIDs, ja);\n                this._numMentioned--;\n                this._updateTypeahead();\n            }\n        ;\n        },\n        _update: function() {\n            var ja = this._getMarkedValue();\n            if ((ja == this._value)) {\n                return\n            };\n            this._value = ja;\n            this._updateMentions();\n            this._updateDirection.bind(this).defer();\n            this.updateValue();\n        },\n        _updateMentions: function() {\n            this._offsets = [];\n            var ja = this._getMarkedValue(), ka = ja;\n            for (var la = 0; (la < this._orderedUIDs.length); ++la) {\n                var ma = this._orderedUIDs[la], na = ca(this._mentioned[ma].text), oa = ka.indexOf(na);\n                if ((oa == -1)) {\n                    this._removeToken(ma);\n                };\n                ka = ga(ka, na);\n                this._offsets.push([oa,(oa + na.length),]);\n            };\n            var pa = ja;\n            while (((oa = ka.indexOf(aa)) > -1)) {\n                pa = ha(pa, oa);\n                ka = ha(ka, oa);\n            };\n            if ((ja !== pa)) {\n                var qa = p.get(this._input);\n                o.setValue(this._input, pa);\n                p.set(this._input, qa.start);\n                this._value = pa;\n            }\n        ;\n        },\n        _renderHashtags: function(ja) {\n            if (!this._hasHashtags) {\n                return x(ja)\n            };\n            if (!this._hashtagParser) {\n                if (r.hashtagTrigger.exec(ja)) {\n                    this.bootloadHashtagParser();\n                };\n                if (!this._hashtagParser) {\n                    return x(ja)\n                };\n            }\n        ;\n            this._hashtags = this._hashtagParser.parse(ja);\n            var ka = [], la = 0;\n            for (var ma = 0; (ma < this._hashtags.length); ma++) {\n                var na = this._hashtags[ma];\n                ka.push(x(ja.substring(la, na.rawOffset)), \"\\u003Cb\\u003E\", na.marker, na.tag, \"\\u003C/b\\u003E\");\n                la = ((na.rawOffset + na.marker.length) + na.tag.length);\n            };\n            ka.push(x(ja.substring(la)));\n            return ka.join(\"\");\n        },\n        updateValue: function() {\n            var ja = this._value = this._getMarkedValue(), ka = this._orderedUIDs, la = ja.replace(ea, da);\n            for (var ma = 0; (ma < ka.length); ++ma) {\n                var na = ((\"@[\" + ka[ma]) + \":]\"), oa = ca(this._mentioned[ka[ma]].text);\n                la = la.replace(oa, na);\n                ja = ja.replace(oa, na);\n            };\n            var pa = this._renderHashtags(ja);\n            for (var ma = 0; (ma < ka.length); ++ma) {\n                var qa = ka[ma], ra = this._mentioned[qa], sa = ra.text, ta = (ra.weakreference ? \"\\u003Cb class=\\\"weak\\\"\\u003E\" : \"\\u003Cb\\u003E\");\n                pa = pa.replace(((\"@[\" + qa) + \":]\"), ((ta + x(ca(sa))) + \"\\u003C/b\\u003E\"));\n                sa = sa.replace(fa, function(ua) {\n                    return (\"\\\\\" + ua);\n                });\n                la = la.replace(((\"@[\" + qa) + \":]\"), ((((\"@[\" + qa) + \":\") + sa) + \"]\"));\n            };\n            if (v.ie()) {\n                pa = pa.replace(/ /g, \"&nbsp;\\u003Cwbr/\\u003E\");\n            };\n            l.setContent(this._highlighterContent, n(pa));\n            this._hiddenInput.value = la;\n            this._updateHighlighter();\n            this._updateHeight();\n        },\n        _updateDirection: function() {\n            var ja = t.get(this._input, \"direction\");\n            if ((ja == this._dir)) {\n                return\n            };\n            this._dir = ja;\n            t.set(this._highlighter, \"direction\", ja);\n            if ((ja == \"rtl\")) {\n                t.set(this._highlighter, \"text-align\", \"right\");\n            }\n             else t.set(this._highlighter, \"text-align\", \"left\");\n        ;\n        },\n        _updateWidth: function() {\n            var ja = t.getFloat.curry(this._input), ka = ((((this._input.offsetWidth - ja(\"paddingLeft\")) - ja(\"paddingRight\")) - ja(\"borderLeftWidth\")) - ja(\"borderRightWidth\"));\n            if (v.firefox()) {\n                ka -= 2;\n            };\n            if ((v.ie() <= 7)) {\n                ka -= t.getFloat(this._highlighterInner, \"paddingLeft\");\n                this._highlighter.style.zoom = 1;\n            }\n        ;\n            this._highlighterInner.style.width = (Math.max(ka, 0) + \"px\");\n        },\n        _updateHeight: function() {\n            if (this._highlighterAuxContent) {\n                var ja = this._highlighter.offsetHeight, ka = this._typeahead.getElement();\n                if ((ja > ka.offsetHeight)) {\n                    t.set(ka, \"height\", (ja + \"px\"));\n                    g.inform(\"reflow\");\n                }\n            ;\n            }\n        ;\n        },\n        _updateTypeahead: function() {\n            var ja = this._typeahead.getCore(), ka = null;\n            if ((!this._maxMentions || (this._numMentioned < this._maxMentions))) {\n                ka = r.autoMatcher;\n            };\n            ja.matcher = ka;\n            ja.setExclusions(this._orderedUIDs);\n            this.inform(\"update\", {\n                mentioned: this._mentioned\n            });\n        },\n        setPlaceholder: function(ja) {\n            this._placeholder = ja;\n            if (!this.hasAuxContent()) {\n                o.setPlaceholder(this._input, ja);\n            };\n        },\n        _updateHighlighter: function() {\n            if (this._highlighterContent) {\n                j.conditionShow(this._highlighterContent, (((this._numMentioned > 0) || this.hasAuxContent()) || this._hashtags.length));\n            };\n        },\n        setAuxContent: function(ja) {\n            if (this._highlighterContent) {\n                if (!this._highlighterAuxContent) {\n                    this._highlighterAuxContent = l.create(\"span\", {\n                        className: \"highlighterAuxContent\"\n                    });\n                    l.insertAfter(this._highlighterContent, this._highlighterAuxContent);\n                }\n            ;\n                l.setContent(this._highlighterAuxContent, ja);\n                if (ja) {\n                    o.setPlaceholder(this._input, \"\");\n                }\n                 else o.setPlaceholder(this._input, this._placeholder);\n            ;\n                this._updateHighlighter();\n                this._updateHeight();\n            }\n        ;\n        },\n        hasAuxContent: function() {\n            var ja = this.getAuxContentRoot();\n            return (ja && (ja.innerHTML.length > 0));\n        },\n        getAuxContentRoot: function() {\n            return this._highlighterAuxContent;\n        },\n        addMention: function(ja) {\n            var ka = this._getMarkedValue();\n            if ((ka !== \"\")) {\n                ka += \" \";\n            };\n            o.setValue(this._input, ((ka + ca(ja.text)) + \" \"));\n            this._addToken(ja);\n            this._update();\n        },\n        getMentions: function() {\n            return this._mentioned;\n        },\n        bootloadHashtagParser: function() {\n            if (!this._hashtagParser) {\n                i.loadModules([\"HashtagParser\",], function(ja) {\n                    this._hashtagParser = ja;\n                    if (this._initialized) {\n                        this._update();\n                    };\n                }.bind(this));\n            };\n        }\n    });\n    e.exports = ia;\n});\n__d(\"MentionsTypeaheadAreaView\", [\"Class\",\"ContextualTypeaheadView\",\"Parent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"ContextualTypeaheadView\"), i = b(\"Parent\"), j = b(\"copyProperties\");\n    function k(l, m) {\n        this.parent.construct(this, l, m);\n    };\n    g.extend(k, h);\n    j(k.prototype, {\n        getContext: function() {\n            return i.byClass(this.element, \"uiMentionsInput\");\n        }\n    });\n    e.exports = k;\n});\n__d(\"legacy:MentionsInput\", [\"MentionsInput\",], function(a, b, c, d) {\n    a.MentionsInput = b(\"MentionsInput\");\n}, 3);\n__d(\"legacy:ui-side-nav-future-js\", [\"FutureSideNav\",], function(a, b, c, d) {\n    a.FutureSideNav = b(\"FutureSideNav\");\n}, 3);\n__d(\"HoverFlyout\", [\"Arbiter\",\"ArbiterMixin\",\"DataStore\",\"Event\",\"Keys\",\"arrayContains\",\"copyProperties\",\"removeFromArray\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"DataStore\"), j = b(\"Event\"), k = b(\"Keys\"), l = b(\"arrayContains\"), m = b(\"copyProperties\"), n = b(\"removeFromArray\"), o = b(\"shield\");\n    function p(q, r, s, t) {\n        if (q) {\n            this._showDelay = s;\n            this._hideDelay = t;\n            this.init(q);\n            if (r) {\n                this.initNode(r);\n            };\n        }\n    ;\n        g.subscribe(\"SwapButtonDEPRECATED/focusOnJoinButton\", o(this.hideFlyout, this), g.SUBSCRIBE_ALL);\n    };\n    m(p.prototype, h, {\n        init: function(q) {\n            this._flyout = q;\n            this._showDelay = (this._showDelay || 0);\n            this._hideDelay = (this._hideDelay || 100);\n            this._showTimeout = null;\n            this._hideTimeout = null;\n            this._flyoutSubscriptions = [this._flyout.subscribe(\"mouseenter\", this._onFlyoutMouseEnter.bind(this)),this._flyout.subscribe(\"mouseleave\", o(this.hideFlyout, this)),];\n            this._nodes = [];\n            this._dataStoreUnique = ((\"HoverFlyout_\" + Date.now()) + \"_listeners\");\n            return this;\n        },\n        initNode: function(q) {\n            if (l(this._nodes, q)) {\n                return this\n            };\n            this._nodes.push(q);\n            i.set(q, this._dataStoreUnique, [j.listen(q, \"mouseenter\", this._onNodeMouseEnter.bind(this, q)),j.listen(q, \"mouseleave\", o(this.hideFlyout, this)),j.listen(q, \"click\", this._onNodeMouseEnter.bind(this, q)),j.listen(q, \"keydown\", this._onNodeKeyEscape.bind(this)),]);\n            return this;\n        },\n        deactivateNode: function(q) {\n            var r = i.get(q, this._dataStoreUnique);\n            if (r) {\n                while (r.length) {\n                    r.pop().remove();;\n                }\n            };\n            n(this._nodes, q);\n        },\n        setShowDelay: function(q) {\n            this._showDelay = q;\n            return this;\n        },\n        setHideDelay: function(q) {\n            this._hideDelay = q;\n            return this;\n        },\n        showFlyout: function(q, r) {\n            this.setActiveNode(q);\n            if (r) {\n                this._flyout.setContext(q).show();\n                this.inform(\"show\", q);\n            }\n             else this._showTimeout = this.showFlyout.bind(this, q, true).defer(this._showDelay);\n        ;\n            return this;\n        },\n        hideFlyout: function(q) {\n            clearTimeout(this._showTimeout);\n            if (q) {\n                this._flyout.hide();\n                (this._activeNode && this.inform(\"hide\", this._activeNode));\n                this._activeNode = null;\n            }\n             else this._hideTimeout = this.hideFlyout.bind(this, true).defer(this._hideDelay);\n        ;\n        },\n        hideFlyoutDelayed: function(q) {\n            clearTimeout(this._showTimeout);\n            clearTimeout(this._hideTimeout);\n            this._hideTimeout = this.hideFlyout.bind(this, true).defer(q);\n        },\n        getActiveNode: function() {\n            return this._activeNode;\n        },\n        setActiveNode: function(q) {\n            clearTimeout(this._hideTimeout);\n            if ((this._activeNode && (this._activeNode !== q))) {\n                this.hideFlyout(true);\n            };\n            this._activeNode = q;\n            return this;\n        },\n        clearNodes: function() {\n            for (var q = this._nodes.length; (q > 0); q--) {\n                this.deactivateNode(this._nodes[(q - 1)]);;\n            };\n        },\n        destroy: function() {\n            while (this._flyoutSubscriptions.length) {\n                this._flyout.unsubscribe(this._flyoutSubscriptions.pop());;\n            };\n            this.clearNodes();\n        },\n        _onNodeMouseEnter: function(q) {\n            if ((this._activeNode === q)) {\n                clearTimeout(this._hideTimeout);\n            }\n             else this.showFlyout(q);\n        ;\n        },\n        _onFlyoutMouseEnter: function() {\n            clearTimeout(this._hideTimeout);\n        },\n        _onNodeKeyEscape: function(event) {\n            if ((j.getKeyCode(event) === k.ESC)) {\n                (this._activeNode && this.inform(\"hide\", this._activeNode));\n                this._activeNode = null;\n            }\n        ;\n        }\n    });\n    e.exports = (a.HoverFlyout || p);\n});\n__d(\"TypeaheadAreaCore\", [\"Class\",\"InputSelection\",\"TypeaheadCore\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"InputSelection\"), i = b(\"TypeaheadCore\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\");\n    function l(m) {\n        this.parent.construct(this, m);\n        this.matcher = new RegExp((this.matcher + \"$\"));\n        this.preventFocusChangeOnTab = true;\n    };\n    g.extend(l, i);\n    j(l.prototype, {\n        prefix: \"\",\n        suffix: \", \",\n        matcher: \"\\\\b[^,]*\",\n        click: k,\n        select: function(m) {\n            this.parent.select(m);\n            var n = this.element.value, o = ((this.prefix + m.text) + this.suffix);\n            this.expandBounds(n, o);\n            var p = n.substring(0, this.start), q = n.substring(this.end);\n            this.element.value = ((p + o) + q);\n            h.set(this.element, (p.length + o.length));\n        },\n        expandBounds: function(m, n) {\n            m = m.toLowerCase();\n            n = n.toLowerCase();\n            var o, p, q, r, s = /\\s/;\n            p = m.substring(this.start, this.end);\n            q = n.indexOf(p);\n            o = this.start;\n            while (((o >= 0) && (q >= 0))) {\n                r = m.charAt((o - 1));\n                if ((!r || s.test(r))) {\n                    this.start = o;\n                };\n                p = (r + p);\n                q = n.indexOf(p);\n                o--;\n            };\n            p = m.substring(this.start, this.end);\n            q = n.indexOf(p);\n            o = this.end;\n            while (((o <= m.length) && (q >= 0))) {\n                r = m.charAt(o);\n                if ((!r || s.test(r))) {\n                    this.end = o;\n                };\n                p = (p + r);\n                q = n.indexOf(p);\n                o++;\n            };\n        },\n        getRawValue: function() {\n            var m = (h.get(this.element).start || 0);\n            return this.parent.getValue().substring(0, m);\n        },\n        getValue: function() {\n            var m = (this.matcher && this.matcher.exec(this.getRawValue()));\n            if (!m) {\n                return \"\"\n            };\n            var n = m[0], o = (m.index + n.length);\n            n = n.replace(/^\\s/, \"\");\n            var p = n.length;\n            n = n.replace(/\\s$/, \"\");\n            var q = (p - n.length);\n            this.start = (o - p);\n            this.end = (o + q);\n            return ((m[2] || m[1]) || m[0]);\n        }\n    });\n    e.exports = l;\n});\n__d(\"TypeaheadMetrics\", [\"Event\",\"AsyncRequest\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\"), j = b(\"emptyFunction\");\n    function k(l) {\n        this.extraData = {\n        };\n        i(this, l);\n    };\n    i(k.prototype, {\n        endPoint: \"/ajax/typeahead/record_basic_metrics.php\",\n        init: function(l) {\n            this.init = j;\n            this.core = l.getCore();\n            this.view = l.getView();\n            this.data = l.getData();\n            this.stats = {\n            };\n            this.sessionActive = false;\n            this._sessionStartEvents = [];\n            this._sessionEndEvents = [];\n            this._reset();\n            this.initEvents();\n        },\n        _reset: function() {\n            this.stats = {\n            };\n            this.avgStats = {\n            };\n            this.sessionActive = false;\n            this.results = null;\n            this.sid = Math.floor((Date.now() * Math.random()));\n            this.data.setQueryData({\n                sid: this.sid\n            });\n        },\n        recordSelect: function(l) {\n            var m = l.selected;\n            if ((m.uid == null)) {\n                this.recordStat(\"selected_id\", \"SELECT_NULL\");\n            }\n             else this.recordStat(\"selected_id\", m.uid);\n        ;\n            this.recordStat(\"selected_type\", m.type);\n            this.recordStat(\"selected_position\", l.index);\n            this.recordStat(\"selected_with_mouse\", (l.clicked ? 1 : 0));\n            this.recordStat(\"selected_query\", l.query);\n            this._sessionEnd();\n        },\n        bindSessionStart: function(l, event, m) {\n            if (m) {\n                for (var n = 0; (n < this._sessionStartEvents.length); ++n) {\n                    var o = this._sessionStartEvents[n];\n                    o.obj.unsubscribe(o.token);\n                }\n            };\n            this._sessionStartEvents.push({\n                obj: l,\n                token: l.subscribe(event, function(p, q) {\n                    this._sessionStart();\n                }.bind(this))\n            });\n        },\n        bindSessionEnd: function(l, event, m) {\n            if (m) {\n                for (var n = 0; (n < this._sessionEndEvents.length); ++n) {\n                    var o = this._sessionEndEvents[n];\n                    o.obj.unsubscribe(o.token);\n                }\n            };\n            this._sessionEndEvents.push({\n                obj: l,\n                token: l.subscribe(event, function(p, q) {\n                    this._sessionEnd();\n                }.bind(this))\n            });\n        },\n        initEvents: function() {\n            this.bindSessionStart(this.core, \"focus\", false);\n            this.bindSessionEnd(this.core, \"blur\", false);\n            this.view.subscribe(\"select\", function(l, m) {\n                this.recordSelect(m);\n            }.bind(this));\n            this.bindSessionEnd(this.view, \"select\", false);\n            this.view.subscribe(\"render\", function(l, m) {\n                this.results = m;\n            }.bind(this));\n            this.data.subscribe(\"beforeQuery\", function(l, m) {\n                if (!m.value) {\n                    return\n                };\n                this.query = m.value;\n                this.recordCountStat(\"num_queries\");\n            }.bind(this));\n            this.data.subscribe(\"beforeFetch\", function(l, m) {\n                if (m.fetch_context.bootstrap) {\n                    this.bootstrapBegin = Date.now();\n                }\n                 else m.fetch_context.queryBegin = Date.now();\n            ;\n            }.bind(this));\n            this.data.subscribe(\"fetchComplete\", function(l, m) {\n                if (m.fetch_context.bootstrap) {\n                    this.recordAvgStat(\"bootstrap_latency\", (Date.now() - this.bootstrapBegin));\n                    var n = {\n                    };\n                    m.response.payload.entries.forEach(function(o) {\n                        if (!n[o.type]) {\n                            n[o.type] = 1;\n                        }\n                         else n[o.type]++;\n                    ;\n                    });\n                    this.recordStat(\"bootstrap_response_types\", n);\n                    this.bootstrapped = true;\n                }\n                 else {\n                    if ((\"filtered_count\" in m.response.payload)) {\n                        this.recordStat(\"filtered_count\", m.response.payload.filtered_count);\n                    };\n                    this.recordAvgStat(\"avg_query_latency\", (Date.now() - m.fetch_context.queryBegin));\n                }\n            ;\n            }.bind(this));\n            this.data.subscribe(\"dirty\", function(l, m) {\n                this.bootstrapped = false;\n            });\n        },\n        _sessionStart: function() {\n            if (this.sessionActive) {\n                return\n            };\n            this.sessionActive = true;\n        },\n        _sessionEnd: function() {\n            if (!this.sessionActive) {\n                return\n            };\n            this.sessionActive = false;\n            this.submit();\n            this._reset();\n        },\n        recordStat: function(l, m) {\n            this.stats[l] = m;\n        },\n        recordCountStat: function(l) {\n            var m = this.stats[l];\n            this.stats[l] = (m ? (m + 1) : 1);\n        },\n        recordAvgStat: function(l, m) {\n            if (this.avgStats[l]) {\n                this.avgStats[l][0] += m;\n                ++this.avgStats[l][1];\n            }\n             else this.avgStats[l] = [m,1,];\n        ;\n        },\n        submit: function() {\n            if (Object.keys(this.stats).length) {\n                i(this.stats, this.extraData);\n                if (this.results) {\n                    var l = (this.results).map(function(o, p) {\n                        return o.uid;\n                    });\n                    this.recordStat(\"candidate_results\", JSON.stringify(l));\n                }\n            ;\n                if (this.query) {\n                    this.recordStat(\"query\", this.query);\n                };\n                if (this.sid) {\n                    this.recordStat(\"sid\", this.sid);\n                };\n                if (this.bootstrapped) {\n                    this.recordStat(\"bootstrapped\", 1);\n                };\n                for (var m in this.avgStats) {\n                    var n = this.avgStats[m];\n                    this.stats[m] = (n[0] / n[1]);\n                };\n                new h().setURI(this.endPoint).setMethod(\"POST\").setData({\n                    stats: this.stats\n                }).send();\n                this._reset();\n            }\n        ;\n        }\n    });\n    k.register = function(l, m, n) {\n        if ((document.activeElement === l)) {\n            m.init(n);\n        }\n         else var o = g.listen(l, \"focus\", function() {\n            m.init(n);\n            o.remove();\n        })\n    ;\n    };\n    e.exports = k;\n});\n__d(\"TypeaheadHoistFriends\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._typeahead = i;\n    };\n    g(h.prototype, {\n        _subscription: null,\n        enable: function() {\n            var i = this._typeahead.getView();\n            this._subscription = i.subscribe(\"beforeRender\", function(j, k) {\n                var l = [], m = [], n = [];\n                for (var o = 0; (o < k.results.length); ++o) {\n                    var p = k.results[o];\n                    if ((p.type == \"header\")) {\n                        n = n.concat(m, l);\n                        n.push(p);\n                        m = [];\n                        l = [];\n                    }\n                     else if (((p.type == \"user\") && p.bootstrapped)) {\n                        m.push(p);\n                    }\n                     else l.push(p);\n                    \n                ;\n                };\n                k.results = n.concat(m, l);\n            });\n        },\n        disable: function() {\n            this._typeahead.getView().unsubscribe(this._subscription);\n            this._subscription = null;\n        }\n    });\n    e.exports = h;\n});\n__d(\"legacy:HoistFriendsTypeaheadBehavior\", [\"TypeaheadHoistFriends\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadHoistFriends\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.hoistFriends = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"escapeRegex\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return h.replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, \"\\\\$1\");\n    };\n    e.exports = g;\n});\n__d(\"mixin\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j, k, l, m, n, o, p, q, r) {\n        var s = function() {\n        \n        }, t = [h,i,j,k,l,m,n,o,p,q,], u = 0, v;\n        while (t[u]) {\n            v = t[u];\n            for (var w in v) {\n                if (v.hasOwnProperty(w)) {\n                    s.prototype[w] = v[w];\n                };\n            };\n            u += 1;\n        };\n        return s;\n    };\n    e.exports = g;\n});");
36529 // 11601
36530 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s51fddd875afc7457603cdcb3c6030e2a05d380c3");
36531 // 11644
36532 o50.style = o202;
36533 // undefined
36534 o50 = null;
36535 // undefined
36536 o202 = null;
36537 // 11602
36538 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"bUzfU\",]);\n}\n;\n;\n__d(\"TrackingPixel\", [\"Arbiter\",\"ControlledReferer\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ControlledReferer\"), i = {\n        _iframe: undefined,\n        loadWithNoReferrer: function(j) {\n            if (!i._iframe) {\n                var k = JSBNG__document.createElement(\"div\");\n                k.frameborder = 0;\n                k.width = k.height = 1;\n                k.style.position = \"absolute\";\n                k.style.JSBNG__top = \"-10px\";\n                h.useFacebookReferer(k, function() {\n                    g.inform(\"TrackingPixel/iframeIsLoaded\", null, g.BEHAVIOR_PERSISTENT);\n                }, null);\n                JSBNG__document.body.appendChild(k);\n                i._iframe = k;\n            }\n        ;\n        ;\n            g.subscribe(\"TrackingPixel/iframeIsLoaded\", function() {\n                var l = i._iframe.contentWindow.JSBNG__document, m = l.createElement(\"img\");\n                m.src = j;\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"ExternalTrackingTag\", [\"AsyncSignal\",\"TrackingPixel\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"TrackingPixel\"), i = b(\"JSBNG__Event\"), j = {\n        listenForElementClick: function(k, l, m, n) {\n            i.listen(k, \"click\", function() {\n                j.sendRequest(l, m, n);\n            });\n        },\n        sendRequest: function(k, l, m) {\n            if (!k) {\n                return;\n            }\n        ;\n        ;\n            new g(\"/ads/external_tracking_tag/\", {\n                href: k,\n                tracking_tag_id: l,\n                adgroup_id: m\n            }).send();\n            h.loadWithNoReferrer(k);\n        }\n    };\n    e.exports = j;\n});\n__d(\"ad-logging\", [\"Arbiter\",\"AsyncRequest\",\"Banzai\",\"collectDataAttributes\",\"Parent\",\"TrackingNodes\",\"ExternalTrackingTag\",], function(a, b, c, d, e, f) {\n    var g = \"ssinfeed\", h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Banzai\"), k = b(\"collectDataAttributes\"), l = b(\"Parent\"), m = b(\"TrackingNodes\"), n = b(\"ExternalTrackingTag\"), o = {\n    };\n    function p(s) {\n        return ((((((((s.getAttribute && ((s.getAttribute(\"ajaxify\") || s.getAttribute(\"data-endpoint\"))))) || s.action)) || s.href)) || s.JSBNG__name));\n    };\n;\n    function q(s) {\n        var t = ((s.ei || s.ai));\n        if (((!t && s.mei))) {\n            t = s.mf_story_key;\n        }\n    ;\n    ;\n        if (((((s !== null)) && ((typeof (t) === \"string\"))))) {\n            var u = false;\n            if (s.tn) {\n                var v = m.parseTrackingNodeString(s.tn);\n                for (var w = 0; ((w < v.length)); w++) {\n                    var x = v[w][0];\n                    switch (x) {\n                      case m.types.LIKE_LINK:\n                    \n                      case m.types.UNLIKE_LINK:\n                    \n                      case m.types.COMMENT:\n                    \n                      case m.types.ADD_COMMENT_BOX:\n                        return;\n                      case m.types.XBUTTON:\n                    \n                      case m.types.HIDE_LINK:\n                    \n                      case m.types.REPORT_SPAM_LINK:\n                    \n                      case m.types.HIDE_ALL_LINK:\n                    \n                      case m.types.DROPDOWN_BUTTON:\n                    \n                      case m.types.UNHIDE_LINK:\n                        return;\n                      case m.types.ATTACHMENT:\n                    \n                      case m.types.USER_MESSAGE:\n                        u = true;\n                        break;\n                    };\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            var y = JSBNG__Date.now(), z = 500;\n            s.duplicate_click = ((!!o[t] && ((((y - o[t])) < z))));\n            o[t] = y;\n            if (j.isEnabled(\"ssinfeed\")) {\n                j.post(g, s, {\n                    delay: 0,\n                    retry: j.isEnabled(\"ssinfeed_retry\")\n                });\n            }\n             else {\n                var aa = new i(\"/ajax/ssinfeed/end/\").setData(s).setAllowCrossPageTransition(true).setMethod(\"POST\");\n                aa.send();\n            }\n        ;\n        ;\n            if (((((u && s.external_tracking_tag)) && !s.duplicate_click))) {\n                n.sendRequest(s.external_tracking_tag.url, s.external_tracking_tag.tag_id, s.external_tracking_tag.adgroup_id);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function r(s, t) {\n        if (!t.node) {\n            return;\n        }\n    ;\n    ;\n        var u = p(t.node), v = ((l.byTag(t.node, \"input\") || l.byTag(t.node, \"button\")));\n        if (((((((((!u && v)) && ((v.type == \"submit\")))) && v.getAttribute)) && v.getAttribute(\"data-ft\")))) {\n            u = \"#\";\n        }\n    ;\n    ;\n        var w;\n        if (((((u && t.JSBNG__event)) && ((((t.JSBNG__event.type === \"click\")) || ((t.JSBNG__event.type === \"contextmenu\"))))))) {\n            w = k(t.node, [\"ft\",]);\n            w.ft.href = u;\n            w.ft.mouse_type = t.JSBNG__event.type;\n            q(w.ft);\n        }\n    ;\n    ;\n    };\n;\n    h.subscribe(\"ClickRefAction/new\", r);\n});\n__d(\"PopoverMenu.react\", [\"CSS\",\"InlineBlock.react\",\"Popover\",\"PopoverMenu\",\"React\",\"ReactProps\",\"SubscriptionsHandler\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"InlineBlock.react\"), i = b(\"Popover\"), j = b(\"PopoverMenu\"), k = b(\"React\"), l = b(\"ReactProps\"), m = b(\"SubscriptionsHandler\"), n = b(\"cx\"), o = b(\"joinClasses\");\n    function p(r, s) {\n        var t, u;\n        {\n            var fin191keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin191i = (0);\n            var v;\n            for (; (fin191i < fin191keys.length); (fin191i++)) {\n                ((v) = (fin191keys[fin191i]));\n                {\n                    t = r[v];\n                    u = s[v];\n                    if (((((typeof t === \"object\")) && ((typeof u === \"object\"))))) {\n                        if (!p(t, u)) {\n                            return false;\n                        }\n                    ;\n                    ;\n                    }\n                     else if (((t !== u))) {\n                        return false;\n                    }\n                    \n                ;\n                ;\n                };\n            };\n        };\n    ;\n        return true;\n    };\n;\n    var q = k.createClass({\n        displayName: \"ReactPopoverMenu\",\n        props: {\n            alignh: l.oneOf([\"left\",\"center\",\"right\",]),\n            layerBehaviors: l.array,\n            menu: l.object,\n            disabled: l.bool\n        },\n        _menuSubscriptions: null,\n        componentDidMount: function() {\n            var r = this.refs.root.getDOMNode(), s = r.firstChild;\n            g.addClass(s, \"_p\");\n            this._popover = new i(r, s, this.props.layerBehaviors, {\n                alignh: this.props.alignh,\n                disabled: this.props.disabled\n            });\n            this._popoverMenu = new j(this._popover, s, this._createMenu(this.props.menu), this.props.behaviors);\n        },\n        componentDidUpdate: function(r) {\n            if (!p(r.menu, this.props.menu)) {\n                if (this._menuSubscriptions) {\n                    this._menuSubscriptions.release();\n                    this._menuSubscriptions = null;\n                }\n            ;\n            ;\n                this._popoverMenu.setMenu(this._createMenu(this.props.menu));\n            }\n        ;\n        ;\n            if (((this.props.alignh !== r.alignh))) {\n                this._popoverMenu.getPopover().getLayer().setAlignment(this.props.alignh);\n            }\n        ;\n        ;\n            if (((this.props.disabled !== r.disabled))) {\n                if (this.props.disabled) {\n                    this._popoverMenu.disable();\n                }\n                 else this._popoverMenu.enable();\n            ;\n            }\n        ;\n        ;\n        },\n        getFirstChild: function() {\n            var r = this.props.children;\n            return ((Array.isArray(r) ? r[0] : r));\n        },\n        getButtonSize: function() {\n            var r = this.getFirstChild();\n            return ((r && r.getButtonSize()));\n        },\n        render: function() {\n            var r = this.getFirstChild();\n            r.props.className = o(((r.props.className || \"\")), \"_p\");\n            return this.transferPropsTo(h({\n                alignv: \"middle\",\n                className: \"uiPopover\",\n                ref: \"root\",\n                disabled: null\n            }, this.props.children));\n        },\n        componentWillUnmount: function() {\n            if (this._menuSubscriptions) {\n                this._menuSubscriptions.release();\n                this._menuSubscriptions = null;\n            }\n        ;\n        ;\n        },\n        _createMenu: function(r) {\n            var s = new r.ctor(r.menuitems, r.config);\n            this._menuSubscriptions = new m();\n            if (r.onItemClick) {\n                this._menuSubscriptions.addSubscriptions(s.subscribe(\"itemclick\", r.onItemClick));\n            }\n        ;\n        ;\n            if (r.onChange) {\n                this._menuSubscriptions.addSubscriptions(s.subscribe(\"change\", r.onChange));\n            }\n        ;\n        ;\n            if (this.props.onShow) {\n                this._menuSubscriptions.addSubscriptions(this._popover.subscribe(\"show\", this.props.onShow));\n            }\n        ;\n        ;\n            if (this.props.onHide) {\n                this._menuSubscriptions.addSubscriptions(this._popover.subscribe(\"hide\", this.props.onHide));\n            }\n        ;\n        ;\n            return s;\n        }\n    });\n    e.exports = q;\n});\n__d(\"ReactMenu\", [\"Menu\",\"MenuItem\",\"MenuSelectableItem\",\"MenuTheme\",\"SelectableMenu\",\"cx\",\"flattenArray\",\"merge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Menu\"), h = b(\"MenuItem\"), i = b(\"MenuSelectableItem\"), j = b(\"MenuTheme\"), k = b(\"SelectableMenu\"), l = b(\"cx\"), m = b(\"flattenArray\"), n = b(\"merge\"), o = Array.prototype.slice;\n    function p(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        }\n    ;\n    ;\n        var s = {\n            ctor: g,\n            menuitems: m(((r || []))),\n            config: {\n                theme: j,\n                maxheight: ((q ? q.maxheight : null))\n            }\n        };\n        return n(s, q);\n    };\n;\n    p.SelectableMenu = function(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        }\n    ;\n    ;\n        var s = {\n            ctor: k,\n            menuitems: m(r),\n            config: {\n                className: \"_57di\",\n                theme: j,\n                multiple: ((q && q.multiple)),\n                maxheight: ((q ? q.maxheight : null))\n            }\n        };\n        return n(s, q);\n    };\n    p.Item = function(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        }\n    ;\n    ;\n        var s = {\n            ctor: h,\n            reactChildren: r\n        };\n        return n(s, q);\n    };\n    p.SelectableItem = function(q, r) {\n        if (!Array.isArray(r)) {\n            r = o.call(arguments, 1);\n        }\n    ;\n    ;\n        var s = {\n            ctor: i,\n            reactChildren: r\n        };\n        return n(s, q);\n    };\n    e.exports = p;\n});\n__d(\"UFIOrderingModeSelector.react\", [\"InlineBlock.react\",\"Link.react\",\"LoadingIndicator.react\",\"React\",\"JSBNG__Image.react\",\"ReactMenu\",\"PopoverMenu.react\",\"cx\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"InlineBlock.react\"), h = b(\"Link.react\"), i = b(\"LoadingIndicator.react\"), j = b(\"React\"), k = b(\"JSBNG__Image.react\"), l = b(\"ReactMenu\"), m = b(\"PopoverMenu.react\"), n = b(\"cx\"), o = b(\"ix\"), p = l.SelectableMenu, q = l.SelectableItem, r = j.createClass({\n        displayName: \"UFIOrderingModeSelector\",\n        getInitialState: function() {\n            var s = null;\n            this.props.orderingmodes.map(function(t) {\n                if (t.selected) {\n                    s = t;\n                }\n            ;\n            ;\n            });\n            return {\n                selectedMode: s\n            };\n        },\n        onMenuItemClick: function(s, t) {\n            var u = t.item.getValue();\n            this.props.orderingmodes.map(function(v) {\n                if (((v.value === u))) {\n                    this.setState({\n                        selectedMode: v\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n            this.props.onOrderChanged(u);\n        },\n        render: function() {\n            var s = null;\n            if (((this.props.currentOrderingMode != this.state.selectedMode.value))) {\n                s = i({\n                    className: \"UFIOrderingModeSelectorLoading\",\n                    color: \"white\",\n                    size: \"small\"\n                });\n            }\n        ;\n        ;\n            var t = p({\n                onItemClick: this.onMenuItemClick\n            }, this.props.orderingmodes.map(function(u) {\n                return (q({\n                    key: u.value,\n                    value: u.value,\n                    selected: ((u.value === this.state.selectedMode.value))\n                }, u.JSBNG__name));\n            }.bind(this)));\n            return (j.DOM.div({\n                className: \"UFIOrderingModeSelector\"\n            }, s, g(null, m({\n                className: \"UFIOrderingModeSelectorPopover\",\n                menu: t,\n                alignh: \"right\"\n            }, h(null, this.state.selectedMode.JSBNG__name, k({\n                className: \"UFIOrderingModeSelectorDownCaret\",\n                src: o(\"/images/ui/xhp/link/more/down_caret.gif\")\n            }))))));\n        }\n    });\n    e.exports = r;\n});\n__d(\"ComposerPublishTrackingStory\", [\"JSBNG__Event\",\"ge\",\"reportData\",\"DOMQuery\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ge\"), i = b(\"reportData\"), j = b(\"DOMQuery\");\n    f.init = function(k) {\n        g.listen(k, \"submit\", function() {\n            var l = h(\"home_stream\");\n            if (!l) {\n                return;\n            }\n        ;\n        ;\n            var m = j.scry(l, \".uiStreamStory\")[0];\n            if (((m && m.getAttribute(\"data-ft\")))) {\n                var n = JSON.parse(m.getAttribute(\"data-ft\"));\n                if (!((((\"mf_story_key\" in n)) && ((\"qid\" in n))))) {\n                    return;\n                }\n            ;\n            ;\n                var o = {\n                    mf_story_key: n.mf_story_key,\n                    qid: n.qid\n                };\n                i(\"compose\", {\n                    ft: o\n                });\n            }\n        ;\n        ;\n        });\n    };\n});\n__d(\"ComposerXAttachmentBootstrap\", [\"CSS\",\"Form\",\"Parent\",\"URI\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"Form\"), i = b(\"Parent\"), j = b(\"URI\"), k = b(\"cx\"), l = [], m = {\n        bootstrap: function(n) {\n            m.load(i.byTag(n, \"form\"), n.getAttribute(\"data-endpoint\"));\n        },\n        load: function(n, o, p) {\n            var q = j(o).addQueryData({\n                composerurihash: m.getURIHash(o)\n            });\n            g.conditionClass(n, \"_fu\", p);\n            var r = i.byClass(n, \"_2_4\");\n            g.removeClass(r, \"async_saving\");\n            h.setDisabled(n, false);\n            n.action = q.toString();\n            h.bootstrap(n);\n        },\n        getURIHash: function(n) {\n            if (((n === \"initial\"))) {\n                return \"initial\";\n            }\n        ;\n        ;\n            var o = l.indexOf(n);\n            if (((o !== -1))) {\n                return ((o + \"\"));\n            }\n             else {\n                o = l.length;\n                l[o] = n;\n                return ((o + \"\"));\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = m;\n});\n__d(\"ComposerXStore\", [\"function-extensions\",\"Arbiter\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ge\"), i = {\n    };\n    function j(l, m) {\n        return ((((((\"ComposerX/\" + l)) + \"/\")) + m));\n    };\n;\n    var k = {\n        set: function(l, m, n) {\n            if (!i[l]) {\n                i[l] = {\n                };\n            }\n        ;\n        ;\n            i[l][m] = n;\n            g.inform(j(l, m), {\n            }, g.BEHAVIOR_STATE);\n        },\n        get: function(l, m) {\n            if (i[l]) {\n                return i[l][m];\n            }\n        ;\n        ;\n            return null;\n        },\n        getAllForComposer: function(l) {\n            return ((i[l] || {\n            }));\n        },\n        waitForComponents: function(l, m, n) {\n            g.registerCallback(n, m.map(j.curry(l)));\n        }\n    };\n    g.subscribe(\"page_transition\", function() {\n        {\n            var fin192keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin192i = (0);\n            var l;\n            for (; (fin192i < fin192keys.length); (fin192i++)) {\n                ((l) = (fin192keys[fin192i]));\n                {\n                    if (!h(l)) {\n                        delete i[l];\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    });\n    e.exports = k;\n});\n__d(\"ComposerX\", [\"Arbiter\",\"ComposerXAttachmentBootstrap\",\"ComposerXStore\",\"CSS\",\"DOM\",\"DOMQuery\",\"copyProperties\",\"csx\",\"cx\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ComposerXAttachmentBootstrap\"), i = b(\"ComposerXStore\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMQuery\"), m = b(\"copyProperties\"), n = b(\"csx\"), o = b(\"cx\"), p = b(\"getObjectValues\"), q = \"any\";\n    function r(s) {\n        this._root = s;\n        this._composerID = s.id;\n        this._attachments = {\n        };\n        this._attachmentFetchForm = l.JSBNG__find(s, \"._2_4\");\n        this._resetSubscription = g.subscribe(\"composer/publish\", function(t, u) {\n            if (((u.composer_id === this._composerID))) {\n                this.reset();\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n;\n    m(r.prototype, {\n        _endpointHashToShow: q,\n        _lastFetchEndpoint: \"\",\n        _initialAttachmentEndpoint: \"\",\n        getAttachment: function(s, t) {\n            var u = h.getURIHash(s);\n            this._endpointHashToShow = u;\n            var v = this._attachments[u];\n            if (v) {\n                this._showAttachmentAfterComponentsLoaded(u);\n            }\n             else this.fetchAttachmentData(s, t);\n        ;\n        ;\n        },\n        fetchAttachmentData: function(s, t) {\n            var u = h.getURIHash(s);\n            if (this._attachments[u]) {\n                return;\n            }\n        ;\n        ;\n            if (((s !== this._lastFetchEndpoint))) {\n                h.load(this._attachmentFetchForm, s, t);\n                this._lastFetchEndpoint = s;\n            }\n        ;\n        ;\n        },\n        setAttachment: function(s, t, u, v) {\n            this._setupAttachment(s, t, u, v);\n            this._showAttachmentAfterComponentsLoaded(s);\n        },\n        setInitialAttachment: function(s, t, u, v) {\n            var w = h.getURIHash(s);\n            this._setupAttachment(w, t, u, v);\n            this._initialAttachmentEndpoint = s;\n            if (!this._currentInstance) {\n                this._showAttachmentAfterComponentsLoaded(w);\n            }\n        ;\n        ;\n        },\n        setComponent: function(s, t) {\n            if (!i.get(this._composerID, s)) {\n                i.set(this._composerID, s, t);\n                k.appendContent(this._attachmentFetchForm, k.create(\"input\", {\n                    type: \"hidden\",\n                    JSBNG__name: \"loaded_components[]\",\n                    value: s\n                }));\n            }\n        ;\n        ;\n        },\n        reset: function() {\n            if (this._currentInstance) {\n                this._currentInstance.cleanup();\n                this._currentInstance = null;\n            }\n        ;\n        ;\n            {\n                var fin193keys = ((window.top.JSBNG_Replay.forInKeys)((this._attachments))), fin193i = (0);\n                var s;\n                for (; (fin193i < fin193keys.length); (fin193i++)) {\n                    ((s) = (fin193keys[fin193i]));\n                    {\n                        this._attachments[s].instance.reset();\n                    ;\n                    };\n                };\n            };\n        ;\n            var t = i.getAllForComposer(this._composerID);\n            p(t).forEach(function(u) {\n                if (u.reset) {\n                    u.reset(u);\n                }\n            ;\n            ;\n            });\n            this.getAttachment(this._initialAttachmentEndpoint);\n            g.inform(\"composer/reset\");\n        },\n        destroy: function() {\n            if (this._resetSubscription) {\n                this._resetSubscription.unsubscribe();\n                this._resetSubscription = null;\n            }\n        ;\n        ;\n        },\n        addPlaceholders: function(s, t) {\n            var u;\n            {\n                var fin194keys = ((window.top.JSBNG_Replay.forInKeys)((this._attachments))), fin194i = (0);\n                var v;\n                for (; (fin194i < fin194keys.length); (fin194i++)) {\n                    ((v) = (fin194keys[fin194i]));\n                    {\n                        u = this._attachments[v];\n                        if (((u.instance === s))) {\n                            t.forEach(function(w) {\n                                u.placeholders.push(w);\n                                u.required_components.push(w.component_name);\n                            });\n                            break;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((this._currentInstance === s))) {\n                this._fillPlaceholders(t);\n            }\n        ;\n        ;\n        },\n        _setupAttachment: function(s, t, u, v) {\n            t.setComposerID(this._composerID);\n            this._attachments[s] = {\n                instance: t,\n                placeholders: u,\n                required_components: v\n            };\n            var w = l.JSBNG__find(this._root, \"div._55d0\"), x = t.getRoot();\n            if (((x.parentNode !== w))) {\n                j.hide(x);\n                k.appendContent(w, x);\n            }\n        ;\n        ;\n        },\n        _showAttachment: function(s, t, u) {\n            if (((this._currentInstance === s))) {\n                return;\n            }\n        ;\n        ;\n            if (((this._endpointHashToShow === q))) {\n                this._endpointHashToShow = null;\n            }\n             else if (((this._endpointHashToShow !== t))) {\n                return;\n            }\n            \n        ;\n        ;\n            if (this._currentInstance) {\n                if (!this._currentInstance.canSwitchAway()) {\n                    return;\n                }\n            ;\n            ;\n                this._currentInstance.cleanup();\n            }\n        ;\n        ;\n            this._currentInstance = s;\n            var v = l.JSBNG__find(this._root, \"div._55d0\"), w = v.childNodes, x = s.getRoot();\n            for (var y = 0; ((y < w.length)); y++) {\n                if (((w[y] !== x))) {\n                    j.hide(w[y]);\n                }\n            ;\n            ;\n            };\n        ;\n            j.show(x);\n            this._fillPlaceholders(u);\n            var z = h.getURIHash(this._initialAttachmentEndpoint), aa = ((t === z));\n            s.initWithComponents(aa);\n            this._setAttachmentSelectedClass(s.attachmentClassName);\n            g.inform(\"composer/initializedAttachment\", {\n                composerRoot: this._root,\n                isInitial: aa\n            });\n        },\n        _showAttachmentAfterComponentsLoaded: function(s) {\n            var t = this._attachments[s];\n            i.waitForComponents(this._composerID, t.required_components, this._showAttachment.bind(this, t.instance, s, t.placeholders));\n        },\n        _fillPlaceholders: function(s) {\n            s.forEach(function(t) {\n                var u = i.get(this._composerID, t.component_name);\n                if (((t.element !== u.element.parentNode))) {\n                    k.setContent(t.element, u.element);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _setAttachmentSelectedClass: function(s) {\n            var t = l.scry(this._root, \"._519b\")[0], u;\n            if (t) {\n                j.removeClass(t, \"_519b\");\n                u = l.scry(t, \"*[aria-pressed=\\\"true\\\"]\")[0];\n                if (u) {\n                    u.setAttribute(\"aria-pressed\", \"false\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (s) {\n                var v = l.scry(this._root, ((\".\" + s)))[0];\n                if (v) {\n                    j.addClass(v, \"_519b\");\n                    u = l.scry(v, \"*[aria-pressed=\\\"false\\\"]\")[0];\n                    if (u) {\n                        u.setAttribute(\"aria-pressed\", \"true\");\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = r;\n});\n__d(\"ComposerXAttachment\", [\"ComposerXStore\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ComposerXStore\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j() {\n    \n    };\n;\n    h(j.prototype, {\n        getRoot: i,\n        initWithComponents: function(k) {\n        \n        },\n        cleanup: i,\n        reset: i,\n        attachmentClassName: \"\",\n        getComponent: function(k) {\n            return g.get(this._composerID, k);\n        },\n        canSwitchAway: i.thatReturnsTrue,\n        setComposerID: function(k) {\n            this._composerID = k;\n        },\n        allowOGTagPreview: function() {\n            return false;\n        }\n    });\n    e.exports = j;\n});\n__d(\"ComposerXController\", [\"Arbiter\",\"ComposerX\",\"ComposerXAttachmentBootstrap\",\"Parent\",\"$\",\"cx\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ComposerX\"), i = b(\"ComposerXAttachmentBootstrap\"), j = b(\"Parent\"), k = b(\"$\"), l = b(\"cx\"), m = b(\"emptyFunction\"), n = b(\"ge\"), o = {\n    };\n    function p(r) {\n        var s = j.byClass(k(r), \"_119\"), t = s.id;\n        if (!o[t]) {\n            o[t] = new h(s);\n        }\n    ;\n    ;\n        return o[t];\n    };\n;\n    var q = {\n        getAttachment: function(r, s, t) {\n            var u = p(r);\n            u.getAttachment(s, t);\n        },\n        fetchAttachmentData: function(r, s, t) {\n            p(r).fetchAttachmentData(s, t);\n        },\n        setAttachment: function(r, s, t, u, v) {\n            var w = p(r);\n            w.setAttachment(s, t, u, v);\n        },\n        setInitialAttachment: function(r, s, t, u, v) {\n            var w = p(r);\n            w.setInitialAttachment(s, t, u, v);\n        },\n        setComponent: function(r, s, t) {\n            var u = p(r);\n            u.setComponent(s, t);\n        },\n        reset: function(r) {\n            var s = p(r);\n            s.reset();\n        },\n        holdTheMarkup: m,\n        getEndpoint: function(r, s, t) {\n            var u = p(r);\n            i.load(u._attachmentFetchForm, s, t);\n        },\n        addPlaceholders: function(r, s, t) {\n            var u = p(r);\n            u.addPlaceholders(s, t);\n        }\n    };\n    i.bootstrap = function(r) {\n        q.getAttachment(r, r.getAttribute(\"data-endpoint\"));\n    };\n    g.subscribe(\"page_transition\", function() {\n        {\n            var fin195keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin195i = (0);\n            var r;\n            for (; (fin195i < fin195keys.length); (fin195i++)) {\n                ((r) = (fin195keys[fin195i]));\n                {\n                    if (!n(r)) {\n                        o[r].destroy();\n                        delete o[r];\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    });\n    e.exports = q;\n});\n__d(\"ComposerXAttachmentUtils\", [\"CSS\",\"DataStore\",\"DOMQuery\",\"Focus\",\"Input\",\"PageTransitions\",\"Run\",\"StickyPlaceholderInput\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"Focus\"), k = b(\"Input\"), l = b(\"PageTransitions\"), m = b(\"Run\"), n = b(\"StickyPlaceholderInput\"), o = b(\"tx\"), p = \"composer_fixed_placeholder\";\n    function q(s, t) {\n        if (!h.get(s.element, p, false)) {\n            s.instance.setPlaceholder(t);\n        }\n    ;\n    ;\n    };\n;\n    var r = {\n        initMentions: function(s, t) {\n            q(s, t);\n            var u = i.JSBNG__find(s.element, \"textarea.input\");\n            j.set(u);\n        },\n        setStickyPlaceholderForMentions: function(s, t) {\n            if (((i.contains(s.element, JSBNG__document.activeElement) && g.hasClass(JSBNG__document.activeElement, \"DOMControl_placeholder\")))) {\n                JSBNG__document.activeElement.JSBNG__blur();\n            }\n        ;\n        ;\n            q(s, t);\n        },\n        setPlaceholderIsFixed: function(s, t) {\n            h.set(s.element, p, !!t);\n        },\n        setStickyPlaceholderForTypeahead: function(s, t) {\n            var u = i.JSBNG__find(s, \".textInput\");\n            n.setPlaceholderText(u, t);\n        },\n        registerInputForLeaveWarning: function(s) {\n            m.onBeforeUnload(function() {\n                var t = l.getNextURI();\n                if (t.getQueryData().hasOwnProperty(\"theater\")) {\n                    return;\n                }\n            ;\n            ;\n                if (((a.Dialog && a.Dialog.getCurrent()))) {\n                    return;\n                }\n            ;\n            ;\n                if (((((s.offsetParent !== null)) && !k.isEmpty(s)))) {\n                    return \"You haven't finished your post yet. Do you want to leave without finishing?\";\n                }\n            ;\n            ;\n            });\n        }\n    };\n    e.exports = r;\n});\n__d(\"DragDropFileUpload\", [], function(a, b, c, d, e, f) {\n    f.isSupported = function() {\n        return ((typeof (JSBNG__FileList) !== \"undefined\"));\n    };\n});\n__d(\"DocumentDragDrop\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DOM\",\"DOMQuery\",\"DragDropFileUpload\",\"emptyFunction\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"DragDropFileUpload\"), m = b(\"emptyFunction\"), n = b(\"getObjectValues\"), o = {\n    }, p = 0;\n    function q() {\n        p = 0;\n        n(o).forEach(function(t) {\n            i.removeClass(t.element, t.className);\n            h.inform(\"dragleave\", {\n                element: t.element\n            });\n        });\n    };\n;\n    function r() {\n        if (!l.isSupported()) {\n            return;\n        }\n    ;\n    ;\n        g.listen(JSBNG__document, \"dragenter\", function(u) {\n            if (((p === 0))) {\n                n(o).forEach(function(v) {\n                    i.addClass(v.element, v.className);\n                    h.inform(\"dragenter\", {\n                        element: v.element,\n                        JSBNG__event: u\n                    });\n                });\n            }\n        ;\n        ;\n            p++;\n        });\n        g.listen(JSBNG__document, \"dragleave\", function(u) {\n            p--;\n            if (((p === 0))) {\n                q();\n            }\n        ;\n        ;\n        });\n        g.listen(JSBNG__document, \"drop\", function(u) {\n            var v = u.getTarget();\n            if (k.isNodeOfType(u.getTarget(), \"input\")) {\n                if (((v.type === \"file\"))) {\n                    return;\n                }\n            ;\n            }\n        ;\n        ;\n            u.prevent();\n        });\n        g.listen(JSBNG__document, \"dragover\", g.prevent);\n        var t = null;\n        JSBNG__document.JSBNG__addEventListener(\"dragover\", function() {\n            ((t && JSBNG__clearTimeout(t)));\n            t = JSBNG__setTimeout(q, 839);\n        }, true);\n        r = m;\n    };\n;\n    var s = {\n        registerStatusElement: function(t, u) {\n            r();\n            o[j.getID(t)] = {\n                element: t,\n                className: u\n            };\n        },\n        removeStatusElement: function(t) {\n            var u = j.getID(t), v = o[u];\n            i.removeClass(v.element, v.className);\n            delete o[u];\n        }\n    };\n    e.exports = s;\n});\n__d(\"DragDropTarget\", [\"JSBNG__Event\",\"CSS\",\"DocumentDragDrop\",\"DragDropFileUpload\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DocumentDragDrop\"), j = b(\"DragDropFileUpload\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n    function m(n) {\n        this._element = n;\n        this._listeners = [];\n        this._statusElem = n;\n        this._dragEnterCount = 0;\n        this._enabled = false;\n    };\n;\n    k(m.prototype, {\n        _onFilesDropCallback: l,\n        _onURLDropCallback: l,\n        _onPlainTextDropCallback: l,\n        _onDropCallback: l,\n        _fileFilterFn: l.thatReturnsArgument,\n        setOnFilesDropCallback: function(n) {\n            this._onFilesDropCallback = n;\n            return this;\n        },\n        setOnURLDropCallback: function(n) {\n            this._onURLDropCallback = n;\n            return this;\n        },\n        setOnPlainTextDropCallback: function(n) {\n            this._onPlainTextDropCallback = n;\n            return this;\n        },\n        setOnDropCallback: function(n) {\n            this._onDropCallback = n;\n            return this;\n        },\n        enable: function() {\n            if (!j.isSupported()) {\n                return this;\n            }\n        ;\n        ;\n            i.registerStatusElement(this._statusElem, \"fbWantsDragDrop\");\n            this._listeners.push(g.listen(this._element, \"dragenter\", this._onDragEnter.bind(this)));\n            this._listeners.push(g.listen(this._element, \"dragleave\", this._onDragLeave.bind(this)));\n            this._listeners.push(g.listen(this._element, \"dragover\", g.kill));\n            this._listeners.push(g.listen(this._element, \"drop\", function(n) {\n                this._dragEnterCount = 0;\n                h.removeClass(this._statusElem, \"fbDropReady\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhoto\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhotos\");\n                h.removeClass(this._statusElem, \"fbDropReadyLink\");\n                var o = {\n                }, p = false, q = this._fileFilterFn(n.dataTransfer.files);\n                if (q.length) {\n                    this._onFilesDropCallback(q, n);\n                    o.files = q;\n                    p = true;\n                }\n            ;\n            ;\n                var r = ((n.dataTransfer.getData(\"url\") || n.dataTransfer.getData(\"text/uri-list\")));\n                if (r) {\n                    this._onURLDropCallback(r, n);\n                    o.url = r;\n                    p = true;\n                }\n            ;\n            ;\n                var s = n.dataTransfer.getData(\"text/plain\");\n                if (s) {\n                    this._onPlainTextDropCallback(s, n);\n                    o.plainText = s;\n                    p = true;\n                }\n            ;\n            ;\n                if (p) {\n                    this._onDropCallback(o, n);\n                }\n            ;\n            ;\n                n.kill();\n            }.bind(this)));\n            this._enabled = true;\n            return this;\n        },\n        disable: function() {\n            if (!this._enabled) {\n                return this;\n            }\n        ;\n        ;\n            i.removeStatusElement(this._statusElem, \"fbWantsDragDrop\");\n            h.removeClass(this._statusElem, \"fbDropReady\");\n            h.removeClass(this._statusElem, \"fbDropReadyPhoto\");\n            h.removeClass(this._statusElem, \"fbDropReadyPhotos\");\n            h.removeClass(this._statusElem, \"fbDropReadyLink\");\n            while (this._listeners.length) {\n                this._listeners.pop().remove();\n            ;\n            };\n        ;\n            this._enabled = false;\n            return this;\n        },\n        setFileFilter: function(n) {\n            this._fileFilterFn = n;\n            return this;\n        },\n        setStatusElement: function(n) {\n            this._statusElem = n;\n            return this;\n        },\n        _onDragEnter: function(n) {\n            if (((this._dragEnterCount === 0))) {\n                var o = n.dataTransfer.items, p = false;\n                for (var q = 0; ((q < o.length)); q++) {\n                    if (!o[q].type.match(\"image/*\")) {\n                        p = true;\n                        break;\n                    }\n                ;\n                ;\n                };\n            ;\n                h.addClass(this._statusElem, \"fbDropReady\");\n                if (p) {\n                    h.addClass(this._statusElem, \"fbDropReadyLink\");\n                }\n                 else if (((o.length > 1))) {\n                    h.addClass(this._statusElem, \"fbDropReadyPhotos\");\n                }\n                 else h.addClass(this._statusElem, \"fbDropReadyPhoto\");\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            this._dragEnterCount++;\n        },\n        _onDragLeave: function() {\n            this._dragEnterCount = Math.max(((this._dragEnterCount - 1)), 0);\n            if (((this._dragEnterCount === 0))) {\n                h.removeClass(this._statusElem, \"fbDropReady\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhoto\");\n                h.removeClass(this._statusElem, \"fbDropReadyPhotos\");\n                h.removeClass(this._statusElem, \"fbDropReadyLink\");\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"ComposerXDragDrop\", [\"Arbiter\",\"ComposerXController\",\"CSS\",\"DragDropTarget\",\"DOMQuery\",\"Parent\",\"URI\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ComposerXController\"), i = b(\"CSS\"), j = b(\"DragDropTarget\"), k = b(\"DOMQuery\"), l = b(\"Parent\"), m = b(\"URI\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"cx\"), q = \"/ajax/composerx/attachment/media/upload/\", r = \"/ajax/composerx/attachment/link/scraper/\", s = function(u) {\n        u();\n    };\n    function t(u, v, w, x) {\n        this._root = u;\n        this._composerID = v;\n        this._targetID = w;\n        x = ((x || s));\n        this._dragdrop = new j(u).setOnFilesDropCallback(function(y) {\n            x(this._uploadFiles.bind(this, y));\n        }.bind(this)).setFileFilter(t.filterImages).enable();\n        t.handleDragEnterAndLeave(u);\n        g.subscribe(\"composer/deactivateDragdrop\", function() {\n            this.deactivate();\n        }.bind(this));\n        g.subscribe(\"composer/reactivateDragdrop\", function() {\n            this.reactivate();\n        }.bind(this));\n    };\n;\n    n(t, {\n        handleDragEnterAndLeave: function(u) {\n            var v = k.scry(l.byClass(u, \"_119\"), \"._2wr\");\n            g.subscribe(\"dragenter\", function(w, x) {\n                if (((u == x.element))) {\n                    v.forEach(i.hide);\n                }\n            ;\n            ;\n            });\n            g.subscribe(\"dragleave\", function(w, x) {\n                if (((u == x.element))) {\n                    v.forEach(i.show);\n                }\n            ;\n            ;\n            });\n        },\n        filterImages: function(u) {\n            var v = [];\n            for (var w = 0; ((w < u.length)); w++) {\n                if (u[w].type.match(\"image/*\")) {\n                    v.push(u[w]);\n                }\n            ;\n            ;\n            };\n        ;\n            return v;\n        }\n    });\n    n(t.prototype, {\n        enableURLDropping: function() {\n            this._dragdrop.setOnURLDropCallback(this._onURLDrop.bind(this));\n        },\n        deactivate: function() {\n            this._dragdrop.disable();\n        },\n        reactivate: function() {\n            this._dragdrop.enable();\n        },\n        _uploadFiles: function(u) {\n            h.getAttachment(this._root, q);\n            g.inform(((((\"ComposerXFilesStore/filesDropped/\" + this._composerID)) + \"/mediaupload\")), {\n                files: u\n            }, g.BEHAVIOR_PERSISTENT);\n        },\n        _onURLDrop: function(u) {\n            var v = new m(r);\n            v.addQueryData({\n                scrape_url: encodeURIComponent(u)\n            });\n            h.getAttachment(this._root, v.toString());\n        }\n    });\n    e.exports = t;\n});\n__d(\"PrivacyConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        FRIENDS_PLUS_GAMER_FRIENDS: 128,\n        FRIENDS_MINUS_ACQUAINTANCES: 127,\n        FACEBOOK_EMPLOYEES: 112,\n        CUSTOM: 111,\n        EVERYONE: 80,\n        NETWORKS_FRIENDS_OF_FRIENDS: 60,\n        NETWORKS_FRIENDS: 55,\n        FRIENDS_OF_FRIENDS: 50,\n        ALL_FRIENDS: 40,\n        SELF: 10,\n        NOBODY: 0\n    }, h = {\n        EVERYONE: 80,\n        NETWORKS_FRIENDS: 55,\n        FRIENDS_OF_FRIENDS: 50,\n        ALL_FRIENDS: 40,\n        SOME_FRIENDS: 30,\n        SELF: 10,\n        NO_FRIENDS: 0\n    }, i = {\n        NONE: 0,\n        TAGGEES: 1,\n        FRIENDS_OF_TAGGEES: 2\n    }, j = {\n        BaseValue: g,\n        FriendsValue: h,\n        TagExpansion: i\n    };\n    e.exports = j;\n});\n__d(\"ComposerXBootloadStatusAttachment\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"AsyncRequest\",\"Bootloader\",\"Class\",\"ComposerXAttachment\",\"ComposerXController\",\"ComposerXDragDrop\",\"ComposerXStore\",\"CSS\",\"DOM\",\"DOMQuery\",\"Focus\",\"Parent\",\"PlaceholderListener\",\"PrivacyConst\",\"URI\",\"SelectorDeprecated\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Class\"), l = b(\"ComposerXAttachment\"), m = b(\"ComposerXController\"), n = b(\"ComposerXDragDrop\"), o = b(\"ComposerXStore\"), p = b(\"CSS\"), q = b(\"DOM\"), r = b(\"DOMQuery\"), s = b(\"Focus\"), t = b(\"Parent\"), u = b(\"PlaceholderListener\"), v = b(\"PrivacyConst\"), w = b(\"URI\"), x = b(\"SelectorDeprecated\"), y = b(\"copyProperties\"), z = b(\"csx\"), aa = b(\"cx\"), ba = {\n    };\n    function ca(da, ea) {\n        this.parent.construct(this);\n        this._root = da;\n        this._config = ea;\n    };\n;\n    k.extend(ca, l);\n    y(ca.prototype, {\n        _attachmentIsActive: false,\n        _bootloading: false,\n        _fullVersion: false,\n        _focusListener: null,\n        _privacyWidgetTags: null,\n        _scraper: null,\n        _dragdrop: null,\n        attachmentClassName: \"_4j\",\n        getRoot: function() {\n            return this._root;\n        },\n        initWithComponents: function(da) {\n            ba[this._composerID] = this;\n            this._attachmentIsActive = true;\n            var ea = r.JSBNG__find(this.getComponent(\"maininput\").element, \"textarea.input\");\n            if (this._fullVersion) {\n                this._fullInitWithComponents();\n            }\n             else if (!this._bootloading) {\n                if (r.contains(this._root, JSBNG__document.activeElement)) {\n                    this._onInitialFocus();\n                }\n                 else this._focusListener = g.listen(ea, \"JSBNG__focus\", this._onInitialFocus.bind(this));\n            ;\n            }\n            \n        ;\n        ;\n            this._dragEnterHandler = h.subscribe(\"dragenter\", function(fa, ga) {\n                if (((ga.element == this._root))) {\n                    var ha = ga.JSBNG__event.dataTransfer.items, ia;\n                    if (ha) {\n                        ia = n.filterImages(ha);\n                    }\n                ;\n                ;\n                    if (((ia && ((ia.length > 0))))) {\n                        s.set(ea);\n                    }\n                     else {\n                        var ja = t.byClass(this._root, \"focus_target\");\n                        u.expandInput(ja);\n                        if (((!this._bootloading && !this._fullVersion))) {\n                            this._onInitialFocus();\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            this.getComponent(\"maininput\").instance.setPlaceholder(this._config.mentionsPlaceholder);\n            if (!da) {\n                s.set(ea);\n            }\n        ;\n        ;\n            if (this._config.plus_version) {\n                this._dragdrop = new n(this._root, this._composerID, this._config.targetID);\n                this._dragdrop.enableURLDropping();\n            }\n        ;\n        ;\n        },\n        _fullInitWithComponents: function() {\n            j.loadModules([\"ComposerXPrivacyWidgetTags\",\"URLScraper\",\"URI\",], function(da, ea, fa) {\n                this._tagger.init(this);\n                this._privacyWidgetTags = new da(this);\n                var ga = r.JSBNG__find(this.getComponent(\"maininput\").element, \"textarea.input\");\n                if (!this._scraper) {\n                    this._scraper = new ea(ga);\n                    this._scraper.subscribe(\"match\", function(ha, ia) {\n                        var ja = this._getScraperEndpoint();\n                        ja.addQueryData({\n                            scrape_url: encodeURIComponent(ia.url)\n                        });\n                        m.getAttachment(this._root, ja.toString());\n                    }.bind(this));\n                }\n            ;\n            ;\n                this._scraper.enable();\n                this._scraper.check();\n            }.bind(this));\n            this._initPrivacyReminder();\n        },\n        _initPrivacyReminder: function() {\n            if (((!this._reminderDialog || this._reminderShown))) {\n                return;\n            }\n        ;\n        ;\n            var da = this.getComponent(\"mainprivacywidget\"), ea = x.getSelectedOptions(da.element), fa = x.getOptionValue(ea[0]);\n            if (((fa !== String(v.BaseValue.SELF)))) {\n                return;\n            }\n        ;\n        ;\n            this._reminderDialog.setContext(this.getComponent(\"mainprivacywidget\").element).show();\n            this._reminderShown = true;\n            var ga = function() {\n                new i(\"/ajax/privacy/reminders/dismiss\").setData({\n                    type: \"only_me\"\n                }).send();\n                this._reminderDialog.hide();\n            }.bind(this);\n            this._reminderEvents = [g.listen(this._reminderDialog.getContent(), \"click\", ga),g.listen(this._reminderDialog.getContext(), \"click\", ga),];\n        },\n        cleanup: function() {\n            this._attachmentIsActive = false;\n            if (this._focusListener) {\n                this._focusListener.remove();\n                this._focusListener = null;\n            }\n        ;\n        ;\n            if (((this._reminderDialog && this._reminderShown))) {\n                this._reminderDialog.hide();\n                this._reminderEvents.forEach(function(da) {\n                    da.remove();\n                });\n            }\n        ;\n        ;\n            if (this._dragdrop) {\n                this._dragdrop.deactivate();\n                this._dragdrop = null;\n            }\n        ;\n        ;\n            if (this._fullVersion) {\n                this._tagger.cleanup();\n                this._privacyWidgetTags.destroy();\n                this._privacyWidgetTags = null;\n                this._scraper.disable();\n            }\n        ;\n        ;\n            if (this._dragEnterHandler) {\n                this._dragEnterHandler.unsubscribe();\n                this._dragEnterHandler = null;\n            }\n        ;\n        ;\n        },\n        reset: function() {\n            var da = t.byClass(this._root, \"child_was_focused\");\n            if (da) {\n                p.removeClass(da, \"child_was_focused\");\n            }\n        ;\n        ;\n            if (this._tagger) {\n                this._tagger.reset();\n            }\n        ;\n        ;\n            this.getComponent(\"maininput\").instance.setPlaceholder(this._config.mentionsPlaceholder);\n        },\n        canSwitchAway: function() {\n            return !t.byClass(this._root, \"async_saving\");\n        },\n        setBootloadedContent: function(da, ea, fa, ga) {\n            this._reminderDialog = ga;\n            var ha = fa.map(function(ia) {\n                return ia.component_name;\n            });\n            o.waitForComponents(this._composerID, ha, function() {\n                var ia = r.JSBNG__find(this._root, \"._3-6\"), ja = r.JSBNG__find(this._root, \"._3-7\");\n                q.setContent(ia, da.tagger_content);\n                q.setContent(ja, da.tagger_icons);\n                m.addPlaceholders(this._root, this, fa);\n                this._tagger = ea;\n                this._fullVersion = true;\n                if (this._attachmentIsActive) {\n                    if (this._focusListener) {\n                        this._focusListener.remove();\n                        this._focusListener = null;\n                    }\n                ;\n                ;\n                    this._fullInitWithComponents();\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _getScraperEndpoint: function() {\n            return w(\"/ajax/composerx/attachment/link/scraper/\");\n        },\n        _onInitialFocus: function() {\n            h.inform(\"composer/focus\");\n            m.getEndpoint(this._root, \"/ajax/composerx/attachment/status/bootload/\", true);\n            this._bootloading = true;\n        },\n        allowOGTagPreview: function() {\n            return true;\n        }\n    });\n    ca.setBootloadedContent = function(da, ea, fa, ga, ha) {\n        var ia = ba[da];\n        if (ia) {\n            ia.setBootloadedContent(ea, fa, ga, ha);\n        }\n    ;\n    ;\n    };\n    e.exports = ca;\n});\n__d(\"ComposerXMentionsInputReset\", [\"DOMQuery\",\"Input\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"Input\");\n    function i(j) {\n        var k = g.scry(j.element, \"textarea.input\")[0];\n        j.instance.reset();\n        h.reset(k);\n    };\n;\n    e.exports = i;\n});\n__d(\"ComposerXOGTaggerIconReset\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    function i(j) {\n        g.removeClass(j.element, \"_4-jh\");\n        g.removeClass(j.element, \"_509o\");\n    };\n;\n    e.exports = i;\n});\n__d(\"ComposerXPrivacyWidgetReset\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\");\n    function h(i) {\n        g.inform(\"Composer/changedtags\", {\n            withTags: [],\n            mention: {\n            },\n            eventTag: false\n        });\n    };\n;\n    e.exports = h;\n});\n__d(\"ComposerXTaggerIconReset\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    function i(j) {\n        g.removeClass(j.element, \"_1dsa\");\n        g.removeClass(j.element, \"_1dsb\");\n        g.removeClass(j.element, \"_509o\");\n    };\n;\n    e.exports = i;\n});\n__d(\"SwapButtonDEPRECATED\", [\"JSBNG__Event\",\"Arbiter\",\"copyProperties\",\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"copyProperties\"), j = b(\"CSS\");\n    function k(l, m, n) {\n        this._swapperButton = l;\n        this._swappeeButton = m;\n        g.listen(l, \"click\", this.swap.bind(this));\n        if (n) {\n            g.listen(m, \"click\", this.unswap.bind(this));\n        }\n    ;\n    ;\n        h.subscribe(\"SwapButtonDEPRECATED/focusOnJoinButton\", this.setFocusOnSwapper.bind(this), h.SUBSCRIBE_ALL);\n    };\n;\n    i(k.prototype, {\n        _swapperButton: null,\n        _swappeeButton: null,\n        swap: function(l) {\n            j.hide(this._swapperButton);\n            j.show(this._swappeeButton);\n            ((((l !== false)) && this._swappeeButton.JSBNG__focus()));\n        },\n        unswap: function(l) {\n            j.show(this._swapperButton);\n            j.hide(this._swappeeButton);\n            ((((l !== false)) && this._swapperButton.JSBNG__focus()));\n        },\n        toggle: function() {\n            j.toggle(this._swapperButton);\n            j.toggle(this._swappeeButton);\n        },\n        setFocusOnSwapper: function() {\n            this._swapperButton.JSBNG__focus();\n        }\n    });\n    e.exports = k;\n});\n__d(\"SubscribeButton\", [\"Arbiter\",\"AsyncRequest\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"JSBNG__Event\"), j = {\n        SUBSCRIBED: \"FollowingUser\",\n        UNSUBSCRIBED: \"UnfollowingUser\",\n        init: function(k, l, m, n, o, p) {\n            i.listen(l, \"click\", function() {\n                g.inform(j.SUBSCRIBED, {\n                    profile_id: n\n                });\n            });\n            g.subscribe(j.SUBSCRIBED, function(q, r) {\n                if (((n === r.profile_id))) {\n                    if (!o) {\n                        m.suppressNextMouseEnter();\n                    }\n                ;\n                ;\n                    k.swap();\n                    if (((p === true))) {\n                        new h().setURI(\"/ajax/profile/suggestions_on_following.php\").setData({\n                            profileid: n\n                        }).send();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n            g.subscribe(j.UNSUBSCRIBED, function(q, r) {\n                if (((n === r.profile_id))) {\n                    k.unswap();\n                    m.hideFlyout();\n                    g.inform(\"SubMenu/Reset\");\n                }\n            ;\n            ;\n            });\n        },\n        initUnsubscribe: function(k, l) {\n            i.listen(k, \"click\", function() {\n                g.inform.bind(g, j.UNSUBSCRIBED, {\n                    profile_id: l\n                }).defer();\n            });\n        }\n    };\n    e.exports = j;\n});\n__d(\"AudienceSelectorTags\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        hasTags: function(i) {\n            return g.hasOwnProperty(i);\n        },\n        setHasTags: function(i) {\n            if (i) {\n                g[i] = true;\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = h;\n});\n__d(\"BasePrivacyOption\", [\"Arbiter\",\"AudienceSelectorTags\",\"copyProperties\",\"CSS\",\"DOM\",\"Env\",\"fbt\",\"Parent\",\"PrivacyConst\",\"SelectorDeprecated\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AudienceSelectorTags\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"fbt\"), n = b(\"Parent\"), o = b(\"PrivacyConst\"), p = b(\"SelectorDeprecated\"), q = b(\"tx\");\n    function r(s) {\n        this._selector = n.byClass(s, \"audienceSelector\");\n        this._plusLabel = k.scry(s, \".plusLabel\")[0];\n        if (!this._selector) {\n            return;\n        }\n    ;\n    ;\n        this._elem = s;\n        this._taggedIDs = [];\n        this._tags = [];\n        this._hasEvent = false;\n        this._recalculateTooltipAndLabel();\n        this._updateSelector();\n        g.subscribe(\"Composer/changedtags\", function(t, u) {\n            if (!this._getChangedData()) {\n                return;\n            }\n        ;\n        ;\n            var v = this._hasEvent;\n            this._hasEvent = !!u.eventTag;\n            this._tags = u.withTags.map(function(y) {\n                return y.getText();\n            });\n            this._taggedIDs = u.withTags.map(function(y) {\n                return y.getValue();\n            });\n            {\n                var fin196keys = ((window.top.JSBNG_Replay.forInKeys)((u.mention))), fin196i = (0);\n                var w;\n                for (; (fin196i < fin196keys.length); (fin196i++)) {\n                    ((w) = (fin196keys[fin196i]));\n                    {\n                        if (((((u.mention[w].type == \"user\")) && ((u.mention[w].uid != l.user))))) {\n                            this._tags.push(u.mention[w].text);\n                            this._taggedIDs.push(u.mention[w].uid);\n                        }\n                         else if (((u.mention[w].type == \"JSBNG__event\"))) {\n                            this._hasEvent = true;\n                        }\n                        \n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((this._hasEvent && ((v != this._hasEvent))))) {\n                this._eventTagChanged();\n            }\n        ;\n        ;\n            var x = this._recalculateTooltipAndLabel();\n            if (((x && p.isOptionSelected(this._elem)))) {\n                this._updateSelector();\n                g.inform(\"SelectedPrivacyOption/changed\", this._getChangedData());\n            }\n        ;\n        ;\n        }.bind(this));\n        p.listen(this._selector, \"change\", this._updateSelector.bind(this));\n    };\n;\n    i(r.prototype, {\n        _eventTagChanged: function() {\n        \n        },\n        _getChangedData: function() {\n            return null;\n        },\n        _recalculateTooltipAndLabel: function() {\n            var s = this._tooltip, t = this._label, u = this._getIncludedAudience(), v = this._getExcludedAudience(), w = this._getTagExpansionText();\n            if (w) {\n                u = m._(\"{list of people who can see this}, {list of additional people who can see this}\", [m.param(\"list of people who can see this\", u),m.param(\"list of additional people who can see this\", w),]);\n            }\n        ;\n        ;\n            this._tooltip = this._getCombinedSentence(u, v);\n            this._recalcLabel();\n            return ((((s != this._tooltip)) || ((t != this._label))));\n        },\n        _getIncludedAudience: function() {\n            return this._elem.getAttribute(\"data-label\");\n        },\n        _getExcludedAudience: function() {\n            return \"\";\n        },\n        _getTagExpansionText: function() {\n            var s = this._getTagExpansionBehavior();\n            if (((!!this._taggedIDs.length || this._alreadyHasTags()))) {\n                if (((s == o.TagExpansion.FRIENDS_OF_TAGGEES))) {\n                    if (this._hasEvent) {\n                        return \"friends of anyone tagged, event guests\";\n                    }\n                ;\n                ;\n                    return \"friends of anyone tagged\";\n                }\n                 else if (((s == o.TagExpansion.TAGGEES))) {\n                    return \"Anyone tagged\";\n                }\n                \n            ;\n            ;\n                return \"\";\n            }\n        ;\n        ;\n            if (((this._hasEvent && ((s == o.TagExpansion.FRIENDS_OF_TAGGEES))))) {\n                return \"event guests\";\n            }\n        ;\n        ;\n            return \"\";\n        },\n        _getCombinedSentence: function(s, t) {\n            if (!t) {\n                return s;\n            }\n        ;\n        ;\n            return m._(\"{list of people who can see this}; Except: {list of people who cannot see this}\", [m.param(\"list of people who can see this\", s),m.param(\"list of people who cannot see this\", t),]);\n        },\n        _recalcLabel: function() {\n            this._label = this._elem.getAttribute(\"data-label\");\n            if (this._showPlusLabel()) {\n                this._label += \" (+)\";\n            }\n        ;\n        ;\n            j.conditionShow(this._plusLabel, this._showPlusLabel());\n        },\n        _showPlusLabel: function() {\n            var s = this._getTagExpansionBehavior();\n            return ((((!!this._taggedIDs.length && ((s != o.TagExpansion.NONE)))) || ((!!this._hasEvent && ((s == o.TagExpansion.FRIENDS_OF_TAGGEES))))));\n        },\n        _getTagExpansionBehavior: function() {\n            return o.TagExpansion.NONE;\n        },\n        _alreadyHasTags: function() {\n            var s = k.scry(this._selector, \"*[data-oid]\")[0];\n            s = ((s && s.getAttribute(\"data-oid\")));\n            return ((s && h.hasTags(s)));\n        },\n        _updateSelector: function() {\n            if (p.isOptionSelected(this._elem)) {\n                p.setButtonTooltip(this._selector, this._tooltip);\n                return false;\n            }\n        ;\n        ;\n            return true;\n        }\n    });\n    e.exports = r;\n});\n__d(\"CustomPrivacyOption\", [\"Arbiter\",\"AsyncDialog\",\"AsyncRequest\",\"BasePrivacyOption\",\"Class\",\"DOM\",\"JSBNG__Event\",\"Form\",\"PrivacyConst\",\"SelectorDeprecated\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncDialog\"), i = b(\"AsyncRequest\"), j = b(\"BasePrivacyOption\"), k = b(\"Class\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"Form\"), o = b(\"PrivacyConst\"), p = b(\"SelectorDeprecated\"), q = b(\"copyProperties\");\n    function r(s, t, u, v, w, x, y, z, aa, ba, ca, da) {\n        if (!s) {\n            return;\n        }\n    ;\n    ;\n        this._baseAudienceValue = aa;\n        this._includedAudience = ba;\n        this._excludedAudience = ca;\n        this._tagExpansionBehavior = da;\n        (function() {\n            this.initCustomState(s, t, u);\n            m.listen(s, \"click\", function(JSBNG__event) {\n                this.openCustomDialog(JSBNG__event, t, v, x, y, z);\n            }.bind(this));\n            p.listen(this._selector, \"select\", function(ea) {\n                if (((ea.option._id != this._id))) {\n                    this.clearCustomState();\n                }\n            ;\n            ;\n            }.bind(this));\n            this.parent.construct(this, s);\n        }).bind(this).defer();\n    };\n;\n    k.extend(r, j);\n    q(r, {\n        _instances: {\n        },\n        update: function(s, t, u, v, w, x, y, z) {\n            var aa = r._instances[s];\n            aa._update(t, u)._updateOptionValues(w, x, y, z)._updateOption(u);\n            g.inform(\"Form/change\", {\n                node: aa._container\n            });\n        },\n        getData: function(s) {\n            return r._instances[s]._privacyData;\n        },\n        setPrivacyData: function(s, t, u) {\n            r._instances[s]._update(t, u);\n            r._instances[s]._updateOption(u);\n        }\n    });\n    q(r.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: this._baseAudienceValue\n            };\n        },\n        _updateOptionValues: function(s, t, u, v) {\n            this._baseAudienceValue = s;\n            this._includedAudience = t;\n            this._excludedAudience = u;\n            this._tagExpansionBehavior = v;\n            return this;\n        },\n        _updateOption: function(s) {\n            var t = ((p.getOption(this._selector, s) || p.getOption(this._selector, ((o.BaseValue.CUSTOM + \"\")))));\n            this._recalculateTooltipAndLabel();\n            g.inform(\"CustomPrivacyOption/update\", {\n                selector: this._selector,\n                option: t,\n                tooltip: this._tooltip,\n                label: this._label\n            });\n            return this;\n        },\n        _getIncludedAudience: function() {\n            return this._includedAudience;\n        },\n        _getExcludedAudience: function() {\n            return this._excludedAudience;\n        },\n        _getTagExpansionBehavior: function() {\n            return this._tagExpansionBehavior;\n        },\n        _update: function(s, t) {\n            var u = ((((t == o.BaseValue.CUSTOM)) || !p.getOption(this._selector, t))), v = this._selector.getAttribute(\"data-name\");\n            this.updateCustomState(s, u, v);\n            return this;\n        },\n        initCustomState: function(s, t, u) {\n            r._instances[t] = this;\n            this._container = l.JSBNG__find(s, \".customPrivacyInputs\");\n            this._id = u;\n            this._privacyData = {\n            };\n            var v = n.serialize(this._container);\n            if (v.audience) {\n                this._privacyData = v.audience[u];\n            }\n        ;\n        ;\n            return s;\n        },\n        openCustomDialog: function(JSBNG__event, s, t, u, v, w) {\n            var x = new i(\"/ajax/privacy/custom_dialog/\").setData({\n                option_id: s,\n                id: this._id,\n                privacy_data: this._privacyData,\n                explain_tags: t,\n                autosave: u,\n                limit_to_friends: v,\n                source: w\n            });\n            x.setRelativeTo(JSBNG__event.getTarget());\n            h.send(x);\n        },\n        updateCustomState: function(s, t, u) {\n            this.clearCustomState();\n            this._privacyData = q({\n            }, s);\n            if (t) {\n                if (u) {\n                    u = u.slice(0, -\"[value]\".length);\n                    var v = {\n                    };\n                    v[u] = s;\n                    n.createHiddenInputs(v, this._container, null, true);\n                }\n            ;\n            }\n        ;\n        ;\n        },\n        clearCustomState: function() {\n            this._privacyData = {\n            };\n            l.empty(this._container);\n        }\n    });\n    e.exports = r;\n});\n__d(\"DynamicIconSelector\", [\"Button\",\"CSS\",\"DOM\",\"SelectorDeprecated\",], function(a, b, c, d, e, f) {\n    var g = b(\"Button\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"SelectorDeprecated\"), k = {\n        swapIcon: function(l) {\n            var m = j.getSelectedOptions(l)[0], n = ((m && i.scry(m, \".itemIcon\")[0])), o = j.getSelectorButton(l);\n            if (n) {\n                g.setIcon(o, n.cloneNode(true));\n            }\n             else {\n                var p = i.scry(o, \".img\")[0];\n                ((p && i.remove(p)));\n            }\n        ;\n        ;\n            h.conditionClass(o, \"uiSelectorChevronOnly\", !n);\n        }\n    };\n    j.subscribe(\"change\", function(l, m) {\n        var n = m.selector;\n        if (h.hasClass(n, \"dynamicIconSelector\")) {\n            k.swapIcon(n);\n        }\n    ;\n    ;\n    });\n    e.exports = k;\n});\n__d(\"AudienceSelector\", [\"Arbiter\",\"AudienceSelectorTags\",\"CSS\",\"CustomPrivacyOption\",\"DOM\",\"DynamicIconSelector\",\"PrivacyConst\",\"SelectorDeprecated\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AudienceSelectorTags\"), i = b(\"CSS\"), j = b(\"CustomPrivacyOption\"), k = b(\"DOM\"), l = b(\"DynamicIconSelector\"), m = b(\"PrivacyConst\"), n = b(\"SelectorDeprecated\"), o = {\n    };\n    n.subscribe(\"select\", function(q, r) {\n        if (!i.hasClass(r.selector, \"audienceSelector\")) {\n            return;\n        }\n    ;\n    ;\n        var s = n.getOptionValue(r.option);\n        r.value = s;\n        g.inform(\"AudienceSelector/changed\", r);\n        if (((((s == m.BaseValue.CUSTOM)) && !i.hasClass(r.option, \"noDialog\")))) {\n            n.toggle(r.selector);\n            return false;\n        }\n    ;\n    ;\n        if (i.hasClass(r.selector, \"dataTooltip\")) {\n            var t = k.JSBNG__find(r.option, \".itemAnchor\").getAttribute(\"data-tooltip\");\n            n.setButtonTooltip(r.selector, ((t || null)));\n        }\n    ;\n    ;\n        if (!i.hasClass(r.option, \"specialOption\")) {\n            return;\n        }\n    ;\n    ;\n        var u = k.JSBNG__find(r.option, \"a\").getAttribute(\"data-type\");\n        if (i.hasClass(r.option, \"moreOption\")) {\n            i.addClass(r.selector, u);\n            i.addClass(r.selector, \"showSecondaryOptions\");\n            return false;\n        }\n         else if (i.hasClass(r.option, \"returnOption\")) {\n            i.removeClass(r.selector, \"showSecondaryOptions\");\n            i.removeClass(r.selector, \"friendList\");\n            return false;\n        }\n        \n    ;\n    ;\n    });\n    var p = {\n        keepSynchronized: function(q, r) {\n            ((o[q] || (o[q] = {\n            })));\n            o[q][r.id] = r;\n        },\n        setHasTags: function(q) {\n            h.setHasTags(q);\n        }\n    };\n    g.subscribe(\"CustomPrivacyOption/update\", function(q, r) {\n        if (!i.hasClass(r.selector, \"audienceSelector\")) {\n            return;\n        }\n    ;\n    ;\n        n.setSelected(r.selector, n.getOptionValue(r.option));\n        l.swapIcon(r.selector);\n        n.setButtonLabel(r.selector, r.label);\n        n.setButtonTooltip(r.selector, r.tooltip);\n        g.inform(\"AudienceSelector/update\", r);\n    });\n    g.subscribe([\"AudienceSelector/changed\",\"AudienceSelector/update\",], function(JSBNG__event, q) {\n        var r = n.getOptionValue(q.option), s = {\n        };\n        if (((r == m.BaseValue.CUSTOM))) {\n            if (((JSBNG__event == \"AudienceSelector/changed\"))) {\n                return;\n            }\n        ;\n        ;\n            s = j.getData(q.option.id);\n        }\n    ;\n    ;\n        {\n            var fin197keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin197i = (0);\n            var t;\n            for (; (fin197i < fin197keys.length); (fin197i++)) {\n                ((t) = (fin197keys[fin197i]));\n                {\n                    var u = o[t];\n                    if (u[q.selector.id]) {\n                        g.inform(\"AudienceSelector/syncNonSelectorIcon\", {\n                            category: t\n                        });\n                        {\n                            var fin198keys = ((window.top.JSBNG_Replay.forInKeys)((u))), fin198i = (0);\n                            var v;\n                            for (; (fin198i < fin198keys.length); (fin198i++)) {\n                                ((v) = (fin198keys[fin198i]));\n                                {\n                                    var w = u[v];\n                                    if (((!w || ((q.selector === w))))) {\n                                        continue;\n                                    }\n                                ;\n                                ;\n                                    if (((n.getValue(w) !== r))) {\n                                        n.setSelected(w, r);\n                                        l.swapIcon(w);\n                                    }\n                                ;\n                                ;\n                                    if (((r == m.BaseValue.CUSTOM))) {\n                                        var x = n.getOption(w, ((m.BaseValue.CUSTOM + \"\")));\n                                        if (x) {\n                                            j.setPrivacyData(x.id, s, r);\n                                            n.setButtonTooltip(w, q.tooltip);\n                                        }\n                                    ;\n                                    ;\n                                    }\n                                ;\n                                ;\n                                };\n                            };\n                        };\n                    ;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    });\n    e.exports = p;\n});\n__d(\"ErrorDialog\", [\"Dialog\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Dialog\"), h = b(\"emptyFunction\"), i = {\n        showAsyncError: function(j) {\n            try {\n                return i.show(j.getErrorSummary(), j.getErrorDescription());\n            } catch (k) {\n                JSBNG__alert(j);\n            };\n        ;\n        },\n        show: function(j, k, l, m) {\n            return (new g()).setTitle(j).setBody(k).setButtons([g.OK,]).setStackable(true).setModal(true).setHandler(((l || h))).setButtonsMessage(((m || \"\"))).show();\n        }\n    };\n    e.exports = i;\n});\n__d(\"Tour\", [\"Arbiter\",\"LayerDestroyOnHide\",\"LayerHideOnEscape\",\"copyProperties\",\"NavigationMessage\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"LayerDestroyOnHide\"), i = b(\"LayerHideOnEscape\"), j = b(\"copyProperties\"), k = b(\"NavigationMessage\");\n    function l() {\n        if (l._instance) {\n            l._instance.setTourComplete();\n        }\n    ;\n    ;\n        l._instance = this;\n    };\n;\n    j(l.prototype, {\n        tourStarted: false,\n        tourComplete: false,\n        _navigationBeginToken: null,\n        _pageLeaveToken: null,\n        steps: {\n        },\n        JSBNG__openDialog: null,\n        init: function() {\n            this._pageLeaveToken = g.subscribe(\"onload/exit\", this.handleLeavePage.bind(this));\n            this._navigationBeginToken = g.subscribe(k.NAVIGATION_BEGIN, this.handleTransition.bind(this));\n            this.steps = {\n            };\n            return this;\n        },\n        registerStep: function(m, n) {\n            m.disableBehavior(h);\n            m.disableBehavior(i);\n            this.steps[n] = m;\n            m.subscribe(\"show\", function() {\n                m.inform(\"tour-dialog-show\", m);\n            });\n            if (!this.getTourStarted()) {\n                this.setTourStart();\n            }\n        ;\n        ;\n        },\n        _unsubscribeSubscriptions: function() {\n            this._navigationBeginToken.unsubscribe();\n            this._pageLeaveToken.unsubscribe();\n        },\n        handleLeavePage: function() {\n            this._unsubscribeSubscriptions();\n        },\n        handleTransition: function() {\n            this._unsubscribeSubscriptions();\n        },\n        handleTourStart: function() {\n        \n        },\n        handleTourStop: function() {\n        \n        },\n        handleTourComplete: function() {\n        \n        },\n        showStep: function(m) {\n            var n = this.steps[m];\n            if (!((this.JSBNG__openDialog == n))) {\n                this.hideOpenDialog();\n            }\n        ;\n        ;\n            if (!n) {\n                return;\n            }\n        ;\n        ;\n            this.JSBNG__openDialog = n;\n            n.show();\n        },\n        hideOpenDialog: function() {\n            if (this.JSBNG__openDialog) {\n                this.JSBNG__openDialog.hide();\n                this.JSBNG__openDialog = null;\n            }\n        ;\n        ;\n        },\n        getTourStarted: function() {\n            return this.tourStarted;\n        },\n        setTourStart: function() {\n            this.tourStarted = true;\n            this.handleTourStart();\n        },\n        setTourStop: function() {\n            this.tourStarted = false;\n            this.hideOpenDialog();\n            this.handleTourStop();\n        },\n        setTourComplete: function() {\n            if (this.tourComplete) {\n                return;\n            }\n        ;\n        ;\n            this.setTourStop();\n            this.tourComplete = true;\n            this.handleTourComplete();\n        },\n        hideStep: function(m) {\n            var n = this.steps[m];\n            ((n && n.hide()));\n        }\n    });\n    j(l, {\n        getInstance: function() {\n            return ((l._instance || (l._instance = new l())));\n        }\n    });\n    e.exports = l;\n});\n__d(\"FutureSideNavItem\", [\"Arbiter\",\"CSS\",\"DOM\",\"Parent\",\"$\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Parent\"), k = b(\"$\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\");\n    function n(o, p) {\n        this.id = o.id;\n        this.up = p;\n        this.endpoint = o.endpoint;\n        this.type = o.type;\n        this.node = ((o.node || k(o.id)));\n        this.paths = ((o.path ? m(o.path) : []));\n        this.keys = ((o.key ? m(o.key) : []));\n        var q = this._findKeys(this.keys);\n        this.numericKey = ((q.numeric || this.keys[0]));\n        this.textKey = ((q.text || this.keys[0]));\n        this._pathPattern = this._buildRegex(this.paths);\n        this._keyPattern = this._buildRegex(this.keys);\n        this.hideLoading();\n        this.hideSelected();\n    };\n;\n    l(n.prototype, {\n        equals: function(o) {\n            return ((o && ((o.id === this.id))));\n        },\n        getLinkNode: function() {\n            return ((i.scry(this.node, \"a.item\")[0] || i.scry(this.node, \"a.subitem\")[0]));\n        },\n        matchPath: function(o) {\n            return this._matchInput(this._pathPattern, o);\n        },\n        matchKey: function(o) {\n            return this._matchInput(this._keyPattern, o);\n        },\n        _matchInput: function(o, p) {\n            var q = ((o && o.exec(p)));\n            return ((q && q.slice(1)));\n        },\n        getTop: function() {\n            return ((this.isTop() ? this : this.up.getTop()));\n        },\n        isTop: function(o) {\n            return !this.up;\n        },\n        setCount: function(o, p) {\n            return this._updateCount(o, true);\n        },\n        incrementCount: function(o, p) {\n            return this._updateCount(o, false);\n        },\n        _updateCount: function(o, p, q) {\n            var r = i.scry(this.node, \"span.count\")[0], s = ((r && i.scry(r, \"span.countValue\")[0]));\n            if (s) {\n                var t = ((p ? 0 : parseInt(i.getText(s), 10))), u = Math.max(0, ((t + o))), v = ((this.isTop() ? \"hidden\" : \"hiddenSubitem\"));\n                i.setContent(s, u);\n                ((q && h.conditionClass(this.node, v, !u)));\n                h.conditionClass(r, \"hidden_elem\", !u);\n                if (this.isTop()) {\n                    var w = i.scry(this.node, \"div.linkWrap\")[0];\n                    if (w) {\n                        h.conditionClass(w, \"noCount\", !u);\n                        h.conditionClass(w, \"hasCount\", u);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            g.inform(\"NavigationMessage.COUNT_UPDATE_DONE\");\n        },\n        showLoading: function() {\n            h.addClass(this.node, \"loading\");\n        },\n        hideLoading: function() {\n            h.removeClass(this.node, \"loading\");\n        },\n        showSelected: function() {\n            h.addClass(this.node, \"selectedItem\");\n            ((h.hasClass(this.node, \"hider\") && h.addClass(this._getExpanderParent(), \"expandedMode\")));\n        },\n        hideSelected: function() {\n            h.removeClass(this.node, \"selectedItem\");\n        },\n        showChildren: function() {\n            h.addClass(this.node, \"open\");\n        },\n        hideChildren: function() {\n            h.removeClass(this.node, \"open\");\n        },\n        _getExpanderParent: function() {\n            return j.byClass(this.node, \"expandableSideNav\");\n        },\n        _buildRegex: function(o) {\n            if (o.length) {\n                var p = o.map(function(q) {\n                    if (((typeof q === \"string\"))) {\n                        return q.replace(/([^a-z0-9_])/gi, \"\\\\$1\");\n                    }\n                     else if (((q && q.regex))) {\n                        return q.regex;\n                    }\n                    \n                ;\n                ;\n                });\n                return new RegExp(((((\"^(?:\" + p.join(\"|\"))) + \")$\")));\n            }\n        ;\n        ;\n        },\n        _findKeys: function(o) {\n            var p = /^(app|group|fl)_/, q = {\n            };\n            for (var r = 0; ((r < o.length)); r++) {\n                var s = p.test(o[r]);\n                if (((s && !q.numeric))) {\n                    q.numeric = o[r];\n                }\n                 else if (((!s && !q.text))) {\n                    q.text = o[r];\n                }\n                \n            ;\n            ;\n                if (((q.numeric && q.text))) {\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n            return q;\n        }\n    });\n    e.exports = n;\n});\n__d(\"FutureSideNavSection\", [\"Bootloader\",\"DOMQuery\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"DOMQuery\"), i = b(\"$\"), j = b(\"copyProperties\");\n    function k(l) {\n        this.id = l.id;\n        this.node = ((this.node || i(l.id)));\n        this.editEndpoint = l.editEndpoint;\n    };\n;\n    j(k.prototype, {\n        equals: function(l) {\n            return ((l && ((l.id === this.id))));\n        },\n        getEditorAsync: function(l) {\n            g.loadModules([\"SortableSideNav\",], function(m) {\n                var n = new m(h.JSBNG__find(this.node, \"ul.uiSideNav\"), this.editEndpoint);\n                l(n);\n            }.bind(this));\n        }\n    });\n    e.exports = k;\n});\n__d(\"FutureSideNav\", [\"Arbiter\",\"Bootloader\",\"ChannelConstants\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"FutureSideNavItem\",\"FutureSideNavSection\",\"NavigationMessage\",\"PageTransitions\",\"Parent\",\"Run\",\"SelectorDeprecated\",\"URI\",\"UserAgent\",\"Vector\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"ChannelConstants\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"JSBNG__Event\"), m = b(\"FutureSideNavItem\"), n = b(\"FutureSideNavSection\"), o = b(\"NavigationMessage\"), p = b(\"PageTransitions\"), q = b(\"Parent\"), r = b(\"Run\"), s = b(\"SelectorDeprecated\"), t = b(\"URI\"), u = b(\"UserAgent\"), v = b(\"Vector\"), w = b(\"copyProperties\"), x = b(\"createArrayFrom\");\n    function y() {\n        ((y.instance && y.instance.uninstall()));\n        y.instance = this;\n    };\n;\n    y.instance = null;\n    y.getInstance = function() {\n        return ((y.instance || new y()));\n    };\n    w(y.prototype, {\n        init: function(z, aa, ba) {\n            this.root = z;\n            this.items = {\n            };\n            this.sections = {\n            };\n            this.editor = null;\n            this.editing = false;\n            this.selected = null;\n            this.loading = null;\n            this.keyParam = \"sk\";\n            this.defaultKey = aa;\n            this.uri = t.getRequestURI();\n            this.ajaxPipe = ba;\n            this.ajaxPipeEndpoints = {\n            };\n            this.sidecol = true;\n            this._installed = true;\n            this._handlePageTransitions = true;\n            p.registerHandler(function(ca) {\n                return ((this._handlePageTransitions && this.handlePageTransition(ca)));\n            }.bind(this));\n            this._eventHandlers = [];\n            this._arbiterSubscriptions = [g.subscribe(o.NAVIGATION_COMPLETED, this.navigationComplete.bind(this)),g.subscribe(o.NAVIGATION_FAILED, this.navigationFailed.bind(this)),g.subscribe(o.NAVIGATION_COUNT_UPDATE, this.navigationCountUpdate.bind(this)),g.subscribe(o.NAVIGATION_SELECT, this.navigationSelect.bind(this)),g.subscribe(i.getArbiterType(\"nav_update_counts\"), this.navigationCountUpdateFromPresence.bind(this)),];\n            this._explicitHover = [];\n            this._ensureHover(\"sideNavItem\");\n            this._eventHandlers.push(l.listen(window, \"resize\", this._handleResize.bind(this)));\n            this._checkNarrow();\n            this._selectorSubscriptions = [];\n            ((window.Selector && this._selectorSubscriptions.push(s.subscribe([\"open\",\"close\",], function(ca, da) {\n                var ea = q.byClass(da.selector, \"sideNavItem\");\n                ((ea && j.conditionClass(ea, \"editMenuOpened\", ((ca === \"open\")))));\n            }))));\n            r.onLeave(this.uninstall.bind(this));\n            if (this._pendingSections) {\n                this._pendingSections.forEach(function(ca) {\n                    this.initSection.apply(this, ca);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _handleResize: (function() {\n            var z;\n            return function() {\n                ((z && JSBNG__clearTimeout(z)));\n                z = this._checkNarrow.bind(this).defer(200);\n            };\n        })(),\n        _checkNarrow: function() {\n            j.conditionClass(this.root, \"uiNarrowSideNav\", ((v.getElementPosition(this.root).x < 20)));\n        },\n        _ensureHover: function(z) {\n            if (((u.ie() < 8))) {\n                h.loadModules([\"ExplicitHover\",], function(aa) {\n                    this._explicitHover.push(new aa(this.root, z));\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        uninstall: function() {\n            if (this._installed) {\n                this._installed = false;\n                this._handlePageTransitions = false;\n                this._arbiterSubscriptions.forEach(g.unsubscribe);\n                this._selectorSubscriptions.forEach(function(z) {\n                    s.unsubscribe(z);\n                });\n                this._eventHandlers.forEach(function(z) {\n                    z.remove();\n                });\n                this._explicitHover.forEach(function(z) {\n                    z.uninstall();\n                });\n            }\n        ;\n        ;\n        },\n        initSection: function(z, aa) {\n            if (!this._installed) {\n                this._pendingSections = ((this._pendingSections || []));\n                this._pendingSections.push(arguments);\n                return;\n            }\n        ;\n        ;\n            this._initItems(aa);\n            this._initSection(z);\n        },\n        addItem: function(z, aa) {\n            this._initItem(z, aa);\n        },\n        _initItems: function(z) {\n            var aa = function(ba, ca) {\n                var da = this._initItem(ba, ca);\n                if (ba.children) {\n                    ba.children.forEach(function(ea) {\n                        aa(ea, da);\n                    });\n                }\n            ;\n            ;\n            }.bind(this);\n            x(z).forEach(function(ba) {\n                aa(ba, null);\n            });\n        },\n        _initItem: function(z, aa) {\n            var ba = this.items[z.id] = this._constructItem(z, aa);\n            if (((ba.equals(this.selected) || z.selected))) {\n                this.setSelected(ba);\n            }\n        ;\n        ;\n            var ca = ba.getLinkNode();\n            ((ca && this._eventHandlers.push(l.listen(ca, \"click\", function(JSBNG__event) {\n                return !this.editing;\n            }.bind(this)))));\n            return ba;\n        },\n        _initSection: function(z) {\n            var aa = this.sections[z.id] = this._constructSection(z);\n            this._eventHandlers.push(l.listen(aa.node, \"click\", this.handleSectionClick.bind(this, aa)));\n            k.scry(aa.node, \"div.bookmarksMenuButton\").forEach(j.show);\n            return aa;\n        },\n        _constructItem: function(z, aa) {\n            return new m(z, aa);\n        },\n        _constructSection: function(z) {\n            return new n(z);\n        },\n        handleSectionClick: function(z, JSBNG__event) {\n            var aa = this._getEventTarget(JSBNG__event, \"a\"), ba = this._getItemForNode(aa);\n            if (!aa) {\n                return;\n            }\n             else if (j.hasClass(aa.parentNode, \"uiMenuItem\")) {\n                this._handleMenuClick(z, ba, aa.parentNode, JSBNG__event);\n            }\n             else this._handleLinkClick(z, aa, JSBNG__event);\n            \n        ;\n        ;\n        },\n        _getEventTarget: function(JSBNG__event, z) {\n            var aa = JSBNG__event.getTarget();\n            if (((aa.tagName !== z.toUpperCase()))) {\n                return q.byTag(aa, z);\n            }\n             else return aa\n        ;\n        },\n        _handleMenuClick: function(z, aa, ba, JSBNG__event) {\n            if (j.hasClass(ba, \"rearrange\")) {\n                this.beginEdit(z);\n            }\n        ;\n        ;\n        },\n        _handleLinkClick: function(z, aa, JSBNG__event) {\n            if (j.hasClass(aa, \"navEditDone\")) {\n                ((this.editing ? this.endEdit() : this.beginEdit(z)));\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        getItem: function(z) {\n            if (this._isCurrentPath(z)) {\n                return this._getItemForKey(((this._getKey(z.getQueryData()) || this.defaultKey)));\n            }\n             else return this._getItemForPath(z.getPath())\n        ;\n        },\n        getNodeForKey: function(z) {\n            var aa = this._getItemForKey(z);\n            if (aa) {\n                return aa.node;\n            }\n        ;\n        ;\n        },\n        _isCurrentPath: function(z) {\n            return ((((z.getDomain() === this.uri.getDomain())) && ((z.getPath() === this.uri.getPath()))));\n        },\n        _getKey: function(z) {\n            return z[this.keyParam];\n        },\n        _getItemForNode: function(z) {\n            z = q.byClass(z, \"sideNavItem\");\n            return ((z && this.items[z.id]));\n        },\n        _getItemForKey: function(z) {\n            return this._findItem(function(aa) {\n                return aa.matchKey(z);\n            });\n        },\n        _getItemForPath: function(z) {\n            return this._findItem(function(aa) {\n                return aa.matchPath(z);\n            });\n        },\n        _findItem: function(z) {\n            {\n                var fin199keys = ((window.top.JSBNG_Replay.forInKeys)((this.items))), fin199i = (0);\n                var aa;\n                for (; (fin199i < fin199keys.length); (fin199i++)) {\n                    ((aa) = (fin199keys[fin199i]));\n                    {\n                        if (z(this.items[aa])) {\n                            return this.items[aa];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        removeItem: function(z) {\n            if (((z && this.items[z.id]))) {\n                k.remove(z.node);\n                delete this.items[z.id];\n            }\n        ;\n        ;\n        },\n        removeItemByKey: function(z) {\n            this.removeItem(this._getItemForKey(z));\n        },\n        moveItem: function(z, aa, ba) {\n            var ca = k.JSBNG__find(z.node, \"ul.uiSideNav\");\n            ((ba ? k.prependContent : k.appendContent))(ca, aa.node);\n        },\n        setLoading: function(z) {\n            ((this.loading && this.loading.hideLoading()));\n            this.loading = z;\n            ((this.loading && this.loading.showLoading()));\n        },\n        setSelected: function(z) {\n            this.setLoading(null);\n            if (this.selected) {\n                this.selected.hideSelected();\n                this.selected.getTop().hideChildren();\n            }\n        ;\n        ;\n            this.selected = z;\n            if (this.selected) {\n                this.selected.showSelected();\n                this.selected.getTop().showChildren();\n            }\n        ;\n        ;\n        },\n        handlePageTransition: function(z) {\n            var aa = this.getItem(z), ba = ((((aa && aa.endpoint)) && this._doPageTransition(aa, z)));\n            return ba;\n        },\n        _doPageTransition: function(z, aa) {\n            this.setLoading(z);\n            this._sendPageTransition(z.endpoint, w(this._getTransitionData(z, aa), aa.getQueryData()));\n            return true;\n        },\n        _sendPageTransition: function(z, aa) {\n            aa.endpoint = z;\n            g.inform(o.NAVIGATION_BEGIN, {\n                useAjaxPipe: this._useAjaxPipe(z),\n                params: aa\n            });\n        },\n        _getTransitionData: function(z, aa) {\n            var ba = {\n            };\n            ba.sidecol = this.sidecol;\n            ba.path = aa.getPath();\n            ba[this.keyParam] = z.textKey;\n            ba.key = z.textKey;\n            return ba;\n        },\n        _useAjaxPipe: function(z) {\n            return ((this.ajaxPipe || this.ajaxPipeEndpoints[z]));\n        },\n        navigationComplete: function() {\n            ((this.loading && this.setSelected(this.loading)));\n        },\n        navigationFailed: function() {\n            this.setLoading(null);\n        },\n        navigationSelect: function(z, aa) {\n            var ba = this._getItemForKey(this._getKey(aa));\n            if (aa.asLoading) {\n                this.setLoading(ba);\n            }\n             else this.setSelected(ba);\n        ;\n        ;\n        },\n        navigationCountUpdate: function(z, aa) {\n            var ba = this._getItemForKey(((aa && aa.key)));\n            if (ba) {\n                if (((typeof aa.count !== \"undefined\"))) {\n                    ba.setCount(aa.count, aa.hide);\n                }\n                 else if (((typeof aa.increment !== \"undefined\"))) {\n                    ba.incrementCount(aa.increment, aa.hide);\n                }\n                \n            ;\n            }\n        ;\n        ;\n        },\n        navigationCountUpdateFromPresence: function(z, aa) {\n            aa = aa.obj;\n            if (aa) {\n                if (((!aa.class_name || ((aa.class_name && j.hasClass(this.root, aa.class_name)))))) {\n                    if (aa.items) {\n                        for (var ba = 0; ((ba < aa.items.length)); ba++) {\n                            this.navigationCountUpdate(z, aa.items[ba]);\n                        ;\n                        };\n                    }\n                ;\n                }\n            ;\n            }\n        ;\n        ;\n        },\n        beginEdit: function(z) {\n            if (!this.editing) {\n                this.editing = true;\n                j.addClass(this.root, \"editMode\");\n                this._updateTrackingData();\n                this._initEditor(z);\n            }\n        ;\n        ;\n        },\n        endEdit: function() {\n            if (this.editing) {\n                j.removeClass(this.root, \"editMode\");\n                ((this.editor && this.editor.endEdit()));\n                this.editor = null;\n                this.editing = false;\n                this._updateTrackingData();\n            }\n        ;\n        ;\n        },\n        _updateTrackingData: function(z) {\n            var aa = ((this.root.getAttribute(\"data-gt\") || \"{}\"));\n            try {\n                aa = JSON.parse(aa);\n                if (this.editing) {\n                    aa.editing = true;\n                }\n                 else delete aa.editing;\n            ;\n            ;\n                this.root.setAttribute(\"data-gt\", JSON.stringify(aa));\n            } catch (ba) {\n            \n            };\n        ;\n        },\n        _initEditor: function(z) {\n            z.getEditorAsync(function(aa) {\n                if (this.editing) {\n                    this.editor = aa;\n                    this.editor.beginEdit();\n                }\n            ;\n            ;\n            }.bind(this));\n        }\n    });\n    e.exports = y;\n});\n__d(\"PageFanning\", [\"Animation\",\"AsyncRequest\",\"CSS\",\"DOM\",\"FutureSideNav\",\"Parent\",\"URI\",\"$\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"FutureSideNav\"), l = b(\"Parent\"), m = b(\"URI\"), n = b(\"$\"), o = b(\"collectDataAttributes\"), p = b(\"copyProperties\"), q = {\n        setFanStatus: function(s, t, u, v, w, x, y) {\n            var z = {\n                ft: {\n                }\n            };\n            if (s) {\n                z = {\n                    ft: o(s, [\"ft\",]).ft\n                };\n            }\n        ;\n        ;\n            w = ((w || function(ca) {\n                var da = ca.getPayload();\n                if (((!da || !s))) {\n                    return;\n                }\n            ;\n            ;\n                if (da.reload) {\n                    q.reloadOnFanStatusChanged(da.preserve_tab);\n                }\n                 else r(s, da);\n            ;\n            ;\n            }));\n            var aa = {\n                fbpage_id: t,\n                add: u,\n                reload: v\n            };\n            if (((y != null))) {\n                p(aa, y);\n            }\n        ;\n        ;\n            p(aa, z);\n            var ba = new h().setURI(\"/ajax/pages/fan_status.php\").setData(aa).setNectarModuleDataSafe(s).setHandler(w);\n            if (x) {\n                ba.setErrorHandler(x);\n            }\n        ;\n        ;\n            ba.send();\n            return false;\n        },\n        reloadOnFanStatusChanged: function(s) {\n            var t = m.getRequestURI();\n            if (s) {\n                var u = k.getInstance().selected.textKey;\n                if (((!t.getQueryData().sk && u))) {\n                    t.addQueryData({\n                        sk: u\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            window.JSBNG__location.href = t;\n        },\n        toggleLikeOnFanStatusChanged: function(s, t) {\n            var u = n(((\"liked_pages_like_action_\" + s))), v = n(((\"liked_pages_undo_action_\" + s)));\n            i.conditionClass(u, \"hidden_elem\", t);\n            i.conditionClass(v, \"hidden_elem\", !t);\n        },\n        informPageLikeButtonOnChange: function(s, t) {\n            var u = a.PageLikeButton;\n            if (u) {\n                if (t) {\n                    u.informLike(s);\n                    u.informLikeSuccess(s);\n                }\n                 else u.informUnlike(s);\n            ;\n            }\n        ;\n        ;\n        }\n    };\n    function r(s, t) {\n        var u = t.feedback;\n        if (!u) {\n            return;\n        }\n    ;\n    ;\n        if (l.byClass(s, \"fbTimelineEscapeSectionItem\")) {\n            s = ((l.byClass(s, \"fan_status_inactive\") || s));\n        }\n    ;\n    ;\n        var v = j.create(\"span\", {\n            className: \"fan_status_inactive\"\n        }, u);\n        s.parentNode.replaceChild(v, s);\n        var w = function() {\n            if (t.can_repeat_action) {\n                v.parentNode.replaceChild(s, v);\n            }\n        ;\n        ;\n        };\n        new g(v).duration(3000).checkpoint().to(\"backgroundColor\", \"#FFFFFF\").duration(1000).ondone(w).go();\n    };\n;\n    e.exports = q;\n});\n__d(\"PageLikeButton\", [\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"JSBNG__Event\",\"PageFanning\",\"SubscribeButton\",\"Tour\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"JSBNG__Event\"), k = b(\"PageFanning\"), l = b(\"SubscribeButton\"), m = b(\"Tour\"), n = b(\"URI\"), o = {\n        LIKED: \"liked\",\n        UNLIKED: \"unliked\",\n        LIKED_SUCCESS: \"liked_success\",\n        init: function(r, s, t, u, v, w, x, y, z, aa, ba) {\n            g.subscribe(o.LIKED, function(ca, da) {\n                if (((u === da.profile_id))) {\n                    if (!z) {\n                        t.suppressNextMouseEnter();\n                    }\n                ;\n                ;\n                    r.swap(ba);\n                    if (((aa === true))) {\n                        new h().setURI(\"/ajax/pages/suggestions_on_liking.php\").setData({\n                            pageid: u\n                        }).send();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n            g.subscribe(o.UNLIKED, function(ca, da) {\n                if (((u === da.profile_id))) {\n                    r.unswap(ba);\n                    t.hideFlyout();\n                }\n            ;\n            ;\n            });\n            if (y) {\n                g.subscribe(o.LIKED_SUCCESS, function(ca, da) {\n                    var ea = n.getRequestURI().getQueryData().app_data;\n                    if (((da.profile_id == u))) {\n                        new h().setURI(\"/ajax/pages/fetch_app_column.php\").setData({\n                            profile_id: u,\n                            tab_key: y,\n                            app_data: ea\n                        }).send();\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            j.listen(s, \"click\", q.bind(null, u, v, w, x));\n        },\n        initCallout: function(r, s) {\n            var t = JSBNG__document.getElementById(\"pageActionLikeCalloutButton\");\n            j.listen(t, \"click\", q.bind(null, r, s, null, null));\n        },\n        initUnlike: function(r, s, t) {\n            j.listen(r, \"click\", function(JSBNG__event) {\n                p(JSBNG__event.getTarget(), s, false, function(u) {\n                    g.inform(o.LIKED, {\n                        profile_id: s\n                    });\n                    i.defaultErrorHandler(u);\n                }, t);\n                o.informUnlike(s);\n            });\n        },\n        informLike: function(r, s, t) {\n            var u = {\n                profile_id: r,\n                target: s,\n                origin: t\n            };\n            g.inform(o.LIKED, u);\n            g.inform(l.SUBSCRIBED, u);\n        },\n        informLikeSuccess: function(r) {\n            var s = {\n                profile_id: r\n            };\n            g.inform(o.LIKED_SUCCESS, s);\n        },\n        informUnlike: function(r) {\n            var s = {\n                profile_id: r\n            };\n            g.inform.bind(g, o.UNLIKED, s).defer();\n            g.inform.bind(g, l.UNSUBSCRIBED, s).defer();\n        }\n    };\n    function p(r, s, t, u, v, w, x) {\n        m.getInstance().hideStep(\"low_page_likes\");\n        k.setFanStatus(r, s, t, false, function() {\n            o.informLikeSuccess(s);\n        }, u, {\n            fan_origin: v,\n            fan_source: w,\n            cat: x\n        });\n    };\n;\n    function q(r, s, t, u, JSBNG__event) {\n        p(JSBNG__event.getTarget(), r, true, function(v) {\n            g.inform(o.UNLIKED, {\n                profile_id: r\n            });\n            i.defaultErrorHandler(v);\n        }, s, t, u);\n        o.informLike(r, JSBNG__event.getTarget(), s);\n    };\n;\n    e.exports = o;\n    a.PageLikeButton = o;\n});\n__d(\"legacy:PageLikeButton\", [\"PageLikeButton\",], function(a, b, c, d) {\n    a.PageLikeButton = b(\"PageLikeButton\");\n}, 3);\n__d(\"legacy:AudienceSelector\", [\"AudienceSelector\",], function(a, b, c, d) {\n    b(\"AudienceSelector\");\n}, 3);\n__d(\"FriendListPrivacyOptions\", [\"Arbiter\",\"AsyncDialog\",\"AsyncRequest\",\"Dialog\",\"DOMQuery\",\"PageTransitions\",\"Parent\",\"SelectorDeprecated\",\"$\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncDialog\"), i = b(\"AsyncRequest\"), j = b(\"Dialog\"), k = b(\"DOMQuery\"), l = b(\"PageTransitions\"), m = b(\"Parent\"), n = b(\"SelectorDeprecated\"), o = b(\"$\"), p = b(\"ge\"), q = false, r = false, s = null, t = {\n    }, u = function(w) {\n        if (!Object.keys(t).length) {\n            l.registerHandler(function() {\n                t = {\n                };\n                q = false;\n                r = false;\n            });\n        }\n    ;\n    ;\n        var x = w.getAttribute(\"data-name\");\n        t[x] = w;\n        n.listen(w, \"select\", function(y) {\n            var z = y.option, aa = k.JSBNG__find(z, \"a.itemAnchor\"), ba = aa.getAttribute(\"data-flid\");\n            if (!ba) {\n                return;\n            }\n        ;\n        ;\n            var ca = aa.getAttribute(\"data-dynamic\");\n            if (((ca && q))) {\n                v.showSmartListNux(z, ba);\n            }\n             else if (((!ca && r))) {\n                v.showDumbListNux([ba,]);\n            }\n            \n        ;\n        ;\n        });\n    }, v = {\n        listen: function(w, x, y) {\n            var z = p(w);\n            if (!z) {\n                return;\n            }\n        ;\n        ;\n            var aa = m.byClass(z, \"audienceSelector\");\n            if (aa) {\n                u(aa);\n                q = x;\n                r = y;\n            }\n        ;\n        ;\n        },\n        showSmartListNux: function(w, x) {\n            w = o(w);\n            new i(\"/ajax/friends/lists/smart_list_publish_nux.php\").setData({\n                option_id: w.id,\n                flid: x\n            }).send();\n            q = false;\n        },\n        setContextualDialog: function(w, x) {\n            x = o(x);\n            var y = m.byClass(x, \"audienceSelector\");\n            if (y) {\n                w.setContext(y);\n                w.show();\n                var z = g.subscribe(\"composer/publish\", function() {\n                    w.hide();\n                });\n                w.subscribe(\"hide\", function() {\n                    z.unsubscribe();\n                });\n            }\n        ;\n        ;\n        },\n        showDumbListNux: function(w) {\n            h.send(new i(\"/ajax/friends/lists/dumb_list_publish_nux.php\").setData({\n                flids: w\n            }));\n            r = false;\n        },\n        showBothListsNux: function(w, x) {\n            s = o(w);\n            v.showDumbListNux(x);\n        },\n        setDialogX: function(w) {\n            if (!s) {\n                return;\n            }\n        ;\n        ;\n            w.subscribe(\"hide\", function() {\n                v.showSmartListNux(s);\n                s = null;\n            });\n        },\n        setDialog: function() {\n            if (!s) {\n                return;\n            }\n        ;\n        ;\n            var w = j.getCurrent();\n            if (w) {\n                w.setCloseHandler(function() {\n                    v.showSmartListNux(s);\n                    s = null;\n                });\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = v;\n});\n__d(\"FriendsMinusAcquaintancesPrivacyOption\", [\"AudienceSelectorTags\",\"BasePrivacyOption\",\"Class\",\"DOM\",\"PrivacyConst\",\"copyProperties\",\"fbt\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AudienceSelectorTags\"), h = b(\"BasePrivacyOption\"), i = b(\"Class\"), j = b(\"DOM\"), k = b(\"PrivacyConst\"), l = k.FriendsValue, m = b(\"copyProperties\"), n = b(\"fbt\"), o = b(\"tx\");\n    function p(q, r) {\n        this._hasRestricted = r;\n        this.parent.construct(this, q);\n    };\n;\n    i.extend(p, h);\n    m(p.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: l.FRIENDS_MINUS_ACQUAINTANCES\n            };\n        },\n        _recalculateTooltipAndLabel: function() {\n            var q = this._hasEvent, r = this._tags.length, s = this._tooltip, t = this._label;\n            if (q) {\n                if (((((r > 1)) || this._alreadyHasTags()))) {\n                    this._tooltip = ((this._hasRestricted ? \"Your friends, friends of anyone tagged and event guests; Except: Acquaintances, Restricted\" : \"Your friends, friends of anyone tagged and event guests; Except: Acquaintances\"));\n                }\n                 else if (((r == 1))) {\n                    this._tooltip = ((this._hasRestricted ? o._(\"Your friends, {user}'s friends and event guests; Except: Acquaintances, Restricted\", {\n                        user: this._tags[0]\n                    }) : o._(\"Your friends, {user}'s friends and event guests; Except: Acquaintances\", {\n                        user: this._tags[0]\n                    })));\n                }\n                 else this._tooltip = ((this._hasRestricted ? \"Your friends and event guests; Except: Acquaintances, Restricted\" : \"Your friends and event guests; Except: Acquaintances\"));\n                \n            ;\n            ;\n            }\n             else if (((((r > 0)) || this._alreadyHasTags()))) {\n                var u = \"friends of anyone tagged\", v = n._(\"{people who can see this}, {list of more people who can see this}\", [n.param(\"people who can see this\", \"Your friends\"),n.param(\"list of more people who can see this\", u),]), w = \"Acquaintances\";\n                if (this._hasRestricted) {\n                    w = n._(\"{Name of Acquaintances friend list}, {restricted}\", [n.param(\"Name of Acquaintances friend list\", w),n.param(\"restricted\", \"Restricted\"),]);\n                }\n            ;\n            ;\n                this._tooltip = this._getCombinedSentence(v, w);\n            }\n             else {\n                this._tooltip = \"Friends except Acquaintances\";\n                if (this._hasRestricted) {\n                    this._tooltip = \"Friends; Except: Acquaintances, Restricted\";\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            this._recalcLabel();\n            return ((((s != this._tooltip)) || ((t != this._label))));\n        },\n        _alreadyHasTags: function() {\n            var q = j.scry(this._selector, \"*[data-oid]\")[0];\n            q = ((q && q.getAttribute(\"data-oid\")));\n            return ((q && g.hasTags(q)));\n        },\n        _getTagExpansionBehavior: function() {\n            return k.TagExpansion.FRIENDS_OF_TAGGEES;\n        }\n    });\n    e.exports = p;\n});\n__d(\"FriendsPrivacyOption\", [\"Arbiter\",\"BasePrivacyOption\",\"Class\",\"PrivacyConst\",\"SelectorDeprecated\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"BasePrivacyOption\"), i = b(\"Class\"), j = b(\"PrivacyConst\"), k = b(\"SelectorDeprecated\"), l = b(\"copyProperties\"), m = b(\"tx\");\n    function n(o, p) {\n        this._hasRestricted = p;\n        this.parent.construct(this, o);\n    };\n;\n    i.extend(n, h);\n    l(n.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: j.FriendsValue.ALL_FRIENDS\n            };\n        },\n        _eventTagChanged: function() {\n            var o = this._getChangedData();\n            o.privacy = k.getValue(this._selector);\n            g.inform(\"EventTagged/changed\", o);\n        },\n        _recalculateTooltipAndLabel: function() {\n            var o = this._hasEvent, p = this._tags.length, q = this._tooltip, r = this._label;\n            if (((p > 2))) {\n                if (o) {\n                    this._tooltip = ((this._hasRestricted ? \"Your friends, friends of anyone tagged and event guests; Except: Restricted\" : \"Your friends, friends of anyone tagged and event guests\"));\n                }\n                 else this._tooltip = ((this._hasRestricted ? \"Your friends and friends of anyone tagged; Except: Restricted\" : \"Your friends and friends of anyone tagged\"));\n            ;\n            ;\n            }\n             else if (((p == 2))) {\n                if (o) {\n                    if (this._hasRestricted) {\n                        this._tooltip = \"Your friends, friends of anyone tagged and event guests; Except: Restricted\";\n                    }\n                     else this._tooltip = \"Your friends, friends of anyone tagged and event guests\";\n                ;\n                ;\n                }\n                 else if (this._hasRestricted) {\n                    this._tooltip = m._(\"Your friends, {user}'s friends and {user2}'s friends; Except: Restricted \", {\n                        user: this._tags[0],\n                        user2: this._tags[1]\n                    });\n                }\n                 else this._tooltip = m._(\"Your friends, {user}'s friends and {user2}'s friends\", {\n                    user: this._tags[0],\n                    user2: this._tags[1]\n                });\n                \n            ;\n            ;\n            }\n             else if (((p == 1))) {\n                if (o) {\n                    if (this._hasRestricted) {\n                        this._tooltip = m._(\"Your friends, {user}'s friends and event guests; Except: Restricted\", {\n                            user: this._tags[0]\n                        });\n                    }\n                     else this._tooltip = m._(\"Your friends, {user}'s friends and event guests\", {\n                        user: this._tags[0]\n                    });\n                ;\n                ;\n                }\n                 else if (this._hasRestricted) {\n                    this._tooltip = m._(\"Your friends and {user}'s friends; Except: Restricted\", {\n                        user: this._tags[0]\n                    });\n                }\n                 else this._tooltip = m._(\"Your friends and {user}'s friends\", {\n                    user: this._tags[0]\n                });\n                \n            ;\n            ;\n            }\n             else if (o) {\n                this._tooltip = ((this._hasRestricted ? \"Your friends and event guests; Except: Restricted\" : \"Your friends and event guests\"));\n            }\n             else this._tooltip = ((this._hasRestricted ? \"Your friends; Except: Restricted\" : \"Your friends\"));\n            \n            \n            \n        ;\n        ;\n            this._recalcLabel();\n            return ((((q != this._tooltip)) || ((r != this._label))));\n        },\n        _getTagExpansionBehavior: function() {\n            return j.TagExpansion.FRIENDS_OF_TAGGEES;\n        }\n    });\n    e.exports = n;\n});\n__d(\"MetaComposerEdDialog\", [\"Animation\",\"Arbiter\",\"ARIA\",\"AsyncRequest\",\"copyProperties\",\"CSS\",\"DOM\",\"Ease\",\"ge\",\"Parent\",\"SelectorDeprecated\",\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"ARIA\"), j = b(\"AsyncRequest\"), k = b(\"copyProperties\"), l = b(\"CSS\"), m = b(\"DOM\"), n = b(\"Ease\"), o = b(\"ge\"), p = b(\"Parent\"), q = b(\"SelectorDeprecated\"), r = b(\"Vector\"), s = null;\n    function t(u) {\n        this._dialog = u.dialog;\n        this.config = u;\n        this._init();\n    };\n;\n    t.init = function(u) {\n        if (s) {\n            s.config.show_audience = u.show_audience;\n            u.dialog.destroy();\n            return;\n        }\n    ;\n    ;\n        s = new t(u);\n    };\n    k(t.prototype, {\n        _init: function() {\n            h.subscribe(\"ComposerXStatusAttachment/ready\", function() {\n                if (this.config.show_audience) {\n                    this._sendEducationRequest({\n                    }, \"/ajax/composer/audience/education\", this._handlerCustomDuration.bind(this, 6000));\n                    this.config.show_audience = false;\n                }\n            ;\n            ;\n            }.bind(this));\n            if (this.config.show_sticky) {\n                h.subscribe(\"composer/mutate\", function(u, v) {\n                    this._sendEducationRequest({\n                        sticky_num: this.config.n_sticky_shown\n                    }, \"/ajax/composer/audience/sticky_education\");\n                }.bind(this));\n            }\n        ;\n        ;\n            if (this.config.show_event_tags) {\n                if (((this.config.n_event_tag_shown === 0))) {\n                    h.subscribe(\"EventTagged/changed\", function(u, v) {\n                        this._sendEducationRequest({\n                            selector: \"div.fbComposerAudienceTourContext\",\n                            privacy: v.privacy,\n                            event_tag_num: this.config.n_event_tag_shown\n                        }, \"/ajax/events/tagging/user_education\");\n                    }.bind(this));\n                    h.subscribe([\"composer/publish\",\"composer/reset\",], function() {\n                        var u = o(\"event_tagging_tag_expansion_NUX\");\n                        ((u && l.hide(u)));\n                    }.bind(this));\n                }\n                 else h.subscribe(\"EventTagged/changed\", function(u, v) {\n                    this._sendEducationRequest({\n                        ids: v.tags,\n                        from: \"AtTagger\",\n                        hasEvent: v.hasEvent,\n                        type: v.privacy,\n                        tag_num: this.config.n_tag_shown,\n                        event_tag_num: this.config.n_event_tag_shown\n                    }, \"ajax/composer/audience/tag_education\", this._handler.bind(this));\n                }.bind(this));\n            ;\n            }\n        ;\n        ;\n            if (this.config.show_tags) {\n                h.subscribe(\"SelectedPrivacyOption/changed\", function(u, v) {\n                    this._sendEducationRequest({\n                        ids: v.tags,\n                        from: \"WithTagger\",\n                        hasEvent: v.hasEvent,\n                        type: v.privacy,\n                        tag_num: this.config.n_tag_shown,\n                        event_tag_num: this.config.n_event_tag_shown\n                    }, \"/ajax/composer/audience/tag_education\", this._handler.bind(this));\n                }.bind(this));\n            }\n        ;\n        ;\n            q.subscribe(\"open\", this._killAnim.bind(this));\n        },\n        _sendEducationRequest: function(u, v, w) {\n            if (!this._updateDialogContext()) {\n                return;\n            }\n        ;\n        ;\n            ((this._async && this._async.abort()));\n            this._async = new j(v);\n            this._async.setData(u).setHandler(w).send();\n        },\n        _updateDialogContext: function() {\n            var u = m.scry(JSBNG__document.body, \"div.composerAudienceWrapper\"), v, w;\n            for (var x = 0; ((x < u.length)); x++) {\n                v = u[x];\n                w = r.getElementPosition(v);\n                if (((((v && ((w.x > 0)))) && ((w.y > 0))))) {\n                    this._dialog.setContext(v);\n                    return true;\n                }\n            ;\n            ;\n            };\n        ;\n            return false;\n        },\n        _handler: function(u) {\n            this._handlerCustomDuration(1500, u);\n        },\n        _handlerCustomDuration: function(u, v) {\n            var w = v.payload;\n            if (((!w || !this._updateDialogContext()))) {\n                return;\n            }\n        ;\n        ;\n            var x = this._dialog.getContent().firstChild;\n            m.setContent(x, w);\n            i.announce(m.getText(x));\n            this._dialog.show();\n            var y = p.byClass(x, \"metaComposerUserEd\");\n            if (this._anim) {\n                this._anim.JSBNG__stop();\n                this._anim = new g(y);\n            }\n             else this._anim = new g(y).from(\"opacity\", 0);\n        ;\n        ;\n            this._anim.to(\"opacity\", 1).ease(n.sineOut).checkpoint().duration(u).checkpoint().to(\"opacity\", 0).ease(n.sineOut).checkpoint().ondone(this._killAnim.bind(this)).go();\n        },\n        _killAnim: function(u, v) {\n            if (this._anim) {\n                this._dialog.hide();\n                this._anim.JSBNG__stop();\n                this._anim = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = t;\n});\n__d(\"OnlyMePrivacyOption\", [\"BasePrivacyOption\",\"copyProperties\",\"Class\",\"PrivacyConst\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BasePrivacyOption\"), h = b(\"copyProperties\"), i = b(\"Class\"), j = b(\"PrivacyConst\"), k = b(\"tx\");\n    function l(m) {\n        this.parent.construct(this, m);\n    };\n;\n    i.extend(l, g);\n    h(l.prototype, {\n        _getChangedData: function() {\n            return {\n                hasEvent: this._hasEvent,\n                tags: this._taggedIDs,\n                privacy: j.FriendsValue.SELF\n            };\n        },\n        _getIncludedAudience: function() {\n            return \"Only you\";\n        },\n        _getTagExpansionBehavior: function() {\n            return j.TagExpansion.TAGGEES;\n        }\n    });\n    e.exports = l;\n});\n__d(\"legacy:UIPagelet\", [\"UIPagelet\",], function(a, b, c, d) {\n    a.UIPagelet = b(\"UIPagelet\");\n}, 3);\n__d(\"HoverButton\", [\"AsyncRequest\",\"CSS\",\"DOM\",\"URI\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"URI\"), k = b(\"copyProperties\"), l = b(\"cx\");\n    function m(n, o, p, q) {\n        this._button = n;\n        this._flyout = o;\n        this._flyoutAjaxify = q;\n        this._flyoutContent = p;\n        o.subscribe(\"show\", this._onShow.bind(this));\n        o.subscribe(\"hide\", this._onHide.bind(this));\n    };\n;\n    k(m.prototype, {\n        _button: null,\n        _flyout: null,\n        _flyoutAjaxify: null,\n        _flyoutContent: null,\n        showFlyoutBriefly: function() {\n            this.showFlyout();\n            this._flyout.hideFlyoutDelayed(5000);\n        },\n        showFlyout: function() {\n            this._flyout.showFlyout(this._button, true);\n            this._flyout.inform(\"show\", this._button);\n        },\n        hideFlyout: function() {\n            this._flyout.hideFlyout(true);\n            this._flyout.inform(\"hide\", this._button);\n        },\n        enableButton: function() {\n            this._flyout.initNode(this._button);\n        },\n        disableButton: function() {\n            this.hideFlyout();\n            this._flyout.deactivateNode(this._button);\n        },\n        _onShow: function(n, o) {\n            h.addClass(o, \"_52nd\");\n            if (((h.hasClass(o, \"uiButton\") || h.hasClass(o, \"_42fu\")))) {\n                h.addClass(o, \"selected\");\n            }\n        ;\n        ;\n            if (this._flyoutAjaxify) {\n                h.addClass(this._flyoutContent, \"async_saving\");\n                new g().setURI(new j(this._flyoutAjaxify)).setHandler(function(p) {\n                    h.removeClass(this._flyoutContent, \"async_saving\");\n                    i.setContent(this._flyoutContent, p.payload);\n                }.bind(this)).send();\n                this._flyoutAjaxify = null;\n            }\n        ;\n        ;\n        },\n        _onHide: function(n, o) {\n            h.removeClass(o, \"_52nd\");\n            if (((h.hasClass(o, \"uiButton\") || h.hasClass(o, \"_42fu\")))) {\n                h.removeClass(o, \"selected\");\n            }\n        ;\n        ;\n        },\n        destroy: function() {\n            this.hideFlyout();\n            this._flyout.destroy();\n        },\n        suppressNextMouseEnter: function() {\n            this._flyout.setActiveNode(this._button);\n        }\n    });\n    e.exports = m;\n});\n__d(\"legacy:DynamicIconSelector\", [\"DynamicIconSelector\",], function(a, b, c, d) {\n    a.DynamicIconSelector = b(\"DynamicIconSelector\");\n}, 3);\n__d(\"MentionsInputMatchers\", [], function(a, b, c, d, e, f) {\n    var g = [\"@\",\"\\\\uff20\",\"+\",\"\\\\uff0b\",].join(\"\"), h = \".,*?$|#{}()\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%&'\\\"~=\\u003C\\u003E_:;\", i = ((((\"\\\\b[A-Z][^ A-Z\" + h)) + \"]\")), j = ((((((((((((((\"([^\" + g)) + h)) + \"]|[\")) + h)) + \"][^ \")) + h)) + \"])\")), k = ((((((((\"(?:^|\\\\s)(?:[\" + g)) + \"](\")) + j)) + \"{0,20}))\")), l = ((((((((\"(?:(?:^|[^#])(\" + i)) + \"+)|\")) + k)) + \")\")), m = ((((\"(?:\" + i)) + \"{4,})\")), n = \"#\\\\uFF03\", o = {\n        trigger: new RegExp(((((\"[\" + g)) + \"]$\"))),\n        hashtagTrigger: new RegExp(((((\"[\" + n)) + \"]\"))),\n        mainMatcher: new RegExp(((k + \"$\"))),\n        autoMatcher: new RegExp(((l + \"$\"))),\n        userMatcher: new RegExp(((m + \"$\")))\n    };\n    e.exports = o;\n});\n__d(\"MentionsInput\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"Bootloader\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"HTML\",\"Input\",\"InputSelection\",\"Keys\",\"MentionsInputMatchers\",\"Parent\",\"Style\",\"TypeaheadUtil\",\"UserAgent\",\"copyProperties\",\"htmlize\",\"removeFromArray\",\"repeatString\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"HTML\"), o = b(\"Input\"), p = b(\"InputSelection\"), q = b(\"Keys\"), r = b(\"MentionsInputMatchers\"), s = b(\"Parent\"), t = b(\"Style\"), u = b(\"TypeaheadUtil\"), v = b(\"UserAgent\"), w = b(\"copyProperties\"), x = b(\"htmlize\"), y = b(\"removeFromArray\"), z = b(\"repeatString\"), aa = \"\\ufeff\", ba = new RegExp(aa, \"g\"), ca = function(ja) {\n        return ((ja + aa));\n    }, da = \"\\ufffd\", ea = /@+\\[[0-9]+\\:([^\\]]|\\\\\\])*\\]+/g, fa = /[\\\\\\]:]/g;\n    function ga(ja, ka) {\n        return ja.replace(ka, z(\" \", ka.length));\n    };\n;\n    function ha(ja, ka) {\n        return ((ja.substring(0, ka) + ja.substring(((ka + 1)))));\n    };\n;\n    function ia(ja, ka, la, ma, na, oa) {\n        k.set(ja, \"MentionsInput\", this);\n        this._root = ja;\n        this._typeahead = ka;\n        this._input = la;\n        var pa = null, qa = this.init.bind(this, ma, na, oa);\n        try {\n            pa = ((JSBNG__document.activeElement === this._input));\n        } catch (ra) {\n        \n        };\n    ;\n        if (pa) {\n            qa.defer();\n        }\n         else var sa = m.listen(this._input, \"JSBNG__focus\", function() {\n            qa.defer();\n            sa.remove();\n        })\n    ;\n        this._hasHashtags = ma.hashtags;\n        this._hashtags = [];\n    };\n;\n    ia.getInstance = function(ja) {\n        var ka = s.byClass(ja, \"uiMentionsInput\");\n        return ((ka ? k.get(ka, \"MentionsInput\") : null));\n    };\n    w(ia.prototype, h, {\n        init: function(ja, ka, la) {\n            if (this._initialized) {\n                return;\n            }\n        ;\n        ;\n            this._initialized = true;\n            this._highlighter = l.JSBNG__find(this._root, \".highlighter\");\n            this._highlighterInner = this._highlighter.firstChild;\n            this._highlighterContent = l.JSBNG__find(this._root, \".highlighterContent\");\n            this._hiddenInput = l.JSBNG__find(this._root, \".mentionsHidden\");\n            this._placeholder = ((this._input.getAttribute(\"placeholder\") || \"\"));\n            this._maxMentions = ((ja.max || 6));\n            this._metrics = la;\n            if (!this._hiddenInput.JSBNG__name) {\n                var ma = this._input.JSBNG__name;\n                this._input.JSBNG__name = ((ma + \"_text\"));\n                this._hiddenInput.JSBNG__name = ma;\n            }\n        ;\n        ;\n            this._initEvents();\n            this._initTypeahead();\n            this.reset(ka);\n            this.inform(\"init\", null, g.BEHAVIOR_STATE);\n        },\n        reset: function(ja) {\n            if (!this._initialized) {\n                return;\n            }\n        ;\n        ;\n            this._mentioned = {\n            };\n            this._orderedUIDs = [];\n            this._numMentioned = 0;\n            this._filterData = null;\n            ((this._hiddenInput && (this._hiddenInput.value = \"\")));\n            ((this._highlighterContent && l.empty(this._highlighterContent)));\n            ((this._highlighterAuxContent && l.remove(this._highlighterAuxContent)));\n            this._highlighterAuxContent = null;\n            o.setPlaceholder(this._input, this._placeholder);\n            t.set(this._typeahead.getElement(), \"height\", \"auto\");\n            var ka = ((((ja && ja.value)) || \"\")), la = ((ja && ja.mentions));\n            if (((la && la.length))) {\n                var ma = [];\n                la.forEach(function(na) {\n                    ma.push(((na.offset + na.length)));\n                    delete na.offset;\n                    delete na.length;\n                    this._addToken(na);\n                }, this);\n                ma.reverse().forEach(function(na) {\n                    ka = ((((ka.substring(0, na) + aa)) + ka.substring(na)));\n                });\n            }\n        ;\n        ;\n            o.setValue(this._input, ka);\n            this._updateTypeahead();\n            this._updateWidth();\n            this._update();\n        },\n        getValue: function() {\n            return this._getMarkedValue().replace(ba, \"\");\n        },\n        _getMarkedValue: function() {\n            return o.getValue(this._input);\n        },\n        getRawValue: function() {\n            this._update();\n            return o.getValue(this._hiddenInput);\n        },\n        checkValue: function() {\n            var ja = this._typeahead.getCore().getValue();\n            if (((r.trigger.exec(ja) || ((ja === \"\"))))) {\n                this.inform(\"sessionEnd\", {\n                });\n            }\n        ;\n        ;\n        },\n        getTypeahead: function() {\n            return this._typeahead;\n        },\n        _initEvents: function() {\n            var ja = this._update.bind(this);\n            m.listen(this._input, {\n                input: ja,\n                keyup: ja,\n                change: ja,\n                JSBNG__blur: this._handleBlur.bind(this),\n                JSBNG__focus: this._handleFocus.bind(this),\n                keydown: this._handleKeydown.bind(this)\n            });\n            if (this._metrics) {\n                this._metrics._reset();\n                this._metrics.bindSessionStart(this._typeahead, \"render\", true);\n                this._metrics.bindSessionEnd(this._typeahead.getView(), \"select\", true);\n                this._metrics.bindSessionEnd(this, \"sessionEnd\", false);\n                m.listen(this._input, \"keyup\", function(JSBNG__event) {\n                    this.checkValue.bind(this).defer();\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _initTypeahead: function() {\n            this._typeahead.subscribe(\"select\", function(oa, pa) {\n                var qa = pa.selected;\n                this._addToken({\n                    uid: qa.uid,\n                    text: qa.text,\n                    type: qa.type,\n                    weakreference: qa.weak_reference\n                });\n                this.updateValue();\n            }.bind(this));\n            var ja = this._input, ka = null;\n            function la() {\n                if (((ka === null))) {\n                    ka = o.getSubmitOnEnter(ja);\n                    o.setSubmitOnEnter(ja, false);\n                }\n            ;\n            ;\n            };\n        ;\n            function ma() {\n                if (((ka !== null))) {\n                    o.setSubmitOnEnter(ja, ka);\n                    ka = null;\n                }\n            ;\n            ;\n            };\n        ;\n            this._typeahead.subscribe(\"reset\", ma);\n            this._typeahead.subscribe(\"render\", la);\n            this._typeahead.subscribe(\"highlight\", function(oa, pa) {\n                ((((pa.index >= 0)) ? la() : ma()));\n            });\n            this._typeahead.subscribe(\"query\", function() {\n                this._filterData = null;\n            }.bind(this));\n            var na = this._typeahead.getCore();\n            na.suffix = aa;\n            this._handleFocus();\n        },\n        _handleBlur: function() {\n            if (this._filterToken) {\n                this._filterToken.remove();\n                this._filterToken = null;\n            }\n        ;\n        ;\n        },\n        _handleFocus: function() {\n            if (!this._filterToken) {\n                this._filterToken = this._typeahead.getData().addFilter(this._filterResults.bind(this));\n            }\n        ;\n        ;\n            this._updateWidth();\n        },\n        _handleKeydown: function(JSBNG__event) {\n            var ja = JSBNG__event.keyCode;\n            if (((((ja == q.BACKSPACE)) || ((ja == q.DELETE))))) {\n                this._handleBackspaceAndDelete(JSBNG__event, ja);\n            }\n        ;\n        ;\n            if (((((ja == q.LEFT)) || ((ja == q.RIGHT))))) {\n                JSBNG__setTimeout(this._handleLeftAndRight.bind(this, ja), 10);\n            }\n        ;\n        ;\n        },\n        _handleLeftAndRight: function(ja) {\n            var ka = this._getMarkedValue(), la = p.get(this._input), ma = la.start, na = la.end, oa = ((ja == q.LEFT)), pa = ((ja == q.RIGHT));\n            if (((ma == na))) {\n                var qa = ((oa ? -1 : 1));\n                if (((ka.charAt(ma) == aa))) {\n                    p.set(this._input, ((ma + qa)));\n                }\n            ;\n            ;\n            }\n             else if (((oa && ((ka.charAt(ma) == aa))))) {\n                p.set(this._input, ((ma - 1)), na);\n            }\n             else if (((oa && ((ka.charAt(na) == aa))))) {\n                p.set(this._input, ma, ((na - 1)));\n            }\n             else if (((pa && ((ka.charAt(na) == aa))))) {\n                p.set(this._input, ma, ((na + 1)));\n            }\n             else if (((pa && ((ka.charAt(ma) == aa))))) {\n                p.set(this._input, ((ma + 1)), na);\n            }\n            \n            \n            \n            \n        ;\n        ;\n        },\n        _handleBackspaceAndDelete: function(JSBNG__event, ja) {\n            var ka = p.get(this._input), la = false;\n            if (((ka.start !== ka.end))) {\n                if (((this._offsetIsInsideMention(((ka.start + 1))) && this._offsetIsInsideMention(ka.end)))) {\n                    la = ((ja === q.BACKSPACE));\n                }\n                 else return\n            ;\n            }\n        ;\n        ;\n            var ma = ((((ja === q.DELETE)) ? 1 : -1)), na = ((ma + ((la ? ka.end : ka.start)))), oa = this._getMarkedValue(), pa = oa;\n            for (var qa = 0; ((qa < this._orderedUIDs.length)); ++qa) {\n                var ra = this._mentioned[this._orderedUIDs[qa]], sa = ra.text, ta = ca(sa), ua = pa.indexOf(ta), va = ((ua + ta.length));\n                if (((((na < ua)) || ((na >= va))))) {\n                    pa = ga(pa, ta);\n                    continue;\n                }\n            ;\n            ;\n                var wa, xa;\n                if (((ra.type != \"user\"))) {\n                    wa = 0;\n                    xa = [sa,];\n                }\n                 else {\n                    wa = ((ta.substring(0, ((na - ua))).split(\" \").length - 1));\n                    xa = sa.split(\" \");\n                }\n            ;\n            ;\n                var ya = xa.splice(wa, 1)[0], za = xa.join(\" \"), ab = ((((wa === 0)) ? ua : ((((va - ya.length)) - 1))));\n                if (za) {\n                    ra.text = za;\n                    za = ca(za);\n                }\n                 else this._removeToken(ra.uid);\n            ;\n            ;\n                var bb = ((((oa.substring(0, ua) + za)) + oa.substring(va)));\n                o.setValue(this._input, bb);\n                p.set(this._input, ab);\n                this._update();\n                JSBNG__event.kill();\n                break;\n            };\n        ;\n        },\n        _offsetIsInsideMention: function(ja) {\n            for (var ka = 0; ((ka < this._offsets.length)); ka++) {\n                if (((((ja > this._offsets[ka][0])) && ((ja <= this._offsets[ka][1]))))) {\n                    return true;\n                }\n            ;\n            ;\n            };\n        ;\n            return false;\n        },\n        _filterResults: function(ja) {\n            if (((this._filterData === null))) {\n                var ka = p.get(this._input).start;\n                if (this._offsetIsInsideMention(ka)) {\n                    this._filterData = {\n                        caretIsInsideMention: true\n                    };\n                    return false;\n                }\n            ;\n            ;\n                var la = this._typeahead.getCore();\n                this._filterData = {\n                    value: la.getValue(),\n                    rawValue: la.getRawValue()\n                };\n            }\n        ;\n        ;\n            if (this._filterData.caretIsInsideMention) {\n                return false;\n            }\n        ;\n        ;\n            if (r.mainMatcher.test(this._filterData.rawValue)) {\n                return true;\n            }\n        ;\n        ;\n            if (((ja.type != \"user\"))) {\n                return false;\n            }\n        ;\n        ;\n            if (ja.disable_autosuggest) {\n                return false;\n            }\n        ;\n        ;\n            if (r.userMatcher.test(this._filterData.value)) {\n                return true;\n            }\n        ;\n        ;\n            return u.isExactMatch(this._filterData.value, this._typeahead.getData().getTextToIndex(ja));\n        },\n        _addToken: function(ja) {\n            var ka = ja.uid;\n            if (!this._mentioned.hasOwnProperty(ka)) {\n                this._mentioned[ka] = ja;\n                this._orderedUIDs.push(ka);\n                this._numMentioned++;\n                this._updateTypeahead();\n            }\n        ;\n        ;\n        },\n        _removeToken: function(ja) {\n            if (this._mentioned.hasOwnProperty(ja)) {\n                delete this._mentioned[ja];\n                y(this._orderedUIDs, ja);\n                this._numMentioned--;\n                this._updateTypeahead();\n            }\n        ;\n        ;\n        },\n        _update: function() {\n            var ja = this._getMarkedValue();\n            if (((ja == this._value))) {\n                return;\n            }\n        ;\n        ;\n            this._value = ja;\n            this._updateMentions();\n            this._updateDirection.bind(this).defer();\n            this.updateValue();\n        },\n        _updateMentions: function() {\n            this._offsets = [];\n            var ja = this._getMarkedValue(), ka = ja;\n            for (var la = 0; ((la < this._orderedUIDs.length)); ++la) {\n                var ma = this._orderedUIDs[la], na = ca(this._mentioned[ma].text), oa = ka.indexOf(na);\n                if (((oa == -1))) {\n                    this._removeToken(ma);\n                }\n            ;\n            ;\n                ka = ga(ka, na);\n                this._offsets.push([oa,((oa + na.length)),]);\n            };\n        ;\n            var pa = ja;\n            while ((((oa = ka.indexOf(aa)) > -1))) {\n                pa = ha(pa, oa);\n                ka = ha(ka, oa);\n            };\n        ;\n            if (((ja !== pa))) {\n                var qa = p.get(this._input);\n                o.setValue(this._input, pa);\n                p.set(this._input, qa.start);\n                this._value = pa;\n            }\n        ;\n        ;\n        },\n        _renderHashtags: function(ja) {\n            if (!this._hasHashtags) {\n                return x(ja);\n            }\n        ;\n        ;\n            if (!this._hashtagParser) {\n                if (r.hashtagTrigger.exec(ja)) {\n                    this.bootloadHashtagParser();\n                }\n            ;\n            ;\n                if (!this._hashtagParser) {\n                    return x(ja);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this._hashtags = this._hashtagParser.parse(ja);\n            var ka = [], la = 0;\n            for (var ma = 0; ((ma < this._hashtags.length)); ma++) {\n                var na = this._hashtags[ma];\n                ka.push(x(ja.substring(la, na.rawOffset)), \"\\u003Cb\\u003E\", na.marker, na.tag, \"\\u003C/b\\u003E\");\n                la = ((((na.rawOffset + na.marker.length)) + na.tag.length));\n            };\n        ;\n            ka.push(x(ja.substring(la)));\n            return ka.join(\"\");\n        },\n        updateValue: function() {\n            var ja = this._value = this._getMarkedValue(), ka = this._orderedUIDs, la = ja.replace(ea, da);\n            for (var ma = 0; ((ma < ka.length)); ++ma) {\n                var na = ((((\"@[\" + ka[ma])) + \":]\")), oa = ca(this._mentioned[ka[ma]].text);\n                la = la.replace(oa, na);\n                ja = ja.replace(oa, na);\n            };\n        ;\n            var pa = this._renderHashtags(ja);\n            for (var ma = 0; ((ma < ka.length)); ++ma) {\n                var qa = ka[ma], ra = this._mentioned[qa], sa = ra.text, ta = ((ra.weakreference ? \"\\u003Cb class=\\\"weak\\\"\\u003E\" : \"\\u003Cb\\u003E\"));\n                pa = pa.replace(((((\"@[\" + qa)) + \":]\")), ((((ta + x(ca(sa)))) + \"\\u003C/b\\u003E\")));\n                sa = sa.replace(fa, function(ua) {\n                    return ((\"\\\\\" + ua));\n                });\n                la = la.replace(((((\"@[\" + qa)) + \":]\")), ((((((((\"@[\" + qa)) + \":\")) + sa)) + \"]\")));\n            };\n        ;\n            if (v.ie()) {\n                pa = pa.replace(/ /g, \"&nbsp;\\u003Cwbr/\\u003E\");\n            }\n        ;\n        ;\n            l.setContent(this._highlighterContent, n(pa));\n            this._hiddenInput.value = la;\n            this._updateHighlighter();\n            this._updateHeight();\n        },\n        _updateDirection: function() {\n            var ja = t.get(this._input, \"direction\");\n            if (((ja == this._dir))) {\n                return;\n            }\n        ;\n        ;\n            this._dir = ja;\n            t.set(this._highlighter, \"direction\", ja);\n            if (((ja == \"rtl\"))) {\n                t.set(this._highlighter, \"text-align\", \"right\");\n            }\n             else t.set(this._highlighter, \"text-align\", \"left\");\n        ;\n        ;\n        },\n        _updateWidth: function() {\n            var ja = t.getFloat.curry(this._input), ka = ((((((((this._input.offsetWidth - ja(\"paddingLeft\"))) - ja(\"paddingRight\"))) - ja(\"borderLeftWidth\"))) - ja(\"borderRightWidth\")));\n            if (v.firefox()) {\n                ka -= 2;\n            }\n        ;\n        ;\n            if (((v.ie() <= 7))) {\n                ka -= t.getFloat(this._highlighterInner, \"paddingLeft\");\n                this._highlighter.style.zoom = 1;\n            }\n        ;\n        ;\n            this._highlighterInner.style.width = ((Math.max(ka, 0) + \"px\"));\n        },\n        _updateHeight: function() {\n            if (this._highlighterAuxContent) {\n                var ja = this._highlighter.offsetHeight, ka = this._typeahead.getElement();\n                if (((ja > ka.offsetHeight))) {\n                    t.set(ka, \"height\", ((ja + \"px\")));\n                    g.inform(\"reflow\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _updateTypeahead: function() {\n            var ja = this._typeahead.getCore(), ka = null;\n            if (((!this._maxMentions || ((this._numMentioned < this._maxMentions))))) {\n                ka = r.autoMatcher;\n            }\n        ;\n        ;\n            ja.matcher = ka;\n            ja.setExclusions(this._orderedUIDs);\n            this.inform(\"update\", {\n                mentioned: this._mentioned\n            });\n        },\n        setPlaceholder: function(ja) {\n            this._placeholder = ja;\n            if (!this.hasAuxContent()) {\n                o.setPlaceholder(this._input, ja);\n            }\n        ;\n        ;\n        },\n        _updateHighlighter: function() {\n            if (this._highlighterContent) {\n                j.conditionShow(this._highlighterContent, ((((((this._numMentioned > 0)) || this.hasAuxContent())) || this._hashtags.length)));\n            }\n        ;\n        ;\n        },\n        setAuxContent: function(ja) {\n            if (this._highlighterContent) {\n                if (!this._highlighterAuxContent) {\n                    this._highlighterAuxContent = l.create(\"span\", {\n                        className: \"highlighterAuxContent\"\n                    });\n                    l.insertAfter(this._highlighterContent, this._highlighterAuxContent);\n                }\n            ;\n            ;\n                l.setContent(this._highlighterAuxContent, ja);\n                if (ja) {\n                    o.setPlaceholder(this._input, \"\");\n                }\n                 else o.setPlaceholder(this._input, this._placeholder);\n            ;\n            ;\n                this._updateHighlighter();\n                this._updateHeight();\n            }\n        ;\n        ;\n        },\n        hasAuxContent: function() {\n            var ja = this.getAuxContentRoot();\n            return ((ja && ((ja.innerHTML.length > 0))));\n        },\n        getAuxContentRoot: function() {\n            return this._highlighterAuxContent;\n        },\n        addMention: function(ja) {\n            var ka = this._getMarkedValue();\n            if (((ka !== \"\"))) {\n                ka += \" \";\n            }\n        ;\n        ;\n            o.setValue(this._input, ((((ka + ca(ja.text))) + \" \")));\n            this._addToken(ja);\n            this._update();\n        },\n        getMentions: function() {\n            return this._mentioned;\n        },\n        bootloadHashtagParser: function() {\n            if (!this._hashtagParser) {\n                i.loadModules([\"HashtagParser\",], function(ja) {\n                    this._hashtagParser = ja;\n                    if (this._initialized) {\n                        this._update();\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = ia;\n});\n__d(\"MentionsTypeaheadAreaView\", [\"Class\",\"ContextualTypeaheadView\",\"Parent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"ContextualTypeaheadView\"), i = b(\"Parent\"), j = b(\"copyProperties\");\n    function k(l, m) {\n        this.parent.construct(this, l, m);\n    };\n;\n    g.extend(k, h);\n    j(k.prototype, {\n        getContext: function() {\n            return i.byClass(this.element, \"uiMentionsInput\");\n        }\n    });\n    e.exports = k;\n});\n__d(\"legacy:MentionsInput\", [\"MentionsInput\",], function(a, b, c, d) {\n    a.MentionsInput = b(\"MentionsInput\");\n}, 3);\n__d(\"legacy:ui-side-nav-future-js\", [\"FutureSideNav\",], function(a, b, c, d) {\n    a.FutureSideNav = b(\"FutureSideNav\");\n}, 3);\n__d(\"HoverFlyout\", [\"Arbiter\",\"ArbiterMixin\",\"DataStore\",\"JSBNG__Event\",\"Keys\",\"arrayContains\",\"copyProperties\",\"removeFromArray\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"DataStore\"), j = b(\"JSBNG__Event\"), k = b(\"Keys\"), l = b(\"arrayContains\"), m = b(\"copyProperties\"), n = b(\"removeFromArray\"), o = b(\"shield\");\n    function p(q, r, s, t) {\n        if (q) {\n            this._showDelay = s;\n            this._hideDelay = t;\n            this.init(q);\n            if (r) {\n                this.initNode(r);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        g.subscribe(\"SwapButtonDEPRECATED/focusOnJoinButton\", o(this.hideFlyout, this), g.SUBSCRIBE_ALL);\n    };\n;\n    m(p.prototype, h, {\n        init: function(q) {\n            this._flyout = q;\n            this._showDelay = ((this._showDelay || 0));\n            this._hideDelay = ((this._hideDelay || 100));\n            this._showTimeout = null;\n            this._hideTimeout = null;\n            this._flyoutSubscriptions = [this._flyout.subscribe(\"mouseenter\", this._onFlyoutMouseEnter.bind(this)),this._flyout.subscribe(\"mouseleave\", o(this.hideFlyout, this)),];\n            this._nodes = [];\n            this._dataStoreUnique = ((((\"HoverFlyout_\" + JSBNG__Date.now())) + \"_listeners\"));\n            return this;\n        },\n        initNode: function(q) {\n            if (l(this._nodes, q)) {\n                return this;\n            }\n        ;\n        ;\n            this._nodes.push(q);\n            i.set(q, this._dataStoreUnique, [j.listen(q, \"mouseenter\", this._onNodeMouseEnter.bind(this, q)),j.listen(q, \"mouseleave\", o(this.hideFlyout, this)),j.listen(q, \"click\", this._onNodeMouseEnter.bind(this, q)),j.listen(q, \"keydown\", this._onNodeKeyEscape.bind(this)),]);\n            return this;\n        },\n        deactivateNode: function(q) {\n            var r = i.get(q, this._dataStoreUnique);\n            if (r) {\n                while (r.length) {\n                    r.pop().remove();\n                ;\n                };\n            }\n        ;\n        ;\n            n(this._nodes, q);\n        },\n        setShowDelay: function(q) {\n            this._showDelay = q;\n            return this;\n        },\n        setHideDelay: function(q) {\n            this._hideDelay = q;\n            return this;\n        },\n        showFlyout: function(q, r) {\n            this.setActiveNode(q);\n            if (r) {\n                this._flyout.setContext(q).show();\n                this.inform(\"show\", q);\n            }\n             else this._showTimeout = this.showFlyout.bind(this, q, true).defer(this._showDelay);\n        ;\n        ;\n            return this;\n        },\n        hideFlyout: function(q) {\n            JSBNG__clearTimeout(this._showTimeout);\n            if (q) {\n                this._flyout.hide();\n                ((this._activeNode && this.inform(\"hide\", this._activeNode)));\n                this._activeNode = null;\n            }\n             else this._hideTimeout = this.hideFlyout.bind(this, true).defer(this._hideDelay);\n        ;\n        ;\n        },\n        hideFlyoutDelayed: function(q) {\n            JSBNG__clearTimeout(this._showTimeout);\n            JSBNG__clearTimeout(this._hideTimeout);\n            this._hideTimeout = this.hideFlyout.bind(this, true).defer(q);\n        },\n        getActiveNode: function() {\n            return this._activeNode;\n        },\n        setActiveNode: function(q) {\n            JSBNG__clearTimeout(this._hideTimeout);\n            if (((this._activeNode && ((this._activeNode !== q))))) {\n                this.hideFlyout(true);\n            }\n        ;\n        ;\n            this._activeNode = q;\n            return this;\n        },\n        clearNodes: function() {\n            for (var q = this._nodes.length; ((q > 0)); q--) {\n                this.deactivateNode(this._nodes[((q - 1))]);\n            ;\n            };\n        ;\n        },\n        destroy: function() {\n            while (this._flyoutSubscriptions.length) {\n                this._flyout.unsubscribe(this._flyoutSubscriptions.pop());\n            ;\n            };\n        ;\n            this.clearNodes();\n        },\n        _onNodeMouseEnter: function(q) {\n            if (((this._activeNode === q))) {\n                JSBNG__clearTimeout(this._hideTimeout);\n            }\n             else this.showFlyout(q);\n        ;\n        ;\n        },\n        _onFlyoutMouseEnter: function() {\n            JSBNG__clearTimeout(this._hideTimeout);\n        },\n        _onNodeKeyEscape: function(JSBNG__event) {\n            if (((j.getKeyCode(JSBNG__event) === k.ESC))) {\n                ((this._activeNode && this.inform(\"hide\", this._activeNode)));\n                this._activeNode = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = ((a.HoverFlyout || p));\n});\n__d(\"TypeaheadAreaCore\", [\"Class\",\"InputSelection\",\"TypeaheadCore\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"InputSelection\"), i = b(\"TypeaheadCore\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\");\n    function l(m) {\n        this.parent.construct(this, m);\n        this.matcher = new RegExp(((this.matcher + \"$\")));\n        this.preventFocusChangeOnTab = true;\n    };\n;\n    g.extend(l, i);\n    j(l.prototype, {\n        prefix: \"\",\n        suffix: \", \",\n        matcher: \"\\\\b[^,]*\",\n        click: k,\n        select: function(m) {\n            this.parent.select(m);\n            var n = this.element.value, o = ((((this.prefix + m.text)) + this.suffix));\n            this.expandBounds(n, o);\n            var p = n.substring(0, this.start), q = n.substring(this.end);\n            this.element.value = ((((p + o)) + q));\n            h.set(this.element, ((p.length + o.length)));\n        },\n        expandBounds: function(m, n) {\n            m = m.toLowerCase();\n            n = n.toLowerCase();\n            var o, p, q, r, s = /\\s/;\n            p = m.substring(this.start, this.end);\n            q = n.indexOf(p);\n            o = this.start;\n            while (((((o >= 0)) && ((q >= 0))))) {\n                r = m.charAt(((o - 1)));\n                if (((!r || s.test(r)))) {\n                    this.start = o;\n                }\n            ;\n            ;\n                p = ((r + p));\n                q = n.indexOf(p);\n                o--;\n            };\n        ;\n            p = m.substring(this.start, this.end);\n            q = n.indexOf(p);\n            o = this.end;\n            while (((((o <= m.length)) && ((q >= 0))))) {\n                r = m.charAt(o);\n                if (((!r || s.test(r)))) {\n                    this.end = o;\n                }\n            ;\n            ;\n                p = ((p + r));\n                q = n.indexOf(p);\n                o++;\n            };\n        ;\n        },\n        getRawValue: function() {\n            var m = ((h.get(this.element).start || 0));\n            return this.parent.getValue().substring(0, m);\n        },\n        getValue: function() {\n            var m = ((this.matcher && this.matcher.exec(this.getRawValue())));\n            if (!m) {\n                return \"\";\n            }\n        ;\n        ;\n            var n = m[0], o = ((m.index + n.length));\n            n = n.replace(/^\\s/, \"\");\n            var p = n.length;\n            n = n.replace(/\\s$/, \"\");\n            var q = ((p - n.length));\n            this.start = ((o - p));\n            this.end = ((o + q));\n            return ((((m[2] || m[1])) || m[0]));\n        }\n    });\n    e.exports = l;\n});\n__d(\"TypeaheadMetrics\", [\"JSBNG__Event\",\"AsyncRequest\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\"), j = b(\"emptyFunction\");\n    function k(l) {\n        this.extraData = {\n        };\n        i(this, l);\n    };\n;\n    i(k.prototype, {\n        endPoint: \"/ajax/typeahead/record_basic_metrics.php\",\n        init: function(l) {\n            this.init = j;\n            this.core = l.getCore();\n            this.view = l.getView();\n            this.data = l.getData();\n            this.stats = {\n            };\n            this.sessionActive = false;\n            this._sessionStartEvents = [];\n            this._sessionEndEvents = [];\n            this._reset();\n            this.initEvents();\n        },\n        _reset: function() {\n            this.stats = {\n            };\n            this.avgStats = {\n            };\n            this.sessionActive = false;\n            this.results = null;\n            this.sid = Math.floor(((JSBNG__Date.now() * Math.JSBNG__random())));\n            this.data.setQueryData({\n                sid: this.sid\n            });\n        },\n        recordSelect: function(l) {\n            var m = l.selected;\n            if (((m.uid == null))) {\n                this.recordStat(\"selected_id\", \"SELECT_NULL\");\n            }\n             else this.recordStat(\"selected_id\", m.uid);\n        ;\n        ;\n            this.recordStat(\"selected_type\", m.type);\n            this.recordStat(\"selected_position\", l.index);\n            this.recordStat(\"selected_with_mouse\", ((l.clicked ? 1 : 0)));\n            this.recordStat(\"selected_query\", l.query);\n            this._sessionEnd();\n        },\n        bindSessionStart: function(l, JSBNG__event, m) {\n            if (m) {\n                for (var n = 0; ((n < this._sessionStartEvents.length)); ++n) {\n                    var o = this._sessionStartEvents[n];\n                    o.obj.unsubscribe(o.token);\n                };\n            }\n        ;\n        ;\n            this._sessionStartEvents.push({\n                obj: l,\n                token: l.subscribe(JSBNG__event, function(p, q) {\n                    this._sessionStart();\n                }.bind(this))\n            });\n        },\n        bindSessionEnd: function(l, JSBNG__event, m) {\n            if (m) {\n                for (var n = 0; ((n < this._sessionEndEvents.length)); ++n) {\n                    var o = this._sessionEndEvents[n];\n                    o.obj.unsubscribe(o.token);\n                };\n            }\n        ;\n        ;\n            this._sessionEndEvents.push({\n                obj: l,\n                token: l.subscribe(JSBNG__event, function(p, q) {\n                    this._sessionEnd();\n                }.bind(this))\n            });\n        },\n        initEvents: function() {\n            this.bindSessionStart(this.core, \"JSBNG__focus\", false);\n            this.bindSessionEnd(this.core, \"JSBNG__blur\", false);\n            this.view.subscribe(\"select\", function(l, m) {\n                this.recordSelect(m);\n            }.bind(this));\n            this.bindSessionEnd(this.view, \"select\", false);\n            this.view.subscribe(\"render\", function(l, m) {\n                this.results = m;\n            }.bind(this));\n            this.data.subscribe(\"beforeQuery\", function(l, m) {\n                if (!m.value) {\n                    return;\n                }\n            ;\n            ;\n                this.query = m.value;\n                this.recordCountStat(\"num_queries\");\n            }.bind(this));\n            this.data.subscribe(\"beforeFetch\", function(l, m) {\n                if (m.fetch_context.bootstrap) {\n                    this.bootstrapBegin = JSBNG__Date.now();\n                }\n                 else m.fetch_context.queryBegin = JSBNG__Date.now();\n            ;\n            ;\n            }.bind(this));\n            this.data.subscribe(\"fetchComplete\", function(l, m) {\n                if (m.fetch_context.bootstrap) {\n                    this.recordAvgStat(\"bootstrap_latency\", ((JSBNG__Date.now() - this.bootstrapBegin)));\n                    var n = {\n                    };\n                    m.response.payload.entries.forEach(function(o) {\n                        if (!n[o.type]) {\n                            n[o.type] = 1;\n                        }\n                         else n[o.type]++;\n                    ;\n                    ;\n                    });\n                    this.recordStat(\"bootstrap_response_types\", n);\n                    this.bootstrapped = true;\n                }\n                 else {\n                    if (((\"filtered_count\" in m.response.payload))) {\n                        this.recordStat(\"filtered_count\", m.response.payload.filtered_count);\n                    }\n                ;\n                ;\n                    this.recordAvgStat(\"avg_query_latency\", ((JSBNG__Date.now() - m.fetch_context.queryBegin)));\n                }\n            ;\n            ;\n            }.bind(this));\n            this.data.subscribe(\"dirty\", function(l, m) {\n                this.bootstrapped = false;\n            });\n        },\n        _sessionStart: function() {\n            if (this.sessionActive) {\n                return;\n            }\n        ;\n        ;\n            this.sessionActive = true;\n        },\n        _sessionEnd: function() {\n            if (!this.sessionActive) {\n                return;\n            }\n        ;\n        ;\n            this.sessionActive = false;\n            this.submit();\n            this._reset();\n        },\n        recordStat: function(l, m) {\n            this.stats[l] = m;\n        },\n        recordCountStat: function(l) {\n            var m = this.stats[l];\n            this.stats[l] = ((m ? ((m + 1)) : 1));\n        },\n        recordAvgStat: function(l, m) {\n            if (this.avgStats[l]) {\n                this.avgStats[l][0] += m;\n                ++this.avgStats[l][1];\n            }\n             else this.avgStats[l] = [m,1,];\n        ;\n        ;\n        },\n        submit: function() {\n            if (Object.keys(this.stats).length) {\n                i(this.stats, this.extraData);\n                if (this.results) {\n                    var l = (this.results).map(function(o, p) {\n                        return o.uid;\n                    });\n                    this.recordStat(\"candidate_results\", JSON.stringify(l));\n                }\n            ;\n            ;\n                if (this.query) {\n                    this.recordStat(\"query\", this.query);\n                }\n            ;\n            ;\n                if (this.sid) {\n                    this.recordStat(\"sid\", this.sid);\n                }\n            ;\n            ;\n                if (this.bootstrapped) {\n                    this.recordStat(\"bootstrapped\", 1);\n                }\n            ;\n            ;\n                {\n                    var fin200keys = ((window.top.JSBNG_Replay.forInKeys)((this.avgStats))), fin200i = (0);\n                    var m;\n                    for (; (fin200i < fin200keys.length); (fin200i++)) {\n                        ((m) = (fin200keys[fin200i]));\n                        {\n                            var n = this.avgStats[m];\n                            this.stats[m] = ((n[0] / n[1]));\n                        };\n                    };\n                };\n            ;\n                new h().setURI(this.endPoint).setMethod(\"POST\").setData({\n                    stats: this.stats\n                }).send();\n                this._reset();\n            }\n        ;\n        ;\n        }\n    });\n    k.register = function(l, m, n) {\n        if (((JSBNG__document.activeElement === l))) {\n            m.init(n);\n        }\n         else var o = g.listen(l, \"JSBNG__focus\", function() {\n            m.init(n);\n            o.remove();\n        })\n    ;\n    };\n    e.exports = k;\n});\n__d(\"TypeaheadHoistFriends\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._typeahead = i;\n    };\n;\n    g(h.prototype, {\n        _subscription: null,\n        enable: function() {\n            var i = this._typeahead.getView();\n            this._subscription = i.subscribe(\"beforeRender\", function(j, k) {\n                var l = [], m = [], n = [];\n                for (var o = 0; ((o < k.results.length)); ++o) {\n                    var p = k.results[o];\n                    if (((p.type == \"header\"))) {\n                        n = n.concat(m, l);\n                        n.push(p);\n                        m = [];\n                        l = [];\n                    }\n                     else if (((((p.type == \"user\")) && p.bootstrapped))) {\n                        m.push(p);\n                    }\n                     else l.push(p);\n                    \n                ;\n                ;\n                };\n            ;\n                k.results = n.concat(m, l);\n            });\n        },\n        disable: function() {\n            this._typeahead.getView().unsubscribe(this._subscription);\n            this._subscription = null;\n        }\n    });\n    e.exports = h;\n});\n__d(\"legacy:HoistFriendsTypeaheadBehavior\", [\"TypeaheadHoistFriends\",], function(a, b, c, d) {\n    var e = b(\"TypeaheadHoistFriends\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.hoistFriends = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"escapeRegex\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return h.replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, \"\\\\$1\");\n    };\n;\n    e.exports = g;\n});\n__d(\"mixin\", [], function(a, b, c, d, e, f) {\n    function g(h, i, j, k, l, m, n, o, p, q, r) {\n        var s = function() {\n        \n        }, t = [h,i,j,k,l,m,n,o,p,q,], u = 0, v;\n        while (t[u]) {\n            v = t[u];\n            {\n                var fin201keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin201i = (0);\n                var w;\n                for (; (fin201i < fin201keys.length); (fin201i++)) {\n                    ((w) = (fin201keys[fin201i]));\n                    {\n                        if (v.hasOwnProperty(w)) {\n                            s.prototype[w] = v[w];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            u += 1;\n        };\n    ;\n        return s;\n    };\n;\n    e.exports = g;\n});");
36539 // 11681
36540 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o203,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yz/r/CVXUroaYxOH.js",o204);
36541 // undefined
36542 o203 = null;
36543 // undefined
36544 o204 = null;
36545 // 11685
36546 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"EzMPG\",]);\n}\n;\n__d(\"ChannelSubdomain\", [\"Cookie\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"JSLogger\"), i = h.create(\"channel\"), j = 7, k = null;\n    function l(o, p) {\n        var q = null, r = m(), s;\n        o--;\n        var t = Math.min(32, (j * o));\n        t = Math.max(t, 1);\n        var u = false;\n        for (var v = 0; (v < 32); v++) {\n            s = (((v + p)) % t);\n            if (!((r & ((1 << s))))) {\n                u = true;\n                break;\n            }\n        ;\n        };\n        if (u) {\n            k = s;\n            q = (k % j);\n            g.set(\"sub\", (r | ((1 << k))));\n        }\n         else {\n            k = -1;\n            q = null;\n            i.error(\"subdomain_overflow\", {\n                slot: k,\n                max: o\n            });\n        }\n    ;\n        return q;\n    };\n    function m() {\n        var o = (g.get(\"sub\") || 0);\n        o = parseInt(o, 10);\n        return (isNaN(o) ? 0 : o);\n    };\n    function n() {\n        if (((k !== null) && (k >= 0))) {\n            var o = (m() & ~((1 << k)));\n            if (o) {\n                g.set(\"sub\", o);\n            }\n             else g.clear(\"sub\");\n        ;\n        }\n    ;\n    };\n    e.exports = {\n        allocate: l,\n        clear: n\n    };\n});\n__d(\"DocRPC\", [\"ErrorUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\"), h = {\n        _apis: {\n        },\n        _dispatch: function(i) {\n            var j;\n            try {\n                i = JSON.parse(i);\n            } catch (k) {\n                throw new Error(((\"DocRPC unparsable dispatch: \\\"\" + i) + \"\\\"\"));\n            };\n            if (h._apis.hasOwnProperty(i.api)) {\n                var l = h._apis[i.api];\n                if (l[i.method]) {\n                    j = g.applyWithGuard(l[i.method], l, i.args);\n                };\n            }\n        ;\n            if ((j === undefined)) {\n                j = null;\n            };\n            return JSON.stringify(j);\n        },\n        publish: function(i, j) {\n            h._apis[j] = i;\n        },\n        proxy: function(i, j, k) {\n            var l = {\n            };\n            k.forEach(function(m) {\n                l[m] = function() {\n                    var n = {\n                        api: j,\n                        method: m,\n                        args: Array.prototype.slice.call(arguments)\n                    }, o;\n                    try {\n                        if (i.closed) {\n                            throw new Error(\"DocRPC window closed\")\n                        };\n                        o = i.DocRPC._dispatch(JSON.stringify(n));\n                    } catch (p) {\n                        g.reportError(p);\n                        return;\n                    };\n                    if ((typeof (o) == \"string\")) {\n                        try {\n                            o = JSON.parse(o);\n                        } catch (p) {\n                            throw new Error(((((((\"DocRPC \" + j) + \".\") + m) + \" unparsable return: \\\"\") + o) + \"\\\"\"));\n                        }\n                    };\n                    return o;\n                };\n            });\n            return l;\n        }\n    };\n    e.exports = a.DocRPC = h;\n});\n__d(\"ChannelTransport\", [\"copyProperties\",\"bind\",\"AjaxRequest\",\"URI\",\"JSLogger\",\"DocRPC\",\"ChannelConstants\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"bind\"), i = b(\"AjaxRequest\"), j = b(\"URI\"), k = b(\"JSLogger\"), l = b(\"DocRPC\"), m = b(\"ChannelConstants\"), n = b(\"UserAgent\"), o = k.create(\"channel\");\n    function p() {\n        return (((1048576 * Math.random()) | 0)).toString(36);\n    };\n    function q(y, z) {\n        var aa = y.subdomain;\n        aa = ((aa === null) ? \"\" : ((aa + \"-\")));\n        var ba = new j(z).setDomain(((aa + y.host) + \".facebook.com\")).setPort(y.port).setSecure(j().isSecure());\n        return ba;\n    };\n    function r(y) {\n        var z = {\n            partition: y.partition,\n            cb: p()\n        }, aa = q(y, \"/p\").setQueryData(z);\n        o.log(\"start_p\", {\n            uri: aa.toString()\n        });\n        var ba = new i(\"GET\", aa);\n        if (i.supportsCORS()) {\n            ba.xhr.withCredentials = true;\n        };\n        var ca = function(da) {\n            o.log(\"finish_p\", {\n                xhr: (da.toJSON ? da.toJSON() : da)\n            });\n        };\n        ba.timeout = y.P_TIMEOUT;\n        ba.onError = ba.onSuccess = ca;\n        ba.send();\n    };\n    function s(y, z, aa) {\n        var ba = new Image(), ca = 0, da = function(ga) {\n            ba.abort();\n            return (ga ? z() : aa());\n        };\n        ba.onload = function() {\n            o.log(\"ping_ok\", {\n                duration: (Date.now() - ca)\n            });\n            da(true);\n        };\n        ba.onerror = function() {\n            r(y);\n            da(false);\n        };\n        var ea = setTimeout(ba.onerror, 10000, false);\n        ba.abort = function() {\n            if (ea) {\n                clearTimeout(ea);\n                ea = null;\n            }\n        ;\n            ba.onload = ba.onerror = null;\n        };\n        var fa = {\n            partition: y.partition,\n            cb: p()\n        };\n        ca = Date.now();\n        ba.src = q(y, \"/ping\").setQueryData(fa);\n        return ba;\n    };\n    function t(y, z, aa, ba) {\n        var ca = new Date(), da = ((((ca - y.userActive)) / 1000) | 0);\n        if ((da < 0)) {\n            o.warn(\"idle_regression\", {\n                idleTime: da,\n                now: ca.getTime(),\n                userActive: y.userActive\n            });\n        };\n        var ea = {\n            channel: y.user_channel,\n            seq: y.seq,\n            partition: y.partition,\n            clientid: y.sessionID,\n            cb: p(),\n            idle: da,\n            cap: 0\n        };\n        if ((da < 60)) {\n            ea.state = \"active\";\n        };\n        if (y.streamingCapable) {\n            ea.mode = \"stream\";\n            ea.format = \"json\";\n        }\n    ;\n        if (y.profile) {\n            ea.profile = y.profile;\n        };\n        if ((y.webrtcSupport && (((n.chrome() >= 24) || (n.firefox() >= 22))))) {\n            ea.cap = m.CAPABILITY_VOIP;\n        };\n        var fa = q(y, \"/pull\").setQueryData(ea), ga = new i(\"GET\", fa);\n        if (i.supportsCORS()) {\n            ga.xhr.withCredentials = true;\n        };\n        ga.timeout = (y.streamingCapable ? y.STREAMING_TIMEOUT : y.LONGPOLL_TIMEOUT);\n        ga.onJSON = z;\n        ga.onSuccess = aa;\n        ga.onError = function() {\n            var ha = ((((this.status == 12002) && (this._time >= y.MIN_12002_TIMEOUT))) || (((this.status == 504) && (this._time >= y.MIN_504_TIMEOUT)))), ia = (ha ? aa : ba);\n            return (ia && ia.apply(this, arguments));\n        };\n        ga.send();\n        y.inStreaming = y.streamingCapable;\n        return ga;\n    };\n    function u(y) {\n        this.manager = y;\n        ((this.init && this.init()));\n    };\n    function v(y) {\n        u.apply(this, arguments);\n    };\n    g(v.prototype, {\n        logName: \"CORS\",\n        enterState: function(y, z) {\n            if (this._request) {\n                this._request.abort();\n                this._request = null;\n            }\n        ;\n            if ((y == \"init\")) {\n                setTimeout(h(this.manager, \"exitState\", {\n                    status: m.OK,\n                    stateId: z.stateId\n                }), 3000, false);\n            };\n            if (!/pull|ping/.test(y)) {\n                return\n            };\n            var aa = this.manager;\n            if ((y == \"ping\")) {\n                this._request = s(z, h(aa, \"exitState\", {\n                    status: m.OK,\n                    stateId: z.stateId\n                }), h(aa, \"exitState\", {\n                    status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n             else if ((y == \"pull\")) {\n                this._request = t(z, h(aa, \"_processTransportData\", z.stateId), h(aa, \"exitState\", {\n                    status: m.OK,\n                    stateId: z.stateId\n                }), h(aa, \"exitState\", {\n                    status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n        ;\n        }\n    });\n    function w(y) {\n        o.log(\"iframe_init_constructor\");\n        u.apply(this, arguments);\n        this._iframe = document.createElement(\"iframe\");\n        this._iframe.style.display = \"none\";\n        document.body.appendChild(this._iframe);\n        l.publish(this, \"outerTransport\");\n    };\n    g(w.prototype, {\n        logName: \"iframe\",\n        _initIframe: function(y) {\n            o.log(\"iframe_init_start\");\n            window.onchanneliframeready = function() {\n                o.log(\"iframe_resources\");\n                return y.resources;\n            };\n            window.onchanneliframeloaded = function() {\n                o.log(\"iframe_loaded\");\n            };\n            if (y) {\n                this._iframeURI = q(y, y.path);\n                if (y.bustIframe) {\n                    var z = {\n                        partition: y.partition,\n                        cb: p()\n                    };\n                    this._iframeURI.setQueryData(z);\n                }\n            ;\n            }\n             else this._iframeURI = \"about:blank\";\n        ;\n            this._iframeProxy = null;\n            try {\n                this._iframe.contentWindow.location.replace(this._iframeURI);\n                o.log(\"iframe_uri_set\");\n            } catch (aa) {\n                o.error(\"iframe_uri_set_error\", aa);\n                this.exitState({\n                    status: m.ERROR,\n                    stateId: y.stateId\n                }, (aa + \"\"));\n            };\n        },\n        enterState: function(y, z) {\n            if ((y == \"init\")) {\n                this._initIframe(z);\n            }\n             else if (/idle|ping|pull/.test(y)) {\n                if (this._iframeProxy) {\n                    this._iframeProxy.enterState.apply(this._iframeProxy, arguments);\n                }\n                 else if ((y != \"idle\")) {\n                    this.exitState({\n                        status: m.ERROR,\n                        stateId: z.stateId\n                    }, \"iframe not yet loaded\");\n                }\n            ;\n            }\n             else if ((y == \"shutdown\")) {\n                this._initIframe();\n            }\n            \n        ;\n        },\n        _processTransportData: function() {\n            this.manager._processTransportData.apply(this.manager, arguments);\n        },\n        exitState: function(y) {\n            if (((this.manager.state == \"init\") && (y.status == m.OK))) {\n                this._iframeProxy = l.proxy(this._iframe.contentWindow, \"innerTransport\", [\"enterState\",], ((this._iframeURI + \"\")).replace(/iframe.*/, \"\"));\n            };\n            if ((/ping|pull/.test(this.manager.state) && !this._iframeProxy)) {\n                return\n            };\n            this.manager.exitState.apply(this.manager, arguments);\n        }\n    });\n    function x() {\n        this.init = this.init.bind(this);\n        u.apply(this, arguments);\n    };\n    g(x.prototype, {\n        logName: \"iframe(inner)\",\n        init: function() {\n            l.publish(this, \"innerTransport\");\n            try {\n                var z = l.proxy(window.parent, \"outerTransport\", [\"_processTransportData\",\"exitState\",], top.DocRPC.origin);\n                g(this, z);\n                this.exitState({\n                    status: m.OK,\n                    stateId: 1000000\n                });\n            } catch (y) {\n                o.error(\"iframe_inner_init_error\", y);\n            };\n        },\n        enterState: function(y, z) {\n            if (this._request) {\n                this._request.abort();\n                this._request = null;\n            }\n        ;\n            if ((y == \"ping\")) {\n                this._request = s(z, h(this, \"exitState\", {\n                    status: m.OK,\n                    stateId: z.stateId\n                }), h(this, \"exitState\", {\n                    status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n             else if ((y == \"pull\")) {\n                this._request = t(z, h(this, \"_processTransportData\", z.stateId), h(this, \"exitState\", {\n                    status: m.OK,\n                    stateId: z.stateId\n                }), h(this, \"exitState\", {\n                    status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n        ;\n        }\n    });\n    e.exports = {\n        getURI: q,\n        Transport: u,\n        CORSTransport: v,\n        IframeTransport: w,\n        IframeInnerTransport: x\n    };\n});\n__d(\"MovingStat\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        h = (h || 60000);\n        var i = {\n            t: new Date(),\n            count: 0,\n            v: 0\n        }, j = i, k = 0, l = 0;\n        function m() {\n            var n = (new Date() - h);\n            while (((j && j.next) && (j.t < n))) {\n                k -= j.v;\n                l -= j.count;\n                j = j.next;\n            };\n        };\n        this.add = function(n) {\n            k += n;\n            l++;\n            var o = new Date();\n            if (((o - i.t) < 1000)) {\n                i.v += n;\n                i.count++;\n            }\n             else {\n                i.next = {\n                    t: o,\n                    v: n,\n                    count: 1\n                };\n                i = i.next;\n                m();\n            }\n        ;\n        };\n        this.tally = function(n) {\n            n = (n || 1000);\n            m();\n            return {\n                sum: k,\n                count: l,\n                timeAverage: ((k * n) / h)\n            };\n        };\n    };\n    e.exports = g;\n});\n__d(\"ChannelManager\", [\"Event\",\"function-extensions\",\"AjaxRequest\",\"Arbiter\",\"AsyncRequest\",\"ChannelConstants\",\"ChannelInitialData\",\"ChannelSubdomain\",\"ChannelTransport\",\"Env\",\"FBAjaxRequest\",\"JSLogger\",\"MovingStat\",\"PresenceCookieManager\",\"PresenceState\",\"PresenceUtil\",\"Run\",\"SystemEvents\",\"URI\",\"UserActivity\",\"copyProperties\",\"createArrayFrom\",\"ChatVisibility\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"AjaxRequest\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"ChannelConstants\"), l = b(\"ChannelInitialData\"), m = b(\"ChannelSubdomain\"), n = b(\"ChannelTransport\"), o = b(\"Env\"), p = b(\"FBAjaxRequest\"), q = b(\"JSLogger\"), r = b(\"MovingStat\"), s = b(\"PresenceCookieManager\"), t = b(\"PresenceState\"), u = b(\"PresenceUtil\"), v = b(\"Run\"), w = b(\"SystemEvents\"), x = b(\"URI\"), y = b(\"UserActivity\"), z = b(\"copyProperties\"), aa = b(\"createArrayFrom\"), ba = b(\"ChatVisibility\"), ca, da = q.create(\"channel\"), ea = null;\n    function fa(qa) {\n        ea = qa;\n    };\n    var ga = {\n        idle: {\n            ok: \"init!\"\n        },\n        init: {\n            ok: \"pull!\",\n            error: \"reconnect\",\n            sys_online: \"init\",\n            sys_timetravel: \"init\"\n        },\n        pull: {\n            ok: \"pull!\",\n            error: \"ping\",\n            error_missing: \"pull\",\n            error_msg_type: \"pull\",\n            refresh_0: \"reconnect\",\n            refresh_110: \"reconnect\",\n            refresh_111: \"reconnect\",\n            refresh_112: \"pull\",\n            refresh_113: \"pull\",\n            refresh_117: \"reconnect\"\n        },\n        ping: {\n            ok: \"pull!\",\n            error: \"ping\",\n            error_stale: \"reconnect!\"\n        },\n        reconnect: {\n            ok: \"init!\",\n            error: \"reconnect\",\n            sys_online: \"reconnect\",\n            sys_timetravel: \"reconnect\"\n        },\n        shutdown: {\n        },\n        _all: {\n            error_max: \"shutdown!\",\n            error_shutdown: \"shutdown!\",\n            sys_owner: \"reconnect\",\n            sys_nonowner: \"idle!\",\n            sys_online: \"ping\",\n            sys_offline: \"idle!\",\n            sys_timetravel: \"ping\"\n        }\n    }, ha = {\n        userActive: (ba.isOnline() ? Date.now() : 0),\n        sessionID: (((Math.random() * 2147483648) | 0)).toString(16),\n        streamingCapable: false,\n        inStreaming: false,\n        LONGPOLL_TIMEOUT: 60000,\n        STREAMING_TIMEOUT: 60000,\n        P_TIMEOUT: 30000,\n        IFRAME_LOAD_TIMEOUT: 30000,\n        MIN_RETRY_INTERVAL: 5000,\n        MAX_RETRY_INTERVAL: 30000,\n        MIN_12002_TIMEOUT: 9000,\n        MIN_504_TIMEOUT: 20000,\n        STALL_THRESHOLD: 180000,\n        JUMPSTART_THRESHOLD: 90000,\n        MIN_INIT_PROBE_DELAY: 3000,\n        INIT_PROBE_DELAY_RANDOMIZE_RANGE: 12000,\n        PROBE_DELAY: 60000,\n        PROBE_HEARTBEATS_INTERVAL_LOW: 1000,\n        PROBE_HEARTBEATS_INTERVAL_HIGH: 3000,\n        STREAMING_EXIT_STATE_ON_CONTINUE: false\n    }, ia = 1, ja = {\n    }, ka = 0;\n    function la() {\n        return (j.lastSuccessTime ? Math.round((((Date.now() - j.lastSuccessTime)) / 1000)) : -1);\n    };\n    function ma() {\n        var qa = {\n        };\n        if (ca.getConfig(\"host\")) {\n            qa[ca.getConfig(\"user_channel\")] = ca.getConfig(\"seq\", 0);\n        };\n        return qa;\n    };\n    function na() {\n        var qa = Date.now(), ra = Date.now(), sa = {\n            total: 0\n        }, ta = \"idle\", ua = false;\n        w.subscribe([w.USER,w.ONLINE,w.TIME_TRAVEL,], function(xa, ya) {\n            pa(true);\n            ra = null;\n            ca.lastPullTime = Date.now();\n            var za;\n            switch (xa) {\n              case w.USER:\n                za = (w.isPageOwner() ? k.SYS_OWNER : k.SYS_NONOWNER);\n                break;\n              case w.ONLINE:\n                za = (ya ? k.SYS_ONLINE : k.SYS_OFFLINE);\n                break;\n              case w.TIME_TRAVEL:\n                za = k.SYS_TIMETRAVEL;\n                break;\n            };\n            ca.exitState({\n                status: za,\n                stateId: ia\n            });\n        });\n        var va = function(xa, ya) {\n            var za = Date.now(), ab;\n            if (ya) {\n                qa = za;\n                ab = (ya.nextState || ya.state);\n            }\n             else ab = ta;\n        ;\n            w.checkTimeTravel();\n            if (ra) {\n                var bb = Math.round((((za - ra)) / 1000));\n                if ((bb > 0)) {\n                    sa[ta] = (((sa[ta] || 0)) + bb);\n                    sa.total += bb;\n                }\n            ;\n            }\n        ;\n            ta = ab;\n            ra = za;\n            if (!xa) {\n                sa.lastSuccessTime = la();\n                sa.online = w.isOnline();\n                da.log(\"rollup\", sa);\n            }\n        ;\n        };\n        i.subscribe(k.ON_ENTER_STATE, va);\n        setInterval(va, 60000, false);\n        i.subscribe(q.DUMP_EVENT, function(xa, ya) {\n            ya.channelRollup = sa;\n        });\n        var wa = function() {\n            if ((ca.isShutdown() || ca.shouldIdle())) {\n                return\n            };\n            w.checkTimeTravel();\n            var xa = (Date.now() - ((ca.lastPullTime || o.start)));\n            if ((!ua && (xa > ha.STALL_THRESHOLD))) {\n                var ya = la();\n                da.error(\"stall\", {\n                    lastSuccessTime: ya,\n                    rollupState: ta\n                });\n                ua = true;\n            }\n        ;\n            var za = (Date.now() - qa);\n            if (((ca.state == \"pull\") && (za > ha.JUMPSTART_THRESHOLD))) {\n                qa = null;\n                da.warn(\"jumpstart\", {\n                    state: ca.state,\n                    dormant: za\n                });\n                ca.enterState(\"init\");\n            }\n        ;\n        };\n        setInterval(wa, 10000, false);\n    };\n    function oa() {\n        var qa = Date.now(), ra = 1;\n        function sa() {\n            setTimeout(sa, (ra * 1000), false);\n            var xa = ca.state;\n            if (((xa == \"idle\") && ca.shouldIdle())) {\n                return\n            };\n            da.bump(\"conn_t\", ra);\n            if ((xa == \"pull\")) {\n                da.bump(\"conn_t_pull\", ra);\n            };\n        };\n        sa();\n        var ta = [15,30,60,120,240,], ua = false, va = false;\n        function wa(xa) {\n            setTimeout(function() {\n                da.rate((\"pullenter_\" + xa), ua);\n                da.rate((\"pullexit_\" + xa), va);\n            }, (xa * 1000), false);\n        };\n        while (ta.length) {\n            wa(ta.shift());;\n        };\n        i.subscribe(k.ON_ENTER_STATE, function(xa, ya) {\n            if ((ya.state == \"pull\")) {\n                ua = true;\n            };\n            qa = Date.now();\n        });\n        i.subscribe(k.ON_EXIT_STATE, function(xa, ya) {\n            if (((ya.state != \"pull\") || !qa)) {\n                return\n            };\n            var za = \"other\";\n            if ((ya.status == k.OK)) {\n                va = true;\n                za = \"ok\";\n            }\n             else if ((ya.xhr && ya.xhr.errorType)) {\n                za = (/ar:(\\w+)/.test(ya.xhr.errorType) && RegExp.$1);\n            }\n             else if (/^sys_/.test(ya.status)) {\n                return\n            }\n            \n        ;\n            var ab = (((Date.now() - qa)) / 1000);\n            if ((ab < 0)) {\n                return;\n            }\n             else if ((ab > 3600)) {\n                ab = 3600;\n            }\n        ;\n            da.bump(\"conn_num\");\n            da.bump(\"conn_exit\", ab);\n            da.bump((\"conn_num_\" + za));\n            da.bump((\"conn_exit_\" + za), ab);\n        });\n    };\n    function pa(qa) {\n        if (qa) {\n            ka = 0;\n            ja = {\n            };\n        }\n         else ka++;\n    ;\n    };\n    ca = {\n        state: \"idle\",\n        nextState: null,\n        lastPullTime: Date.now(),\n        heartbeats: [],\n        setTestCallback: fa,\n        init: function(qa) {\n            this.init = function() {\n            \n            };\n            if ((typeof (y) != \"undefined\")) {\n                y.subscribe(function() {\n                    if (ba.isOnline()) {\n                        ha.userActive = Date.now();\n                    };\n                }.bind(this));\n            }\n             else da.error(\"user_activity_undefined\");\n        ;\n            s.register(\"ch\", ma);\n            var ra = this.getConfig(\"max_conn\", 2), sa = Math.floor((Math.random() * 32));\n            ha.subdomain = m.allocate(ra, sa);\n            if ((typeof window.onpageshow != \"undefined\")) {\n                g.listen(window, \"pagehide\", m.clear);\n            }\n             else v.onUnload(m.clear);\n        ;\n            this._transportRate = new r(30000);\n            var ta = (((h.supportsCORS() && !ha.forceIframe)) ? \"CORSTransport\" : \"IframeTransport\");\n            this.transport = new n[ta](this);\n            if (qa) {\n                this.enterState.apply(this, arguments);\n            };\n            i.subscribe(q.DUMP_EVENT, function(event, va) {\n                va.transportRate = this._transportRate.tally();\n                va.transportType = ta;\n                va.transportVersion = 2;\n            }.bind(this));\n            na();\n            oa();\n            if ((((ca.getConfig(\"tryStreaming\") && ca.getConfig(\"host\")) && h.supportsCORS()) && !ha.forceIframe)) {\n                var ua = (ha.MIN_INIT_PROBE_DELAY + (Math.random() * ha.INIT_PROBE_DELAY_RANDOMIZE_RANGE));\n                setTimeout(this._probeTest, ua, false);\n            }\n        ;\n        },\n        configure: function() {\n            var qa = aa(arguments);\n            da.log(\"configure\", qa);\n            qa.forEach(z.bind(null, ha));\n            i.inform(k.ON_CONFIG, this);\n        },\n        getConfig: function(qa, ra) {\n            return ((qa in ha) ? ha[qa] : ra);\n        },\n        isShutdown: function() {\n            return (this.state == \"shutdown\");\n        },\n        shouldIdle: function() {\n            return !((w.isPageOwner() && w.isOnline()));\n        },\n        _sendIframeError: function(qa) {\n            var ra = new j().setURI(\"/ajax/presence/reconnect.php\").setData({\n                reason: qa,\n                fb_dtsg: o.fb_dtsg\n            }).setOption(\"suppressErrorHandlerWarning\", true).setOption(\"retries\", 1).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(true);\n            (ra.specifiesWriteRequiredParams() && ra.send());\n        },\n        _getDelay: function() {\n            var qa = Math.min((ha.MIN_RETRY_INTERVAL * Math.pow(2, Math.max(0, (ka - 1)))), ha.MAX_RETRY_INTERVAL);\n            return ((qa * ((13517 + (Math.random() / 2)))) | 0);\n        },\n        enterState: function() {\n            if (this._inEnterState) {\n                da.warn(\"enterstate_recursion\");\n            };\n            this._inEnterState = true;\n            try {\n                this._enterState.apply(this, arguments);\n                this._inEnterState = false;\n            } catch (qa) {\n                this._inEnterState = false;\n                throw qa;\n            };\n        },\n        _enterState: function(qa) {\n            var ra = 0, sa = aa(arguments);\n            if (this.isShutdown()) {\n                return\n            };\n            if (((qa != \"idle!\") && this.shouldIdle())) {\n                return\n            };\n            ia++;\n            ha.stateId = ia;\n            clearTimeout(this._deferredTransition);\n            this._deferredTransition = null;\n            this.transport.enterState(\"idle\");\n            this.state = \"idle\";\n            this.nextState = null;\n            if (/!$/.test(qa)) {\n                var ta = this._transportRate.tally().timeAverage, ua = ca.getConfig(\"MAX_CHANNEL_STATES_PER_SEC\", 1);\n                if ((ta >= ua)) {\n                    if (!this._throttled) {\n                        this._throttled = true;\n                        da.warn(\"throttled\");\n                    }\n                ;\n                    da.bump(\"throttle\");\n                    ra = (1000 / ua);\n                }\n            ;\n            }\n             else if (!(/#$/.test(qa))) {\n                ra = this._getDelay();\n            }\n        ;\n            qa = qa.replace(/\\W*$/, \"\");\n            if (!ga[qa]) {\n                throw new Error((\"invalid state:\" + qa))\n            };\n            var va;\n            if ((ra <= 0)) {\n                va = {\n                    state: qa\n                };\n                this._transportRate.add(1);\n                this.state = qa;\n                var wa = this[(\"_enter_\" + this.state)];\n                if (wa) {\n                    sa.shift();\n                    wa.apply(this, sa);\n                }\n            ;\n                if (/init|idle|pull|ping/.test(this.state)) {\n                    if ((ha.streamingCapable && /pull/.test(this.state))) {\n                        this.heartbeats = [];\n                    };\n                    this.transport.enterState(this.state, ha);\n                    if ((this.state == \"ping\")) {\n                        va.url = n.getURI(ha).toString();\n                        va.port = (ha.port || \"undefined\");\n                    }\n                ;\n                }\n            ;\n            }\n             else {\n                this.state = \"idle\";\n                this.nextState = qa;\n                va = {\n                    state: this.state,\n                    delay: ra,\n                    nextState: qa\n                };\n                sa[0] = (qa + \"#\");\n                this._deferredTransition = (function() {\n                    this._deferredTransition = null;\n                    this.enterState.apply(this, sa);\n                }).bind(this).defer(ra, false);\n            }\n        ;\n            if (/pull/.test(qa)) {\n                va.client_id = ha.sessionID;\n                va.streaming = ha.inStreaming;\n            }\n        ;\n            da.log((\"enter_\" + this.state), va);\n            i.inform(k.ON_ENTER_STATE, va);\n        },\n        exitState: function(qa, ra) {\n            var sa = qa.stateId, ta = qa.status;\n            if ((this.isShutdown() || (sa < ia))) {\n                return\n            };\n            var ua = aa(arguments), va = this.state;\n            ua[0] = qa.status;\n            var wa = {\n                state: va,\n                status: ta\n            };\n            if (/pull/.test(va)) {\n                wa.client_id = ha.sessionID;\n                wa.streaming = ha.inStreaming;\n            }\n        ;\n            if ((/ping/.test(va) && (ta != k.OK))) {\n                wa.url = n.getURI(ha).toString();\n            };\n            if (this.nextState) {\n                wa.nextState = this.nextState;\n            };\n            if ((ra && ra.errorType)) {\n                wa.xhr = (ra.toJSON ? ra.toJSON() : ra);\n                delete wa.xhr.json;\n            }\n        ;\n            if ((ra && ra.json)) {\n                if (ra.json.t) {\n                    wa.t = ra.json.t;\n                };\n                if (ra.json.reason) {\n                    wa.reason = ra.json.reason;\n                };\n                if (ra.json.seq) {\n                    wa.seq = ra.json.seq;\n                };\n            }\n        ;\n            da.log((\"exit_\" + va), wa);\n            i.inform(k.ON_EXIT_STATE, wa);\n            var xa = this[(\"_exit_\" + va)];\n            if (xa) {\n                ta = (xa.apply(this, ua) || ta);\n            };\n            if ((ta != k.OK)) {\n                pa();\n                ja[va] = (((ja[va] || 0)) + 1);\n            }\n        ;\n            var ya = (ga[(this.nextState || va)][ta] || ga._all[ta]), za = (ya && ya.replace(/!*$/, \"\"));\n            if (!za) {\n                da.error(\"terminal_transition\", wa);\n                this._shutdownHint = k.HINT_INVALID_STATE;\n                ya = \"shutdown!\";\n            }\n        ;\n            this._lastState = va;\n            this._lastStatus = ta;\n            this.enterState(ya);\n        },\n        _processTransportData: function(qa, ra) {\n            var sa = ra.json, ta = sa.t;\n            if ((\"s\" in sa)) {\n                sa.seq = sa.s;\n                delete sa.s;\n            }\n        ;\n            var ua = ha.seq;\n            if ((\"seq\" in sa)) {\n                ha.seq = sa.seq;\n                t.doSync();\n            }\n        ;\n            switch (ta) {\n              case \"continue\":\n                if ((ha.inStreaming && (this.heartbeats.length < 1))) {\n                    ha.streamingCapable = false;\n                    da.log(\"switch_to_longpoll\");\n                    setTimeout(this._probeTest, ha.PROBE_DELAY, false);\n                }\n            ;\n                pa(true);\n                if ((!ha.inStreaming || ha.STREAMING_EXIT_STATE_ON_CONTINUE)) {\n                    this.exitState({\n                        status: k.OK,\n                        stateId: qa\n                    });\n                };\n                break;\n              case \"refresh\":\n            \n              case \"refreshDelay\":\n                this.exitState({\n                    status: (\"refresh_\" + ((sa.reason || 0))),\n                    stateId: qa\n                }, ra);\n                break;\n              case \"fullReload\":\n                s.clear();\n                da.log(\"invalid_history\");\n                i.inform(k.ON_INVALID_HISTORY);\n                this.exitState({\n                    status: k.ERROR_MISSING,\n                    stateId: qa\n                }, ra);\n                break;\n              case \"msg\":\n                var va, wa, xa, ya;\n                pa(true);\n                wa = sa.ms;\n                xa = (ha.seq - wa.length);\n                for (va = 0; (va < wa.length); va++, xa++) {\n                    if ((xa >= ua)) {\n                        ya = wa[va];\n                        if (ya.type) {\n                            if (((ya.type === \"messaging\") && ya.message)) {\n                                var za = (ya.unread_counts && ya.unread_counts.inbox);\n                                da.debug(\"message\", {\n                                    type: \"messaging\",\n                                    inbox_unread: za,\n                                    tid: ya.message.tid,\n                                    mid: ya.message.mid\n                                });\n                            }\n                             else if ((ya.type === \"m_messaging\")) {\n                                da.debug(\"message\", {\n                                    type: \"m_messaging\",\n                                    tid: ya.tid,\n                                    mid: ya.uuid\n                                });\n                            }\n                             else da.debug(\"message\", {\n                                type: ya.type\n                            });\n                            \n                        ;\n                            i.inform(k.getArbiterType(ya.type), {\n                                obj: ya\n                            });\n                        }\n                    ;\n                    }\n                     else da.warn(\"seq_regression\", {\n                        seq: xa,\n                        last_seq: ua,\n                        messages: wa.length\n                    });\n                ;\n                };\n                break;\n              case \"heartbeat\":\n                if (ha.inStreaming) {\n                    var ab = Date.now();\n                    if ((this.heartbeats.length > 0)) {\n                        var bb = (ab - this.heartbeats[(this.heartbeats.length - 1)]);\n                        da.log(\"heartbeat_interval\", {\n                            client_id: ha.sessionID,\n                            interval: bb\n                        });\n                    }\n                ;\n                    this.heartbeats.push(ab);\n                }\n            ;\n                break;\n              default:\n                da.error(\"unknown_msg_type\", {\n                    type: ta\n                });\n                break;\n            };\n        },\n        _enter_init: function() {\n            if ((ja.init >= ca.getConfig(\"MAX_INIT_FAILS\", 2))) {\n                return this.exitState.bind(this, {\n                    status: k.ERROR_MAX,\n                    stateId: ia\n                }).defer()\n            };\n            this._initTimer = this.exitState.bind(this, {\n                status: k.ERROR,\n                stateId: ia\n            }, \"timeout\").defer(ha.IFRAME_LOAD_TIMEOUT, false);\n        },\n        _enter_reconnect: function(qa) {\n            var ra = ia;\n            if (!u.hasUserCookie()) {\n                da.warn(\"no_user_cookie\");\n                (function() {\n                    ca._shutdownHint = k.HINT_AUTH;\n                    ca.exitState({\n                        status: k.ERROR_SHUTDOWN,\n                        stateId: ra\n                    });\n                }).defer();\n                return;\n            }\n        ;\n            var sa = {\n                reason: qa,\n                fb_dtsg: o.fb_dtsg\n            };\n            if (o.fb_isb) {\n                sa.fb_isb = o.fb_isb;\n            };\n            if (ea) {\n                ea(sa);\n            };\n            var ta = new p(\"GET\", \"/ajax/presence/reconnect.php\", sa);\n            ta.onSuccess = (function() {\n                ca.configure(ta.json);\n                s.store();\n                this.exitState({\n                    status: k.OK,\n                    stateId: ra\n                });\n            }).bind(this);\n            ta.onError = (function() {\n                var ua = (ta.json && ta.json.error);\n                if (((ta.errorType == h.TRANSPORT_ERROR) || (ta.errorType == h.PROXY_ERROR))) {\n                    this._shutdownHint = k.HINT_CONN;\n                };\n                if ((ua && (ua == 1356007))) {\n                    this._shutdownHint = k.HINT_MAINT;\n                }\n                 else if ((((ua == 1357001) || (ua == 1357004)) || (ua == 1348009))) {\n                    this._shutdownHint = k.HINT_AUTH;\n                }\n                 else this._shutdownHint = null;\n                \n            ;\n                this.exitState({\n                    status: (this._shutdownHint ? k.ERROR_SHUTDOWN : k.ERROR),\n                    stateId: ra\n                }, ta);\n            }).bind(this);\n            ta.send();\n        },\n        _enter_shutdown: function() {\n            i.inform(k.ON_SHUTDOWN, {\n                reason: this._shutdownHint\n            });\n        },\n        _exit_init: function(qa) {\n            if (this._initTimer) {\n                this._initTimer = clearTimeout(this._initTimer);\n            };\n            if ((qa == k.ERROR_MAX)) {\n                this._sendIframeError(k.reason_IFrameLoadGiveUp);\n            };\n        },\n        _exit_pull: function(qa) {\n            if ((qa == k.OK)) {\n                this.lastPullTime = Date.now();\n            };\n        },\n        _exit_ping: function(qa) {\n            if ((qa == k.OK)) {\n                var ra = (Date.now() - ((this.lastPullTime || o.start)));\n                if ((ra > ha.STALL_THRESHOLD)) {\n                    return k.ERROR_STALE\n                };\n            }\n        ;\n        },\n        _probeTest: function() {\n            ha.streamingCapable = false;\n            var qa = [], ra = {\n                mode: \"stream\",\n                format: \"json\"\n            }, sa = new x(\"/probe\").setDomain((ha.host + \".facebook.com\")).setPort(ha.port).setSecure(x().isSecure()).setQueryData(ra), ta = new h(\"GET\", sa);\n            ta.onJSON = function(ua, va) {\n                if (((ua && ua.json) && (ua.json.t === \"heartbeat\"))) {\n                    qa.push(Date.now());\n                    if ((qa.length >= 2)) {\n                        var wa = (qa[1] - qa[0]);\n                        if (((wa >= ha.PROBE_HEARTBEATS_INTERVAL_LOW) && (wa <= ha.PROBE_HEARTBEATS_INTERVAL_HIGH))) {\n                            ha.streamingCapable = true;\n                            da.log(\"switch_to_streaming\");\n                        }\n                    ;\n                        da.log(\"probe_ok\", {\n                            time: wa\n                        });\n                    }\n                ;\n                }\n            ;\n            };\n            ta.onSuccess = function(ua) {\n                if ((qa.length != 2)) {\n                    ha.streamingCapable = false;\n                    da.error(\"probe_error\", {\n                        error: (\"beats.length = \" + qa.length)\n                    });\n                }\n            ;\n            };\n            ta.onError = function(ua) {\n                ha.streamingCapable = false;\n                da.error(\"probe_error\", ua);\n            };\n            da.log(\"probe_request\");\n            ta.send();\n        }\n    };\n    e.exports = ca;\n    if (l.channelConfig) {\n        ca.configure(l.channelConfig);\n        if (/shutdown/.test(l.state)) {\n            ca._shutdownHint = k[l.reason];\n        };\n        ca.init(l.state, l.reason);\n    }\n;\n});\n__d(\"ChannelConnection\", [\"Arbiter\",\"copyProperties\",\"ChatConfig\",\"Run\",\"SystemEvents\",\"ChannelConstants\",\"ChannelManager\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"ChatConfig\"), j = b(\"Run\"), k = b(\"SystemEvents\"), l = b(\"ChannelConstants\"), m = b(\"ChannelManager\"), n = b(\"JSLogger\"), o = n.create(\"channel_connection\"), p = null, q = null, r = null, s = null, t = 0, u = h(new g(), {\n        CONNECTED: \"chat-connection/connected\",\n        RECONNECTING: \"chat-connection/reconnecting\",\n        SHUTDOWN: \"chat-connection/shutdown\",\n        MUTE_WARNING: \"chat-connection/mute\",\n        UNMUTE_WARNING: \"chat-connection/unmute\"\n    });\n    function v() {\n        if (q) {\n            clearTimeout(q);\n            q = null;\n        }\n    ;\n    };\n    function w() {\n        v();\n        o.log(\"unmute_warning\");\n        u.inform(u.UNMUTE_WARNING);\n    };\n    function x(ba) {\n        v();\n        q = w.defer(ba, false);\n        o.log(\"mute_warning\", {\n            time: ba\n        });\n        u.inform(u.MUTE_WARNING);\n    };\n    function y() {\n        if (r) {\n            clearTimeout(r);\n            r = null;\n        }\n    ;\n    };\n    function z(ba, ca) {\n        y();\n        if (((ba === l.ON_ENTER_STATE) && (((ca.nextState || ca.state)) === \"pull\"))) {\n            if ((s !== u.CONNECTED)) {\n                o.log(\"connected\");\n                var da = !s;\n                s = u.CONNECTED;\n                t = 0;\n                u.inform(u.CONNECTED, {\n                    init: da\n                });\n            }\n        ;\n        }\n         else if (((ba === l.ON_ENTER_STATE) && (((((ca.nextState || ca.state)) === \"ping\") || ((!ca.nextState && (ca.state === \"idle\"))))))) {\n            r = (function() {\n                var ea = null;\n                if (!(((ca.state === \"idle\") && !ca.nextState))) {\n                    ea = ((ca.delay || 0));\n                };\n                o.log(\"reconnecting\", {\n                    delay: ea\n                });\n                if (u.disconnected()) {\n                    o.log(\"reconnecting_ui\", {\n                        delay: ea\n                    });\n                };\n                s = u.RECONNECTING;\n                (((ca.state === \"idle\")) && t++);\n                if ((t > 1)) {\n                    u.inform(u.RECONNECTING, ea);\n                }\n                 else if ((!ca.nextState && (ca.state === \"idle\"))) {\n                    z(ba, ca);\n                }\n            ;\n            }).defer(500, false);\n        }\n         else if ((ba === l.ON_SHUTDOWN)) {\n            o.log(\"shutdown\", {\n                reason: ca.reason\n            });\n            s = u.SHUTDOWN;\n            t = 0;\n            u.inform(u.SHUTDOWN, ca.reason);\n        }\n        \n        \n    ;\n    };\n    function aa(ba) {\n        if (((m.state === \"ping\") || m.isShutdown())) {\n            return\n        };\n        o.log(\"reconnect\", {\n            now: ba\n        });\n        u.inform(u.RECONNECTING, 0);\n        if (!!ba) {\n            if ((p !== null)) {\n                clearTimeout(p);\n                p = null;\n            }\n        ;\n            m.enterState(\"ping!\");\n        }\n         else if (!p) {\n            p = setTimeout(function() {\n                m.enterState(\"ping!\");\n                p = null;\n            }, i.get(\"channel_manual_reconnect_defer_msec\"), false);\n        }\n    ;\n    };\n    if (m.isShutdown()) {\n        z(l.ON_SHUTDOWN, m._shutdownHint);\n    }\n     else z(l.ON_ENTER_STATE, {\n        state: m.state,\n        nextState: m.nextState,\n        delay: 0\n    });\n;\n    g.subscribe([l.ON_ENTER_STATE,l.ON_SHUTDOWN,], z);\n    k.subscribe(k.TIME_TRAVEL, function() {\n        aa();\n        x(i.get(\"mute_warning_time_msec\"));\n    });\n    j.onBeforeUnload(y, false);\n    h(u, {\n        disconnected: function() {\n            return ((s === u.SHUTDOWN) || ((((s === u.RECONNECTING) && !q) && (t > 1))));\n        },\n        isShutdown: function() {\n            return (s === u.SHUTDOWN);\n        },\n        reconnect: aa,\n        unmuteWarning: w\n    });\n    e.exports = u;\n});\n__d(\"ChatFavoriteList\", [\"AsyncRequest\",\"arrayContains\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"arrayContains\"), i = b(\"emptyFunction\"), j = false, k = [], l = [], m = false;\n    function n() {\n        var r = k.join(\",\");\n        new g(\"/ajax/chat/favorite_list.php\").setData({\n            favorite_list: r\n        }).setHandler(i).setErrorHandler(i).send();\n    };\n    function o(r) {\n        return r.toString();\n    };\n    function p(r) {\n        if ((k.length != r.length)) {\n            return true\n        };\n        for (var s = 0; (s < r.length); s++) {\n            if ((k[s] !== r[s].toString())) {\n                return true\n            };\n        };\n        return false;\n    };\n    var q = {\n        isEditMode: function() {\n            var r = null;\n            d([\"ChatSidebar\",], function(s) {\n                r = s;\n            });\n            return ((j && r) && r.isEnabled());\n        },\n        toggleEditMode: function() {\n            j = !j;\n            if (j) {\n                l = k.slice();\n            };\n        },\n        get: function() {\n            if (j) {\n                return l.slice();\n            }\n             else return k.slice()\n        ;\n        },\n        isFavored: function(r) {\n            return h(l, r.toString());\n        },\n        init: function(r) {\n            k = r.slice().map(o);\n            l = k.slice();\n        },\n        toggleID: function(r) {\n            if (!j) {\n                return\n            };\n            r = r.toString();\n            var s = l.indexOf(r);\n            if ((s >= 0)) {\n                l.splice(s, 1);\n            }\n             else l.push(r);\n        ;\n            m = true;\n        },\n        hasChanged: function() {\n            if (m) {\n                m = false;\n                return true;\n            }\n        ;\n            return false;\n        },\n        updateList: function(r) {\n            if (!j) {\n                return\n            };\n            l = r.map(o);\n        },\n        save: function() {\n            if (p(l)) {\n                k = l;\n                n();\n            }\n        ;\n        }\n    };\n    e.exports = q;\n});\n__d(\"ChatContexts\", [], function(a, b, c, d, e, f) {\n    var g = {\n    };\n    function h(k) {\n        var l = (k ? k.subtext : \"\");\n        return l;\n    };\n    function i(k, l) {\n        g[k] = l;\n    };\n    var j = {\n        get: function(k) {\n            if ((k in g)) {\n                return g[k];\n            }\n             else return null\n        ;\n        },\n        update: function(k) {\n            for (var l in k) {\n                i(l, k[l]);;\n            };\n        },\n        getShortDisplay: function(k) {\n            return h(j.get(k));\n        }\n    };\n    e.exports = j;\n});\n__d(\"LastMobileActiveTimes\", [\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"tx\"), h = 0, i = {\n    };\n    function j(n) {\n        if ((!h || !n)) {\n            return \"\"\n        };\n        var o = (h - n), p = Math.floor((o / 60)), q = Math.floor((p / 60)), r = Math.floor((q / 24));\n        if ((p <= 1)) {\n            return g._(\"{count}m\", {\n                count: 1\n            });\n        }\n         else if ((p < 60)) {\n            return g._(\"{count}m\", {\n                count: p\n            });\n        }\n         else if ((q < 24)) {\n            return g._(\"{count}h\", {\n                count: q\n            });\n        }\n         else if ((r < 3)) {\n            return g._(\"{count}d\", {\n                count: r\n            });\n        }\n         else return \"\"\n        \n        \n        \n    ;\n    };\n    function k(n, o) {\n        i[n] = o;\n    };\n    function l(n) {\n        if ((n in i)) {\n            return i[n];\n        }\n         else return 0\n    ;\n    };\n    var m = {\n        update: function(n, o) {\n            h = (o / 1000);\n            for (var p in n) {\n                k(p, n[p]);;\n            };\n        },\n        getShortDisplay: function(n) {\n            return j(l(n));\n        }\n    };\n    e.exports = m;\n});\n__d(\"ServerTime\", [\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"PresenceInitialData\"), h;\n    function i(k) {\n        h = (Date.now() - k);\n    };\n    i(g.serverTime);\n    var j = {\n        get: function() {\n            return (Date.now() - h);\n        },\n        getSkew: function() {\n            return h;\n        },\n        update: function(k) {\n            i(k);\n        }\n    };\n    e.exports = j;\n});\n__d(\"PresenceStatus\", [\"AvailableListConstants\",\"ChatConfig\",\"ChatVisibility\",\"Env\",\"PresencePrivacy\",\"ServerTime\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"ChatConfig\"), i = b(\"ChatVisibility\"), j = b(\"Env\"), k = b(\"PresencePrivacy\"), l = b(\"ServerTime\"), m = b(\"createObjectFrom\"), n = {\n    }, o = {\n    }, p = {\n    }, q = {\n    }, r = {\n        resetPresenceData: function() {\n            n = {\n            };\n            q = {\n            };\n            p = {\n            };\n        },\n        reset: function() {\n            r.resetPresenceData();\n            o = {\n            };\n        },\n        get: function(s) {\n            if ((s == j.user)) {\n                return (i.isOnline() ? g.ACTIVE : g.OFFLINE)\n            };\n            var t = g.OFFLINE;\n            if ((s in n)) {\n                t = n[s];\n            };\n            if (!k.allows(s)) {\n                t = g.OFFLINE;\n            };\n            if ((t == g.OFFLINE)) {\n                if (o[s]) {\n                    t = g.MOBILE;\n                }\n            };\n            return t;\n        },\n        getGroup: function(s) {\n            if (!h.get(\"chat_group_presence\", 0)) {\n                return g.OFFLINE\n            };\n            return (s.some(function(t) {\n                if ((t == j.user)) {\n                    return false\n                };\n                return ((r.get(t) === g.ACTIVE));\n            }) ? g.ACTIVE : g.OFFLINE);\n        },\n        set: function(s, t, u, v) {\n            if ((s == j.user)) {\n                return false\n            };\n            switch (t) {\n              case g.OFFLINE:\n            \n              case g.IDLE:\n            \n              case g.ACTIVE:\n            \n              case g.MOBILE:\n                break;\n              default:\n                return false;\n            };\n            var w = (r.get(s) != t);\n            if (u) {\n                p[s] = l.get();\n                q[s] = v;\n            }\n        ;\n            n[s] = t;\n            return w;\n        },\n        setMobileFriends: function(s) {\n            o = m(s);\n        },\n        getOnlineIDs: function() {\n            var s, t = [];\n            for (s in n) {\n                if ((r.get(s) === g.ACTIVE)) {\n                    t.push(s);\n                };\n            };\n            return t;\n        },\n        getAvailableIDs: function() {\n            var s = r.getOnlineIDs(), t;\n            for (t in o) {\n                if (n[t]) {\n                    continue;\n                };\n                s.push(t);\n            };\n            return s;\n        },\n        getOnlineCount: function() {\n            return r.getOnlineIDs().length;\n        },\n        getPresenceStats: function() {\n            var s = 0, t = 0, u = 0, v = 0, w = 0;\n            for (var x in n) {\n                s += 1;\n                switch (r.get(x)) {\n                  case g.OFFLINE:\n                    t += 1;\n                    break;\n                  case g.IDLE:\n                    u += 1;\n                    break;\n                  case g.ACTIVE:\n                    v += 1;\n                    break;\n                  case g.MOBILE:\n                    w += 1;\n                    break;\n                  default:\n                    break;\n                };\n            };\n            return {\n                total: s,\n                offline: t,\n                idle: u,\n                active: v,\n                mobile: w\n            };\n        },\n        getDebugInfo: function(s) {\n            return {\n                id: s,\n                presence: n[s],\n                overlaySource: q[s],\n                overlayTime: p[s],\n                mobile: o[s]\n            };\n        }\n    };\n    e.exports = r;\n});\n__d(\"PresencePoller\", [\"AvailableListConstants\",\"AvailableListInitialData\",\"BanzaiODS\",\"ChannelConnection\",\"ChatContexts\",\"ChatFavoriteList\",\"ChatVisibility\",\"Env\",\"JSLogger\",\"LastMobileActiveTimes\",\"Poller\",\"PresenceStatus\",\"PresenceUtil\",\"ServerTime\",\"ShortProfiles\",\"UserActivity\",\"copyProperties\",\"debounceAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"AvailableListInitialData\"), i = b(\"BanzaiODS\"), j = b(\"ChannelConnection\"), k = b(\"ChatContexts\"), l = b(\"ChatFavoriteList\"), m = b(\"ChatVisibility\"), n = b(\"Env\"), o = b(\"JSLogger\"), p = b(\"LastMobileActiveTimes\"), q = b(\"Poller\"), r = b(\"PresenceStatus\"), s = b(\"PresenceUtil\"), t = b(\"ServerTime\"), u = b(\"ShortProfiles\"), v = b(\"UserActivity\"), w = b(\"copyProperties\"), x = b(\"debounceAcrossTransitions\"), y = 5, z = \"/ajax/chat/buddy_list.php\", aa = 1800000, ba = h.pollInterval, ca = h.lazyPollInterval, da = h.lazyThreshold, ea = o.create(\"available_list\"), fa = \"presence_poller\";\n    function ga(ha) {\n        this.$PresencePoller0 = ha;\n        this.$PresencePoller1 = false;\n        this.$PresencePoller2 = h.chatNotif;\n        this.$PresencePoller3 = new q({\n            interval: ba,\n            setupRequest: this.$PresencePoller4.bind(this),\n            clearOnQuicklingEvents: false,\n            dontStart: true\n        });\n        this.$PresencePoller5 = Date.now();\n        this.$PresencePoller6 = Date.now();\n        this.$PresencePoller7 = Date.now();\n        this.$PresencePoller8 = h.updateTime;\n        this.$PresencePoller9 = false;\n        this.$PresencePollera = 0;\n        if (h.favoriteList) {\n            l.init(h.favoriteList);\n        };\n        this.$PresencePollerb(\"available_initial_data\", h.updateTime, h.availableList, h.lastActiveTimes, h.mobileFriends);\n        v.subscribe(function(ia, ja) {\n            if ((ja.idleness > ba)) {\n                this.forceUpdate();\n            };\n        }.bind(this));\n    };\n    ga.prototype.start = function() {\n        this.$PresencePoller3.start.bind(this.$PresencePoller3).defer();\n    };\n    ga.prototype.forceUpdate = function() {\n        if (!this.$PresencePoller9) {\n            this.$PresencePoller3.request();\n        };\n    };\n    ga.prototype.getIsUserIdle = function() {\n        return this.$PresencePoller1;\n    };\n    ga.prototype.getWebChatNotification = function() {\n        return this.$PresencePoller2;\n    };\n    ga.prototype.getCallback = function() {\n        return this.$PresencePoller0;\n    };\n    ga.prototype.$PresencePollerc = function() {\n        return x(function() {\n            this.$PresencePoller0(g.ON_AVAILABILITY_CHANGED);\n        }.bind(this), 0)();\n    };\n    ga.prototype.$PresencePollerb = function(ha, ia, ja, ka, la) {\n        this.$PresencePoller8 = ia;\n        if (!Array.isArray(ja)) {\n            r.resetPresenceData();\n            for (var ma in ja) {\n                r.set(ma, ja[ma].a, false, ha);;\n            };\n        }\n    ;\n        if (ka) {\n            p.update(ka, ia);\n        };\n        if (la) {\n            r.setMobileFriends(la);\n        };\n        this.$PresencePollerc();\n    };\n    ga.prototype.$PresencePoller4 = function(ha) {\n        if ((j.isShutdown() || !m.isOnline())) {\n            this.$PresencePoller3.skip();\n            i.bumpEntityKey(fa, \"skip.offline\");\n            return;\n        }\n    ;\n        if (((Date.now() - this.$PresencePoller5) < ba)) {\n            this.$PresencePoller3.skip();\n            i.bumpEntityKey(fa, \"skip.recent\");\n            return;\n        }\n    ;\n        i.bumpEntityKey(fa, \"request\");\n        this.$PresencePoller5 = Date.now();\n        var ia = (((Date.now() - this.$PresencePoller7) > aa)), ja = u.getCachedProfileIDs().join(\",\");\n        this.$PresencePoller9 = true;\n        ha.setHandler(this.$PresencePollerd.bind(this)).setErrorHandler(this.$PresencePollere.bind(this)).setOption(\"suppressErrorAlerts\", true).setOption(\"retries\", 1).setData({\n            user: n.user,\n            cached_user_info_ids: ja,\n            fetch_mobile: ia\n        }).setURI(z).setAllowCrossPageTransition(true);\n    };\n    ga.prototype.$PresencePollerd = function(ha) {\n        var ia = ha.getPayload(), ja = ia.buddy_list;\n        if (!ja) {\n            this.$PresencePollere(ha);\n            return;\n        }\n    ;\n        i.bumpEntityKey(fa, \"response\");\n        this.$PresencePoller9 = false;\n        this.$PresencePollerf();\n        this.$PresencePoller6 = Date.now();\n        t.update(ia.time);\n        this.$PresencePollera = 0;\n        this.$PresencePollerg();\n        var ka = ja.userInfos;\n        if (ka) {\n            u.setMulti(ka);\n        };\n        var la = ja.chatContexts;\n        (la && k.update(la));\n        this.$PresencePoller1 = ja.userIsIdle;\n        if ((ja.chatNotif !== undefined)) {\n            this.$PresencePoller2 = ja.chatNotif;\n            this.$PresencePoller0(g.ON_CHAT_NOTIFICATION_CHANGED, this.$PresencePoller2);\n        }\n    ;\n        this.$PresencePollerb(\"buddy_list_poller\", ia.time, ja.nowAvailableList, ja.last_active_times, ja.mobile_friends);\n    };\n    ga.prototype.$PresencePollere = function(ha) {\n        i.bumpEntityKey(fa, \"error\");\n        if (s.checkMaintenanceError(ha)) {\n            return\n        };\n        this.$PresencePoller9 = false;\n        this.$PresencePollera++;\n        if ((this.$PresencePollera++ >= y)) {\n            this.$PresencePoller0(g.ON_UPDATE_ERROR);\n        };\n    };\n    ga.prototype.$PresencePollerg = function() {\n        var ha = (v.isActive(da) ? ba : ca);\n        i.bumpEntityKey(fa, (\"period.\" + ha));\n        this.$PresencePoller3.setInterval(ha);\n    };\n    ga.prototype.$PresencePollerf = function() {\n        var ha = Date.now(), ia = (ha - this.$PresencePoller6);\n        ea.log(\"buddylist_presence_stats\", w({\n            duration: ia\n        }, r.getPresenceStats()));\n    };\n    e.exports = ga;\n});\n__d(\"AvailableList\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"AvailableListConstants\",\"ChannelImplementation\",\"ChannelConstants\",\"ChatConfig\",\"ChatFavoriteList\",\"JSLogger\",\"PresencePoller\",\"PresencePrivacy\",\"PresenceStatus\",\"ShortProfiles\",\"TypingDetector\",\"copyProperties\",\"debounceAcrossTransitions\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"AsyncRequest\"), j = b(\"AvailableListConstants\"), k = b(\"ChannelImplementation\").instance, l = b(\"ChannelConstants\"), m = b(\"ChatConfig\"), n = b(\"ChatFavoriteList\"), o = b(\"JSLogger\"), p = b(\"PresencePoller\"), q = b(\"PresencePrivacy\"), r = b(\"PresenceStatus\"), s = b(\"ShortProfiles\"), t = b(\"TypingDetector\"), u = b(\"copyProperties\"), v = b(\"debounceAcrossTransitions\"), w = b(\"emptyFunction\"), x = u({\n    }, j, h);\n    x.subscribe([j.ON_AVAILABILITY_CHANGED,j.ON_UPDATE_ERROR,], function(ea, fa) {\n        g.inform(ea, fa);\n    });\n    var y = v(function() {\n        x.inform(j.ON_AVAILABILITY_CHANGED);\n    }, 0);\n    function z(ea, fa, ga, ha) {\n        var ia = r.set(ea, fa, ga, ha);\n        if (ia) {\n            y();\n        };\n    };\n    function aa(ea) {\n        var fa = (ea.payload.availability || {\n        });\n        for (var ga in fa) {\n            z(ga, fa[ga], true, \"mercury_tabs\");;\n        };\n    };\n    function ba(ea) {\n        var fa = x.getDebugInfo(ea), ga = ((fa.presence == j.ACTIVE)), ha = new i(\"/ajax/mercury/tabs_presence.php\").setData({\n            target_id: ea,\n            to_online: ga,\n            presence_source: fa.overlaySource,\n            presence_time: fa.overlayTime\n        }).setHandler(aa).setErrorHandler(w).setAllowCrossPageTransition(true).send();\n    };\n    function ca(ea, fa) {\n        fa.chat_config = m.getDebugInfo();\n        fa.available_list_debug_info = {\n        };\n        x.getAvailableIDs().forEach(function(ga) {\n            fa.available_list_debug_info[ga] = x.getDebugInfo(ga);\n        });\n        fa.available_list_poll_interval = (x._poller && x._poller.getInterval());\n    };\n    var da = new p(function(event) {\n        x.inform(event);\n    });\n    u(x, {\n        get: function(ea) {\n            return r.get(ea);\n        },\n        updateForID: function(ea) {\n            ba(ea);\n        },\n        getWebChatNotification: function() {\n            return da.getWebChatNotification();\n        },\n        isUserIdle: function() {\n            return da.getIsUserIdle();\n        },\n        isReady: function() {\n            return true;\n        },\n        set: function(ea, fa, ga) {\n            z(ea, fa, true, ga);\n        },\n        update: function() {\n            da.forceUpdate();\n        },\n        isIdle: function(ea) {\n            return (x.get(ea) == j.IDLE);\n        },\n        getOnlineIDs: function() {\n            return r.getOnlineIDs();\n        },\n        getAvailableIDs: function() {\n            return r.getAvailableIDs();\n        },\n        getOnlineCount: function() {\n            return r.getOnlineCount();\n        },\n        getDebugInfo: function(ea) {\n            var fa = r.getDebugInfo(ea), ga = s.getNow(ea);\n            if (ga) {\n                fa.name = ga.name;\n            };\n            return fa;\n        }\n    });\n    da.start();\n    g.subscribe(o.DUMP_EVENT, ca);\n    g.subscribe(l.getArbiterType(\"favorite_list\"), function(ea, fa) {\n        var ga = fa.obj, ha = (ga.value ? ga.value.split(\",\") : []);\n        n.init(ha);\n        y();\n    });\n    q.subscribe([\"privacy-changed\",\"privacy-availability-changed\",\"privacy-user-presence-response\",], y);\n    k.subscribe([k.CONNECTED,k.RECONNECTING,k.SHUTDOWN,k.MUTE_WARNING,k.UNMUTE_WARNING,], y);\n    g.subscribe(l.getArbiterType(\"buddylist_overlay\"), function(ea, fa) {\n        var ga = fa.obj.overlay;\n        for (var ha in ga) {\n            x.set(ha, ga[ha].a, (ga[ha].s || \"channel\"));;\n        };\n    });\n    g.subscribe([l.getArbiterType(\"typ\"),l.getArbiterType(\"ttyp\"),], function(ea, fa) {\n        var ga = fa.obj;\n        if ((ga.st === t.TYPING)) {\n            var ha = ga.from;\n            x.set(ha, j.ACTIVE, \"channel-typing\");\n        }\n    ;\n    });\n    a.AvailableList = e.exports = x;\n});\n__d(\"ChatImpressionLogger\", [\"AvailableList\",\"AsyncSignal\",\"ChatConfig\",\"ChatVisibility\",\"Poller\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableList\"), h = b(\"AsyncSignal\"), i = b(\"ChatConfig\"), j = b(\"ChatVisibility\"), k = b(\"Poller\"), l = null, m = null, n = {\n        init: function(o) {\n            l = o;\n            var p = i.get(\"chat_impression_logging_periodical\", 0);\n            if (p) {\n                var q = i.get(\"periodical_impression_logging_config.interval\");\n                m = new k({\n                    interval: q,\n                    setupRequest: this.logImps.bind(this),\n                    clearOnQuicklingEvents: false\n                });\n            }\n        ;\n            this.init = function() {\n            \n            };\n        },\n        logImps: function(o) {\n            if (!j.isOnline()) {\n                return\n            };\n            var p = {\n                source: \"periodical_imps\"\n            }, q = l.getCachedSortedList(), r = [];\n            for (var s = 0; (s < q.length); s++) {\n                r[s] = g.get(q[s]);;\n            };\n            p.sorted_list = q.toString();\n            p.list_availability = r.toString();\n            o.setURI(\"/ajax/chat/imps_logging.php\").setData(p);\n        },\n        getOrderedList: function() {\n            return l;\n        },\n        logImpressions: function(o) {\n            var p = [], q = [];\n            if (i.get(\"chat_impression_logging_with_click\")) {\n                p = l.getCachedSortedList();\n                for (var r = 0; (r < p.length); r++) {\n                    q[r] = g.get(p[r]);;\n                };\n            }\n        ;\n            o.sorted_list = p.toString();\n            o.list_availability = q.toString();\n            new h(\"/ajax/chat/ct.php\", o).send();\n        }\n    };\n    e.exports = n;\n});\n__d(\"ChatTypeaheadConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        USER_TYPE: \"user\",\n        THREAD_TYPE: \"thread\",\n        FRIEND_TYPE: \"friend\",\n        NON_FRIEND_TYPE: \"non_friend\",\n        HEADER_TYPE: \"header\"\n    };\n    e.exports = g;\n});\n__d(\"Chat\", [\"Arbiter\",\"AvailableList\",\"ChatImpressionLogger\",\"ChatTypeaheadConstants\",\"MercuryParticipantTypes\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AvailableList\"), i = b(\"ChatImpressionLogger\"), j = b(\"ChatTypeaheadConstants\"), k = b(\"MercuryParticipantTypes\");\n    function l(q, r) {\n        var s = (r && r.source);\n        if ((((((((s && (s === \"ordered_list\")) || (s === \"more_online_friends\")) || (s === \"online_friends\")) || (s === \"recent_threads_in_divebar_new\")) || (s === \"recent_threads_in_divebar\")) || (s === \"presence\")) || (s === \"typeahead\"))) {\n            r.viewport_width = document.body.clientWidth;\n            r.target = q;\n            r.target_presence = h.get(q);\n            i.logImpressions(r);\n        }\n    ;\n    };\n    var m = {\n        buddyListNub: \"buddylist-nub/initialized\",\n        sidebar: \"sidebar/initialized\"\n    };\n    function n(q, r) {\n        g.subscribe(m[q], function(event, s) {\n            r(s);\n        });\n    };\n    function o() {\n        return (((Math.random() * 2147483648) | 0)).toString(16);\n    };\n    var p = {\n        openTab: function(q, r, s) {\n            if (((window.External && window.External.Chat) && window.External.Chat.openWindow)) {\n                window.External.Chat.openWindow(q);\n            };\n            l.curry(q, s).defer();\n            d([\"MercuryThreads\",], function(t) {\n                if ((((!r || (r === k.FRIEND)) || (r === j.FRIEND_TYPE)) || (r === j.USER_TYPE))) {\n                    var u = t.get().getCanonicalThreadToUser(q), v = o();\n                    g.inform(\"chat/open-tab\", {\n                        thread_id: u.thread_id,\n                        signature_id: v\n                    });\n                    return;\n                }\n            ;\n                if ((r === j.THREAD_TYPE)) {\n                    d([\"ChatOpenTab\",], function(w) {\n                        if (q) {\n                            w.openThread(q);\n                        }\n                         else w.openEmptyTab();\n                    ;\n                    });\n                };\n            });\n        },\n        openBuddyList: function() {\n            n(\"buddyListNub\", function(q) {\n                q.show();\n                n(\"sidebar\", function(r) {\n                    r.enable();\n                });\n            });\n        },\n        closeBuddyList: function() {\n            n(\"buddyListNub\", function(q) {\n                q.hide();\n            });\n        },\n        toggleSidebar: function() {\n            n(\"sidebar\", function(q) {\n                q.toggle();\n            });\n        },\n        goOnline: function(q) {\n            d([\"ChatVisibility\",], function(r) {\n                r.goOnline(q);\n            });\n        },\n        isOnline: function() {\n            var q = null;\n            d([\"ChatVisibility\",], function(r) {\n                q = r;\n            });\n            return (q && q.isOnline());\n        }\n    };\n    a.Chat = e.exports = p;\n}, 3);\n__d(\"OrderedFriendsList\", [\"AvailableList\",\"ChatConfig\",\"createArrayFrom\",\"ShortProfiles\",\"InitialChatFriendsList\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableList\"), h = b(\"ChatConfig\"), i = b(\"createArrayFrom\"), j = b(\"ShortProfiles\"), k = [], l = {\n    }, m = [], n = {\n        contains: function(o) {\n            return (o in l);\n        },\n        compare: function(o, p) {\n            var q = n.getRank(o), r = n.getRank(p);\n            if ((q !== r)) {\n                return (q - r)\n            };\n            var s = j.getNowUnsafe(o), t = j.getNowUnsafe(p), u = ((((s || {\n            })).name || \"~\")).toLowerCase(), v = ((((t || {\n            })).name || \"~\")).toLowerCase();\n            if ((u !== v)) {\n                return ((u < v) ? -1 : 1)\n            };\n            return 0;\n        },\n        getList: function() {\n            if (h.get(\"chat_web_ranking_with_presence\")) {\n                n.reRank();\n            };\n            var o = i(k);\n            o = o.filter(function(p) {\n                var q = j.getNowUnsafe(p);\n                return (!q || (q.type == \"friend\"));\n            });\n            return o;\n        },\n        getRank: function(o) {\n            return ((o in l) ? l[o] : k.length);\n        },\n        reRank: function() {\n            var o = {\n            }, p = {\n            };\n            m.forEach(function(r, s) {\n                var t = r.substr(0, (r.length - 2)), u = r.substring((r.length - 1));\n                if ((typeof (p.uid) == \"undefined\")) {\n                    if ((typeof (o.uid) == \"undefined\")) {\n                        o[t] = g.get(t);\n                    };\n                    var v = o[t];\n                    if ((v == u)) {\n                        p[s] = t;\n                    };\n                }\n            ;\n            });\n            k = [];\n            for (var q in p) {\n                k.push(p[q]);;\n            };\n            k.forEach(function(r, s) {\n                l[r] = s;\n            });\n        }\n    };\n    (function() {\n        var o = b(\"InitialChatFriendsList\");\n        k = (o.list.length ? o.list : []);\n        if (h.get(\"chat_web_ranking_with_presence\")) {\n            m = k.slice();\n            n.reRank();\n        }\n    ;\n        k.forEach(function(p, q) {\n            l[p] = q;\n        });\n    })();\n    e.exports = (a.OrderedFriendsList || n);\n});\n__d(\"ChatSidebarConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        LITESTAND_IMAGE_SIZE: 24,\n        LITESTAND_BLENDED_SIZE: 32,\n        IMAGE_SIZE: 28\n    };\n    e.exports = g;\n});\n__d(\"ChatTypeaheadBehavior\", [\"Chat\",\"ChatConfig\",\"ChatFavoriteList\",\"CSS\",\"DOM\",\"Rect\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Chat\"), h = b(\"ChatConfig\"), i = b(\"ChatFavoriteList\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Rect\"), m = b(\"copyProperties\"), n = b(\"tx\");\n    function o(p) {\n        this._typeahead = p;\n    };\n    m(o.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            var p = this._typeahead;\n            this._subscriptions = [p.subscribe(\"focus\", function() {\n                p.getData().refreshData();\n            }),p.subscribe(\"blur\", function(q) {\n                p.getCore().reset();\n            }),p.subscribe(\"respond\", function(q, r) {\n                if ((r.value && (r.value === p.getCore().getValue()))) {\n                    if (!r.results.length) {\n                        var s = h.get(\"divebar_typeahead_group_fof\", 0);\n                        if ((s && !r.isAsync)) {\n                            return\n                        };\n                        var t = k.create(\"div\", {\n                            className: \"noResults\"\n                        }, \"Friend not found.\");\n                        k.setContent(p.getView().getElement(), t);\n                    }\n                ;\n                    j.addClass(p.getElement(), \"hasValue\");\n                }\n            ;\n            }),p.subscribe(\"reset\", function() {\n                j.removeClass(p.getElement(), \"hasValue\");\n            }),p.subscribe(\"select\", function(q, r) {\n                if (i.isEditMode()) {\n                    i.toggleID(r.selected.uid);\n                    i.save();\n                }\n                 else {\n                    var s = j.hasClass(document.documentElement, \"sidebarMode\"), t = {\n                        mode: (s ? \"sidebar\" : \"chatNub\"),\n                        source: \"typeahead\",\n                        type: r.selected.type,\n                        typeahead: true\n                    };\n                    g.openTab(r.selected.uid, r.selected.type, t);\n                }\n            ;\n            }),p.subscribe(\"highlight\", function(q, r) {\n                if ((r.index >= 0)) {\n                    var s = p.getView().getItems()[r.index];\n                    if (s) {\n                        var t = new l(s), u = s.offsetParent, v = t.boundWithin(new l(u)).getPositionVector();\n                        t.getPositionVector().sub(v).scrollElementBy(u);\n                    }\n                ;\n                }\n            ;\n            }),];\n        },\n        disable: function() {\n            this._subscriptions.forEach(function(p) {\n                this._typeahead.unsubscribe(p);\n            }.bind(this));\n            this._subscriptions = null;\n        }\n    });\n    e.exports = o;\n});\n__d(\"ChatTypeaheadCore\", [\"function-extensions\",\"Class\",\"Event\",\"Keys\",\"TypeaheadCore\",\"copyProperties\",\"emptyFunction\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Class\"), h = b(\"Event\"), i = b(\"Keys\"), j = b(\"TypeaheadCore\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\"), m = b(\"shield\");\n    function n(o) {\n        this.parent.construct(this, o);\n    };\n    g.extend(n, j);\n    k(n.prototype, {\n        init: function(o, p, q) {\n            this.parent.init(o, p, q);\n            this.informBeginActive = false;\n            this.informEndActive = false;\n            this.data.subscribe(\"respond\", function() {\n                if (this.informBeginActive) {\n                    this.informBeginActive = false;\n                    this.inform(\"sidebar/typeahead/active\", true);\n                }\n                 else if (this.informEndActive) {\n                    this.informEndActive = false;\n                    this.inform(\"sidebar/typeahead/active\", false);\n                }\n                \n            ;\n            }.bind(this));\n        },\n        handleTab: l,\n        keydown: function(event) {\n            var o = h.getKeyCode(event);\n            if ((o === i.ESC)) {\n                m(this.reset, this).defer();\n                return event.kill();\n            }\n        ;\n            return this.parent.keydown(event);\n        },\n        checkValue: function() {\n            var o = this.getValue(), p = this.value;\n            if ((o == p)) {\n                return\n            };\n            if ((p && !o)) {\n                this.typeaheadActive = false;\n                this.informEndActive = true;\n            }\n             else if ((!p && o)) {\n                this.typeaheadActive = true;\n                this.informBeginActive = true;\n                this.inform(\"sidebar/typeahead/preActive\");\n            }\n            \n        ;\n            this.parent.checkValue();\n        }\n    });\n    e.exports = n;\n});\n__d(\"ChatTypeaheadDataSource\", [\"Class\",\"DataSource\",\"Env\",\"JSLogger\",\"MercuryParticipantTypes\",\"OrderedFriendsList\",\"Run\",\"ShortProfiles\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DataSource\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"MercuryParticipantTypes\"), l = b(\"OrderedFriendsList\"), m = b(\"Run\"), n = b(\"ShortProfiles\"), o = b(\"copyProperties\");\n    function p(q) {\n        q = (q || {\n        });\n        q.kanaNormalization = true;\n        this.parent.construct(this, q);\n        this.persistOnRefresh = (q.persistOnRefresh !== false);\n        this.showOfflineUsers = !!q.showOfflineUsers;\n        this._jslog = j.create(\"chat_typeahead\");\n        this._jslog.log(\"created\");\n    };\n    g.extend(p, h);\n    o(p.prototype, {\n        init: function() {\n            this._jslog.log(\"init\");\n            this.parent.init();\n            this._update();\n        },\n        bootstrap: function() {\n            this._jslog.log(\"bootstrap\");\n            this.parent.bootstrap();\n            if (this.showOfflineUsers) {\n                this._jslog.log(\"show_offline_users\");\n                this._jslog.log(\"ensured_short_profiles\");\n                if (n.hasAll()) {\n                    this._update();\n                }\n                 else {\n                    this._jslog.log(\"fetch_all_short_profiles\");\n                    n.fetchAll();\n                    this.inform(\"activity\", {\n                        activity: true\n                    });\n                    var q = n.subscribe(\"updated\", function() {\n                        this.inform(\"activity\", {\n                            activity: false\n                        });\n                        this._update();\n                    }.bind(this));\n                    if (!this.persistOnRefresh) {\n                        m.onLeave(function() {\n                            n.unsubscribe(q);\n                        });\n                    };\n                }\n            ;\n            }\n        ;\n        },\n        _update: function() {\n            d([\"AvailableList\",], function(q) {\n                var r = this.value;\n                this.dirty();\n                var s = n.getCachedProfileIDs(), t = s.filter(function(v) {\n                    var w = n.getNow(v);\n                    return (w.type === k.FRIEND);\n                });\n                t.sort(l.compare);\n                var u = [];\n                t.forEach(function(v) {\n                    if ((v == i.user)) {\n                        return\n                    };\n                    var w = q.get(v);\n                    if ((!this.showOfflineUsers && (w !== q.ACTIVE))) {\n                        return\n                    };\n                    var x = n.getNow(v), y = x.additionalName;\n                    if (x.hasOwnProperty(\"searchTokens\")) {\n                        y = ((y !== null) ? ((y + \" \") + x.searchTokens.join(\" \")) : x.searchTokens.join(\" \"));\n                    };\n                    u.push({\n                        uid: v,\n                        text: x.name,\n                        tokens: y,\n                        localized_text: x.name,\n                        additional_text: x.additionalName,\n                        photo: x.thumbSrc,\n                        type: x.type\n                    });\n                }.bind(this));\n                if (u.length) {\n                    this.addEntries(u);\n                };\n                this.value = r;\n                if (r) {\n                    this.query(r);\n                };\n            }.bind(this));\n        },\n        refreshData: function() {\n            d([\"AvailableList\",], function(q) {\n                q.update();\n            }.bind(this));\n        }\n    });\n    e.exports = p;\n});\n__d(\"ChatSidebarHeader.react\", [\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"cx\"), i = g.createClass({\n        displayName: \"ReactChatSidebarHeader\",\n        render: function() {\n            return (g.DOM.div({\n                className: \"_55ob\"\n            }, g.DOM.div({\n                className: \"_55oc\"\n            }, this.props.name)));\n        }\n    });\n    e.exports = i;\n});\n__d(\"ChatSidebarItem.react\", [\"AvailableListConstants\",\"ChatConfig\",\"ChatFavoriteList\",\"ChatSidebarConstants\",\"Image.react\",\"Link.react\",\"React\",\"SplitImage.react\",\"cx\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"ChatConfig\"), i = b(\"ChatFavoriteList\"), j = b(\"ChatSidebarConstants\"), k = b(\"Image.react\"), l = b(\"Link.react\"), m = b(\"React\"), n = b(\"SplitImage.react\"), o = b(\"cx\"), p = b(\"ix\"), q = 9, r = m.createClass({\n        displayName: \"ChatSidebarItem\",\n        render: function() {\n            var s = ((((\"_55ln\") + ((this.props.context ? (\" \" + \"_55lo\") : \"\"))) + (((this.props.unreadCount && h.get(\"litestand_buddylist_count\")) ? (\" \" + \"_5bom\") : \"\")))), t;\n            if (this.props.litestandSidebar) {\n                t = m.DOM.div({\n                    \"aria-label\": this.props.name,\n                    className: \"_4_vf\",\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-position\": \"right\"\n                });\n            };\n            return (l({\n                className: s,\n                href: this.props.href,\n                onClick: this.props.onClick,\n                rel: \"ignore\"\n            }, m.DOM.div({\n                className: \"_55lp\"\n            }, this.renderFavorite(), m.DOM.div({\n                className: \"_56p9\"\n            }, this.renderImage(), m.DOM.div({\n                className: \"_568w\"\n            })), m.DOM.div({\n                className: \"_5bon\"\n            }, this.renderUnreadCount(), this.renderStatus()), m.DOM.div({\n                className: \"_55lr\"\n            }, this.props.name), m.DOM.div({\n                className: \"_55ls\"\n            }, this.props.context)), t));\n        },\n        renderFavorite: function() {\n            if ((this.props.isAdded === undefined)) {\n                return null\n            };\n            var s = null;\n            if (this.props.litestandSidebar) {\n                s = (this.props.isAdded ? p(\"/images/litestand/bookmarks/sidebar/remove.png\") : p(\"/images/litestand/bookmarks/sidebar/add.png\"));\n            }\n             else s = (this.props.isAdded ? p(\"/images/chat/delete.png\") : p(\"/images/chat/add.png\"));\n        ;\n            var t = (((\"_568x\") + ((!this.props.showEditButton ? (\" \" + \"hidden_elem\") : \"\"))));\n            return (m.DOM.div({\n                className: t,\n                onClick: this.props.onEditClick\n            }, k({\n                className: \"_568y\",\n                src: s\n            })));\n        },\n        renderImage: function() {\n            var s = (this.props.imageSize || j.IMAGE_SIZE);\n            return n({\n                size: s,\n                srcs: this.props.images\n            });\n        },\n        renderUnreadCount: function() {\n            var s = this.props.unreadCount;\n            if ((!s || !h.get(\"litestand_buddylist_count\"))) {\n                return null\n            };\n            var t = (((\"_5boo\") + (((s > q) ? (\" \" + \"_5bop\") : \"\"))));\n            if ((s > q)) {\n                s = (q + \"+\");\n            };\n            return (m.DOM.div({\n                className: t\n            }, s));\n        },\n        renderStatus: function() {\n            var s = this.getStatusSrc();\n            if (!s) {\n                return null\n            };\n            if (((this.props.unreadCount && h.get(\"litestand_blended_sidebar\")) && h.get(\"litestand_buddylist_count\"))) {\n                return\n            };\n            var t = (h.get(\"divebar_favorite_list\", 0) && i.isEditMode());\n            if (t) {\n                return\n            };\n            return (m.DOM.div({\n                className: \"_568z\"\n            }, m.DOM.div({\n                className: \"_568-\"\n            }, this.props.statusTime), k({\n                className: \"_568_\",\n                src: s\n            })));\n        },\n        getStatusSrc: function() {\n            switch (this.props.status) {\n              case g.ACTIVE:\n            \n              case g.IDLE:\n                if (this.props.litestandSidebar) {\n                    return (h.get(\"litestand_blended_sidebar\") ? p(\"/images/litestand/sidebar/blended/online.png\") : p(\"/images/litestand/sidebar/online.png\"))\n                };\n                return p(\"/images/chat/status/online.png\");\n              case g.MOBILE:\n                if (this.props.litestandSidebar) {\n                    return (h.get(\"litestand_blended_sidebar\") ? p(\"/images/litestand/sidebar/blended/pushable.png\") : p(\"/images/litestand/sidebar/pushable.png\"))\n                };\n                return p(\"/images/chat/status/mobile.png\");\n            };\n            return null;\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatSidebarThread.react\", [\"ChatSidebarItem.react\",\"WebMessengerPermalinkConstants\",\"React\",\"MercuryThreadMetadataRawRenderer\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatSidebarItem.react\"), h = b(\"WebMessengerPermalinkConstants\"), i = b(\"React\"), j = b(\"MercuryThreadMetadataRawRenderer\"), k = i.createClass({\n        displayName: \"ChatSidebarThread\",\n        render: function() {\n            var n = this.props.name, o = l(this.props.threadID, this.props.participants), p = (n ? o : undefined), q = h.getURIPathForThreadID(this.props.threadID), r = m(this.props.image, this.props.participants), s = (n ? n : o);\n            return (g({\n                context: p,\n                href: {\n                    url: q\n                },\n                imageSize: this.props.imageSize,\n                images: r,\n                litestandSidebar: this.props.litestandSidebar,\n                name: s,\n                status: this.props.status,\n                unreadCount: this.props.unreadCount\n            }));\n        }\n    });\n    function l(n, o) {\n        return j.renderRawParticipantList(n, o, o.length, {\n            names_renderer: j.renderShortNames\n        });\n    };\n    function m(n, o) {\n        if (n) {\n            return n\n        };\n        return o.map(function(p) {\n            return p.image_src;\n        });\n    };\n    e.exports = k;\n});\n__d(\"ChatSidebarUser.react\", [\"ChatFavoriteList\",\"WebMessengerPermalinkConstants\",\"ChatConfig\",\"React\",\"ChatSidebarItem.react\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatFavoriteList\"), h = b(\"WebMessengerPermalinkConstants\"), i = b(\"ChatConfig\"), j = b(\"React\"), k = b(\"ChatSidebarItem.react\"), l = j.createClass({\n        displayName: \"ChatSidebarUser\",\n        render: function() {\n            var m = h.getURIPathForIDOrVanity(this.props.userID), n = g.isFavored(this.props.userID), o = function() {\n                g.toggleID(this.props.userID);\n            }.bind(this), p = (i.get(\"divebar_favorite_list\", 0) ? n : undefined);\n            return (k({\n                href: {\n                    url: m\n                },\n                imageSize: this.props.imageSize,\n                images: this.props.image,\n                litestandSidebar: this.props.litestandSidebar,\n                isAdded: p,\n                showEditButton: g.isEditMode(),\n                name: this.props.name,\n                onEditClick: o,\n                status: this.props.status,\n                statusTime: this.props.statusTime,\n                context: this.props.context\n            }));\n        }\n    });\n    e.exports = l;\n});\n__d(\"ChatTypeaheadRenderer\", [\"AvailableListConstants\",\"ChatConfig\",\"ChatSidebarConstants\",\"ChatSidebarHeader.react\",\"ChatSidebarThread.react\",\"ChatSidebarUser.react\",\"ChatTypeaheadConstants\",\"DOM\",\"LastMobileActiveTimes\",\"MercuryParticipants\",\"PresenceStatus\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"ChatConfig\"), i = b(\"ChatSidebarConstants\"), j = b(\"ChatSidebarHeader.react\"), k = b(\"ChatSidebarThread.react\"), l = b(\"ChatSidebarUser.react\"), m = b(\"ChatTypeaheadConstants\"), n = b(\"DOM\"), o = b(\"LastMobileActiveTimes\"), p = b(\"MercuryParticipants\"), q = b(\"PresenceStatus\"), r = b(\"React\"), s = {\n    };\n    function t(z, aa) {\n        if (!((z in s))) {\n            s[z] = n.create(\"li\");\n        };\n        r.renderComponent(aa, s[z]);\n        return s[z];\n    };\n    function u(z) {\n        return t(z.text, j({\n            name: z.text\n        }));\n    };\n    function v() {\n        if ((h.get(\"litestand\", 0) && !h.get(\"test_old_divebar\"))) {\n            return (h.get(\"litestand_blended_sidebar\") ? i.LITESTAND_BLENDED_SIZE : i.LITESTAND_IMAGE_SIZE)\n        };\n        return i.IMAGE_SIZE;\n    };\n    function w(z) {\n        var aa = z.mercury_thread.participants.map(function(ba) {\n            return p.getUserID(ba);\n        });\n        return t(z.uid, k({\n            image: z.mercury_thread.image_src,\n            imageSize: v(),\n            litestandSidebar: (h.get(\"litestand\", 0) && !h.get(\"test_old_divebar\")),\n            name: z.mercury_thread.name,\n            participants: z.participants_to_render,\n            status: q.getGroup(aa),\n            threadID: z.uid\n        }));\n    };\n    function x(z) {\n        var aa = q.get(z.uid), ba = (((aa === g.MOBILE)) ? o.getShortDisplay(z.uid) : null), ca = ((z.render_type == \"non_friend\") ? z.subtext : null);\n        return t(z.uid, l({\n            image: z.photo,\n            imageSize: v(),\n            litestandSidebar: h.get(\"litestand\", 0),\n            name: z.text,\n            status: aa,\n            statusTime: ba,\n            userID: z.uid,\n            context: ca\n        }));\n    };\n    function y(z, aa) {\n        if ((z.type === m.HEADER_TYPE)) {\n            return u(z)\n        };\n        if ((z.type == m.THREAD_TYPE)) {\n            return w(z)\n        };\n        return x(z);\n    };\n    e.exports = y;\n});\n__d(\"ChatTypeaheadView\", [\"BucketedTypeaheadView\",\"ChatConfig\",\"Class\",\"ChatTypeaheadConstants\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BucketedTypeaheadView\"), h = b(\"ChatConfig\"), i = b(\"Class\"), j = b(\"ChatTypeaheadConstants\"), k = b(\"copyProperties\"), l = b(\"tx\"), m = h.get(\"divebar_typeahead_group_fof\", 0);\n    function n(o, p) {\n        this.parent.construct(this, o, p);\n        this.typeObjects = {\n        };\n        this.typeObjectsOrder = [];\n        this.typeObjects[j.NON_FRIEND_TYPE] = {\n            uid: j.NON_FRIEND_TYPE,\n            type: j.HEADER_TYPE,\n            text: \"FRIENDS OF FRIENDS\"\n        };\n        this.typeObjectsOrder.push(j.NON_FRIEND_TYPE);\n        this.typeObjects[j.THREAD_TYPE] = {\n            uid: j.THREAD_TYPE,\n            type: j.HEADER_TYPE,\n            text: \"GROUP CONVERSATIONS\"\n        };\n        this.typeObjectsOrder.push(j.THREAD_TYPE);\n        this.typeObjects[j.FRIEND_TYPE] = {\n            disabled: true,\n            uid: j.FRIEND_TYPE,\n            type: j.HEADER_TYPE,\n            text: \"FRIENDS\"\n        };\n        this.typeObjectsOrder.push(j.FRIEND_TYPE);\n    };\n    i.extend(n, g);\n    k(n.prototype, {\n        buildBuckets: function(o, p) {\n            if (m) {\n                p = p.reverse();\n            };\n            p = this.parent.buildBuckets(o, p);\n            if (!m) {\n                p = p.filter(function(q) {\n                    return (q && !q.disabled);\n                });\n            };\n            return p;\n        },\n        getDefaultIndex: function(o) {\n            if (!m) {\n                return this.parent.getDefaultIndex(o)\n            };\n            if ((o.length === 0)) {\n                return -1\n            };\n            var p = (o.length - 1);\n            while ((!this.isHighlightable(o[p]) && (p >= 0))) {\n                p--;;\n            };\n            return p;\n        }\n    });\n    e.exports = n;\n});\n__d(\"legacy:ChatTypeaheadBehavior\", [\"ChatTypeaheadBehavior\",], function(a, b, c, d) {\n    var e = b(\"ChatTypeaheadBehavior\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    };\n    a.TypeaheadBehaviors.chatTypeahead = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"legacy:cookie\", [\"Cookie\",], function(a, b, c, d) {\n    var e = b(\"Cookie\");\n    a.getCookie = e.get;\n    a.setCookie = e.set;\n    a.clearCookie = e.clear;\n}, 3);\n__d(\"LayerHideOnSuccess\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._layer = i;\n    };\n    g(h.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"success\", this._layer.hide.bind(this._layer));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        }\n    });\n    e.exports = h;\n});\n__d(\"Overlay\", [\"Class\",\"CSS\",\"DataStore\",\"DOM\",\"Layer\",\"LayerButtons\",\"LayerDestroyOnHide\",\"LayerFadeOnHide\",\"LayerFadeOnShow\",\"LayerFormHooks\",\"LayerHideOnBlur\",\"LayerHideOnEscape\",\"LayerHideOnSuccess\",\"LayerHideOnTransition\",\"LayerTabIsolation\",\"LayerMouseHooks\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"Layer\"), l = b(\"LayerButtons\"), m = b(\"LayerDestroyOnHide\"), n = b(\"LayerFadeOnHide\"), o = b(\"LayerFadeOnShow\"), p = b(\"LayerFormHooks\"), q = b(\"LayerHideOnBlur\"), r = b(\"LayerHideOnEscape\"), s = b(\"LayerHideOnSuccess\"), t = b(\"LayerHideOnTransition\"), u = b(\"LayerTabIsolation\"), v = b(\"LayerMouseHooks\"), w = b(\"copyProperties\");\n    function x(y, z) {\n        y = w({\n            buildWrapper: true\n        }, (y || {\n        }));\n        this._shouldBuildWrapper = y.buildWrapper;\n        this.parent.construct(this, y, z);\n    };\n    g.extend(x, k);\n    w(x.prototype, {\n        _configure: function(y, z) {\n            this.parent._configure(y, z);\n            var aa = this.getRoot();\n            this._overlay = (j.scry(aa, \"div.uiOverlay\")[0] || aa);\n            h.hide(aa);\n            j.appendContent(this.getInsertParent(), aa);\n            i.set(this._overlay, \"overlay\", this);\n            var ba = i.get(this._overlay, \"width\");\n            (ba && this.setWidth(ba));\n            if (this.setFixed) {\n                this.setFixed((i.get(this._overlay, \"fixed\") == \"true\"));\n            };\n            if ((i.get(this._overlay, \"fadeonshow\") != \"false\")) {\n                this.enableBehavior(o);\n            };\n            if ((i.get(this._overlay, \"fadeonhide\") != \"false\")) {\n                this.enableBehavior(n);\n            };\n            if ((i.get(this._overlay, \"hideonsuccess\") != \"false\")) {\n                this.enableBehavior(s);\n            };\n            if ((i.get(this._overlay, \"hideonblur\") == \"true\")) {\n                this.enableBehavior(q);\n            };\n            if ((i.get(this._overlay, \"destroyonhide\") != \"false\")) {\n                this.enableBehavior(m);\n            };\n            return this;\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([l,p,v,r,t,u,]);\n        },\n        initWithoutBuildingWrapper: function() {\n            this._shouldBuildWrapper = false;\n            return this.init.apply(this, arguments);\n        },\n        _buildWrapper: function(y, z) {\n            z = this.parent._buildWrapper(y, z);\n            if (!this._shouldBuildWrapper) {\n                this._contentRoot = z;\n                return z;\n            }\n        ;\n            this._contentRoot = j.create(\"div\", {\n                className: \"uiOverlayContent\"\n            }, z);\n            return j.create(\"div\", {\n                className: \"uiOverlay\"\n            }, this._contentRoot);\n        },\n        getContentRoot: function() {\n            return this._contentRoot;\n        },\n        destroy: function() {\n            i.remove(this.getRoot(), \"overlay\");\n            this.parent.destroy();\n        }\n    });\n    e.exports = x;\n});\n__d(\"ReminderStory\", [\"AsyncRequest\",\"endsWith\",\"Event\",\"DOMQuery\",\"ScrollableArea\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"endsWith\"), i = b(\"Event\"), j = b(\"DOMQuery\"), k = b(\"ScrollableArea\");\n    function l(m, n, o) {\n        i.listen(m, \"click\", function(p) {\n            n.show();\n            if (o) {\n                var q = {\n                    context_data: o\n                };\n                new g().setURI(\"/growth/reminder/logging.php\").setData(q).send();\n            }\n        ;\n        });\n        n.subscribe(\"aftershow\", function() {\n            var p = n.getRoot(), q = j.scry(p, \".inlineReplyTextArea\");\n            if ((q.length > 0)) {\n                q[0].focus();\n            };\n            var r = j.scry(p, \".jewelItemNew\"), s = [];\n            for (var t in r) {\n                var u = r[t].getAttribute(\"id\");\n                if ((u && h(u, \"_1_req\"))) {\n                    s = s.concat(u.replace(\"_1_req\", \"\"));\n                };\n            };\n            if ((s.length > 0)) {\n                new g().setURI(\"/friends/requests/log_impressions\").setData({\n                    ids: s.join(\",\"),\n                    ref: \"reminder_box\"\n                }).send();\n            };\n            var v = j.find(p, \"#SuggestBelowInvite\");\n            if (v) {\n                new g().setURI(\"/ajax/pages/reminder/recommendations\").send();\n            };\n            k.poke(j.scry(p, \".uiScrollableArea\")[0]);\n        });\n    };\n    e.exports = l;\n});\n__d(\"ContextualDialogFooterLink\", [\"Event\",\"copyProperties\",\"CSS\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\"), i = b(\"CSS\"), j = b(\"DOM\");\n    function k(l) {\n        this._layer = l;\n    };\n    h(k.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            var l = this._layer.getRoot(), m = j.scry(l, \".uiContextualDialogFooterLink\")[0], n = \"uiContextualDialogHoverFooterArrow\";\n            this._subscriptions = [g.listen(m, \"mouseenter\", i.addClass.curry(l, n)),g.listen(m, \"mouseleave\", i.removeClass.curry(l, n)),];\n        },\n        disable: function() {\n            this._subscriptions.forEach(function(l) {\n                l.remove();\n            });\n            this._subscriptions = null;\n        }\n    });\n    e.exports = k;\n});\n__d(\"LegacyContextualDialog\", [\"Arbiter\",\"ArbiterMixin\",\"ARIA\",\"Bootloader\",\"Class\",\"ContextualDialogFooterLink\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"Event\",\"Locale\",\"Overlay\",\"Parent\",\"Style\",\"Vector\",\"$\",\"copyProperties\",\"getOverlayZIndex\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"ARIA\"), j = b(\"Bootloader\"), k = b(\"Class\"), l = b(\"ContextualDialogFooterLink\"), m = b(\"ContextualThing\"), n = b(\"CSS\"), o = b(\"DataStore\"), p = b(\"DOM\"), q = b(\"Event\"), r = b(\"Locale\"), s = b(\"Overlay\"), t = b(\"Parent\"), u = b(\"Style\"), v = b(\"Vector\"), w = b(\"$\"), x = b(\"copyProperties\"), y = b(\"getOverlayZIndex\"), z = b(\"shield\");\n    function aa(ba, ca) {\n        this.parent.construct(this, ba, ca);\n    };\n    k.extend(aa, s);\n    x(aa, h, {\n        ARROW_OFFSET: 15,\n        ARROW_LENGTH: 16,\n        ARROW_INSET: 22,\n        TOP_MARGIN: 50,\n        BOTTOM_MARGIN: 30,\n        LEFT_MARGIN: 15,\n        RIGHT_MARGIN: 30,\n        MIN_TOP_GAP: 5,\n        POSITION_TO_CLASS: {\n            above: \"uiContextualDialogAbove\",\n            below: \"uiContextualDialogBelow\",\n            left: \"uiContextualDialogLeft\",\n            right: \"uiContextualDialogRight\"\n        },\n        RIGHT_ALIGNED_CLASS: \"uiContextualDialogRightAligned\",\n        ARROW_CLASS: {\n            bottom: \"uiContextualDialogArrowBottom\",\n            top: \"uiContextualDialogArrowTop\",\n            right: \"uiContextualDialogArrowRight\",\n            left: \"uiContextualDialogArrowLeft\"\n        },\n        POSITION_TO_ARROW: {\n            above: \"bottom\",\n            below: \"top\",\n            left: \"right\",\n            right: \"left\"\n        },\n        getInstance: function(ba) {\n            var ca = o.get(ba, \"LegacyContextualDialog\");\n            if (!ca) {\n                var da = t.byClass(ba, \"uiOverlay\");\n                if (da) {\n                    ca = o.get(da, \"overlay\");\n                };\n            }\n        ;\n            return ca;\n        }\n    });\n    x(aa.prototype, {\n        _scrollListener: null,\n        _scrollParent: null,\n        _width: null,\n        _fixed: false,\n        _hasFooter: false,\n        _showSubscription: null,\n        _hideSubscription: null,\n        _setContextSubscription: null,\n        _resizeListener: null,\n        _reflowSubscription: null,\n        _configure: function(ba, ca) {\n            this.parent._configure(ba, ca);\n            var da = this.getRoot(), ea = o.get.curry(da);\n            this.setAlignH(ea(\"alignh\", \"left\"));\n            this.setOffsetX(ea(\"offsetx\", 0));\n            this.setOffsetY(ea(\"offsety\", 0));\n            this.setPosition(ea(\"position\", \"above\"));\n            this._hasFooter = ea(\"hasfooter\", false);\n            if (this._hasFooter) {\n                var fa = p.scry(da, \".uiContextualDialogFooterLink\")[0];\n                (fa && this.enableBehavior(l));\n            }\n        ;\n            this._setContextSubscription = this.subscribe(\"beforeshow\", function() {\n                this.unsubscribe(this._setContextSubscription);\n                this._setContextSubscription = null;\n                var ha = ea(\"context\");\n                if (ha) {\n                    this.setContext(w(ha));\n                }\n                 else {\n                    ha = ea(\"contextselector\");\n                    if (ha) {\n                        this.setContext(p.find(document, ha));\n                    };\n                }\n            ;\n            }.bind(this));\n            this._content = p.scry(da, \".uiContextualDialogContent\")[0];\n            if (this._content) {\n                this._content.setAttribute(\"role\", \"dialog\");\n                var ga = p.scry(this._content, \".legacyContextualDialogTitle\")[0];\n                if (ga) {\n                    this._content.setAttribute(\"aria-labelledby\", p.getID(ga));\n                };\n            }\n        ;\n            this._showSubscription = this.subscribe(\"show\", function() {\n                var ha = z(this.updatePosition, this);\n                this._resizeListener = q.listen(window, \"resize\", ha);\n                this._reflowSubscription = g.subscribe(\"reflow\", ha);\n                this._setupScrollListener(this._scrollParent);\n                m.register(da, this.context);\n                g.inform(\"layer_shown\", {\n                    type: \"ContextualDialog\"\n                });\n            }.bind(this));\n            this._hideSubscription = this.subscribe(\"hide\", function() {\n                this._teardownResizeAndReflowListeners();\n                this._teardownScrollListener();\n                g.inform(\"layer_hidden\", {\n                    type: \"ContextualDialog\"\n                });\n            }.bind(this));\n            return this;\n        },\n        _buildWrapper: function(ba, ca) {\n            var da = this.parent._buildWrapper(ba, ca);\n            if (!this._shouldBuildWrapper) {\n                return da\n            };\n            n.addClass(da, \"uiContextualDialog\");\n            return p.create(\"div\", {\n                className: \"uiContextualDialogPositioner\"\n            }, da);\n        },\n        setWidth: function(ba) {\n            this._width = Math.floor(ba);\n            return this;\n        },\n        setFixed: function(ba) {\n            ba = !!ba;\n            n.conditionClass(this.getRoot(), \"uiContextualDialogFixed\", ba);\n            this._fixed = ba;\n            return this;\n        },\n        setAlignH: function(ba) {\n            this.alignH = ba;\n            this._updateAlignmentClass();\n            (this._shown && this.updatePosition());\n            (this.position && this._updateArrow());\n            return this;\n        },\n        getContent: function() {\n            return this._content;\n        },\n        getContext: function() {\n            return this.context;\n        },\n        setContext: function(ba) {\n            if (this._setContextSubscription) {\n                this.unsubscribe(this._setContextSubscription);\n                this._setContextSubscription = null;\n            }\n        ;\n            ba = w(ba);\n            if ((this.context && (this.context != ba))) {\n                o.remove(this.context, \"LegacyContextualDialog\");\n            };\n            this.context = ba;\n            i.setPopup(this.getCausalElement(), this.getRoot());\n            var ca = t.byClass(ba, \"fbPhotoSnowlift\");\n            this.setInsertParent((ca || document.body));\n            if ((this._scrollListener && (this._scrollParent !== ca))) {\n                this._teardownScrollListener();\n                this._setupScrollListener(ca);\n            }\n        ;\n            this._scrollParent = ca;\n            var da = y(ba, this._insertParent);\n            u.set(this.getRoot(), \"z-index\", ((da > 200) ? da : \"\"));\n            o.set(this.context, \"LegacyContextualDialog\", this);\n            return this;\n        },\n        getCausalElement: function() {\n            return (this.parent.getCausalElement() || this.context);\n        },\n        listen: function(ba, ca) {\n            return q.listen(this.getRoot(), ba, ca);\n        },\n        setOffsetX: function(ba) {\n            this.offsetX = (parseInt(ba, 10) || 0);\n            (this._shown && this.updatePosition());\n            return this;\n        },\n        setOffsetY: function(ba) {\n            this.offsetY = (parseInt(ba, 10) || 0);\n            (this._shown && this.updatePosition());\n            return this;\n        },\n        setPosition: function(ba) {\n            this.position = ba;\n            for (var ca in aa.POSITION_TO_CLASS) {\n                n.conditionClass(this.getRoot(), aa.POSITION_TO_CLASS[ca], (ba == ca));;\n            };\n            this._updateAlignmentClass();\n            (this._shown && this.updatePosition());\n            this._updateArrow();\n            return this;\n        },\n        updatePosition: function() {\n            if (!this.context) {\n                return false\n            };\n            if (this._width) {\n                u.set(this._overlay, \"width\", (this._width + \"px\"));\n            };\n            var ba = (this._fixed ? \"viewport\" : \"document\"), ca = v.getElementPosition(this.context, ba), da = this._scrollParent;\n            if (da) {\n                ca = ca.sub(v.getElementPosition(da, \"document\")).add(da.scrollLeft, da.scrollTop);\n            };\n            var ea = v.getElementDimensions(this.context), fa = ((this.position == \"above\") || (this.position == \"below\")), ga = r.isRTL();\n            if (((((this.position == \"right\") || ((fa && (this.alignH == \"right\"))))) != ga)) {\n                ca = ca.add(ea.x, 0);\n            };\n            if ((this.position == \"below\")) {\n                ca = ca.add(0, ea.y);\n            };\n            var ha = new v(0, 0);\n            if ((fa && (this.alignH == \"center\"))) {\n                ha = ha.add((((ea.x - this._width)) / 2), 0);\n            }\n             else {\n                var ia = (fa ? ea.x : ea.y), ja = (2 * aa.ARROW_INSET);\n                if ((ia < ja)) {\n                    var ka = ((ia / 2) - aa.ARROW_INSET);\n                    if ((fa && (((this.alignH == \"right\") != ga)))) {\n                        ka = -ka;\n                    };\n                    ha = ha.add((fa ? ka : 0), (fa ? 0 : ka));\n                }\n            ;\n            }\n        ;\n            ha = ha.add(this.offsetX, this.offsetY);\n            if (ga) {\n                ha = ha.mul(-1, 1);\n            };\n            ca = ca.add(ha);\n            if (this._fixed) {\n                ca = new v(ca.x, ca.y, \"document\");\n            };\n            ca.setElementPosition(this.getRoot());\n            this._adjustVerticalPosition();\n            this._adjustHorizontalPosition();\n            return true;\n        },\n        scrollTo: function() {\n            if (this.context) {\n                j.loadModules([\"DOMScroll\",], function(ba) {\n                    ba.scrollTo(this.context, true, true);\n                }.bind(this));\n            };\n        },\n        destroy: function() {\n            this.unsubscribe(this._showSubscription);\n            this.unsubscribe(this._hideSubscription);\n            if (this._setContextSubscription) {\n                this.unsubscribe(this._setContextSubscription);\n                this._setContextSubscription = null;\n            }\n        ;\n            this._teardownScrollListener();\n            this._teardownResizeAndReflowListeners();\n            (this.context && o.remove(this.context, \"LegacyContextualDialog\"));\n            this.parent.destroy();\n        },\n        _adjustVerticalPosition: function() {\n            if (((this.position != \"left\") && (this.position != \"right\"))) {\n                u.set(this._overlay, \"top\", \"\");\n                return;\n            }\n        ;\n            var ba = this.getRoot(), ca = v.getElementPosition(ba, \"viewport\").y, da = v.getElementDimensions(this._overlay).y, ea = v.getViewportDimensions().y, fa = Math.min(Math.max(ca, aa.MIN_TOP_GAP), aa.TOP_MARGIN), ga = Math.min(Math.max(0, (((ca + da) + aa.BOTTOM_MARGIN) - ea)), Math.max(-fa, (ca - fa)), (da - (2 * aa.ARROW_INSET)));\n            u.set(this._overlay, \"top\", (((-1 * ga)) + \"px\"));\n            u.set(this._arrow, \"top\", (aa.ARROW_OFFSET + \"px\"));\n            u.set(this._arrow, \"marginTop\", (ga + \"px\"));\n        },\n        _adjustHorizontalPosition: function() {\n            if (((((this.position != \"above\") && (this.position != \"below\"))) || (this.alignH != \"left\"))) {\n                u.set(this._overlay, \"left\", \"\");\n                u.set(this._overlay, \"right\", \"\");\n                return;\n            }\n        ;\n            var ba = this.getRoot(), ca = v.getElementPosition(ba, \"viewport\").x, da = v.getElementDimensions(this._overlay).x, ea = v.getViewportDimensions().x, fa = r.isRTL(), ga;\n            if (!fa) {\n                ga = (((ca + da) + aa.RIGHT_MARGIN) - ea);\n            }\n             else ga = ((aa.LEFT_MARGIN + da) - ca);\n        ;\n            ga = Math.min(Math.max(0, ga), (da - (2 * aa.ARROW_INSET)));\n            u.set(this._overlay, (fa ? \"right\" : \"left\"), ((-1 * ga) + \"px\"));\n            u.set(this._arrow, (fa ? \"right\" : \"left\"), (aa.ARROW_OFFSET + \"px\"));\n            u.set(this._arrow, (fa ? \"marginRight\" : \"marginLeft\"), (ga + \"px\"));\n        },\n        _updateArrow: function() {\n            var ba = 0;\n            if (((this.position == \"above\") || (this.position == \"below\"))) {\n                switch (this.alignH) {\n                  case \"center\":\n                    ba = 50;\n                    break;\n                  case \"right\":\n                    ba = 100;\n                    break;\n                }\n            };\n            this._renderArrow(aa.POSITION_TO_ARROW[this.position], ba);\n        },\n        _renderArrow: function(ba, ca) {\n            for (var da in aa.ARROW_CLASS) {\n                n.conditionClass(this._overlay, aa.ARROW_CLASS[da], (ba == da));;\n            };\n            n.conditionClass(this._overlay, \"uiContextualDialogWithFooterArrowBottom\", ((ba == \"bottom\") && this._hasFooter));\n            if ((ba == \"none\")) {\n                return\n            };\n            if (!this._arrow) {\n                this._arrow = p.create(\"i\", {\n                    className: \"uiContextualDialogArrow\"\n                });\n                p.appendContent(this._overlay, this._arrow);\n            }\n        ;\n            u.set(this._arrow, \"top\", \"\");\n            u.set(this._arrow, \"left\", \"\");\n            u.set(this._arrow, \"right\", \"\");\n            u.set(this._arrow, \"margin\", \"\");\n            var ea = ((ba == \"top\") || (ba == \"bottom\")), fa = (ea ? ((r.isRTL() ? \"right\" : \"left\")) : \"top\");\n            ca = (ca || 0);\n            u.set(this._arrow, fa, (ca + \"%\"));\n            var ga = (aa.ARROW_LENGTH + (aa.ARROW_OFFSET * 2)), ha = -((((ga * ca) / 100) - aa.ARROW_OFFSET));\n            u.set(this._arrow, (\"margin-\" + fa), (ha + \"px\"));\n        },\n        _updateAlignmentClass: function() {\n            n.conditionClass(this.getRoot(), aa.RIGHT_ALIGNED_CLASS, ((((this.position == \"above\") || (this.position == \"below\"))) && (this.alignH == \"right\")));\n        },\n        _setupScrollListener: function(ba) {\n            this._scrollListener = q.listen((ba || window), \"scroll\", z(this._adjustVerticalPosition, this));\n        },\n        _teardownScrollListener: function() {\n            if (this._scrollListener) {\n                this._scrollListener.remove();\n                this._scrollListener = null;\n            }\n        ;\n        },\n        _teardownResizeAndReflowListeners: function() {\n            if (this._resizeListener) {\n                this._resizeListener.remove();\n                this._resizeListener = null;\n            }\n        ;\n            if (this._reflowSubscription) {\n                this._reflowSubscription.unsubscribe();\n                this._reflowSubscription = null;\n            }\n        ;\n        }\n    });\n    e.exports = aa;\n});\n__d(\"TooltipLink\", [\"Parent\",\"Tooltip\",], function(a, b, c, d, e, f) {\n    var g = b(\"Parent\"), h = b(\"Tooltip\"), i = {\n        setTooltipText: function(j, k) {\n            j = g.byTag(j, \"a\");\n            (j && h.set(j, k));\n        }\n    };\n    e.exports = i;\n});");
36547 // 11686
36548 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s0988ba831300c838862d577d2c79f679c56e4b86");
36549 // 11687
36550 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"EzMPG\",]);\n}\n;\n;\n__d(\"ChannelSubdomain\", [\"Cookie\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"Cookie\"), h = b(\"JSLogger\"), i = h.create(\"channel\"), j = 7, k = null;\n    function l(o, p) {\n        var q = null, r = m(), s;\n        o--;\n        var t = Math.min(32, ((j * o)));\n        t = Math.max(t, 1);\n        var u = false;\n        for (var v = 0; ((v < 32)); v++) {\n            s = ((((v + p)) % t));\n            if (!((r & ((1 << s))))) {\n                u = true;\n                break;\n            }\n        ;\n        ;\n        };\n    ;\n        if (u) {\n            k = s;\n            q = ((k % j));\n            g.set(\"sub\", ((r | ((1 << k)))));\n        }\n         else {\n            k = -1;\n            q = null;\n            i.error(\"subdomain_overflow\", {\n                slot: k,\n                max: o\n            });\n        }\n    ;\n    ;\n        return q;\n    };\n;\n    function m() {\n        var o = ((g.get(\"sub\") || 0));\n        o = parseInt(o, 10);\n        return ((isNaN(o) ? 0 : o));\n    };\n;\n    function n() {\n        if (((((k !== null)) && ((k >= 0))))) {\n            var o = ((m() & ~((1 << k))));\n            if (o) {\n                g.set(\"sub\", o);\n            }\n             else g.clear(\"sub\");\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    e.exports = {\n        allocate: l,\n        clear: n\n    };\n});\n__d(\"DocRPC\", [\"ErrorUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"ErrorUtils\"), h = {\n        _apis: {\n        },\n        _dispatch: function(i) {\n            var j;\n            try {\n                i = JSON.parse(i);\n            } catch (k) {\n                throw new Error(((((\"DocRPC unparsable dispatch: \\\"\" + i)) + \"\\\"\")));\n            };\n        ;\n            if (h._apis.hasOwnProperty(i.api)) {\n                var l = h._apis[i.api];\n                if (l[i.method]) {\n                    j = g.applyWithGuard(l[i.method], l, i.args);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((j === undefined))) {\n                j = null;\n            }\n        ;\n        ;\n            return JSON.stringify(j);\n        },\n        publish: function(i, j) {\n            h._apis[j] = i;\n        },\n        proxy: function(i, j, k) {\n            var l = {\n            };\n            k.forEach(function(m) {\n                l[m] = function() {\n                    var n = {\n                        api: j,\n                        method: m,\n                        args: Array.prototype.slice.call(arguments)\n                    }, o;\n                    try {\n                        if (i.JSBNG__closed) {\n                            throw new Error(\"DocRPC window closed\");\n                        }\n                    ;\n                    ;\n                        o = i.DocRPC._dispatch(JSON.stringify(n));\n                    } catch (p) {\n                        g.reportError(p);\n                        return;\n                    };\n                ;\n                    if (((typeof (o) == \"string\"))) {\n                        try {\n                            o = JSON.parse(o);\n                        } catch (p) {\n                            throw new Error(((((((((((((\"DocRPC \" + j)) + \".\")) + m)) + \" unparsable return: \\\"\")) + o)) + \"\\\"\")));\n                        };\n                    }\n                ;\n                ;\n                    return o;\n                };\n            });\n            return l;\n        }\n    };\n    e.exports = a.DocRPC = h;\n});\n__d(\"ChannelTransport\", [\"copyProperties\",\"bind\",\"AjaxRequest\",\"URI\",\"JSLogger\",\"DocRPC\",\"ChannelConstants\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"bind\"), i = b(\"AjaxRequest\"), j = b(\"URI\"), k = b(\"JSLogger\"), l = b(\"DocRPC\"), m = b(\"ChannelConstants\"), n = b(\"UserAgent\"), o = k.create(\"channel\");\n    function p() {\n        return ((((1048576 * Math.JSBNG__random())) | 0)).toString(36);\n    };\n;\n    function q(y, z) {\n        var aa = y.subdomain;\n        aa = ((((aa === null)) ? \"\" : ((aa + \"-\"))));\n        var ba = new j(z).setDomain(((((aa + y.host)) + \".facebook.com\"))).setPort(y.port).setSecure(j().isSecure());\n        return ba;\n    };\n;\n    function r(y) {\n        var z = {\n            partition: y.partition,\n            cb: p()\n        }, aa = q(y, \"/p\").setQueryData(z);\n        o.log(\"start_p\", {\n            uri: aa.toString()\n        });\n        var ba = new i(\"GET\", aa);\n        if (i.supportsCORS()) {\n            ba.xhr.withCredentials = true;\n        }\n    ;\n    ;\n        var ca = function(da) {\n            o.log(\"finish_p\", {\n                xhr: ((da.toJSON ? da.toJSON() : da))\n            });\n        };\n        ba.timeout = y.P_TIMEOUT;\n        ba.onError = ba.onSuccess = ca;\n        ba.send();\n    };\n;\n    function s(y, z, aa) {\n        var ba = new JSBNG__Image(), ca = 0, da = function(ga) {\n            ba.abort();\n            return ((ga ? z() : aa()));\n        };\n        ba.JSBNG__onload = function() {\n            o.log(\"ping_ok\", {\n                duration: ((JSBNG__Date.now() - ca))\n            });\n            da(true);\n        };\n        ba.JSBNG__onerror = function() {\n            r(y);\n            da(false);\n        };\n        var ea = JSBNG__setTimeout(ba.JSBNG__onerror, 10000, false);\n        ba.abort = function() {\n            if (ea) {\n                JSBNG__clearTimeout(ea);\n                ea = null;\n            }\n        ;\n        ;\n            ba.JSBNG__onload = ba.JSBNG__onerror = null;\n        };\n        var fa = {\n            partition: y.partition,\n            cb: p()\n        };\n        ca = JSBNG__Date.now();\n        ba.src = q(y, \"/ping\").setQueryData(fa);\n        return ba;\n    };\n;\n    function t(y, z, aa, ba) {\n        var ca = new JSBNG__Date(), da = ((((((ca - y.userActive)) / 1000)) | 0));\n        if (((da < 0))) {\n            o.warn(\"idle_regression\", {\n                idleTime: da,\n                now: ca.getTime(),\n                userActive: y.userActive\n            });\n        }\n    ;\n    ;\n        var ea = {\n            channel: y.user_channel,\n            seq: y.seq,\n            partition: y.partition,\n            clientid: y.sessionID,\n            cb: p(),\n            idle: da,\n            cap: 0\n        };\n        if (((da < 60))) {\n            ea.state = \"active\";\n        }\n    ;\n    ;\n        if (y.streamingCapable) {\n            ea.mode = \"stream\";\n            ea.format = \"json\";\n        }\n    ;\n    ;\n        if (y.profile) {\n            ea.profile = y.profile;\n        }\n    ;\n    ;\n        if (((y.webrtcSupport && ((((n.chrome() >= 24)) || ((n.firefox() >= 22))))))) {\n            ea.cap = m.CAPABILITY_VOIP;\n        }\n    ;\n    ;\n        var fa = q(y, \"/pull\").setQueryData(ea), ga = new i(\"GET\", fa);\n        if (i.supportsCORS()) {\n            ga.xhr.withCredentials = true;\n        }\n    ;\n    ;\n        ga.timeout = ((y.streamingCapable ? y.STREAMING_TIMEOUT : y.LONGPOLL_TIMEOUT));\n        ga.onJSON = z;\n        ga.onSuccess = aa;\n        ga.onError = function() {\n            var ha = ((((((this.JSBNG__status == 12002)) && ((this._time >= y.MIN_12002_TIMEOUT)))) || ((((this.JSBNG__status == 504)) && ((this._time >= y.MIN_504_TIMEOUT)))))), ia = ((ha ? aa : ba));\n            return ((ia && ia.apply(this, arguments)));\n        };\n        ga.send();\n        y.inStreaming = y.streamingCapable;\n        return ga;\n    };\n;\n    function u(y) {\n        this.manager = y;\n        ((this.init && this.init()));\n    };\n;\n    function v(y) {\n        u.apply(this, arguments);\n    };\n;\n    g(v.prototype, {\n        logName: \"CORS\",\n        enterState: function(y, z) {\n            if (this._request) {\n                this._request.abort();\n                this._request = null;\n            }\n        ;\n        ;\n            if (((y == \"init\"))) {\n                JSBNG__setTimeout(h(this.manager, \"exitState\", {\n                    JSBNG__status: m.OK,\n                    stateId: z.stateId\n                }), 3000, false);\n            }\n        ;\n        ;\n            if (!/pull|ping/.test(y)) {\n                return;\n            }\n        ;\n        ;\n            var aa = this.manager;\n            if (((y == \"ping\"))) {\n                this._request = s(z, h(aa, \"exitState\", {\n                    JSBNG__status: m.OK,\n                    stateId: z.stateId\n                }), h(aa, \"exitState\", {\n                    JSBNG__status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n             else if (((y == \"pull\"))) {\n                this._request = t(z, h(aa, \"_processTransportData\", z.stateId), h(aa, \"exitState\", {\n                    JSBNG__status: m.OK,\n                    stateId: z.stateId\n                }), h(aa, \"exitState\", {\n                    JSBNG__status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n            \n        ;\n        ;\n        }\n    });\n    function w(y) {\n        o.log(\"iframe_init_constructor\");\n        u.apply(this, arguments);\n        this._iframe = JSBNG__document.createElement(\"div\");\n        this._iframe.style.display = \"none\";\n        JSBNG__document.body.appendChild(this._iframe);\n        l.publish(this, \"outerTransport\");\n    };\n;\n    g(w.prototype, {\n        logName: \"div\",\n        _initIframe: function(y) {\n            o.log(\"iframe_init_start\");\n            window.onchanneliframeready = function() {\n                o.log(\"iframe_resources\");\n                return y.resources;\n            };\n            window.onchanneliframeloaded = function() {\n                o.log(\"iframe_loaded\");\n            };\n            if (y) {\n                this._iframeURI = q(y, y.path);\n                if (y.bustIframe) {\n                    var z = {\n                        partition: y.partition,\n                        cb: p()\n                    };\n                    this._iframeURI.setQueryData(z);\n                }\n            ;\n            ;\n            }\n             else this._iframeURI = \"about:blank\";\n        ;\n        ;\n            this._iframeProxy = null;\n            try {\n                this._iframe.contentWindow.JSBNG__location.replace(this._iframeURI);\n                o.log(\"iframe_uri_set\");\n            } catch (aa) {\n                o.error(\"iframe_uri_set_error\", aa);\n                this.exitState({\n                    JSBNG__status: m.ERROR,\n                    stateId: y.stateId\n                }, ((aa + \"\")));\n            };\n        ;\n        },\n        enterState: function(y, z) {\n            if (((y == \"init\"))) {\n                this._initIframe(z);\n            }\n             else if (/idle|ping|pull/.test(y)) {\n                if (this._iframeProxy) {\n                    this._iframeProxy.enterState.apply(this._iframeProxy, arguments);\n                }\n                 else if (((y != \"idle\"))) {\n                    this.exitState({\n                        JSBNG__status: m.ERROR,\n                        stateId: z.stateId\n                    }, \"iframe not yet loaded\");\n                }\n                \n            ;\n            ;\n            }\n             else if (((y == \"shutdown\"))) {\n                this._initIframe();\n            }\n            \n            \n        ;\n        ;\n        },\n        _processTransportData: function() {\n            this.manager._processTransportData.apply(this.manager, arguments);\n        },\n        exitState: function(y) {\n            if (((((this.manager.state == \"init\")) && ((y.JSBNG__status == m.OK))))) {\n                this._iframeProxy = l.proxy(this._iframe.contentWindow, \"innerTransport\", [\"enterState\",], ((this._iframeURI + \"\")).replace(/iframe.*/, \"\"));\n            }\n        ;\n        ;\n            if (((/ping|pull/.test(this.manager.state) && !this._iframeProxy))) {\n                return;\n            }\n        ;\n        ;\n            this.manager.exitState.apply(this.manager, arguments);\n        }\n    });\n    function x() {\n        this.init = this.init.bind(this);\n        u.apply(this, arguments);\n    };\n;\n    g(x.prototype, {\n        logName: \"iframe(inner)\",\n        init: function() {\n            l.publish(this, \"innerTransport\");\n            try {\n                var z = l.proxy(window.parent, \"outerTransport\", [\"_processTransportData\",\"exitState\",], JSBNG__top.DocRPC.origin);\n                g(this, z);\n                this.exitState({\n                    JSBNG__status: m.OK,\n                    stateId: 1000000\n                });\n            } catch (y) {\n                o.error(\"iframe_inner_init_error\", y);\n            };\n        ;\n        },\n        enterState: function(y, z) {\n            if (this._request) {\n                this._request.abort();\n                this._request = null;\n            }\n        ;\n        ;\n            if (((y == \"ping\"))) {\n                this._request = s(z, h(this, \"exitState\", {\n                    JSBNG__status: m.OK,\n                    stateId: z.stateId\n                }), h(this, \"exitState\", {\n                    JSBNG__status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n             else if (((y == \"pull\"))) {\n                this._request = t(z, h(this, \"_processTransportData\", z.stateId), h(this, \"exitState\", {\n                    JSBNG__status: m.OK,\n                    stateId: z.stateId\n                }), h(this, \"exitState\", {\n                    JSBNG__status: m.ERROR,\n                    stateId: z.stateId\n                }));\n            }\n            \n        ;\n        ;\n        }\n    });\n    e.exports = {\n        getURI: q,\n        Transport: u,\n        CORSTransport: v,\n        IframeTransport: w,\n        IframeInnerTransport: x\n    };\n});\n__d(\"MovingStat\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        h = ((h || 60000));\n        var i = {\n            t: new JSBNG__Date(),\n            count: 0,\n            v: 0\n        }, j = i, k = 0, l = 0;\n        function m() {\n            var n = ((new JSBNG__Date() - h));\n            while (((((j && j.next)) && ((j.t < n))))) {\n                k -= j.v;\n                l -= j.count;\n                j = j.next;\n            };\n        ;\n        };\n    ;\n        this.add = function(n) {\n            k += n;\n            l++;\n            var o = new JSBNG__Date();\n            if (((((o - i.t)) < 1000))) {\n                i.v += n;\n                i.count++;\n            }\n             else {\n                i.next = {\n                    t: o,\n                    v: n,\n                    count: 1\n                };\n                i = i.next;\n                m();\n            }\n        ;\n        ;\n        };\n        this.tally = function(n) {\n            n = ((n || 1000));\n            m();\n            return {\n                sum: k,\n                count: l,\n                timeAverage: ((((k * n)) / h))\n            };\n        };\n    };\n;\n    e.exports = g;\n});\n__d(\"ChannelManager\", [\"JSBNG__Event\",\"function-extensions\",\"AjaxRequest\",\"Arbiter\",\"AsyncRequest\",\"ChannelConstants\",\"ChannelInitialData\",\"ChannelSubdomain\",\"ChannelTransport\",\"Env\",\"FBAjaxRequest\",\"JSLogger\",\"MovingStat\",\"PresenceCookieManager\",\"PresenceState\",\"PresenceUtil\",\"Run\",\"SystemEvents\",\"URI\",\"UserActivity\",\"copyProperties\",\"createArrayFrom\",\"ChatVisibility\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"AjaxRequest\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"ChannelConstants\"), l = b(\"ChannelInitialData\"), m = b(\"ChannelSubdomain\"), n = b(\"ChannelTransport\"), o = b(\"Env\"), p = b(\"FBAjaxRequest\"), q = b(\"JSLogger\"), r = b(\"MovingStat\"), s = b(\"PresenceCookieManager\"), t = b(\"PresenceState\"), u = b(\"PresenceUtil\"), v = b(\"Run\"), w = b(\"SystemEvents\"), x = b(\"URI\"), y = b(\"UserActivity\"), z = b(\"copyProperties\"), aa = b(\"createArrayFrom\"), ba = b(\"ChatVisibility\"), ca, da = q.create(\"channel\"), ea = null;\n    function fa(qa) {\n        ea = qa;\n    };\n;\n    var ga = {\n        idle: {\n            ok: \"init!\"\n        },\n        init: {\n            ok: \"pull!\",\n            error: \"reconnect\",\n            sys_online: \"init\",\n            sys_timetravel: \"init\"\n        },\n        pull: {\n            ok: \"pull!\",\n            error: \"ping\",\n            error_missing: \"pull\",\n            error_msg_type: \"pull\",\n            refresh_0: \"reconnect\",\n            refresh_110: \"reconnect\",\n            refresh_111: \"reconnect\",\n            refresh_112: \"pull\",\n            refresh_113: \"pull\",\n            refresh_117: \"reconnect\"\n        },\n        ping: {\n            ok: \"pull!\",\n            error: \"ping\",\n            error_stale: \"reconnect!\"\n        },\n        reconnect: {\n            ok: \"init!\",\n            error: \"reconnect\",\n            sys_online: \"reconnect\",\n            sys_timetravel: \"reconnect\"\n        },\n        shutdown: {\n        },\n        _all: {\n            error_max: \"shutdown!\",\n            error_shutdown: \"shutdown!\",\n            sys_owner: \"reconnect\",\n            sys_nonowner: \"idle!\",\n            sys_online: \"ping\",\n            sys_offline: \"idle!\",\n            sys_timetravel: \"ping\"\n        }\n    }, ha = {\n        userActive: ((ba.isOnline() ? JSBNG__Date.now() : 0)),\n        sessionID: ((((Math.JSBNG__random() * 2147483648)) | 0)).toString(16),\n        streamingCapable: false,\n        inStreaming: false,\n        LONGPOLL_TIMEOUT: 60000,\n        STREAMING_TIMEOUT: 60000,\n        P_TIMEOUT: 30000,\n        IFRAME_LOAD_TIMEOUT: 30000,\n        MIN_RETRY_INTERVAL: 5000,\n        MAX_RETRY_INTERVAL: 30000,\n        MIN_12002_TIMEOUT: 9000,\n        MIN_504_TIMEOUT: 20000,\n        STALL_THRESHOLD: 180000,\n        JUMPSTART_THRESHOLD: 90000,\n        MIN_INIT_PROBE_DELAY: 3000,\n        INIT_PROBE_DELAY_RANDOMIZE_RANGE: 12000,\n        PROBE_DELAY: 60000,\n        PROBE_HEARTBEATS_INTERVAL_LOW: 1000,\n        PROBE_HEARTBEATS_INTERVAL_HIGH: 3000,\n        STREAMING_EXIT_STATE_ON_CONTINUE: false\n    }, ia = 1, ja = {\n    }, ka = 0;\n    function la() {\n        return ((j.lastSuccessTime ? Math.round(((((JSBNG__Date.now() - j.lastSuccessTime)) / 1000))) : -1));\n    };\n;\n    function ma() {\n        var qa = {\n        };\n        if (ca.getConfig(\"host\")) {\n            qa[ca.getConfig(\"user_channel\")] = ca.getConfig(\"seq\", 0);\n        }\n    ;\n    ;\n        return qa;\n    };\n;\n    function na() {\n        var qa = JSBNG__Date.now(), ra = JSBNG__Date.now(), sa = {\n            total: 0\n        }, ta = \"idle\", ua = false;\n        w.subscribe([w.USER,w.ONLINE,w.TIME_TRAVEL,], function(xa, ya) {\n            pa(true);\n            ra = null;\n            ca.lastPullTime = JSBNG__Date.now();\n            var za;\n            switch (xa) {\n              case w.USER:\n                za = ((w.isPageOwner() ? k.SYS_OWNER : k.SYS_NONOWNER));\n                break;\n              case w.ONLINE:\n                za = ((ya ? k.SYS_ONLINE : k.SYS_OFFLINE));\n                break;\n              case w.TIME_TRAVEL:\n                za = k.SYS_TIMETRAVEL;\n                break;\n            };\n        ;\n            ca.exitState({\n                JSBNG__status: za,\n                stateId: ia\n            });\n        });\n        var va = function(xa, ya) {\n            var za = JSBNG__Date.now(), ab;\n            if (ya) {\n                qa = za;\n                ab = ((ya.nextState || ya.state));\n            }\n             else ab = ta;\n        ;\n        ;\n            w.checkTimeTravel();\n            if (ra) {\n                var bb = Math.round(((((za - ra)) / 1000)));\n                if (((bb > 0))) {\n                    sa[ta] = ((((sa[ta] || 0)) + bb));\n                    sa.total += bb;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ta = ab;\n            ra = za;\n            if (!xa) {\n                sa.lastSuccessTime = la();\n                sa.online = w.isOnline();\n                da.log(\"rollup\", sa);\n            }\n        ;\n        ;\n        };\n        i.subscribe(k.ON_ENTER_STATE, va);\n        JSBNG__setInterval(va, 60000, false);\n        i.subscribe(q.DUMP_EVENT, function(xa, ya) {\n            ya.channelRollup = sa;\n        });\n        var wa = function() {\n            if (((ca.isShutdown() || ca.shouldIdle()))) {\n                return;\n            }\n        ;\n        ;\n            w.checkTimeTravel();\n            var xa = ((JSBNG__Date.now() - ((ca.lastPullTime || o.start))));\n            if (((!ua && ((xa > ha.STALL_THRESHOLD))))) {\n                var ya = la();\n                da.error(\"stall\", {\n                    lastSuccessTime: ya,\n                    rollupState: ta\n                });\n                ua = true;\n            }\n        ;\n        ;\n            var za = ((JSBNG__Date.now() - qa));\n            if (((((ca.state == \"pull\")) && ((za > ha.JUMPSTART_THRESHOLD))))) {\n                qa = null;\n                da.warn(\"jumpstart\", {\n                    state: ca.state,\n                    dormant: za\n                });\n                ca.enterState(\"init\");\n            }\n        ;\n        ;\n        };\n        JSBNG__setInterval(wa, 10000, false);\n    };\n;\n    function oa() {\n        var qa = JSBNG__Date.now(), ra = 1;\n        function sa() {\n            JSBNG__setTimeout(sa, ((ra * 1000)), false);\n            var xa = ca.state;\n            if (((((xa == \"idle\")) && ca.shouldIdle()))) {\n                return;\n            }\n        ;\n        ;\n            da.bump(\"conn_t\", ra);\n            if (((xa == \"pull\"))) {\n                da.bump(\"conn_t_pull\", ra);\n            }\n        ;\n        ;\n        };\n    ;\n        sa();\n        var ta = [15,30,60,120,240,], ua = false, va = false;\n        function wa(xa) {\n            JSBNG__setTimeout(function() {\n                da.rate(((\"pullenter_\" + xa)), ua);\n                da.rate(((\"pullexit_\" + xa)), va);\n            }, ((xa * 1000)), false);\n        };\n    ;\n        while (ta.length) {\n            wa(ta.shift());\n        ;\n        };\n    ;\n        i.subscribe(k.ON_ENTER_STATE, function(xa, ya) {\n            if (((ya.state == \"pull\"))) {\n                ua = true;\n            }\n        ;\n        ;\n            qa = JSBNG__Date.now();\n        });\n        i.subscribe(k.ON_EXIT_STATE, function(xa, ya) {\n            if (((((ya.state != \"pull\")) || !qa))) {\n                return;\n            }\n        ;\n        ;\n            var za = \"other\";\n            if (((ya.JSBNG__status == k.OK))) {\n                va = true;\n                za = \"ok\";\n            }\n             else if (((ya.xhr && ya.xhr.errorType))) {\n                za = ((/ar:(\\w+)/.test(ya.xhr.errorType) && RegExp.$1));\n            }\n             else if (/^sys_/.test(ya.JSBNG__status)) {\n                return;\n            }\n            \n            \n        ;\n        ;\n            var ab = ((((JSBNG__Date.now() - qa)) / 1000));\n            if (((ab < 0))) {\n                return;\n            }\n             else if (((ab > 3600))) {\n                ab = 3600;\n            }\n            \n        ;\n        ;\n            da.bump(\"conn_num\");\n            da.bump(\"conn_exit\", ab);\n            da.bump(((\"conn_num_\" + za)));\n            da.bump(((\"conn_exit_\" + za)), ab);\n        });\n    };\n;\n    function pa(qa) {\n        if (qa) {\n            ka = 0;\n            ja = {\n            };\n        }\n         else ka++;\n    ;\n    ;\n    };\n;\n    ca = {\n        state: \"idle\",\n        nextState: null,\n        lastPullTime: JSBNG__Date.now(),\n        heartbeats: [],\n        setTestCallback: fa,\n        init: function(qa) {\n            this.init = function() {\n            \n            };\n            if (((typeof (y) != \"undefined\"))) {\n                y.subscribe(function() {\n                    if (ba.isOnline()) {\n                        ha.userActive = JSBNG__Date.now();\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n             else da.error(\"user_activity_undefined\");\n        ;\n        ;\n            s.register(\"ch\", ma);\n            var ra = this.getConfig(\"max_conn\", 2), sa = Math.floor(((Math.JSBNG__random() * 32)));\n            ha.subdomain = m.allocate(ra, sa);\n            if (((typeof window.JSBNG__onpageshow != \"undefined\"))) {\n                g.listen(window, \"pagehide\", m.clear);\n            }\n             else v.onUnload(m.clear);\n        ;\n        ;\n            this._transportRate = new r(30000);\n            var ta = ((((h.supportsCORS() && !ha.forceIframe)) ? \"CORSTransport\" : \"IframeTransport\"));\n            this.transport = new n[ta](this);\n            if (qa) {\n                this.enterState.apply(this, arguments);\n            }\n        ;\n        ;\n            i.subscribe(q.DUMP_EVENT, function(JSBNG__event, va) {\n                va.transportRate = this._transportRate.tally();\n                va.transportType = ta;\n                va.transportVersion = 2;\n            }.bind(this));\n            na();\n            oa();\n            if (((((((ca.getConfig(\"tryStreaming\") && ca.getConfig(\"host\"))) && h.supportsCORS())) && !ha.forceIframe))) {\n                var ua = ((ha.MIN_INIT_PROBE_DELAY + ((Math.JSBNG__random() * ha.INIT_PROBE_DELAY_RANDOMIZE_RANGE))));\n                JSBNG__setTimeout(this._probeTest, ua, false);\n            }\n        ;\n        ;\n        },\n        configure: function() {\n            var qa = aa(arguments);\n            da.log(\"configure\", qa);\n            qa.forEach(z.bind(null, ha));\n            i.inform(k.ON_CONFIG, this);\n        },\n        getConfig: function(qa, ra) {\n            return ((((qa in ha)) ? ha[qa] : ra));\n        },\n        isShutdown: function() {\n            return ((this.state == \"shutdown\"));\n        },\n        shouldIdle: function() {\n            return !((w.isPageOwner() && w.isOnline()));\n        },\n        _sendIframeError: function(qa) {\n            var ra = new j().setURI(\"/ajax/presence/reconnect.php\").setData({\n                reason: qa,\n                fb_dtsg: o.fb_dtsg\n            }).setOption(\"suppressErrorHandlerWarning\", true).setOption(\"retries\", 1).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(true);\n            ((ra.specifiesWriteRequiredParams() && ra.send()));\n        },\n        _getDelay: function() {\n            var qa = Math.min(((ha.MIN_RETRY_INTERVAL * Math.pow(2, Math.max(0, ((ka - 1)))))), ha.MAX_RETRY_INTERVAL);\n            return ((((qa * ((13517 + ((Math.JSBNG__random() / 2)))))) | 0));\n        },\n        enterState: function() {\n            if (this._inEnterState) {\n                da.warn(\"enterstate_recursion\");\n            }\n        ;\n        ;\n            this._inEnterState = true;\n            try {\n                this._enterState.apply(this, arguments);\n                this._inEnterState = false;\n            } catch (qa) {\n                this._inEnterState = false;\n                throw qa;\n            };\n        ;\n        },\n        _enterState: function(qa) {\n            var ra = 0, sa = aa(arguments);\n            if (this.isShutdown()) {\n                return;\n            }\n        ;\n        ;\n            if (((((qa != \"idle!\")) && this.shouldIdle()))) {\n                return;\n            }\n        ;\n        ;\n            ia++;\n            ha.stateId = ia;\n            JSBNG__clearTimeout(this._deferredTransition);\n            this._deferredTransition = null;\n            this.transport.enterState(\"idle\");\n            this.state = \"idle\";\n            this.nextState = null;\n            if (/!$/.test(qa)) {\n                var ta = this._transportRate.tally().timeAverage, ua = ca.getConfig(\"MAX_CHANNEL_STATES_PER_SEC\", 1);\n                if (((ta >= ua))) {\n                    if (!this._throttled) {\n                        this._throttled = true;\n                        da.warn(\"throttled\");\n                    }\n                ;\n                ;\n                    da.bump(\"throttle\");\n                    ra = ((1000 / ua));\n                }\n            ;\n            ;\n            }\n             else if (!(/#$/.test(qa))) {\n                ra = this._getDelay();\n            }\n            \n        ;\n        ;\n            qa = qa.replace(/\\W*$/, \"\");\n            if (!ga[qa]) {\n                throw new Error(((\"invalid state:\" + qa)));\n            }\n        ;\n        ;\n            var va;\n            if (((ra <= 0))) {\n                va = {\n                    state: qa\n                };\n                this._transportRate.add(1);\n                this.state = qa;\n                var wa = this[((\"_enter_\" + this.state))];\n                if (wa) {\n                    sa.shift();\n                    wa.apply(this, sa);\n                }\n            ;\n            ;\n                if (/init|idle|pull|ping/.test(this.state)) {\n                    if (((ha.streamingCapable && /pull/.test(this.state)))) {\n                        this.heartbeats = [];\n                    }\n                ;\n                ;\n                    this.transport.enterState(this.state, ha);\n                    if (((this.state == \"ping\"))) {\n                        va.url = n.getURI(ha).toString();\n                        va.port = ((ha.port || \"undefined\"));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n             else {\n                this.state = \"idle\";\n                this.nextState = qa;\n                va = {\n                    state: this.state,\n                    delay: ra,\n                    nextState: qa\n                };\n                sa[0] = ((qa + \"#\"));\n                this._deferredTransition = (function() {\n                    this._deferredTransition = null;\n                    this.enterState.apply(this, sa);\n                }).bind(this).defer(ra, false);\n            }\n        ;\n        ;\n            if (/pull/.test(qa)) {\n                va.client_id = ha.sessionID;\n                va.streaming = ha.inStreaming;\n            }\n        ;\n        ;\n            da.log(((\"enter_\" + this.state)), va);\n            i.inform(k.ON_ENTER_STATE, va);\n        },\n        exitState: function(qa, ra) {\n            var sa = qa.stateId, ta = qa.JSBNG__status;\n            if (((this.isShutdown() || ((sa < ia))))) {\n                return;\n            }\n        ;\n        ;\n            var ua = aa(arguments), va = this.state;\n            ua[0] = qa.JSBNG__status;\n            var wa = {\n                state: va,\n                JSBNG__status: ta\n            };\n            if (/pull/.test(va)) {\n                wa.client_id = ha.sessionID;\n                wa.streaming = ha.inStreaming;\n            }\n        ;\n        ;\n            if (((/ping/.test(va) && ((ta != k.OK))))) {\n                wa.url = n.getURI(ha).toString();\n            }\n        ;\n        ;\n            if (this.nextState) {\n                wa.nextState = this.nextState;\n            }\n        ;\n        ;\n            if (((ra && ra.errorType))) {\n                wa.xhr = ((ra.toJSON ? ra.toJSON() : ra));\n                delete wa.xhr.json;\n            }\n        ;\n        ;\n            if (((ra && ra.json))) {\n                if (ra.json.t) {\n                    wa.t = ra.json.t;\n                }\n            ;\n            ;\n                if (ra.json.reason) {\n                    wa.reason = ra.json.reason;\n                }\n            ;\n            ;\n                if (ra.json.seq) {\n                    wa.seq = ra.json.seq;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            da.log(((\"exit_\" + va)), wa);\n            i.inform(k.ON_EXIT_STATE, wa);\n            var xa = this[((\"_exit_\" + va))];\n            if (xa) {\n                ta = ((xa.apply(this, ua) || ta));\n            }\n        ;\n        ;\n            if (((ta != k.OK))) {\n                pa();\n                ja[va] = ((((ja[va] || 0)) + 1));\n            }\n        ;\n        ;\n            var ya = ((ga[((this.nextState || va))][ta] || ga._all[ta])), za = ((ya && ya.replace(/!*$/, \"\")));\n            if (!za) {\n                da.error(\"terminal_transition\", wa);\n                this._shutdownHint = k.HINT_INVALID_STATE;\n                ya = \"shutdown!\";\n            }\n        ;\n        ;\n            this._lastState = va;\n            this._lastStatus = ta;\n            this.enterState(ya);\n        },\n        _processTransportData: function(qa, ra) {\n            var sa = ra.json, ta = sa.t;\n            if (((\"s\" in sa))) {\n                sa.seq = sa.s;\n                delete sa.s;\n            }\n        ;\n        ;\n            var ua = ha.seq;\n            if (((\"seq\" in sa))) {\n                ha.seq = sa.seq;\n                t.doSync();\n            }\n        ;\n        ;\n            switch (ta) {\n              case \"continue\":\n                if (((ha.inStreaming && ((this.heartbeats.length < 1))))) {\n                    ha.streamingCapable = false;\n                    da.log(\"switch_to_longpoll\");\n                    JSBNG__setTimeout(this._probeTest, ha.PROBE_DELAY, false);\n                }\n            ;\n            ;\n                pa(true);\n                if (((!ha.inStreaming || ha.STREAMING_EXIT_STATE_ON_CONTINUE))) {\n                    this.exitState({\n                        JSBNG__status: k.OK,\n                        stateId: qa\n                    });\n                }\n            ;\n            ;\n                break;\n              case \"refresh\":\n            \n              case \"refreshDelay\":\n                this.exitState({\n                    JSBNG__status: ((\"refresh_\" + ((sa.reason || 0)))),\n                    stateId: qa\n                }, ra);\n                break;\n              case \"fullReload\":\n                s.clear();\n                da.log(\"invalid_history\");\n                i.inform(k.ON_INVALID_HISTORY);\n                this.exitState({\n                    JSBNG__status: k.ERROR_MISSING,\n                    stateId: qa\n                }, ra);\n                break;\n              case \"msg\":\n                var va, wa, xa, ya;\n                pa(true);\n                wa = sa.ms;\n                xa = ((ha.seq - wa.length));\n                for (va = 0; ((va < wa.length)); va++, xa++) {\n                    if (((xa >= ua))) {\n                        ya = wa[va];\n                        if (ya.type) {\n                            if (((((ya.type === \"messaging\")) && ya.message))) {\n                                var za = ((ya.unread_counts && ya.unread_counts.inbox));\n                                da.debug(\"message\", {\n                                    type: \"messaging\",\n                                    inbox_unread: za,\n                                    tid: ya.message.tid,\n                                    mid: ya.message.mid\n                                });\n                            }\n                             else if (((ya.type === \"m_messaging\"))) {\n                                da.debug(\"message\", {\n                                    type: \"m_messaging\",\n                                    tid: ya.tid,\n                                    mid: ya.uuid\n                                });\n                            }\n                             else da.debug(\"message\", {\n                                type: ya.type\n                            });\n                            \n                        ;\n                        ;\n                            i.inform(k.getArbiterType(ya.type), {\n                                obj: ya\n                            });\n                        }\n                    ;\n                    ;\n                    }\n                     else da.warn(\"seq_regression\", {\n                        seq: xa,\n                        last_seq: ua,\n                        messages: wa.length\n                    });\n                ;\n                ;\n                };\n            ;\n                break;\n              case \"heartbeat\":\n                if (ha.inStreaming) {\n                    var ab = JSBNG__Date.now();\n                    if (((this.heartbeats.length > 0))) {\n                        var bb = ((ab - this.heartbeats[((this.heartbeats.length - 1))]));\n                        da.log(\"heartbeat_interval\", {\n                            client_id: ha.sessionID,\n                            interval: bb\n                        });\n                    }\n                ;\n                ;\n                    this.heartbeats.push(ab);\n                }\n            ;\n            ;\n                break;\n              default:\n                da.error(\"unknown_msg_type\", {\n                    type: ta\n                });\n                break;\n            };\n        ;\n        },\n        _enter_init: function() {\n            if (((ja.init >= ca.getConfig(\"MAX_INIT_FAILS\", 2)))) {\n                return this.exitState.bind(this, {\n                    JSBNG__status: k.ERROR_MAX,\n                    stateId: ia\n                }).defer();\n            }\n        ;\n        ;\n            this._initTimer = this.exitState.bind(this, {\n                JSBNG__status: k.ERROR,\n                stateId: ia\n            }, \"timeout\").defer(ha.IFRAME_LOAD_TIMEOUT, false);\n        },\n        _enter_reconnect: function(qa) {\n            var ra = ia;\n            if (!u.hasUserCookie()) {\n                da.warn(\"no_user_cookie\");\n                (function() {\n                    ca._shutdownHint = k.HINT_AUTH;\n                    ca.exitState({\n                        JSBNG__status: k.ERROR_SHUTDOWN,\n                        stateId: ra\n                    });\n                }).defer();\n                return;\n            }\n        ;\n        ;\n            var sa = {\n                reason: qa,\n                fb_dtsg: o.fb_dtsg\n            };\n            if (o.fb_isb) {\n                sa.fb_isb = o.fb_isb;\n            }\n        ;\n        ;\n            if (ea) {\n                ea(sa);\n            }\n        ;\n        ;\n            var ta = new p(\"GET\", \"/ajax/presence/reconnect.php\", sa);\n            ta.onSuccess = (function() {\n                ca.configure(ta.json);\n                s.store();\n                this.exitState({\n                    JSBNG__status: k.OK,\n                    stateId: ra\n                });\n            }).bind(this);\n            ta.onError = (function() {\n                var ua = ((ta.json && ta.json.error));\n                if (((((ta.errorType == h.TRANSPORT_ERROR)) || ((ta.errorType == h.PROXY_ERROR))))) {\n                    this._shutdownHint = k.HINT_CONN;\n                }\n            ;\n            ;\n                if (((ua && ((ua == 1356007))))) {\n                    this._shutdownHint = k.HINT_MAINT;\n                }\n                 else if (((((((ua == 1357001)) || ((ua == 1357004)))) || ((ua == 1348009))))) {\n                    this._shutdownHint = k.HINT_AUTH;\n                }\n                 else this._shutdownHint = null;\n                \n            ;\n            ;\n                this.exitState({\n                    JSBNG__status: ((this._shutdownHint ? k.ERROR_SHUTDOWN : k.ERROR)),\n                    stateId: ra\n                }, ta);\n            }).bind(this);\n            ta.send();\n        },\n        _enter_shutdown: function() {\n            i.inform(k.ON_SHUTDOWN, {\n                reason: this._shutdownHint\n            });\n        },\n        _exit_init: function(qa) {\n            if (this._initTimer) {\n                this._initTimer = JSBNG__clearTimeout(this._initTimer);\n            }\n        ;\n        ;\n            if (((qa == k.ERROR_MAX))) {\n                this._sendIframeError(k.reason_IFrameLoadGiveUp);\n            }\n        ;\n        ;\n        },\n        _exit_pull: function(qa) {\n            if (((qa == k.OK))) {\n                this.lastPullTime = JSBNG__Date.now();\n            }\n        ;\n        ;\n        },\n        _exit_ping: function(qa) {\n            if (((qa == k.OK))) {\n                var ra = ((JSBNG__Date.now() - ((this.lastPullTime || o.start))));\n                if (((ra > ha.STALL_THRESHOLD))) {\n                    return k.ERROR_STALE;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _probeTest: function() {\n            ha.streamingCapable = false;\n            var qa = [], ra = {\n                mode: \"stream\",\n                format: \"json\"\n            }, sa = new x(\"/probe\").setDomain(((ha.host + \".facebook.com\"))).setPort(ha.port).setSecure(x().isSecure()).setQueryData(ra), ta = new h(\"GET\", sa);\n            ta.onJSON = function(ua, va) {\n                if (((((ua && ua.json)) && ((ua.json.t === \"heartbeat\"))))) {\n                    qa.push(JSBNG__Date.now());\n                    if (((qa.length >= 2))) {\n                        var wa = ((qa[1] - qa[0]));\n                        if (((((wa >= ha.PROBE_HEARTBEATS_INTERVAL_LOW)) && ((wa <= ha.PROBE_HEARTBEATS_INTERVAL_HIGH))))) {\n                            ha.streamingCapable = true;\n                            da.log(\"switch_to_streaming\");\n                        }\n                    ;\n                    ;\n                        da.log(\"probe_ok\", {\n                            time: wa\n                        });\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n            ta.onSuccess = function(ua) {\n                if (((qa.length != 2))) {\n                    ha.streamingCapable = false;\n                    da.error(\"probe_error\", {\n                        error: ((\"beats.length = \" + qa.length))\n                    });\n                }\n            ;\n            ;\n            };\n            ta.onError = function(ua) {\n                ha.streamingCapable = false;\n                da.error(\"probe_error\", ua);\n            };\n            da.log(\"probe_request\");\n            ta.send();\n        }\n    };\n    e.exports = ca;\n    if (l.channelConfig) {\n        ca.configure(l.channelConfig);\n        if (/shutdown/.test(l.state)) {\n            ca._shutdownHint = k[l.reason];\n        }\n    ;\n    ;\n        ca.init(l.state, l.reason);\n    }\n;\n;\n});\n__d(\"ChannelConnection\", [\"Arbiter\",\"copyProperties\",\"ChatConfig\",\"Run\",\"SystemEvents\",\"ChannelConstants\",\"ChannelManager\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"ChatConfig\"), j = b(\"Run\"), k = b(\"SystemEvents\"), l = b(\"ChannelConstants\"), m = b(\"ChannelManager\"), n = b(\"JSLogger\"), o = n.create(\"channel_connection\"), p = null, q = null, r = null, s = null, t = 0, u = h(new g(), {\n        CONNECTED: \"chat-connection/connected\",\n        RECONNECTING: \"chat-connection/reconnecting\",\n        SHUTDOWN: \"chat-connection/shutdown\",\n        MUTE_WARNING: \"chat-connection/mute\",\n        UNMUTE_WARNING: \"chat-connection/unmute\"\n    });\n    function v() {\n        if (q) {\n            JSBNG__clearTimeout(q);\n            q = null;\n        }\n    ;\n    ;\n    };\n;\n    function w() {\n        v();\n        o.log(\"unmute_warning\");\n        u.inform(u.UNMUTE_WARNING);\n    };\n;\n    function x(ba) {\n        v();\n        q = w.defer(ba, false);\n        o.log(\"mute_warning\", {\n            time: ba\n        });\n        u.inform(u.MUTE_WARNING);\n    };\n;\n    function y() {\n        if (r) {\n            JSBNG__clearTimeout(r);\n            r = null;\n        }\n    ;\n    ;\n    };\n;\n    function z(ba, ca) {\n        y();\n        if (((((ba === l.ON_ENTER_STATE)) && ((((ca.nextState || ca.state)) === \"pull\"))))) {\n            if (((s !== u.CONNECTED))) {\n                o.log(\"connected\");\n                var da = !s;\n                s = u.CONNECTED;\n                t = 0;\n                u.inform(u.CONNECTED, {\n                    init: da\n                });\n            }\n        ;\n        ;\n        }\n         else if (((((ba === l.ON_ENTER_STATE)) && ((((((ca.nextState || ca.state)) === \"ping\")) || ((!ca.nextState && ((ca.state === \"idle\"))))))))) {\n            r = (function() {\n                var ea = null;\n                if (!((((ca.state === \"idle\")) && !ca.nextState))) {\n                    ea = ((ca.delay || 0));\n                }\n            ;\n            ;\n                o.log(\"reconnecting\", {\n                    delay: ea\n                });\n                if (u.disconnected()) {\n                    o.log(\"reconnecting_ui\", {\n                        delay: ea\n                    });\n                }\n            ;\n            ;\n                s = u.RECONNECTING;\n                ((((ca.state === \"idle\")) && t++));\n                if (((t > 1))) {\n                    u.inform(u.RECONNECTING, ea);\n                }\n                 else if (((!ca.nextState && ((ca.state === \"idle\"))))) {\n                    z(ba, ca);\n                }\n                \n            ;\n            ;\n            }).defer(500, false);\n        }\n         else if (((ba === l.ON_SHUTDOWN))) {\n            o.log(\"shutdown\", {\n                reason: ca.reason\n            });\n            s = u.SHUTDOWN;\n            t = 0;\n            u.inform(u.SHUTDOWN, ca.reason);\n        }\n        \n        \n    ;\n    ;\n    };\n;\n    function aa(ba) {\n        if (((((m.state === \"ping\")) || m.isShutdown()))) {\n            return;\n        }\n    ;\n    ;\n        o.log(\"reconnect\", {\n            now: ba\n        });\n        u.inform(u.RECONNECTING, 0);\n        if (!!ba) {\n            if (((p !== null))) {\n                JSBNG__clearTimeout(p);\n                p = null;\n            }\n        ;\n        ;\n            m.enterState(\"ping!\");\n        }\n         else if (!p) {\n            p = JSBNG__setTimeout(function() {\n                m.enterState(\"ping!\");\n                p = null;\n            }, i.get(\"channel_manual_reconnect_defer_msec\"), false);\n        }\n        \n    ;\n    ;\n    };\n;\n    if (m.isShutdown()) {\n        z(l.ON_SHUTDOWN, m._shutdownHint);\n    }\n     else z(l.ON_ENTER_STATE, {\n        state: m.state,\n        nextState: m.nextState,\n        delay: 0\n    });\n;\n;\n    g.subscribe([l.ON_ENTER_STATE,l.ON_SHUTDOWN,], z);\n    k.subscribe(k.TIME_TRAVEL, function() {\n        aa();\n        x(i.get(\"mute_warning_time_msec\"));\n    });\n    j.onBeforeUnload(y, false);\n    h(u, {\n        disconnected: function() {\n            return ((((s === u.SHUTDOWN)) || ((((((s === u.RECONNECTING)) && !q)) && ((t > 1))))));\n        },\n        isShutdown: function() {\n            return ((s === u.SHUTDOWN));\n        },\n        reconnect: aa,\n        unmuteWarning: w\n    });\n    e.exports = u;\n});\n__d(\"ChatFavoriteList\", [\"AsyncRequest\",\"arrayContains\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"arrayContains\"), i = b(\"emptyFunction\"), j = false, k = [], l = [], m = false;\n    function n() {\n        var r = k.join(\",\");\n        new g(\"/ajax/chat/favorite_list.php\").setData({\n            favorite_list: r\n        }).setHandler(i).setErrorHandler(i).send();\n    };\n;\n    function o(r) {\n        return r.toString();\n    };\n;\n    function p(r) {\n        if (((k.length != r.length))) {\n            return true;\n        }\n    ;\n    ;\n        for (var s = 0; ((s < r.length)); s++) {\n            if (((k[s] !== r[s].toString()))) {\n                return true;\n            }\n        ;\n        ;\n        };\n    ;\n        return false;\n    };\n;\n    var q = {\n        isEditMode: function() {\n            var r = null;\n            d([\"ChatSidebar\",], function(s) {\n                r = s;\n            });\n            return ((((j && r)) && r.isEnabled()));\n        },\n        toggleEditMode: function() {\n            j = !j;\n            if (j) {\n                l = k.slice();\n            }\n        ;\n        ;\n        },\n        get: function() {\n            if (j) {\n                return l.slice();\n            }\n             else return k.slice()\n        ;\n        },\n        isFavored: function(r) {\n            return h(l, r.toString());\n        },\n        init: function(r) {\n            k = r.slice().map(o);\n            l = k.slice();\n        },\n        toggleID: function(r) {\n            if (!j) {\n                return;\n            }\n        ;\n        ;\n            r = r.toString();\n            var s = l.indexOf(r);\n            if (((s >= 0))) {\n                l.splice(s, 1);\n            }\n             else l.push(r);\n        ;\n        ;\n            m = true;\n        },\n        hasChanged: function() {\n            if (m) {\n                m = false;\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        updateList: function(r) {\n            if (!j) {\n                return;\n            }\n        ;\n        ;\n            l = r.map(o);\n        },\n        save: function() {\n            if (p(l)) {\n                k = l;\n                n();\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = q;\n});\n__d(\"ChatContexts\", [], function(a, b, c, d, e, f) {\n    var g = {\n    };\n    function h(k) {\n        var l = ((k ? k.subtext : \"\"));\n        return l;\n    };\n;\n    function i(k, l) {\n        g[k] = l;\n    };\n;\n    var j = {\n        get: function(k) {\n            if (((k in g))) {\n                return g[k];\n            }\n             else return null\n        ;\n        },\n        update: function(k) {\n            {\n                var fin202keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin202i = (0);\n                var l;\n                for (; (fin202i < fin202keys.length); (fin202i++)) {\n                    ((l) = (fin202keys[fin202i]));\n                    {\n                        i(l, k[l]);\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        getShortDisplay: function(k) {\n            return h(j.get(k));\n        }\n    };\n    e.exports = j;\n});\n__d(\"LastMobileActiveTimes\", [\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"tx\"), h = 0, i = {\n    };\n    function j(n) {\n        if (((!h || !n))) {\n            return \"\";\n        }\n    ;\n    ;\n        var o = ((h - n)), p = Math.floor(((o / 60))), q = Math.floor(((p / 60))), r = Math.floor(((q / 24)));\n        if (((p <= 1))) {\n            return g._(\"{count}m\", {\n                count: 1\n            });\n        }\n         else if (((p < 60))) {\n            return g._(\"{count}m\", {\n                count: p\n            });\n        }\n         else if (((q < 24))) {\n            return g._(\"{count}h\", {\n                count: q\n            });\n        }\n         else if (((r < 3))) {\n            return g._(\"{count}d\", {\n                count: r\n            });\n        }\n         else return \"\"\n        \n        \n        \n    ;\n    };\n;\n    function k(n, o) {\n        i[n] = o;\n    };\n;\n    function l(n) {\n        if (((n in i))) {\n            return i[n];\n        }\n         else return 0\n    ;\n    };\n;\n    var m = {\n        update: function(n, o) {\n            h = ((o / 1000));\n            {\n                var fin203keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin203i = (0);\n                var p;\n                for (; (fin203i < fin203keys.length); (fin203i++)) {\n                    ((p) = (fin203keys[fin203i]));\n                    {\n                        k(p, n[p]);\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        getShortDisplay: function(n) {\n            return j(l(n));\n        }\n    };\n    e.exports = m;\n});\n__d(\"ServerTime\", [\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"PresenceInitialData\"), h;\n    function i(k) {\n        h = ((JSBNG__Date.now() - k));\n    };\n;\n    i(g.serverTime);\n    var j = {\n        get: function() {\n            return ((JSBNG__Date.now() - h));\n        },\n        getSkew: function() {\n            return h;\n        },\n        update: function(k) {\n            i(k);\n        }\n    };\n    e.exports = j;\n});\n__d(\"PresenceStatus\", [\"AvailableListConstants\",\"ChatConfig\",\"ChatVisibility\",\"Env\",\"PresencePrivacy\",\"ServerTime\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"ChatConfig\"), i = b(\"ChatVisibility\"), j = b(\"Env\"), k = b(\"PresencePrivacy\"), l = b(\"ServerTime\"), m = b(\"createObjectFrom\"), n = {\n    }, o = {\n    }, p = {\n    }, q = {\n    }, r = {\n        resetPresenceData: function() {\n            n = {\n            };\n            q = {\n            };\n            p = {\n            };\n        },\n        reset: function() {\n            r.resetPresenceData();\n            o = {\n            };\n        },\n        get: function(s) {\n            if (((s == j.user))) {\n                return ((i.isOnline() ? g.ACTIVE : g.OFFLINE));\n            }\n        ;\n        ;\n            var t = g.OFFLINE;\n            if (((s in n))) {\n                t = n[s];\n            }\n        ;\n        ;\n            if (!k.allows(s)) {\n                t = g.OFFLINE;\n            }\n        ;\n        ;\n            if (((t == g.OFFLINE))) {\n                if (o[s]) {\n                    t = g.MOBILE;\n                }\n            ;\n            }\n        ;\n        ;\n            return t;\n        },\n        getGroup: function(s) {\n            if (!h.get(\"chat_group_presence\", 0)) {\n                return g.OFFLINE;\n            }\n        ;\n        ;\n            return ((s.some(function(t) {\n                if (((t == j.user))) {\n                    return false;\n                }\n            ;\n            ;\n                return ((r.get(t) === g.ACTIVE));\n            }) ? g.ACTIVE : g.OFFLINE));\n        },\n        set: function(s, t, u, v) {\n            if (((s == j.user))) {\n                return false;\n            }\n        ;\n        ;\n            switch (t) {\n              case g.OFFLINE:\n            \n              case g.IDLE:\n            \n              case g.ACTIVE:\n            \n              case g.MOBILE:\n                break;\n              default:\n                return false;\n            };\n        ;\n            var w = ((r.get(s) != t));\n            if (u) {\n                p[s] = l.get();\n                q[s] = v;\n            }\n        ;\n        ;\n            n[s] = t;\n            return w;\n        },\n        setMobileFriends: function(s) {\n            o = m(s);\n        },\n        getOnlineIDs: function() {\n            var s, t = [];\n            {\n                var fin204keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin204i = (0);\n                (0);\n                for (; (fin204i < fin204keys.length); (fin204i++)) {\n                    ((s) = (fin204keys[fin204i]));\n                    {\n                        if (((r.get(s) === g.ACTIVE))) {\n                            t.push(s);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return t;\n        },\n        getAvailableIDs: function() {\n            var s = r.getOnlineIDs(), t;\n            {\n                var fin205keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin205i = (0);\n                (0);\n                for (; (fin205i < fin205keys.length); (fin205i++)) {\n                    ((t) = (fin205keys[fin205i]));\n                    {\n                        if (n[t]) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        s.push(t);\n                    };\n                };\n            };\n        ;\n            return s;\n        },\n        getOnlineCount: function() {\n            return r.getOnlineIDs().length;\n        },\n        getPresenceStats: function() {\n            var s = 0, t = 0, u = 0, v = 0, w = 0;\n            {\n                var fin206keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin206i = (0);\n                var x;\n                for (; (fin206i < fin206keys.length); (fin206i++)) {\n                    ((x) = (fin206keys[fin206i]));\n                    {\n                        s += 1;\n                        switch (r.get(x)) {\n                          case g.OFFLINE:\n                            t += 1;\n                            break;\n                          case g.IDLE:\n                            u += 1;\n                            break;\n                          case g.ACTIVE:\n                            v += 1;\n                            break;\n                          case g.MOBILE:\n                            w += 1;\n                            break;\n                          default:\n                            break;\n                        };\n                    ;\n                    };\n                };\n            };\n        ;\n            return {\n                total: s,\n                offline: t,\n                idle: u,\n                active: v,\n                mobile: w\n            };\n        },\n        getDebugInfo: function(s) {\n            return {\n                id: s,\n                presence: n[s],\n                overlaySource: q[s],\n                overlayTime: p[s],\n                mobile: o[s]\n            };\n        }\n    };\n    e.exports = r;\n});\n__d(\"PresencePoller\", [\"AvailableListConstants\",\"AvailableListInitialData\",\"BanzaiODS\",\"ChannelConnection\",\"ChatContexts\",\"ChatFavoriteList\",\"ChatVisibility\",\"Env\",\"JSLogger\",\"LastMobileActiveTimes\",\"Poller\",\"PresenceStatus\",\"PresenceUtil\",\"ServerTime\",\"ShortProfiles\",\"UserActivity\",\"copyProperties\",\"debounceAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"AvailableListInitialData\"), i = b(\"BanzaiODS\"), j = b(\"ChannelConnection\"), k = b(\"ChatContexts\"), l = b(\"ChatFavoriteList\"), m = b(\"ChatVisibility\"), n = b(\"Env\"), o = b(\"JSLogger\"), p = b(\"LastMobileActiveTimes\"), q = b(\"Poller\"), r = b(\"PresenceStatus\"), s = b(\"PresenceUtil\"), t = b(\"ServerTime\"), u = b(\"ShortProfiles\"), v = b(\"UserActivity\"), w = b(\"copyProperties\"), x = b(\"debounceAcrossTransitions\"), y = 5, z = \"/ajax/chat/buddy_list.php\", aa = 1800000, ba = h.pollInterval, ca = h.lazyPollInterval, da = h.lazyThreshold, ea = o.create(\"available_list\"), fa = \"presence_poller\";\n    function ga(ha) {\n        this.$PresencePoller0 = ha;\n        this.$PresencePoller1 = false;\n        this.$PresencePoller2 = h.chatNotif;\n        this.$PresencePoller3 = new q({\n            interval: ba,\n            setupRequest: this.$PresencePoller4.bind(this),\n            clearOnQuicklingEvents: false,\n            dontStart: true\n        });\n        this.$PresencePoller5 = JSBNG__Date.now();\n        this.$PresencePoller6 = JSBNG__Date.now();\n        this.$PresencePoller7 = JSBNG__Date.now();\n        this.$PresencePoller8 = h.updateTime;\n        this.$PresencePoller9 = false;\n        this.$PresencePollera = 0;\n        if (h.favoriteList) {\n            l.init(h.favoriteList);\n        }\n    ;\n    ;\n        this.$PresencePollerb(\"available_initial_data\", h.updateTime, h.availableList, h.lastActiveTimes, h.mobileFriends);\n        v.subscribe(function(ia, ja) {\n            if (((ja.idleness > ba))) {\n                this.forceUpdate();\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n;\n    ga.prototype.start = function() {\n        this.$PresencePoller3.start.bind(this.$PresencePoller3).defer();\n    };\n    ga.prototype.forceUpdate = function() {\n        if (!this.$PresencePoller9) {\n            this.$PresencePoller3.request();\n        }\n    ;\n    ;\n    };\n    ga.prototype.getIsUserIdle = function() {\n        return this.$PresencePoller1;\n    };\n    ga.prototype.getWebChatNotification = function() {\n        return this.$PresencePoller2;\n    };\n    ga.prototype.getCallback = function() {\n        return this.$PresencePoller0;\n    };\n    ga.prototype.$PresencePollerc = function() {\n        return x(function() {\n            this.$PresencePoller0(g.ON_AVAILABILITY_CHANGED);\n        }.bind(this), 0)();\n    };\n    ga.prototype.$PresencePollerb = function(ha, ia, ja, ka, la) {\n        this.$PresencePoller8 = ia;\n        if (!Array.isArray(ja)) {\n            r.resetPresenceData();\n            {\n                var fin207keys = ((window.top.JSBNG_Replay.forInKeys)((ja))), fin207i = (0);\n                var ma;\n                for (; (fin207i < fin207keys.length); (fin207i++)) {\n                    ((ma) = (fin207keys[fin207i]));\n                    {\n                        r.set(ma, ja[ma].a, false, ha);\n                    ;\n                    };\n                };\n            };\n        ;\n        }\n    ;\n    ;\n        if (ka) {\n            p.update(ka, ia);\n        }\n    ;\n    ;\n        if (la) {\n            r.setMobileFriends(la);\n        }\n    ;\n    ;\n        this.$PresencePollerc();\n    };\n    ga.prototype.$PresencePoller4 = function(ha) {\n        if (((j.isShutdown() || !m.isOnline()))) {\n            this.$PresencePoller3.skip();\n            i.bumpEntityKey(fa, \"skip.offline\");\n            return;\n        }\n    ;\n    ;\n        if (((((JSBNG__Date.now() - this.$PresencePoller5)) < ba))) {\n            this.$PresencePoller3.skip();\n            i.bumpEntityKey(fa, \"skip.recent\");\n            return;\n        }\n    ;\n    ;\n        i.bumpEntityKey(fa, \"request\");\n        this.$PresencePoller5 = JSBNG__Date.now();\n        var ia = ((((JSBNG__Date.now() - this.$PresencePoller7)) > aa)), ja = u.getCachedProfileIDs().join(\",\");\n        this.$PresencePoller9 = true;\n        ha.setHandler(this.$PresencePollerd.bind(this)).setErrorHandler(this.$PresencePollere.bind(this)).setOption(\"suppressErrorAlerts\", true).setOption(\"retries\", 1).setData({\n            user: n.user,\n            cached_user_info_ids: ja,\n            fetch_mobile: ia\n        }).setURI(z).setAllowCrossPageTransition(true);\n    };\n    ga.prototype.$PresencePollerd = function(ha) {\n        var ia = ha.getPayload(), ja = ia.buddy_list;\n        if (!ja) {\n            this.$PresencePollere(ha);\n            return;\n        }\n    ;\n    ;\n        i.bumpEntityKey(fa, \"response\");\n        this.$PresencePoller9 = false;\n        this.$PresencePollerf();\n        this.$PresencePoller6 = JSBNG__Date.now();\n        t.update(ia.time);\n        this.$PresencePollera = 0;\n        this.$PresencePollerg();\n        var ka = ja.userInfos;\n        if (ka) {\n            u.setMulti(ka);\n        }\n    ;\n    ;\n        var la = ja.chatContexts;\n        ((la && k.update(la)));\n        this.$PresencePoller1 = ja.userIsIdle;\n        if (((ja.chatNotif !== undefined))) {\n            this.$PresencePoller2 = ja.chatNotif;\n            this.$PresencePoller0(g.ON_CHAT_NOTIFICATION_CHANGED, this.$PresencePoller2);\n        }\n    ;\n    ;\n        this.$PresencePollerb(\"buddy_list_poller\", ia.time, ja.nowAvailableList, ja.last_active_times, ja.mobile_friends);\n    };\n    ga.prototype.$PresencePollere = function(ha) {\n        i.bumpEntityKey(fa, \"error\");\n        if (s.checkMaintenanceError(ha)) {\n            return;\n        }\n    ;\n    ;\n        this.$PresencePoller9 = false;\n        this.$PresencePollera++;\n        if (((this.$PresencePollera++ >= y))) {\n            this.$PresencePoller0(g.ON_UPDATE_ERROR);\n        }\n    ;\n    ;\n    };\n    ga.prototype.$PresencePollerg = function() {\n        var ha = ((v.isActive(da) ? ba : ca));\n        i.bumpEntityKey(fa, ((\"period.\" + ha)));\n        this.$PresencePoller3.JSBNG__setInterval(ha);\n    };\n    ga.prototype.$PresencePollerf = function() {\n        var ha = JSBNG__Date.now(), ia = ((ha - this.$PresencePoller6));\n        ea.log(\"buddylist_presence_stats\", w({\n            duration: ia\n        }, r.getPresenceStats()));\n    };\n    e.exports = ga;\n});\n__d(\"AvailableList\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"AvailableListConstants\",\"ChannelImplementation\",\"ChannelConstants\",\"ChatConfig\",\"ChatFavoriteList\",\"JSLogger\",\"PresencePoller\",\"PresencePrivacy\",\"PresenceStatus\",\"ShortProfiles\",\"TypingDetector\",\"copyProperties\",\"debounceAcrossTransitions\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"AsyncRequest\"), j = b(\"AvailableListConstants\"), k = b(\"ChannelImplementation\").instance, l = b(\"ChannelConstants\"), m = b(\"ChatConfig\"), n = b(\"ChatFavoriteList\"), o = b(\"JSLogger\"), p = b(\"PresencePoller\"), q = b(\"PresencePrivacy\"), r = b(\"PresenceStatus\"), s = b(\"ShortProfiles\"), t = b(\"TypingDetector\"), u = b(\"copyProperties\"), v = b(\"debounceAcrossTransitions\"), w = b(\"emptyFunction\"), x = u({\n    }, j, h);\n    x.subscribe([j.ON_AVAILABILITY_CHANGED,j.ON_UPDATE_ERROR,], function(ea, fa) {\n        g.inform(ea, fa);\n    });\n    var y = v(function() {\n        x.inform(j.ON_AVAILABILITY_CHANGED);\n    }, 0);\n    function z(ea, fa, ga, ha) {\n        var ia = r.set(ea, fa, ga, ha);\n        if (ia) {\n            y();\n        }\n    ;\n    ;\n    };\n;\n    function aa(ea) {\n        var fa = ((ea.payload.availability || {\n        }));\n        {\n            var fin208keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin208i = (0);\n            var ga;\n            for (; (fin208i < fin208keys.length); (fin208i++)) {\n                ((ga) = (fin208keys[fin208i]));\n                {\n                    z(ga, fa[ga], true, \"mercury_tabs\");\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function ba(ea) {\n        var fa = x.getDebugInfo(ea), ga = ((fa.presence == j.ACTIVE)), ha = new i(\"/ajax/mercury/tabs_presence.php\").setData({\n            target_id: ea,\n            to_online: ga,\n            presence_source: fa.overlaySource,\n            presence_time: fa.overlayTime\n        }).setHandler(aa).setErrorHandler(w).setAllowCrossPageTransition(true).send();\n    };\n;\n    function ca(ea, fa) {\n        fa.chat_config = m.getDebugInfo();\n        fa.available_list_debug_info = {\n        };\n        x.getAvailableIDs().forEach(function(ga) {\n            fa.available_list_debug_info[ga] = x.getDebugInfo(ga);\n        });\n        fa.available_list_poll_interval = ((x._poller && x._poller.getInterval()));\n    };\n;\n    var da = new p(function(JSBNG__event) {\n        x.inform(JSBNG__event);\n    });\n    u(x, {\n        get: function(ea) {\n            return r.get(ea);\n        },\n        updateForID: function(ea) {\n            ba(ea);\n        },\n        getWebChatNotification: function() {\n            return da.getWebChatNotification();\n        },\n        isUserIdle: function() {\n            return da.getIsUserIdle();\n        },\n        isReady: function() {\n            return true;\n        },\n        set: function(ea, fa, ga) {\n            z(ea, fa, true, ga);\n        },\n        update: function() {\n            da.forceUpdate();\n        },\n        isIdle: function(ea) {\n            return ((x.get(ea) == j.IDLE));\n        },\n        getOnlineIDs: function() {\n            return r.getOnlineIDs();\n        },\n        getAvailableIDs: function() {\n            return r.getAvailableIDs();\n        },\n        getOnlineCount: function() {\n            return r.getOnlineCount();\n        },\n        getDebugInfo: function(ea) {\n            var fa = r.getDebugInfo(ea), ga = s.getNow(ea);\n            if (ga) {\n                fa.JSBNG__name = ga.JSBNG__name;\n            }\n        ;\n        ;\n            return fa;\n        }\n    });\n    da.start();\n    g.subscribe(o.DUMP_EVENT, ca);\n    g.subscribe(l.getArbiterType(\"favorite_list\"), function(ea, fa) {\n        var ga = fa.obj, ha = ((ga.value ? ga.value.split(\",\") : []));\n        n.init(ha);\n        y();\n    });\n    q.subscribe([\"privacy-changed\",\"privacy-availability-changed\",\"privacy-user-presence-response\",], y);\n    k.subscribe([k.CONNECTED,k.RECONNECTING,k.SHUTDOWN,k.MUTE_WARNING,k.UNMUTE_WARNING,], y);\n    g.subscribe(l.getArbiterType(\"buddylist_overlay\"), function(ea, fa) {\n        var ga = fa.obj.overlay;\n        {\n            var fin209keys = ((window.top.JSBNG_Replay.forInKeys)((ga))), fin209i = (0);\n            var ha;\n            for (; (fin209i < fin209keys.length); (fin209i++)) {\n                ((ha) = (fin209keys[fin209i]));\n                {\n                    x.set(ha, ga[ha].a, ((ga[ha].s || \"channel\")));\n                ;\n                };\n            };\n        };\n    ;\n    });\n    g.subscribe([l.getArbiterType(\"typ\"),l.getArbiterType(\"ttyp\"),], function(ea, fa) {\n        var ga = fa.obj;\n        if (((ga.st === t.TYPING))) {\n            var ha = ga.from;\n            x.set(ha, j.ACTIVE, \"channel-typing\");\n        }\n    ;\n    ;\n    });\n    a.AvailableList = e.exports = x;\n});\n__d(\"ChatImpressionLogger\", [\"AvailableList\",\"AsyncSignal\",\"ChatConfig\",\"ChatVisibility\",\"Poller\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableList\"), h = b(\"AsyncSignal\"), i = b(\"ChatConfig\"), j = b(\"ChatVisibility\"), k = b(\"Poller\"), l = null, m = null, n = {\n        init: function(o) {\n            l = o;\n            var p = i.get(\"chat_impression_logging_periodical\", 0);\n            if (p) {\n                var q = i.get(\"periodical_impression_logging_config.interval\");\n                m = new k({\n                    interval: q,\n                    setupRequest: this.logImps.bind(this),\n                    clearOnQuicklingEvents: false\n                });\n            }\n        ;\n        ;\n            this.init = function() {\n            \n            };\n        },\n        logImps: function(o) {\n            if (!j.isOnline()) {\n                return;\n            }\n        ;\n        ;\n            var p = {\n                source: \"periodical_imps\"\n            }, q = l.getCachedSortedList(), r = [];\n            for (var s = 0; ((s < q.length)); s++) {\n                r[s] = g.get(q[s]);\n            ;\n            };\n        ;\n            p.sorted_list = q.toString();\n            p.list_availability = r.toString();\n            o.setURI(\"/ajax/chat/imps_logging.php\").setData(p);\n        },\n        getOrderedList: function() {\n            return l;\n        },\n        logImpressions: function(o) {\n            var p = [], q = [];\n            if (i.get(\"chat_impression_logging_with_click\")) {\n                p = l.getCachedSortedList();\n                for (var r = 0; ((r < p.length)); r++) {\n                    q[r] = g.get(p[r]);\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            o.sorted_list = p.toString();\n            o.list_availability = q.toString();\n            new h(\"/ajax/chat/ct.php\", o).send();\n        }\n    };\n    e.exports = n;\n});\n__d(\"ChatTypeaheadConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        USER_TYPE: \"user\",\n        THREAD_TYPE: \"thread\",\n        FRIEND_TYPE: \"friend\",\n        NON_FRIEND_TYPE: \"non_friend\",\n        HEADER_TYPE: \"header\"\n    };\n    e.exports = g;\n});\n__d(\"Chat\", [\"Arbiter\",\"AvailableList\",\"ChatImpressionLogger\",\"ChatTypeaheadConstants\",\"MercuryParticipantTypes\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AvailableList\"), i = b(\"ChatImpressionLogger\"), j = b(\"ChatTypeaheadConstants\"), k = b(\"MercuryParticipantTypes\");\n    function l(q, r) {\n        var s = ((r && r.source));\n        if (((((((((((((((s && ((s === \"ordered_list\")))) || ((s === \"more_online_friends\")))) || ((s === \"online_friends\")))) || ((s === \"recent_threads_in_divebar_new\")))) || ((s === \"recent_threads_in_divebar\")))) || ((s === \"presence\")))) || ((s === \"typeahead\"))))) {\n            r.viewport_width = JSBNG__document.body.clientWidth;\n            r.target = q;\n            r.target_presence = h.get(q);\n            i.logImpressions(r);\n        }\n    ;\n    ;\n    };\n;\n    var m = {\n        buddyListNub: \"buddylist-nub/initialized\",\n        JSBNG__sidebar: \"sidebar/initialized\"\n    };\n    function n(q, r) {\n        g.subscribe(m[q], function(JSBNG__event, s) {\n            r(s);\n        });\n    };\n;\n    function o() {\n        return ((((Math.JSBNG__random() * 2147483648)) | 0)).toString(16);\n    };\n;\n    var p = {\n        openTab: function(q, r, s) {\n            if (((((window.External && window.External.Chat)) && window.External.Chat.openWindow))) {\n                window.External.Chat.openWindow(q);\n            }\n        ;\n        ;\n            l.curry(q, s).defer();\n            d([\"MercuryThreads\",], function(t) {\n                if (((((((!r || ((r === k.FRIEND)))) || ((r === j.FRIEND_TYPE)))) || ((r === j.USER_TYPE))))) {\n                    var u = t.get().getCanonicalThreadToUser(q), v = o();\n                    g.inform(\"chat/open-tab\", {\n                        thread_id: u.thread_id,\n                        signature_id: v\n                    });\n                    return;\n                }\n            ;\n            ;\n                if (((r === j.THREAD_TYPE))) {\n                    d([\"ChatOpenTab\",], function(w) {\n                        if (q) {\n                            w.openThread(q);\n                        }\n                         else w.openEmptyTab();\n                    ;\n                    ;\n                    });\n                }\n            ;\n            ;\n            });\n        },\n        openBuddyList: function() {\n            n(\"buddyListNub\", function(q) {\n                q.show();\n                n(\"JSBNG__sidebar\", function(r) {\n                    r.enable();\n                });\n            });\n        },\n        closeBuddyList: function() {\n            n(\"buddyListNub\", function(q) {\n                q.hide();\n            });\n        },\n        toggleSidebar: function() {\n            n(\"JSBNG__sidebar\", function(q) {\n                q.toggle();\n            });\n        },\n        goOnline: function(q) {\n            d([\"ChatVisibility\",], function(r) {\n                r.goOnline(q);\n            });\n        },\n        isOnline: function() {\n            var q = null;\n            d([\"ChatVisibility\",], function(r) {\n                q = r;\n            });\n            return ((q && q.isOnline()));\n        }\n    };\n    a.Chat = e.exports = p;\n}, 3);\n__d(\"OrderedFriendsList\", [\"AvailableList\",\"ChatConfig\",\"createArrayFrom\",\"ShortProfiles\",\"InitialChatFriendsList\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableList\"), h = b(\"ChatConfig\"), i = b(\"createArrayFrom\"), j = b(\"ShortProfiles\"), k = [], l = {\n    }, m = [], n = {\n        contains: function(o) {\n            return ((o in l));\n        },\n        compare: function(o, p) {\n            var q = n.getRank(o), r = n.getRank(p);\n            if (((q !== r))) {\n                return ((q - r));\n            }\n        ;\n        ;\n            var s = j.getNowUnsafe(o), t = j.getNowUnsafe(p), u = ((((s || {\n            })).JSBNG__name || \"~\")).toLowerCase(), v = ((((t || {\n            })).JSBNG__name || \"~\")).toLowerCase();\n            if (((u !== v))) {\n                return ((((u < v)) ? -1 : 1));\n            }\n        ;\n        ;\n            return 0;\n        },\n        getList: function() {\n            if (h.get(\"chat_web_ranking_with_presence\")) {\n                n.reRank();\n            }\n        ;\n        ;\n            var o = i(k);\n            o = o.filter(function(p) {\n                var q = j.getNowUnsafe(p);\n                return ((!q || ((q.type == \"friend\"))));\n            });\n            return o;\n        },\n        getRank: function(o) {\n            return ((((o in l)) ? l[o] : k.length));\n        },\n        reRank: function() {\n            var o = {\n            }, p = {\n            };\n            m.forEach(function(r, s) {\n                var t = r.substr(0, ((r.length - 2))), u = r.substring(((r.length - 1)));\n                if (((typeof (p.uid) == \"undefined\"))) {\n                    if (((typeof (o.uid) == \"undefined\"))) {\n                        o[t] = g.get(t);\n                    }\n                ;\n                ;\n                    var v = o[t];\n                    if (((v == u))) {\n                        p[s] = t;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            });\n            k = [];\n            {\n                var fin210keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin210i = (0);\n                var q;\n                for (; (fin210i < fin210keys.length); (fin210i++)) {\n                    ((q) = (fin210keys[fin210i]));\n                    {\n                        k.push(p[q]);\n                    ;\n                    };\n                };\n            };\n        ;\n            k.forEach(function(r, s) {\n                l[r] = s;\n            });\n        }\n    };\n    (function() {\n        var o = b(\"InitialChatFriendsList\");\n        k = ((o.list.length ? o.list : []));\n        if (h.get(\"chat_web_ranking_with_presence\")) {\n            m = k.slice();\n            n.reRank();\n        }\n    ;\n    ;\n        k.forEach(function(p, q) {\n            l[p] = q;\n        });\n    })();\n    e.exports = ((a.OrderedFriendsList || n));\n});\n__d(\"ChatSidebarConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        LITESTAND_IMAGE_SIZE: 24,\n        LITESTAND_BLENDED_SIZE: 32,\n        IMAGE_SIZE: 28\n    };\n    e.exports = g;\n});\n__d(\"ChatTypeaheadBehavior\", [\"Chat\",\"ChatConfig\",\"ChatFavoriteList\",\"CSS\",\"DOM\",\"JSBNG__Rect\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Chat\"), h = b(\"ChatConfig\"), i = b(\"ChatFavoriteList\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"JSBNG__Rect\"), m = b(\"copyProperties\"), n = b(\"tx\");\n    function o(p) {\n        this._typeahead = p;\n    };\n;\n    m(o.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            var p = this._typeahead;\n            this._subscriptions = [p.subscribe(\"JSBNG__focus\", function() {\n                p.getData().refreshData();\n            }),p.subscribe(\"JSBNG__blur\", function(q) {\n                p.getCore().reset();\n            }),p.subscribe(\"respond\", function(q, r) {\n                if (((r.value && ((r.value === p.getCore().getValue()))))) {\n                    if (!r.results.length) {\n                        var s = h.get(\"divebar_typeahead_group_fof\", 0);\n                        if (((s && !r.isAsync))) {\n                            return;\n                        }\n                    ;\n                    ;\n                        var t = k.create(\"div\", {\n                            className: \"noResults\"\n                        }, \"Friend not found.\");\n                        k.setContent(p.getView().getElement(), t);\n                    }\n                ;\n                ;\n                    j.addClass(p.getElement(), \"hasValue\");\n                }\n            ;\n            ;\n            }),p.subscribe(\"reset\", function() {\n                j.removeClass(p.getElement(), \"hasValue\");\n            }),p.subscribe(\"select\", function(q, r) {\n                if (i.isEditMode()) {\n                    i.toggleID(r.selected.uid);\n                    i.save();\n                }\n                 else {\n                    var s = j.hasClass(JSBNG__document.documentElement, \"sidebarMode\"), t = {\n                        mode: ((s ? \"JSBNG__sidebar\" : \"chatNub\")),\n                        source: \"typeahead\",\n                        type: r.selected.type,\n                        typeahead: true\n                    };\n                    g.openTab(r.selected.uid, r.selected.type, t);\n                }\n            ;\n            ;\n            }),p.subscribe(\"highlight\", function(q, r) {\n                if (((r.index >= 0))) {\n                    var s = p.getView().getItems()[r.index];\n                    if (s) {\n                        var t = new l(s), u = s.offsetParent, v = t.boundWithin(new l(u)).getPositionVector();\n                        t.getPositionVector().sub(v).scrollElementBy(u);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }),];\n        },\n        disable: function() {\n            this._subscriptions.forEach(function(p) {\n                this._typeahead.unsubscribe(p);\n            }.bind(this));\n            this._subscriptions = null;\n        }\n    });\n    e.exports = o;\n});\n__d(\"ChatTypeaheadCore\", [\"function-extensions\",\"Class\",\"JSBNG__Event\",\"Keys\",\"TypeaheadCore\",\"copyProperties\",\"emptyFunction\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Class\"), h = b(\"JSBNG__Event\"), i = b(\"Keys\"), j = b(\"TypeaheadCore\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\"), m = b(\"shield\");\n    function n(o) {\n        this.parent.construct(this, o);\n    };\n;\n    g.extend(n, j);\n    k(n.prototype, {\n        init: function(o, p, q) {\n            this.parent.init(o, p, q);\n            this.informBeginActive = false;\n            this.informEndActive = false;\n            this.data.subscribe(\"respond\", function() {\n                if (this.informBeginActive) {\n                    this.informBeginActive = false;\n                    this.inform(\"sidebar/typeahead/active\", true);\n                }\n                 else if (this.informEndActive) {\n                    this.informEndActive = false;\n                    this.inform(\"sidebar/typeahead/active\", false);\n                }\n                \n            ;\n            ;\n            }.bind(this));\n        },\n        handleTab: l,\n        keydown: function(JSBNG__event) {\n            var o = h.getKeyCode(JSBNG__event);\n            if (((o === i.ESC))) {\n                m(this.reset, this).defer();\n                return JSBNG__event.kill();\n            }\n        ;\n        ;\n            return this.parent.keydown(JSBNG__event);\n        },\n        checkValue: function() {\n            var o = this.getValue(), p = this.value;\n            if (((o == p))) {\n                return;\n            }\n        ;\n        ;\n            if (((p && !o))) {\n                this.typeaheadActive = false;\n                this.informEndActive = true;\n            }\n             else if (((!p && o))) {\n                this.typeaheadActive = true;\n                this.informBeginActive = true;\n                this.inform(\"sidebar/typeahead/preActive\");\n            }\n            \n        ;\n        ;\n            this.parent.checkValue();\n        }\n    });\n    e.exports = n;\n});\n__d(\"ChatTypeaheadDataSource\", [\"Class\",\"DataSource\",\"Env\",\"JSLogger\",\"MercuryParticipantTypes\",\"OrderedFriendsList\",\"Run\",\"ShortProfiles\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DataSource\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"MercuryParticipantTypes\"), l = b(\"OrderedFriendsList\"), m = b(\"Run\"), n = b(\"ShortProfiles\"), o = b(\"copyProperties\");\n    function p(q) {\n        q = ((q || {\n        }));\n        q.kanaNormalization = true;\n        this.parent.construct(this, q);\n        this.persistOnRefresh = ((q.persistOnRefresh !== false));\n        this.showOfflineUsers = !!q.showOfflineUsers;\n        this._jslog = j.create(\"chat_typeahead\");\n        this._jslog.log(\"created\");\n    };\n;\n    g.extend(p, h);\n    o(p.prototype, {\n        init: function() {\n            this._jslog.log(\"init\");\n            this.parent.init();\n            this._update();\n        },\n        bootstrap: function() {\n            this._jslog.log(\"bootstrap\");\n            this.parent.bootstrap();\n            if (this.showOfflineUsers) {\n                this._jslog.log(\"show_offline_users\");\n                this._jslog.log(\"ensured_short_profiles\");\n                if (n.hasAll()) {\n                    this._update();\n                }\n                 else {\n                    this._jslog.log(\"fetch_all_short_profiles\");\n                    n.fetchAll();\n                    this.inform(\"activity\", {\n                        activity: true\n                    });\n                    var q = n.subscribe(\"updated\", function() {\n                        this.inform(\"activity\", {\n                            activity: false\n                        });\n                        this._update();\n                    }.bind(this));\n                    if (!this.persistOnRefresh) {\n                        m.onLeave(function() {\n                            n.unsubscribe(q);\n                        });\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _update: function() {\n            d([\"AvailableList\",], function(q) {\n                var r = this.value;\n                this.dirty();\n                var s = n.getCachedProfileIDs(), t = s.filter(function(v) {\n                    var w = n.getNow(v);\n                    return ((w.type === k.FRIEND));\n                });\n                t.sort(l.compare);\n                var u = [];\n                t.forEach(function(v) {\n                    if (((v == i.user))) {\n                        return;\n                    }\n                ;\n                ;\n                    var w = q.get(v);\n                    if (((!this.showOfflineUsers && ((w !== q.ACTIVE))))) {\n                        return;\n                    }\n                ;\n                ;\n                    var x = n.getNow(v), y = x.additionalName;\n                    if (x.hasOwnProperty(\"searchTokens\")) {\n                        y = ((((y !== null)) ? ((((y + \" \")) + x.searchTokens.join(\" \"))) : x.searchTokens.join(\" \")));\n                    }\n                ;\n                ;\n                    u.push({\n                        uid: v,\n                        text: x.JSBNG__name,\n                        tokens: y,\n                        localized_text: x.JSBNG__name,\n                        additional_text: x.additionalName,\n                        photo: x.thumbSrc,\n                        type: x.type\n                    });\n                }.bind(this));\n                if (u.length) {\n                    this.addEntries(u);\n                }\n            ;\n            ;\n                this.value = r;\n                if (r) {\n                    this.query(r);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        refreshData: function() {\n            d([\"AvailableList\",], function(q) {\n                q.update();\n            }.bind(this));\n        }\n    });\n    e.exports = p;\n});\n__d(\"ChatSidebarHeader.react\", [\"React\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"React\"), h = b(\"cx\"), i = g.createClass({\n        displayName: \"ReactChatSidebarHeader\",\n        render: function() {\n            return (g.DOM.div({\n                className: \"_55ob\"\n            }, g.DOM.div({\n                className: \"_55oc\"\n            }, this.props.JSBNG__name)));\n        }\n    });\n    e.exports = i;\n});\n__d(\"ChatSidebarItem.react\", [\"AvailableListConstants\",\"ChatConfig\",\"ChatFavoriteList\",\"ChatSidebarConstants\",\"JSBNG__Image.react\",\"Link.react\",\"React\",\"SplitImage.react\",\"cx\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"ChatConfig\"), i = b(\"ChatFavoriteList\"), j = b(\"ChatSidebarConstants\"), k = b(\"JSBNG__Image.react\"), l = b(\"Link.react\"), m = b(\"React\"), n = b(\"SplitImage.react\"), o = b(\"cx\"), p = b(\"ix\"), q = 9, r = m.createClass({\n        displayName: \"ChatSidebarItem\",\n        render: function() {\n            var s = (((((\"_55ln\") + ((this.props.context ? ((\" \" + \"_55lo\")) : \"\")))) + ((((this.props.unreadCount && h.get(\"litestand_buddylist_count\"))) ? ((\" \" + \"_5bom\")) : \"\")))), t;\n            if (this.props.litestandSidebar) {\n                t = m.DOM.div({\n                    \"aria-label\": this.props.JSBNG__name,\n                    className: \"_4_vf\",\n                    \"data-hover\": \"tooltip\",\n                    \"data-tooltip-position\": \"right\"\n                });\n            }\n        ;\n        ;\n            return (l({\n                className: s,\n                href: this.props.href,\n                onClick: this.props.onClick,\n                rel: \"ignore\"\n            }, m.DOM.div({\n                className: \"_55lp\"\n            }, this.renderFavorite(), m.DOM.div({\n                className: \"_56p9\"\n            }, this.renderImage(), m.DOM.div({\n                className: \"_568w\"\n            })), m.DOM.div({\n                className: \"_5bon\"\n            }, this.renderUnreadCount(), this.renderStatus()), m.DOM.div({\n                className: \"_55lr\"\n            }, this.props.JSBNG__name), m.DOM.div({\n                className: \"_55ls\"\n            }, this.props.context)), t));\n        },\n        renderFavorite: function() {\n            if (((this.props.isAdded === undefined))) {\n                return null;\n            }\n        ;\n        ;\n            var s = null;\n            if (this.props.litestandSidebar) {\n                s = ((this.props.isAdded ? p(\"/images/litestand/bookmarks/sidebar/remove.png\") : p(\"/images/litestand/bookmarks/sidebar/add.png\")));\n            }\n             else s = ((this.props.isAdded ? p(\"/images/chat/delete.png\") : p(\"/images/chat/add.png\")));\n        ;\n        ;\n            var t = (((\"_568x\") + ((!this.props.showEditButton ? ((\" \" + \"hidden_elem\")) : \"\"))));\n            return (m.DOM.div({\n                className: t,\n                onClick: this.props.onEditClick\n            }, k({\n                className: \"_568y\",\n                src: s\n            })));\n        },\n        renderImage: function() {\n            var s = ((this.props.imageSize || j.IMAGE_SIZE));\n            return n({\n                size: s,\n                srcs: this.props.images\n            });\n        },\n        renderUnreadCount: function() {\n            var s = this.props.unreadCount;\n            if (((!s || !h.get(\"litestand_buddylist_count\")))) {\n                return null;\n            }\n        ;\n        ;\n            var t = (((\"_5boo\") + ((((s > q)) ? ((\" \" + \"_5bop\")) : \"\"))));\n            if (((s > q))) {\n                s = ((q + \"+\"));\n            }\n        ;\n        ;\n            return (m.DOM.div({\n                className: t\n            }, s));\n        },\n        renderStatus: function() {\n            var s = this.getStatusSrc();\n            if (!s) {\n                return null;\n            }\n        ;\n        ;\n            if (((((this.props.unreadCount && h.get(\"litestand_blended_sidebar\"))) && h.get(\"litestand_buddylist_count\")))) {\n                return;\n            }\n        ;\n        ;\n            var t = ((h.get(\"divebar_favorite_list\", 0) && i.isEditMode()));\n            if (t) {\n                return;\n            }\n        ;\n        ;\n            return (m.DOM.div({\n                className: \"_568z\"\n            }, m.DOM.div({\n                className: \"_568-\"\n            }, this.props.statusTime), k({\n                className: \"_568_\",\n                src: s\n            })));\n        },\n        getStatusSrc: function() {\n            switch (this.props.JSBNG__status) {\n              case g.ACTIVE:\n            \n              case g.IDLE:\n                if (this.props.litestandSidebar) {\n                    return ((h.get(\"litestand_blended_sidebar\") ? p(\"/images/litestand/sidebar/blended/online.png\") : p(\"/images/litestand/sidebar/online.png\")));\n                }\n            ;\n            ;\n                return p(\"/images/chat/status/online.png\");\n              case g.MOBILE:\n                if (this.props.litestandSidebar) {\n                    return ((h.get(\"litestand_blended_sidebar\") ? p(\"/images/litestand/sidebar/blended/pushable.png\") : p(\"/images/litestand/sidebar/pushable.png\")));\n                }\n            ;\n            ;\n                return p(\"/images/chat/status/mobile.png\");\n            };\n        ;\n            return null;\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatSidebarThread.react\", [\"ChatSidebarItem.react\",\"WebMessengerPermalinkConstants\",\"React\",\"MercuryThreadMetadataRawRenderer\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatSidebarItem.react\"), h = b(\"WebMessengerPermalinkConstants\"), i = b(\"React\"), j = b(\"MercuryThreadMetadataRawRenderer\"), k = i.createClass({\n        displayName: \"ChatSidebarThread\",\n        render: function() {\n            var n = this.props.JSBNG__name, o = l(this.props.threadID, this.props.participants), p = ((n ? o : undefined)), q = h.getURIPathForThreadID(this.props.threadID), r = m(this.props.image, this.props.participants), s = ((n ? n : o));\n            return (g({\n                context: p,\n                href: {\n                    url: q\n                },\n                imageSize: this.props.imageSize,\n                images: r,\n                litestandSidebar: this.props.litestandSidebar,\n                JSBNG__name: s,\n                JSBNG__status: this.props.JSBNG__status,\n                unreadCount: this.props.unreadCount\n            }));\n        }\n    });\n    function l(n, o) {\n        return j.renderRawParticipantList(n, o, o.length, {\n            names_renderer: j.renderShortNames\n        });\n    };\n;\n    function m(n, o) {\n        if (n) {\n            return n;\n        }\n    ;\n    ;\n        return o.map(function(p) {\n            return p.image_src;\n        });\n    };\n;\n    e.exports = k;\n});\n__d(\"ChatSidebarUser.react\", [\"ChatFavoriteList\",\"WebMessengerPermalinkConstants\",\"ChatConfig\",\"React\",\"ChatSidebarItem.react\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatFavoriteList\"), h = b(\"WebMessengerPermalinkConstants\"), i = b(\"ChatConfig\"), j = b(\"React\"), k = b(\"ChatSidebarItem.react\"), l = j.createClass({\n        displayName: \"ChatSidebarUser\",\n        render: function() {\n            var m = h.getURIPathForIDOrVanity(this.props.userID), n = g.isFavored(this.props.userID), o = function() {\n                g.toggleID(this.props.userID);\n            }.bind(this), p = ((i.get(\"divebar_favorite_list\", 0) ? n : undefined));\n            return (k({\n                href: {\n                    url: m\n                },\n                imageSize: this.props.imageSize,\n                images: this.props.image,\n                litestandSidebar: this.props.litestandSidebar,\n                isAdded: p,\n                showEditButton: g.isEditMode(),\n                JSBNG__name: this.props.JSBNG__name,\n                onEditClick: o,\n                JSBNG__status: this.props.JSBNG__status,\n                statusTime: this.props.statusTime,\n                context: this.props.context\n            }));\n        }\n    });\n    e.exports = l;\n});\n__d(\"ChatTypeaheadRenderer\", [\"AvailableListConstants\",\"ChatConfig\",\"ChatSidebarConstants\",\"ChatSidebarHeader.react\",\"ChatSidebarThread.react\",\"ChatSidebarUser.react\",\"ChatTypeaheadConstants\",\"DOM\",\"LastMobileActiveTimes\",\"MercuryParticipants\",\"PresenceStatus\",\"React\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableListConstants\"), h = b(\"ChatConfig\"), i = b(\"ChatSidebarConstants\"), j = b(\"ChatSidebarHeader.react\"), k = b(\"ChatSidebarThread.react\"), l = b(\"ChatSidebarUser.react\"), m = b(\"ChatTypeaheadConstants\"), n = b(\"DOM\"), o = b(\"LastMobileActiveTimes\"), p = b(\"MercuryParticipants\"), q = b(\"PresenceStatus\"), r = b(\"React\"), s = {\n    };\n    function t(z, aa) {\n        if (!((z in s))) {\n            s[z] = n.create(\"li\");\n        }\n    ;\n    ;\n        r.renderComponent(aa, s[z]);\n        return s[z];\n    };\n;\n    function u(z) {\n        return t(z.text, j({\n            JSBNG__name: z.text\n        }));\n    };\n;\n    function v() {\n        if (((h.get(\"litestand\", 0) && !h.get(\"test_old_divebar\")))) {\n            return ((h.get(\"litestand_blended_sidebar\") ? i.LITESTAND_BLENDED_SIZE : i.LITESTAND_IMAGE_SIZE));\n        }\n    ;\n    ;\n        return i.IMAGE_SIZE;\n    };\n;\n    function w(z) {\n        var aa = z.mercury_thread.participants.map(function(ba) {\n            return p.getUserID(ba);\n        });\n        return t(z.uid, k({\n            image: z.mercury_thread.image_src,\n            imageSize: v(),\n            litestandSidebar: ((h.get(\"litestand\", 0) && !h.get(\"test_old_divebar\"))),\n            JSBNG__name: z.mercury_thread.JSBNG__name,\n            participants: z.participants_to_render,\n            JSBNG__status: q.getGroup(aa),\n            threadID: z.uid\n        }));\n    };\n;\n    function x(z) {\n        var aa = q.get(z.uid), ba = ((((aa === g.MOBILE)) ? o.getShortDisplay(z.uid) : null)), ca = ((((z.render_type == \"non_friend\")) ? z.subtext : null));\n        return t(z.uid, l({\n            image: z.photo,\n            imageSize: v(),\n            litestandSidebar: h.get(\"litestand\", 0),\n            JSBNG__name: z.text,\n            JSBNG__status: aa,\n            statusTime: ba,\n            userID: z.uid,\n            context: ca\n        }));\n    };\n;\n    function y(z, aa) {\n        if (((z.type === m.HEADER_TYPE))) {\n            return u(z);\n        }\n    ;\n    ;\n        if (((z.type == m.THREAD_TYPE))) {\n            return w(z);\n        }\n    ;\n    ;\n        return x(z);\n    };\n;\n    e.exports = y;\n});\n__d(\"ChatTypeaheadView\", [\"BucketedTypeaheadView\",\"ChatConfig\",\"Class\",\"ChatTypeaheadConstants\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"BucketedTypeaheadView\"), h = b(\"ChatConfig\"), i = b(\"Class\"), j = b(\"ChatTypeaheadConstants\"), k = b(\"copyProperties\"), l = b(\"tx\"), m = h.get(\"divebar_typeahead_group_fof\", 0);\n    function n(o, p) {\n        this.parent.construct(this, o, p);\n        this.typeObjects = {\n        };\n        this.typeObjectsOrder = [];\n        this.typeObjects[j.NON_FRIEND_TYPE] = {\n            uid: j.NON_FRIEND_TYPE,\n            type: j.HEADER_TYPE,\n            text: \"FRIENDS OF FRIENDS\"\n        };\n        this.typeObjectsOrder.push(j.NON_FRIEND_TYPE);\n        this.typeObjects[j.THREAD_TYPE] = {\n            uid: j.THREAD_TYPE,\n            type: j.HEADER_TYPE,\n            text: \"GROUP CONVERSATIONS\"\n        };\n        this.typeObjectsOrder.push(j.THREAD_TYPE);\n        this.typeObjects[j.FRIEND_TYPE] = {\n            disabled: true,\n            uid: j.FRIEND_TYPE,\n            type: j.HEADER_TYPE,\n            text: \"FRIENDS\"\n        };\n        this.typeObjectsOrder.push(j.FRIEND_TYPE);\n    };\n;\n    i.extend(n, g);\n    k(n.prototype, {\n        buildBuckets: function(o, p) {\n            if (m) {\n                p = p.reverse();\n            }\n        ;\n        ;\n            p = this.parent.buildBuckets(o, p);\n            if (!m) {\n                p = p.filter(function(q) {\n                    return ((q && !q.disabled));\n                });\n            }\n        ;\n        ;\n            return p;\n        },\n        getDefaultIndex: function(o) {\n            if (!m) {\n                return this.parent.getDefaultIndex(o);\n            }\n        ;\n        ;\n            if (((o.length === 0))) {\n                return -1;\n            }\n        ;\n        ;\n            var p = ((o.length - 1));\n            while (((!this.isHighlightable(o[p]) && ((p >= 0))))) {\n                p--;\n            ;\n            };\n        ;\n            return p;\n        }\n    });\n    e.exports = n;\n});\n__d(\"legacy:ChatTypeaheadBehavior\", [\"ChatTypeaheadBehavior\",], function(a, b, c, d) {\n    var e = b(\"ChatTypeaheadBehavior\");\n    if (!a.TypeaheadBehaviors) {\n        a.TypeaheadBehaviors = {\n        };\n    }\n;\n;\n    a.TypeaheadBehaviors.chatTypeahead = function(f) {\n        f.enableBehavior(e);\n    };\n}, 3);\n__d(\"legacy:cookie\", [\"Cookie\",], function(a, b, c, d) {\n    var e = b(\"Cookie\");\n    a.getCookie = e.get;\n    a.setCookie = e.set;\n    a.clearCookie = e.clear;\n}, 3);\n__d(\"LayerHideOnSuccess\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i) {\n        this._layer = i;\n    };\n;\n    g(h.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe(\"success\", this._layer.hide.bind(this._layer));\n        },\n        disable: function() {\n            if (this._subscription) {\n                this._subscription.unsubscribe();\n                this._subscription = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = h;\n});\n__d(\"Overlay\", [\"Class\",\"CSS\",\"DataStore\",\"DOM\",\"Layer\",\"LayerButtons\",\"LayerDestroyOnHide\",\"LayerFadeOnHide\",\"LayerFadeOnShow\",\"LayerFormHooks\",\"LayerHideOnBlur\",\"LayerHideOnEscape\",\"LayerHideOnSuccess\",\"LayerHideOnTransition\",\"LayerTabIsolation\",\"LayerMouseHooks\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"Layer\"), l = b(\"LayerButtons\"), m = b(\"LayerDestroyOnHide\"), n = b(\"LayerFadeOnHide\"), o = b(\"LayerFadeOnShow\"), p = b(\"LayerFormHooks\"), q = b(\"LayerHideOnBlur\"), r = b(\"LayerHideOnEscape\"), s = b(\"LayerHideOnSuccess\"), t = b(\"LayerHideOnTransition\"), u = b(\"LayerTabIsolation\"), v = b(\"LayerMouseHooks\"), w = b(\"copyProperties\");\n    function x(y, z) {\n        y = w({\n            buildWrapper: true\n        }, ((y || {\n        })));\n        this._shouldBuildWrapper = y.buildWrapper;\n        this.parent.construct(this, y, z);\n    };\n;\n    g.extend(x, k);\n    w(x.prototype, {\n        _configure: function(y, z) {\n            this.parent._configure(y, z);\n            var aa = this.getRoot();\n            this._overlay = ((j.scry(aa, \"div.uiOverlay\")[0] || aa));\n            h.hide(aa);\n            j.appendContent(this.getInsertParent(), aa);\n            i.set(this._overlay, \"overlay\", this);\n            var ba = i.get(this._overlay, \"width\");\n            ((ba && this.setWidth(ba)));\n            if (this.setFixed) {\n                this.setFixed(((i.get(this._overlay, \"fixed\") == \"true\")));\n            }\n        ;\n        ;\n            if (((i.get(this._overlay, \"fadeonshow\") != \"false\"))) {\n                this.enableBehavior(o);\n            }\n        ;\n        ;\n            if (((i.get(this._overlay, \"fadeonhide\") != \"false\"))) {\n                this.enableBehavior(n);\n            }\n        ;\n        ;\n            if (((i.get(this._overlay, \"hideonsuccess\") != \"false\"))) {\n                this.enableBehavior(s);\n            }\n        ;\n        ;\n            if (((i.get(this._overlay, \"hideonblur\") == \"true\"))) {\n                this.enableBehavior(q);\n            }\n        ;\n        ;\n            if (((i.get(this._overlay, \"destroyonhide\") != \"false\"))) {\n                this.enableBehavior(m);\n            }\n        ;\n        ;\n            return this;\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([l,p,v,r,t,u,]);\n        },\n        initWithoutBuildingWrapper: function() {\n            this._shouldBuildWrapper = false;\n            return this.init.apply(this, arguments);\n        },\n        _buildWrapper: function(y, z) {\n            z = this.parent._buildWrapper(y, z);\n            if (!this._shouldBuildWrapper) {\n                this._contentRoot = z;\n                return z;\n            }\n        ;\n        ;\n            this._contentRoot = j.create(\"div\", {\n                className: \"uiOverlayContent\"\n            }, z);\n            return j.create(\"div\", {\n                className: \"uiOverlay\"\n            }, this._contentRoot);\n        },\n        getContentRoot: function() {\n            return this._contentRoot;\n        },\n        destroy: function() {\n            i.remove(this.getRoot(), \"overlay\");\n            this.parent.destroy();\n        }\n    });\n    e.exports = x;\n});\n__d(\"ReminderStory\", [\"AsyncRequest\",\"endsWith\",\"JSBNG__Event\",\"DOMQuery\",\"ScrollableArea\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"endsWith\"), i = b(\"JSBNG__Event\"), j = b(\"DOMQuery\"), k = b(\"ScrollableArea\");\n    function l(m, n, o) {\n        i.listen(m, \"click\", function(p) {\n            n.show();\n            if (o) {\n                var q = {\n                    context_data: o\n                };\n                new g().setURI(\"/growth/reminder/logging.php\").setData(q).send();\n            }\n        ;\n        ;\n        });\n        n.subscribe(\"aftershow\", function() {\n            var p = n.getRoot(), q = j.scry(p, \".inlineReplyTextArea\");\n            if (((q.length > 0))) {\n                q[0].JSBNG__focus();\n            }\n        ;\n        ;\n            var r = j.scry(p, \".jewelItemNew\"), s = [];\n            {\n                var fin211keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin211i = (0);\n                var t;\n                for (; (fin211i < fin211keys.length); (fin211i++)) {\n                    ((t) = (fin211keys[fin211i]));\n                    {\n                        var u = r[t].getAttribute(\"id\");\n                        if (((u && h(u, \"_1_req\")))) {\n                            s = s.concat(u.replace(\"_1_req\", \"\"));\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((s.length > 0))) {\n                new g().setURI(\"/friends/requests/log_impressions\").setData({\n                    ids: s.join(\",\"),\n                    ref: \"reminder_box\"\n                }).send();\n            }\n        ;\n        ;\n            var v = j.JSBNG__find(p, \"#SuggestBelowInvite\");\n            if (v) {\n                new g().setURI(\"/ajax/pages/reminder/recommendations\").send();\n            }\n        ;\n        ;\n            k.poke(j.scry(p, \".uiScrollableArea\")[0]);\n        });\n    };\n;\n    e.exports = l;\n});\n__d(\"ContextualDialogFooterLink\", [\"JSBNG__Event\",\"copyProperties\",\"CSS\",\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"CSS\"), j = b(\"DOM\");\n    function k(l) {\n        this._layer = l;\n    };\n;\n    h(k.prototype, {\n        _subscriptions: null,\n        enable: function() {\n            var l = this._layer.getRoot(), m = j.scry(l, \".uiContextualDialogFooterLink\")[0], n = \"uiContextualDialogHoverFooterArrow\";\n            this._subscriptions = [g.listen(m, \"mouseenter\", i.addClass.curry(l, n)),g.listen(m, \"mouseleave\", i.removeClass.curry(l, n)),];\n        },\n        disable: function() {\n            this._subscriptions.forEach(function(l) {\n                l.remove();\n            });\n            this._subscriptions = null;\n        }\n    });\n    e.exports = k;\n});\n__d(\"LegacyContextualDialog\", [\"Arbiter\",\"ArbiterMixin\",\"ARIA\",\"Bootloader\",\"Class\",\"ContextualDialogFooterLink\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Locale\",\"Overlay\",\"Parent\",\"Style\",\"Vector\",\"$\",\"copyProperties\",\"getOverlayZIndex\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"ARIA\"), j = b(\"Bootloader\"), k = b(\"Class\"), l = b(\"ContextualDialogFooterLink\"), m = b(\"ContextualThing\"), n = b(\"CSS\"), o = b(\"DataStore\"), p = b(\"DOM\"), q = b(\"JSBNG__Event\"), r = b(\"Locale\"), s = b(\"Overlay\"), t = b(\"Parent\"), u = b(\"Style\"), v = b(\"Vector\"), w = b(\"$\"), x = b(\"copyProperties\"), y = b(\"getOverlayZIndex\"), z = b(\"shield\");\n    function aa(ba, ca) {\n        this.parent.construct(this, ba, ca);\n    };\n;\n    k.extend(aa, s);\n    x(aa, h, {\n        ARROW_OFFSET: 15,\n        ARROW_LENGTH: 16,\n        ARROW_INSET: 22,\n        TOP_MARGIN: 50,\n        BOTTOM_MARGIN: 30,\n        LEFT_MARGIN: 15,\n        RIGHT_MARGIN: 30,\n        MIN_TOP_GAP: 5,\n        POSITION_TO_CLASS: {\n            above: \"uiContextualDialogAbove\",\n            below: \"uiContextualDialogBelow\",\n            left: \"uiContextualDialogLeft\",\n            right: \"uiContextualDialogRight\"\n        },\n        RIGHT_ALIGNED_CLASS: \"uiContextualDialogRightAligned\",\n        ARROW_CLASS: {\n            bottom: \"uiContextualDialogArrowBottom\",\n            JSBNG__top: \"uiContextualDialogArrowTop\",\n            right: \"uiContextualDialogArrowRight\",\n            left: \"uiContextualDialogArrowLeft\"\n        },\n        POSITION_TO_ARROW: {\n            above: \"bottom\",\n            below: \"JSBNG__top\",\n            left: \"right\",\n            right: \"left\"\n        },\n        getInstance: function(ba) {\n            var ca = o.get(ba, \"LegacyContextualDialog\");\n            if (!ca) {\n                var da = t.byClass(ba, \"uiOverlay\");\n                if (da) {\n                    ca = o.get(da, \"overlay\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return ca;\n        }\n    });\n    x(aa.prototype, {\n        _scrollListener: null,\n        _scrollParent: null,\n        _width: null,\n        _fixed: false,\n        _hasFooter: false,\n        _showSubscription: null,\n        _hideSubscription: null,\n        _setContextSubscription: null,\n        _resizeListener: null,\n        _reflowSubscription: null,\n        _configure: function(ba, ca) {\n            this.parent._configure(ba, ca);\n            var da = this.getRoot(), ea = o.get.curry(da);\n            this.setAlignH(ea(\"alignh\", \"left\"));\n            this.setOffsetX(ea(\"offsetx\", 0));\n            this.setOffsetY(ea(\"offsety\", 0));\n            this.setPosition(ea(\"position\", \"above\"));\n            this._hasFooter = ea(\"hasfooter\", false);\n            if (this._hasFooter) {\n                var fa = p.scry(da, \".uiContextualDialogFooterLink\")[0];\n                ((fa && this.enableBehavior(l)));\n            }\n        ;\n        ;\n            this._setContextSubscription = this.subscribe(\"beforeshow\", function() {\n                this.unsubscribe(this._setContextSubscription);\n                this._setContextSubscription = null;\n                var ha = ea(\"context\");\n                if (ha) {\n                    this.setContext(w(ha));\n                }\n                 else {\n                    ha = ea(\"contextselector\");\n                    if (ha) {\n                        this.setContext(p.JSBNG__find(JSBNG__document, ha));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            this._content = p.scry(da, \".uiContextualDialogContent\")[0];\n            if (this._content) {\n                this._content.setAttribute(\"role\", \"dialog\");\n                var ga = p.scry(this._content, \".legacyContextualDialogTitle\")[0];\n                if (ga) {\n                    this._content.setAttribute(\"aria-labelledby\", p.getID(ga));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this._showSubscription = this.subscribe(\"show\", function() {\n                var ha = z(this.updatePosition, this);\n                this._resizeListener = q.listen(window, \"resize\", ha);\n                this._reflowSubscription = g.subscribe(\"reflow\", ha);\n                this._setupScrollListener(this._scrollParent);\n                m.register(da, this.context);\n                g.inform(\"layer_shown\", {\n                    type: \"ContextualDialog\"\n                });\n            }.bind(this));\n            this._hideSubscription = this.subscribe(\"hide\", function() {\n                this._teardownResizeAndReflowListeners();\n                this._teardownScrollListener();\n                g.inform(\"layer_hidden\", {\n                    type: \"ContextualDialog\"\n                });\n            }.bind(this));\n            return this;\n        },\n        _buildWrapper: function(ba, ca) {\n            var da = this.parent._buildWrapper(ba, ca);\n            if (!this._shouldBuildWrapper) {\n                return da;\n            }\n        ;\n        ;\n            n.addClass(da, \"uiContextualDialog\");\n            return p.create(\"div\", {\n                className: \"uiContextualDialogPositioner\"\n            }, da);\n        },\n        setWidth: function(ba) {\n            this._width = Math.floor(ba);\n            return this;\n        },\n        setFixed: function(ba) {\n            ba = !!ba;\n            n.conditionClass(this.getRoot(), \"uiContextualDialogFixed\", ba);\n            this._fixed = ba;\n            return this;\n        },\n        setAlignH: function(ba) {\n            this.alignH = ba;\n            this._updateAlignmentClass();\n            ((this._shown && this.updatePosition()));\n            ((this.position && this._updateArrow()));\n            return this;\n        },\n        getContent: function() {\n            return this._content;\n        },\n        getContext: function() {\n            return this.context;\n        },\n        setContext: function(ba) {\n            if (this._setContextSubscription) {\n                this.unsubscribe(this._setContextSubscription);\n                this._setContextSubscription = null;\n            }\n        ;\n        ;\n            ba = w(ba);\n            if (((this.context && ((this.context != ba))))) {\n                o.remove(this.context, \"LegacyContextualDialog\");\n            }\n        ;\n        ;\n            this.context = ba;\n            i.setPopup(this.getCausalElement(), this.getRoot());\n            var ca = t.byClass(ba, \"fbPhotoSnowlift\");\n            this.setInsertParent(((ca || JSBNG__document.body)));\n            if (((this._scrollListener && ((this._scrollParent !== ca))))) {\n                this._teardownScrollListener();\n                this._setupScrollListener(ca);\n            }\n        ;\n        ;\n            this._scrollParent = ca;\n            var da = y(ba, this._insertParent);\n            u.set(this.getRoot(), \"z-index\", ((((da > 200)) ? da : \"\")));\n            o.set(this.context, \"LegacyContextualDialog\", this);\n            return this;\n        },\n        getCausalElement: function() {\n            return ((this.parent.getCausalElement() || this.context));\n        },\n        listen: function(ba, ca) {\n            return q.listen(this.getRoot(), ba, ca);\n        },\n        setOffsetX: function(ba) {\n            this.offsetX = ((parseInt(ba, 10) || 0));\n            ((this._shown && this.updatePosition()));\n            return this;\n        },\n        setOffsetY: function(ba) {\n            this.offsetY = ((parseInt(ba, 10) || 0));\n            ((this._shown && this.updatePosition()));\n            return this;\n        },\n        setPosition: function(ba) {\n            this.position = ba;\n            {\n                var fin212keys = ((window.top.JSBNG_Replay.forInKeys)((aa.POSITION_TO_CLASS))), fin212i = (0);\n                var ca;\n                for (; (fin212i < fin212keys.length); (fin212i++)) {\n                    ((ca) = (fin212keys[fin212i]));\n                    {\n                        n.conditionClass(this.getRoot(), aa.POSITION_TO_CLASS[ca], ((ba == ca)));\n                    ;\n                    };\n                };\n            };\n        ;\n            this._updateAlignmentClass();\n            ((this._shown && this.updatePosition()));\n            this._updateArrow();\n            return this;\n        },\n        updatePosition: function() {\n            if (!this.context) {\n                return false;\n            }\n        ;\n        ;\n            if (this._width) {\n                u.set(this._overlay, \"width\", ((this._width + \"px\")));\n            }\n        ;\n        ;\n            var ba = ((this._fixed ? \"viewport\" : \"JSBNG__document\")), ca = v.getElementPosition(this.context, ba), da = this._scrollParent;\n            if (da) {\n                ca = ca.sub(v.getElementPosition(da, \"JSBNG__document\")).add(da.scrollLeft, da.scrollTop);\n            }\n        ;\n        ;\n            var ea = v.getElementDimensions(this.context), fa = ((((this.position == \"above\")) || ((this.position == \"below\")))), ga = r.isRTL();\n            if (((((((this.position == \"right\")) || ((fa && ((this.alignH == \"right\")))))) != ga))) {\n                ca = ca.add(ea.x, 0);\n            }\n        ;\n        ;\n            if (((this.position == \"below\"))) {\n                ca = ca.add(0, ea.y);\n            }\n        ;\n        ;\n            var ha = new v(0, 0);\n            if (((fa && ((this.alignH == \"center\"))))) {\n                ha = ha.add(((((ea.x - this._width)) / 2)), 0);\n            }\n             else {\n                var ia = ((fa ? ea.x : ea.y)), ja = ((2 * aa.ARROW_INSET));\n                if (((ia < ja))) {\n                    var ka = ((((ia / 2)) - aa.ARROW_INSET));\n                    if (((fa && ((((this.alignH == \"right\")) != ga))))) {\n                        ka = -ka;\n                    }\n                ;\n                ;\n                    ha = ha.add(((fa ? ka : 0)), ((fa ? 0 : ka)));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ha = ha.add(this.offsetX, this.offsetY);\n            if (ga) {\n                ha = ha.mul(-1, 1);\n            }\n        ;\n        ;\n            ca = ca.add(ha);\n            if (this._fixed) {\n                ca = new v(ca.x, ca.y, \"JSBNG__document\");\n            }\n        ;\n        ;\n            ca.setElementPosition(this.getRoot());\n            this._adjustVerticalPosition();\n            this._adjustHorizontalPosition();\n            return true;\n        },\n        JSBNG__scrollTo: function() {\n            if (this.context) {\n                j.loadModules([\"DOMScroll\",], function(ba) {\n                    ba.JSBNG__scrollTo(this.context, true, true);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        destroy: function() {\n            this.unsubscribe(this._showSubscription);\n            this.unsubscribe(this._hideSubscription);\n            if (this._setContextSubscription) {\n                this.unsubscribe(this._setContextSubscription);\n                this._setContextSubscription = null;\n            }\n        ;\n        ;\n            this._teardownScrollListener();\n            this._teardownResizeAndReflowListeners();\n            ((this.context && o.remove(this.context, \"LegacyContextualDialog\")));\n            this.parent.destroy();\n        },\n        _adjustVerticalPosition: function() {\n            if (((((this.position != \"left\")) && ((this.position != \"right\"))))) {\n                u.set(this._overlay, \"JSBNG__top\", \"\");\n                return;\n            }\n        ;\n        ;\n            var ba = this.getRoot(), ca = v.getElementPosition(ba, \"viewport\").y, da = v.getElementDimensions(this._overlay).y, ea = v.getViewportDimensions().y, fa = Math.min(Math.max(ca, aa.MIN_TOP_GAP), aa.TOP_MARGIN), ga = Math.min(Math.max(0, ((((((ca + da)) + aa.BOTTOM_MARGIN)) - ea))), Math.max(-fa, ((ca - fa))), ((da - ((2 * aa.ARROW_INSET)))));\n            u.set(this._overlay, \"JSBNG__top\", ((((-1 * ga)) + \"px\")));\n            u.set(this._arrow, \"JSBNG__top\", ((aa.ARROW_OFFSET + \"px\")));\n            u.set(this._arrow, \"marginTop\", ((ga + \"px\")));\n        },\n        _adjustHorizontalPosition: function() {\n            if (((((((this.position != \"above\")) && ((this.position != \"below\")))) || ((this.alignH != \"left\"))))) {\n                u.set(this._overlay, \"left\", \"\");\n                u.set(this._overlay, \"right\", \"\");\n                return;\n            }\n        ;\n        ;\n            var ba = this.getRoot(), ca = v.getElementPosition(ba, \"viewport\").x, da = v.getElementDimensions(this._overlay).x, ea = v.getViewportDimensions().x, fa = r.isRTL(), ga;\n            if (!fa) {\n                ga = ((((((ca + da)) + aa.RIGHT_MARGIN)) - ea));\n            }\n             else ga = ((((aa.LEFT_MARGIN + da)) - ca));\n        ;\n        ;\n            ga = Math.min(Math.max(0, ga), ((da - ((2 * aa.ARROW_INSET)))));\n            u.set(this._overlay, ((fa ? \"right\" : \"left\")), ((((-1 * ga)) + \"px\")));\n            u.set(this._arrow, ((fa ? \"right\" : \"left\")), ((aa.ARROW_OFFSET + \"px\")));\n            u.set(this._arrow, ((fa ? \"marginRight\" : \"marginLeft\")), ((ga + \"px\")));\n        },\n        _updateArrow: function() {\n            var ba = 0;\n            if (((((this.position == \"above\")) || ((this.position == \"below\"))))) {\n                switch (this.alignH) {\n                  case \"center\":\n                    ba = 50;\n                    break;\n                  case \"right\":\n                    ba = 100;\n                    break;\n                };\n            }\n        ;\n        ;\n            this._renderArrow(aa.POSITION_TO_ARROW[this.position], ba);\n        },\n        _renderArrow: function(ba, ca) {\n            {\n                var fin213keys = ((window.top.JSBNG_Replay.forInKeys)((aa.ARROW_CLASS))), fin213i = (0);\n                var da;\n                for (; (fin213i < fin213keys.length); (fin213i++)) {\n                    ((da) = (fin213keys[fin213i]));\n                    {\n                        n.conditionClass(this._overlay, aa.ARROW_CLASS[da], ((ba == da)));\n                    ;\n                    };\n                };\n            };\n        ;\n            n.conditionClass(this._overlay, \"uiContextualDialogWithFooterArrowBottom\", ((((ba == \"bottom\")) && this._hasFooter)));\n            if (((ba == \"none\"))) {\n                return;\n            }\n        ;\n        ;\n            if (!this._arrow) {\n                this._arrow = p.create(\"i\", {\n                    className: \"uiContextualDialogArrow\"\n                });\n                p.appendContent(this._overlay, this._arrow);\n            }\n        ;\n        ;\n            u.set(this._arrow, \"JSBNG__top\", \"\");\n            u.set(this._arrow, \"left\", \"\");\n            u.set(this._arrow, \"right\", \"\");\n            u.set(this._arrow, \"margin\", \"\");\n            var ea = ((((ba == \"JSBNG__top\")) || ((ba == \"bottom\")))), fa = ((ea ? ((r.isRTL() ? \"right\" : \"left\")) : \"JSBNG__top\"));\n            ca = ((ca || 0));\n            u.set(this._arrow, fa, ((ca + \"%\")));\n            var ga = ((aa.ARROW_LENGTH + ((aa.ARROW_OFFSET * 2)))), ha = -((((((ga * ca)) / 100)) - aa.ARROW_OFFSET));\n            u.set(this._arrow, ((\"margin-\" + fa)), ((ha + \"px\")));\n        },\n        _updateAlignmentClass: function() {\n            n.conditionClass(this.getRoot(), aa.RIGHT_ALIGNED_CLASS, ((((((this.position == \"above\")) || ((this.position == \"below\")))) && ((this.alignH == \"right\")))));\n        },\n        _setupScrollListener: function(ba) {\n            this._scrollListener = q.listen(((ba || window)), \"JSBNG__scroll\", z(this._adjustVerticalPosition, this));\n        },\n        _teardownScrollListener: function() {\n            if (this._scrollListener) {\n                this._scrollListener.remove();\n                this._scrollListener = null;\n            }\n        ;\n        ;\n        },\n        _teardownResizeAndReflowListeners: function() {\n            if (this._resizeListener) {\n                this._resizeListener.remove();\n                this._resizeListener = null;\n            }\n        ;\n        ;\n            if (this._reflowSubscription) {\n                this._reflowSubscription.unsubscribe();\n                this._reflowSubscription = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = aa;\n});\n__d(\"TooltipLink\", [\"Parent\",\"Tooltip\",], function(a, b, c, d, e, f) {\n    var g = b(\"Parent\"), h = b(\"Tooltip\"), i = {\n        setTooltipText: function(j, k) {\n            j = g.byTag(j, \"a\");\n            ((j && h.set(j, k)));\n        }\n    };\n    e.exports = i;\n});");
36551 // 12308
36552 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o208,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yr/r/r-aTsS_RKim.js",o209);
36553 // undefined
36554 o208 = null;
36555 // undefined
36556 o209 = null;
36557 // 12312
36558 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"brbS1\",]);\n}\n;\n__d(\"BlackbirdUpsellConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        ACTION_UPSELL: \"upsell\",\n        CLICK_TYPE_DISMISS_PROMO: \"dismiss_promo\",\n        ACTION_EDUCATE: \"educate\",\n        CLICK_TYPE_ENABLE_CHAT: \"enable_chat\",\n        CLICK_TYPE_OPEN_SETTINGS: \"open_settings\"\n    };\n});\n__d(\"GenderConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        UNKNOWN: 0,\n        FEMALE_SINGULAR: 1,\n        MALE_SINGULAR: 2,\n        FEMALE_SINGULAR_GUESS: 3,\n        MALE_SINGULAR_GUESS: 4,\n        MIXED_SINGULAR: 5,\n        MIXED_PLURAL: 5,\n        NEUTER_SINGULAR: 6,\n        UNKNOWN_SINGULAR: 7,\n        FEMALE_PLURAL: 8,\n        MALE_PLURAL: 9,\n        NEUTER_PLURAL: 10,\n        UNKNOWN_PLURAL: 11\n    };\n    e.exports = g;\n});\n__d(\"AsyncLoader\", [\"copyProperties\",\"AsyncRequest\",\"BaseAsyncLoader\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"AsyncRequest\"), i = b(\"BaseAsyncLoader\");\n    function j(k, l) {\n        this._endpoint = k;\n        this._type = l;\n    };\n    g(j.prototype, i.prototype);\n    j.prototype.send = function(k, l, m, n, o) {\n        new h(k).setData({\n            ids: l\n        }).setHandler(n).setErrorHandler(o).setAllowCrossPageTransition(true).setMethod(\"GET\").setReadOnly(true).send();\n    };\n    e.exports = j;\n});\n__d(\"BlackbirdUpsell\", [\"Event\",\"Arbiter\",\"AsyncRequest\",\"LegacyContextualDialog\",\"DOM\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"PresencePrivacy\",\"copyProperties\",\"BlackbirdUpsellConfig\",\"BlackbirdUpsellConstants\",\"BlackbirdUpsellTemplates\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"LegacyContextualDialog\"), k = b(\"DOM\"), l = b(\"LayerDestroyOnHide\"), m = b(\"LayerHideOnTransition\"), n = b(\"PresencePrivacy\"), o = b(\"copyProperties\"), p = b(\"BlackbirdUpsellConfig\"), q = b(\"BlackbirdUpsellConstants\"), r = b(\"BlackbirdUpsellTemplates\"), s = \"/ajax/chat/blackbird/update_clicks.php\", t = \"/ajax/chat/blackbird/update_impressions.php\", u = \"/ajax/chat/blackbird/dismiss.php\", v = 235, w = null, x = null, y = false, z = false;\n    function aa() {\n    \n    };\n    o(aa, {\n        shouldShow: function() {\n            if (this._dialogDismissed) {\n                return false\n            };\n            if (this.isEducation()) {\n                return ((!!p.EducationGK && !p.EducationDismissed) && (p.EducationImpressions < p.EducationImpressionLimit));\n            }\n             else return (((!!p.UpsellGK && !p.UpsellDismissed) && (p.UpsellImpressions < p.UpsellImpressionLimit)) && (p.FriendCount >= p.UpsellMinFriendCount))\n        ;\n        },\n        isEducation: function() {\n            return (p.TimeOffline <= p.EducationTimeOfflineThresdhold);\n        },\n        getOfflineContent: function() {\n            if (this.isEducation()) {\n                return this._getEducationContent();\n            }\n             else return this._getUpsellContent()\n        ;\n        },\n        _getEducationContent: function() {\n            ga();\n            var ka = r[\":fb:chat:blackbird:offline-educate\"].build(), la = ka.getNode(\"chatSettingsButton\");\n            g.listen(la, \"click\", function() {\n                h.inform(\"chat/advanced-settings-dialog-opened\");\n                ja(q.CLICK_TYPE_OPEN_SETTINGS);\n                da();\n            });\n            return ka.getRoot();\n        },\n        _getUpsellContent: function() {\n            fa();\n            var ka = r[\":fb:chat:blackbird:upsell\"].build(), la = ka.getNode(\"chatSettingsButton\");\n            g.listen(la, \"click\", function() {\n                h.inform(\"chat/advanced-settings-dialog-opened\");\n                ia(q.CLICK_TYPE_OPEN_SETTINGS);\n                ca();\n            });\n            var ma = ka.getNode(\"enableChatButton\");\n            g.listen(ma, \"click\", function() {\n                ia(q.CLICK_TYPE_ENABLE_CHAT);\n                ca();\n            });\n            return ka.getRoot();\n        },\n        getBlackbirdContent: function(ka) {\n            ga();\n            switch (ka) {\n              case n.ONLINE:\n                return r[\":fb:chat:blackbird:most-friends-educate\"].build().getRoot();\n              case n.OFFLINE:\n                return r[\":fb:chat:blackbird:some-friends-educate\"].build().getRoot();\n            };\n        },\n        showOfflineDialog: function(ka) {\n            this.showDialog(ka, this.getOfflineContent.bind(this));\n        },\n        showBlackbirdDialog: function(ka, la) {\n            this.showDialog(ka, this.getBlackbirdContent.curry(la));\n        },\n        showDialog: function(ka, la) {\n            (!w && this._constructDialog());\n            k.setContent(x, la());\n            w.setContext(ka);\n            w.show();\n        },\n        hide: function() {\n            if ((w && w.isShown())) {\n                w.hide();\n            };\n        },\n        dismiss: function() {\n            this.hide();\n            if (this.isEducation()) {\n                da();\n            }\n             else ca();\n        ;\n        },\n        registerDismissClick: function() {\n            if (this.isEducation()) {\n                ja(q.CLICK_TYPE_DISMISS_PROMO);\n            }\n             else ia(q.CLICK_TYPE_DISMISS_PROMO);\n        ;\n        },\n        isVisible: function() {\n            return (z && !y);\n        },\n        _constructDialog: function() {\n            var ka = r[\":fb:chat:blackbird:dialog-frame\"].build();\n            x = ka.getNode(\"dialogContent\");\n            w = new j();\n            w.init(ka.getRoot());\n            w.setPosition(\"above\").setWidth(v).setFixed(true).disableBehavior(l).disableBehavior(m);\n            g.listen(ka.getNode(\"dialogCloseButton\"), \"click\", this.dismiss.bind(this));\n            g.listen(ka.getNode(\"dialogCloseButton\"), \"click\", this.registerDismissClick.bind(this));\n        }\n    });\n    function ba(ka, la) {\n        if ((!y && z)) {\n            y = true;\n            n.inform(\"privacy-user-presence-changed\");\n            var ma = new i(u);\n            ma.setData({\n                source: ka,\n                impressions: la,\n                time_offline: p.TimeOffline\n            });\n            ma.setErrorHandler(function() {\n                y = false;\n            });\n            ma.send();\n        }\n    ;\n    };\n    function ca() {\n        ba(q.ACTION_UPSELL, p.UpsellImpressions);\n    };\n    function da() {\n        ba(q.ACTION_EDUCATE, p.EducationImpressions);\n    };\n    function ea(ka, la) {\n        if (!z) {\n            z = true;\n            var ma = new i(t);\n            ma.setData({\n                action: ka,\n                impressions: la,\n                time_offline: p.TimeOffline\n            });\n            ma.setErrorHandler(function() {\n                z = false;\n            });\n            ma.send();\n        }\n    ;\n    };\n    function fa() {\n        ea(q.ACTION_UPSELL, p.UpsellImpressions);\n    };\n    function ga() {\n        ea(q.ACTION_EDUCATE, p.EducationImpressions);\n    };\n    function ha(ka, la, ma, na) {\n        var oa = new i(s);\n        oa.setData({\n            action: ka,\n            impressions: ma,\n            source: la,\n            time_offline: na\n        });\n        oa.send();\n    };\n    function ia(ka) {\n        ha(ka, q.ACTION_UPSELL, p.UpsellImpressions, p.TimeOffline);\n    };\n    function ja(ka) {\n        ha(ka, q.ACTION_EDUCATE, p.EducateImpressions, p.TimeOffline);\n    };\n    h.subscribe(\"chat/advanced-settings-dialog-opened\", aa.dismiss.bind(aa));\n    h.subscribe(\"chat-visibility/go-online\", aa.dismiss.bind(aa));\n    h.subscribe(\"chat-visibility/go-offline\", aa.dismiss.bind(aa));\n    e.exports = aa;\n});\n__d(\"ChatFavoriteNux\", [\"AsyncRequest\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = null, i = false, j = {\n        tryShow: function(k) {\n            if ((h && !i)) {\n                h.setContext(k);\n                h.show();\n                i = true;\n            }\n        ;\n        },\n        tryHide: function() {\n            if ((h && i)) {\n                h.hide();\n                h = null;\n            }\n        ;\n        },\n        registerDialog: function(k) {\n            h = k;\n            if (k) {\n                k.subscribe(\"confirm\", this.dismissDialog);\n            };\n        },\n        dismissDialog: function() {\n            if (h) {\n                new g(\"/ajax/chat/dismiss_favorite_nux.php\").send();\n                h.hide();\n                h = null;\n            }\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"ChatGroupThreadsController\", [\"ArbiterMixin\",\"ChatConfig\",\"InitialMultichatList\",\"MercuryOrderedThreadlist\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"MessagingTag\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"ChatConfig\"), i = b(\"InitialMultichatList\"), j = b(\"MercuryOrderedThreadlist\").get(), k = b(\"MercuryServerRequests\").get(), l = b(\"MercuryThreadInformer\").get(), m = b(\"MercuryThreads\").get(), n = b(\"MessagingTag\"), o = b(\"copyProperties\"), p, q = [], r = h.get(\"max_sidebar_multichats\", 3);\n    function s(x) {\n        var y = m.getThreadMetaNow(x);\n        return ((y && !y.is_canonical) && m.canReply(x));\n    };\n    var t = i.payload;\n    if (t) {\n        k.handleUpdate(t);\n        var u = (t.threads || []);\n        q = u.map(function(x) {\n            return x.thread_id;\n        });\n    }\n;\n    if (q.length) {\n        var v = m.getThreadMetaNow(q[(q.length - 1)]);\n        p = (v && ((v.timestamp - 1)));\n    }\n;\n    if (!p) {\n        p = Date.now();\n    };\n    var w = {\n    };\n    o(w, g, {\n        getThreadIDs: function() {\n            var x = 0;\n            return q.filter(function(y) {\n                return (((x < r) && s(y)) && ++x);\n            });\n        }\n    });\n    l.subscribe(\"threadlist-updated\", function() {\n        q = j.getThreadlistUntilTimestamp(p, n.INBOX, n.GROUPS).filter(s);\n        w.inform(\"update\");\n    });\n    e.exports = w;\n});\n__d(\"ChatHovercard\", [\"Arbiter\",\"AsyncLoader\",\"Hovercard\",\"JSLogger\",\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncLoader\"), i = b(\"Hovercard\"), j = b(\"JSLogger\"), k = b(\"debounce\"), l = 5, m = new h(\"/ajax/chat/hovercard/sidebar.php\", \"hover\"), n = j.create(\"chat_hovercard\");\n    g.subscribe(\"Hovercard/dirty\", m.reset.bind(m));\n    function o(s, t) {\n        m.get(s, function(u) {\n            (function() {\n                if (!u) {\n                    n.error(\"fetch_failure\", {\n                        id: s\n                    });\n                    return;\n                }\n            ;\n                var v = i.getDialog(u);\n                if (!v) {\n                    n.error(\"no_hovercard\", {\n                        id: s,\n                        endpoint: u\n                    });\n                    return;\n                }\n            ;\n                if ((s == t.getActiveID())) {\n                    t.showHovercard(s, v);\n                };\n            }).defer();\n        });\n    };\n    function p(s, t) {\n        var u = [];\n        function v(y) {\n            if (((y >= 0) && (y < s.length))) {\n                u.push(s[y]);\n            };\n        };\n        var w = s.indexOf(t);\n        if ((w > -1)) {\n            v(w);\n            for (var x = 1; (x < l); x++) {\n                v((w + x));\n                v((w - x));\n            };\n        }\n    ;\n        return u.filter(function(y) {\n            return y;\n        });\n    };\n    function q(s, t) {\n        var u = t.getActiveID();\n        if (u) {\n            var v = s.getShowingUsers(), w = p(v, u);\n            m.get(w, function() {\n            \n            });\n        }\n    ;\n    };\n    function r(s) {\n        var t = s.getHoverController();\n        t.registerDefault(o);\n        t.subscribe(\"hover\", k(q.curry(s, t), 100));\n    };\n    e.exports = r;\n});\n__d(\"ChatOptions\", [\"Arbiter\",\"ChannelConstants\",\"JSLogger\",\"PresenceUtil\",\"copyProperties\",\"ChatOptionsInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"JSLogger\"), j = b(\"PresenceUtil\"), k = b(\"copyProperties\"), l = i.create(\"chat_options\"), m = {\n    };\n    (function() {\n        var o = b(\"ChatOptionsInitialData\");\n        for (var p in o) {\n            var q = o[p];\n            m[p] = !!q;\n        };\n    })();\n    var n = k(new g(), {\n        getSetting: function(o) {\n            return m[o];\n        },\n        setSetting: function(o, p, q) {\n            if ((this.getSetting(o) == p)) {\n                return\n            };\n            if (q) {\n                q = (\"from_\" + q);\n                l.log(q, {\n                    name: o,\n                    new_value: p,\n                    old_value: this.getSetting(o)\n                });\n            }\n        ;\n            m[o] = !!p;\n            g.inform(\"chat/option-changed\", {\n                name: o,\n                value: p\n            });\n        }\n    });\n    g.subscribe(h.getArbiterType(\"setting\"), function(o, p) {\n        var q = p.obj;\n        if ((q.window_id === j.getSessionID())) {\n            return\n        };\n        n.setSetting(q.setting, !!q.value, \"channel\");\n    });\n    g.subscribe(i.DUMP_EVENT, function(o, p) {\n        p.chat_options = m;\n    });\n    e.exports = n;\n});\n__d(\"ChatOrderedListHover\", [\"function-extensions\",\"ArbiterMixin\",\"ChatFavoriteList\",\"CSS\",\"ErrorUtils\",\"Event\",\"LayerHideOnBlur\",\"Parent\",\"copyProperties\",\"cx\",\"setTimeoutAcrossTransitions\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"ArbiterMixin\"), h = b(\"ChatFavoriteList\"), i = b(\"CSS\"), j = b(\"ErrorUtils\"), k = b(\"Event\"), l = b(\"LayerHideOnBlur\"), m = b(\"Parent\"), n = b(\"copyProperties\"), o = b(\"cx\"), p = b(\"setTimeoutAcrossTransitions\"), q = b(\"shield\");\n    function r(u) {\n        i.addClass(u, \"fetching\");\n    };\n    function s(u) {\n        i.removeClass(u, \"fetching\");\n    };\n    function t(u) {\n        this._orderedList = u;\n        this._root = u.getRoot();\n        k.listen(this._root, \"mouseover\", this._mouseOver.bind(this));\n        k.listen(this._root, \"mouseleave\", this._mouseLeave.bind(this));\n        u.subscribe(\"click\", q(this._hide, this));\n    };\n    n(t.prototype, g, {\n        _root: null,\n        _activeItem: null,\n        _hideTimeout: null,\n        _showTimeout: null,\n        _showingDialog: null,\n        _showingID: null,\n        _handlers: {\n        },\n        _defaultHandler: null,\n        _mouseOver: function(event) {\n            if (this._paused) {\n                return\n            };\n            var u = event.getTarget(), v = (m.byClass(u, \"_42fz\") || m.byClass(u, \"_5a58\"));\n            (v && this._setActiveItem(v));\n        },\n        _mouseLeave: function(event) {\n            this._setActiveItem(null);\n        },\n        _clearTimeouts: function() {\n            (this._showTimeout && clearTimeout(this._showTimeout));\n            this._showTimeout = null;\n            (this._hideTimeout && clearTimeout(this._hideTimeout));\n            this._hideTimeout = null;\n        },\n        _hide: function() {\n            if (this._showingDialog) {\n                this._showingDialog.hide();\n                this._showingDialog = null;\n                this._showingID = null;\n            }\n        ;\n        },\n        _show: function() {\n            var u = this.getActiveID(), v = false;\n            if (this._handlers[u]) {\n                v = true;\n                j.applyWithGuard(this._handlers[u], {\n                }, [u,this,]);\n            }\n             else if (this._defaultHandler) {\n                v = true;\n                j.applyWithGuard(this._defaultHandler, {\n                }, [u,this,]);\n            }\n            \n        ;\n            if ((v && (this._showingID != this.getActiveID()))) {\n                r(this._activeItem);\n            };\n        },\n        _setActiveItem: function(u) {\n            if (h.isEditMode()) {\n                this._clearTimeouts();\n                this._hide();\n                return;\n            }\n        ;\n            if ((u != this._activeItem)) {\n                this._clearTimeouts();\n                (this._activeItem && s(this._activeItem));\n                this._activeItem = null;\n                var v = (u ? 0 : 100);\n                this._hideTimeout = p(function() {\n                    if ((this.getActiveID() != this._showingID)) {\n                        this._hide();\n                    };\n                }.bind(this), v);\n                if (u) {\n                    this._activeItem = u;\n                    var w = (v + 500);\n                    this._showTimeout = p(function() {\n                        this._show();\n                    }.bind(this), w);\n                    this.inform(\"hover\");\n                }\n                 else this.inform(\"leave\");\n            ;\n            }\n        ;\n        },\n        register: function(u, v) {\n            if (!this._handlers[u]) {\n                this._handlers[u] = v;\n                return {\n                    unregister: function() {\n                        if ((u == this._showingID)) {\n                            this._hide();\n                        };\n                        delete this._handlers[u];\n                        var w = this._orderedList.getAllNodes(), x = w[u];\n                        (x && s(x));\n                    }.bind(this)\n                };\n            }\n        ;\n        },\n        registerDefault: function(u) {\n            this._defaultHandler = u;\n        },\n        getActiveID: function() {\n            var u = (this._activeItem && this._orderedList.getUserForNode(this._activeItem));\n            return (u || null);\n        },\n        showHovercard: function(u, v) {\n            if (((u == this.getActiveID()) && (u != this._showingID))) {\n                this._clearTimeouts();\n                s(this._activeItem);\n                this._hide();\n                this._showingDialog = v;\n                this._showingID = u;\n                var w = v.subscribe(\"mouseenter\", this._setActiveItem.bind(this, this._activeItem)), x = v.subscribe(\"mouseleave\", function() {\n                    w.unsubscribe();\n                    this._setActiveItem(null);\n                }.bind(this)), y = v.subscribe(\"hide\", function() {\n                    this.inform(\"hovercard_hide\");\n                    w.unsubscribe();\n                    x.unsubscribe();\n                    y.unsubscribe();\n                }.bind(this));\n                v.enableBehavior(l).setContext(this._activeItem).setPosition(\"left\").show();\n                this.inform(\"hovercard_show\");\n            }\n        ;\n        },\n        setPaused: function(u) {\n            this._paused = u;\n        }\n    });\n    e.exports = t;\n});\n__d(\"ChatQuietLinks\", [\"Event\",\"DOM\",\"UserAgent\",\"DataStore\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"UserAgent\"), j = b(\"DataStore\"), k = b(\"Parent\"), l = {\n    }, m = {\n        silenceLinks: function(q) {\n            n(q, this.removeEmptyHrefs.bind(this));\n        },\n        nukeLinks: function(q) {\n            n(q, this.removeAllHrefs.bind(this));\n        },\n        removeEmptyHrefs: function(q) {\n            o(q, function(r) {\n                return (!r || (r === \"#\"));\n            });\n        },\n        removeAllHrefs: function(q) {\n            o(q);\n        },\n        removeMessagesHrefs: function(q) {\n            o(q, function(r) {\n                return ((!r || (r === \"#\")) || (r.indexOf(\"/messages/\") != -1));\n            });\n        }\n    };\n    function n(q, r) {\n        var s = !!i.chrome(), t = ((!!i.chrome() || (i.ie() >= 9)) || (i.firefox() >= 4));\n        if (l[h.getID(q)]) {\n            return\n        };\n        l[h.getID(q)] = true;\n        if (!t) {\n            return\n        };\n        if (!s) {\n            (r && r(q));\n            return;\n        }\n    ;\n        g.listen(q, \"mouseover\", function u(v) {\n            var w = k.byTag(v.getTarget(), \"a\");\n            if (w) {\n                var x = w.getAttribute(\"href\");\n                if (p(x)) {\n                    j.set(w, \"stashedHref\", w.getAttribute(\"href\"));\n                    w.removeAttribute(\"href\");\n                }\n            ;\n            }\n        ;\n        });\n        g.listen(q, \"mouseout\", function u(v) {\n            var w = k.byTag(v.getTarget(), \"a\"), x = (w && j.remove(w, \"stashedHref\"));\n            if (p(x)) {\n                w.setAttribute(\"href\", x);\n            };\n        });\n        g.listen(q, \"mousedown\", function(u) {\n            if (!u.isDefaultRequested()) {\n                return true\n            };\n            var v = k.byTag(u.getTarget(), \"a\"), w = (v && j.get(v, \"stashedHref\"));\n            if (p(w)) {\n                v.setAttribute(\"href\", w);\n            };\n        });\n    };\n    function o(q, r) {\n        var s = h.scry(q, \"a\");\n        if (r) {\n            s = s.filter(function(t) {\n                return r(t.getAttribute(\"href\"));\n            });\n        };\n        s.forEach(function(t) {\n            t.removeAttribute(\"href\");\n            t.setAttribute(\"tabindex\", 0);\n        });\n    };\n    function p(q) {\n        return (q && (q !== \"#\"));\n    };\n    e.exports = m;\n});\n__d(\"ChatSidebarThreadlist.react\", [\"ChatConfig\",\"ChatGroupThreadsController\",\"ChatSidebarConstants\",\"ChatSidebarItem.react\",\"ChatSidebarThread.react\",\"MercuryServerRequests\",\"MercuryThreads\",\"MercuryParticipants\",\"PresenceStatus\",\"React\",\"copyProperties\",\"cx\",\"fbt\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatConfig\"), h = b(\"ChatGroupThreadsController\"), i = b(\"ChatSidebarConstants\"), j = b(\"ChatSidebarItem.react\"), k = b(\"ChatSidebarThread.react\"), l = b(\"MercuryServerRequests\").get(), m = b(\"MercuryThreads\").get(), n = b(\"MercuryParticipants\"), o = b(\"PresenceStatus\"), p = b(\"React\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = b(\"fbt\"), t = b(\"ix\"), u = p.createClass({\n        displayName: \"ChatSidebarThreadlist\",\n        render: function() {\n            var v = this.state.threadData, w = this.state.participantData, x = i.IMAGE_SIZE, y = t(\"/images/chat/sidebar/newGroupChat.png\");\n            if (this.props.litestandSidebar) {\n                x = (g.get(\"litestand_blended_sidebar\") ? i.LITESTAND_BLENDED_SIZE : i.LITESTAND_IMAGE_SIZE);\n                y = (g.get(\"litestand_blended_sidebar\") ? t(\"/images/litestand/sidebar/blended/new_group_chat.png\") : t(\"/images/chat/sidebar/newGroupChatLitestand.png\"));\n            }\n        ;\n            var z = \"New Group Chat...\";\n            z = g.get(\"divebar_group_new_button_name\", z);\n            var aa = [];\n            if (this.props.showNewGroupsButton) {\n                aa.push(p.DOM.li({\n                    className: ((((\"_56yg\") + ((\" \" + \"_56yj\"))) + ((this.props.offlineItems ? (\" \" + \"_570-\") : \"\")))),\n                    key: \"new\"\n                }, j({\n                    images: y,\n                    imageSize: x,\n                    litestandSidebar: this.props.litestandSidebar,\n                    name: z\n                })));\n            };\n            var ba = {\n            };\n            for (var ca in v) {\n                var da = v[ca], ea = da.participants.map(function(ia) {\n                    return ((w || {\n                    }))[ia];\n                }).filter(function(ia) {\n                    return ia;\n                }), fa = da.participants.map(function(ia) {\n                    return n.getUserID(ia);\n                }), ga = fa.sort().join(\"|\");\n                if ((!ba[ga] && ea.length)) {\n                    ba[ga] = 1;\n                    var ha = l.getServerThreadIDNow(ca);\n                    aa.push(p.DOM.li({\n                        className: ((((\"_5a58\") + ((\" \" + \"_56yg\"))) + ((this.props.offlineItems ? (\" \" + \"_570-\") : \"\")))),\n                        \"data-serverthreadid\": ha,\n                        \"data-threadid\": ca,\n                        key: ca\n                    }, k({\n                        image: da.image_src,\n                        imageSize: x,\n                        litestandSidebar: this.props.litestandSidebar,\n                        name: da.name,\n                        participants: ea,\n                        status: o.getGroup(fa),\n                        threadID: ca,\n                        unreadCount: da.unread_count\n                    })));\n                }\n            ;\n            };\n            return p.DOM.ul(null, aa);\n        },\n        getInitialState: function() {\n            return {\n            };\n        },\n        componentWillMount: function() {\n            var v = function() {\n                this.setState(this._calculateState());\n            }.bind(this);\n            this.token = h.subscribe(\"update\", v);\n            v();\n        },\n        componentWillUnmount: function() {\n            (this.token && this.token.unsubscribe());\n            this.token = null;\n        },\n        _calculateState: function() {\n            var v = false, w = {\n            }, x = {\n            }, y = h.getThreadIDs(), z = y.length;\n            y.forEach(function(ba) {\n                m.getThreadMeta(ba, function(ca) {\n                    x[ba] = ca;\n                    n.getMulti(ca.participants, function(da) {\n                        delete da[n.user];\n                        if (v) {\n                            this.setState(this._calculateState());\n                        }\n                         else q(w, da);\n                    ;\n                        z--;\n                    }.bind(this));\n                }.bind(this));\n            }.bind(this));\n            if ((z === 0)) {\n                return {\n                    threadData: x,\n                    participantData: w\n                };\n            }\n             else {\n                v = true;\n                var aa = (this.state || {\n                });\n                return {\n                    threadData: q(aa.threadData, x),\n                    participantData: q(aa.participantData, w)\n                };\n            }\n        ;\n        }\n    });\n    e.exports = u;\n});\n__d(\"runAfterScrollingStops\", [\"Arbiter\",\"Event\",\"Run\",\"debounceAcrossTransitions\",\"emptyFunction\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Event\"), i = b(\"Run\"), j = b(\"debounceAcrossTransitions\"), k = b(\"emptyFunction\"), l = b(\"throttle\");\n    function m(x, y, z) {\n        if ((y && p[y])) {\n            return\n        };\n        if (!o) {\n            g.subscribe(\"page_transition\", w);\n            o = true;\n        }\n    ;\n        if (!n) {\n            x();\n            return;\n        }\n    ;\n        (y && (p[y] = 1));\n        q.push(x);\n        if (!z) {\n            if (s) {\n                i.onLeave(w);\n                s = false;\n            }\n        ;\n            r.push((q.length - 1));\n        }\n    ;\n    };\n    var n, o, p = {\n    }, q = [], r = [], s = true, t = 500, u = j(function() {\n        n = false;\n        var x = q;\n        q = [];\n        r = [];\n        p = {\n        };\n        for (var y = 0, z = x.length; (y < z); ++y) {\n            x[y]();;\n        };\n    }, t);\n    function v() {\n        n = true;\n        u();\n    };\n    function w() {\n        var x = r;\n        r = [];\n        s = true;\n        for (var y = 0, z = x.length; (y < z); ++y) {\n            q[x[y]] = k;;\n        };\n    };\n    h.listen(window, \"scroll\", l.acrossTransitions(v, 250));\n    e.exports = m;\n});\n__d(\"ChatOrderedList\", [\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"AsyncDialog\",\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"Bootloader\",\"CSS\",\"ChannelImplementation\",\"Chat\",\"ChatConfig\",\"ChatContexts\",\"ChatFavoriteList\",\"ChatFavoriteNux\",\"ChatGroupThreadsController\",\"ChatOrderedListHover\",\"ChatQuietLinks\",\"ChatSidebarThreadlist.react\",\"ChatTypeaheadConstants\",\"ChatVisibility\",\"DOM\",\"DataStore\",\"Ease\",\"Event\",\"ImageSourceRequest\",\"ImageSourceType\",\"JSLogger\",\"JSXDOM\",\"LastMobileActiveTimes\",\"MercuryParticipantTypes\",\"MercuryThreadInformer\",\"MercuryThreads\",\"OrderedFriendsList\",\"Parent\",\"PhotoResizeModeConst\",\"PresencePrivacy\",\"React\",\"Rect\",\"ShortProfiles\",\"Style\",\"Tooltip\",\"TypeaheadUtil\",\"URI\",\"Vector\",\"XHPTemplate\",\"copyProperties\",\"createObjectFrom\",\"csx\",\"cx\",\"debounceAcrossTransitions\",\"guid\",\"requestAnimationFrame\",\"runAfterScrollingStops\",\"shield\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"AsyncDialog\"), k = b(\"AsyncRequest\"), l = b(\"AvailableList\"), m = b(\"AvailableListConstants\"), n = b(\"Bootloader\"), o = b(\"CSS\"), p = b(\"ChannelImplementation\").instance, q = b(\"Chat\"), r = b(\"ChatConfig\"), s = b(\"ChatContexts\"), t = b(\"ChatFavoriteList\"), u = b(\"ChatFavoriteNux\"), v = b(\"ChatGroupThreadsController\"), w = b(\"ChatOrderedListHover\"), x = b(\"ChatQuietLinks\"), y = b(\"ChatSidebarThreadlist.react\"), z = b(\"ChatTypeaheadConstants\"), aa = b(\"ChatVisibility\"), ba = b(\"DOM\"), ca = b(\"DataStore\"), da = b(\"Ease\"), ea = b(\"Event\"), fa = b(\"ImageSourceRequest\"), ga = b(\"ImageSourceType\"), ha = b(\"JSLogger\"), ia = b(\"JSXDOM\"), ja = b(\"LastMobileActiveTimes\"), ka = b(\"MercuryParticipantTypes\"), la = b(\"MercuryThreadInformer\").get(), ma = b(\"MercuryThreads\").get(), na = b(\"OrderedFriendsList\"), oa = b(\"Parent\"), pa = b(\"PhotoResizeModeConst\"), qa = b(\"PresencePrivacy\"), ra = b(\"React\"), sa = b(\"Rect\"), ta = b(\"ShortProfiles\"), ua = b(\"Style\"), va = b(\"Tooltip\"), wa = b(\"TypeaheadUtil\"), xa = b(\"URI\"), ya = b(\"Vector\"), za = b(\"XHPTemplate\"), ab = b(\"copyProperties\"), bb = b(\"createObjectFrom\"), cb = b(\"csx\"), db = b(\"cx\"), eb = b(\"debounceAcrossTransitions\"), fb = b(\"guid\"), gb = b(\"requestAnimationFrame\"), hb = b(\"runAfterScrollingStops\"), ib = b(\"shield\"), jb = b(\"throttle\"), kb = b(\"tx\"), lb = r.get(\"chat_ranked_by_coefficient\", 0), mb = null, nb, ob, pb = 9;\n    function qb(xb, yb, zb, ac, bc, cc) {\n        this._isSidebar = xb;\n        this._isLitestand = (r.get(\"litestand\", 0) || r.get(\"test_litestand_sidebar\", 0));\n        this._isLitestandSidebar = (this._isSidebar && this._isLitestand);\n        this._hasChatFlyout = (this._isSidebar && r.get(\"litestand_sidebar_chat_flyout\", 0));\n        this._isSidebarFlyout = !!oa.byClass(yb, \"_57dj\");\n        this._isLeftCollapsedSidebar = !!oa.byClass(yb, \"_5ap0\");\n        this._root = yb;\n        this._itemsMap = {\n        };\n        this._isVisible = false;\n        this._excludedIds = {\n        };\n        this._numTopFriends = 5;\n        this._hasRendered = false;\n        this._preventRendering = false;\n        this._hoverController = null;\n        this._template = zb;\n        this._messageTemplate = ac;\n        this._favoriteMode = r.get(\"divebar_favorite_list\", 0);\n        this._contextualDialog = bc;\n        this._cachedItemHeight = null;\n        this._cachedItemPadding = null;\n        if ((cc && ba.scry(cc, \"._54y_\").length)) {\n            o.show(cc);\n            this._pymk = cc;\n        }\n    ;\n        this._usePlaceholder = (this._isLitestand && this._isSidebar);\n        if (r.get(\"groups_in_divebar\")) {\n            this._groupThreadsNode = ia.li({\n                className: \"_56yf\"\n            });\n            this._updateGroupThreads();\n            this._groupsList = (this._favoriteMode && ba.find(this._root, \"._56yh\"));\n        }\n    ;\n        if (this._favoriteMode) {\n            this._favoriteSidebar = ba.find(this._root, \"._42g5\");\n            this._editButton = ba.scry(this._root, \"._57m9 ._54sl\")[0];\n            this._favoriteList = ba.find(this._root, \"._54sm\");\n            this._activeNowList = ba.find(this._root, \"._54sn\");\n            this._activeNowLabel = ba.scry(this._root, \"._42g9\")[0];\n            if (this._activeNowLabel) {\n                this._activeNowArea = oa.byClass(this._activeNowLabel, \"_57yh\");\n            };\n        }\n    ;\n        if (this._hasChatFlyout) {\n            this._sidebarFlyoutItemContainer = ba.find(this._root, \"._57yi\");\n        };\n        this._orderedList = ba.find(this._root, \".fbChatOrderedList\");\n        this._scrollableOrderedList = oa.byClass(this._root, \"scrollableOrderedList\");\n        this._chatSidebar = oa.byClass(this._root, \"fbChatSidebar\");\n        this._scrollableArea = oa.byClass(this._root, \"scrollable\");\n        ea.listen(this._root, \"click\", this._onClick.bind(this));\n        ea.listen(this._root, \"mouseenter\", this._mouseEnter.bind(this));\n        ea.listen(this._root, \"mouseleave\", this._mouseLeave.bind(this));\n        if (this._editButton) {\n            ea.listen(this._editButton, \"click\", this.toggleEditMode.bind(this));\n            h.subscribe([\"LitestandSidebarBookmarks/close\",\"LitestandSidebar/collapse\",], this._onEditEnd.bind(this));\n        }\n    ;\n        h.subscribe([\"LitestandSidebar/collapse\",\"LitestandSidebar/expand\",], function(event) {\n            if (this._isLitestandSidebar) {\n                this.getHoverController().setPaused((event === \"LitestandSidebar/collapse\"));\n            };\n            this.render();\n        }.bind(this));\n        l.subscribe(m.ON_AVAILABILITY_CHANGED, ib(this.update, this));\n        qa.subscribe(\"privacy-changed\", ib(this.update, this));\n        p.subscribe([p.CONNECTED,p.RECONNECTING,p.SHUTDOWN,p.MUTE_WARNING,p.UNMUTE_WARNING,], ib(this.update, this));\n        this.inform(\"initialized\", this, h.BEHAVIOR_PERSISTENT);\n        this.render();\n        h.subscribe(ha.DUMP_EVENT, function(dc, ec) {\n            ec.chat_lists = (ec.chat_lists || {\n                sorted_list: this.getCachedSortedList(),\n                ordered_list: na.getList(),\n                available_list: qb.getAvailableList(this._excludedIds),\n                excluded_list: this._excludedIds\n            });\n        }.bind(this));\n        h.subscribe(\"ChatOrderedList/itemHeightChange\", function() {\n            this._cachedItemHeight = null;\n            this._cachedItemPadding = null;\n        }.bind(this));\n        this._renderUnreadCount = r.get(\"divebar_message_count\");\n        if (this._renderUnreadCount) {\n            la.subscribe(\"threads-updated\", function(dc, ec) {\n                for (var fc in ec) {\n                    var gc = ma.getCanonicalUserInThread(fc);\n                    if (((!this._renderedTopUsers || !((gc in this._renderedTopUsers))) || !this._itemsMap[gc])) {\n                        continue;\n                    };\n                    ma.getThreadMeta(fc, function(hc) {\n                        var ic = (hc && hc.unread_count);\n                        this._updateUnreadCount(gc, ic);\n                    }.bind(this));\n                };\n            }.bind(this));\n        };\n    };\n    function rb(xb, yb) {\n        var zb = sb(xb, yb);\n        if ((zb !== 0)) {\n            return zb\n        };\n        if (!lb) {\n            var ac = vb(xb, yb);\n            if ((ac !== 0)) {\n                return ac\n            };\n        }\n    ;\n        return na.compare(xb, yb);\n    };\n    function sb(xb, yb) {\n        var zb = qa.allows(xb), ac = qa.allows(yb);\n        if ((zb !== ac)) {\n            return (zb ? -1 : 1)\n        };\n        return 0;\n    };\n    var tb = {\n    };\n    function ub(xb) {\n        return (tb[xb] || (tb[xb] = wa.flatten(xb)));\n    };\n    function vb(xb, yb) {\n        var zb = ta.getNowUnsafe(xb), ac = ta.getNowUnsafe(yb), bc = ub((((zb || {\n        })).name || \"~\")), cc = ub((((ac || {\n        })).name || \"~\"));\n        if ((bc !== cc)) {\n            return ((bc < cc) ? -1 : 1)\n        };\n        return 0;\n    };\n    function wb(xb, yb) {\n        var zb = (l.get(xb) === m.MOBILE), ac = (l.get(yb) === m.MOBILE);\n        if ((zb !== ac)) {\n            return (ac ? -1 : 1)\n        };\n        return vb(xb, yb);\n    };\n    ab(qb, {\n        CONTEXT_CLASSES: {\n            nearby: \"_56xw\",\n            visiting: \"_56xx\",\n            neighbourhood: \"_56xy\",\n            listening: \"_56xz\"\n        },\n        getSortedList: function(xb, yb) {\n            var zb = na.getList().filter(function(cc) {\n                return (!((cc in xb)) && (qa.getFriendVisibility(cc) !== qa.BLACKLISTED));\n            }), ac = [];\n            if (!aa.isOnline()) {\n                Array.prototype.push.apply(ac, zb);\n            }\n             else {\n                if ((qa.getOnlinePolicy() === qa.ONLINE_TO_WHITELIST)) {\n                    zb = this._filterByWhitelist(zb);\n                };\n                if (r.get(\"chat_web_ranking_with_presence\")) {\n                    Array.prototype.push.apply(ac, zb);\n                }\n                 else ac = this._splitOutTopFriends(zb, yb);\n            ;\n            }\n        ;\n            ac = ac.slice(0, yb);\n            if ((ac.length === yb)) {\n                var bc = qb.getAvailableList(ac.concat(xb)).length;\n                (bc && ac.splice(-1));\n            }\n        ;\n            if (!r.get(\"chat_web_ranking_with_presence\")) {\n                ac.sort(rb);\n            };\n            mb = ac.slice();\n            return ac;\n        },\n        _filterByWhitelist: function(xb) {\n            var yb = xb, zb = {\n            }, ac, bc;\n            xb = [];\n            for (ac = 0; (ac < yb.length); ++ac) {\n                bc = yb[ac];\n                if (qa.allows(bc)) {\n                    zb[bc] = true;\n                    xb.push(bc);\n                }\n            ;\n            };\n            var cc = qa.getWhitelist();\n            for (ac = 0; (ac < cc.length); ++ac) {\n                bc = cc[ac];\n                if (!((bc in zb))) {\n                    xb.push(bc);\n                };\n            };\n            for (ac = 0; (ac < yb.length); ++ac) {\n                bc = yb[ac];\n                if (!qa.allows(bc)) {\n                    xb.push(bc);\n                };\n            };\n            return xb;\n        },\n        _splitOutTopFriends: function(xb, yb) {\n            var zb = [], ac = [], bc = r.get(\"ordered_list.top_friends\", 0), cc = r.get(\"ordered_list.top_mobile\", 0), dc = yb, ec = xb.length;\n            for (var fc = 0; ((fc < ec) && (dc > 0)); fc++) {\n                var gc = xb[fc], hc = l.get(gc), ic = (hc === m.ACTIVE);\n                if (((ic || (((hc === m.MOBILE) && (fc < cc)))) || (fc < bc))) {\n                    zb.push(gc);\n                    (ic && dc--);\n                }\n                 else ac.push(gc);\n            ;\n            };\n            if ((fc < ec)) {\n                Array.prototype.push.apply(ac, xb.slice(fc));\n            };\n            if ((zb.length < yb)) {\n                Array.prototype.push.apply(zb, ac);\n            };\n            return zb;\n        },\n        getAvailableList: function(xb) {\n            var yb;\n            if ((r.get(\"divebar_show_mobile_more_friends\") || r.get(\"divebar_show_mobile_more_friends_alphabetical\"))) {\n                yb = l.getAvailableIDs();\n            };\n            if (!yb) {\n                yb = l.getOnlineIDs();\n            };\n            return yb.filter(function(zb) {\n                return !((zb in xb));\n            });\n        },\n        _pause: function() {\n            ob = true;\n        },\n        _unpause: function() {\n            ob = false;\n        },\n        _registerToggleRenderItem: function(xb) {\n            ea.listen(xb, \"click\", function() {\n                ob = !ob;\n                o.conditionClass(xb, \"checked\", ob);\n            });\n        }\n    });\n    ab(qb.prototype, i, {\n        getAllNodes: function() {\n            var xb = {\n            }, yb = ba.scry(this._root, \"li._42fz\");\n            for (var zb = 0; (zb < yb.length); zb++) {\n                var ac = ca.get(yb[zb], \"id\");\n                if (ac) {\n                    xb[ac] = yb[zb];\n                };\n            };\n            return xb;\n        },\n        getShowingUsers: function() {\n            return ba.scry(this._root, \"li._42fz,li._5a58\").map(this.getUserForNode);\n        },\n        getUserForNode: function(xb) {\n            return (ca.get(xb, \"id\") || ca.get(xb, \"serverthreadid\"));\n        },\n        getHoverController: function() {\n            if (!this._hoverController) {\n                this._hoverController = new w(this, this._contextualDialog);\n                if ((this._isLitestandSidebar && this._isLitestandSidebarCollapsed())) {\n                    this._hoverController.setPaused(true);\n                };\n            }\n        ;\n            return this._hoverController;\n        },\n        _isLitestandSidebarCollapsed: function() {\n            if (this._isLeftCollapsedSidebar) {\n                return true\n            };\n            if (nb) {\n                return !nb.isExpanded()\n            };\n            n.loadModules([\"LitestandSidebar\",], function(xb) {\n                nb = xb;\n            });\n            return o.hasClass(document.documentElement, \"_4kdq\");\n        },\n        getPaddingOffset: function() {\n            return (this._favoriteMode ? 24 : 8);\n        },\n        _calculateItemMeasurements: function() {\n            var xb = this._orderedList, yb = this._template.build(), zb = yb.getRoot();\n            ba.setContent(yb.getNode(\"name\"), \"test\");\n            if (this._favoriteSidebar) {\n                xb = this._favoriteList;\n                o.addClass(this._favoriteSidebar, \"_4zmr\");\n            }\n        ;\n            zb.style.visibility = \"hidden\";\n            ba.appendContent(xb, zb);\n            this._cachedItemHeight = ya.getElementDimensions(zb).y;\n            this._cachedItemPadding = (ua.getFloat(yb.getNode(\"anchor\"), \"padding\") || 0);\n            ba.remove(zb);\n            if (this._favoriteSidebar) {\n                o.removeClass(this._favoriteSidebar, \"_4zmr\");\n            };\n        },\n        getItemHeight: function() {\n            if ((this._cachedItemHeight === null)) {\n                this._calculateItemMeasurements();\n            };\n            return this._cachedItemHeight;\n        },\n        getItemPadding: function() {\n            if ((this._cachedItemPadding === null)) {\n                this._calculateItemMeasurements();\n            };\n            return this._cachedItemPadding;\n        },\n        _updateGroupThreads: function() {\n            if (this._groupThreadsNode) {\n                var xb = qa.getVisibility(), yb = y({\n                    offlineItems: (p.disconnected() || !xb),\n                    litestandSidebar: ((((this._isSidebar && this._isLitestand) && !r.get(\"test_old_divebar\"))) || this._isSidebarFlyout),\n                    showNewGroupsButton: r.get(\"divebar_has_new_groups_button\", false)\n                });\n                ra.renderComponent(yb, this._groupThreadsNode);\n            }\n        ;\n        },\n        _placeholderUpdate: function() {\n            if ((!this._usePlaceholder || !this._scrollContainer)) {\n                return\n            };\n            var xb = (this._root.offsetTop - this._scrollContainer.scrollTop);\n            this._scrollContainerHeight = (this._scrollContainerHeight || this._scrollContainer.offsetHeight);\n            var yb = this.getItemHeight(), zb = Math.ceil((this._scrollContainerHeight / yb)), ac = ((xb < 0) ? Math.max((Math.floor((-xb / yb)) - zb), 0) : 0), bc = ((ac + zb) + zb);\n            this._cachedItems = (this._cachedItems || ba.scry(this._root, \"li._42fz\"));\n            for (var cc = 0, dc = this._cachedItems.length; (cc < dc); cc++) {\n                o.conditionClass(this._cachedItems[cc], \"_50zv\", ((cc < ac) || (cc > bc)));;\n            };\n        },\n        _getListItem: function(xb, yb) {\n            var zb = this._itemsMap[xb];\n            if (!zb) {\n                return\n            };\n            var ac = l.get(xb), bc = (qa.allows(xb) && !p.disconnected());\n            if ((zb.buttonNode === undefined)) {\n                zb.buttonNode = ba.scry(zb.node, \"._54sk\")[0];\n                zb.contextNode = ba.find(zb.node, \"._52zk\");\n                zb.timeNode = ba.scry(zb.node, \".active_time\")[0];\n                zb.statusNodes = ba.scry(zb.node, \"img.status\");\n            }\n        ;\n            o.conditionClass(zb.node, \"_42f-\", yb);\n            o.conditionClass(zb.node, \"_54sj\", yb);\n            o.conditionClass(zb.node, \"_52s3\", (this._isLitestand && yb));\n            if (zb.buttonNode) {\n                if (!this._isLitestand) {\n                    o.conditionClass(zb.buttonNode, \"_42f_\", yb);\n                    o.conditionClass(zb.buttonNode, \"_42g0\", !yb);\n                }\n            \n            };\n            var cc = {\n                active: false,\n                mobile: false\n            };\n            cc.active = (ac === m.ACTIVE);\n            cc.mobile = (ac === m.MOBILE);\n            if (cc.mobile) {\n                var dc = ja.getShortDisplay(xb);\n                if ((zb.timeNode && (zb.lastActiveTime !== dc))) {\n                    zb.lastActiveTime = dc;\n                    ba.setContent(zb.timeNode, dc);\n                }\n            ;\n            }\n             else if (zb.lastActiveTime) {\n                zb.lastActiveTime = null;\n                ba.empty(zb.timeNode);\n            }\n            \n        ;\n            for (var ec in cc) {\n                o.conditionClass(zb.node, ec, (cc[ec] && bc));;\n            };\n            o.conditionClass(zb.node, \"invis\", !bc);\n            zb.statusNodes.forEach(function(fc) {\n                if (((ac === m.ACTIVE) && bc)) {\n                    fc.alt = \"Online\";\n                }\n                 else if (((ac === m.MOBILE) && bc)) {\n                    fc.alt = \"Mobile\";\n                }\n                 else fc.alt = \"\";\n                \n            ;\n            });\n            this._applyContext(xb, zb);\n            return zb.node;\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getSortedList: function(xb) {\n            return qb.getSortedList((xb || this._excludedIds), this._numTopFriends);\n        },\n        getCachedSortedList: function(xb) {\n            if ((mb == null)) {\n                mb = this.getSortedList(xb);\n            };\n            return mb;\n        },\n        toggleFavoriteSidebar: function(xb, yb) {\n            function zb(cc, dc) {\n                o.conditionShow(dc, cc);\n                var ec = oa.byClass(dc, \"uiContextualLayerPositioner\");\n                (ec && o.conditionShow(ec, cc));\n            };\n            o.conditionShow(this._orderedList, !xb);\n            if (this._favoriteSidebar) {\n                o.conditionShow(this._favoriteSidebar, xb);\n            };\n            var ac = ba.scry((this._scrollableOrderedList || this._root), \"._42i3\");\n            ac.forEach(zb.curry(xb));\n            var bc = ba.scry((this._scrollableOrderedList || this._root), \"._56yi\");\n            (bc.length && zb(yb, bc[0]));\n        },\n        hide: function() {\n            if (!this._isVisible) {\n                return\n            };\n            this._isVisible = false;\n            u.tryHide();\n            o.hide((this._scrollableOrderedList || this._root));\n            this.inform(\"hide\");\n        },\n        _onFavoriteOrderChange: function() {\n            var xb = this.sortableGroup.getOrder();\n            t.updateList(xb);\n            t.save();\n        },\n        _getFavoriteItems: function() {\n            var xb = [], yb = t.get();\n            for (var zb = 0; (zb < yb.length); zb++) {\n                var ac = this._itemsMap[yb[zb]];\n                if (ac) {\n                    xb.push(ac.node);\n                };\n            };\n            return xb;\n        },\n        _getChatTabOpenLogData: function(xb) {\n            var yb = o.hasClass(document.documentElement, \"sidebarMode\"), zb = {\n                mode: (yb ? \"sidebar\" : \"chatNub\"),\n                typehead: false\n            };\n            if ((this._scrollableArea && this._scrollContainer)) {\n                var ac = ya.getElementPosition(this._scrollableArea, \"viewport\").y, bc = ya.getElementPosition(xb, \"viewport\").y, cc = this._scrollContainer.scrollTop;\n                if ((bc > ac)) {\n                    zb.visible_slot = Math.round((((bc - ac)) / 32));\n                    var dc = Math.round((cc / 32));\n                    zb.global_slot = (zb.visible_slot + dc);\n                }\n            ;\n            }\n        ;\n            if (yb) {\n                zb.sidebar_height = (this._chatSidebar && this._chatSidebar.clientHeight);\n                if (this._scrollContainer) {\n                    zb.buddylist_height = this._scrollContainer.clientHeight;\n                };\n            }\n        ;\n            return zb;\n        },\n        _resetFavoriteBounds: function() {\n            var xb = t.get(), yb = xb.length;\n            if (yb) {\n                var zb = xb[0], ac = xb[(yb - 1)], bc = this._itemsMap[zb], cc = this._itemsMap[ac], dc = new sa(ya.getElementPosition(bc.node).y, 0, (ya.getElementPosition(cc.node).y + ya.getElementDimensions(cc.node).y), 0);\n                this.sortableGroup.setBoundingBox(dc);\n            }\n        ;\n        },\n        _createSortableGroup: function() {\n            if (this.sortableGroup) {\n                this.sortableGroup.destroy();\n            };\n            n.loadModules([\"SortableGroup\",], function(xb) {\n                this.sortableGroup = new xb().setBeforeGrabCallback(this._resetFavoriteBounds.bind(this)).setOrderChangeHandler(this._onFavoriteOrderChange.bind(this));\n                if (this._isLitestand) {\n                    this.sortableGroup.gutter = 1;\n                };\n                var yb = this._getFavoriteItems();\n                for (var zb = 0; (zb < yb.length); zb++) {\n                    var ac = yb[zb];\n                    this.sortableGroup.addSortable(ca.get(ac, \"id\"), ac);\n                };\n            }.bind(this));\n        },\n        toggleEditMode: function() {\n            u.dismissDialog();\n            t.toggleEditMode();\n            if (t.isEditMode()) {\n                this._createSortableGroup();\n                ba.setContent(this._editButton, \"DONE\");\n                o.addClass(this._favoriteSidebar, \"_4-d6\");\n                this.inform(\"editStart\");\n            }\n             else this._onEditEnd();\n        ;\n        },\n        _onEditEnd: function() {\n            if (t.isEditMode()) {\n                t.toggleEditMode();\n            };\n            ba.setContent(this._editButton, \"EDIT\");\n            o.removeClass(this._favoriteSidebar, \"_4-d6\");\n            this.inform(\"editEnd\");\n        },\n        _onClick: function(event) {\n            var xb = event.getTarget(), yb = oa.byTag(xb, \"li\");\n            if (t.isEditMode()) {\n                var zb = oa.byClass(xb, \"_54sk\");\n                if ((zb && yb)) {\n                    var ac = ca.get(yb, \"id\");\n                    if (ac) {\n                        t.toggleID(ac);\n                        t.save();\n                    }\n                ;\n                    this.update();\n                }\n            ;\n                event.prevent();\n                return false;\n            }\n        ;\n            if (yb) {\n                if (o.hasClass(yb, \"blackbirdWhitelist\")) {\n                    var bc = new xa(\"/ajax/chat/privacy/settings_dialog.php\").addQueryData({\n                        ref: \"whitelist_separator\"\n                    });\n                    j.send(new k(bc));\n                    event.prevent();\n                    return false;\n                }\n            ;\n                var cc = ca.get(yb, \"id\"), dc = o.hasClass(yb, \"_56yg\");\n                if ((cc || dc)) {\n                    var ec = this._getChatTabOpenLogData(yb), fc = o.hasClass(document.documentElement, \"sidebarMode\"), gc = (qa.getOnlinePolicy() === qa.ONLINE_TO_WHITELIST), hc = (gc ? \"white_list\" : \"ordered_list\");\n                    if (dc) {\n                        cc = yb.getAttribute(\"data-threadid\");\n                        hc = (cc ? \"recent_threads_in_divebar\" : \"recent_threads_in_divebar_new\");\n                    }\n                     else if (((fc && this._favoriteMode) && !gc)) {\n                        while (yb.parentNode) {\n                            yb = yb.parentNode;\n                            if (o.hasClass(yb, \"_42g8\")) {\n                                hc = \"more_online_friends\";\n                                break;\n                            }\n                        ;\n                            if (o.hasClass(yb, \"_42g7\")) {\n                                break;\n                            };\n                        };\n                    }\n                     else while (yb.previousSibling) {\n                        yb = yb.previousSibling;\n                        if (o.hasClass(yb, \"_554m\")) {\n                            if (o.hasClass(yb, \"moreOnlineFriends\")) {\n                                hc = \"more_online_friends\";\n                                break;\n                            }\n                        ;\n                            if (o.hasClass(yb, \"blackbirdWhitelist\")) {\n                                hc = \"blackbird_offline_section\";\n                                break;\n                            }\n                        ;\n                        }\n                    ;\n                    }\n                    \n                ;\n                    ec.source = hc;\n                    var ic = (dc ? z.THREAD_TYPE : ka.FRIEND);\n                    q.openTab(cc, ic, ec);\n                    this.inform(\"click\", {\n                        id: cc\n                    });\n                }\n                 else if ((o.hasClass(yb, \"_554m\") && oa.byClass(xb, \"_554n\"))) {\n                    this.scrollTo(yb);\n                }\n                 else if (o.hasClass(yb, \"_55nf\")) {\n                    return\n                }\n                \n            ;\n                return false;\n            }\n        ;\n        },\n        _mouseEnter: function() {\n            this._preventRendering = true;\n        },\n        _mouseLeave: function() {\n            this._preventRendering = false;\n        },\n        setExcludedIds: function(xb) {\n            this._excludedIds = bb((xb || []));\n        },\n        setNumTopFriends: function(xb) {\n            if ((xb !== this._numTopFriends)) {\n                this._numTopFriends = xb;\n                this.render();\n            }\n        ;\n        },\n        _getOfflineToSectionItems: function() {\n            var xb = (\"subheader-text-\" + fb()), yb = ba.create(\"a\", {\n                href: \"#\",\n                \"aria-describedby\": xb\n            }, ba.tx._(\"Edit\")), zb = [], ac = ba.tx._(\"MORE FRIENDS\");\n            zb.push(ia.li({\n                className: \"_554m\"\n            }, ia.div({\n                className: \"_554o\"\n            }, ia.div({\n                className: \"_554n\"\n            }, ia.span({\n                className: \"_554p\"\n            }, ac), ia.div({\n                className: \"_554q\"\n            }, ia.span({\n                className: \"_554r\"\n            }))))));\n            zb.push(ia.li({\n                className: \"_554m blackbirdWhitelist\"\n            }, ia.div({\n                className: \"_554o\"\n            }, ia.div({\n                className: \"fbChatOrderedList/separatorInner\"\n            }, ia.div({\n                className: \"fbChatOrderedList/separatorSubheader\"\n            }, ia.span({\n                id: xb,\n                className: \"_554t\"\n            }, kb._(\"These friends can't see you on chat. {=link}\", {\n                \"=link\": yb\n            })))))));\n            return zb;\n        },\n        _renderOrderedList: function() {\n            if (((!this._isVisible || ((this._preventRendering && this._hasRendered))) || ob)) {\n                return\n            };\n            this._hasRendered = true;\n            this._cachedItems = null;\n            var xb = [], yb, zb, ac = false, bc = false, cc = r.get(\"divebar_has_new_groups_button\", false), dc = o.hasClass(document.documentElement, \"sidebarMode\"), ec = qa.getVisibility(), fc = (qa.getOnlinePolicy() === qa.ONLINE_TO_WHITELIST), gc = (this._isLitestandSidebar && this._isLitestandSidebarCollapsed()), hc = r.get(\"groups_in_divebar\");\n            (hc && this._updateGroupThreads());\n            var ic = (hc && v.getThreadIDs().length), jc = (((dc && this._favoriteMode) && ec) && !fc);\n            if ((((jc && hc) && ic) && this._groupThreadsNode)) {\n                ba.setContent(this._groupsList, this._groupThreadsNode);\n                x.nukeLinks(this._groupThreadsNode);\n                x.nukeLinks(this._favoriteList);\n                this.inform(\"render\");\n            }\n        ;\n            var kc = ((jc && this._groupThreadsNode) && this._groupsList), lc = (kc && ic), mc = (this._isLitestand && !oa.byClass(this._root, \"_4w59\"));\n            if ((kc && ((ic || (mc && cc))))) {\n                ba.setContent(this._groupsList, this._groupThreadsNode);\n                o.show(this._groupsList);\n                x.nukeLinks(this._favoriteList);\n                this.inform(\"render\");\n            }\n             else (this._groupsList && o.hide(this._groupsList));\n        ;\n            var nc = (ic || 0);\n            if ((cc && ((lc || !jc)))) {\n                nc++;\n            };\n            if ((this._hasChatFlyout && this._isLitestandSidebarCollapsed())) {\n                nc++;\n            };\n            var oc = [], pc, qc;\n            if (jc) {\n                (this._chatSidebar && o.addClass(this._chatSidebar, \"fbSidebarFavoriteList\"));\n                oc = t.get();\n                if (gc) {\n                    oc = oc.slice(0, Math.max(0, (this._numTopFriends - nc)));\n                };\n                for (pc = 0, qc = oc.length; (pc < qc); pc++) {\n                    yb = oc[pc];\n                    zb = this._getListItem(yb, true);\n                    if (zb) {\n                        xb.push(zb);\n                    }\n                     else {\n                        bc = true;\n                        this._renderListItem(yb, this.update.bind(this));\n                    }\n                ;\n                };\n            }\n        ;\n            this.toggleFavoriteSidebar(jc, lc);\n            var rc = (gc ? 1 : 0), sc = qb.getSortedList(bb(oc), Math.max(0, (((this._numTopFriends - oc.length) - nc) + rc)));\n            if (jc) {\n                if ((oc.length && sc.length)) {\n                    var tc = ba.create(\"li\", {\n                        className: \"_42g3\"\n                    });\n                    xb.push(tc);\n                }\n            ;\n            }\n             else if ((ic || cc)) {\n                (this._groupThreadsNode && xb.push(this._groupThreadsNode));\n            }\n        ;\n            var uc = (qa.getVisibility() && (qa.getOnlinePolicy() == qa.ONLINE_TO_WHITELIST));\n            for (var vc = 0, wc = sc.length; (vc < wc); vc++) {\n                yb = sc[vc];\n                if (uc) {\n                    if (!qa.allows(yb)) {\n                        if (((vc + 2) >= sc.length)) {\n                            break;\n                        };\n                        uc = false;\n                        var xc = this._getOfflineToSectionItems();\n                        xb.push(xc[0]);\n                        xb.push(xc[1]);\n                        wc -= 2;\n                    }\n                \n                };\n                zb = this._getListItem(yb);\n                if (zb) {\n                    xb.push(zb);\n                }\n                 else this._renderListItem(yb, this.render.bind(this));\n            ;\n            };\n            if (jc) {\n                ba.setContent(this._favoriteList, xb);\n                if (xb.length) {\n                    x.nukeLinks(this._favoriteList);\n                };\n                this.inform(\"render\");\n            }\n        ;\n            var yc;\n            if (gc) {\n                yc = [];\n            }\n             else yc = qb.getAvailableList(this._excludedIds);\n        ;\n            var zc = oc.concat(sc), ad = bb(zc);\n            yc = yc.filter(function(jd) {\n                return !((jd in ad));\n            });\n            if (this._renderUnreadCount) {\n                var bd = [];\n                if (this._renderedTopUsers) {\n                    var cd = Object.keys(this._renderedTopUsers).filter(function(jd) {\n                        return !((jd in ad));\n                    });\n                    cd.forEach(function(jd) {\n                        this._updateUnreadCount(jd, 0);\n                    }.bind(this));\n                    zc.forEach(function(jd) {\n                        if (!((jd in this._renderedTopUsers))) {\n                            bd.push(jd);\n                        };\n                    }.bind(this));\n                }\n                 else bd = zc;\n            ;\n                bd.forEach(function(jd) {\n                    ma.getThreadMeta(ma.getThreadIdForUser(jd), function(kd) {\n                        this._updateUnreadCount(jd, (kd && kd.unread_count));\n                    }.bind(this));\n                }.bind(this));\n                this._renderedTopUsers = ad;\n            }\n        ;\n            if (r.get(\"divebar_show_mobile_more_friends_alphabetical\")) {\n                yc.sort(vb);\n            }\n             else yc.sort(wb);\n        ;\n            var dd = \"MORE FRIENDS\";\n            if (jc) {\n                xb = [];\n            }\n             else if ((yc.length && xb.length)) {\n                var ed;\n                if (this._isLitestand) {\n                    ed = ia.span(null, ia.span({\n                        className: \"_554u\"\n                    }, dd, \" \\u00b7 \", yc.length), ia.span({\n                        className: \"_554v\"\n                    }, \" +\", yc.length));\n                }\n                 else ed = kb._(\"{MORE ONLINE FRIENDS} ({=count})\", {\n                    \"MORE ONLINE FRIENDS\": dd,\n                    \"=count\": yc.length\n                });\n            ;\n                if (this._pymk) {\n                    ac = true;\n                    xb.push(this._pymk);\n                }\n            ;\n                xb.push(ia.li({\n                    className: \"_554m moreOnlineFriends\"\n                }, ia.div({\n                    className: \"_554o\"\n                }, ia.div({\n                    className: \"_554n\"\n                }, ia.span({\n                    className: \"_554p\"\n                }, ed), ia.div({\n                    className: \"_554q\"\n                }, ia.span({\n                    className: \"_554r\"\n                }))))));\n            }\n            \n        ;\n            for (pc = 0, qc = yc.length; (pc < qc); pc++) {\n                yb = yc[pc];\n                zb = this._getListItem(yb);\n                if (zb) {\n                    xb.push(zb);\n                }\n                 else this._renderListItem(yb, this.render.bind(this));\n            ;\n            };\n            if (((!sc.length && !yc.length) && !nc)) {\n                var fd = this._messageTemplate.render(), gd = za.getNode(fd, \"message\");\n                ba.setContent(gd, \"No one is available to chat.\");\n                xb.push(fd);\n            }\n        ;\n            if (this._hasChatFlyout) {\n                var hd = (this._isLitestandSidebarCollapsed() ? this._getSidebarFlyoutItem() : null);\n                ba.setContent(this._sidebarFlyoutItemContainer, hd);\n            }\n        ;\n            if (xb.length) {\n                if (jc) {\n                    o.show(this._activeNowList);\n                    if (this._activeNowLabel) {\n                        var id;\n                        o.show(this._activeNowArea);\n                        if (this._isLitestand) {\n                            id = ia.span(null, ia.span({\n                                className: \"_554u\"\n                            }, dd, \" \\u00b7 \", yc.length), ia.span({\n                                className: \"_554v\"\n                            }, \" +\", yc.length));\n                        }\n                         else id = kb._(\"{MORE ONLINE FRIENDS} ({=count})\", {\n                            \"MORE ONLINE FRIENDS\": \"ACTIVE NOW\",\n                            \"=count\": yc.length\n                        });\n                    ;\n                        ba.setContent(this._activeNowLabel, id);\n                    }\n                ;\n                    ba.setContent(this._activeNowList, xb);\n                    x.nukeLinks(this._activeNowList);\n                }\n                 else {\n                    if ((this._pymk && !ac)) {\n                        xb.push(this._pymk);\n                    };\n                    ba.setContent(this._orderedList, xb);\n                    if (this._pymk) {\n                        x.removeMessagesHrefs(this.getRoot());\n                    }\n                     else x.nukeLinks(this.getRoot());\n                ;\n                }\n            ;\n                this.inform(\"render\");\n                this._placeholderUpdate();\n                if (!this._renderingAfterScroll) {\n                    this._renderingAfterScroll = true;\n                    this.render = eb(hb.curry(this._renderOrderedList.bind(this), \"ChatOrderedList/render\", true), 300);\n                }\n            ;\n            }\n             else if (jc) {\n                o.hide(this._activeNowList);\n                if (this._activeNowArea) {\n                    o.hide(this._activeNowArea);\n                };\n            }\n            \n        ;\n            if (jc) {\n                (this._editButton && u.tryShow(this._editButton));\n            }\n             else u.tryHide();\n        ;\n            if ((jc && !bc)) {\n                if ((t.isEditMode() && t.hasChanged())) {\n                    this._createSortableGroup();\n                }\n            };\n        },\n        render: function() {\n            this.render = eb(this._renderOrderedList.bind(this), 300);\n            this.render();\n        },\n        _renderListItem: function(xb, yb) {\n            ta.get(xb, function(zb) {\n                var ac = this._template.render(), bc = za.getNode(ac, \"profile-photo\");\n                if (r.get(\"chat_use_client_side_image_requests\", 0)) {\n                    var cc = (this._isLitestand ? 24 : 28);\n                    new fa().setFBID(zb.id).setType(ga.PROFILE_PICTURE).setDimensions(cc, cc).setResizeMode(pa.COVER).setCallback(function(hc) {\n                        bc.setAttribute(\"src\", hc.uri);\n                    }).send();\n                }\n                 else bc.setAttribute(\"src\", zb.thumbSrc);\n            ;\n                var dc = za.getNode(ac, \"name\");\n                ba.setContent(dc, zb.name);\n                var ec = za.getNode(ac, \"accessible-name\");\n                ba.setContent(ec, zb.name);\n                var fc = za.getNode(ac, \"anchor\");\n                fc.setAttribute(\"href\", (\"/messages/\" + xb));\n                var gc = za.getNode(ac, \"tooltip\");\n                (gc && va.set(gc, zb.name, \"right\"));\n                ca.set(ac, \"id\", xb);\n                this._itemsMap[xb] = {\n                    node: ac\n                };\n                (yb && yb(ac));\n            }.bind(this));\n        },\n        _updateUnreadCount: function(xb, yb) {\n            var zb = this._itemsMap[xb];\n            if (!zb) {\n                return\n            };\n            if (this._isSidebar) {\n                this._unreadMessages = (this._unreadMessages || {\n                });\n                if (!!yb) {\n                    this._unreadMessages[xb] = true;\n                }\n                 else delete this._unreadMessages[xb];\n            ;\n                h.inform(\"buddylist-nub/updateCount\", {\n                    count: Object.keys(this._unreadMessages).length\n                });\n            }\n        ;\n            zb.unreadCount = (zb.unreadCount || ba.find(zb.node, \"._550_\"));\n            yb = (yb ? yb : 0);\n            ba.setContent(zb.unreadCount, ((yb > pb) ? (pb + \"+\") : yb));\n            o.conditionClass(zb.unreadCount, \"_550z\", (yb > pb));\n            o.conditionClass(zb.node, \"_550-\", yb);\n        },\n        _getSidebarFlyoutItem: function() {\n            if (this._flyoutItem) {\n                return this._flyoutItem\n            };\n            this._flyoutItem = (ia.li({\n                className: \"_57dk\"\n            }, ia.div({\n                className: \"_57dl\"\n            })));\n            ea.listen(this._flyoutItem, \"mouseenter\", function() {\n                var yb = ia.span(null, \"Chat\", \" \\u00b7 \", l.getOnlineCount());\n                if ((this._flyoutInstance && this._flyoutInstance.isShown())) {\n                    va.remove(this._flyoutItem);\n                }\n                 else va.set(this._flyoutItem, yb, \"right\");\n            ;\n            }.bind(this));\n            var xb = this._showLitestandChatFlyout.bind(this);\n            h.subscribe(\"ChatBeeper/clicked\", xb);\n            ea.listen(this._flyoutItem, \"click\", xb);\n            return this._flyoutItem;\n        },\n        _showLitestandChatFlyout: function() {\n            if (this._loadingFlyout) {\n                return\n            };\n            if (this._flyoutInstance) {\n                this._flyoutInstance.toggle();\n                return;\n            }\n        ;\n            this._loadingFlyout = true;\n            new k(\"/ajax/chat/litestand_flyout\").setData({\n                contextID: ba.getID(this._flyoutItem)\n            }).setAllowCrossPageTransition(true).send();\n            var xb = h.subscribe(\"LitestandChatSidebarFlyout/init\", function(yb, zb) {\n                this._flyoutInstance = zb;\n                this._loadingFlyout = false;\n                xb.unsubscribe();\n                this.subscribe(\"render\", zb.contextPositionInvalidated.bind(zb));\n            }.bind(this));\n        },\n        show: function() {\n            if (this._isVisible) {\n                return\n            };\n            this._isVisible = true;\n            o.show((this._scrollableOrderedList || this._root));\n            this.render();\n            this.inform(\"show\");\n        },\n        isVisible: function() {\n            return this._isVisible;\n        },\n        update: function() {\n            this._hasRendered = false;\n            if (!this._renderRequest) {\n                this._renderRequest = gb(function() {\n                    this.render();\n                    this._renderRequest = null;\n                }.bind(this));\n            };\n        },\n        setScrollContainer: function(xb) {\n            if (ba.contains(xb, this._root)) {\n                this._scrollContainer = xb;\n                if (this._usePlaceholder) {\n                    ea.listen(xb, \"scroll\", jb.acrossTransitions(this._placeholderUpdate.bind(this)));\n                    ea.listen(window, \"resize\", jb.acrossTransitions(function() {\n                        this._scrollContainerHeight = null;\n                        this._placeholderUpdate();\n                    }.bind(this), 250));\n                }\n            ;\n            }\n        ;\n        },\n        scrollTo: function(xb) {\n            if (!this._scrollContainer) {\n                return\n            };\n            var yb = this._scrollContainer.scrollHeight, zb = this._scrollContainer.clientHeight, ac = this._scrollContainer.scrollTop, bc = Math.min(xb.offsetTop, (yb - zb));\n            if ((ac !== bc)) {\n                var cc = (this._isLitestand ? 600 : ((Math.abs((bc - ac)) / this._scrollContainer.clientHeight) * 500)), dc = (this._isLitestand ? da.easeOutExpo : g.ease.end);\n                new g(this._scrollContainer).to(\"scrollTop\", bc).ease(dc).duration(cc).go();\n            }\n        ;\n        },\n        _applyContext: function(xb, yb) {\n            var zb = (s.getShortDisplay(xb) || \"\");\n            if (yb.contextNode) {\n                ba.setContent(yb.contextNode, zb);\n                o.conditionClass(yb.node, \"_52zj\", zb);\n                var ac = s.get(xb), bc = (ac ? ac.type : null);\n                for (var cc in qb.CONTEXT_CLASSES) {\n                    var dc = ((cc === bc)), ec = (qb.CONTEXT_CLASSES[cc] || \"_56x-\");\n                    o.conditionClass(yb.contextNode, ec, dc);\n                };\n            }\n        ;\n        }\n    });\n    e.exports = qb;\n});\n__d(\"TypingDetectorController\", [\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"ChannelConnection\",\"ChatVisibility\",\"Keys\",\"PresencePrivacy\",\"ShortProfiles\",\"TypingDetector\",\"copyProperties\",\"emptyFunction\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"AvailableList\"), i = b(\"AvailableListConstants\"), j = b(\"ChannelConnection\"), k = b(\"ChatVisibility\"), l = b(\"Keys\"), m = b(\"PresencePrivacy\"), n = b(\"ShortProfiles\"), o = b(\"TypingDetector\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"shield\");\n    function s(u) {\n        if (!k.isOnline()) {\n            return false\n        };\n        if (u) {\n            var v = n.getNow(u);\n            return ((v && (v.type == \"friend\")) && m.allows(u));\n        }\n    ;\n        return true;\n    };\n    function t(u, v, w, x, y) {\n        this.userID = u;\n        this.input = v;\n        this.source = w;\n        this.threadID = y;\n        this.remoteState = o.INACTIVE;\n        this.notifyTimer = null;\n        x = (x || {\n        });\n        this.notifyDelay = (x.notifyDelay || this.notifyDelay);\n        this._typingDetector = new o(v);\n        this._typingDetector.init(x);\n        this._typingDetector.subscribe(\"change\", this._stateChange.bind(this));\n    };\n    p(t.prototype, {\n        notifyDelay: 1000,\n        setUserAndThread: function(u, v) {\n            if (((this.userID !== u) || (this.threadID !== v))) {\n                this.resetState();\n                this.userID = u;\n                this.threadID = v;\n            }\n        ;\n        },\n        setIgnoreEnter: function(u) {\n            var v = (u ? [l.RETURN,] : []);\n            this._typingDetector.setIgnoreKeys(v);\n        },\n        resetState: function() {\n            this.remoteState = t.INACTIVE;\n            this._typingDetector.reset();\n            clearTimeout(this.notifyTimer);\n            this.notifyTimer = null;\n        },\n        _stateChange: function(u, v) {\n            if ((v != o.QUITTING)) {\n                clearTimeout(this.notifyTimer);\n                this.notifyTimer = r(this._notifyState, this, v).defer(this.notifyDelay, false);\n            }\n             else this._notifyState(v, true);\n        ;\n        },\n        _notifyState: function(u, v) {\n            if ((!this.userID && !this.threadID)) {\n                return\n            };\n            var w = this.userID, x = s(w);\n            if ((x && (u != this.remoteState))) {\n                this.remoteState = u;\n                if (j.disconnected()) {\n                    return\n                };\n                var y = {\n                    typ: u,\n                    to: w,\n                    source: this.source,\n                    thread: this.threadID\n                };\n                new g().setHandler(this._onTypResponse.bind(this, w)).setErrorHandler(q).setData(y).setURI(\"/ajax/messaging/typ.php\").setAllowCrossPageTransition(true).setOption(\"asynchronous\", !v).send();\n            }\n        ;\n        },\n        _onTypResponse: function(u, v) {\n            var w = (v.getPayload() || {\n            });\n            if (w.offline) {\n                h.set(u, i.OFFLINE, \"typing_response\");\n            };\n        }\n    });\n    e.exports = t;\n});\n__d(\"ChatBehavior\", [\"Arbiter\",\"AvailableList\",\"AvailableListConstants\",\"ChatConfig\",\"copyProperties\",\"MercuryConstants\",\"ChatSidebarCalloutData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AvailableList\"), i = b(\"AvailableListConstants\"), j = b(\"ChatConfig\"), k = b(\"copyProperties\"), l = b(\"MercuryConstants\").ChatNotificationConstants, m = b(\"ChatSidebarCalloutData\").isShown, n = h.getWebChatNotification(), o = m, p = true, q = k(new g(), {\n        ON_CHANGED: \"changed\",\n        notifiesUserMessages: function() {\n            return (n !== l.NO_USER_MESSAGE_NOTIFICATION);\n        },\n        ignoresRemoteTabRaise: function() {\n            return o;\n        },\n        showsTabUnreadUI: function() {\n            if (j.get(\"web_messenger_suppress_tab_unread\")) {\n                return p\n            };\n            return true;\n        }\n    });\n    function r() {\n        q.inform(q.ON_CHANGED);\n    };\n    h.subscribe(i.ON_CHAT_NOTIFICATION_CHANGED, function() {\n        var s = n, t = h.getWebChatNotification();\n        n = t;\n        if ((s != t)) {\n            r();\n        };\n    });\n    g.subscribe(\"chat/set_does_page_occlude_tabs\", function(s, t) {\n        o = !!t;\n        r();\n    });\n    g.subscribe(\"chat/set_show_tab_unread_ui\", function(s, t) {\n        p = !!t;\n        r();\n    });\n    e.exports = q;\n});\n__d(\"ChatSidebarSheet\", [\"JSXDOM\",\"Event\",\"function-extensions\",\"ArbiterMixin\",\"BlackbirdUpsell\",\"ChannelConnection\",\"ChannelConstants\",\"ChatBehavior\",\"ChatConfig\",\"ChatVisibility\",\"CSS\",\"DOM\",\"JSLogger\",\"PresencePrivacy\",\"Tooltip\",\"csx\",\"cx\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Event\");\n    b(\"function-extensions\");\n    var i = b(\"ArbiterMixin\"), j = b(\"BlackbirdUpsell\"), k = b(\"ChannelConnection\"), l = b(\"ChannelConstants\"), m = b(\"ChatBehavior\"), n = b(\"ChatConfig\"), o = b(\"ChatVisibility\"), p = b(\"CSS\"), q = b(\"DOM\"), r = b(\"JSLogger\"), s = b(\"PresencePrivacy\"), t = b(\"Tooltip\"), u = b(\"csx\"), v = b(\"cx\"), w = b(\"copyProperties\"), x = b(\"tx\"), y = r.create(\"sidebar_sheet\");\n    function z(ca) {\n        switch (ca) {\n          case l.HINT_AUTH:\n            return \"Your session has timed out. Please log in.\";\n          case l.HINT_CONN:\n            return x._(\"Facebook {Chat} is currently unavailable.\", {\n                Chat: \"Chat\"\n            });\n          case l.HINT_MAINT:\n            return x._(\"Facebook {Chat} is currently down for maintenance.\", {\n                Chat: \"Chat\"\n            });\n          default:\n            return x._(\"Facebook {Chat} is currently unavailable.\", {\n                Chat: \"Chat\"\n            });\n        };\n    };\n    function aa(ca) {\n        var da;\n        if ((ca === null)) {\n            da = \"Unable to connect to chat. Check your Internet connection.\";\n        }\n         else if ((ca > n.get(\"warning_countdown_threshold_msec\"))) {\n            var ea = q.create(\"a\", {\n                href: \"#\",\n                className: \"fbChatReconnectLink\"\n            }, \"Try again\");\n            da = q.tx._(\"Unable to connect to chat. {try-again-link}\", {\n                \"try-again-link\": ea\n            });\n        }\n         else if ((ca > 1000)) {\n            da = x._(\"Unable to connect to chat. Reconnecting in {seconds}...\", {\n                seconds: Math.floor((ca / 1000))\n            });\n        }\n         else da = \"Unable to connect to chat. Reconnecting...\";\n        \n        \n    ;\n        return da;\n    };\n    function ba(ca) {\n        this._root = ca;\n        this._litestandOffline = q.scry(ca, \"._52d2\");\n        this._message = q.find(ca, \"div.fbChatSidebarMessage div.message\");\n        k.subscribe([k.CONNECTED,k.SHUTDOWN,k.RECONNECTING,], this._handleConnectionChange.bind(this));\n        k.subscribe([k.MUTE_WARNING,k.UNMUTE_WARNING,], this._render.bind(this));\n        s.subscribe(\"privacy-user-presence-changed\", this._render.bind(this));\n        m.subscribe(m.ON_CHANGED, this._render.bind(this));\n        this._render();\n    };\n    w(ba.prototype, i, {\n        _channelStatus: null,\n        _channelData: null,\n        _handleConnectionChange: function(ca, da) {\n            this._channelStatus = ca;\n            this._channelData = da;\n            this._render();\n        },\n        _showWarningTimeout: null,\n        _warningMsgEventListener: null,\n        _renderChannelDisconnect: function() {\n            if ((this._channelStatus === k.SHUTDOWN)) {\n                return q.setContent(this._message, z(this._channelData));\n            }\n             else if ((this._channelStatus === k.RECONNECTING)) {\n                var ca = this._channelData;\n                q.setContent(this._message, aa(ca));\n                if ((ca > 1000)) {\n                    if ((ca > n.get(\"warning_countdown_threshold_msec\"))) {\n                        this._warningMsgEventListener = h.listen(this._message, \"click\", function(event) {\n                            if (p.hasClass(event.getTarget(), \"fbChatReconnectLink\")) {\n                                k.reconnect();\n                                return false;\n                            }\n                        ;\n                        });\n                    };\n                    this._showWarningTimeout = setTimeout(this._handleConnectionChange.bind(this, k.RECONNECTING, (ca - 1000)), 1000, false);\n                }\n            ;\n            }\n            \n        ;\n        },\n        _goOnlineEventListener: null,\n        _renderOffline: function() {\n            if (this._isLitestand) {\n                return\n            };\n            if ((this._litestandOffline && this._litestandOffline.length)) {\n                this._renderLitestandOffline();\n            };\n            var ca = \"fbChatGoOnlineLink\", da = \"Turn on chat\", ea = q.create(\"a\", {\n                href: \"#\",\n                className: ca\n            }, da), fa = q.tx._(\"{=Go online} to see who's available.\", {\n                \"=Go online\": ea\n            });\n            q.setContent(this._message, fa);\n            this._goOnlineEventListener = h.listen(this._message, \"click\", function(event) {\n                if (p.hasClass(event.getTarget(), ca)) {\n                    y.log(\"sidebar_go_online\");\n                    o.goOnline();\n                    return false;\n                }\n            ;\n            });\n        },\n        _renderLitestandOffline: function() {\n            this._litestandOffline = this._litestandOffline[0];\n            this._isLitestand = true;\n            var ca = g.div({\n                className: \"_4_vf\"\n            }), da = g.a({\n                className: \"_52cx _52i7\",\n                href: \"#\"\n            }, g.i({\n                className: \"_52c_\"\n            }), g.div({\n                className: \"_52cz\"\n            }, g.div({\n                className: \"_52c-\"\n            }, g.i({\n                className: \"_52d1\"\n            }), g.div({\n                className: \"_52cy\"\n            }, q.tx._(\"Turn on Chat\")))), g.i({\n                className: \"_52d0\"\n            }), ca);\n            t.set(ca, q.tx._(\"Turn on Chat\"), \"right\", \"center\");\n            q.replace(this._litestandOffline, da);\n            this._litestandOffline = null;\n            h.listen(da, \"click\", function(event) {\n                y.log(\"sidebar_go_online\");\n                o.goOnline();\n                event.prevent();\n            });\n        },\n        _renderBlackbirdUpsell: function() {\n            q.setContent(this._message, j.getOfflineContent());\n        },\n        _renderBlackbird: function(ca) {\n            q.setContent(this._message, j.getBlackbirdContent(ca));\n        },\n        _clear: function() {\n            if (this._showWarningTimeout) {\n                clearTimeout(this._showWarningTimeout);\n                this._showWarningTimeout = null;\n            }\n        ;\n            if (this._warningMsgEventListener) {\n                this._warningMsgEventListener.remove();\n                this._warningMsgEventListener = null;\n            }\n        ;\n            if (this._goOnlineEventListener) {\n                this._goOnlineEventListener.remove();\n                this._goOnlineEventListener = null;\n            }\n        ;\n            p.removeClass(this._root, \"upsell\");\n            p.removeClass(this._root, \"offline\");\n            p.removeClass(this._root, \"blackbird\");\n            p.removeClass(this._root, \"error\");\n            p.removeClass(this._root, \"notice\");\n            q.empty(this._message);\n        },\n        _render: function() {\n            this._clear();\n            if (j.shouldShow()) {\n                if (o.hasBlackbirdEnabled()) {\n                    var ca = (o.isOnline() ? \"blackbird\" : \"upsell\");\n                    p.addClass(this._root, ca);\n                    this._renderBlackbird(s.getVisibility());\n                }\n                 else if (!o.isOnline()) {\n                    p.addClass(this._root, \"upsell\");\n                    this._renderBlackbirdUpsell();\n                }\n                \n            ;\n            }\n             else if (!o.isOnline()) {\n                p.addClass(this._root, \"offline\");\n                this._renderOffline();\n            }\n             else if (k.disconnected()) {\n                p.addClass(this._root, \"error\");\n                this._renderChannelDisconnect();\n            }\n             else if (!m.notifiesUserMessages()) {\n                p.addClass(this._root, \"notice\");\n                q.setContent(this._message, \"Alerts are off while you use another client to chat.\");\n            }\n            \n            \n            \n        ;\n            this.inform(\"updated\");\n        }\n    });\n    e.exports = ba;\n});\n__d(\"FBDesktopPlugin\", [\"CacheStorage\",\"DOM\",\"Env\",\"FBDesktopDetect\",\"URI\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"CacheStorage\"), h = b(\"DOM\"), i = b(\"Env\"), j = b(\"FBDesktopDetect\"), k = b(\"URI\"), l = b(\"Style\"), m = new g(\"localstorage\", \"_socialfox_\"), n = {\n        _plugin: \"_not_checked\",\n        arbiterInform: function(o, p) {\n            var q = JSON.stringify({\n                name: o,\n                payload: p\n            });\n            this._transmitCommand(\"arbiterinform\", q);\n        },\n        bringToFront: function() {\n            this._transmitCommand(\"bringtofront\");\n        },\n        dock: function() {\n            this._transmitCommand(\"dock\");\n        },\n        getPlugin: function() {\n            if ((this._plugin === \"_not_checked\")) {\n                this._plugin = null;\n                if (j.isPluginInstalled()) {\n                    var o = h.create(\"object\", {\n                        id: \"kiwi_plugin\",\n                        type: j.mimeType\n                    });\n                    l.set(o, \"width\", 0);\n                    l.set(o, \"height\", 0);\n                    var p = h.create(\"div\", {\n                    }, o);\n                    l.set(p, \"width\", 0);\n                    l.set(p, \"height\", 0);\n                    document.body.appendChild(p);\n                    this._plugin = o;\n                }\n            ;\n            }\n        ;\n            return this._plugin;\n        },\n        getUserID: function() {\n            var o = this.getPlugin();\n            return ((o && (\"getUserID\" in o)) && o.getUserID());\n        },\n        getVersion: function() {\n            var o = this.getPlugin();\n            return ((o && (\"getVersion\" in o)) && o.getVersion());\n        },\n        isAppRunning: function() {\n            var o = this.getPlugin();\n            return ((o && (\"isAppRunning\" in o)) && o.isAppRunning());\n        },\n        launchApp: function() {\n            var o = this.getPlugin();\n            return ((o && (\"launchApp\" in o)) && o.launchApp());\n        },\n        login: function(o, p) {\n            if (((p && o) && (o.length > 0))) {\n                var q = this.getPlugin();\n                if (q) {\n                    this._transmitCommand((((\"relogin\\u000a\" + o) + \"\\u000a\") + p));\n                    return;\n                }\n            ;\n            }\n        ;\n        },\n        logout: function(o) {\n            o = (o || \"0\");\n            var p = this.getPlugin();\n            if (p) {\n                p.logout(o);\n            };\n        },\n        recheck: function() {\n            if ((this._plugin === null)) {\n                this._plugin = \"_not_checked\";\n            };\n        },\n        shouldSuppressBeeper: function() {\n            return this.isAppRunning();\n        },\n        shouldSuppressMessages: function() {\n            if ((m && m.get(\"connected\"))) {\n                return true\n            };\n            var o = this.getUserID();\n            if (o) {\n                return (o === i.user);\n            }\n             else return this.isAppRunning()\n        ;\n        },\n        shouldSuppressSidebar: function() {\n            var o = this.getPlugin(), p = ((o && (\"isAppDocked\" in o)) && o.isAppDocked()), q = (m && (m.get(\"active\") === \"true\"));\n            return (p || q);\n        },\n        transferAuthToken: function(o, p) {\n            if ((o && (o.length > 0))) {\n                var q = this.getPlugin();\n                if (q) {\n                    q.setAccessToken(o, p);\n                    var r = setInterval(function() {\n                        q.setAccessToken(o, p);\n                    }, 500);\n                    setTimeout(function() {\n                        clearInterval(r);\n                    }, (10 * 1000));\n                }\n            ;\n            }\n        ;\n            if (this.redirectHome) {\n                window.location.href = k().setPath().toString();\n            };\n        },\n        _transmitCommand: function(o, p) {\n            p = (p || \"\");\n            var q = this.getPlugin();\n            if ((q && (\"transmitCommand\" in q))) {\n                q.transmitCommand(o, p);\n            };\n        }\n    };\n    e.exports = n;\n});\n__d(\"ChatSidebar\", [\"ChatOrderedList\",\"ChatTypeaheadBehavior\",\"ChatTypeaheadCore\",\"ChatTypeaheadDataSource\",\"ChatTypeaheadRenderer\",\"ChatTypeaheadView\",\"Typeahead\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"Bootloader\",\"ChannelConnection\",\"Chat\",\"ChatConfig\",\"ChatHovercard\",\"ChatImpressionLogger\",\"ChatOptions\",\"ChatSidebarSheet\",\"ChatVisibility\",\"CSS\",\"DOM\",\"DOMDimensions\",\"Event\",\"FBDesktopPlugin\",\"JSLogger\",\"JSXDOM\",\"KeyEventController\",\"OrderedFriendsList\",\"Parent\",\"PresencePrivacy\",\"ScrollableArea\",\"Style\",\"UserAgent\",\"ViewportBounds\",\"copyProperties\",\"createArrayFrom\",\"csx\",\"cx\",\"debounce\",\"emptyFunction\",\"fbt\",\"ge\",\"tx\",], function(a, b, c, d, e, f) {\n    b(\"ChatOrderedList\");\n    b(\"ChatTypeaheadBehavior\");\n    b(\"ChatTypeaheadCore\");\n    b(\"ChatTypeaheadDataSource\");\n    b(\"ChatTypeaheadRenderer\");\n    b(\"ChatTypeaheadView\");\n    b(\"Typeahead\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"AsyncRequest\"), j = b(\"AvailableList\"), k = b(\"AvailableListConstants\"), l = b(\"Bootloader\"), m = b(\"ChannelConnection\"), n = b(\"Chat\"), o = b(\"ChatConfig\"), p = b(\"ChatHovercard\"), q = b(\"ChatImpressionLogger\"), r = b(\"ChatOptions\"), s = b(\"ChatSidebarSheet\"), t = b(\"ChatVisibility\"), u = b(\"CSS\"), v = b(\"DOM\"), w = b(\"DOMDimensions\"), x = b(\"Event\"), y = b(\"FBDesktopPlugin\"), z = b(\"JSLogger\"), aa = b(\"JSXDOM\"), ba = b(\"KeyEventController\"), ca = b(\"OrderedFriendsList\"), da = b(\"Parent\"), ea = b(\"PresencePrivacy\"), fa = b(\"ScrollableArea\"), ga = b(\"Style\"), ha = b(\"UserAgent\"), ia = b(\"ViewportBounds\"), ja = b(\"copyProperties\"), ka = b(\"createArrayFrom\"), la = b(\"csx\"), ma = b(\"cx\"), na = b(\"debounce\"), oa = b(\"emptyFunction\"), pa = b(\"fbt\"), qa = b(\"ge\"), ra = b(\"tx\"), sa, ta = false, ua = false, va = false, wa = false, xa = false, ya = false, za, ab, bb, cb, db, eb = null, fb, gb, hb, ib, jb, kb, lb = 28, mb = 38, nb = z.create(\"chat_sidebar\");\n    function ob() {\n        if (gb) {\n            return\n        };\n        u.removeClass(document.documentElement, \"sidebarMode\");\n        if ((!wa || !yb.isVisible())) {\n            g.inform(\"reflow\");\n            return;\n        }\n    ;\n        va = false;\n        eb = null;\n        za.hide();\n        cb.getCore().reset();\n        u.hide(ab);\n        nb.rate(\"sidebar_hide\", wa);\n        yb.inform(\"sidebar/hide\", yb);\n        g.inform(\"sidebar/hide\", yb);\n        g.inform(\"reflow\");\n    };\n    function pb() {\n        var zb = yb.shouldShowSidebar();\n        u.conditionClass(document.documentElement, \"sidebarCapable\", zb);\n        if ((yb.isEnabled() && zb)) {\n            sb();\n            var ac;\n            if (fb) {\n                var bc = u.hasClass(ab, \"_4w59\");\n                if (bc) {\n                    return\n                };\n                kb = (kb || v.find(ab, \"._50g0\"));\n                if (fb.has_favorites_editing) {\n                    jb = (jb || v.scry(ab, \"._52s9\")[0]);\n                };\n                ac = [kb,];\n            }\n             else ac = ka(ab.childNodes);\n        ;\n            var cc = rb(ac), dc = (za.getItemHeight() || 32), ec = (za.getPaddingOffset() || 8), fc;\n            if (gb) {\n                if (gb.isExpanded()) {\n                    ec = (ec + lb);\n                    if ((fb && fb.always_show_one_see_more)) {\n                        ec += dc;\n                    };\n                }\n            ;\n                if (!n.isOnline()) {\n                    ec += mb;\n                };\n                var gc = Math.floor((za.getItemPadding() / 2));\n                fc = Math.floor(((((cc - ec) + gc)) / dc));\n                if (!za.isVisible()) {\n                    ga.set(sa, \"height\", (cc + \"px\"));\n                };\n            }\n             else {\n                fc = Math.floor((((cc - ec)) / ((dc + 1))));\n                ga.set(sa, \"height\", (cc + \"px\"));\n            }\n        ;\n            za.setNumTopFriends(fc);\n            var hc = Math.floor((((cc - ec)) / dc));\n            if (ub()) {\n                hc = ((((hc - 2)) > 0) ? (hc - 2) : 0);\n            };\n            cb.getData().setMaxResults(hc);\n            yb.inform(\"sidebar/resized\", yb);\n            g.inform(\"sidebar/resized\", yb);\n            g.inform(\"reflow\");\n        }\n         else ob();\n    ;\n        if (!wa) {\n            wb();\n            wa = true;\n        }\n    ;\n        eb = null;\n    };\n    function qb() {\n        if ((cb && yb.isVisible())) {\n            cb.getCore().getElement().focus();\n        };\n    };\n    function rb(zb) {\n        if (!zb) {\n            if (fb) {\n                kb = (kb || v.find(ab, \"._50g0\"));\n                zb = [kb,];\n            }\n             else zb = ka(ab.childNodes);\n        \n        };\n        var ac = db.height;\n        if ((gb && hb)) {\n            ac -= hb.getFullHeight();\n        };\n        zb.forEach(function(bc) {\n            if ((bc && (bc !== sa))) {\n                ac -= w.getElementDimensions(bc).height;\n            };\n        });\n        return Math.max(0, ac);\n    };\n    function sb() {\n        if (yb.isVisible()) {\n            return\n        };\n        va = true;\n        eb = null;\n        u.show(ab);\n        u.addClass(document.documentElement, \"sidebarMode\");\n        za.show();\n        nb.rate(\"sidebar_show\", wa);\n        yb.inform(\"sidebar/show\", yb);\n        g.inform(\"sidebar/show\", yb);\n        (ib && xb());\n    };\n    function tb() {\n        r.setSetting(\"sidebar_mode\", yb.isEnabled(), \"sidebar\");\n        new i(\"/ajax/chat/settings.php\").setHandler(oa).setErrorHandler(oa).setData({\n            sidebar_mode: yb.isEnabled()\n        }).setAllowCrossPageTransition(true).send();\n    };\n    function ub() {\n        return o.get(\"divebar_typeahead_group_fof\", 0);\n    };\n    function vb() {\n        return (ca.getList().length <= o.get(\"sidebar.min_friends\"));\n    };\n    function wb() {\n        var zb = true;\n        if (!yb.isEnabled()) {\n            nb.log(\"state_not_enabled\");\n            zb = false;\n        }\n    ;\n        if (!yb.isViewportCapable()) {\n            nb.log(\"state_not_shown_viewport\");\n            zb = false;\n        }\n    ;\n        if (ua) {\n            nb.log(\"state_not_shown_hidden\");\n            zb = false;\n        }\n    ;\n        if (vb()) {\n            nb.log(\"state_not_shown_num_friends\");\n            zb = false;\n        }\n    ;\n        if (y.shouldSuppressSidebar()) {\n            nb.log(\"state_not_shown_fbdesktop\");\n            zb = false;\n        }\n    ;\n        nb.log((zb ? \"state_shown\" : \"state_not_shown\"));\n    };\n    function xb() {\n        if (!yb.isVisible()) {\n            return\n        };\n        var zb;\n        if (!t.isOnline()) {\n            zb = \"Offline\";\n        }\n         else if (m.disconnected()) {\n            zb = \"Connection Lost\";\n        }\n         else zb = ra._(\"{Chat} {number-available}\", {\n            Chat: \"Chat\",\n            \"number-available\": ((\"(\" + j.getOnlineCount()) + \")\")\n        });\n        \n    ;\n        v.setContent(ib, zb);\n    };\n    var yb = {\n        init: function(zb, ac, bc, cc) {\n            yb.init = oa;\n            xa = true;\n            ab = zb;\n            za = ac;\n            cb = bc;\n            bb = cc;\n            sa = v.find(zb, \"div.fbChatSidebarBody\");\n            gb = (cc && cc.ls_module);\n            fb = (cc && cc.ls_config);\n            if (gb) {\n                g.subscribe(\"ViewportSizeChange\", function() {\n                    g.inform(\"ChatOrderedList/itemHeightChange\");\n                    pb();\n                });\n                g.subscribe(\"Sidebar/BookmarksHeightChange\", pb);\n                l.loadModules([\"LitestandSidebarBookmarksDisplay\",], function(ec) {\n                    hb = ec;\n                });\n            }\n             else x.listen(window, \"resize\", pb);\n        ;\n            ba.registerKey(\"q\", function() {\n                var ec = null;\n                if (kb) {\n                    ec = v.scry(kb, \".inputsearch\")[0];\n                }\n                 else ec = v.scry(zb, \".inputsearch\")[0];\n            ;\n                if (ec) {\n                    ec.focus();\n                    return false;\n                }\n            ;\n            });\n            new p(ac);\n            var dc = new s(zb);\n            dc.subscribe(\"updated\", pb);\n            g.subscribe(\"sidebar/invalidate\", pb);\n            ac.setScrollContainer(da.byClass(ac.getRoot(), \"uiScrollableAreaWrap\"));\n            ac.subscribe([\"render\",\"show\",\"hide\",], na(function(ec) {\n                if (((ec === \"render\") && !ya)) {\n                    ya = true;\n                    yb.inform(\"sidebar/chatRendered\", null, g.BEHAVIOR_PERSISTENT);\n                }\n            ;\n                var fc = ac.getRoot(), gc = fa.getInstance(fc);\n                (gc && gc.adjustGripper());\n            }));\n            ac.subscribe([\"editStart\",\"editEnd\",], function(ec) {\n                u.conditionClass(cb.getView().element, \"_4-d6\", (ec == \"editStart\"));\n            });\n            if ((ha.firefox() >= 17)) {\n                x.listen(window, \"storage\", function(ec) {\n                    if (((ec.key == \"_socialfox_active\") && (ec.oldValue != ec.newValue))) {\n                        pb();\n                    };\n                });\n            };\n            g.subscribe(\"chat/option-changed\", function(ec, fc) {\n                if ((fc.name == \"sidebar_mode\")) {\n                    ta = !!r.getSetting(\"sidebar_mode\");\n                    pb();\n                }\n            ;\n            });\n            bc.getCore().subscribe(\"sidebar/typeahead/active\", yb.updateOnActiveTypeahead);\n            bc.subscribe(\"reset\", function() {\n                if ((!bc.getCore().getValue() && !za.isVisible())) {\n                    yb.updateOnActiveTypeahead(null, false);\n                };\n            });\n            if (gb) {\n                bc.getCore().subscribe(\"sidebar/typeahead/preActive\", function(ec, fc) {\n                    if ((ta && cb.getView().isVisible())) {\n                        g.inform(ec, fc);\n                    }\n                     else pb();\n                ;\n                });\n            }\n             else g.subscribe(\"buddylist-nub/initialized\", function(ec, fc) {\n                x.listen(fc.getButton(), \"click\", function(event) {\n                    yb.enable();\n                    return !yb.shouldShowSidebar();\n                });\n            });\n        ;\n            ta = !!r.getSetting(\"sidebar_mode\");\n            (ha.ie() && x.listen(zb, \"click\", function(ec) {\n                if (da.byClass(ec.getTarget(), \"_57du\")) {\n                    qb();\n                };\n            }));\n            ea.subscribe(\"privacy-user-presence-changed\", pb);\n            pb();\n            q.init(za);\n            if (!gb) {\n                ia.addRight(yb.getVisibleWidth);\n            };\n            yb.inform(\"sidebar/initialized\", yb, g.BEHAVIOR_PERSISTENT);\n            g.inform(\"sidebar/initialized\", yb, g.BEHAVIOR_PERSISTENT);\n            if (o.get(\"litestand_blended_sidebar\")) {\n                ib = v.find(zb, \"._5bct\");\n                j.subscribe(k.ON_AVAILABILITY_CHANGED, na(xb, 2000));\n                m.subscribe([m.CONNECTED,m.RECONNECTING,m.SHUTDOWN,], xb);\n                ea.subscribe(\"privacy-changed\", xb);\n                xb();\n            }\n        ;\n        },\n        updateOnActiveTypeahead: function(zb, ac) {\n            if (!va) {\n                return\n            };\n            if (ac) {\n                za.hide();\n                if (gb) {\n                    u.addClass(ab, \"_5384\");\n                    var bc = rb();\n                    if (jb) {\n                        bc += w.getElementDimensions(jb).height;\n                    };\n                    ga.set(sa, \"height\", (bc + \"px\"));\n                }\n            ;\n            }\n             else {\n                za.show();\n                if (gb) {\n                    ga.set(sa, \"height\", \"auto\");\n                    u.removeClass(ab, \"_5384\");\n                    g.inform(\"sidebar/typeahead/active\", false);\n                    pb();\n                }\n                 else pb();\n            ;\n            }\n        ;\n        },\n        isInitialized: function() {\n            return wa;\n        },\n        disable: function() {\n            if (!yb.isEnabled()) {\n                return\n            };\n            ta = false;\n            tb();\n            ob();\n        },\n        enable: function() {\n            if (yb.isEnabled()) {\n                return\n            };\n            ta = true;\n            tb();\n            pb();\n            qb.defer();\n        },\n        forceEnsureLoaded: function() {\n            if (xa) {\n                return\n            };\n            if (qa(\"pagelet_sidebar\")) {\n                return\n            };\n            d([\"UIPagelet\",], function(zb) {\n                var ac = aa.div({\n                    id: \"pagelet_sidebar\"\n                });\n                v.appendContent(document.body, ac);\n                zb.loadFromEndpoint(\"SidebarPagelet\", \"pagelet_sidebar\");\n            });\n            xa = true;\n        },\n        ensureLoaded: function() {\n            if (!ta) {\n                return\n            };\n            yb.forceEnsureLoaded();\n        },\n        hide: function() {\n            if (ua) {\n                return\n            };\n            ua = true;\n            ob();\n        },\n        unhide: function() {\n            if (!ua) {\n                return\n            };\n            ua = false;\n            pb();\n        },\n        getBody: function() {\n            return sa;\n        },\n        getRoot: function() {\n            return ab;\n        },\n        getVisibleWidth: function() {\n            if ((!va || !ab)) {\n                return 0\n            };\n            if ((eb === null)) {\n                eb = ab.offsetWidth;\n            };\n            return eb;\n        },\n        isEnabled: function() {\n            return ta;\n        },\n        isViewportCapable: function() {\n            db = w.getViewportWithoutScrollbarDimensions();\n            if (gb) {\n                return true\n            };\n            var zb = o.get(\"sidebar.minimum_width\");\n            return (db.width > zb);\n        },\n        shouldShowSidebar: function() {\n            var zb = yb.isViewportCapable();\n            return (gb || ((((zb && !ua) && ((!vb() || o.get(\"litestand_blended_sidebar\", false)))) && !y.shouldSuppressSidebar())));\n        },\n        isVisible: function() {\n            return va;\n        },\n        resize: pb,\n        toggle: function() {\n            if (gb) {\n                gb.toggle();\n            }\n             else (yb.isEnabled() ? yb.disable() : yb.enable());\n        ;\n        },\n        isLitestandSidebar: function() {\n            return !!gb;\n        }\n    };\n    ja(yb, h);\n    e.exports = yb;\n});\n__d(\"VideoCallingTour\", [\"Arbiter\",\"ArbiterMixin\",\"Chat\",\"ChatSidebar\",\"ChatVisibility\",\"CSS\",\"DOM\",\"PresencePrivacy\",\"Run\",\"Toggler\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Chat\"), j = b(\"ChatSidebar\"), k = b(\"ChatVisibility\"), l = b(\"CSS\"), m = b(\"DOM\"), n = b(\"PresencePrivacy\"), o = b(\"Run\"), p = b(\"Toggler\"), q = b(\"Vector\"), r = b(\"copyProperties\"), s, t, u, v, w = [], x = function() {\n    \n    };\n    function y() {\n        if (j.isVisible()) {\n            z();\n        }\n         else if (u) {\n            aa();\n        }\n    ;\n    };\n    function z() {\n        s.setContext(t.getBody());\n        ba();\n        s.show();\n        ca();\n    };\n    function aa() {\n        if (!v) {\n            v = p.createInstance(u.getRoot());\n        };\n        var fa = m.scry(u.getRoot(), \"div.fbNubFlyout\")[0];\n        if (fa) {\n            s.setContext(fa);\n            ba();\n            s.show();\n            ca();\n        }\n    ;\n    };\n    function ba() {\n        var fa = q.getElementDimensions(s.getContext()).y;\n        s.setOffsetY((fa * 61688));\n        s.updatePosition();\n    };\n    function ca() {\n        if (u) {\n            w.push(u.subscribe(\"hide\", function() {\n                da();\n                if (!j.isVisible()) {\n                    s.hide();\n                };\n            }), u.subscribe(\"show\", function() {\n                s.show();\n            }), u.subscribe(\"resize\", function() {\n                ba();\n                s.updatePosition();\n            }));\n        };\n        w.push(g.subscribe(\"sidebar/show\", z), g.subscribe(\"sidebar/hide\", aa), g.subscribe(\"sidebar/resized\", ba));\n    };\n    function da() {\n        if (v) {\n            v.setSticky(false);\n            v = null;\n        }\n    ;\n    };\n    function ea() {\n        while (w.length) {\n            w.pop().unsubscribe();;\n        };\n        if (u) {\n            da();\n        };\n        s.hide();\n        l.show(\"fbVideoCallingGetStarted\");\n    };\n    r(x, h, {\n        start: function(fa) {\n            s = fa;\n            l.hide(\"fbVideoCallingGetStarted\");\n            k.goOnline(function() {\n                w.push(n.subscribe(\"privacy-user-presence-changed\", ea));\n                o.onLeave(ea);\n                i.openBuddyList();\n                var ga = null;\n                w.push(j.subscribe(\"sidebar/initialized\", function(ha, ia) {\n                    t = ia;\n                    clearTimeout(ga);\n                    ga = y.defer();\n                }), x.subscribe(\"videocallingtour/end\", ea));\n                w.push(g.subscribe(\"buddylist-nub/initialized\", function(ha, ia) {\n                    u = ia;\n                    clearTimeout(ga);\n                    ga = y.defer();\n                }));\n            });\n            x.inform(\"videocallingtour/start\");\n        }\n    });\n    e.exports = x;\n});\n__d(\"ModuleDependencies\", [], function(a, b, c, d, e, f) {\n    function g(k, l, m) {\n        var n = a.require.__debug.modules[m], o = a.require.__debug.deps;\n        if (l[m]) {\n            return\n        };\n        l[m] = true;\n        if (!n) {\n            (o[m] && (k[m] = true));\n            return;\n        }\n    ;\n        if ((!n.dependencies || !n.dependencies.length)) {\n            if (n.waiting) {\n                k[m] = true;\n            };\n            return;\n        }\n    ;\n        n.dependencies.forEach(function(p) {\n            g(k, l, p);\n        });\n    };\n    function h(k) {\n        if (a.require.__debug) {\n            var l = {\n            };\n            g(l, {\n            }, k);\n            var m = Object.keys(l);\n            m.sort();\n            return m;\n        }\n    ;\n        return null;\n    };\n    function i() {\n        var k = {\n            loading: {\n            },\n            missing: []\n        };\n        if (!a.require.__debug) {\n            return k\n        };\n        var l = {\n        }, m = a.require.__debug.modules, n = a.require.__debug.deps;\n        for (var o in m) {\n            var p = m[o];\n            if (p.waiting) {\n                var q = {\n                };\n                g(q, {\n                }, p.id);\n                delete q[p.id];\n                k.loading[p.id] = Object.keys(q);\n                k.loading[p.id].sort();\n                k.loading[p.id].forEach(function(r) {\n                    if ((!((r in m)) && n[r])) {\n                        l[r] = 1;\n                    };\n                });\n            }\n        ;\n        };\n        k.missing = Object.keys(l);\n        k.missing.sort();\n        return k;\n    };\n    var j = {\n        getMissing: h,\n        getNotLoadedModules: i\n    };\n    e.exports = j;\n});\n__d(\"ChatPeopleSuggestionList.react\", [\"ChatSidebarItem.react\",\"fbt\",\"React\",\"ShortProfiles\",\"PresenceStatus\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatSidebarItem.react\"), h = b(\"fbt\"), i = b(\"React\"), j = b(\"ShortProfiles\"), k = b(\"PresenceStatus\"), l = b(\"cx\"), m = i.createClass({\n        displayName: \"ChatPeopleSuggestionList\",\n        _renderPeopleList: function() {\n            var n = [];\n            this.props.uids.map(function(o) {\n                var p = j.getNow(o);\n                if (p) {\n                    n.push(i.DOM.li(null, g({\n                        isAdded: false,\n                        showEditButton: true,\n                        images: p.thumbSrc,\n                        name: p.name,\n                        status: k.get(o),\n                        onClick: this.props.onClick.curry(o)\n                    })));\n                };\n            }.bind(this));\n            return n;\n        },\n        render: function() {\n            return (i.DOM.div(null, i.DOM.div({\n                className: \"_57zm\"\n            }, i.DOM.span({\n                className: \"_57zn\"\n            }, \"SUGGESTIONS\")), i.DOM.ul({\n                className: \"_56ym\"\n            }, this._renderPeopleList())));\n        }\n    });\n    e.exports = m;\n});\n__d(\"Dock\", [\"function-extensions\",\"Event\",\"shield\",\"WebMessengerWidthControl\",\"Arbiter\",\"ArbiterMixin\",\"ChatQuietLinks\",\"CSS\",\"DataStore\",\"DOM\",\"Parent\",\"Style\",\"Toggler\",\"Vector\",\"copyProperties\",\"csx\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Event\"), h = b(\"shield\");\n    b(\"WebMessengerWidthControl\");\n    var i = b(\"Arbiter\"), j = b(\"ArbiterMixin\"), k = b(\"ChatQuietLinks\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Parent\"), p = b(\"Style\"), q = b(\"Toggler\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"emptyFunction\"), v = b(\"ge\");\n    function w() {\n    \n    };\n    s(w, j, {\n        MIN_HEIGHT: 140,\n        INITIAL_FLYOUT_HEIGHT_OFFSET: 10,\n        init: function(x) {\n            this.init = u;\n            this.rootEl = x;\n            this.calculateViewportDimensions();\n            this.calculateFlyoutHeightOffset();\n            k.removeEmptyHrefs(this.rootEl);\n            g.listen(x, \"click\", this._onClick.bind(this));\n            g.listen(window, \"resize\", this._onWindowResize.bind(this));\n            q.subscribe([\"show\",\"hide\",], function(y, z) {\n                var aa = z.getActive();\n                if (!n.contains(x, aa)) {\n                    return\n                };\n                if (l.hasClass(aa, \"fbNub\")) {\n                    this.notifyNub(aa, y);\n                    if ((y === \"show\")) {\n                        this._resizeNubFlyout(aa);\n                    };\n                }\n                 else {\n                    var ba = o.byClass(aa, \"fbNubFlyout\");\n                    if (ba) {\n                        l.conditionClass(ba, \"menuOpened\", (y === \"show\"));\n                    };\n                }\n            ;\n            }.bind(this));\n            this.inform(\"init\", {\n            }, i.BEHAVIOR_PERSISTENT);\n        },\n        calculateViewportDimensions: function() {\n            return (this.viewportDimensions = r.getViewportDimensions());\n        },\n        calculateFlyoutHeightOffset: function() {\n            this.flyoutHeightOffset = (this.INITIAL_FLYOUT_HEIGHT_OFFSET + r.getElementDimensions(this.rootEl).y);\n            var x = v(\"blueBar\");\n            if (x) {\n                var y = (p.isFixed(x) ? \"viewport\" : \"document\");\n                this.flyoutHeightOffset += (r.getElementPosition(x, y).y + r.getElementDimensions(x).y);\n            }\n        ;\n        },\n        toggle: function(x) {\n            var y = this._findFlyout(x);\n            if (!y) {\n                return\n            };\n            this.subscribe(\"init\", function() {\n                q.toggle(x);\n            });\n        },\n        show: function(x) {\n            this.subscribe(\"init\", function() {\n                q.show(x);\n            });\n        },\n        showNub: function(x) {\n            l.show(x);\n        },\n        hide: function(x) {\n            this.subscribe(\"init\", function() {\n                var y = q.getInstance(x);\n                (n.contains(x, y.getActive()) && y.hide());\n            });\n        },\n        hideNub: function(x) {\n            l.hide(x);\n            this.hide(x);\n        },\n        setUseMaxHeight: function(x, y) {\n            l.conditionClass(x, \"maxHeight\", (y !== false));\n            this._resizeNubFlyout(x);\n        },\n        _resizeNubFlyout: function(x) {\n            var y = this._findFlyout(x);\n            if ((!y || !((l.hasClass(x, \"openToggler\") || l.hasClass(x, \"opened\"))))) {\n                return\n            };\n            var z = n.find(y, \"div.fbNubFlyoutOuter\"), aa = n.find(z, \"div.fbNubFlyoutInner\"), ba = n.find(aa, \"div.fbNubFlyoutBody\"), ca = ba.scrollTop, da = ba.offsetHeight;\n            p.set(ba, \"height\", \"auto\");\n            var ea = r.getElementDimensions(y), fa = r.getElementDimensions(ba), ga = this.getMaxFlyoutHeight(x);\n            p.set(y, \"max-height\", (ga + \"px\"));\n            p.set(z, \"max-height\", (ga + \"px\"));\n            ea = r.getElementDimensions(y);\n            var ha = r.getElementDimensions(aa), ia = (ha.y - fa.y), ja = (ea.y - ia), ka = parseInt((ba.style.height || ba.clientHeight), 10), la = (ja !== ka);\n            if (((ea.y > ia) && la)) {\n                p.set(ba, \"height\", (ja + \"px\"));\n            };\n            l.removeClass(y, \"swapDirection\");\n            var ma = r.getElementPosition(y).x;\n            l.conditionClass(y, \"swapDirection\", function() {\n                if ((ma < 0)) {\n                    return true\n                };\n                return (((ma + ea.x) > this.viewportDimensions.x));\n            }.bind(this)());\n            if ((la && ((ca + da) >= fa.y))) {\n                ba.scrollTop = ba.scrollHeight;\n            }\n             else ba.scrollTop = ca;\n        ;\n            this.notifyNub(x, \"resize\");\n        },\n        getMaxFlyoutHeight: function(x) {\n            var y = this._findFlyout(x), z = r.getElementPosition(y, \"viewport\"), aa = r.getElementDimensions(y), ba = (Math.max(this.MIN_HEIGHT, (this.viewportDimensions.y - this.flyoutHeightOffset)) - (((this.viewportDimensions.y - z.y) - aa.y)));\n            return Math.max(ba, 0);\n        },\n        resizeAllFlyouts: function() {\n            var x = n.scry(this.rootEl, \"div._50-v.openToggler\");\n            x = x.concat(n.scry(this.rootEl, \"div._50-v.opened\"));\n            var y = x.length;\n            while (y--) {\n                this._resizeNubFlyout(x[y]);;\n            };\n        },\n        _onClick: function(event) {\n            var x = event.getTarget(), y = o.byClass(x, \"fbNub\");\n            if (y) {\n                if (o.byClass(x, \"fbNubFlyoutTitlebar\")) {\n                    var z = o.byTag(x, \"a\"), aa = ((x.nodeName == \"INPUT\") && (x.getAttribute(\"type\") == \"submit\"));\n                    if ((!z && !aa)) {\n                        this.hide(y);\n                        return false;\n                    }\n                ;\n                }\n            ;\n                this.notifyNub(y, \"click\");\n            }\n        ;\n        },\n        _onWindowResize: function(event) {\n            this.calculateViewportDimensions();\n            this.resizeAllFlyouts();\n        },\n        _findFlyout: function(x) {\n            return (l.hasClass(x, \"fbNubFlyout\") ? x : (n.scry(x, \"div.fbNubFlyout\")[0] || null));\n        },\n        registerNubController: function(x, y) {\n            m.set(x, \"dock:nub:controller\", y);\n            y.subscribe(\"nub/button/content-changed\", h(this.inform, this, \"resize\", x));\n            y.subscribe(\"nub/flyout/content-changed\", h(this._resizeNubFlyout, this, x));\n        },\n        unregisterNubController: function(x) {\n            m.remove(x, \"dock:nub:controller\");\n        },\n        notifyNub: function(x, y, z) {\n            var aa = m.get(x, \"dock:nub:controller\");\n            (aa && aa.inform(y, z));\n        }\n    });\n    e.exports = (a.Dock || w);\n});\n__d(\"NubController\", [\"ArbiterMixin\",\"Dock\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"Dock\"), i = b(\"copyProperties\");\n    function j() {\n    \n    };\n    i(j.prototype, g, {\n        init: function(k) {\n            this.el = k;\n            h.registerNubController(k, this);\n            return this;\n        },\n        buttonContentChanged: function() {\n            this.inform(\"nub/button/content-changed\");\n        },\n        flyoutContentChanged: function() {\n            this.inform(\"nub/flyout/content-changed\");\n        },\n        hide: function() {\n            h.hide(this.el);\n        },\n        show: function() {\n            h.show(this.el);\n        }\n    });\n    e.exports = j;\n});\n__d(\"DropdownContextualHelpLink\", [\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"ge\"), i = {\n        set: function(j) {\n            var k = h(\"navHelpCenter\");\n            if ((k !== null)) {\n                g.replace(k, j);\n            };\n        }\n    };\n    e.exports = i;\n});\n__d(\"ChatActivity\", [\"Event\",\"Arbiter\",\"AvailableList\",\"AvailableListConstants\",\"JSLogger\",\"MercuryConfig\",\"PresenceState\",\"UserActivity\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AvailableList\"), j = b(\"AvailableListConstants\"), k = b(\"JSLogger\"), l = b(\"MercuryConfig\"), m = b(\"PresenceState\"), n = b(\"UserActivity\"), o = b(\"copyProperties\"), p = (l.activity_limit || 60000), q = (l.idle_limit || 1800000), r = (l.idle_poll_interval || 300000), s = k.create(\"chat_activity\"), t = Date.now(), u = t, v = true;\n    function w() {\n        var aa = Date.now();\n        return !!((v && (((aa - t) < p))));\n    };\n    var x = o(new h(), {\n        isActive: w\n    });\n    function y() {\n        var aa = t;\n        t = Date.now();\n        if (((t - aa) > q)) {\n            s.debug(\"idle_to_active\", aa);\n            m.doSync();\n        }\n    ;\n        x.inform(\"activity\");\n    };\n    i.subscribe(j.ON_AVAILABILITY_CHANGED, function() {\n        if (!i.isUserIdle()) {\n            u = Date.now();\n        };\n    });\n    g.listen(window, \"focus\", function() {\n        v = true;\n        y();\n    });\n    g.listen(window, \"blur\", function() {\n        v = false;\n    });\n    n.subscribe(function() {\n        y();\n    });\n    function z(aa) {\n        var ba = ((aa && aa.at) && m.verifyNumber(aa.at));\n        if ((typeof ba !== \"number\")) {\n            ba = null;\n        };\n        return (ba || 0);\n    };\n    setInterval(function() {\n        var aa = Date.now(), ba = z(m.get()), ca = Math.max(t, ba, u);\n        if (((aa - ca) > q)) {\n            s.debug(\"idle\", {\n                cookie: ba,\n                local: t,\n                presence: u\n            });\n            x.inform(\"idle\", (aa - ca));\n        }\n    ;\n    }, r);\n    m.registerStateStorer(function(aa) {\n        var ba = z(aa);\n        if ((ba < t)) {\n            aa.at = t;\n        };\n        return aa;\n    });\n    h.subscribe(k.DUMP_EVENT, function(aa, ba) {\n        ba.chat_activity = {\n            activity_limit: p,\n            idle_limit: q,\n            idle_poll_interval: r,\n            last_active_time: t,\n            last_global_active_time: u\n        };\n    });\n    e.exports = x;\n});\n__d(\"MercuryNotificationRenderer\", [\"MercuryAssert\",\"MercuryMessages\",\"MercuryParticipants\",\"MercuryThreads\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAssert\"), h = b(\"MercuryMessages\").get(), i = b(\"MercuryParticipants\"), j = b(\"MercuryThreads\").get(), k = b(\"tx\");\n    function l(m, n) {\n        g.isThreadID(m);\n        j.getThreadMeta(m, function(o) {\n            h.getThreadMessagesRange(m, 0, 1, function(p) {\n                var q = (p.length && p[(p.length - 1)]);\n                if ((q && (q.author != i.user))) {\n                    i.get(q.author, function(r) {\n                        if (o.name) {\n                            n(k._(\"{senderName} messaged {groupName}\", {\n                                senderName: r.short_name,\n                                groupName: o.name\n                            }));\n                        }\n                         else n(k._(\"{name} messaged you\", {\n                            name: r.short_name\n                        }));\n                    ;\n                    });\n                }\n                 else n(\"New message!\");\n            ;\n            });\n        });\n    };\n    e.exports = {\n        renderDocumentTitle: l\n    };\n});\n__d(\"MercuryTimestampTracker\", [\"MercuryActionTypeConstants\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MercuryServerRequests\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryActionTypeConstants\"), h = b(\"MercuryPayloadSource\"), i = b(\"MercurySingletonMixin\"), j = b(\"MercuryServerRequests\"), k = b(\"copyProperties\");\n    function l(m) {\n        this._fbid = m;\n        this._serverRequests = j.getForFBID(this._fbid);\n        this._lastTimestamp = 0;\n        this._serverRequests.subscribe(\"update-messages\", function(n, o) {\n            if ((!o.actions || !o.actions.length)) {\n                return\n            };\n            if (((o.payload_source == h.CLIENT_SEND_MESSAGE) || (o.payload_source == h.UNKNOWN))) {\n                return\n            };\n            for (var p = 0; (p < o.actions.length); p++) {\n                var q = o.actions[p], r = q.action_type;\n                if ((((r == g.USER_GENERATED_MESSAGE) && q.thread_id) && (q.timestamp > this._lastTimestamp))) {\n                    this._lastTimestamp = q.timestamp;\n                };\n            };\n        }.bind(this));\n    };\n    k(l.prototype, {\n        getLastUserMessageTimestamp: function() {\n            return this._lastTimestamp;\n        }\n    });\n    k(l, i);\n    e.exports = l;\n});\n__d(\"ChatTitleBarBlinker\", [\"ChatActivity\",\"DocumentTitle\",\"JSLogger\",\"MercuryThreadInformer\",\"MercuryNotificationRenderer\",\"PresenceState\",\"MercuryTimestampTracker\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatActivity\"), h = b(\"DocumentTitle\"), i = b(\"JSLogger\"), j = b(\"MercuryThreadInformer\").get(), k = b(\"MercuryNotificationRenderer\"), l = b(\"PresenceState\"), m = b(\"MercuryTimestampTracker\").get(), n = i.create(\"chat_title\"), o = null, p = 0, q = false;\n    function r() {\n        if (o) {\n            o.stop();\n            o = null;\n            return true;\n        }\n    ;\n        return false;\n    };\n    function s(x) {\n        var y = (x || m.getLastUserMessageTimestamp());\n        if ((p <= y)) {\n            p = y;\n            if ((r() || q)) {\n                l.doSync();\n            };\n        }\n    ;\n    };\n    var t = {\n        blink: function(x, y) {\n            if ((!o && (p < y))) {\n                k.renderDocumentTitle(x, function(z) {\n                    if (!o) {\n                        o = h.blink(z);\n                    };\n                });\n            };\n        },\n        stopBlinking: function() {\n            s();\n        },\n        blinkingElsewhere: function() {\n            q = true;\n        }\n    };\n    function u(x) {\n        var y = l.verifyNumber(x.sb2);\n        if ((!y || (y <= p))) {\n            return null\n        };\n        return y;\n    };\n    function v(x) {\n        var y = (x && u(x));\n        if (y) {\n            p = y;\n            n.debug(\"load\", p);\n            r();\n            q = false;\n        }\n    ;\n    };\n    function w(x) {\n        var y = u(x);\n        if (!y) {\n            n.debug(\"store\", p);\n            x.sb2 = p;\n            q = false;\n        }\n    ;\n        return x;\n    };\n    l.registerStateStorer(w);\n    l.registerStateLoader(v);\n    j.subscribe(\"thread-read-changed\", function(x, y) {\n        var z = m.getLastUserMessageTimestamp(), aa = 0;\n        for (var ba in y) {\n            if (((y[ba].mark_as_read && (y[ba].timestamp >= z)) && (y[ba].timestamp > aa))) {\n                aa = y[ba].timestamp;\n            };\n        };\n        (aa && s(aa));\n    });\n    g.subscribe(\"activity\", function() {\n        s();\n    });\n    (function() {\n        var x = l.getInitial();\n        if (x) {\n            p = (u(x) || 0);\n        };\n    })();\n    e.exports = t;\n});\n__d(\"swfobject\", [\"AsyncRequest\",\"Bootloader\",\"ControlledReferer\",\"copyProperties\",\"CSS\",\"DOM\",\"function-extensions\",\"ge\",\"htmlSpecialChars\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Bootloader\"), i = b(\"ControlledReferer\"), j = b(\"copyProperties\"), k = b(\"CSS\"), l = b(\"DOM\");\n    b(\"function-extensions\");\n    var m = b(\"ge\"), n = b(\"htmlSpecialChars\");\n    if ((typeof o == \"undefined\")) {\n        var o = {\n        }\n    };\n    if ((typeof o.util == \"undefined\")) {\n        o.util = {\n        };\n    };\n    if ((typeof o.SWFObjectUtil == \"undefined\")) {\n        o.SWFObjectUtil = {\n        };\n    };\n    o.SWFObject = function(u, v, w, x, y, z, aa, ba, ca, da) {\n        if (!document.getElementById) {\n            return\n        };\n        this.DETECT_KEY = (da ? da : \"detectflash\");\n        this.skipDetect = o.util.getRequestParameter(this.DETECT_KEY);\n        this.params = {\n        };\n        this.variables = {\n        };\n        this.attributes = [];\n        this.fallback_html = \"\";\n        this.fallback_js_fcn = function() {\n        \n        };\n        if (u) {\n            this.setAttribute(\"swf\", u);\n        };\n        if (v) {\n            this.setAttribute(\"id\", v);\n        };\n        if (w) {\n            this.setAttribute(\"width\", w);\n        };\n        if (x) {\n            this.setAttribute(\"height\", x);\n        };\n        this.installedVer = o.SWFObjectUtil.getPlayerVersion();\n        if (y) {\n            if (!((y instanceof Array))) {\n                y = [y,];\n            };\n            var ea;\n            y.forEach(function(ha) {\n                ea = new o.PlayerVersion(ha.toString().split(\".\"));\n                if ((ea.major == this.installedVer.major)) {\n                    this.setAttribute(\"version\", ea);\n                    return;\n                }\n                 else if ((!this.getAttribute(\"version\") || (ea.major < this.getAttribute(\"version\").major))) {\n                    this.setAttribute(\"version\", ea);\n                }\n            ;\n            }.bind(this));\n        }\n    ;\n        if (((!window.opera && document.all) && (this.installedVer.major > 7))) {\n            if (!o.unloadSet) {\n                o.SWFObjectUtil.prepUnload = function() {\n                    var ha = function() {\n                    \n                    }, ia = function() {\n                    \n                    };\n                    window.attachEvent(\"onunload\", o.SWFObjectUtil.cleanupSWFs);\n                };\n                window.attachEvent(\"onbeforeunload\", o.SWFObjectUtil.prepUnload);\n                o.unloadSet = true;\n            }\n        \n        };\n        if (z) {\n            this.addParam(\"bgcolor\", z);\n        };\n        var fa = (aa ? aa : \"high\");\n        this.addParam(\"quality\", fa);\n        this.setAttribute(\"useExpressInstall\", false);\n        this.setAttribute(\"doExpressInstall\", false);\n        var ga = ((ba) ? ba : window.location);\n        this.setAttribute(\"xiRedirectUrl\", ga);\n        this.setAttribute(\"redirectUrl\", \"\");\n        if (ca) {\n            this.setAttribute(\"redirectUrl\", ca);\n        };\n        this.setAttribute(\"useIframe\", false);\n    };\n    o.SWFObject.ieWorkaroundApplied = false;\n    o.SWFObject.ensureIEWorkaroundAttached = function() {\n        if ((!o.SWFObject.ieWorkaroundApplied && document.attachEvent)) {\n            o.SWFObject.ieWorkaroundApplied = true;\n            document.attachEvent(\"onpropertychange\", o.SWFObject.onDocumentPropertyChange);\n        }\n    ;\n    };\n    o.SWFObject.onDocumentPropertyChange = function(event) {\n        if ((event.propertyName == \"title\")) {\n            var u = document.title;\n            if (((u != null) && (u.indexOf(\"#!\") != -1))) {\n                u = u.substring(0, u.indexOf(\"#!\"));\n                document.title = u;\n            }\n        ;\n        }\n    ;\n    };\n    j(o.SWFObject.prototype, {\n        useExpressInstall: function(u) {\n            this.xiSWFPath = (!u ? \"/swf/expressinstall.swf\" : u);\n            this.setAttribute(\"useExpressInstall\", true);\n        },\n        setAttribute: function(u, v) {\n            this.attributes[u] = v;\n        },\n        getAttribute: function(u) {\n            return (this.attributes[u] || \"\");\n        },\n        addParam: function(u, v) {\n            this.params[u] = v;\n        },\n        getParams: function() {\n            return this.params;\n        },\n        addVariable: function(u, v) {\n            this.variables[u] = v;\n        },\n        getVariable: function(u) {\n            return (this.variables[u] || \"\");\n        },\n        getVariables: function() {\n            return this.variables;\n        },\n        getVariablePairs: function() {\n            var u = [], v, w = this.getVariables();\n            for (v in w) {\n                u[u.length] = ((v + \"=\") + w[v]);;\n            };\n            return u.join(\"&\");\n        },\n        getSWFHTML: function() {\n            var u, v, w;\n            if (((navigator.plugins && navigator.mimeTypes) && navigator.mimeTypes.length)) {\n                if (this.getAttribute(\"doExpressInstall\")) {\n                    this.addVariable(\"MMplayerType\", \"PlugIn\");\n                    this.setAttribute(\"swf\", this.xiSWFPath);\n                }\n            ;\n                v = {\n                    type: \"application/x-shockwave-flash\",\n                    src: this.getAttribute(\"swf\"),\n                    width: this.getAttribute(\"width\"),\n                    height: this.getAttribute(\"height\"),\n                    style: (this.getAttribute(\"style\") || \"display: block;\"),\n                    id: this.getAttribute(\"id\"),\n                    name: this.getAttribute(\"id\")\n                };\n                var x = this.getParams();\n                for (var y in x) {\n                    v[y] = x[y];;\n                };\n                w = this.getVariablePairs();\n                if (w) {\n                    v.flashvars = w;\n                };\n                u = t(\"embed\", v, null);\n            }\n             else {\n                if (this.getAttribute(\"doExpressInstall\")) {\n                    this.addVariable(\"MMplayerType\", \"ActiveX\");\n                    this.setAttribute(\"swf\", this.xiSWFPath);\n                }\n            ;\n                v = {\n                    id: this.getAttribute(\"id\"),\n                    classid: \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",\n                    width: this.getAttribute(\"width\"),\n                    height: this.getAttribute(\"height\"),\n                    style: (this.getAttribute(\"style\") || \"display: block;\")\n                };\n                var z = t(\"param\", {\n                    name: \"movie\",\n                    value: this.getAttribute(\"swf\")\n                }, null), x = this.getParams();\n                for (var y in x) {\n                    z += t(\"param\", {\n                        name: y,\n                        value: x[y]\n                    }, null);;\n                };\n                w = this.getVariablePairs();\n                if (w) {\n                    z += t(\"param\", {\n                        name: \"flashvars\",\n                        value: w\n                    }, null);\n                };\n                u = t(\"object\", v, z);\n            }\n        ;\n            return u;\n        },\n        write: function(u) {\n            if (this.getAttribute(\"useExpressInstall\")) {\n                var v = new o.PlayerVersion([6,0,65,]);\n                if ((this.installedVer.versionIsValid(v) && !this.installedVer.versionIsValid(this.getAttribute(\"version\")))) {\n                    this.setAttribute(\"doExpressInstall\", true);\n                    this.addVariable(\"MMredirectURL\", escape(this.getAttribute(\"xiRedirectUrl\")));\n                    document.title = (document.title.slice(0, 47) + \" - Flash Player Installation\");\n                    this.addVariable(\"MMdoctitle\", document.title);\n                }\n            ;\n            }\n        ;\n            var w = (((typeof u == \"string\")) ? document.getElementById(u) : u);\n            if (!w) {\n                return false\n            };\n            k.addClass(w, \"swfObject\");\n            w.setAttribute(\"data-swfid\", this.getAttribute(\"id\"));\n            if (((this.skipDetect || this.getAttribute(\"doExpressInstall\")) || this.installedVer.versionIsValid(this.getAttribute(\"version\")))) {\n                if (!this.getAttribute(\"useIframe\")) {\n                    o.SWFObject.ensureIEWorkaroundAttached();\n                    w.innerHTML = this.getSWFHTML();\n                }\n                 else this._createIframe(w);\n            ;\n                return true;\n            }\n             else {\n                if ((this.getAttribute(\"redirectUrl\") != \"\")) {\n                    document.location.replace(this.getAttribute(\"redirectUrl\"));\n                };\n                var x = ((((((this.getAttribute(\"version\").major + \".\") + this.getAttribute(\"version\").minor) + \".\") + this.getAttribute(\"version\").release) + \".\") + this.getAttribute(\"version\").build), y = ((((((this.installedVer.major + \".\") + this.installedVer.minor) + \".\") + this.installedVer.release) + \".\") + this.installedVer.build);\n                this.fallback_js_fcn(y, x);\n                w.innerHTML = this.fallback_html;\n            }\n        ;\n            return false;\n        },\n        _createIframe: function(u) {\n            var v = l.create(\"iframe\", {\n                width: this.getAttribute(\"width\"),\n                height: this.getAttribute(\"height\"),\n                frameBorder: 0\n            });\n            l.empty(u);\n            u.appendChild(v);\n            i.useFacebookRefererHtml(v, this.getSWFHTML(), this.getAttribute(\"iframeSource\"));\n        }\n    });\n    o.SWFObjectUtil.getPlayerVersion = function() {\n        var u = new o.PlayerVersion([0,0,0,0,]), v;\n        if ((navigator.plugins && navigator.mimeTypes.length)) {\n            for (var w = 0; (w < navigator.plugins.length); w++) {\n                try {\n                    var y = navigator.plugins[w];\n                    if ((y.name == \"Shockwave Flash\")) {\n                        v = new o.PlayerVersion(y.description.replace(/([a-zA-Z]|\\s)+/, \"\").replace(/(\\s+(r|d)|\\s+b[0-9]+)/, \".\").split(\".\"));\n                        if ((((typeof u == \"undefined\") || (v.major > u.major)) || (((v.major == u.major) && (((v.minor > u.minor) || (((v.minor == u.minor) && (((v.release > u.release) || (((v.release == u.release) && (v.build > u.build))))))))))))) {\n                            u = v;\n                        };\n                    }\n                ;\n                } catch (x) {\n                \n                };\n            };\n        }\n         else if ((navigator.userAgent && (navigator.userAgent.indexOf(\"Windows CE\") >= 0))) {\n            var z = 1, aa = 3;\n            while (z) {\n                try {\n                    aa++;\n                    z = new ActiveXObject((\"ShockwaveFlash.ShockwaveFlash.\" + aa));\n                    u = new o.PlayerVersion([aa,0,0,]);\n                } catch (ba) {\n                    z = null;\n                };\n            };\n        }\n         else {\n            try {\n                var z = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.7\");\n            } catch (ca) {\n                try {\n                    var z = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.6\");\n                    u = new o.PlayerVersion([6,0,21,]);\n                    z.AllowScriptAccess = \"always\";\n                } catch (da) {\n                    if ((u.major == 6)) {\n                        return u\n                    };\n                };\n                try {\n                    z = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\");\n                } catch (ea) {\n                \n                };\n            };\n            if ((z != null)) {\n                u = new o.PlayerVersion(z.GetVariable(\"$version\").split(\" \")[1].split(\",\"));\n            };\n        }\n        \n    ;\n        return u;\n    };\n    o.PlayerVersion = function(u) {\n        this.major = ((u[0] != null) ? parseInt(u[0], 10) : 0);\n        this.minor = ((u[1] != null) ? parseInt(u[1], 10) : 0);\n        this.release = ((u[2] != null) ? parseInt(u[2], 10) : 0);\n        this.build = ((u[3] != null) ? parseInt(u[3], 10) : 0);\n    };\n    o.PlayerVersion.prototype.versionIsValid = function(u) {\n        if ((this.major < u.major)) {\n            return false\n        };\n        if ((this.major > u.major)) {\n            return true\n        };\n        if ((this.minor < u.minor)) {\n            return false\n        };\n        if ((this.minor > u.minor)) {\n            return true\n        };\n        if ((this.release < u.release)) {\n            return false\n        };\n        if ((this.release > u.release)) {\n            return true\n        };\n        if ((this.build < u.build)) {\n            return false\n        };\n        return true;\n    };\n    o.util = {\n        getRequestParameter: function(u) {\n            var v = (document.location.search || document.location.hash);\n            if ((u == null)) {\n                return v\n            };\n            if (v) {\n                var w = v.substring(1).split(\"&\");\n                for (var x = 0; (x < w.length); x++) {\n                    if ((w[x].substring(0, w[x].indexOf(\"=\")) == u)) {\n                        return w[x].substring(((w[x].indexOf(\"=\") + 1)))\n                    };\n                };\n            }\n        ;\n            return \"\";\n        }\n    };\n    o.SWFObjectUtil.cleanupSWFs = function() {\n        var u = document.getElementsByTagName(\"OBJECT\");\n        for (var v = (u.length - 1); (v >= 0); v--) {\n            u[v].style.display = \"none\";\n            for (var w in u[v]) {\n                if ((typeof u[v][w] == \"function\")) {\n                    u[v][w] = function() {\n                    \n                    };\n                };\n            };\n        };\n    };\n    if ((!document.getElementById && document.all)) {\n        document.getElementById = function(u) {\n            return document.all[u];\n        };\n    };\n    var p = o.util.getRequestParameter, q = o.SWFObject, r = o.SWFObject;\n    o.spawn_flash_update_dialog = function() {\n        new g().setURI(\"/ajax/flash_update_dialog.php\").setMethod(\"GET\").setReadOnly(true).send();\n    };\n    function s(u, v) {\n        var w = m(u), x = o.SWFObjectUtil.getPlayerVersion(), y;\n        v.forEach(function(ba) {\n            ba = new o.PlayerVersion(ba.toString().split(\".\"));\n            if ((ba.major == x.major)) {\n                y = ba;\n                return;\n            }\n             else if (((typeof y == \"undefined\") || (ba.major < y.major))) {\n                y = ba;\n            }\n        ;\n        }.bind(this));\n        if ((w && (x.major > 0))) {\n            var z = ((((((x.major + \".\") + x.minor) + \".\") + x.release) + \".\") + x.build), aa = ((((((y.major + \".\") + y.minor) + \".\") + y.release) + \".\") + y.build);\n            l.setContent(w, l.tx._(\"Flash {required-version} is required to view this content. Your current version is {current-version}. Please download the latest Flash Player.\", {\n                \"required-version\": aa,\n                \"current-version\": z\n            }));\n        }\n    ;\n    };\n    o.showFlashErrorDialog = function(u, v) {\n        h.loadModules([\"ErrorDialog\",], function(w) {\n            w.show(u, v);\n        });\n    };\n    function t(u, v, w) {\n        var x = /^[A-Za-z0-9\\-]+$/;\n        if (!u.match(x)) {\n            throw new Error((\"Invalid tag \" + u))\n        };\n        var y = (\"\\u003C\" + u);\n        for (var z in v) {\n            if (!z.match(x)) {\n                throw new Error((\"Invalid attr \" + z))\n            };\n            y += ((((\" \" + z) + \"=\\\"\") + n(v[z])) + \"\\\"\");\n        };\n        if ((w === null)) {\n            return (y + \"/\\u003E\");\n        }\n         else return (((((y + \"\\u003E\") + w) + \"\\u003C/\") + u) + \"\\u003E\")\n    ;\n    };\n    e.exports = (a.deconcept || o);\n});\n__d(\"swfobject2\", [], function(a, b, c, d, e, f) {\n    var g = function() {\n        var h = \"undefined\", i = \"object\", j = \"Shockwave Flash\", k = \"ShockwaveFlash.ShockwaveFlash\", l = \"application/x-shockwave-flash\", m = \"SWFObjectExprInst\", n = \"onreadystatechange\", o = window, p = document, q = navigator, r = false, s = [ka,], t = [], u = [], v = [], w, x, y, z, aa = false, ba = false, ca, da, ea = true, fa = function() {\n            var eb = (((typeof p.getElementById != h) && (typeof p.getElementsByTagName != h)) && (typeof p.createElement != h)), fb = q.userAgent.toLowerCase(), gb = q.platform.toLowerCase(), hb = (gb ? /win/.test(gb) : /win/.test(fb)), ib = (gb ? /mac/.test(gb) : /mac/.test(fb)), jb = (/webkit/.test(fb) ? parseFloat(fb.replace(/^.*webkit\\/(\\d+(\\.\\d+)?).*$/, \"$1\")) : false), kb = !+\"\\u000b1\", lb = [0,0,0,], mb = null;\n            if (((typeof q.plugins != h) && (typeof q.plugins[j] == i))) {\n                mb = q.plugins[j].description;\n                if ((mb && !((((typeof q.mimeTypes != h) && q.mimeTypes[l]) && !q.mimeTypes[l].enabledPlugin)))) {\n                    r = true;\n                    kb = false;\n                    mb = mb.replace(/^.*\\s+(\\S+\\s+\\S+$)/, \"$1\");\n                    lb[0] = parseInt(mb.replace(/^(.*)\\..*$/, \"$1\"), 10);\n                    lb[1] = parseInt(mb.replace(/^.*\\.(.*)\\s.*$/, \"$1\"), 10);\n                    lb[2] = (/[a-zA-Z]/.test(mb) ? parseInt(mb.replace(/^.*[a-zA-Z]+(.*)$/, \"$1\"), 10) : 0);\n                }\n            ;\n            }\n             else if ((typeof o.ActiveXObject != h)) {\n                try {\n                    var ob = new ActiveXObject(k);\n                    if (ob) {\n                        mb = ob.GetVariable(\"$version\");\n                        if (mb) {\n                            kb = true;\n                            mb = mb.split(\" \")[1].split(\",\");\n                            lb = [parseInt(mb[0], 10),parseInt(mb[1], 10),parseInt(mb[2], 10),];\n                        }\n                    ;\n                    }\n                ;\n                } catch (nb) {\n                \n                }\n            }\n        ;\n            return {\n                w3: eb,\n                pv: lb,\n                wk: jb,\n                ie: kb,\n                win: hb,\n                mac: ib\n            };\n        }(), ga = function() {\n            if (!fa.w3) {\n                return\n            };\n            if (((((typeof p.readyState != h) && (p.readyState == \"complete\"))) || (((typeof p.readyState == h) && ((p.getElementsByTagName(\"body\")[0] || p.body)))))) {\n                ha();\n            };\n            if (!aa) {\n                if ((typeof p.addEventListener != h)) {\n                    p.addEventListener(\"DOMContentLoaded\", ha, false);\n                };\n                if ((fa.ie && fa.win)) {\n                    p.attachEvent(n, function() {\n                        if ((p.readyState == \"complete\")) {\n                            p.detachEvent(n, arguments.callee);\n                            ha();\n                        }\n                    ;\n                    });\n                    if ((o == top)) {\n                        (function() {\n                            if (aa) {\n                                return\n                            };\n                            try {\n                                p.documentElement.doScroll(\"left\");\n                            } catch (eb) {\n                                setTimeout(arguments.callee, 0);\n                                return;\n                            };\n                            ha();\n                        })();\n                    };\n                }\n            ;\n                if (fa.wk) {\n                    (function() {\n                        if (aa) {\n                            return\n                        };\n                        if (!/loaded|complete/.test(p.readyState)) {\n                            setTimeout(arguments.callee, 0);\n                            return;\n                        }\n                    ;\n                        ha();\n                    })();\n                };\n                ja(ha);\n            }\n        ;\n        }();\n        function ha() {\n            if (aa) {\n                return\n            };\n            try {\n                var fb = p.getElementsByTagName(\"body\")[0].appendChild(xa(\"span\"));\n                fb.parentNode.removeChild(fb);\n            } catch (eb) {\n                return;\n            };\n            aa = true;\n            var gb = s.length;\n            for (var hb = 0; (hb < gb); hb++) {\n                s[hb]();;\n            };\n        };\n        function ia(eb) {\n            if (aa) {\n                eb();\n            }\n             else s[s.length] = eb;\n        ;\n        };\n        function ja(eb) {\n            if ((typeof o.addEventListener != h)) {\n                o.addEventListener(\"load\", eb, false);\n            }\n             else if ((typeof p.addEventListener != h)) {\n                p.addEventListener(\"load\", eb, false);\n            }\n             else if ((typeof o.attachEvent != h)) {\n                ya(o, \"onload\", eb);\n            }\n             else if ((typeof o.onload == \"function\")) {\n                var fb = o.onload;\n                o.onload = function() {\n                    fb();\n                    eb();\n                };\n            }\n             else o.onload = eb;\n            \n            \n            \n        ;\n        };\n        function ka() {\n            if (r) {\n                la();\n            }\n             else ma();\n        ;\n        };\n        function la() {\n            var eb = p.getElementsByTagName(\"body\")[0], fb = xa(i);\n            fb.setAttribute(\"type\", l);\n            fb.setAttribute(\"style\", \"visibility: hidden; position: absolute; top: -1000px;\");\n            var gb = eb.appendChild(fb);\n            if (gb) {\n                var hb = 0;\n                (function() {\n                    if ((typeof gb.GetVariable != h)) {\n                        var ib = gb.GetVariable(\"$version\");\n                        if (ib) {\n                            ib = ib.split(\" \")[1].split(\",\");\n                            fa.pv = [parseInt(ib[0], 10),parseInt(ib[1], 10),parseInt(ib[2], 10),];\n                        }\n                    ;\n                    }\n                     else if ((hb < 10)) {\n                        hb++;\n                        setTimeout(arguments.callee, 10);\n                        return;\n                    }\n                    \n                ;\n                    gb = null;\n                    ma();\n                })();\n            }\n             else ma();\n        ;\n        };\n        function ma() {\n            var eb = t.length;\n            if ((eb > 0)) {\n                for (var fb = 0; (fb < eb); fb++) {\n                    var gb = t[fb].id, hb = t[fb].callbackFn, ib = {\n                        success: false,\n                        id: gb\n                    };\n                    if ((fa.pv[0] > 0)) {\n                        var jb = wa(gb);\n                        if (jb) {\n                            if ((za(t[fb].swfVersion) && !((fa.wk && (fa.wk < 312))))) {\n                                bb(gb, true);\n                                if (hb) {\n                                    ib.success = true;\n                                    ib.ref = na(gb);\n                                    hb(ib);\n                                }\n                            ;\n                            }\n                             else if ((t[fb].expressInstall && oa())) {\n                                var kb = {\n                                };\n                                kb.data = t[fb].expressInstall;\n                                kb.width = (jb.getAttribute(\"width\") || \"0\");\n                                kb.height = (jb.getAttribute(\"height\") || \"0\");\n                                if (jb.getAttribute(\"class\")) {\n                                    kb.styleclass = jb.getAttribute(\"class\");\n                                };\n                                if (jb.getAttribute(\"align\")) {\n                                    kb.align = jb.getAttribute(\"align\");\n                                };\n                                var lb = {\n                                }, mb = jb.getElementsByTagName(\"param\"), nb = mb.length;\n                                for (var ob = 0; (ob < nb); ob++) {\n                                    if ((mb[ob].getAttribute(\"name\").toLowerCase() != \"movie\")) {\n                                        lb[mb[ob].getAttribute(\"name\")] = mb[ob].getAttribute(\"value\");\n                                    };\n                                };\n                                pa(kb, lb, gb, hb);\n                            }\n                             else {\n                                qa(jb);\n                                if (hb) {\n                                    hb(ib);\n                                };\n                            }\n                            \n                        \n                        };\n                    }\n                     else {\n                        bb(gb, true);\n                        if (hb) {\n                            var pb = na(gb);\n                            if ((pb && (typeof pb.SetVariable != h))) {\n                                ib.success = true;\n                                ib.ref = pb;\n                            }\n                        ;\n                            hb(ib);\n                        }\n                    ;\n                    }\n                ;\n                }\n            };\n        };\n        function na(eb) {\n            var fb = null, gb = wa(eb);\n            if ((gb && (gb.nodeName == \"OBJECT\"))) {\n                if ((typeof gb.SetVariable != h)) {\n                    fb = gb;\n                }\n                 else {\n                    var hb = gb.getElementsByTagName(i)[0];\n                    if (hb) {\n                        fb = hb;\n                    };\n                }\n            \n            };\n            return fb;\n        };\n        function oa() {\n            return (((!ba && za(\"6.0.65\")) && ((fa.win || fa.mac))) && !((fa.wk && (fa.wk < 312))));\n        };\n        function pa(eb, fb, gb, hb) {\n            ba = true;\n            y = (hb || null);\n            z = {\n                success: false,\n                id: gb\n            };\n            var ib = wa(gb);\n            if (ib) {\n                if ((ib.nodeName == \"OBJECT\")) {\n                    w = ra(ib);\n                    x = null;\n                }\n                 else {\n                    w = ib;\n                    x = gb;\n                }\n            ;\n                eb.id = m;\n                if (((typeof eb.width == h) || ((!/%$/.test(eb.width) && (parseInt(eb.width, 10) < 310))))) {\n                    eb.width = \"310\";\n                };\n                if (((typeof eb.height == h) || ((!/%$/.test(eb.height) && (parseInt(eb.height, 10) < 137))))) {\n                    eb.height = \"137\";\n                };\n                p.title = (p.title.slice(0, 47) + \" - Flash Player Installation\");\n                var jb = ((fa.ie && fa.win) ? \"ActiveX\" : \"PlugIn\"), kb = (((((\"MMredirectURL=\" + o.location.toString().replace(/&/g, \"%26\")) + \"&MMplayerType=\") + jb) + \"&MMdoctitle=\") + p.title);\n                if ((typeof fb.flashvars != h)) {\n                    fb.flashvars += (\"&\" + kb);\n                }\n                 else fb.flashvars = kb;\n            ;\n                if (((fa.ie && fa.win) && (ib.readyState != 4))) {\n                    var lb = xa(\"div\");\n                    gb += \"SWFObjectNew\";\n                    lb.setAttribute(\"id\", gb);\n                    ib.parentNode.insertBefore(lb, ib);\n                    ib.style.display = \"none\";\n                    (function() {\n                        if ((ib.readyState == 4)) {\n                            ib.parentNode.removeChild(ib);\n                        }\n                         else setTimeout(arguments.callee, 10);\n                    ;\n                    })();\n                }\n            ;\n                sa(eb, fb, gb);\n            }\n        ;\n        };\n        function qa(eb) {\n            if (((fa.ie && fa.win) && (eb.readyState != 4))) {\n                var fb = xa(\"div\");\n                eb.parentNode.insertBefore(fb, eb);\n                fb.parentNode.replaceChild(ra(eb), fb);\n                eb.style.display = \"none\";\n                (function() {\n                    if ((eb.readyState == 4)) {\n                        eb.parentNode.removeChild(eb);\n                    }\n                     else setTimeout(arguments.callee, 10);\n                ;\n                })();\n            }\n             else eb.parentNode.replaceChild(ra(eb), eb);\n        ;\n        };\n        function ra(eb) {\n            var fb = xa(\"div\");\n            if ((fa.win && fa.ie)) {\n                fb.innerHTML = eb.innerHTML;\n            }\n             else {\n                var gb = eb.getElementsByTagName(i)[0];\n                if (gb) {\n                    var hb = gb.childNodes;\n                    if (hb) {\n                        var ib = hb.length;\n                        for (var jb = 0; (jb < ib); jb++) {\n                            if ((!(((hb[jb].nodeType == 1) && (hb[jb].nodeName == \"PARAM\"))) && !((hb[jb].nodeType == 8)))) {\n                                fb.appendChild(hb[jb].cloneNode(true));\n                            };\n                        };\n                    }\n                ;\n                }\n            ;\n            }\n        ;\n            return fb;\n        };\n        function sa(eb, fb, gb) {\n            var hb, ib = wa(gb);\n            if ((fa.wk && (fa.wk < 312))) {\n                return hb\n            };\n            if (ib) {\n                if ((typeof eb.id == h)) {\n                    eb.id = gb;\n                };\n                if ((fa.ie && fa.win)) {\n                    var jb = \"\";\n                    for (var kb in eb) {\n                        if ((eb[kb] != Object.prototype[kb])) {\n                            if ((kb.toLowerCase() == \"data\")) {\n                                fb.movie = eb[kb];\n                            }\n                             else if ((kb.toLowerCase() == \"styleclass\")) {\n                                jb += ((\" class=\\\"\" + eb[kb]) + \"\\\"\");\n                            }\n                             else if ((kb.toLowerCase() != \"classid\")) {\n                                jb += ((((\" \" + kb) + \"=\\\"\") + eb[kb]) + \"\\\"\");\n                            }\n                            \n                        \n                        };\n                    };\n                    var lb = \"\";\n                    for (var mb in fb) {\n                        if ((fb[mb] != Object.prototype[mb])) {\n                            lb += ((((\"\\u003Cparam name=\\\"\" + mb) + \"\\\" value=\\\"\") + fb[mb]) + \"\\\" /\\u003E\");\n                        };\n                    };\n                    ib.outerHTML = ((((\"\\u003Cobject classid=\\\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\\\"\" + jb) + \"\\u003E\") + lb) + \"\\u003C/object\\u003E\");\n                    u[u.length] = eb.id;\n                    hb = wa(eb.id);\n                }\n                 else {\n                    var nb = xa(i);\n                    nb.setAttribute(\"type\", l);\n                    for (var ob in eb) {\n                        if ((eb[ob] != Object.prototype[ob])) {\n                            if ((ob.toLowerCase() == \"styleclass\")) {\n                                nb.setAttribute(\"class\", eb[ob]);\n                            }\n                             else if ((ob.toLowerCase() != \"classid\")) {\n                                nb.setAttribute(ob, eb[ob]);\n                            }\n                        \n                        };\n                    };\n                    for (var pb in fb) {\n                        if (((fb[pb] != Object.prototype[pb]) && (pb.toLowerCase() != \"movie\"))) {\n                            ta(nb, pb, fb[pb]);\n                        };\n                    };\n                    ib.parentNode.replaceChild(nb, ib);\n                    hb = nb;\n                }\n            ;\n            }\n        ;\n            return hb;\n        };\n        function ta(eb, fb, gb) {\n            var hb = xa(\"param\");\n            hb.setAttribute(\"name\", fb);\n            hb.setAttribute(\"value\", gb);\n            eb.appendChild(hb);\n        };\n        function ua(eb) {\n            var fb = wa(eb);\n            if ((fb && (fb.nodeName == \"OBJECT\"))) {\n                if ((fa.ie && fa.win)) {\n                    fb.style.display = \"none\";\n                    (function() {\n                        if ((fb.readyState == 4)) {\n                            va(eb);\n                        }\n                         else setTimeout(arguments.callee, 10);\n                    ;\n                    })();\n                }\n                 else fb.parentNode.removeChild(fb);\n            \n            };\n        };\n        function va(eb) {\n            var fb = wa(eb);\n            if (fb) {\n                for (var gb in fb) {\n                    if ((typeof fb[gb] == \"function\")) {\n                        fb[gb] = null;\n                    };\n                };\n                fb.parentNode.removeChild(fb);\n            }\n        ;\n        };\n        function wa(eb) {\n            var fb = null;\n            try {\n                fb = p.getElementById(eb);\n            } catch (gb) {\n            \n            };\n            return fb;\n        };\n        function xa(eb) {\n            return p.createElement(eb);\n        };\n        function ya(eb, fb, gb) {\n            eb.attachEvent(fb, gb);\n            v[v.length] = [eb,fb,gb,];\n        };\n        function za(eb) {\n            var fb = fa.pv, gb = eb.split(\".\");\n            gb[0] = parseInt(gb[0], 10);\n            gb[1] = (parseInt(gb[1], 10) || 0);\n            gb[2] = (parseInt(gb[2], 10) || 0);\n            return (((((fb[0] > gb[0]) || (((fb[0] == gb[0]) && (fb[1] > gb[1])))) || ((((fb[0] == gb[0]) && (fb[1] == gb[1])) && (fb[2] >= gb[2]))))) ? true : false);\n        };\n        function ab(eb, fb, gb, hb) {\n            if ((fa.ie && fa.mac)) {\n                return\n            };\n            var ib = p.getElementsByTagName(\"head\")[0];\n            if (!ib) {\n                return\n            };\n            var jb = (((gb && (typeof gb == \"string\"))) ? gb : \"screen\");\n            if (hb) {\n                ca = null;\n                da = null;\n            }\n        ;\n            if ((!ca || (da != jb))) {\n                var kb = xa(\"style\");\n                kb.setAttribute(\"type\", \"text/css\");\n                kb.setAttribute(\"media\", jb);\n                ca = ib.appendChild(kb);\n                if ((((fa.ie && fa.win) && (typeof p.styleSheets != h)) && (p.styleSheets.length > 0))) {\n                    ca = p.styleSheets[(p.styleSheets.length - 1)];\n                };\n                da = jb;\n            }\n        ;\n            if ((fa.ie && fa.win)) {\n                if ((ca && (typeof ca.addRule == i))) {\n                    ca.addRule(eb, fb);\n                };\n            }\n             else if ((ca && (typeof p.createTextNode != h))) {\n                ca.appendChild(p.createTextNode((((eb + \" {\") + fb) + \"}\")));\n            }\n        ;\n        };\n        function bb(eb, fb) {\n            if (!ea) {\n                return\n            };\n            var gb = (fb ? \"visible\" : \"hidden\");\n            if ((aa && wa(eb))) {\n                wa(eb).style.visibility = gb;\n            }\n             else ab((\"#\" + eb), (\"visibility:\" + gb));\n        ;\n        };\n        function cb(eb) {\n            var fb = /[\\\\\\\"<>\\.;]/, gb = (fb.exec(eb) != null);\n            return ((gb && (typeof encodeURIComponent != h)) ? encodeURIComponent(eb) : eb);\n        };\n        var db = function() {\n            if ((fa.ie && fa.win)) {\n                window.attachEvent(\"onunload\", function() {\n                    var eb = v.length;\n                    for (var fb = 0; (fb < eb); fb++) {\n                        v[fb][0].detachEvent(v[fb][1], v[fb][2]);;\n                    };\n                    var gb = u.length;\n                    for (var hb = 0; (hb < gb); hb++) {\n                        ua(u[hb]);;\n                    };\n                    for (var ib in fa) {\n                        fa[ib] = null;;\n                    };\n                    fa = null;\n                    for (var jb in g) {\n                        g[jb] = null;;\n                    };\n                    g = null;\n                });\n            };\n        }();\n        return {\n            registerObject: function(eb, fb, gb, hb) {\n                if (((fa.w3 && eb) && fb)) {\n                    var ib = {\n                    };\n                    ib.id = eb;\n                    ib.swfVersion = fb;\n                    ib.expressInstall = gb;\n                    ib.callbackFn = hb;\n                    t[t.length] = ib;\n                    bb(eb, false);\n                }\n                 else if (hb) {\n                    hb({\n                        success: false,\n                        id: eb\n                    });\n                }\n            ;\n            },\n            getObjectById: function(eb) {\n                if (fa.w3) {\n                    return na(eb)\n                };\n            },\n            embedSWF: function(eb, fb, gb, hb, ib, jb, kb, lb, mb, nb) {\n                var ob = {\n                    success: false,\n                    id: fb\n                };\n                if (((((((fa.w3 && !((fa.wk && (fa.wk < 312)))) && eb) && fb) && gb) && hb) && ib)) {\n                    bb(fb, false);\n                    ia(function() {\n                        gb += \"\";\n                        hb += \"\";\n                        var pb = {\n                        };\n                        if ((mb && (typeof mb === i))) {\n                            for (var qb in mb) {\n                                pb[qb] = mb[qb];;\n                            }\n                        };\n                        pb.data = eb;\n                        pb.width = gb;\n                        pb.height = hb;\n                        var rb = {\n                        };\n                        if ((lb && (typeof lb === i))) {\n                            for (var sb in lb) {\n                                rb[sb] = lb[sb];;\n                            }\n                        };\n                        if ((kb && (typeof kb === i))) {\n                            for (var tb in kb) {\n                                if ((typeof rb.flashvars != h)) {\n                                    rb.flashvars += (((\"&\" + tb) + \"=\") + kb[tb]);\n                                }\n                                 else rb.flashvars = ((tb + \"=\") + kb[tb]);\n                            ;\n                            }\n                        };\n                        if (za(ib)) {\n                            var ub = sa(pb, rb, fb);\n                            if ((pb.id == fb)) {\n                                bb(fb, true);\n                            };\n                            ob.success = true;\n                            ob.ref = ub;\n                        }\n                         else if ((jb && oa())) {\n                            pb.data = jb;\n                            pa(pb, rb, fb, nb);\n                            return;\n                        }\n                         else bb(fb, true);\n                        \n                    ;\n                        if (nb) {\n                            nb(ob);\n                        };\n                    });\n                }\n                 else if (nb) {\n                    nb(ob);\n                }\n            ;\n            },\n            switchOffAutoHideShow: function() {\n                ea = false;\n            },\n            ua: fa,\n            getFlashPlayerVersion: function() {\n                return {\n                    major: fa.pv[0],\n                    minor: fa.pv[1],\n                    release: fa.pv[2]\n                };\n            },\n            hasFlashPlayerVersion: za,\n            createSWF: function(eb, fb, gb) {\n                if (fa.w3) {\n                    return sa(eb, fb, gb);\n                }\n                 else return undefined\n            ;\n            },\n            showExpressInstall: function(eb, fb, gb, hb) {\n                if ((fa.w3 && oa())) {\n                    pa(eb, fb, gb, hb);\n                };\n            },\n            removeSWF: function(eb) {\n                if (fa.w3) {\n                    ua(eb);\n                };\n            },\n            createCSS: function(eb, fb, gb, hb) {\n                if (fa.w3) {\n                    ab(eb, fb, gb, hb);\n                };\n            },\n            addDomLoadEvent: ia,\n            addLoadEvent: ja,\n            getQueryParamValue: function(eb) {\n                var fb = (p.location.search || p.location.hash);\n                if (fb) {\n                    if (/\\?/.test(fb)) {\n                        fb = fb.split(\"?\")[1];\n                    };\n                    if ((eb == null)) {\n                        return cb(fb)\n                    };\n                    var gb = fb.split(\"&\");\n                    for (var hb = 0; (hb < gb.length); hb++) {\n                        if ((gb[hb].substring(0, gb[hb].indexOf(\"=\")) == eb)) {\n                            return cb(gb[hb].substring(((gb[hb].indexOf(\"=\") + 1))))\n                        };\n                    };\n                }\n            ;\n                return \"\";\n            },\n            expressInstallCallback: function() {\n                if (ba) {\n                    var eb = wa(m);\n                    if ((eb && w)) {\n                        eb.parentNode.replaceChild(w, eb);\n                        if (x) {\n                            bb(x, true);\n                            if ((fa.ie && fa.win)) {\n                                w.style.display = \"block\";\n                            };\n                        }\n                    ;\n                        if (y) {\n                            y(z);\n                        };\n                    }\n                ;\n                    ba = false;\n                }\n            ;\n            }\n        };\n    }();\n    e.exports = g;\n});\n__d(\"SoundPlayer\", [\"Arbiter\",\"ChatConfig\",\"swfobject\",\"swfobject2\",\"URI\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatConfig\"), i = b(\"swfobject\").SWFObject, j = b(\"swfobject2\"), k = b(\"URI\"), l = b(\"createArrayFrom\"), m = {\n    }, n = null, o = false, p = \"so_sound_player\", q = \"/swf/SoundPlayer.swf?v=1\", r = \"10.0.22.87\", s = null, t = h.get(\"sound.useswfobject_2\", false), u = h.get(\"sound.force_flash\", false);\n    function v(da) {\n        var ea = k(da);\n        if (!ea.getDomain()) {\n            return k().setPath(ea.getPath()).toString()\n        };\n        return da;\n    };\n    function w(da) {\n        var ea = k(da).getPath();\n        if (/\\.mp3$/.test(ea)) {\n            return \"audio/mpeg\"\n        };\n        if (/\\.og[ga]$/.test(ea)) {\n            return \"audio/ogg\"\n        };\n        return \"\";\n    };\n    function x() {\n        if ((!s && !u)) {\n            var da = document.createElement(\"audio\");\n            if ((!da || !da.canPlayType)) {\n                return null\n            };\n            da.setAttribute(\"preload\", \"auto\");\n            document.body.appendChild(da);\n            s = da;\n        }\n    ;\n        return s;\n    };\n    function y() {\n        var da = (document[p] || window[p]);\n        if (da) {\n            if ((!da.playSound && da.length)) {\n                da = da[0];\n            }\n        };\n        return ((((da && da.playSound) && da.loopSound)) ? da : null);\n    };\n    function z() {\n        return o;\n    };\n    function aa(da, ea, fa) {\n        n = {\n            path: da,\n            sync: ea,\n            loop: fa\n        };\n    };\n    function ba() {\n        o = true;\n        if (n) {\n            var da = y();\n            if (n.loop) {\n                da.loopSound(n.path, n.sync);\n            }\n             else da.playSound(n.path, n.sync);\n        ;\n        }\n    ;\n    };\n    var ca = {\n        init: function(da) {\n            da = l(da);\n            var ea;\n            for (var fa = 0; (fa < da.length); ++fa) {\n                ea = da[fa];\n                if (m[ea]) {\n                    return\n                };\n            };\n            var ga = x();\n            for (fa = 0; (ga && (fa < da.length)); ++fa) {\n                ea = da[fa];\n                if (ga.canPlayType(ea)) {\n                    m[ea] = true;\n                    return;\n                }\n            ;\n            };\n            m[\"audio/mpeg\"] = true;\n            if (y()) {\n                return\n            };\n            try {\n                g.registerCallback(ba, [\"sound/player_ready\",\"sound/ready\",]);\n                var ia = document.createElement(\"div\");\n                ia.id = \"sound_player_holder\";\n                document.body.appendChild(ia);\n                if (t) {\n                    j.embedSWF(q, ia.id, \"1px\", \"1px\", r, null, {\n                        swf_id: p\n                    }, {\n                        allowscriptaccess: \"always\",\n                        wmode: \"transparent\"\n                    }, null, function(ka) {\n                        window[p] = ka.ref;\n                        g.inform(\"sound/player_ready\");\n                    });\n                }\n                 else {\n                    var ja = new i(q, p, \"1px\", \"1px\", [r,], \"#ffffff\");\n                    ja.addParam(\"allowscriptaccess\", \"always\");\n                    ja.addParam(\"wmode\", \"transparent\");\n                    ja.addVariable(\"swf_id\", p);\n                    ja.fallback_html = \" \";\n                    ja.write(ia.id);\n                    window[p] = ja;\n                    g.inform(\"sound/player_ready\");\n                }\n            ;\n            } catch (ha) {\n            \n            };\n        },\n        play: function(da, ea) {\n            da = l(da);\n            var fa = x(), ga, ha;\n            for (var ia = 0; (fa && (ia < da.length)); ++ia) {\n                ga = da[ia];\n                ha = w(ga);\n                if (!fa.canPlayType(ha)) {\n                    continue;\n                };\n                ca.init([ha,]);\n                fa.src = v(ga);\n                if (ea) {\n                    fa.setAttribute(\"loop\", \"\");\n                }\n                 else fa.removeAttribute(\"loop\");\n            ;\n                fa.play();\n                return;\n            };\n            for (ia = 0; (ia < da.length); ++ia) {\n                ga = v(da[ia]);\n                ha = w(ga);\n                if ((ha != \"audio/mpeg\")) {\n                    continue;\n                };\n                ca.init([ha,]);\n                var ja = y();\n                if (!z()) {\n                    aa(ga, true, ea);\n                    return;\n                }\n                 else if (ja) {\n                    if (ea) {\n                        ja.loopSound(ga, true);\n                    }\n                     else ja.playSound(ga, true);\n                ;\n                    return;\n                }\n                \n            ;\n            };\n        },\n        stop: function(da) {\n            da = l(da);\n            for (var ea = 0; (ea < da.length); ++ea) {\n                var fa = v(da[ea]), ga = x(), ha = y();\n                if ((ga && (ga.src == fa))) {\n                    ga.pause();\n                    ga.src = undefined;\n                }\n                 else (ha && ha.stopSound(fa));\n            ;\n            };\n        }\n    };\n    e.exports = ca;\n});\n__d(\"SoundSynchronizer\", [\"hasArrayNature\",\"SoundPlayer\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\"), h = b(\"SoundPlayer\"), i = b(\"createArrayFrom\"), j = \"fb_sounds_playing3\";\n    function k() {\n        if (window.localStorage) {\n            try {\n                var p = window.localStorage[j];\n                if (p) {\n                    p = JSON.parse(p);\n                    if (g(p)) {\n                        return p\n                    };\n                }\n            ;\n            } catch (o) {\n            \n            }\n        };\n        return [];\n    };\n    function l(o) {\n        if (window.localStorage) {\n            var p = k();\n            p.push(o);\n            while ((p.length > 5)) {\n                p.shift();;\n            };\n            try {\n                window.localStorage[j] = JSON.stringify(p);\n            } catch (q) {\n            \n            };\n        }\n    ;\n    };\n    function m(o) {\n        return k().some(function(p) {\n            return (p === o);\n        });\n    };\n    var n = {\n        play: function(o, p, q) {\n            o = i(o);\n            p = (p || ((o[0] + Math.floor((Date.now() / 1000)))));\n            if (m(p)) {\n                return\n            };\n            h.play(o, q);\n            l(p);\n        },\n        isSupported: function() {\n            return !!window.localStorage;\n        }\n    };\n    e.exports = n;\n});\n__d(\"SoundRPC\", [\"Event\",\"SoundSynchronizer\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"SoundSynchronizer\");\n    function i(k, l, m) {\n        h.play(k, l, m);\n    };\n    var j = {\n        playLocal: i,\n        playRemote: function(k, l, m, n) {\n            var o = {\n                paths: l,\n                sync: m,\n                loop: n\n            };\n            k.postMessage(JSON.stringify(o), \"*\");\n        },\n        supportsRPC: function() {\n            return !!window.postMessage;\n        },\n        _listen: function() {\n            g.listen(window, \"message\", function(k) {\n                if (!/\\.facebook.com$/.test(k.origin)) {\n                    return\n                };\n                var l = JSON.parse(k.data);\n                i(l.paths, l.sync, l.loop);\n            });\n        }\n    };\n    e.exports = j;\n});\n__d(\"Sound\", [\"SoundPlayer\",\"SoundRPC\",\"SoundSynchronizer\",\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SoundPlayer\"), h = b(\"SoundRPC\"), i = b(\"SoundSynchronizer\"), j = b(\"URI\"), k = b(\"UserAgent\"), l = null, m = {\n        init: function(q) {\n            if (!l) {\n                g.init(q);\n            };\n        },\n        play: function(q, r, s) {\n            if (l) {\n                h.playRemote(l.contentWindow, q, r, false);\n            }\n             else h.playLocal(q, r, s);\n        ;\n        },\n        stop: function(q) {\n            if (!l) {\n                g.stop(q);\n            };\n        }\n    }, n = new j(location.href);\n    if ((n.getSubdomain() && (n.getSubdomain() !== \"www\"))) {\n        n.setSubdomain(\"www\");\n    };\n    var o = n.getDomain();\n    function p() {\n        if ((k.ie() < 9)) {\n            return false\n        };\n        return (i.isSupported() && h.supportsRPC());\n    };\n    if (((n.isFacebookURI() && (location.host !== o)) && p())) {\n        l = document.createElement(\"iframe\");\n        l.setAttribute(\"src\", ((\"//\" + o) + \"/sound_iframe.php\"));\n        l.style.display = \"none\";\n        document.body.appendChild(l);\n    }\n;\n    e.exports = m;\n});\n__d(\"MercuryBrowserAlerts\", [\"ArbiterMixin\",\"ChatActivity\",\"ChatConfig\",\"ChatOptions\",\"ChatTitleBarBlinker\",\"MercuryParticipants\",\"MercuryThreadMuter\",\"MercuryThreads\",\"MessagingTag\",\"Sound\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"ChatActivity\"), i = b(\"ChatConfig\"), j = b(\"ChatOptions\"), k = b(\"ChatTitleBarBlinker\"), l = b(\"MercuryParticipants\"), m = b(\"MercuryThreadMuter\"), n = b(\"MercuryThreads\").get(), o = b(\"MessagingTag\"), p = b(\"Sound\"), q = b(\"copyProperties\");\n    p.init([\"audio/ogg\",\"audio/mpeg\",]);\n    function r(t) {\n        if (j.getSetting(\"sound\")) {\n            p.play([i.get(\"sound.notif_ogg_url\"),i.get(\"sound.notif_mp3_url\"),], t, false);\n        };\n    };\n    var s = {\n        messageReceived: function(t) {\n            if ((((t.author == l.user) || !t.is_unread) || (((t.folder != o.INBOX) && (t.folder != o.ARCHIVED))))) {\n                return\n            };\n            var u = t.thread_id, v = h.isActive();\n            if (v) {\n                var w = false;\n                s.inform(\"before-alert\", {\n                    threadID: u,\n                    cancelAlert: function() {\n                        w = true;\n                    }\n                });\n            }\n        ;\n            n.getThreadMeta(u, function(x) {\n                var y = m.isThreadMuted(x);\n                if (y) {\n                    return\n                };\n                var z = t.timestamp;\n                if (v) {\n                    (!w && r(z));\n                }\n                 else {\n                    k.blink(u, z);\n                    r(z);\n                }\n            ;\n                k.blinkingElsewhere();\n            }.bind(this));\n        }\n    };\n    e.exports = q(s, g);\n});\n__d(\"ActiveXSupport\", [], function(a, b, c, d, e, f) {\n    var g = null, h = {\n        isSupported: function() {\n            if ((g !== null)) {\n                return g\n            };\n            try {\n                g = (!!window.ActiveXObject && !!new ActiveXObject(\"htmlfile\"));\n            } catch (i) {\n                g = false;\n            };\n            return g;\n        }\n    };\n    e.exports = h;\n});\n__d(\"VideoCallSupport\", [\"MercuryConfig\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryConfig\"), h = b(\"UserAgent\"), i = {\n        newVCIsSupported: function() {\n            return (g.NewVCGK && (((h.chrome() >= 24) || (h.firefox() >= 22))));\n        }\n    };\n    e.exports = i;\n});\n__d(\"VideoCallRecordMessageDialog\", [\"AsyncDialog\",\"AsyncRequest\",\"Dialog\",\"URI\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncDialog\"), h = b(\"AsyncRequest\"), i = b(\"Dialog\"), j = b(\"URI\"), k = b(\"tx\"), l = {\n        get: function(m, n) {\n            var o = \"Would you like to leave a message?\", p = \"New Message\";\n            return new i().setTitle(k._(\"{firstname} is Unavailable\", {\n                firstname: n\n            })).setBody(o).setButtons([{\n                name: \"record-message\",\n                label: p\n            },i.CANCEL,]).setHandler(function() {\n                var q = j(\"/ajax/messaging/composer.php\").setQueryData({\n                    ids: [m,],\n                    autoloadvideo: true\n                }).toString();\n                g.send(new h(q));\n            });\n        }\n    };\n    e.exports = l;\n});\n__d(\"VideoCallCore\", [\"Event\",\"ActiveXSupport\",\"Arbiter\",\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"Bootloader\",\"ChannelConstants\",\"Cookie\",\"CSS\",\"Dialog\",\"MercuryConfig\",\"UserAgent\",\"VideoCallSupport\",\"emptyFunction\",\"ge\",\"VideoCallTemplates\",\"ShortProfiles\",\"VideoCallRecordMessageDialog\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ActiveXSupport\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AvailableList\"), l = b(\"AvailableListConstants\"), m = b(\"Bootloader\"), n = b(\"ChannelConstants\"), o = b(\"Cookie\"), p = b(\"CSS\"), q = b(\"Dialog\"), r = b(\"MercuryConfig\"), s = b(\"UserAgent\"), t = b(\"VideoCallSupport\"), u = b(\"emptyFunction\"), v = b(\"ge\");\n    b(\"VideoCallTemplates\");\n    var w = [], x = [], y = {\n        isSupported: function() {\n            if (t.newVCIsSupported()) {\n                return true\n            };\n            if (s.windows()) {\n                if (((s.ie() >= 9) && !s.ie64())) {\n                    return h.isSupported();\n                }\n                 else return ((((((s.ie() >= 7) && !s.ie64())) || (s.firefox() >= 3.6)) || (s.chrome() >= 5)) || (s.opera() >= 12))\n            ;\n            }\n             else if ((s.osx() > 10.4)) {\n                return (((((s.firefox() >= 3.6) || (s.chrome() >= 5)) || (s.webkit() >= 500)) || (s.opera() >= 12)))\n            }\n        ;\n            return false;\n        },\n        isInstalled: function() {\n            var ca = false;\n            if (this.isSupported()) {\n                if (z()) {\n                    var da = null;\n                    try {\n                        da = new ActiveXObject(\"SkypeLimited.SkypeWebPlugin\");\n                        ca = !!da;\n                    } catch (ea) {\n                    \n                    };\n                    da = null;\n                }\n                 else {\n                    ca = aa();\n                    if (r.VideoCallingNoJavaGK) {\n                        if ((ca && (s.osx() >= 10.8))) {\n                            if ((ca.description && (ca.description.charAt(0) != \"v\"))) {\n                                ca = false;\n                            }\n                        }\n                    };\n                }\n            \n            };\n            return ca;\n        },\n        mightReloadPostInstall: function() {\n            return s.windows();\n        },\n        onVideoMessage: function(ca) {\n            w.push(ca);\n            m.loadModules([\"VideoCallController\",], u);\n        },\n        onRTCMessage: function(ca) {\n            if (t.newVCIsSupported()) {\n                x.push(ca);\n                m.loadModules([\"FBRTCCallController\",], u);\n            }\n        ;\n        },\n        setMessageHandler: function(ca) {\n            this.onVideoMessage = ca;\n            if (ca) {\n                while (w.length) {\n                    ca(w.shift());;\n                }\n            };\n        },\n        setRTCMessageHandler: function(ca) {\n            this.onRTCMessage = ca;\n            if (ca) {\n                while (x.length) {\n                    ca(x.shift());;\n                }\n            };\n        },\n        availableForCall: function(ca) {\n            var da = k.get(ca);\n            return ((da == l.ACTIVE) || (da == l.IDLE));\n        },\n        onProfileButtonClick: function(ca) {\n            y.startCallOrLeaveMessage(ca, \"profile_button_click\");\n        },\n        attachListenerToProfileButton: function(ca) {\n            var da = v(\"videoCallProfileButton\");\n            if (da) {\n                if (!y.isSupported()) {\n                    p.hide(da);\n                    return;\n                }\n            ;\n                g.listen(da, \"click\", function(event) {\n                    y.startCallOrLeaveMessage(ca, \"profile_button_click_timeline\");\n                });\n            }\n        ;\n        },\n        startCallOrLeaveMessage: function(ca, da) {\n            if (this.availableForCall(ca)) {\n                y.showOutgoingCallDialog(ca, da);\n            }\n             else b(\"ShortProfiles\").get(ca, function(ea) {\n                b(\"VideoCallRecordMessageDialog\").get(ca, ea.firstName).show();\n            });\n        ;\n        },\n        showOutgoingCallDialog: function(ca, da) {\n            var ea = (da || \"unknown\");\n            y.logClick(ca, ea);\n            var fa = ((y.isInstalled() || r.NewVCGK) ? \"outgoing_dialog.php\" : \"intro.php\"), ga = (((\"/ajax/chat/video/\" + fa) + \"?idTarget=\") + ca);\n            new q().setAllowCrossPageTransition(true).setAsync(new j(ga)).show();\n        },\n        logClick: function(ca, da) {\n            new j().setURI(\"/ajax/chat/video/log_click.php\").setData({\n                targetUserID: ca,\n                clickSource: da\n            }).setAllowCrossPageTransition(true).setErrorHandler(u).send();\n        }\n    };\n    function z() {\n        return ((s.ie() && s.windows()) && !s.opera());\n    };\n    function aa() {\n        if (!navigator) {\n            return null\n        };\n        navigator.plugins.refresh(false);\n        var ca = navigator.mimeTypes[\"application/skypesdk-plugin\"];\n        return (ca && ca.enabledPlugin);\n    };\n    function ba() {\n        if (!y.mightReloadPostInstall()) {\n            return\n        };\n        var ca = o.get(\"vcpwn\");\n        if (ca) {\n            o.clear(\"vcpwn\");\n            var da = o.get(\"vctid\");\n            if (da) {\n                o.clear(\"vctid\");\n                if (o.get(\"vctid\")) {\n                    return\n                };\n                if ((da && y.isInstalled())) {\n                    var ea = (\"/ajax/chat/video/outgoing_dialog.php?idTarget=\" + da);\n                    new q().setAllowCrossPageTransition(true).setAsync(new j(ea)).show();\n                }\n            ;\n            }\n        ;\n        }\n    ;\n    };\n    i.subscribe(n.getArbiterType(\"video\"), function(ca, da) {\n        y.onVideoMessage(da.obj);\n    });\n    i.subscribe(n.getArbiterType(\"webrtc\"), function(ca, da) {\n        y.onRTCMessage(da.obj);\n    });\n    i.subscribe(n.getArbiterType(\"chat_event\"), function(ca, da) {\n        if ((da.obj.event_name == \"missed-call\")) {\n            m.loadModules([\"VideoCallController\",], function(ea) {\n                ea.onMissedCallEvent(da.obj);\n            });\n        };\n    });\n    ba();\n    e.exports = y;\n});\n__d(\"ChatApp\", [\"CSS\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"JSLogger\"), i = false, j = false, k = false, l = null, m = {\n        init: function(n, o, p) {\n            if (l) {\n                h.create(\"chat_app\").error(\"repeated_init\");\n                return;\n            }\n        ;\n            l = n;\n            d([\"TabsViewport\",\"ChatTabController\",\"ChatTabViewCoordinator\",\"MercuryServerRequests\",\"MercuryChannelHandler\",\"MercuryStateCheck\",], function(q, r, s, t, u, v) {\n                t.get().handleUpdate(p);\n                this.tabsViewport = new q(o);\n                this.tabController = new r(this.tabsViewport);\n                this.tabViewCoordinator = new s(o, this.tabsViewport);\n                i = j = true;\n            }.bind(this));\n        },\n        hide: function() {\n            if ((!i || k)) {\n                return\n            };\n            g.hide(l);\n            k = true;\n        },\n        unhide: function() {\n            if (i) {\n                if (k) {\n                    g.show(l);\n                    this.tabsViewport.checkWidth();\n                    d([\"Dock\",], function(n) {\n                        n.resizeAllFlyouts();\n                    });\n                    k = false;\n                }\n            ;\n            }\n             else if (!j) {\n                d([\"UIPagelet\",], function(n) {\n                    n.loadFromEndpoint(\"ChatTabsPagelet\", \"ChatTabsPagelet\");\n                    n.loadFromEndpoint(\"BuddylistPagelet\", \"BuddylistPagelet\");\n                });\n                j = true;\n            }\n            \n        ;\n        }\n    };\n    e.exports = m;\n});\n__d(\"DataViewPolyfill\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i, j, k) {\n        if ((j === undefined)) {\n            this._ba = new Uint8Array(i);\n        }\n         else if ((k === undefined)) {\n            this._ba = new Uint8Array(i, j);\n        }\n         else this._ba = new Uint8Array(i, j, k);\n        \n    ;\n        this.byteLength = this._ba.byteLength;\n    };\n    g(h, {\n        isSupported: function() {\n            return !!a.Uint8Array;\n        }\n    });\n    g(h.prototype, {\n        getUint8: function(i) {\n            if ((i >= this._ba.length)) {\n                throw new Error(\"Trying to read beyond bounds of DataViewPolyfill\")\n            };\n            return this._ba[i];\n        },\n        getUint16: function(i, j) {\n            var k = this.getUint8(i), l = this.getUint8((i + 1));\n            return (j ? (((l * 256)) + k) : (((k * 256)) + l));\n        },\n        getUint32: function(i, j) {\n            var k = this.getUint8(i), l = this.getUint8((i + 1)), m = this.getUint8((i + 2)), n = this.getUint8((i + 3));\n            return (j ? (((((((((n * 256) + m)) * 256) + l)) * 256)) + k) : (((((((((k * 256) + l)) * 256) + m)) * 256)) + n));\n        }\n    });\n    e.exports = h;\n});\n__d(\"getImageSize\", [\"DataViewPolyfill\",], function(a, b, c, d, e, f) {\n    var g = b(\"DataViewPolyfill\"), h = (a.DataView || g);\n    function i(m) {\n        return {\n            width: m.getUint16(6, true),\n            height: m.getUint16(8, true)\n        };\n    };\n    function j(m) {\n        return {\n            width: m.getUint32(16, false),\n            height: m.getUint32(20, false)\n        };\n    };\n    function k(m) {\n        var n = m.byteLength, o = 2;\n        while ((o < n)) {\n            var p = m.getUint16(o, false);\n            o += 2;\n            if (((p == 65472) || (p == 65474))) {\n                return {\n                    width: m.getUint16((o + 5), false),\n                    height: m.getUint16((o + 3), false)\n                };\n            }\n             else o += m.getUint16(o, false);\n        ;\n        };\n        return null;\n    };\n    function l(m) {\n        var n = new h(m);\n        if (((n.getUint8(0) == 255) && (n.getUint8(1) == 216))) {\n            return k(n)\n        };\n        if ((((n.getUint8(0) == 71) && (n.getUint8(1) == 73)) && (n.getUint8(2) == 70))) {\n            return i(n)\n        };\n        if (((((n.getUint8(0) == 137) && (n.getUint8(1) == 80)) && (n.getUint8(2) == 78)) && (n.getUint8(3) == 71))) {\n            return j(n)\n        };\n        return null;\n    };\n    e.exports = l;\n    l.gif = i;\n    l.png = j;\n    l.jpeg = k;\n});\n__d(\"ChatAutoSendPhotoUploader\", [\"ArbiterMixin\",\"DOM\",\"Event\",\"FileForm\",\"FileFormResetOnSubmit\",\"FileInput\",\"FormSubmitOnChange\",\"MercuryAttachmentType\",\"SubscriptionsHandler\",\"copyProperties\",\"csx\",\"getImageSize\",\"removeFromArray\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"Event\"), j = b(\"FileForm\"), k = b(\"FileFormResetOnSubmit\"), l = b(\"FileInput\"), m = b(\"FormSubmitOnChange\"), n = b(\"MercuryAttachmentType\"), o = b(\"SubscriptionsHandler\"), p = b(\"copyProperties\"), q = b(\"csx\"), r = b(\"getImageSize\"), s = b(\"removeFromArray\"), t = b(\"shield\"), u = 0;\n    function v(w, x, y) {\n        this._idElem = y;\n        this._input = x;\n        this._subscriptionsHandler = new o();\n        this._uploadBatches = [];\n        var z = new j(w, [m,k,]), aa = h.find(w, \"._4q60\"), ba = h.find(aa, \"._4q61\");\n        new l(aa, ba, x);\n        this._subscriptionsHandler.addSubscriptions(z.subscribe(\"submit\", this._onFileSubmit.bind(this)), z.subscribe(\"success\", this._onFileUploadSuccess.bind(this)), z.subscribe(\"failure\", this._onFileUploadFailure.bind(this)), i.listen(ba, \"click\", t(this.inform, this, \"open\")));\n    };\n    p(v.prototype, g, {\n        isUploading: function() {\n            return (this._uploadBatches.length > 0);\n        },\n        destroy: function() {\n            this._subscriptionsHandler.release();\n        },\n        _getPreviewAttachment: function(w) {\n            var x = {\n                attach_type: n.PHOTO,\n                preview_uploading: true\n            };\n            if (w) {\n                x.preview_width = w.width;\n                x.preview_height = w.height;\n            }\n        ;\n            return x;\n        },\n        _onFileSubmit: function() {\n            u += 1;\n            var w = (\"upload_\" + u);\n            this._idElem.value = w;\n            this._uploadBatches.push(w);\n            if (((((typeof FileReader !== \"undefined\") && FileReader.prototype.readAsArrayBuffer) && this._input.files) && (this._input.files.length === 1))) {\n                var x = new FileReader();\n                x.onload = function() {\n                    this.inform(\"submit\", {\n                        upload_id: w,\n                        raw_attachments: [this._getPreviewAttachment(r(x.result)),]\n                    });\n                }.bind(this);\n                x.onerror = function() {\n                    this.inform(\"submit\", {\n                        upload_id: w,\n                        raw_attachments: [this._getPreviewAttachment(null),]\n                    });\n                }.bind(this);\n                x.readAsArrayBuffer(this._input.files[0]);\n            }\n             else {\n                var y = 1;\n                if (this._input.files) {\n                    y = this._input.files.length;\n                };\n                var z = [];\n                for (var aa = 0; (aa < y); ++aa) {\n                    z.push(this._getPreviewAttachment(null));;\n                };\n                this.inform(\"submit\", {\n                    upload_id: w,\n                    raw_attachments: z\n                });\n            }\n        ;\n        },\n        _onFileUploadSuccess: function(event, w) {\n            var x = w.response.getPayload(), y = x.uploadID;\n            s(this._uploadBatches, y);\n            var z = [];\n            x.metadata.forEach(function(aa) {\n                z.push(aa.image_id);\n            });\n            this.inform(\"all-uploads-completed\", {\n                upload_id: x.uploadID,\n                image_ids: z\n            });\n        },\n        _onFileUploadFailure: function(event, w) {\n            var x = this._uploadBatches[(this._uploadBatches.length - 1)];\n            s(this._uploadBatches, x);\n            this.inform(\"all-uploads-failed\", {\n                upload_id: x\n            });\n        }\n    });\n    e.exports = v;\n});\n__d(\"ChatTabModel\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"ChatBehavior\",\"ChatConfig\",\"JSLogger\",\"MercuryAssert\",\"MercuryServerRequests\",\"MercuryThreads\",\"MercuryTimestampTracker\",\"PresenceInitialData\",\"PresenceState\",\"PresenceUtil\",\"areObjectsEqual\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"ChatBehavior\"), j = b(\"ChatConfig\"), k = b(\"JSLogger\"), l = b(\"MercuryAssert\"), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreads\").get(), o = b(\"MercuryTimestampTracker\").get(), p = b(\"PresenceInitialData\"), q = b(\"PresenceState\"), r = b(\"PresenceUtil\"), s = b(\"areObjectsEqual\"), t = b(\"copyProperties\"), u = [], v = null, w = null, x = null, y = null;\n    function z() {\n        return parseInt(p.serverTime, 10);\n    };\n    var aa = (j.get(\"tab_max_load_age\") || 3600000), ba = (z() - aa), ca = 0, da = 20, ea = k.create(\"chat_tab_model\"), fa = false;\n    function ga(xa) {\n        var ya = q.verifyNumber(xa.uct2);\n        if ((!ya || (typeof ya !== \"number\"))) {\n            ea.warn(\"bad_cookie_version\", xa.uct2);\n            return null;\n        }\n    ;\n        if (((ya < ca) || (ya < ba))) {\n            return null\n        };\n        return ya;\n    };\n    function ha(xa) {\n        var ya = ga(xa);\n        if (!ya) {\n            var za = {\n            };\n            za.old_tabs = ((xa && xa.t2) && JSON.stringify(xa.t2));\n            za.old_promoted = (xa && xa.lm2);\n            za.old_time = (xa && xa.uct2);\n            za.old_reason = (xa && xa.tr);\n            za.old_window = (xa && xa.tw);\n            var ab;\n            if ((w && xa.t2)) {\n                for (var bb = 0; (bb < xa.t2.length); bb++) {\n                    var cb = xa.t2[bb];\n                    if ((cb.i === w)) {\n                        ab = cb.r;\n                    };\n                }\n            };\n            var db = [];\n            u.forEach(function(eb) {\n                if (!eb.fragile) {\n                    var fb = {\n                        i: eb.id,\n                        si: eb.server_id\n                    };\n                    if ((eb.raised || (((eb.id === w) && ab)))) {\n                        fb.r = 1;\n                    };\n                    db.push(fb);\n                }\n            ;\n            });\n            xa.t2 = db;\n            xa.uct2 = ca;\n            xa.lm2 = v;\n            xa.tr = y;\n            xa.tw = r.getSessionID();\n            za.new_tabs = JSON.stringify(xa.t2);\n            za.new_promoted = xa.lm2;\n            za.new_time = xa.uct2;\n            za.new_reason = xa.tr;\n            za.new_window = xa.tw;\n            ea.debug(\"store\", za);\n        }\n    ;\n        return xa;\n    };\n    function ia(xa) {\n        if (xa) {\n            var ya = ga(xa);\n            if ((ya && (ya !== ca))) {\n                var za = {\n                };\n                za.old_tabs = JSON.stringify(u);\n                za.old_promoted = v;\n                za.old_time = ca;\n                za.old_reason = y;\n                za.window_id = r.getSessionID();\n                za.cookie_tabs = ((xa && xa.t2) && JSON.stringify(xa.t2));\n                za.cookie_promoted = (xa && xa.lm2);\n                za.cookie_time = (xa && xa.uct2);\n                za.cookie_reason = (xa && xa.tr);\n                za.cookie_window = (xa && xa.tw);\n                ca = ya;\n                y = \"load\";\n                var ab = ja(xa.t2, (xa.lm2 || null));\n                za.load_result = ab;\n                za.new_tabs = JSON.stringify(u);\n                za.new_promoted = v;\n                za.new_time = ca;\n                za.new_reason = y;\n                var event = \"load\";\n                if (!fa) {\n                    event += \"_init\";\n                };\n                ea.log(event, za);\n                return ab;\n            }\n        ;\n        }\n    ;\n        return false;\n    };\n    function ja(xa, ya) {\n        if (ka(xa, ya)) {\n            var za = u.filter(function(cb) {\n                return cb.fragile;\n            }), ab = {\n            };\n            v = null;\n            u = xa.map(function(cb) {\n                var db = {\n                    id: cb.i,\n                    server_id: cb.si\n                };\n                if ((db.id == ya)) {\n                    v = db.id;\n                };\n                if ((w == cb.i)) {\n                    var eb = pa(w);\n                    if ((eb != -1)) {\n                        db.raised = u[eb].raised;\n                        return db;\n                    }\n                     else return null\n                ;\n                }\n            ;\n                if (cb.r) {\n                    db.raised = true;\n                };\n                ab[db.id] = db;\n                return db;\n            });\n            u = u.filter(function(cb) {\n                return (cb != null);\n            });\n            if (x) {\n                for (var bb in x) {\n                    if ((!ab[bb] || !ab[bb].raised)) {\n                        delete x[bb];\n                    };\n                }\n            };\n            za = za.filter(function(cb) {\n                return !ab[cb.id];\n            });\n            u = u.concat(za);\n            oa();\n            return true;\n        }\n    ;\n        return false;\n    };\n    function ka(xa, ya) {\n        if ((ya != v)) {\n            return true\n        };\n        var za = u.filter(function(cb) {\n            return !cb.fragile;\n        });\n        if ((xa.length != za.length)) {\n            return true\n        };\n        for (var ab = 0, bb = xa.length; (ab < bb); ab++) {\n            if ((xa[ab].id === w)) {\n                continue;\n            };\n            if (!s(xa[ab], za[ab])) {\n                return true\n            };\n        };\n        return false;\n    };\n    function la(xa, ya, za) {\n        var ab = ia(q.get());\n        if (((ya === undefined) || (ya > ca))) {\n            if (xa()) {\n                ab = true;\n                y = (za || null);\n                na(ya);\n            }\n        ;\n        }\n         else ea.error(\"rejected\", {\n            change_time: ya,\n            state_time: ca\n        });\n    ;\n        (ab && ma());\n    };\n    function ma() {\n        if (fa) {\n            va.inform(\"chat/tabs-changed\", va.get());\n        };\n    };\n    function na(xa) {\n        if ((xa === undefined)) {\n            xa = Math.max((o.getLastUserMessageTimestamp() || 1), (ca + 1));\n        };\n        ca = xa;\n        q.doSync();\n    };\n    function oa() {\n        var xa = (u.length - da);\n        if ((xa > 0)) {\n            u = u.filter(function(ya) {\n                return (ya.raised || (xa-- <= 0));\n            });\n        };\n    };\n    function pa(xa) {\n        for (var ya = 0; (ya < u.length); ya++) {\n            if ((u[ya].id == xa)) {\n                return ya\n            };\n        };\n        return -1;\n    };\n    function qa(xa, ya) {\n        var za = n.getThreadMetaNow(xa);\n        if (!za) {\n            return false\n        };\n        if (za.is_canonical_user) {\n            return sa(xa, ya);\n        }\n         else {\n            var ab = ra(xa);\n            if (ab) {\n                m.getServerThreadID(xa, function(bb) {\n                    if (ta(xa, bb)) {\n                        na();\n                        ma();\n                    }\n                ;\n                });\n            };\n            return ab;\n        }\n    ;\n    };\n    function ra(xa) {\n        if ((pa(xa) === -1)) {\n            u.push({\n                id: xa,\n                fragile: true\n            });\n            ea.log(\"open_fragile_tab\", {\n                tabs: JSON.stringify(u),\n                opened: xa,\n                window_id: r.getSessionID()\n            });\n            return true;\n        }\n    ;\n        return false;\n    };\n    function sa(xa, ya) {\n        var za = pa(xa);\n        if ((za != -1)) {\n            if (u[za].fragile) {\n                u.splice(za, 1);\n            }\n             else {\n                u[za].signatureID = ya;\n                return true;\n            }\n        \n        };\n        for (var ab = 0; (ab <= u.length); ab++) {\n            if (((ab == u.length) || u[ab].fragile)) {\n                u.splice(ab, 0, {\n                    id: xa,\n                    signatureID: ya\n                });\n                oa();\n                ea.log(\"open_tab\", {\n                    tabs: JSON.stringify(u),\n                    opened: xa,\n                    window_id: r.getSessionID()\n                });\n                return true;\n            }\n        ;\n        };\n    };\n    function ta(xa, ya) {\n        var za = pa(xa);\n        if (((za != -1) && u[za].fragile)) {\n            var ab = u[za];\n            ab.fragile = false;\n            ab.server_id = ya;\n            var bb = [];\n            u.forEach(function(cb) {\n                if ((cb.id != xa)) {\n                    if ((ab && cb.fragile)) {\n                        bb.push(ab);\n                        ab = null;\n                    }\n                ;\n                    bb.push(cb);\n                }\n            ;\n            });\n            if (ab) {\n                bb.push(ab);\n            };\n            u = bb;\n            ea.log(\"make_permanent\", {\n                tabs: JSON.stringify(u),\n                tab_id: xa,\n                window_id: r.getSessionID()\n            });\n            return true;\n        }\n    ;\n        return false;\n    };\n    function ua(xa) {\n        var ya = pa(xa);\n        if ((xa == v)) {\n            v = null;\n        };\n        if ((ya != -1)) {\n            u.splice(ya, 1);\n            ea.log(\"close_tab\", {\n                tabs: JSON.stringify(u),\n                closed: xa,\n                window_id: r.getSessionID()\n            });\n            return true;\n        }\n    ;\n        return false;\n    };\n    q.registerStateStorer(ha);\n    q.registerStateLoader(function(xa) {\n        if (ia(xa)) {\n            ma();\n        };\n    });\n    function va() {\n    \n    };\n    t(va, h, {\n        indexOf: function(xa) {\n            return pa(xa);\n        },\n        getTab: function(xa) {\n            l.isThreadID(xa);\n            var ya = this.indexOf(xa);\n            if ((ya > -1)) {\n                var za = u[ya];\n                return t({\n                }, za);\n            }\n        ;\n            return null;\n        },\n        getEmptyTab: function() {\n            for (var xa = 0; (xa < u.length); xa++) {\n                var ya = u[xa].id;\n                if (n.isNewEmptyLocalThread(ya)) {\n                    return ya\n                };\n            };\n            return null;\n        },\n        getServerTime: function() {\n            return z();\n        },\n        closeAllTabs: function() {\n            if (u.length) {\n                ea.log(\"close_all_tabs\", {\n                    closed_tabs: JSON.stringify(u),\n                    window_id: r.getSessionID()\n                });\n                u = [];\n                v = null;\n                if (x) {\n                    x = {\n                    };\n                };\n                na();\n                ma();\n            }\n        ;\n        },\n        closeFragileTabs: function() {\n            var xa = [];\n            for (var ya = 0; (ya < u.length); ya++) {\n                if ((u[ya].fragile && !n.isNewEmptyLocalThread(u[ya].id))) {\n                    xa.push(u[ya]);\n                    u.splice(ya);\n                    ma();\n                    break;\n                }\n            ;\n            };\n            ea.log(\"close_fragile_tabs\", {\n                tabs: JSON.stringify(u),\n                fragile_closed: xa,\n                window_id: r.getSessionID()\n            });\n        },\n        closeTab: function(xa, ya) {\n            l.isThreadID(xa);\n            var za = false;\n            if (x) {\n                delete x[xa];\n                za = true;\n            }\n        ;\n            la(function() {\n                if (ua(xa)) {\n                    za = true;\n                };\n                return za;\n            }, undefined, ya);\n        },\n        closeTabAndDemote: function(xa, ya, za) {\n            l.isThreadID(xa);\n            var ab = false;\n            if (x) {\n                delete x[xa];\n                ab = true;\n            }\n        ;\n            la(function() {\n                if (ua(xa)) {\n                    if (v) {\n                        var bb = pa(v);\n                        if ((bb > ya)) {\n                            var cb = u.splice(bb, 1)[0];\n                            u.splice(ya, 0, cb);\n                            v = null;\n                        }\n                    ;\n                    }\n                ;\n                    ab = true;\n                }\n            ;\n                return ab;\n            }, undefined, za);\n        },\n        raiseTab: function(xa, ya, za) {\n            l.isThreadID(xa);\n            var ab = false;\n            if ((x && ya)) {\n                x[xa] = true;\n                ab = true;\n            }\n        ;\n            if ((!ya && (xa === w))) {\n                (ab && ma());\n                return;\n            }\n        ;\n            la(function() {\n                if (qa(xa, za)) {\n                    ab = true;\n                };\n                var bb = pa(xa);\n                if (((bb != -1) && !u[bb].raised)) {\n                    u[bb].raised = true;\n                    ab = true;\n                    ea.log(\"raise_tab\", {\n                        tabs: JSON.stringify(u),\n                        raised: xa,\n                        window_id: r.getSessionID()\n                    });\n                }\n            ;\n                return ab;\n            });\n        },\n        get: function() {\n            var xa = u.map(function(ya) {\n                var za = t({\n                }, ya);\n                delete za.fragile;\n                if (x) {\n                    za.raised = x[za.id];\n                };\n                return za;\n            });\n            return {\n                tabs: xa,\n                promoted: v\n            };\n        },\n        openFragileTab: function(xa) {\n            l.isThreadID(xa);\n            if (ra(xa)) {\n                ma();\n            };\n        },\n        openTab: function(xa) {\n            l.isThreadID(xa);\n            la(qa.curry(xa));\n        },\n        lowerTab: function(xa) {\n            l.isThreadID(xa);\n            var ya = false;\n            if (x) {\n                delete x[xa];\n                ya = true;\n            }\n        ;\n            la(function() {\n                var za = pa(xa);\n                if (((za != -1) && u[za].raised)) {\n                    delete u[za].raised;\n                    ea.log(\"lower_tab\", {\n                        tabs: JSON.stringify(u),\n                        lowered: xa,\n                        window_id: r.getSessionID()\n                    });\n                    ya = true;\n                }\n            ;\n                return ya;\n            });\n        },\n        raiseAndPromoteTab: function(xa, ya, za, ab, bb) {\n            l.isThreadID(xa);\n            var cb = false;\n            if ((x && ya)) {\n                x[xa] = true;\n                cb = true;\n            }\n        ;\n            if ((!ya && (xa === w))) {\n                (cb && ma());\n                return;\n            }\n        ;\n            la(function() {\n                if (qa(xa, za)) {\n                    cb = true;\n                };\n                var db = pa(xa);\n                if (((db != -1) && ((!u[db].raised || (v != xa))))) {\n                    u[db].raised = true;\n                    v = xa;\n                    cb = true;\n                    ea.log(\"raise_and_promote_tab\", {\n                        tabs: JSON.stringify(u),\n                        promoted: xa,\n                        window_id: r.getSessionID()\n                    });\n                }\n            ;\n                return cb;\n            }, ab, bb);\n        },\n        promoteThreadInPlaceOfThread: function(xa, ya) {\n            l.isThreadID(xa);\n            l.isThreadID(ya);\n            la(function() {\n                var za = pa(xa), ab = pa(ya);\n                if ((v === ya)) {\n                    v = xa;\n                };\n                var bb = u[za];\n                u[za] = u[ab];\n                u[ab] = bb;\n                return true;\n            });\n        },\n        squelchTab: function(xa) {\n            l.isThreadID(xa);\n            w = xa;\n            this.lowerTab(xa);\n            ea.log(\"squelch_tab\", {\n                squelched: xa,\n                tabs: JSON.stringify(u),\n                window_id: r.getSessionID()\n            });\n        },\n        clearSquelchedTab: function() {\n            if (w) {\n                ea.log(\"unsquelch_tab\", {\n                    squelched: w,\n                    tabs: JSON.stringify(u),\n                    window_id: r.getSessionID()\n                });\n            };\n            w = null;\n        },\n        persistLocalRaised: function() {\n            if (x) {\n                la(function() {\n                    var xa = false;\n                    u.forEach(function(ya) {\n                        if ((ya.raised != x[ya.id])) {\n                            xa = true;\n                            if (x[ya.id]) {\n                                ya.raised = true;\n                            }\n                             else delete ya.raised;\n                        ;\n                        }\n                    ;\n                    });\n                    return xa;\n                });\n                ea.log(\"persist_local_raise\", {\n                    tabs: JSON.stringify(u),\n                    window_id: r.getSessionID()\n                });\n            }\n        ;\n        }\n    });\n    g.subscribe(k.DUMP_EVENT, function(xa, ya) {\n        ya.chat_tabs = {\n            promoted: v,\n            tabs: u.map(function(za) {\n                return t({\n                }, za);\n            }),\n            time: ca,\n            max_load_age: aa\n        };\n    });\n    function wa() {\n        var xa = i.ignoresRemoteTabRaise();\n        if ((xa && !x)) {\n            ea.log(\"start_ignore_remote_raise\");\n            x = {\n            };\n            ma();\n        }\n         else if ((!xa && x)) {\n            ea.log(\"stop_ignore_remote_raise\");\n            x = null;\n            ma();\n        }\n        \n    ;\n    };\n    i.subscribe(i.ON_CHANGED, wa);\n    wa();\n    ia(q.getInitial(), true);\n    if ((ca === 0)) {\n        ca = (z() - 600000);\n    };\n    fa = true;\n    e.exports = va;\n});\n__d(\"VideoCallPromo\", [\"ArbiterMixin\",\"AsyncRequest\",\"ChatConfig\",\"ChatVisibility\",\"LegacyContextualDialog\",\"CSS\",\"MercuryParticipants\",\"MercuryThreads\",\"ChatTabTemplates\",\"VideoCallCore\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"ChatConfig\"), j = b(\"ChatVisibility\"), k = b(\"LegacyContextualDialog\"), l = b(\"CSS\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryThreads\").get(), o = b(\"ChatTabTemplates\"), p = b(\"VideoCallCore\"), q = b(\"copyProperties\"), r = b(\"emptyFunction\");\n    function s() {\n        this._dialog = null;\n    };\n    function t(v) {\n        if (!((p.isSupported() && i.get(\"video.show_promo\")))) {\n            return false\n        };\n        var w = n.getCanonicalUserInThread(v);\n        if (!w) {\n            return false\n        };\n        return (j.isOnline() && p.availableForCall(w));\n    };\n    function u(v) {\n        new h().setURI(\"/ajax/chat/video/log_promo.php\").setData({\n            viewedUserID: v\n        }).setAllowCrossPageTransition(true).setErrorHandler(r).send();\n    };\n    q(s.prototype, g);\n    q(s.prototype, {\n        render: function(v, w) {\n            var x = t(w);\n            if (!x) {\n                return\n            };\n            var y = n.getCanonicalUserInThread(w);\n            m.get((\"fbid:\" + y), function(z) {\n                if (!z.call_promo) {\n                    return\n                };\n                var aa = o[\":fb:mercury:call:promo\"].build();\n                this._dialog = new k();\n                this._dialog.init(aa.getRoot()).setWidth(250).setAlignH(\"center\").setContext(v).show();\n                l.addClass(this._dialog.getRoot(), \"uiContextualDialogWithFooterArrowBottom\");\n                l.addClass(v, \"video_call_promo\");\n                u(n.getCanonicalUserInThread(w));\n                this.inform(\"chat/dialog-rendered\", {\n                    dialog: this,\n                    thread_id: w\n                });\n            }.bind(this));\n        },\n        updatePosition: function() {\n            if ((this._dialog && this._dialog.isShown())) {\n                this._dialog.updatePosition();\n            };\n        },\n        hide: function() {\n            if ((this._dialog && this._dialog.isShown())) {\n                this._dialog.hide();\n                this._dialog = null;\n            }\n        ;\n        }\n    });\n    e.exports = s;\n});\n__d(\"VideoCallTourDialog\", [\"ArbiterMixin\",\"LegacyContextualDialog\",\"CSS\",\"MercuryThreads\",\"ChatTabTemplates\",\"VideoCallCore\",\"VideoCallingTour\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"LegacyContextualDialog\"), i = b(\"CSS\"), j = b(\"MercuryThreads\").get(), k = b(\"ChatTabTemplates\"), l = b(\"VideoCallCore\"), m = b(\"VideoCallingTour\"), n = b(\"copyProperties\");\n    function o() {\n        this._dialog = null;\n    };\n    n(o.prototype, g);\n    n(o.prototype, {\n        render: function(p, q) {\n            var r = j.getCanonicalUserInThread(q);\n            if ((!r || !l.availableForCall(r))) {\n                return\n            };\n            var s = k[\":fb:mercury:call:tour\"].build();\n            this._dialog = new h();\n            this._dialog.init(s.getRoot()).setWidth(250).setAlignH(\"center\").setContext(p).show();\n            i.addClass(this._dialog.getRoot(), \"uiContextualDialogWithFooterArrowBottom\");\n            i.addClass(p, \"video_call_tour\");\n            this.inform(\"chat/dialog-rendered\", {\n                dialog: this,\n                thread_id: q\n            });\n            m.inform(\"videocallingtour/end\");\n        },\n        updatePosition: function() {\n            if ((this._dialog && this._dialog.isShown())) {\n                this._dialog.updatePosition();\n            };\n        },\n        hide: function() {\n            if ((this._dialog && this._dialog.isShown())) {\n                this._dialog.hide();\n                this._dialog = null;\n            }\n        ;\n        }\n    });\n    e.exports = o;\n});\n__d(\"ChatContextualDialogController\", [\"Event\",\"ArbiterMixin\",\"ChatTabModel\",\"VideoCallingTour\",\"VideoCallPromo\",\"VideoCallTourDialog\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"ChatTabModel\"), j = b(\"VideoCallingTour\"), k = b(\"VideoCallPromo\"), l = b(\"VideoCallTourDialog\"), m = b(\"copyProperties\"), n = b(\"setTimeoutAcrossTransitions\"), o = 60000, p = false, q = false, r = function(y, z) {\n        this._videoCallPromo = new k();\n        this._videoCallTour = new l();\n        this._threadID = y;\n        this._tabMainElement = z;\n        this._openDialog = null;\n        this._subscriptionTokens = [];\n        this._scrollListener = null;\n        this._timeout = null;\n    };\n    function s(y, event, z) {\n        if (y._openDialog) {\n            y._openDialog.updatePosition();\n        };\n    };\n    function t(y) {\n        if (y._openDialog) {\n            y._openDialog.updatePosition();\n        };\n    };\n    function u(y) {\n        if (y._openDialog) {\n            y._openDialog.hide();\n            y._openDialog = null;\n        }\n    ;\n        if (y._timeout) {\n            clearTimeout(y._timeout);\n            y._timeout = null;\n        }\n    ;\n        while (y._subscriptionTokens.length) {\n            y._subscriptionTokens.pop().unsubscribe();;\n        };\n        if (y._scrollListener) {\n            y._scrollListener.remove();\n            y._scrollListener = null;\n        }\n    ;\n    };\n    function v(y, event, z) {\n        if ((z.thread_id === y._threadID)) {\n            y._openDialog = z.dialog;\n            p = true;\n            x(y);\n            y._timeout = n(y.destroy.bind(y, y._threadID), o);\n            y._scrollListener = g.listen(window, \"scroll\", t.curry(y));\n        }\n    ;\n    };\n    function w(y, z) {\n        if (!y._openDialog) {\n            y._subscriptionTokens.push(z.subscribe(\"chat/dialog-rendered\", v.curry(y)));\n            z.render(y._tabMainElement, y._threadID);\n        }\n    ;\n    };\n    function x(y) {\n        y._subscriptionTokens.push(i.subscribe(\"chat/tabs-changed\", s.curry(y)), r.subscribe(\"dialog/close-all\", u.curry(y)));\n    };\n    m(r, h);\n    m(r.prototype, {\n        destroy: function() {\n            u(this);\n        },\n        tabFocused: function() {\n            if (q) {\n                w(this, this._videoCallTour);\n                return;\n            }\n        ;\n            if (!p) {\n                w(this, this._videoCallPromo);\n            };\n        },\n        tabNotActive: function() {\n            u(this);\n        },\n        hideVideoCallouts: function() {\n            u(this);\n        }\n    });\n    j.subscribe(\"videocallingtour/start\", function() {\n        q = true;\n        r.inform(\"dialog/close-all\");\n    });\n    j.subscribe(\"videocallingtour/end\", function() {\n        q = false;\n    });\n    e.exports = r;\n});\n__d(\"ChatPrivacyActionController\", [\"ChatVisibility\",\"JSLogger\",\"PresencePrivacy\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatVisibility\"), h = b(\"JSLogger\"), i = b(\"PresencePrivacy\"), j = b(\"copyProperties\"), k = function(l, m) {\n        this._userID = l;\n        this._logger = h.create(\"blackbird\");\n        this._getState = function() {\n            if (g.isOnline()) {\n                return (i.allows(this._userID) ? k.NORMAL : k.BLOCKED)\n            };\n            return k.OFFLINE;\n        };\n        this._togglePrivacy = function() {\n            var n = this._getState();\n            switch (this._getState()) {\n              case k.OFFLINE:\n                if (g.isOnline()) {\n                    this._logger.error(\"tabs_already_online\");\n                    break;\n                }\n            ;\n                this._logger.log(\"tabs_go_online\", {\n                    tab_id: this._userID\n                });\n                g.goOnline(function() {\n                    if (!i.allows(this._userID)) {\n                        if ((this._getState() !== k.BLOCKED)) {\n                            this._logger.error(\"privacy_action_controller_blocked_inconsistency\");\n                        };\n                        this._togglePrivacy();\n                    }\n                ;\n                }.bind(this));\n                break;\n              case k.BLOCKED:\n                i.allow(this._userID);\n                this._logger.log(\"tabs_unblock\", {\n                    tab_id: this._userID\n                });\n                break;\n              case k.NORMAL:\n                i.disallow(this._userID);\n                this._logger.log(\"tabs_block\", {\n                    tab_id: this._userID\n                });\n                break;\n            };\n        };\n        (function() {\n            var n = function() {\n                (m && m(this._getState()));\n            }.bind(this);\n            n();\n            this._subscribeToken = i.subscribe(\"privacy-changed\", n);\n        }.bind(this)).defer();\n    };\n    k.OFFLINE = \"offline\";\n    k.BLOCKED = \"blocked\";\n    k.NORMAL = \"normal\";\n    j(k.prototype, {\n        togglePrivacy: function() {\n            this._logger.log(\"gear_menu_toggle_privacy\", {\n                tab_id: this._userID\n            });\n            this._togglePrivacy();\n        },\n        destroy: function() {\n            i.unsubscribe(this._subscribeToken);\n        }\n    });\n    e.exports = k;\n});\n__d(\"MercuryTypingIndicator\", [\"Animation\",\"CSS\",\"DOM\",\"MercuryTypingReceiver\",\"MercuryParticipants\",\"Style\",\"ChatTabTemplates\",\"MercuryThreadInformer\",\"Tooltip\",\"copyProperties\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MercuryTypingReceiver\"), k = b(\"MercuryParticipants\"), l = b(\"Style\"), m = b(\"ChatTabTemplates\"), n = b(\"MercuryThreadInformer\").get(), o = b(\"Tooltip\"), p = b(\"copyProperties\"), q = b(\"cx\"), r = b(\"tx\"), s = [];\n    n.subscribe(\"messages-received\", function(v, w) {\n        s.forEach(function(x) {\n            var y = w[x._threadID];\n            (y && x.receivedMessages(y));\n        });\n    });\n    j.subscribe(\"state-changed\", function(v, w) {\n        s.forEach(function(x) {\n            var y = w[x._threadID];\n            (y && x._handleStateChanged(y));\n        });\n    });\n    function t(v) {\n        var w = m[\":fb:chat:conversation:message-group\"].build(), x = m[\":fb:mercury:typing-indicator:typing\"].build();\n        h.addClass(w.getRoot(), \"_50kd\");\n        var y = w.getNode(\"profileLink\");\n        o.set(y, v.name, \"left\");\n        y.href = v.href;\n        w.setNodeContent(\"profileName\", v.name);\n        w.setNodeProperty(\"profilePhoto\", \"src\", v.image_src);\n        var z = r._(\"{name} is typing...\", {\n            name: v.short_name\n        });\n        o.set(x.getRoot(), z, \"above\");\n        i.appendContent(w.getNode(\"messages\"), x.getRoot());\n        return w;\n    };\n    function u(v, w, x) {\n        this._animations = {\n        };\n        this._activeUsers = {\n        };\n        this._typingIndicator = w;\n        this._messagesView = x;\n        this._threadID = v;\n        this._subscription = j.subscribe(\"state-changed\", function(y, z) {\n            var aa = z[this._threadID];\n            (aa && this._handleStateChanged(aa));\n        }.bind(this));\n        s.push(this);\n    };\n    p(u.prototype, {\n        destroy: function() {\n            Object.keys(this._activeUsers).forEach(this._removeUserBubble.bind(this));\n            this._controller.destroy();\n            s.remove(this);\n        },\n        receivedMessages: function(v) {\n            v.forEach(function(w) {\n                if (!k.isAuthor(w.author)) {\n                    this._removeUserBubble(w.author);\n                };\n            }.bind(this));\n        },\n        _handleStateChanged: function(v) {\n            for (var w in this._activeUsers) {\n                if ((v.indexOf(w) === -1)) {\n                    this._slideOutUserBubble(w);\n                    delete this._activeUsers[w];\n                }\n            ;\n            };\n            if (v.length) {\n                k.getMulti(v, function(x) {\n                    var y = this._messagesView.isScrolledToBottom(), z = {\n                    };\n                    for (var aa in x) {\n                        var ba = this._activeUsers[aa];\n                        z[aa] = (ba || t(x[aa]).getRoot());\n                        if (!ba) {\n                            i.appendContent(this._typingIndicator, z[aa]);\n                        };\n                    };\n                    var ca = (Object.keys(z).length > 0);\n                    (y && this._messagesView.scrollToBottom(ca));\n                    this._activeUsers = z;\n                }.bind(this));\n            };\n        },\n        _removeUserBubble: function(v, w) {\n            var x = this._getCurrentAnimation(v, w);\n            if (x) {\n                x.animation.stop();\n                i.remove(x.elem);\n                delete this._animations[v];\n            }\n        ;\n            if ((v in this._activeUsers)) {\n                i.remove(this._activeUsers[v]);\n                delete this._activeUsers[v];\n            }\n        ;\n            (w && i.remove(w));\n        },\n        _slideOutUserBubble: function(v) {\n            var w = this._activeUsers[v];\n            if (this._getCurrentAnimation(v, w)) {\n                return;\n            }\n             else if (w) {\n                l.set(w, \"overflow\", \"hidden\");\n                var x = (new g(w)).from(\"opacity\", 1).from(\"height\", w.offsetHeight).to(\"height\", 0).to(\"opacity\", 0).ease(g.ease.end).duration(250).ondone(this._removeUserBubble.bind(this, v, w)).go();\n                this._animations[v] = {\n                    animation: x,\n                    elem: w\n                };\n            }\n            \n        ;\n        },\n        _getCurrentAnimation: function(v, w) {\n            if ((this._animations[v] && ((!w || (this._animations[v].elem === w))))) {\n                return this._animations[v]\n            };\n        }\n    });\n    e.exports = u;\n});\n__d(\"ChatTabMessagesView\", [\"JSXDOM\",\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"MercuryAttachment\",\"MercuryAttachmentRenderer\",\"ChannelConstants\",\"ChatConfig\",\"ChatVisibility\",\"createArrayFrom\",\"CSS\",\"DOM\",\"Env\",\"Event\",\"JoinableConversationMessageFilter\",\"LiveTimer\",\"MercuryActionTypeConstants\",\"MercuryAPIArgsSource\",\"MercuryLastMessageIndicator\",\"MercuryLogMessageType\",\"MercurySourceType\",\"shield\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreadMetadataRawRenderer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreads\",\"MercuryThreadlistConstants\",\"MercuryTypingIndicator\",\"MercuryMessageRenderer\",\"Parent\",\"MercuryParticipants\",\"React\",\"ServerTime\",\"MercuryStatusTemplates\",\"Style\",\"ChatTabTemplates\",\"MercuryThreadInformer\",\"Timestamp.react\",\"Tooltip\",\"VideoCallCore\",\"copyProperties\",\"csx\",\"cx\",\"formatDate\",\"isRTL\",\"removeFromArray\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"ArbiterMixin\"), k = b(\"MercuryAttachment\"), l = b(\"MercuryAttachmentRenderer\"), m = b(\"ChannelConstants\"), n = b(\"ChatConfig\"), o = b(\"ChatVisibility\"), p = b(\"createArrayFrom\"), q = b(\"CSS\"), r = b(\"DOM\"), s = b(\"Env\"), t = b(\"Event\"), u = b(\"JoinableConversationMessageFilter\"), v = b(\"LiveTimer\"), w = b(\"MercuryActionTypeConstants\"), x = b(\"MercuryAPIArgsSource\"), y = b(\"MercuryLastMessageIndicator\"), z = b(\"MercuryLogMessageType\"), aa = b(\"MercurySourceType\"), ba = b(\"shield\"), ca = b(\"MercuryMessages\").get(), da = b(\"MercuryServerRequests\").get(), ea = b(\"MercuryThreadMetadataRawRenderer\"), fa = b(\"MercuryThreadMetadataRenderer\").get(), ga = b(\"MercuryThreads\").get(), ha = b(\"MercuryThreadlistConstants\"), ia = b(\"MercuryTypingIndicator\"), ja = b(\"MercuryMessageRenderer\"), ka = b(\"Parent\"), la = b(\"MercuryParticipants\"), ma = b(\"React\"), na = b(\"ServerTime\"), oa = b(\"MercuryStatusTemplates\"), pa = b(\"Style\"), qa = b(\"ChatTabTemplates\"), ra = b(\"MercuryThreadInformer\").get(), sa = b(\"Timestamp.react\"), ta = b(\"Tooltip\"), ua = b(\"VideoCallCore\"), va = b(\"copyProperties\"), wa = b(\"csx\"), xa = b(\"cx\"), ya = b(\"formatDate\"), za = b(\"isRTL\"), ab = b(\"removeFromArray\"), bb = b(\"throttle\"), cb = b(\"tx\"), db, eb = 34, fb = ((1000 * 60) * 60), gb = 70, hb = null, ib = 20;\n    function jb(tb) {\n        return ya(new Date(tb), (n.get(\"24h_times\") ? \"H:i\" : \"g:ia\"));\n    };\n    function kb(tb) {\n        var ub = qa[\":fb:chat:conversation:message-group\"].build(), vb = ub.getNode(\"profileLink\"), wb = n.get(\"chat_tab_bubbles\"), xb = la.isAuthor(tb.author), yb = da.tokenizeThreadID(tb.thread_id), zb = (yb.type !== \"user\"), ac = (!xb || !wb);\n        if (!wb) {\n            ub.setNodeContent(\"timestamp\", jb(tb.timestamp));\n        };\n        q.conditionClass(ub.getRoot(), \"_50kd\", (!xb && wb));\n        q.conditionClass(ub.getRoot(), \"_50x4\", ((zb && !xb) && wb));\n        q.conditionShow(vb, ac);\n        la.get(tb.author, function(bc) {\n            if (ac) {\n                vb.href = bc.href;\n                var cc = (xb ? \"You\" : bc.name);\n                if ((!xb && wb)) {\n                    cc = g.div({\n                        className: \"_522l\"\n                    }, g.div({\n                        className: \"_522m\"\n                    }, jb(tb.timestamp)), bc.name);\n                };\n                ta.set(vb, cc, \"left\");\n                if (((!xb && wb) && zb)) {\n                    ub.setNodeContent(\"profileName\", bc.name);\n                };\n                ub.setNodeProperty(\"profilePhoto\", \"src\", bc.image_src);\n            }\n        ;\n        });\n        return ub;\n    };\n    function lb(tb) {\n        var ub = qa[\":fb:chat:conversation:message:event\"].build(), vb = n.get(\"chat_tab_bubbles\"), wb = jb(tb.timestamp);\n        if (vb) {\n            ub.getRoot().setAttribute(\"title\", wb);\n        }\n         else ub.setNodeContent(\"timestamp\", wb);\n    ;\n        ja.renderLogMessage(ub.getNode(\"icon\"), ub.getNode(\"message\"), ub.getNode(\"attachment\"), tb);\n        var xb = nb(tb);\n        if (xb) {\n            r.appendContent(ub.getNode(\"message\"), xb);\n        };\n        return ub.getRoot();\n    };\n    function mb(tb, ub) {\n        if (!n.get(\"chat_tab_bubbles\")) {\n            return\n        };\n        if ((hb === null)) {\n            var vb = ub.childNodes[0];\n            pa.set(ub, \"overflow\", \"scroll\");\n            hb = (vb.clientWidth - gb);\n            pa.set(ub, \"overflow\", \"\");\n        }\n    ;\n        if (!q.hasClass(tb, \"_kso\")) {\n            var wb = r.scry(tb, \"._kso\");\n            if ((wb.length === 1)) {\n                tb = wb[0];\n            }\n             else return\n        ;\n        }\n    ;\n        pa.set(tb, \"max-width\", (hb + \"px\"));\n        var xb, yb, zb = tb.firstChild;\n        if (((tb.childNodes.length === 1) && zb.getAttribute(\"data-measureme\"))) {\n            xb = zb.getClientRects();\n            var ac = zb.offsetHeight;\n            if (((xb && (xb.length > 1)) && (xb[0].height < ac))) {\n                yb = true;\n                if (!db) {\n                    r.remove(zb);\n                    db = tb.offsetWidth;\n                    r.appendContent(tb, zb);\n                }\n            ;\n                var bc = zb.offsetWidth, cc = ((tb.offsetWidth - bc) - db);\n                if ((cc > 0)) {\n                    pa.set(tb, \"max-width\", (bc + \"px\"));\n                };\n            }\n        ;\n        }\n    ;\n        var dc = ka.byClass(tb, \"_50x4\");\n        if (dc) {\n            q.conditionClass(dc, \"_51lo\", (xb ? !yb : (tb.offsetHeight < eb)));\n        };\n    };\n    function nb(tb) {\n        var ub, vb;\n        if ((tb.log_message_type == z.VIDEO_CALL)) {\n            if ((tb.log_message_data.event_name == \"install_canceled\")) {\n                ub = r.tx._(\"Retry setup and call back.\");\n                vb = \"callback_cancelinstall_link\";\n                return ob(ub, tb.thread_id, tb.log_message_data.to, vb);\n            }\n             else if (((!tb.log_message_data.event_name && (tb.log_message_data.callee == la.user)) && !tb.log_message_data.answered)) {\n                ub = r.tx._(\"Call Back\");\n                vb = \"callback_link\";\n                return ob(ub, tb.thread_id, tb.log_message_data.caller.split(\":\")[1], vb);\n            }\n            \n        \n        };\n        return null;\n    };\n    function ob(tb, ub, vb, wb) {\n        if (ua.isSupported()) {\n            var xb = (!o.isOnline() || !ua.availableForCall(vb)), yb = r.create(\"a\", {\n                href: \"#\",\n                className: \"callBackLink\"\n            }, tb);\n            if (xb) {\n                q.hide(yb);\n            };\n            yb.setAttribute(\"data-gt\", JSON.stringify({\n                videochat: \"clicked_callback_link\"\n            }));\n            t.listen(yb, \"click\", function() {\n                rb.inform(\"video-call-clicked\", {\n                    userID: vb,\n                    threadID: ub,\n                    clickSource: wb\n                });\n            });\n            return yb;\n        }\n    ;\n        return null;\n    };\n    function pb(tb) {\n        var ub = qa[\":fb:mercury:chat:message:forward\"].build(), vb = ub.getNode(\"forwardText\");\n        if (vb) {\n            q.hide(ub.getRoot());\n            fa.renderTitanLink(tb.thread_id, ub.getNode(\"forwardLink\"), q.show.bind(q, ub.getRoot()));\n            if ((tb.forward_count > 1)) {\n                r.appendContent(vb, cb._(\"{count} forwarded messages\", {\n                    count: tb.forward_count\n                }));\n            }\n             else r.appendContent(vb, \"1 forwarded message\");\n        ;\n        }\n    ;\n        return ub.getRoot();\n    };\n    var qb = [];\n    function rb(tb, ub, vb, wb, xb, yb, zb) {\n        this.loadingIcon = xb;\n        this.threadID = tb;\n        this.sheetController = ub;\n        this.scrollContainer = vb;\n        this.conversationElem = wb;\n        this.messageElements = {\n        };\n        this.messageGroup = null;\n        this.prevMessage = null;\n        v.restart((na.get() / 1000));\n        this._fetchMultiplier = 1;\n        this._oldestMessageDisplayedTimestamp = null;\n        this._loadingMoreMessages = false;\n        this._currentMessageCount = 0;\n        this._hasReachedClearedMessages = false;\n        var ac = ha.MESSAGE_TIMESTAMP_THRESHOLD;\n        this._oldestMessageDisplayedTimestamp = (Date.now() - ac);\n        qb.push(this);\n        this._subscription = i.subscribe(\"overflow-applied-to-body\", this.scrollToBottom.bind(this));\n        t.listen(this.scrollContainer, \"scroll\", bb(this.scrolling, 50, this));\n        var bc = n.get(\"chat_tab_bubbles\");\n        this.lastMessageIndicator = new y(this.threadID, yb, bc, this);\n        if (bc) {\n            this.typingIndicator = new ia(this.threadID, zb, this);\n        };\n        ca.getThreadMessagesRange(this.threadID, 0, ha.RECENT_MESSAGES_LIMIT, this._updateTimestamp.bind(this));\n        this.rerender();\n    };\n    va(rb, j);\n    va(rb.prototype, {\n        scrolling: function() {\n            if ((((!this._loadingMoreMessages && this.isScrolledNearTop()) && !this.isScrolledToBottom()) && !this._hasReachedClearedMessages)) {\n                this.loadMoreMessages();\n            };\n            if (!this._newMessagesSheetOpened) {\n                return\n            };\n            if (this.isScrolledToBottom()) {\n                this.sheetController.closeNewMessagesSheet();\n                this._newMessagesSheetOpened = false;\n            }\n        ;\n        },\n        destroy: function() {\n            r.empty(this.conversationElem);\n            this._subscription.unsubscribe();\n            ab(qb, this);\n            (this.lastMessageIndicator && this.lastMessageIndicator.destroy());\n            this.destroyed = true;\n        },\n        _appendMessage: function(tb) {\n            if ((tb == this.prevMessage)) {\n                return\n            };\n            var ub = ha, vb = ub.GROUPING_THRESHOLD, wb = ((tb.action_type == w.LOG_MESSAGE) && (tb.log_message_type == z.SERVER_ERROR));\n            if (tb.is_cleared) {\n                this._hasReachedClearedMessages = true;\n                return;\n            }\n        ;\n            var xb;\n            if ((this.prevMessage !== null)) {\n                xb = (tb.timestamp - this.prevMessage.timestamp);\n            }\n             else xb = Infinity;\n        ;\n            if ((!wb && ((xb >= fb)))) {\n                var yb = Math.round((tb.timestamp / 1000)), zb = tb.timestamp_datetime, ac = qa[\":fb:chat:conversation:date-break\"].build();\n                ma.renderComponent(sa({\n                    time: yb,\n                    verbose: zb,\n                    text: zb\n                }), ac.getNode(\"date\"));\n                r.appendContent(this.conversationElem, ac.getRoot());\n                this.messageGroup = null;\n            }\n        ;\n            if ((tb.action_type == w.LOG_MESSAGE)) {\n                r.appendContent(this.conversationElem, lb(tb));\n                this.messageGroup = null;\n                this.prevMessage = tb;\n                return;\n            }\n        ;\n            var bc = n.get(\"chat_tab_bubbles\");\n            if ((((!this.messageGroup || (bc && (tb.author !== la.user))) || (this.prevMessage.author != tb.author)) || (this.prevMessage.timestamp < (tb.timestamp - vb)))) {\n                this.messageGroup = kb(tb);\n                r.appendContent(this.conversationElem, this.messageGroup.getRoot());\n            }\n        ;\n            var cc = this._makeSingleMessage(tb);\n            this.messageElements[tb.message_id] = cc;\n            r.appendContent(this.messageGroup.getNode(\"messages\"), cc);\n            mb(cc, this.scrollContainer);\n            this.prevMessage = tb;\n        },\n        rerender: function() {\n            if (!this._oldestMessageDisplayedTimestamp) {\n                return\n            };\n            var tb = (this._finishedFetchingMoreMessages && this.scrollContainer.scrollHeight), ub = (this._finishedFetchingMoreMessages && this.scrollContainer.scrollTop), vb = this.isScrolledToBottom();\n            r.empty(this.conversationElem);\n            this.messageElements = {\n            };\n            this.messageGroup = null;\n            this.prevMessage = null;\n            var wb = ca.getThreadMessagesSinceTimestamp(this.threadID, this._oldestMessageDisplayedTimestamp);\n            this._renderOlderMessages(wb, tb, ub, vb);\n            this._finishedFetchingMoreMessages = false;\n        },\n        update: function(tb) {\n            for (var ub in tb) {\n                var vb = this.messageElements[ub];\n                if (vb) {\n                    var wb = this.isScrolledToBottom(), xb = this._makeSingleMessage(ca.getMessagesFromIDs([ub,])[0]);\n                    this.messageElements[ub] = xb;\n                    r.replace(vb, xb);\n                    mb(xb, this.scrollContainer);\n                    if (wb) {\n                        this.scrollToBottom();\n                    };\n                }\n            ;\n            };\n        },\n        _getLoadingHeight: function() {\n            return (this.loadingHeight || this.loadingIcon.clientHeight);\n        },\n        _appendMessages: function(tb) {\n            tb.forEach(this._appendMessage.bind(this));\n            (this.lastMessageIndicator && this.lastMessageIndicator.setLastMessage(this.prevMessage));\n        },\n        _appendNewMessages: function(tb) {\n            tb = u.filterMessages(function(wb) {\n                this.sheetController.openUserJoinStatusSheet(wb);\n            }.bind(this), tb, true);\n            var ub = this.isScrolledToBottom(), vb = this._messagesOnlySentFromSelf(tb);\n            this._appendMessages(tb);\n            if (ub) {\n                this.scrollToBottom();\n            }\n             else if (!vb) {\n                this.sheetController.openNewMessagesSheet();\n                this._newMessagesSheetOpened = true;\n            }\n            \n        ;\n        },\n        _messagesOnlySentFromSelf: function(tb) {\n            for (var ub = 0; (ub < tb.length); ub++) {\n                if ((tb[ub].author !== la.user)) {\n                    return false\n                };\n            };\n            return true;\n        },\n        _renderOlderMessages: function(tb, ub, vb, wb) {\n            if (!tb) {\n                return\n            };\n            tb = u.filterMessages(function(xb) {\n                this.sheetController.openUserJoinStatusSheet(xb);\n            }.bind(this), tb, false);\n            this._appendMessages(tb);\n            if (wb) {\n                this.scrollToBottom();\n            }\n             else if (this._finishedFetchingMoreMessages) {\n                this.scrollToPosition((((this.scrollContainer.scrollHeight - ub) - this.loadingHeight) + vb));\n            }\n        ;\n        },\n        _updateTimestamp: function(tb) {\n            if ((tb && tb.length)) {\n                this._oldestMessageDisplayedTimestamp = tb[0].timestamp;\n                this._currentMessageCount = tb.length;\n            }\n        ;\n            this._loadingMoreMessages = false;\n            this._finishedFetchingMoreMessages = true;\n            q.hide(this.loadingIcon);\n        },\n        isScrolledToBottom: function() {\n            var tb = this.scrollContainer;\n            return ((tb.scrollTop + tb.clientHeight) >= (tb.scrollHeight - ib));\n        },\n        isScrolledNearTop: function() {\n            return (this.scrollContainer.scrollTop < this.scrollContainer.clientHeight);\n        },\n        scrollToBottom: function(tb) {\n            this.scrollToPosition(this.scrollContainer.scrollHeight, tb);\n        },\n        scrollToPosition: function(tb, ub) {\n            (this._scrollTopAnimation && this._scrollTopAnimation.stop());\n            if ((ub === true)) {\n                this._scrollTopAnimation = (new h(this.scrollContainer)).to(\"scrollTop\", tb).ease(h.ease.end).duration(400).go();\n            }\n             else this.scrollContainer.scrollTop = tb;\n        ;\n        },\n        loadMoreMessages: function() {\n            if ((ca.hasLoadedExactlyNMessages(this.threadID, this._currentMessageCount) && ca.hasLoadedAllMessages(this.threadID))) {\n                return\n            };\n            if (ga.isNewEmptyLocalThread(this.threadID)) {\n                return\n            };\n            q.show(this.loadingIcon);\n            this.loadingHeight = this._getLoadingHeight();\n            this._loadingMoreMessages = true;\n            if ((this._fetchMultiplier < 10)) {\n                this._fetchMultiplier += 1;\n            };\n            var tb = (ha.RECENT_MESSAGES_LIMIT * this._fetchMultiplier), ub = (this._currentMessageCount + tb), vb = ca.hasLoadedNMessages(this.threadID, ub);\n            ca.getThreadMessagesRange(this.threadID, 0, ub, this._updateTimestamp.bind(this), null, x.CHAT);\n            if (vb) {\n                this.rerender();\n            };\n        },\n        _makeSingleMessage: function(tb) {\n            var ub = this._renderSingleMessage(tb);\n            q.addClass(ub, \"_55r0\");\n            return ub;\n        },\n        _renderSingleMessage: function(tb) {\n            var ub = qa[\":fb:chat:conversation:message\"].render(), vb = n.get(\"chat_tab_bubbles\");\n            if ((vb && la.isAuthor(tb.author))) {\n                ub.setAttribute(\"title\", jb(tb.timestamp));\n            };\n            if (tb.subject) {\n                var wb = qa[\":fb:chat:conversation:message:subject\"].render();\n                r.setContent(wb, tb.subject);\n                r.appendContent(ub, wb);\n            }\n        ;\n            function xb(fc) {\n                if (vb) {\n                    fc = r.create(\"span\", {\n                        \"data-measureme\": 1\n                    }, fc);\n                };\n                return fc;\n            };\n            if (tb.is_filtered_content) {\n                var yb = oa[\":fb:mercury:filtered-message\"].build();\n                r.appendContent(ub, xb(yb.getRoot()));\n                return ub;\n            }\n        ;\n            if ((tb.body.substr(0, 4) == \"?OTR\")) {\n                r.setContent(ub, xb(\"[encrypted message]\"));\n                q.addClass(ub, \"_542c\");\n            }\n             else {\n                q.addClass(ub, (za(tb.body) ? \"direction_rtl\" : \"direction_ltr\"));\n                var zb = ja.formatMessageBody(tb.body);\n                r.appendContent(ub, xb(zb));\n            }\n        ;\n            if (tb.has_attachment) {\n                var ac = g.div(null), bc = this._appendMessageAttachments(ac, tb);\n                if (((vb && !tb.body) && !bc)) {\n                    return ac\n                };\n                r.appendContent(ub, p(ac.childNodes));\n            }\n        ;\n            if (tb.forward_count) {\n                r.appendContent(ub, pb(tb));\n            };\n            if (tb.is_spoof_warning) {\n                var cc = qa[\":fb:chat:conversation:message:undertext\"].build();\n                r.appendContent(cc.getNode(\"message\"), ub);\n                la.get(tb.author, function(fc) {\n                    fa.renderChatSpoofWarning(cc.getNode(\"status\"), tb.is_spoof_warning, fc);\n                });\n                return cc.getRoot();\n            }\n        ;\n            var dc = ea.renderStatusIndicator(tb.status, tb.error_data, ba(ca.resendMessage, ca, tb));\n            if (dc) {\n                var ec = qa[\":fb:chat:conversation:message:status\"].build();\n                r.appendContent(ec.getNode(\"message\"), ub);\n                r.appendContent(ec.getNode(\"status\"), dc);\n                return ec.getRoot();\n            }\n        ;\n            return ub;\n        },\n        _appendMessageAttachments: function(tb, ub) {\n            var vb = 0, wb = ub.attachments;\n            wb.sort(l.booleanLexicographicComparator([l.isPhotoAttachment,l.isShareAttachment,l.isFileAttachment,l.isErrorAttachment,]));\n            if ((ub.raw_attachments && (ub.raw_attachments.length > 0))) {\n                wb = k.convertRaw(ub.raw_attachments);\n            };\n            var xb = l.renderPhotoAttachments(wb.filter(l.isPhotoAttachment), ub, 176, 4);\n            if (xb) {\n                r.appendContent(tb, xb);\n            };\n            for (var yb = 0; (yb < wb.length); yb++) {\n                if (l.isPhotoAttachment(wb[yb])) {\n                    vb = 1;\n                    continue;\n                }\n            ;\n                var zb = l.renderAttachment(true, wb[yb], ub);\n                (zb.error && r.appendContent(tb, zb.error));\n                (zb.content && r.appendContent(tb, zb.content));\n                vb |= zb.bubblePreferred;\n            };\n            var ac = r.scry(tb, \"img\");\n            ac.forEach(function(bc) {\n                t.listen(bc, \"load\", ba(this._thumbLoaded, this, bc));\n            }.bind(this));\n            return !!vb;\n        },\n        _thumbLoaded: function(tb) {\n            var ub = (this.scrollContainer.scrollTop + this.scrollContainer.clientHeight);\n            if (((ub + tb.offsetHeight) >= this.scrollContainer.scrollHeight)) {\n                this.scrollToBottom();\n            };\n        }\n    });\n    ra.subscribe(\"messages-reordered\", function(tb, ub) {\n        qb.forEach(function(vb) {\n            (ub[vb.threadID] && vb.rerender());\n        });\n    });\n    ra.subscribe(\"messages-updated\", function(tb, ub) {\n        qb.forEach(function(vb) {\n            (ub[vb.threadID] && vb.update(ub[vb.threadID]));\n        });\n    });\n    ra.subscribe(\"messages-received\", function(tb, ub) {\n        qb.forEach(function(vb) {\n            var wb = ub[vb.threadID];\n            if ((wb && wb.length)) {\n                vb._currentMessageCount += wb.length;\n            };\n            (wb && vb._appendNewMessages(wb));\n        });\n    });\n    i.subscribe(m.getArbiterType(\"chat_event\"), function(tb, ub) {\n        if (sb(ub.obj)) {\n            var vb = (((s.user == ub.obj.from)) ? ub.obj.to : ub.obj.from), wb = ga.getThreadIdForUser(vb), xb = qb.filter(function(ac) {\n                return (ac.threadID === wb);\n            });\n            if ((xb.length > 0)) {\n                var yb = xb[0], zb = ca.constructLogMessageObject(aa.CHAT_WEB, wb, z.VIDEO_CALL, ub.obj);\n                zb.author = (\"fbid:\" + ub.obj.from);\n                yb._appendNewMessages([zb,]);\n            }\n        ;\n        }\n    ;\n    });\n    function sb(tb) {\n        return (((tb.event_name === \"installing\") || (tb.event_name === \"install_canceled\")));\n    };\n    e.exports = rb;\n});\n__d(\"MercuryPeopleSuggestions\", [\"KeyedCallbackManager\",\"MercuryServerDispatcher\",\"OrderedFriendsList\",\"ShortProfiles\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = b(\"MercuryServerDispatcher\"), i = b(\"OrderedFriendsList\"), j = b(\"ShortProfiles\"), k = b(\"arrayContains\"), l = new g(), m = 6;\n    function n(s) {\n        return s.sort().join(\",\");\n    };\n    function o(s, t) {\n        if ((s.length < m)) {\n            var u = i.getList();\n            for (var v = 0; (v < u.length); v++) {\n                if (!((k(s, u[v]) || k(t, u[v])))) {\n                    s.push(u[v]);\n                    if ((s.length >= m)) {\n                        break;\n                    };\n                }\n            ;\n            };\n        }\n    ;\n        return s;\n    };\n    function p(s) {\n        h.trySend(\"/ajax/chat/people_suggest.php\", s);\n    };\n    function q(s, t, u) {\n        s = s.filter(function(w) {\n            return !k(t, w);\n        });\n        var v = o(s, t);\n        j.getMulti(v, function() {\n            u(v);\n        });\n    };\n    var r = {\n        getPeopleSuggestions: function(s, t) {\n            if (s) {\n                if (s.length) {\n                    var u = n(s), v = l.executeOrEnqueue(u, function(x) {\n                        q(x, s, t);\n                    }), w = l.getUnavailableResources(v);\n                    if (w.length) {\n                        p({\n                            query: u,\n                            size: m\n                        });\n                    };\n                    return v;\n                }\n                 else q([], [], t);\n            \n            };\n            return 0;\n        },\n        handleUpdate: function(s) {\n            if (s.query) {\n                var t = (s.suggestions || \"\"), u = (t.length ? t.split(\",\") : []);\n                l.setResource(s.query, u);\n            }\n        ;\n        }\n    };\n    h.registerEndpoints({\n        \"/ajax/chat/people_suggest.php\": {\n            mode: h.IMMEDIATE,\n            handler: r.handleUpdate\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatTabPeopleSuggestionView\", [\"ChatPeopleSuggestionList.react\",\"ChatQuietLinks\",\"CSS\",\"DOM\",\"Event\",\"MercuryPeopleSuggestions\",\"MercuryIDs\",\"React\",\"ShortProfiles\",\"Style\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatPeopleSuggestionList.react\"), h = b(\"ChatQuietLinks\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Event\"), l = b(\"MercuryPeopleSuggestions\"), m = b(\"MercuryIDs\"), n = b(\"React\"), o = b(\"ShortProfiles\"), p = b(\"Style\"), q = b(\"copyProperties\");\n    function r(s, t, u) {\n        this.sheetController = s;\n        this.viewNode = t;\n        this.loadingIcon = u;\n        this.addFriendsSheet = s.getAddFriendsTabSheet();\n        this.mercuryTypeahead = (this.addFriendsSheet && this.addFriendsSheet._typeahead);\n        this.typeaheadInput = (this.mercuryTypeahead && this.mercuryTypeahead._input);\n        this.typeaheadView = (this.mercuryTypeahead && this.mercuryTypeahead.getTypeahead().getView());\n        var v = this.showSuggestions.bind(this);\n        if (this.typeaheadInput) {\n            k.listen(this.typeaheadInput, \"focus\", v);\n        };\n        if (this.typeaheadView) {\n            this.typeaheadView.subscribe(\"reset\", v);\n            this.typeaheadView.subscribe(\"render\", this.clearSuggestions.bind(this));\n        }\n    ;\n        this.tokenizer = (this.mercuryTypeahead && this.mercuryTypeahead.getTokenizer());\n        if (this.tokenizer) {\n            this.tokenizer.subscribe(\"removeToken\", v);\n        };\n        this.showSuggestions();\n    };\n    q(r.prototype, {\n        addSelectedParticipant: function(s) {\n            var t = o.getNow(s);\n            if ((t && this.tokenizer)) {\n                this.tokenizer.addToken(this.tokenizer.createToken({\n                    uid: s,\n                    text: t.name\n                }));\n                this.showSuggestions();\n            }\n        ;\n        },\n        showSuggestions: function() {\n            if (this.mercuryTypeahead) {\n                var s = this.mercuryTypeahead.getSelectedParticipantIDs();\n                s = s.map(m.getUserIDFromParticipantID);\n                j.empty(this.viewNode);\n                i.show(this.loadingIcon);\n                l.getPeopleSuggestions(s, function(t) {\n                    var u = g({\n                        uids: t,\n                        onClick: this.addSelectedParticipant.bind(this)\n                    });\n                    i.hide(this.loadingIcon);\n                    n.renderComponent(u, this.viewNode);\n                    h.removeAllHrefs(this.viewNode);\n                }.bind(this));\n            }\n        ;\n        },\n        clearSuggestions: function() {\n            j.empty(this.viewNode);\n            i.hide(this.loadingIcon);\n            p.set(this.viewNode, \"margin-top\", 0);\n        },\n        destroy: function() {\n            this.clearSuggestions();\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatAddFriendsTabSheetRawRenderer\", [\"ContextualTypeaheadView\",\"DOM\",\"Event\",\"MercuryTypeahead\",\"ChatTabTemplates\",\"tx\",\"MercuryDataSourceWrapper\",], function(a, b, c, d, e, f) {\n    var g = b(\"ContextualTypeaheadView\"), h = b(\"DOM\"), i = b(\"Event\"), j = b(\"MercuryTypeahead\"), k = b(\"ChatTabTemplates\"), l = b(\"tx\"), m = b(\"MercuryDataSourceWrapper\").source, n = {\n        render: function(o, p, q, r, s, t) {\n            var u = (t ? k[\":fb:mercury:chat:tab-sheet:add-friends-empty-tab\"].build() : k[\":fb:mercury:chat:tab-sheet:add-friends\"].build()), v = new j(m, g);\n            v.setExcludedParticipants(r.participants);\n            if (!t) {\n                v.setPlaceholder(\"Add friends to this chat\");\n            };\n            v.build();\n            h.replace(u.getNode(\"participantsTypeahead\"), v.getElement());\n            h.setContent(q, u.getRoot());\n            v.getTokenizer().adjustWidth();\n            v.focus();\n            if (!t) {\n                var w = function() {\n                    var x = v.getSelectedParticipantIDs();\n                    if (x.length) {\n                        s(x);\n                    };\n                    p.close(o);\n                };\n                i.listen(u.getNode(\"doneButton\"), \"click\", w);\n            }\n        ;\n            return v;\n        }\n    };\n    e.exports = n;\n});\n__d(\"MultiChatController\", [\"Arbiter\",\"AsyncSignal\",\"copyProperties\",\"Form\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncSignal\"), i = b(\"copyProperties\"), j = b(\"Form\"), k = b(\"MercuryMessages\").get(), l = b(\"MercuryServerRequests\").get(), m = b(\"MercuryThreads\").get();\n    function n() {\n    \n    };\n    i(n, {\n        subscribe: function(o, p) {\n            o.subscribe(\"confirm\", function() {\n                this.createGroupThreadFromChooserDialog(o, p);\n            }.bind(this));\n        },\n        createGroupThreadFromChooserDialog: function(o, p) {\n            var q = j.serialize(o.getRoot()), r = JSON.parse(q.profileChooserItems), s = [];\n            for (var t in r) {\n                if (r[t]) {\n                    s.push(t);\n                };\n            };\n            var u = n.createThreadForFBIDs(s);\n            l.subscribe(\"update-thread-ids\", function(v, w) {\n                for (var x in w) {\n                    if ((w[x] == u)) {\n                        new h(\"/ajax/groups/chat/log\", {\n                            group_id: p,\n                            message_id: x\n                        }).send();\n                    };\n                };\n            });\n            o.hide();\n        },\n        createThreadForTokens: function(o) {\n            if (!o.length) {\n                return\n            };\n            var p;\n            if ((o.length == 1)) {\n                p = (\"user:\" + o[0].split(\":\")[1]);\n            }\n             else p = (\"root:\" + k.generateNewClientMessageID(Date.now()));\n        ;\n            m.createNewLocalThread(p, o);\n            g.inform(\"chat/open-tab\", {\n                thread_id: p\n            });\n            return p;\n        },\n        createThreadForFBIDs: function(o) {\n            var p = [];\n            for (var q = 0; (q < o.length); q++) {\n                p.push((\"fbid:\" + o[q]));;\n            };\n            return n.createThreadForTokens(p);\n        }\n    });\n    e.exports = n;\n});\n__d(\"ChatAddFriendsTabSheet\", [\"Arbiter\",\"ChatAddFriendsTabSheetRawRenderer\",\"MercuryLogMessageType\",\"MercurySourceType\",\"MercuryMessages\",\"MultiChatController\",\"Style\",\"MercuryThreads\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatAddFriendsTabSheetRawRenderer\"), i = b(\"MercuryLogMessageType\"), j = b(\"MercurySourceType\"), k = b(\"MercuryMessages\").get(), l = b(\"MultiChatController\"), m = b(\"Style\"), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\");\n    function p(s, t, u) {\n        this._threadID = s;\n        this._rootElement = t;\n        this._sheetView = u;\n        this._typeahead = null;\n    };\n    o(p.prototype, {\n        render: function() {\n            n.getThreadMeta(this._threadID, function(s) {\n                var t = (s.is_canonical_user ? q : r);\n                this._typeahead = h.render(this, this._sheetView, this._rootElement, s, t.curry(s), n.isNewEmptyLocalThread(this._threadID));\n                this._typeahead.subscribe(\"resize\", function() {\n                    this._sheetView.inform(\"resize\");\n                }.bind(this));\n            }.bind(this));\n        },\n        getParticipants: function() {\n            if (!this._typeahead) {\n                return null\n            };\n            return this._typeahead.getSelectedParticipantIDs();\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"add_friends_type\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        },\n        getHeight: function() {\n            return m.get(this._rootElement, \"height\");\n        }\n    });\n    function q(s, t) {\n        var u = s.participants;\n        l.createThreadForTokens(u.concat(t));\n    };\n    function r(s, t) {\n        var u = s.thread_id;\n        if (n.isEmptyLocalThread(u)) {\n            n.addParticipantsToThreadLocally(u, t);\n            g.inform(\"chat/open-tab\", {\n                thread_id: u\n            });\n        }\n         else {\n            k.sendMessage(k.constructLogMessageObject(j.CHAT_WEB, u, i.SUBSCRIBE, {\n                added_participants: t\n            }));\n            g.inform(\"chat/open-tab\", {\n                thread_id: u\n            });\n        }\n    ;\n    };\n    e.exports = p;\n});\n__d(\"ChatNameConversationTabSheetRawRenderer\", [\"DOM\",\"Event\",\"Input\",\"Keys\",\"ChatTabTemplates\",\"fbt\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"Event\"), i = b(\"Input\"), j = b(\"Keys\"), k = b(\"ChatTabTemplates\"), l = b(\"fbt\"), m = {\n        render: function(n, o, p, q, r, s) {\n            var t = k[\":fb:mercury:chat:tab-sheet:name-conversation\"].build(), u = t.getNode(\"nameInput\"), v = t.getNode(\"doneButton\"), w = \"Done\", x = \"Hide\", y = q.name;\n            if (y) {\n                i.setValue(u, y);\n            }\n             else g.setContent(v, x);\n        ;\n            var z = function() {\n                var aa = i.getValue(u);\n                if (aa) {\n                    r(aa);\n                };\n                s();\n                o.close(n);\n            };\n            h.listen(u, \"input\", function() {\n                g.setContent(v, ((i.getValue(u).length === 0) ? x : w));\n            });\n            h.listen(v, \"click\", z);\n            h.listen(u, \"keyup\", function(aa) {\n                if ((aa.keyCode === j.RETURN)) {\n                    z();\n                    return false;\n                }\n            ;\n            });\n            g.setContent(p, t.getRoot());\n            (!n.isAutomatic() && u.focus());\n        }\n    };\n    e.exports = m;\n});\n__d(\"ChatNameConversationTabSheet\", [\"AsyncRequest\",\"ChatNameConversationTabSheetRawRenderer\",\"MercuryAPIArgsSource\",\"MercuryLogMessageType\",\"MercurySourceType\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"ChatNameConversationTabSheetRawRenderer\"), i = b(\"MercuryAPIArgsSource\"), j = b(\"MercuryLogMessageType\"), k = b(\"MercurySourceType\"), l = b(\"MercuryMessages\").get(), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\"), p = \"/ajax/chat/multichat/name_conversation/dismiss.php\";\n    function q(t, u, v) {\n        this._threadID = t;\n        this._rootElement = u;\n        this._sheetView = v;\n        this._isAutomatic = false;\n    };\n    o(q.prototype, {\n        render: function() {\n            n.getThreadMeta(this._threadID, function(t) {\n                h.render(this, this._sheetView, this._rootElement, t, r.curry(t), s.curry(t));\n            }.bind(this));\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"name_conversation_type\";\n        },\n        open: function(t) {\n            this._isAutomatic = t;\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        },\n        isAutomatic: function() {\n            return this._isAutomatic;\n        }\n    });\n    function r(t, u) {\n        var v = t.name;\n        if ((((u || v)) && ((u != v)))) {\n            l.sendMessage(l.constructLogMessageObject(k.CHAT_WEB, t.thread_id, j.THREAD_NAME, {\n                name: u\n            }), null, i.CHAT);\n        };\n    };\n    function s(t) {\n        if (!t.name_conversation_sheet_dismissed) {\n            t.name_conversation_sheet_dismissed = true;\n            m.getServerThreadID(t.thread_id, function(u) {\n                new g(p).setData({\n                    thread_id: u\n                }).send();\n            });\n        }\n    ;\n    };\n    e.exports = q;\n});\n__d(\"ChatNewMessagesTabSheet\", [\"Event\",\"ArbiterMixin\",\"DOM\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"ChatTabTemplates\"), k = b(\"copyProperties\");\n    function l(m, n, o) {\n        this._threadID = m;\n        this._rootElement = n;\n        this._sheetView = o;\n    };\n    k(l.prototype, h, {\n        render: function() {\n            var m = j[\":fb:mercury:chat:tab-sheet:clickable-message-icon-sheet\"].build();\n            i.setContent(m.getNode(\"text\"), i.tx._(\"Scroll down to see new messages.\"));\n            i.setContent(this._rootElement, m.getRoot());\n            g.listen(m.getRoot(), \"click\", function() {\n                this.inform(\"clicked\", this._threadID);\n            }.bind(this));\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"new_messages_type\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        }\n    });\n    e.exports = l;\n});\n__d(\"ChatNoRecipientsTabSheet\", [\"DOM\",\"fbt\",\"MercuryParticipants\",\"ChatTabTemplates\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"fbt\"), i = b(\"MercuryParticipants\"), j = b(\"ChatTabTemplates\"), k = b(\"MercuryThreadInformer\").get(), l = b(\"MercuryThreads\").get(), m = b(\"copyProperties\");\n    function n(o, p, q) {\n        this._threadID = o;\n        this._rootElement = p;\n        this._sheetView = q;\n        k.subscribe(\"threads-updated\", this._handleThreadsUpdated.bind(this));\n    };\n    m(n.prototype, {\n        render: function() {\n            var o = j[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"].build();\n            g.setContent(o.getNode(\"text\"), \"Everyone has left the conversation.\");\n            g.setContent(this._rootElement, o.getRoot());\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"no_recipients_type\";\n        },\n        _handleThreadsUpdated: function() {\n            l.getThreadMeta(this._threadID, function(o) {\n                var p = i.user, q = o.participants.filter(function(r) {\n                    return (r != p);\n                });\n                if ((((q.length < 1) && !o.is_joinable) && !l.isNewEmptyLocalThread(this._threadID))) {\n                    this._sheetView.open(this);\n                }\n                 else this._sheetView.close(this);\n            ;\n            }.bind(this));\n        }\n    });\n    e.exports = n;\n});\n__d(\"ChatOfflineTabSheet\", [\"ChatPrivacyActionController\",\"ChatVisibility\",\"CSS\",\"DOM\",\"Event\",\"JSLogger\",\"MercuryParticipants\",\"MercuryThreads\",\"ChatTabTemplates\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatPrivacyActionController\"), h = b(\"ChatVisibility\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Event\"), l = b(\"JSLogger\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryThreads\").get(), o = b(\"ChatTabTemplates\"), p = b(\"copyProperties\"), q = b(\"cx\");\n    function r(s, t, u) {\n        this._rootElement = t;\n        this._sheetView = u;\n        this._logger = l.create(\"blackbird\");\n        this._canonicalUser = n.getCanonicalUserInThread(s);\n        if (this._canonicalUser) {\n            this._privacyActionController = new g(this._canonicalUser, this._handlePrivacyChange.bind(this));\n        };\n    };\n    p(r.prototype, {\n        render: function() {\n            if (!this._canonicalUser) {\n                this._logger.error(\"offline_sheet_open_with_non_friend\");\n                return;\n            }\n        ;\n            var s = o[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"].build(), t = (\"fbid:\" + this._canonicalUser);\n            m.get(t, function(u) {\n                var v = \"fbChatGoOnlineLink\", w = j.tx._(\"turn on chat\"), x = j.create(\"a\", {\n                    href: \"#\",\n                    className: v\n                }, w), y = j.tx._(\"To chat with {name} and other friends, {link}.\", {\n                    name: u.short_name,\n                    link: x\n                });\n                j.setContent(s.getNode(\"text\"), y);\n                i.addClass(s.getRoot(), \"_1sk1\");\n                j.setContent(this._rootElement, s.getRoot());\n                k.listen(this._rootElement, \"click\", function(event) {\n                    if (i.hasClass(event.getTarget(), v)) {\n                        if (h.isOnline()) {\n                            this._logger.error(\"tab_sheet_already_online\");\n                        };\n                        this._privacyActionController.togglePrivacy();\n                        this._logger.log(\"tab_sheet_go_online\", {\n                            tab_id: this._canonicalUser\n                        });\n                        return false;\n                    }\n                ;\n                }.bind(this));\n            }.bind(this));\n        },\n        _handlePrivacyChange: function(s) {\n            if (!this._canonicalUser) {\n                this._logger.error(\"user_blocked_sheet_privacy_changed_non_friend\");\n            };\n            switch (s) {\n              case g.OFFLINE:\n                this._sheetView.open(this);\n                break;\n              case g.NORMAL:\n            \n              case g.BLOCKED:\n                this._sheetView.close(this);\n                break;\n            };\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"offline_type\";\n        },\n        destroy: function() {\n            (this._privacyActionController && this._privacyActionController.destroy());\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatUploadWarningTabSheet\", [\"DOM\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"ChatTabTemplates\"), i = b(\"copyProperties\");\n    function j(k, l, m) {\n        this._threadID = k;\n        this._rootElement = l;\n        this._sheetView = m;\n    };\n    i(j.prototype, {\n        render: function() {\n            var k = h[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"].build();\n            g.setContent(k.getNode(\"text\"), g.tx._(\"Please wait until the upload is complete before you send your message.\"));\n            g.setContent(this._rootElement, k.getRoot());\n        },\n        isPermanent: function() {\n            return false;\n        },\n        getType: function() {\n            return \"upload_warning_type\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        }\n    });\n    e.exports = j;\n});\n__d(\"ChatThreadIsMutedTabSheet\", [\"Event\",\"ArbiterMixin\",\"DOM\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"ChatTabTemplates\"), k = b(\"copyProperties\");\n    function l(m, n, o) {\n        this._threadID = m;\n        this._rootElement = n;\n        this._sheetView = o;\n    };\n    k(l.prototype, h, {\n        render: function() {\n            var m = j[\":fb:mercury:chat:tab-sheet:message-mute-sheet\"].build();\n            i.setContent(m.getNode(\"text\"), i.tx._(\"This conversation is muted. Chat tabs will not pop up for it and push notifications are off.\"));\n            i.setContent(this._rootElement, m.getRoot());\n            g.listen(m.getNode(\"unmuteButton\"), \"click\", function() {\n                this.inform(\"clicked\", this._threadID);\n            }.bind(this));\n        },\n        isPermanent: function() {\n            return false;\n        },\n        getType: function() {\n            return \"chat-thread-is-muted\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        }\n    });\n    e.exports = l;\n});\n__d(\"ChatUserBlockedTabSheet\", [\"ChatPrivacyActionController\",\"CSS\",\"DOM\",\"Event\",\"GenderConst\",\"JSLogger\",\"MercuryParticipants\",\"MercuryThreads\",\"ChatTabTemplates\",\"copyProperties\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatPrivacyActionController\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"GenderConst\"), l = b(\"JSLogger\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryThreads\").get(), o = b(\"ChatTabTemplates\"), p = b(\"copyProperties\"), q = b(\"cx\"), r = b(\"tx\");\n    function s(t, u, v) {\n        this._rootElement = u;\n        this._sheetView = v;\n        this._logger = l.create(\"blackbird\");\n        this._canonicalUser = n.getCanonicalUserInThread(t);\n        if (this._canonicalUser) {\n            this._privacyActionController = new g(this._canonicalUser, this._handlePrivacyChange.bind(this));\n        };\n    };\n    p(s.prototype, {\n        render: function() {\n            if (!this._canonicalUser) {\n                this._logger.error(\"user_blocked_sheet_open_with_non_friend\");\n                return;\n            }\n        ;\n            var t = o[\":fb:mercury:chat:tab-sheet:user-blocked\"].build(), u = (\"fbid:\" + this._canonicalUser);\n            m.get(u, function(v) {\n                var w = null;\n                switch (v.gender) {\n                  case k.FEMALE_SINGULAR:\n                \n                  case k.FEMALE_SINGULAR_GUESS:\n                    w = r._(\"You turned off chat for {name} but you can still send her a message. \", {\n                        name: v.short_name\n                    });\n                    break;\n                  case k.MALE_SINGULAR:\n                \n                  case k.MALE_SINGULAR_GUESS:\n                    w = r._(\"You turned off chat for {name} but you can still send him a message. \", {\n                        name: v.short_name\n                    });\n                    break;\n                  default:\n                    w = r._(\"You turned off chat for {name} but you can still send them a message. \", {\n                        name: v.short_name\n                    });\n                };\n                i.setContent(t.getNode(\"text\"), w);\n                var x = r._(\"Turn on chat for {name}?\", {\n                    name: v.short_name\n                });\n                i.setContent(t.getNode(\"actionLink\"), x);\n                h.addClass(t.getRoot(), \"_1sk0\");\n                i.setContent(this._rootElement, t.getRoot());\n                j.listen(t.getNode(\"actionLink\"), \"click\", this._privacyActionController.togglePrivacy.bind(this._privacyActionController));\n            }.bind(this));\n        },\n        _handlePrivacyChange: function(t) {\n            if (!this._canonicalUser) {\n                this._logger.error(\"user_blocked_sheet_privacy_changed_non_friend\");\n            };\n            switch (t) {\n              case g.BLOCKED:\n                this._sheetView.open(this);\n                break;\n              case g.NORMAL:\n            \n              case g.OFFLINE:\n                this._sheetView.close(this);\n                break;\n            };\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"user_blocked_type\";\n        },\n        destroy: function() {\n            (this._privacyActionController && this._privacyActionController.destroy());\n        }\n    });\n    e.exports = s;\n});\n__d(\"ChatUserJoinStatusTabSheet\", [\"Class\",\"JoinStatusTabSheet\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"JoinStatusTabSheet\"), i = b(\"ChatTabTemplates\"), j = b(\"copyProperties\");\n    function k(l, m) {\n        this.parent.construct(this, l, m);\n    };\n    g.extend(k, h);\n    j(k.prototype, {\n        _getTemplate: function() {\n            return i[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"];\n        }\n    });\n    e.exports = k;\n});\n__d(\"ChatTabSheetController\", [\"ChatAddFriendsTabSheet\",\"ChatNameConversationTabSheet\",\"ChatNewMessagesTabSheet\",\"ChatNoRecipientsTabSheet\",\"ChatOfflineTabSheet\",\"ChatUploadWarningTabSheet\",\"ChatThreadIsMutedTabSheet\",\"ChatUserBlockedTabSheet\",\"ChatUserJoinStatusTabSheet\",\"copyProperties\",\"MercurySheetView\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatAddFriendsTabSheet\"), h = b(\"ChatNameConversationTabSheet\"), i = b(\"ChatNewMessagesTabSheet\"), j = b(\"ChatNoRecipientsTabSheet\"), k = b(\"ChatOfflineTabSheet\"), l = b(\"ChatUploadWarningTabSheet\"), m = b(\"ChatThreadIsMutedTabSheet\"), n = b(\"ChatUserBlockedTabSheet\"), o = b(\"ChatUserJoinStatusTabSheet\"), p = b(\"copyProperties\"), q = b(\"MercurySheetView\"), r = b(\"MercuryThreads\").get(), s = function(t, u, v) {\n        this._sheetView = new q(t, u, v);\n        this._addFriendsTabSheet = new g(t, u, this._sheetView);\n        this._nameConversationTabSheet = new h(t, u, this._sheetView);\n        this._userBlockedTabSheet = new n(t, u, this._sheetView);\n        this._offlineTabSheet = new k(t, u, this._sheetView);\n        this._newMessagesTabSheet = new i(t, u, this._sheetView);\n        this._uploadWarningTabSheet = new l(t, u, this._sheetView);\n        this._threadIsMutedTabSheet = new m(t, u, this._sheetView);\n        this._userJoinStatusTabSheet = new o(u, this._sheetView);\n        if (!r.getCanonicalUserInThread(t)) {\n            this._noRecipientsTabSheet = new j(t, u, this._sheetView);\n        };\n    };\n    p(s.prototype, {\n        openAddFriendsSheet: function() {\n            this._addFriendsTabSheet.open();\n        },\n        openUserJoinStatusSheet: function(t) {\n            this._userJoinStatusTabSheet.addToQueue(t);\n        },\n        getAddFriendsTabSheet: function() {\n            return this._addFriendsTabSheet;\n        },\n        getAddFriendsParticipants: function() {\n            var t = this._addFriendsTabSheet.getParticipants();\n            this._addFriendsTabSheet.close();\n            return t;\n        },\n        openNameConversationSheet: function(t) {\n            this._nameConversationTabSheet.open(t);\n        },\n        openNewMessagesSheet: function() {\n            this._newMessagesTabSheet.open();\n        },\n        openUploadWarningTabSheet: function() {\n            this._uploadWarningTabSheet.open();\n        },\n        openThreadIsMutedTabSheet: function() {\n            this._threadIsMutedTabSheet.open();\n        },\n        closeAutomaticNameConversationSheet: function() {\n            if (this._nameConversationTabSheet.isAutomatic()) {\n                this._nameConversationTabSheet.close();\n            };\n        },\n        closeThreadIsMutedTabSheet: function() {\n            this._threadIsMutedTabSheet.close();\n        },\n        closeNewMessagesSheet: function() {\n            this._newMessagesTabSheet.close();\n        },\n        closeUploadWarningTabSheet: function() {\n            this._uploadWarningTabSheet.close();\n        },\n        onClickNewMessagesSheet: function(t) {\n            this._newMessageClickSub = this._newMessagesTabSheet.subscribe(\"clicked\", t);\n        },\n        onClickThreadIsMutedSheet: function(t) {\n            this._threadIsMutedClickSub = this._threadIsMutedTabSheet.subscribe(\"clicked\", t);\n        },\n        onResize: function(t) {\n            this._sheetView.subscribe(\"resize\", t);\n        },\n        destroy: function() {\n            this._sheetView.destroy();\n            this._offlineTabSheet.destroy();\n            this._userBlockedTabSheet.destroy();\n            (this._newMessageClickSub && this._newMessageClickSub.unsubscribe());\n            (this._threadIsMutedClickSub && this._threadIsMutedClickSub.unsubscribe());\n        }\n    });\n    e.exports = s;\n});\n__d(\"ChatTabView\", [\"Event\",\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"AsyncDialog\",\"AsyncRequest\",\"AsyncSignal\",\"AvailableListConstants\",\"ChatBehavior\",\"ChatConfig\",\"ChatContextualDialogController\",\"ChatAutoSendPhotoUploader\",\"ChatPrivacyActionController\",\"ChatQuietLinks\",\"ChatTabMessagesView\",\"ChatTabPeopleSuggestionView\",\"ChatTabSheetController\",\"ChatVisibility\",\"MercuryConstants\",\"CSS\",\"Dialog\",\"Dock\",\"DOM\",\"Input\",\"JSLogger\",\"Keys\",\"Locale\",\"MercuryActionStatus\",\"MercuryFileUploader\",\"MercuryLogMessageType\",\"MercuryMessages\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercurySourceType\",\"MercuryStickers\",\"MercuryThreadInformer\",\"MercuryThreadMetadataRawRenderer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreadMuter\",\"MercuryThreads\",\"MercuryTypingReceiver\",\"MessagesEmoticonView\",\"NubController\",\"Parent\",\"PhotosUploadWaterfall\",\"PresencePrivacy\",\"PresenceStatus\",\"Run\",\"Style\",\"SubscriptionsHandler\",\"ChatTabTemplates\",\"TextAreaControl\",\"Tooltip\",\"TypingDetectorController\",\"URI\",\"UserAgent\",\"VideoCallCore\",\"WaterfallIDGenerator\",\"copyProperties\",\"cx\",\"setIntervalAcrossTransitions\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"AsyncDialog\"), k = b(\"AsyncRequest\"), l = b(\"AsyncSignal\"), m = b(\"AvailableListConstants\"), n = b(\"ChatBehavior\"), o = b(\"ChatConfig\"), p = b(\"ChatContextualDialogController\"), q = b(\"ChatAutoSendPhotoUploader\"), r = b(\"ChatPrivacyActionController\"), s = b(\"ChatQuietLinks\"), t = b(\"ChatTabMessagesView\"), u = b(\"ChatTabPeopleSuggestionView\"), v = b(\"ChatTabSheetController\"), w = b(\"ChatVisibility\"), x = b(\"MercuryConstants\"), y = b(\"CSS\"), z = b(\"Dialog\"), aa = b(\"Dock\"), ba = b(\"DOM\"), ca = b(\"Input\"), da = b(\"JSLogger\"), ea = b(\"Keys\"), fa = b(\"Locale\"), ga = b(\"MercuryActionStatus\"), ha = b(\"MercuryFileUploader\"), ia = b(\"MercuryLogMessageType\"), ja = b(\"MercuryMessages\").get(), ka = b(\"MercuryParticipants\"), la = b(\"MercuryServerRequests\").get(), ma = b(\"MercurySourceType\"), na = b(\"MercuryStickers\"), oa = b(\"MercuryThreadInformer\").get(), pa = b(\"MercuryThreadMetadataRawRenderer\"), qa = b(\"MercuryThreadMetadataRenderer\").get(), ra = b(\"MercuryThreadMuter\"), sa = b(\"MercuryThreads\").get(), ta = b(\"MercuryTypingReceiver\"), ua = b(\"MessagesEmoticonView\"), va = b(\"NubController\"), wa = b(\"Parent\"), xa = b(\"PhotosUploadWaterfall\"), ya = b(\"PresencePrivacy\"), za = b(\"PresenceStatus\"), ab = b(\"Run\"), bb = b(\"Style\"), cb = b(\"SubscriptionsHandler\"), db = b(\"ChatTabTemplates\"), eb = b(\"TextAreaControl\"), fb = b(\"Tooltip\"), gb = b(\"TypingDetectorController\"), hb = b(\"URI\"), ib = b(\"UserAgent\"), jb = b(\"VideoCallCore\"), kb = b(\"WaterfallIDGenerator\"), lb = b(\"copyProperties\"), mb = b(\"cx\"), nb = b(\"setIntervalAcrossTransitions\"), ob = b(\"tx\"), pb = /^\\s*$/, qb = da.create(\"tab_view\"), rb = {\n    }, sb = null, tb, ub;\n    function vb(qc, rc) {\n        var sc = ba.create(\"div\");\n        rc = rc.filter(function(tc) {\n            return (tc != ka.user);\n        });\n        if (!rc.length) {\n            return fb.remove(qc)\n        };\n        ka.getMulti(rc, function(tc) {\n            for (var uc in tc) {\n                var vc = tc[uc], wc = db[\":fb:mercury:chat:multichat-tooltip-item\"].build();\n                ba.setContent(wc.getNode(\"name\"), vc.name);\n                var xc = ka.getUserID(uc), yc = (xc && (za.get(xc) == m.ACTIVE));\n                y.conditionShow(wc.getNode(\"icon\"), yc);\n                y.conditionClass(wc.getNode(\"name\"), \"tooltipItemWithIcon\", yc);\n                ba.appendContent(sc, wc.getRoot());\n            };\n            fb.set(qc, sc, \"above\");\n        });\n    };\n    var wb = {\n    }, xb = null, yb = false;\n    function zb(qc, rc, sc) {\n        if (sc) {\n            wb[qc] = rc;\n            if (!xb) {\n                xb = nb(ac, 600);\n            };\n        }\n         else {\n            y.removeClass(rc, \"highlightTitle\");\n            delete wb[qc];\n        }\n    ;\n    };\n    function ac() {\n        for (var qc in wb) {\n            var rc = wb[qc];\n            if (rc.parentNode) {\n                y.conditionClass(rc, \"highlightTitle\", yb);\n            }\n             else delete wb[qc];\n        ;\n        };\n        yb = !yb;\n        if (!Object.keys(wb).length) {\n            clearInterval(xb);\n            xb = null;\n        }\n    ;\n    };\n    function bc(qc) {\n        var rc = la.tokenizeThreadID(qc);\n        switch (rc.type) {\n          case \"user\":\n            return db[\":fb:mercury:chat:user-tab\"].build();\n        };\n        return db[\":fb:mercury:chat:multichat-tab\"].build();\n    };\n    function cc(qc) {\n        var rc = (qc._tabTemplate.getNode(\"input\").value || \"\"), sc = qc._fileUploader.getAttachments();\n        if (ic(qc)) {\n            ec(qc, rc, sc, function(tc) {\n                var uc = qc._fileUploader.getImageIDs();\n                if ((uc.length > 0)) {\n                    tc.photo_fbids = uc;\n                    tc.has_attachment = true;\n                }\n            ;\n                ja.sendMessage(tc);\n                qc._fileUploader.removeAttachments();\n                qc._getNode(\"input\").value = \"\";\n                (qc._lastMessageIndicator && qc._lastMessageIndicator.resetState());\n                (qc._messagesView && qc._messagesView.scrollToBottom());\n            });\n        };\n    };\n    function dc(qc, rc) {\n        if ((rc === 0)) {\n            return\n        };\n        mc(qc, xa.POST_PUBLISHED, {\n            count: rc\n        });\n        qc._waterfallID = kb.generate();\n    };\n    function ec(qc, rc, sc, tc) {\n        sa.getThreadMeta(qc._threadID, function(uc) {\n            var vc = ja.constructUserGeneratedMessageObject(rc, ma.CHAT_WEB, qc._threadID);\n            if ((sc.length > 0)) {\n                vc.has_attachment = true;\n                vc.raw_attachments = sc;\n            }\n        ;\n            if (sa.isNewEmptyLocalThread(qc._threadID)) {\n                var wc = qc._sheetController.getAddFriendsParticipants();\n                if (((wc === null) || (wc.length === 0))) {\n                    return;\n                }\n                 else if ((wc.length === 1)) {\n                    var xc = (\"user:\" + ka.getUserID(wc[0]));\n                    vc.thread_id = xc;\n                }\n                 else sa.addParticipantsToThreadLocally(qc._threadID, wc);\n                \n            ;\n            }\n        ;\n            if (sa.isEmptyLocalThread(qc._threadID)) {\n                var yc = la.tokenizeThreadID(qc._threadID);\n                vc.message_id = yc.value;\n                vc.specific_to_list = uc.participants;\n            }\n        ;\n            if ((typeof vc != \"undefined\")) {\n                vc.signatureID = qc._signatureID;\n            };\n            vc.ui_push_phase = x.UIPushPhase;\n            tc(vc);\n            if ((qc._threadID !== vc.thread_id)) {\n                nc.inform(\"closed-tab\", qc._threadID);\n                h.inform(\"chat/open-tab\", {\n                    thread_id: vc.thread_id\n                });\n            }\n        ;\n        });\n    };\n    function fc(qc) {\n        qc._blocked = true;\n        qc._sheetController.openUploadWarningTabSheet();\n    };\n    function gc(qc) {\n        return ((qc._fileUploader.isUploading() || qc._photoUploader.isUploading()));\n    };\n    function hc(qc) {\n        return qc._fileUploader.isUploading();\n    };\n    function ic(qc) {\n        var rc = (qc._tabTemplate.getNode(\"input\").value || \"\");\n        if (!pb.test(rc)) {\n            return true\n        };\n        if (((qc._fileUploader.getAttachments().length > 0) || (qc._fileUploader.getImageIDs().length > 0))) {\n            return true\n        };\n        return false;\n    };\n    function jc(qc) {\n        if (qc._blocked) {\n            if (hc(qc)) {\n                return\n            };\n            qc._blocked = false;\n            cc(qc);\n            qc._sheetController.closeUploadWarningTabSheet();\n        }\n    ;\n    };\n    function kc(qc) {\n        qc._nubController.flyoutContentChanged();\n        qc._attachmentsDiv.scrollTop = qc._attachmentsDiv.scrollHeight;\n    };\n    function lc(qc, rc, sc) {\n        qc._subscriptionsHandler.addSubscriptions(qc._photoUploader.subscribe(rc, function(tc, uc) {\n            mc(qc, sc, uc);\n        }));\n    };\n    function mc(qc, rc, sc) {\n        xa.sendSignal(lb({\n            qn: qc._waterfallID,\n            step: rc,\n            uploader: xa.APP_CHAT\n        }, (sc || {\n        })));\n    };\n    function nc(qc, rc, sc) {\n        if (rc) {\n            la.ensureThreadIsFetched(rc);\n        };\n        this._threadID = qc;\n        this._signatureID = sc;\n        this._eventListeners = [];\n        this._tabTemplate = bc(qc);\n        this._tabElem = this._tabTemplate.getRoot();\n        this._waterfallID = kb.generate();\n        if (!((this._getNode instanceof Function))) {\n            qb.log(\"getnode_undefined\", {\n                is_getnode_set: !!this._getNode,\n                is_prototype_set: !!nc.prototype,\n                is_window: (window == this),\n                is_chat_tab_view: (this instanceof nc),\n                ctor_name: (this.constructor && this.constructor.name)\n            });\n        };\n        this._subscriptionsHandler = new cb();\n        this._fileUploader = new ha(this._tabTemplate.getNode(\"attachmentShelf\"), this._tabTemplate.getNode(\"attachButtonForm\"), this._tabTemplate.getNode(\"fileInput\"), this._tabTemplate.getNode(\"attachID\"));\n        this._initializeUploader(this._fileUploader);\n        this._initializeAutoSendPhotoUploader();\n        this._attachmentsDiv = this._getNode(\"attachmentShelf\");\n        this._sheetController = new v(this._threadID, this._getNode(\"sheet\"), this._tabElem);\n        this._sheetController.onClickNewMessagesSheet(function() {\n            (this._messagesView && this._messagesView.scrollToBottom());\n            this.focus();\n            nc.inform(\"read\", this._threadID);\n        }.bind(this));\n        this._sheetController.onClickThreadIsMutedSheet(function() {\n            ra.showMuteChangeDialog(0, this._threadID);\n            this.focus();\n        }.bind(this));\n        this._nubController = new va().init(this._tabElem);\n        this._sheetController.onResize(this._nubController.flyoutContentChanged.bind(this._nubController));\n        this._contextualDialogController = new p(this._threadID, this._getNode(\"videoCallLink\"));\n        if ((sb === null)) {\n            sb = !o.get(\"seen_autosend_photo_nux\");\n        };\n        if ((tb === undefined)) {\n            tb = o.get(\"show_sticker_nux\");\n        };\n        this._messagesView = null;\n        var tc = this._getNode(\"conversationLink\");\n        if (tc) {\n            y.hide(tc);\n            qa.renderTitanLink(qc, tc, y.show.bind(y, tc));\n        }\n    ;\n        if (!sa.getCanonicalUserInThread(this._threadID)) {\n            this._titlebarTooltipAnchor = this._getNode(\"titlebarText\");\n        };\n        var uc = this._getCanonicalUserID();\n        if (this._isTitleTextLinked()) {\n            ka.get((\"fbid:\" + uc), function(fd) {\n                if (fd.href) {\n                    var gd = this._getNode(\"titlebarText\");\n                    gd.setAttribute(\"href\", fd.href);\n                    gd.removeAttribute(\"rel\");\n                    y.removeClass(gd, \"noLink\");\n                }\n            ;\n            }.bind(this));\n        };\n        var vc = this._getNode(\"inputContainer\").clientHeight;\n        eb.getInstance(this._getNode(\"input\")).subscribe(\"resize\", function() {\n            var fd = this._getNode(\"inputContainer\").clientHeight;\n            if ((fd != vc)) {\n                this._nubController.flyoutContentChanged();\n            };\n            vc = fd;\n        }.bind(this));\n        var wc = null, xc = this._getNode(\"inputContainer\");\n        this._nubController.subscribe(\"resize\", function() {\n            if (!wc) {\n                wc = this._tabElem.clientWidth;\n            };\n            var fd = 2, gd = (wc - ((xc.clientWidth + fd))), hd = (fa.isRTL() ? \"left\" : \"right\");\n            bb.set(this._iconsContainerNode, hd, (gd + \"px\"));\n            eb.getInstance(this._getNode(\"input\")).update();\n        }.bind(this));\n        var yc = o.get(\"chat_tab_height\");\n        if (yc) {\n            var zc = this._tabTemplate.getNode(\"chatWrapper\");\n            bb.set(zc, \"height\", (yc + \"px\"));\n        }\n    ;\n        this._listen(\"closeButton\", \"click\", this._closeClicked);\n        this._listen(\"titlebarCloseButton\", \"click\", this._closeClicked);\n        this._listen(\"titlebarCloseButton\", \"mousedown\", this._closePreClicked);\n        this._listen(\"dockButton\", \"click\", this._nubClicked);\n        this._listen(\"dockButton\", \"keydown\", this._dockKeyDown);\n        this._listen(\"nubFlyoutTitlebar\", \"click\", this._titleClicked);\n        this._listen(\"chatConv\", \"click\", this._chatConvClicked);\n        this._listen(\"inputContainer\", \"click\", this._inputContainerClicked);\n        this._listen(\"addFriendLink\", \"click\", this._addFriendLinkClicked, true);\n        this._listen(\"addToThreadLink\", \"click\", this._addFriendLinkClicked, true);\n        this._listen(\"nameConversationLink\", \"click\", this._nameConversationLinkClicked, true);\n        this._listen(\"clearWindowLink\", \"click\", this._clearHistory, true);\n        this._listen(\"unsubscribeLink\", \"click\", this._unsubscribeLinkClicked, true);\n        this._listen(\"videoCallLink\", \"click\", this._callClicked, true);\n        this._listen(\"reportSpamLink\", \"click\", this._reportSpamClicked, true);\n        this._listen(\"muteThreadLink\", \"click\", this._showMuteSettingDialog.bind(this, -1), true);\n        this._listen(\"unmuteThreadLink\", \"click\", this._showMuteSettingDialog.bind(this, 0), true);\n        this._listen(\"input\", \"focus\", this._focusTab);\n        this._listen(\"input\", \"blur\", this._blurTab);\n        this._listen(\"sheet\", \"keydown\", function(event) {\n            if ((!event.getModifiers().any && (event.keyCode === ea.TAB))) {\n                this._getNode(\"input\").focus();\n                event.kill();\n            }\n        ;\n        }.bind(this));\n        this._iconsContainerNode = this._getNode(\"iconsContainer\");\n        var ad = this._getNode(\"emoticons\");\n        this._emoticonView = null;\n        if (ad) {\n            this._emoticonView = new ua(ad, this._getNode(\"input\"));\n        };\n        var bd = this._getNode(\"stickers\");\n        if (bd) {\n            this._stickerController = new na(bd);\n            this._subscriptionsHandler.addSubscriptions(this._stickerController.subscribe(\"stickerselected\", function(fd, gd) {\n                this._stickerSelected(gd.id);\n            }.bind(this)));\n        }\n    ;\n        if (ib.firefox()) {\n            this._listen(\"input\", \"keypress\", this._inputKeyDown);\n        }\n         else this._listen(\"input\", \"keydown\", this._inputKeyDown);\n    ;\n        this._privacyLink = this._getNode(\"privacyLink\");\n        if (this._privacyLink) {\n            this._privacyActionController = new r(uc, this._updatePrivacyLink.bind(this));\n            this._eventListeners.push(g.listen(this._privacyLink, \"click\", this._privacyActionController.togglePrivacy.bind(this._privacyActionController)));\n        }\n    ;\n        sa.getThreadMeta(this._threadID, function(fd) {\n            var gd = (uc || ((o.get(\"chat_multi_typ_send\") && !fd.is_canonical)));\n            if (gd) {\n                la.getServerThreadID(this._threadID, function(hd) {\n                    this._lastMessageIndicator = new gb(uc, this._getNode(\"input\"), \"mercury-chat\", null, hd);\n                }.bind(this));\n            };\n            this._setUpMutingSettings(fd);\n        }.bind(this));\n        var cd = this._getNode(\"muteGroupLink\");\n        if (cd) {\n            var dd = sa.getCanonicalGroupInThread(this._threadID);\n            if (dd) {\n                cd.setAttribute(\"ajaxify\", hb(cd.getAttribute(\"ajaxify\")).addQueryData({\n                    id: dd\n                }));\n            };\n        }\n    ;\n        s.removeEmptyHrefs(this._tabElem);\n        rb[qc] = this;\n        this.updateAvailableStatus();\n        this.updateTab();\n        this._setCloseTooltip(false);\n        var ed = {\n            threadID: qc,\n            userID: uc,\n            signatureID: this._signatureID\n        };\n        new l(\"/ajax/chat/opentab_tracking.php\", ed).send();\n        ab.onBeforeUnload(function() {\n            if ((ic(this) || gc(this))) {\n                return \"You haven't sent your message yet. Do you want to leave without sending?\"\n            };\n            if (ja.getNumberLocalMessages(this._threadID)) {\n                return \"Your message is still being sent. Are you sure you want to leave?\"\n            };\n            return null;\n        }.bind(this), false);\n        ab.onUnload(function() {\n            oc(this);\n        }.bind(this));\n    };\n    function oc(qc) {\n        if (qc._photoUploader.isUploading()) {\n            mc(qc, xa.CANCEL_DURING_UPLOAD);\n        };\n    };\n    function pc() {\n        for (var qc in rb) {\n            rb[qc].updateAvailableStatus();\n            rb[qc].updateMultichatTooltip();\n        };\n    };\n    h.subscribe([\"buddylist/availability-changed\",], pc);\n    ya.subscribe([\"privacy-changed\",\"privacy-availability-changed\",], pc);\n    n.subscribe(n.ON_CHANGED, function() {\n        for (var qc in rb) {\n            sa.getThreadMeta(qc, function(rc) {\n                rb[qc]._updateUnreadCount(rc);\n            });;\n        };\n    });\n    ta.subscribe(\"state-changed\", function(qc, rc) {\n        for (var sc in rc) {\n            var tc = (rc[sc] && rc[sc].length), uc = rb[sc];\n            (uc && uc.showTypingIndicator(tc));\n        };\n    });\n    oa.subscribe(\"threads-updated\", function(qc, rc) {\n        for (var sc in rb) {\n            (rc[sc] && rb[sc].updateTab());;\n        };\n    });\n    oa.subscribe(\"threads-deleted\", function(qc, rc) {\n        for (var sc in rb) {\n            (rc[sc] && nc.inform(\"thread-deleted\", sc));;\n        };\n    });\n    lb(nc, i, {\n        get: function(qc) {\n            return rb[qc];\n        }\n    });\n    lb(nc.prototype, {\n        getThreadID: function() {\n            return this._threadID;\n        },\n        showAddFriend: function() {\n            (function() {\n                this._sheetController.openAddFriendsSheet();\n            }).bind(this).defer();\n        },\n        showPeopleSuggestions: function() {\n            (function() {\n                this._peopleSuggestions = new u(this._sheetController, this._getNode(\"conversation\"), this._getNode(\"loadingIndicator\"));\n            }).bind(this).defer();\n        },\n        showNameConversation: function(qc) {\n            (function() {\n                this._sheetController.openNameConversationSheet(qc);\n            }).bind(this).defer();\n        },\n        hideAutomaticNameConversation: function() {\n            (function() {\n                this._sheetController.closeAutomaticNameConversationSheet();\n            }).bind(this).defer();\n        },\n        isVisible: function() {\n            return y.shown(this._tabElem);\n        },\n        setVisibleState: function(qc, rc) {\n            var sc = y.shown(this._tabElem), tc = y.hasClass(this._tabElem, \"opened\");\n            y.conditionShow(this._tabElem, qc);\n            y.conditionClass(this._tabElem, \"opened\", rc);\n            if (((!((sc && tc)) && qc) && rc)) {\n                if (!this._messagesView) {\n                    this._messagesView = new t(this._threadID, this._sheetController, this._getNode(\"chatConv\"), this._getNode(\"conversation\"), this._getNode(\"loadingIndicator\"), this._getNode(\"lastMessageIndicator\"), this._getNode(\"typingIndicator\"));\n                };\n                this._nubController.flyoutContentChanged();\n                this._messagesView.scrollToBottom();\n            }\n        ;\n            if (((sc && tc) && !((qc && rc)))) {\n                this._contextualDialogController.tabNotActive();\n            };\n        },\n        focus: function() {\n            var qc = (y.hasClass(this._tabElem, \"opened\") ? \"input\" : \"dockButton\");\n            this._getNode(qc).focus();\n        },\n        isFocused: function() {\n            var qc = document.activeElement;\n            return (wa.byClass(qc, \"_50mz\") === this._tabElem);\n        },\n        hasEmptyInput: function() {\n            return pb.test(this._getNode(\"input\").value);\n        },\n        getInputElem: function() {\n            return this._getNode(\"input\");\n        },\n        setInput: function(qc) {\n            this._getNode(\"input\").value = qc;\n        },\n        insertBefore: function(qc) {\n            ba.insertBefore(qc._tabElem, this._tabElem);\n        },\n        appendTo: function(qc) {\n            ba.appendContent(qc, this._tabElem);\n        },\n        nextTabIs: function(qc) {\n            var rc = (qc && qc._tabElem);\n            return (this._tabElem.nextSibling == rc);\n        },\n        getScrollTop: function() {\n            return ba.find(this._tabElem, \".scrollable\").scrollTop;\n        },\n        setScrollTop: function(qc) {\n            ba.find(this._tabElem, \".scrollable\").scrollTop = qc;\n        },\n        destroy: function() {\n            ba.remove(this._tabElem);\n            (this._emoticonView && this._emoticonView.destroy());\n            (this._stickerController && this._stickerController.destroy());\n            while (this._eventListeners.length) {\n                this._eventListeners.pop().remove();;\n            };\n            (this._messagesView && this._messagesView.destroy());\n            this._sheetController.destroy();\n            this._fileUploader.destroy();\n            this._photoUploader.destroy();\n            this._subscriptionsHandler.release();\n            this._contextualDialogController.destroy();\n            (this._privacyActionController && this._privacyActionController.destroy());\n            delete rb[this._threadID];\n            aa.unregisterNubController(this._nubController);\n            ca.reset(this._getNode(\"input\"));\n        },\n        updateAvailableStatus: function() {\n            sa.getThreadMeta(this._threadID, function(qc) {\n                var rc = m.OFFLINE, sc = this._getCanonicalUserID();\n                if (sc) {\n                    rc = za.get(sc);\n                }\n                 else {\n                    var tc = qc.participants.map(function(vc) {\n                        return ka.getUserID(vc);\n                    });\n                    rc = za.getGroup(tc);\n                }\n            ;\n                if (!w.isOnline()) {\n                    rc = m.OFFLINE;\n                };\n                if (sc) {\n                    this._updateCallLink(rc);\n                };\n                y.conditionClass(this._tabElem, \"_5238\", (rc === m.ACTIVE));\n                y.conditionClass(this._tabElem, \"_5239\", (rc === m.MOBILE));\n                var uc = this._getNode(\"presenceIndicator\");\n                switch (rc) {\n                  case m.ACTIVE:\n                    uc.setAttribute(\"alt\", \"Online\");\n                    break;\n                  case m.MOBILE:\n                    uc.setAttribute(\"alt\", \"Mobile\");\n                    break;\n                  default:\n                    uc.removeAttribute(\"alt\");\n                    break;\n                };\n            }.bind(this));\n        },\n        updateTab: function() {\n            sa.getThreadMeta(this._threadID, function(qc) {\n                if (!qc.is_subscribed) {\n                    nc.inform(\"unsubscribed\", this._threadID);\n                    return;\n                }\n            ;\n                qa.renderAndSeparatedParticipantList(this._threadID, [this._getNode(\"name\"),this._getNode(\"titlebarText\"),], {\n                    names_renderer: pa.renderShortNames,\n                    check_length: true\n                });\n                if ((qc.is_joinable && !o.get(\"joinable_conversation_is_modal\"))) {\n                    this._updateJoinableAddFriendSheet(qc);\n                };\n                this._updateMutingSettings(qc);\n                this._updateUnreadCount(qc);\n                this.updateMultichatTooltip();\n                this._updateArchiveWarning(qc);\n                this._updateNewThread(qc);\n                this._updateNameConversationSheet(qc);\n            }.bind(this));\n        },\n        _updateNameConversationSheet: function(qc) {\n            if ((((!qc.name && !qc.is_canonical) && !qc.name_conversation_sheet_dismissed) && !sa.isEmptyLocalThread(qc.thread_id))) {\n                this.showNameConversation(true);\n            }\n             else this.hideAutomaticNameConversation();\n        ;\n        },\n        _updateJoinableAddFriendSheet: function(qc) {\n            var rc = ka.user, sc = qc.participants.filter(function(tc) {\n                return (tc != rc);\n            });\n            if ((qc.is_joinable && (sc.length < 1))) {\n                this.showAddFriend();\n            };\n        },\n        updateSignatureID: function(qc) {\n            this._signatureID = qc;\n        },\n        _showPhotoNUXIfNecessary: function() {\n            if (sb) {\n                sb = false;\n                new k(\"/ajax/chat/photo_nux.php\").setRelativeTo(this._getNode(\"photoAttachLink\")).setData({\n                    threadID: this._threadID\n                }).send();\n                return true;\n            }\n        ;\n        },\n        _showStickerNUXIfNecessary: function() {\n            if (tb) {\n                tb = false;\n                new k(\"/ajax/messaging/stickers/nux\").setRelativeTo(this._getNode(\"emoticons\")).setData({\n                    threadID: this._threadID\n                }).send();\n                return true;\n            }\n        ;\n        },\n        _setUpMutingSettings: function(qc) {\n            var rc = ra.isThreadMuted(qc);\n            if (rc) {\n                this._sheetController.openThreadIsMutedTabSheet();\n            };\n            this._updateActionMenu(rc);\n        },\n        _updateMutingSettings: function(qc) {\n            var rc = ra.isThreadMuted(qc);\n            if ((rc && y.shown(this._getNode(\"muteThreadLink\").parentNode))) {\n                this._sheetController.openThreadIsMutedTabSheet();\n            }\n             else if ((!rc && y.shown(this._getNode(\"unmuteThreadLink\").parentNode))) {\n                this._sheetController.closeThreadIsMutedTabSheet();\n            }\n        ;\n            this._updateActionMenu(rc);\n        },\n        _updateActionMenu: function(qc) {\n            y.conditionShow(this._getNode(\"muteThreadLink\").parentNode, !qc);\n            y.conditionShow(this._getNode(\"unmuteThreadLink\").parentNode, qc);\n        },\n        _updateArchiveWarning: function(qc) {\n            var rc = false;\n            ka.get(ka.user, function(sc) {\n                rc = sc.employee;\n                if (rc) {\n                    ka.getMulti(qc.participants, this._showArchiveWarningIfAllParticipantsAreEmployees.bind(this));\n                };\n            }.bind(this));\n        },\n        _updateNewThread: function(qc) {\n            var rc = sa.isNewEmptyLocalThread(qc.thread_id);\n            y.conditionShow(this._getNode(\"dropdown\"), !rc);\n            if (rc) {\n                this.showAddFriend();\n                if (o.get(\"www_chat_compose_suggestions\", 0)) {\n                    this.showPeopleSuggestions();\n                };\n            }\n             else if (this._peopleSuggestions) {\n                this._peopleSuggestions.destroy();\n                this._peopleSuggestions = null;\n            }\n            \n        ;\n        },\n        _showArchiveWarningIfAllParticipantsAreEmployees: function(qc) {\n            var rc = true;\n            for (var sc in qc) {\n                rc = (rc && qc[sc].employee);;\n            };\n            var tc = this._getNode(\"titanArchiveWarning\");\n            if (tc) {\n                if (this._titlebarTooltipAnchor) {\n                    y.conditionClass(this._titlebarTooltipAnchor, \"narrowTitleBar\", rc);\n                };\n                y.conditionShow(tc, rc);\n            }\n        ;\n        },\n        updateMultichatTooltip: function() {\n            sa.getThreadMeta(this._threadID, function(qc) {\n                if (!qc.is_canonical) {\n                    vb(this._titlebarTooltipAnchor, qc.participants);\n                };\n            }.bind(this));\n        },\n        _getNode: function(qc) {\n            return this._tabTemplate.getNode(qc);\n        },\n        _getCanonicalUserID: function() {\n            return sa.getCanonicalUserInThread(this._threadID);\n        },\n        _listen: function(qc, event, rc, sc) {\n            var tc = this._getNode(qc);\n            if (tc) {\n                this._eventListeners.push(g.listen(tc, event, rc.bind(this)));\n            }\n             else if (!sc) {\n                throw new Error(((\"Could not find node \\\"\" + qc) + \"\\\"\"))\n            }\n        ;\n        },\n        _closePreClicked: function(qc) {\n            this._closeMouseDown = true;\n        },\n        _closeClicked: function(qc) {\n            oc(this);\n            nc.inform(\"closed-tab\", this._threadID);\n            qc.kill();\n        },\n        _nubClicked: function(qc) {\n            qc.kill();\n            return nc.inform(\"nub-activated\", this._threadID);\n        },\n        _dockKeyDown: function(event) {\n            if (((event.keyCode === ea.RETURN) || (event.keyCode === ea.SPACE))) {\n                nc.inform(\"nub-activated\", this._threadID);\n                event.kill();\n            }\n             else this._handleHotkeyPressed(event);\n        ;\n        },\n        _handleHotkeyPressed: function(event) {\n            if ((event.keyCode === ea.ESC)) {\n                oc(this);\n                nc.inform(\"esc-pressed\", this._threadID);\n                event.kill();\n            }\n             else if (((event.keyCode === ea.TAB) && !event.ctrlKey)) {\n                var qc = nc.inform(\"tab-pressed\", {\n                    id: this._threadID,\n                    shiftPressed: event.shiftKey\n                });\n                (!qc && event.kill());\n            }\n            \n        ;\n        },\n        _isTitleTextLinked: function() {\n            var qc = this._getCanonicalUserID();\n            return (qc && o.get(\"chat_tab_title_link_timeline\"));\n        },\n        _titleClicked: function(event) {\n            var qc = event.getTarget(), rc = wa.byClass(qc, \"titlebarText\"), sc = (rc && this._isTitleTextLinked());\n            if (((!sc && !wa.byClass(qc, \"uiSelector\")) && !wa.byClass(qc, \"addToThread\"))) {\n                nc.inform(\"lower-activated\", this._threadID);\n                event.kill();\n            }\n        ;\n        },\n        _callClicked: function(qc) {\n            var rc = this._getCanonicalUserID();\n            if (jb.availableForCall(rc)) {\n                var sc = \"chat_tab_icon\";\n                if ((qc.target && y.hasClass(qc.target, \"video_call_promo\"))) {\n                    sc = \"chat_tab_icon_promo\";\n                }\n                 else if ((qc.target && y.hasClass(qc.target, \"video_call_tour\"))) {\n                    sc = \"chat_tab_icon_tour\";\n                }\n            ;\n                nc.inform(\"video-call-clicked\", {\n                    threadID: this._threadID,\n                    userID: rc,\n                    clickSource: sc\n                });\n            }\n        ;\n            return false;\n        },\n        _addFriendLinkClicked: function() {\n            this.showAddFriend();\n        },\n        _nameConversationLinkClicked: function() {\n            this.showNameConversation();\n        },\n        _clearHistory: function() {\n            var qc = sa.getThreadMetaNow(this._threadID);\n            if (qc) {\n                var rc = this._getCanonicalUserID();\n                la.clearChat(this._threadID, rc, qc.timestamp);\n            }\n        ;\n        },\n        _unsubscribeLinkClicked: function() {\n            var qc = [];\n            qc.push({\n                name: \"unsubscribe\",\n                label: \"Leave Conversation\",\n                handler: this._unsubscribeToThread.bind(this)\n            });\n            qc.push(z.CANCEL);\n            new z().setTitle(\"Leave Conversation?\").setBody(\"You will stop receiving messages from this conversation and people will see that you left.\").setButtons(qc).show();\n        },\n        _reportSpamClicked: function() {\n            var qc = this._getCanonicalUserID(), rc = hb(\"/ajax/chat/report.php\").addQueryData({\n                id: qc\n            }).addQueryData({\n                src: \"top_report_link\"\n            });\n            j.send(new k(rc));\n        },\n        _showMuteSettingDialog: function(qc) {\n            ra.showMuteChangeDialog(qc, this._threadID);\n        },\n        _focusTab: function() {\n            y.addClass(this._tabElem, \"focusedTab\");\n            if (this._peopleSuggestions) {\n                this._peopleSuggestions.clearSuggestions();\n            };\n            this.tryMarkAsRead();\n            this._contextualDialogController.tabFocused();\n            if ((!ub && ((this._showPhotoNUXIfNecessary() || this._showStickerNUXIfNecessary())))) {\n                h.subscribe([\"ChatNUX/show\",\"ChatNUX/hide\",], function(event) {\n                    ub = (event === \"ChatNUX/show\");\n                });\n            };\n            this._closeMouseDown = false;\n            this._setCloseTooltip(true);\n        },\n        _blurTab: function() {\n            y.removeClass(this._tabElem, \"focusedTab\");\n            (!this._closeMouseDown && this._setCloseTooltip(false));\n        },\n        _setCloseTooltip: function(qc) {\n            var rc = this._getNode(\"titlebarCloseButton\"), sc = (qc ? \"Press Esc to close\" : \"Close tab\");\n            fb.set(rc, sc, \"above\");\n        },\n        _inputKeyDown: function(event) {\n            if (((event.keyCode === ea.RETURN) && !event.shiftKey)) {\n                if (hc(this)) {\n                    fc(this);\n                    event.kill();\n                    return;\n                }\n            ;\n                cc(this);\n                event.kill();\n                return;\n            }\n        ;\n            if ((((event.keyCode === ea.DOWN) && event.shiftKey) && (this._getNode(\"input\").value === \"\"))) {\n                nc.inform(\"lower-activated\", this._threadID);\n                event.kill();\n                return;\n            }\n        ;\n            this._handleHotkeyPressed(event);\n        },\n        tryMarkAsRead: function() {\n            if ((!this._messagesView || this._messagesView.isScrolledToBottom())) {\n                nc.inform(\"read\", this._threadID);\n                return true;\n            }\n        ;\n            return false;\n        },\n        _chatConvClicked: function(qc) {\n            this.tryMarkAsRead();\n            if ((wa.byTag(qc.getTarget(), \"a\") || ba.getSelection())) {\n                return\n            };\n            this.focus();\n        },\n        _inputContainerClicked: function(qc) {\n            this.tryMarkAsRead();\n            this.focus();\n        },\n        showTypingIndicator: function(qc) {\n            var rc = sa.getThreadMetaNow(this._threadID), sc = (this._getCanonicalUserID() || (((o.get(\"chat_multi_typ\") && rc) && !rc.is_canonical)));\n            if (sc) {\n                y.conditionClass(this._tabElem, \"typing\", qc);\n            };\n        },\n        _updateUnreadCount: function(qc) {\n            var rc = qc.unread_count;\n            if ((typeof rc != \"undefined\")) {\n                var sc = (!!rc && ((!n.showsTabUnreadUI || n.showsTabUnreadUI()))), tc = this._getNode(\"numMessages\");\n                y.conditionShow(tc, sc);\n                y.conditionClass(this._tabElem, \"highlightTab\", sc);\n                zb(this._threadID, this._tabElem, sc);\n                ba.setContent(tc, rc);\n            }\n        ;\n        },\n        _updateCallLink: function(qc) {\n            var rc = this._getNode(\"videoCallLink\");\n            if (w.isOnline()) {\n                var sc = this._getCanonicalUserID(), tc = (\"fbid:\" + sc);\n                ka.get(tc, function(uc) {\n                    if (jb.availableForCall(sc)) {\n                        fb.set(rc, ob._(\"Start a video call with {firstname}\", {\n                            firstname: uc.short_name\n                        }));\n                        this._updateCallBackLinks(this._tabElem, true);\n                    }\n                     else {\n                        fb.set(rc, ob._(\"{firstname} is currently unavailable for video calling\", {\n                            firstname: uc.short_name\n                        }));\n                        this._hideVideoCallouts();\n                        this._updateCallBackLinks(this._tabElem, false);\n                    }\n                ;\n                }.bind(this));\n            }\n             else {\n                fb.set(rc, \"You must be online to make a call.\");\n                this._hideVideoCallouts();\n                this._updateCallBackLinks(document.body, false);\n            }\n        ;\n        },\n        _updateCallBackLinks: function(qc, rc) {\n            var sc = ba.scry(qc, \"a.callBackLink\");\n            if (rc) {\n                sc.forEach(y.show);\n            }\n             else sc.forEach(y.hide);\n        ;\n        },\n        _hideVideoCallouts: function() {\n            this._contextualDialogController.hideVideoCallouts();\n        },\n        _updatePrivacyLink: function(qc) {\n            if ((qc == r.OFFLINE)) {\n                ba.setContent(this._privacyLink, \"Go online\");\n            }\n             else {\n                var rc = this._getCanonicalUserID(), sc = (\"fbid:\" + rc);\n                ka.get(sc, function(tc) {\n                    var uc = null;\n                    if ((qc == r.BLOCKED)) {\n                        uc = ob._(\"Turn On Chat for {name}\", {\n                            name: tc.short_name\n                        });\n                    }\n                     else uc = ob._(\"Turn Off Chat for {name}\", {\n                        name: tc.short_name\n                    });\n                ;\n                    ba.setContent(this._privacyLink, uc);\n                }.bind(this));\n            }\n        ;\n        },\n        _unsubscribeToThread: function() {\n            if (sa.isEmptyLocalThread(this._threadID)) {\n                nc.inform(\"unsubscribed\", this._threadID);\n            }\n             else {\n                var qc = ja.constructLogMessageObject(ma.CHAT_WEB, this._threadID, ia.UNSUBSCRIBE, {\n                });\n                ja.sendMessage(qc);\n            }\n        ;\n            return true;\n        },\n        _initializeUploader: function(qc) {\n            this._subscriptionsHandler.addSubscriptions(qc.subscribe([\"all-uploads-completed\",\"upload-canceled\",], function() {\n                jc(this);\n            }.bind(this)), qc.subscribe(\"dom-updated\", function() {\n                kc(this);\n            }.bind(this)), qc.subscribe(\"submit\", function() {\n                this._getNode(\"input\").focus();\n            }.bind(this)));\n        },\n        _initializeAutoSendPhotoUploader: function() {\n            this._photoUploader = new q(this._tabTemplate.getNode(\"photoAttachButtonForm\"), this._tabTemplate.getNode(\"photoFileInput\"), this._tabTemplate.getNode(\"photoAttachID\"));\n            var qc = {\n            };\n            lc(this, \"submit\", xa.UPLOAD_START);\n            lc(this, \"all-uploads-completed\", xa.ALL_UPLOADS_DONE);\n            lc(this, \"all-uploads-failed\", xa.CLIENT_ERROR);\n            this._subscriptionsHandler.addSubscriptions(this._photoUploader.subscribe(\"submit\", function(rc, sc) {\n                ec(this, \"\", sc.raw_attachments, function(tc) {\n                    qc[sc.upload_id] = tc;\n                    tc.do_not_send_to_server = true;\n                    tc.status = ga.RESENDING;\n                    ja.sendMessage(tc);\n                });\n                this._getNode(\"input\").focus();\n            }.bind(this)), this._photoUploader.subscribe(\"all-uploads-failed\", function(rc, sc) {\n                var tc = qc[sc.upload_id];\n                delete qc[sc.upload_id];\n                ja.deleteMessages(tc.thread_id, [tc.message_id,]);\n            }.bind(this)), this._photoUploader.subscribe(\"all-uploads-completed\", function(rc, sc) {\n                var tc = qc[sc.upload_id];\n                delete qc[sc.upload_id];\n                delete tc.raw_attachments;\n                tc.image_ids = sc.image_ids;\n                tc.do_not_send_to_server = false;\n                ja.sendMessage(tc);\n                var uc = (sc.image_ids.length || sc.attachments.length);\n                dc(this, uc);\n            }.bind(this)));\n        },\n        _stickerSelected: function(qc) {\n            ec(this, \"\", [], function(rc) {\n                rc.has_attachment = true;\n                rc.sticker_id = qc;\n                ja.sendMessage(rc);\n                this.focus();\n            }.bind(this));\n        },\n        _emoticonView: null\n    });\n    e.exports = nc;\n});\n__d(\"ChatNewMessageHandler\", [\"ChatActivity\",\"ChatTabModel\",\"ChatTabView\",\"JSLogger\",\"MercuryAssert\",\"MercuryBrowserAlerts\",\"MercuryUnseenState\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatActivity\"), h = b(\"ChatTabModel\"), i = b(\"ChatTabView\"), j = b(\"JSLogger\"), k = b(\"MercuryAssert\"), l = b(\"MercuryBrowserAlerts\"), m = b(\"MercuryUnseenState\").get(), n = j.create(\"chat_new_message\"), o = {\n        _raiseTab: function(p, q) {\n            var r = h.getTab(p), s = false;\n            if (r) {\n                s = r.raised;\n            }\n             else {\n                h.raiseTab(p, false);\n                s = true;\n            }\n        ;\n            q.to_new_tab = !r;\n            q.to_raised_tab = !!s;\n        },\n        _notify: function(p, q, r) {\n            var s = i.get(p);\n            r.view_is_visible = (s && s.isVisible());\n            r.view_is_focused = (s && s.isFocused());\n            if (!r.view_is_visible) {\n                n.log(\"message_to_hidden\");\n            };\n            r.is_active = g.isActive();\n            l.messageReceived(q);\n        },\n        _promoteTab: function(p, q, r) {\n            if (((r && !r[p]) && q)) {\n                h.promoteThreadInPlaceOfThread(p, q);\n            };\n        },\n        newMessage: function(p, q, r, s) {\n            k.isThreadID(p);\n            var t = {\n                thread_id: p,\n                message_id: q.message_id\n            };\n            this._raiseTab(p, t);\n            this._promoteTab(p, r, s);\n            this._notify(p, q, t);\n            n.log(\"message\", t);\n        }\n    };\n    l.subscribe(\"before-alert\", function(p, event) {\n        var q = event.threadID, r = i.get(q), s = h.getTab(q);\n        if ((((((s && s.raised) && r) && r.isVisible()) && r.isFocused()) && r.tryMarkAsRead())) {\n            m.markThreadSeen(q);\n            event.cancelAlert();\n        }\n    ;\n    });\n    e.exports = o;\n});\n__d(\"ChatTabPresence\", [\"AvailableList\",\"ChatTabModel\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableList\"), h = b(\"ChatTabModel\"), i = b(\"MercuryThreads\").get(), j = {\n    };\n    function k(l) {\n        var m = i.getCanonicalUserInThread(l);\n        if (m) {\n            g.updateForID(m);\n        };\n    };\n    h.subscribe(\"chat/tabs-changed\", function(event, l) {\n        l.tabs.forEach(function(m) {\n            if ((m.raised && !j[m.id])) {\n                k(m.id);\n            };\n        });\n        j = {\n        };\n        l.tabs.forEach(function(m) {\n            if (m.raised) {\n                j[m.id] = true;\n            };\n        });\n    });\n    e.exports = {\n    };\n});\n__d(\"ChatTabPolicy\", [\"ChatBehavior\",\"FBDesktopPlugin\",\"JSLogger\",\"MercuryActionTypeConstants\",\"MercuryAssert\",\"MercuryParticipants\",\"MercuryParticipantTypes\",\"MercurySourceType\",\"MercuryThreadMode\",\"MercuryThreadMuter\",\"MercuryUnseenState\",\"MessagingTag\",\"PresencePrivacy\",\"ShortProfiles\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatBehavior\"), h = b(\"FBDesktopPlugin\"), i = b(\"JSLogger\"), j = b(\"MercuryActionTypeConstants\"), k = b(\"MercuryAssert\"), l = b(\"MercuryParticipants\"), m = b(\"MercuryParticipantTypes\"), n = b(\"MercurySourceType\"), o = b(\"MercuryThreadMode\"), p = b(\"MercuryThreadMuter\"), q = b(\"MercuryUnseenState\").get(), r = b(\"MessagingTag\"), s = b(\"PresencePrivacy\"), t = b(\"ShortProfiles\"), u = i.create(\"tab_policy\");\n    function v(w, x) {\n        q.markThreadSeen(w, x);\n    };\n    e.exports = {\n        messageIsAllowed: function(w, x, y) {\n            var z = w.thread_id, aa = x.message_id;\n            k.isThreadID(z);\n            k.isParticipantID(x.author);\n            var ba;\n            if (p.isThreadMuted(w)) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    mute_settings: w.mute_settings\n                };\n                u.log(\"message_thread_muted\", ba);\n                return;\n            }\n        ;\n            if ((w.mode == o.OBJECT_ORIGINATED)) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    mode: w.mode\n                };\n                u.log(\"message_object_originated\", ba);\n                return;\n            }\n        ;\n            if (((x.source == n.EMAIL) || (x.source == n.TITAN_EMAIL_REPLY))) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    source: x.source\n                };\n                u.log(\"message_source_not_allowed\", ba);\n                return;\n            }\n        ;\n            var ca = l.getUserID(x.author);\n            if (!ca) {\n                u.log(\"message_bad_author\", {\n                    thread_id: z,\n                    message_id: aa,\n                    user: ca\n                });\n                return;\n            }\n        ;\n            if ((x.action_type != j.USER_GENERATED_MESSAGE)) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    type: x.action_type\n                };\n                u.log(\"message_non_user_generated\", ba);\n                return;\n            }\n        ;\n            if ((w.is_canonical_user && !g.notifiesUserMessages())) {\n                u.log(\"message_jabber\", {\n                    thread_id: z,\n                    message_id: aa\n                });\n                v(z, true);\n                return;\n            }\n        ;\n            if ((w.is_canonical && !w.canonical_fbid)) {\n                u.log(\"message_canonical_contact\", {\n                    thread_id: z,\n                    message_id: aa\n                });\n                return;\n            }\n        ;\n            if (h.shouldSuppressMessages()) {\n                u.log(\"message_desktop\", {\n                    thread_id: z,\n                    message_id: aa\n                });\n                return;\n            }\n        ;\n            if ((w.folder != r.INBOX)) {\n                u.log(\"message_folder\", {\n                    thread_id: z,\n                    message_id: aa,\n                    folder: w.folder\n                });\n                return;\n            }\n        ;\n            var da = l.getUserID(l.user);\n            t.getMulti([ca,da,], function(ea) {\n                if (!s.allows(ca)) {\n                    u.log(\"message_privacy\", {\n                        thread_id: z,\n                        message_id: aa,\n                        user: ca\n                    });\n                    return;\n                }\n            ;\n                var fa = (ea[ca].employee && ea[da].employee);\n                if ((!fa && (ea[ca].type !== m.FRIEND))) {\n                    u.log(\"message_non_friend\", {\n                        thread_id: z,\n                        message_id: aa,\n                        user: ca\n                    });\n                    return;\n                }\n            ;\n                y();\n            });\n        }\n    };\n});\n__d(\"ChatTabViewSelector\", [\"Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"MenuDeprecated\",\"MercuryThreadInformer\",\"MercuryThreads\",\"NubController\",\"ChatTabTemplates\",\"MercuryThreadMetadataRenderer\",\"Toggler\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"MenuDeprecated\"), m = b(\"MercuryThreadInformer\").get(), n = b(\"MercuryThreads\").get(), o = b(\"NubController\"), p = b(\"ChatTabTemplates\"), q = b(\"MercuryThreadMetadataRenderer\").get(), r = b(\"Toggler\"), s = b(\"copyProperties\");\n    function t(u) {\n        var v = p[\":fb:chat:tab:selector\"].build(), w = v.getRoot(), x = v.getNode(\"menu\"), y = k.find(x, \".uiMenuInner\"), z = {\n        }, aa = new o().init(w);\n        i.hide(w);\n        k.insertBefore(u, w);\n        function ba(ea) {\n            var fa = 0;\n            for (var ga in z) {\n                var ha = z[ga], ia = n.getThreadMetaNow(ga), ja = ha.getNode(\"unreadCount\"), ka = (((ia && ia.unread_count)) || 0);\n                fa += ka;\n                if ((ka > 9)) {\n                    ka = \"+\";\n                };\n                i.conditionClass(ja, \"invisible_elem\", !ka);\n                k.setContent(ja, ka);\n            };\n            var la = v.getNode(\"numMessages\");\n            i.conditionShow(la, fa);\n            k.setContent(la, fa);\n        };\n        this.setTabData = function(ea) {\n            z = {\n            };\n            if ((ea.length < 1)) {\n                i.hide(w);\n                return;\n            }\n        ;\n            i.show(w);\n            k.empty(y);\n            ea.forEach(function(fa) {\n                var ga = p[\":fb:chat:tab:selector:item\"].build();\n                z[fa.id] = ga;\n                var ha = ga.getNode(\"content\");\n                q.renderAndSeparatedParticipantList(fa.id, ha);\n                k.prependContent(y, ga.getRoot());\n                j.set(ga.getRoot(), \"threadID\", fa.id);\n                var ia = ga.getNode(\"closeButton\");\n                g.listen(ia, \"click\", function(event) {\n                    t.inform(\"selector/close-tab\", fa.id);\n                    event.kill();\n                });\n            });\n            aa.flyoutContentChanged();\n            k.setContent(v.getNode(\"numTabs\"), ea.length);\n            ba();\n        };\n        function ca(event, ea) {\n            if ((ea.menu != x)) {\n                return\n            };\n            var fa = j.get(ea.item, \"threadID\");\n            t.inform(\"selected\", fa);\n            r.hide(w);\n        };\n        function da(event, ea) {\n            l.register(x);\n        };\n        l.subscribe(\"select\", ca.bind(this));\n        r.listen(\"show\", w, function() {\n            h.inform(\"layer_shown\", {\n                type: \"ChatTabSelector\"\n            });\n            da();\n        });\n        r.listen(\"hide\", w, function() {\n            h.inform(\"layer_hidden\", {\n                type: \"ChatTabSelector\"\n            });\n        });\n        m.subscribe(\"threads-updated\", ba);\n    };\n    s(t, new h());\n    e.exports = t;\n});\n__d(\"ChatTabController\", [\"ChatTabPresence\",\"ChatTypeaheadBehavior\",\"Arbiter\",\"ChatActivity\",\"ChatBehavior\",\"ChatConfig\",\"ChatNewMessageHandler\",\"ChatTabMessagesView\",\"ChatTabModel\",\"ChatTabPolicy\",\"ChatTabView\",\"ChatTabViewSelector\",\"JSLogger\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"MercuryUnseenState\",\"Style\",\"UserAgent\",\"VideoCallCore\",], function(a, b, c, d, e, f) {\n    b(\"ChatTabPresence\");\n    b(\"ChatTypeaheadBehavior\");\n    var g = b(\"Arbiter\"), h = b(\"ChatActivity\"), i = b(\"ChatBehavior\"), j = b(\"ChatConfig\"), k = b(\"ChatNewMessageHandler\"), l = b(\"ChatTabMessagesView\"), m = b(\"ChatTabModel\"), n = b(\"ChatTabPolicy\"), o = b(\"ChatTabView\"), p = b(\"ChatTabViewSelector\"), q = b(\"JSLogger\"), r = b(\"MercuryParticipants\"), s = b(\"MercuryServerRequests\").get(), t = b(\"MercuryThreadInformer\").get(), u = b(\"MercuryThreads\").get(), v = b(\"MercuryUnseenState\").get(), w = b(\"Style\"), x = b(\"UserAgent\"), y = b(\"VideoCallCore\"), z = (j.get(\"tab_auto_close_timeout\") || 7200000), aa = q.create(\"tab_controller\");\n    function ba(na) {\n        u.changeThreadReadStatus(na, true);\n        ca(na);\n    };\n    function ca(na) {\n        v.markThreadSeen(na);\n    };\n    function da(na, oa, pa) {\n        var qa = m.get().tabs;\n        na += (oa ? 1 : -1);\n        while (((na >= 0) && (na < qa.length))) {\n            var ra = qa[na], sa = o.get(ra.id);\n            if (((sa && sa.isVisible()) && ((!pa || ra.raised)))) {\n                sa.focus();\n                return true;\n            }\n        ;\n            na += (oa ? 1 : -1);\n        };\n        return false;\n    };\n    function ea(na, oa, pa) {\n        var qa = oa.shouldPromoteOnRaise(na);\n        g.inform(\"chat/promote-tab\", na);\n        if (qa) {\n            m.raiseAndPromoteTab(na, true, pa);\n        }\n         else m.raiseTab(na, true, pa);\n    ;\n        var ra = o.get(na);\n        (ra && ra.focus());\n    };\n    function fa(na, oa, pa) {\n        var qa = pa.getMaxTabsToShow(), ra = m.indexOf(na);\n        m.closeTabAndDemote(na, (qa - 2), oa);\n        return ra;\n    };\n    function ga(na) {\n        var oa = Object.keys((na.getTabsToShow() || {\n        })), pa = (1 * 60), qa = null, ra = Infinity;\n        for (var sa = 0; (sa < oa.length); sa++) {\n            var ta = oa[sa], ua = u.getThreadMetaNow(ta);\n            if ((!o.get(ta).hasEmptyInput() || !ua)) {\n                continue;\n            };\n            var va = (((m.getServerTime() - ua.timestamp)) / 1000);\n            if ((!ua.timestamp || (((ua.timestamp && (ua.timestamp < ra)) && (va > pa))))) {\n                qa = ua.thread_id;\n                ra = ua.timestamp;\n            }\n        ;\n        };\n        return qa;\n    };\n    function ha(na) {\n        p.subscribe(\"selected\", function(pa, qa) {\n            ea(qa, na);\n        });\n        g.subscribe(\"chat/open-tab\", function(pa, qa) {\n            ea(qa.thread_id, na, qa.signature_id);\n        });\n        g.subscribe(\"page_transition\", function(pa, qa) {\n            m.closeFragileTabs();\n        });\n        o.subscribe(\"read\", function(event, pa) {\n            ba(pa);\n        });\n        h.subscribe(\"idle\", function(pa, qa) {\n            if ((qa > z)) {\n                var ra = m.get().tabs;\n                ra.forEach(function(sa) {\n                    var ta = sa.id;\n                    u.getThreadMeta(ta, function(ua) {\n                        if (!ua.unread_count) {\n                            aa.log(\"autoclose_idle_seen\", {\n                                thread_id: ta,\n                                idleness: qa\n                            });\n                            m.closeTab(ta, \"autoclose_idle_seen\");\n                        }\n                    ;\n                    });\n                });\n            }\n        ;\n        });\n        o.subscribe(\"nub-activated\", function(pa, qa) {\n            ea(qa, na);\n        });\n        o.subscribe(\"lower-activated\", function(pa, qa) {\n            m.lowerTab(qa);\n            var ra = o.get(qa);\n            (ra && ra.focus());\n        });\n        function oa(pa, qa) {\n            y.showOutgoingCallDialog(qa.userID, qa.clickSource);\n            m.lowerTab(qa.threadID);\n        };\n        o.subscribe(\"video-call-clicked\", oa);\n        l.subscribe(\"video-call-clicked\", oa);\n        o.subscribe(\"closed-tab\", function(pa, qa) {\n            aa.log(\"close_view\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_view\", na);\n            return false;\n        });\n        o.subscribe(\"thread-deleted\", function(pa, qa) {\n            aa.log(\"close_thread_deleted\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_thread_deleted\", na);\n            return false;\n        });\n        o.subscribe(\"unsubscribed\", function(pa, qa) {\n            aa.log(\"close_view_unsubscribed\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_view_unsubscribed\", na);\n            return false;\n        });\n        o.subscribe(\"esc-pressed\", function(pa, qa) {\n            aa.log(\"close_esc\", {\n                thread_id: qa\n            });\n            var ra = fa(qa, \"close_esc\", na);\n            (function() {\n                (da((ra - 1), true, true) || da(ra, false, true));\n            }).defer();\n        });\n        p.subscribe(\"selector/close-tab\", function(pa, qa) {\n            aa.log(\"close_chat_from_selector\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_chat_from_selector\", na);\n        });\n        t.subscribe(\"messages-received\", function(pa, qa) {\n            for (var ra in qa) {\n                var sa = qa[ra];\n                for (var ta = 0; (ta < sa.length); ta++) {\n                    var ua = sa[ta];\n                    if ((ua.author != r.user)) {\n                        if (!ua.is_unread) {\n                            aa.log(\"message_already_read\", {\n                                action_id: ua.action_id,\n                                thread_id: ua.thread_id\n                            });\n                            continue;\n                        }\n                    ;\n                        u.getThreadMeta(ra, function(va) {\n                            n.messageIsAllowed(va, ua, function() {\n                                var wa = (na.hasRoomForRaisedTab() ? undefined : ga(na));\n                                k.newMessage(ra, ua, wa, na.getTabsToShow());\n                            });\n                        });\n                    }\n                ;\n                };\n            };\n        });\n        t.subscribe(\"thread-read-changed\", function(pa, qa) {\n            for (var ra in qa) {\n                if (!qa[ra].mark_as_read) {\n                    aa.log(\"autoclose_marked_unread\", {\n                        thread_id: ra\n                    });\n                    m.closeTab(ra, \"autoclose_marked_unread\");\n                }\n            ;\n            };\n        });\n        o.subscribe(\"tab-pressed\", function(pa, qa) {\n            return !da(m.indexOf(qa.id), qa.shiftPressed);\n        });\n        g.subscribe(q.DUMP_EVENT, function(pa, qa) {\n            qa.chat_controller = {\n                auto_close_timeout: z\n            };\n        });\n    };\n    if (x.firefox()) {\n        var ia = function() {\n            return ((w.get(document.body, \"overflowX\") + \" \") + w.get(document.body, \"overflowY\"));\n        }, ja = ia(), ka = function() {\n            var na = ia();\n            if ((na !== ja)) {\n                ja = na;\n                g.inform(\"overflow-applied-to-body\");\n            }\n        ;\n        };\n        if ((\"MutationObserver\" in window)) {\n            var la = new MutationObserver(ka), ma = {\n                attributes: true,\n                attributeFilter: [\"class\",\"style\",]\n            };\n            la.observe(document.documentElement, ma);\n        }\n         else document.documentElement.addEventListener(\"DOMAttrModified\", function(event) {\n            if (((event.getTarget() === document.documentElement) && (((event.attrName === \"class\") || (event.attrName === \"style\"))))) {\n                ka();\n            };\n        }, false);\n    ;\n    }\n;\n    e.exports = ha;\n});\n__d(\"ChatTabViewCoordinator\", [\"Arbiter\",\"ChatTabModel\",\"ChatTabView\",\"ChatTabViewSelector\",\"CSS\",\"VideoCallCore\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatTabModel\"), i = b(\"ChatTabView\"), j = b(\"ChatTabViewSelector\"), k = b(\"CSS\"), l = b(\"VideoCallCore\");\n    function m(n, o) {\n        var p = new j(n), q = {\n        }, r = false;\n        function s() {\n            var w = h.get(), x = {\n            };\n            w.tabs.forEach(function(z) {\n                x[z.id] = 1;\n            });\n            for (var y in q) {\n                if (!x[y]) {\n                    q[y].destroy();\n                    delete (q[y]);\n                }\n            ;\n            };\n            t(w);\n            u(w);\n        };\n        function t(w) {\n            var x = null;\n            w.tabs.forEach(function(y) {\n                var z = y.id, aa = false;\n                if (!q[z]) {\n                    q[z] = new i(z, y.server_id, y.signatureID);\n                    aa = true;\n                }\n                 else q[z].updateSignatureID(y.signatureID);\n            ;\n                if ((aa || !q[z].nextTabIs(x))) {\n                    var ba = q[z].getScrollTop();\n                    if (x) {\n                        q[z].insertBefore(x);\n                    }\n                     else q[z].appendTo(n);\n                ;\n                    if (ba) {\n                        q[z].setScrollTop(ba);\n                    };\n                }\n            ;\n                x = q[z];\n            });\n        };\n        function u(w) {\n            var x = o.getTabsToShow(w), y = [], z = false;\n            w.tabs.forEach(function(aa) {\n                if (!x[aa.id]) {\n                    q[aa.id].setVisibleState(false, aa.raised);\n                    y.push(aa);\n                }\n            ;\n            });\n            w.tabs.forEach(function(aa) {\n                if (x[aa.id]) {\n                    q[aa.id].setVisibleState(true, aa.raised);\n                    z |= aa.raised;\n                }\n            ;\n            });\n            p.setTabData(y);\n            v(z);\n        };\n        function v(w) {\n            if ((!w && r)) {\n                g.inform(\"layer_hidden\", {\n                    type: \"ChatTab\"\n                });\n                r = false;\n            }\n             else if ((w && !r)) {\n                g.inform(\"layer_shown\", {\n                    type: \"ChatTab\"\n                });\n                r = true;\n            }\n            \n        ;\n        };\n        if (l.isSupported()) {\n            k.addClass(n, \"videoCallEnabled\");\n        };\n        o.subscribe(\"tabs-changed\", s);\n        s();\n    };\n    e.exports = m;\n});\n__d(\"TabsViewport\", [\"Arbiter\",\"ArbiterMixin\",\"ChatTabModel\",\"Dock\",\"DOM\",\"DOMDimensions\",\"Event\",\"Parent\",\"Vector\",\"ViewportBounds\",\"areObjectsEqual\",\"copyProperties\",\"csx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"ChatTabModel\"), j = b(\"Dock\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"Event\"), n = b(\"Parent\"), o = b(\"Vector\"), p = b(\"ViewportBounds\"), q = b(\"areObjectsEqual\"), r = b(\"copyProperties\"), s = b(\"csx\"), t = b(\"shield\"), u = 164, v = 264;\n    function w(x) {\n        this._root = x;\n        var y = this._recalculateWidth.bind(this);\n        m.listen(window, \"resize\", y);\n        j.subscribe(\"resize\", y);\n        g.subscribe([\"LitestandSidebar/expand\",\"LitestandSidebar/collapse\",], y);\n        g.subscribeOnce([\"sidebar/initialized\",\"LitestandSidebar/initialized\",], y, g.SUBSCRIBE_NEW);\n        i.subscribe(\"chat/tabs-changed\", t(this._recalculateTabs, this, true));\n        this._recalculateWidth();\n        this._initialized = true;\n    };\n    r(w.prototype, h, {\n        _root: null,\n        _initialized: false,\n        _availableWidth: 0,\n        _maxShown: 1,\n        _viewState: null,\n        _recalculateWidth: function() {\n            var x = w._getAvailableDockWidth(this._root), y = Math.max(1, Math.floor((x / v))), z = (y != this._maxShown);\n            if ((((!this._viewState || z) || (x <= this._viewState.usedWidth)) || (x > this._viewState.widthToShowNext))) {\n                this._availableWidth = x;\n                this._maxShown = y;\n                this._viewState = null;\n                this._recalculateTabs(z);\n            }\n        ;\n        },\n        _onTabsChanged: function() {\n            if (this._initialized) {\n                this.inform(\"tabs-changed\");\n                this.inform(\"max-to-show-changed\", this._maxShown);\n                this.inform(\"max-to-show-change-completed\");\n            }\n        ;\n        },\n        _recalculateTabs: function(x) {\n            var y = w._getTabsToShow(i.get(), this._availableWidth);\n            if ((x || !q(this._viewState, y))) {\n                this._viewState = y;\n                this._onTabsChanged();\n            }\n        ;\n        },\n        getMaxTabsToShow: function() {\n            return this._maxShown;\n        },\n        checkWidth: function() {\n            this._recalculateWidth();\n        },\n        hasRoomForRaisedTab: function() {\n            return ((this._availableWidth - this._viewState.usedWidth) > v);\n        },\n        getTabsToShow: function() {\n            return JSON.parse(JSON.stringify(this._viewState.tabsToShow));\n        },\n        shouldPromoteOnRaise: function(x) {\n            if (!this._viewState.tabsToShow[x]) {\n                return true\n            };\n            if ((this._viewState.nextToHide != x)) {\n                return false\n            };\n            var y = i.getTab(x), z = (y && y.raised);\n            return (!z && (((this._availableWidth - this._viewState.usedWidth) < 100)));\n        }\n    });\n    r(w, {\n        _getAvailableDockWidth: function(x) {\n            var y = l.getViewportWithoutScrollbarDimensions().width;\n            y -= (p.getLeft() + p.getRight());\n            y -= 50;\n            var z = n.byClass(x, \"fbDock\"), aa = k.find(z, \"._56ox\"), ba = o.getElementDimensions(aa).x;\n            y -= ba;\n            var ca = k.find(z, \"._56oy\");\n            ba += o.getElementDimensions(ca).x;\n            var da = o.getElementDimensions(z), ea = (da.x - ba);\n            y -= ea;\n            y -= 15;\n            return Math.max(y, 0);\n        },\n        _getTabsToShow: function(x, y) {\n            y = Math.max(y, (v + 1));\n            function z(oa) {\n                return (oa.raised ? v : u);\n            };\n            var aa = JSON.parse(JSON.stringify(x.tabs)), ba = -1, ca = null;\n            if (x.promoted) {\n                aa.forEach(function(oa, pa) {\n                    if ((oa.id === x.promoted)) {\n                        ba = pa;\n                        ca = oa;\n                    }\n                ;\n                });\n            };\n            var da = 0, ea = 0, fa = !ca;\n            aa.forEach(function(oa, pa) {\n                var qa = z(oa);\n                oa.leftmostOffset = (da + v);\n                da += qa;\n                if ((oa.leftmostOffset < y)) {\n                    ea++;\n                };\n                fa |= (pa == ba);\n                oa.alreadyPlacedPromoted = fa;\n            });\n            function ga(oa, pa, qa) {\n                var ra = {\n                };\n                for (var sa = 0; (sa < pa); sa++) {\n                    var ta = oa[sa];\n                    if ((!ta.alreadyPlacedPromoted && (sa == (pa - 1)))) {\n                        ra[qa] = true;\n                    }\n                     else ra[ta.id] = true;\n                ;\n                };\n                return ra;\n            };\n            var ha = ga(aa, ea, x.promoted), ia = ga(aa, (ea - 1), x.promoted), ja = null;\n            for (var ka in ha) {\n                if (!ia[ka]) {\n                    ja = ka;\n                };\n            };\n            var la = aa[(ea - 1)], ma = (la ? la.leftmostOffset : 0), na = Infinity;\n            if ((ea < aa.length)) {\n                na = aa[ea].leftmostOffset;\n            };\n            return {\n                nextToHide: ja,\n                tabsToShow: ha,\n                usedWidth: ma,\n                widthToShowNext: na\n            };\n        }\n    });\n    e.exports = w;\n});\n__d(\"LinkshimHandler\", [\"Event\",\"LinkshimAsyncLink\",\"LinkshimHandlerConfig\",\"URI\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"LinkshimAsyncLink\"), i = b(\"LinkshimHandlerConfig\"), j = b(\"URI\"), k = b(\"shield\"), l = {\n        setUpLinkshimHandling: function(r) {\n            var s = j(r.getAttribute(\"href\")), t = m(s);\n            if ((t && n(s))) {\n                g.listen(r, \"mouseover\", k(h.swap, null, r, t));\n                var u = p(s);\n                g.listen(r, \"click\", function() {\n                    if (i.supports_meta_referrer) {\n                        h.referrer_log(r, u, o(s).toString());\n                    }\n                     else h.swap(r, s);\n                ;\n                });\n            }\n        ;\n        }\n    };\n    function m(r) {\n        return (r.getQueryData().u ? new j(r.getQueryData().u) : null);\n    };\n    function n(r) {\n        return r.getQueryData().hasOwnProperty(\"s\");\n    };\n    function o(r) {\n        return j(\"/si/ajax/l/render_linkshim_log/\").setSubdomain(\"www\").setQueryData(r.getQueryData());\n    };\n    function p(r) {\n        var s;\n        if (q()) {\n            s = j(r).addQueryData({\n                render_verification: true\n            });\n        }\n         else s = m(r);\n    ;\n        return s;\n    };\n    function q() {\n        var r = (i.render_verification_rate || 0);\n        return (Math.floor(((Math.random() * r) + 1)) === r);\n    };\n    e.exports = l;\n});\n__d(\"legacy:CompactTypeaheadRenderer\", [\"CompactTypeaheadRenderer\",], function(a, b, c, d) {\n    if (!a.TypeaheadRenderers) {\n        a.TypeaheadRenderers = {\n        };\n    };\n    a.TypeaheadRenderers.compact = b(\"CompactTypeaheadRenderer\");\n}, 3);");
36559 // 12313
36560 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sa12b713637f060cce8695ac62ceaa2dbc01621b6");
36561 // 12314
36562 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"brbS1\",]);\n}\n;\n;\n__d(\"BlackbirdUpsellConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        ACTION_UPSELL: \"upsell\",\n        CLICK_TYPE_DISMISS_PROMO: \"dismiss_promo\",\n        ACTION_EDUCATE: \"educate\",\n        CLICK_TYPE_ENABLE_CHAT: \"enable_chat\",\n        CLICK_TYPE_OPEN_SETTINGS: \"open_settings\"\n    };\n});\n__d(\"GenderConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        UNKNOWN: 0,\n        FEMALE_SINGULAR: 1,\n        MALE_SINGULAR: 2,\n        FEMALE_SINGULAR_GUESS: 3,\n        MALE_SINGULAR_GUESS: 4,\n        MIXED_SINGULAR: 5,\n        MIXED_PLURAL: 5,\n        NEUTER_SINGULAR: 6,\n        UNKNOWN_SINGULAR: 7,\n        FEMALE_PLURAL: 8,\n        MALE_PLURAL: 9,\n        NEUTER_PLURAL: 10,\n        UNKNOWN_PLURAL: 11\n    };\n    e.exports = g;\n});\n__d(\"AsyncLoader\", [\"copyProperties\",\"AsyncRequest\",\"BaseAsyncLoader\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"AsyncRequest\"), i = b(\"BaseAsyncLoader\");\n    function j(k, l) {\n        this._endpoint = k;\n        this._type = l;\n    };\n;\n    g(j.prototype, i.prototype);\n    j.prototype.send = function(k, l, m, n, o) {\n        new h(k).setData({\n            ids: l\n        }).setHandler(n).setErrorHandler(o).setAllowCrossPageTransition(true).setMethod(\"GET\").setReadOnly(true).send();\n    };\n    e.exports = j;\n});\n__d(\"BlackbirdUpsell\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"LegacyContextualDialog\",\"DOM\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"PresencePrivacy\",\"copyProperties\",\"BlackbirdUpsellConfig\",\"BlackbirdUpsellConstants\",\"BlackbirdUpsellTemplates\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"LegacyContextualDialog\"), k = b(\"DOM\"), l = b(\"LayerDestroyOnHide\"), m = b(\"LayerHideOnTransition\"), n = b(\"PresencePrivacy\"), o = b(\"copyProperties\"), p = b(\"BlackbirdUpsellConfig\"), q = b(\"BlackbirdUpsellConstants\"), r = b(\"BlackbirdUpsellTemplates\"), s = \"/ajax/chat/blackbird/update_clicks.php\", t = \"/ajax/chat/blackbird/update_impressions.php\", u = \"/ajax/chat/blackbird/dismiss.php\", v = 235, w = null, x = null, y = false, z = false;\n    function aa() {\n    \n    };\n;\n    o(aa, {\n        shouldShow: function() {\n            if (this._dialogDismissed) {\n                return false;\n            }\n        ;\n        ;\n            if (this.isEducation()) {\n                return ((((!!p.EducationGK && !p.EducationDismissed)) && ((p.EducationImpressions < p.EducationImpressionLimit))));\n            }\n             else return ((((((!!p.UpsellGK && !p.UpsellDismissed)) && ((p.UpsellImpressions < p.UpsellImpressionLimit)))) && ((p.FriendCount >= p.UpsellMinFriendCount))))\n        ;\n        },\n        isEducation: function() {\n            return ((p.TimeOffline <= p.EducationTimeOfflineThresdhold));\n        },\n        getOfflineContent: function() {\n            if (this.isEducation()) {\n                return this._getEducationContent();\n            }\n             else return this._getUpsellContent()\n        ;\n        },\n        _getEducationContent: function() {\n            ga();\n            var ka = r[\":fb:chat:blackbird:offline-educate\"].build(), la = ka.getNode(\"chatSettingsButton\");\n            g.listen(la, \"click\", function() {\n                h.inform(\"chat/advanced-settings-dialog-opened\");\n                ja(q.CLICK_TYPE_OPEN_SETTINGS);\n                da();\n            });\n            return ka.getRoot();\n        },\n        _getUpsellContent: function() {\n            fa();\n            var ka = r[\":fb:chat:blackbird:upsell\"].build(), la = ka.getNode(\"chatSettingsButton\");\n            g.listen(la, \"click\", function() {\n                h.inform(\"chat/advanced-settings-dialog-opened\");\n                ia(q.CLICK_TYPE_OPEN_SETTINGS);\n                ca();\n            });\n            var ma = ka.getNode(\"enableChatButton\");\n            g.listen(ma, \"click\", function() {\n                ia(q.CLICK_TYPE_ENABLE_CHAT);\n                ca();\n            });\n            return ka.getRoot();\n        },\n        getBlackbirdContent: function(ka) {\n            ga();\n            switch (ka) {\n              case n.ONLINE:\n                return r[\":fb:chat:blackbird:most-friends-educate\"].build().getRoot();\n              case n.OFFLINE:\n                return r[\":fb:chat:blackbird:some-friends-educate\"].build().getRoot();\n            };\n        ;\n        },\n        showOfflineDialog: function(ka) {\n            this.showDialog(ka, this.getOfflineContent.bind(this));\n        },\n        showBlackbirdDialog: function(ka, la) {\n            this.showDialog(ka, this.getBlackbirdContent.curry(la));\n        },\n        showDialog: function(ka, la) {\n            ((!w && this._constructDialog()));\n            k.setContent(x, la());\n            w.setContext(ka);\n            w.show();\n        },\n        hide: function() {\n            if (((w && w.isShown()))) {\n                w.hide();\n            }\n        ;\n        ;\n        },\n        dismiss: function() {\n            this.hide();\n            if (this.isEducation()) {\n                da();\n            }\n             else ca();\n        ;\n        ;\n        },\n        registerDismissClick: function() {\n            if (this.isEducation()) {\n                ja(q.CLICK_TYPE_DISMISS_PROMO);\n            }\n             else ia(q.CLICK_TYPE_DISMISS_PROMO);\n        ;\n        ;\n        },\n        isVisible: function() {\n            return ((z && !y));\n        },\n        _constructDialog: function() {\n            var ka = r[\":fb:chat:blackbird:dialog-frame\"].build();\n            x = ka.getNode(\"dialogContent\");\n            w = new j();\n            w.init(ka.getRoot());\n            w.setPosition(\"above\").setWidth(v).setFixed(true).disableBehavior(l).disableBehavior(m);\n            g.listen(ka.getNode(\"dialogCloseButton\"), \"click\", this.dismiss.bind(this));\n            g.listen(ka.getNode(\"dialogCloseButton\"), \"click\", this.registerDismissClick.bind(this));\n        }\n    });\n    function ba(ka, la) {\n        if (((!y && z))) {\n            y = true;\n            n.inform(\"privacy-user-presence-changed\");\n            var ma = new i(u);\n            ma.setData({\n                source: ka,\n                impressions: la,\n                time_offline: p.TimeOffline\n            });\n            ma.setErrorHandler(function() {\n                y = false;\n            });\n            ma.send();\n        }\n    ;\n    ;\n    };\n;\n    function ca() {\n        ba(q.ACTION_UPSELL, p.UpsellImpressions);\n    };\n;\n    function da() {\n        ba(q.ACTION_EDUCATE, p.EducationImpressions);\n    };\n;\n    function ea(ka, la) {\n        if (!z) {\n            z = true;\n            var ma = new i(t);\n            ma.setData({\n                action: ka,\n                impressions: la,\n                time_offline: p.TimeOffline\n            });\n            ma.setErrorHandler(function() {\n                z = false;\n            });\n            ma.send();\n        }\n    ;\n    ;\n    };\n;\n    function fa() {\n        ea(q.ACTION_UPSELL, p.UpsellImpressions);\n    };\n;\n    function ga() {\n        ea(q.ACTION_EDUCATE, p.EducationImpressions);\n    };\n;\n    function ha(ka, la, ma, na) {\n        var oa = new i(s);\n        oa.setData({\n            action: ka,\n            impressions: ma,\n            source: la,\n            time_offline: na\n        });\n        oa.send();\n    };\n;\n    function ia(ka) {\n        ha(ka, q.ACTION_UPSELL, p.UpsellImpressions, p.TimeOffline);\n    };\n;\n    function ja(ka) {\n        ha(ka, q.ACTION_EDUCATE, p.EducateImpressions, p.TimeOffline);\n    };\n;\n    h.subscribe(\"chat/advanced-settings-dialog-opened\", aa.dismiss.bind(aa));\n    h.subscribe(\"chat-visibility/go-online\", aa.dismiss.bind(aa));\n    h.subscribe(\"chat-visibility/go-offline\", aa.dismiss.bind(aa));\n    e.exports = aa;\n});\n__d(\"ChatFavoriteNux\", [\"AsyncRequest\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = null, i = false, j = {\n        tryShow: function(k) {\n            if (((h && !i))) {\n                h.setContext(k);\n                h.show();\n                i = true;\n            }\n        ;\n        ;\n        },\n        tryHide: function() {\n            if (((h && i))) {\n                h.hide();\n                h = null;\n            }\n        ;\n        ;\n        },\n        registerDialog: function(k) {\n            h = k;\n            if (k) {\n                k.subscribe(\"JSBNG__confirm\", this.dismissDialog);\n            }\n        ;\n        ;\n        },\n        dismissDialog: function() {\n            if (h) {\n                new g(\"/ajax/chat/dismiss_favorite_nux.php\").send();\n                h.hide();\n                h = null;\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = j;\n});\n__d(\"ChatGroupThreadsController\", [\"ArbiterMixin\",\"ChatConfig\",\"InitialMultichatList\",\"MercuryOrderedThreadlist\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"MessagingTag\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"ChatConfig\"), i = b(\"InitialMultichatList\"), j = b(\"MercuryOrderedThreadlist\").get(), k = b(\"MercuryServerRequests\").get(), l = b(\"MercuryThreadInformer\").get(), m = b(\"MercuryThreads\").get(), n = b(\"MessagingTag\"), o = b(\"copyProperties\"), p, q = [], r = h.get(\"max_sidebar_multichats\", 3);\n    function s(x) {\n        var y = m.getThreadMetaNow(x);\n        return ((((y && !y.is_canonical)) && m.canReply(x)));\n    };\n;\n    var t = i.payload;\n    if (t) {\n        k.handleUpdate(t);\n        var u = ((t.threads || []));\n        q = u.map(function(x) {\n            return x.thread_id;\n        });\n    }\n;\n;\n    if (q.length) {\n        var v = m.getThreadMetaNow(q[((q.length - 1))]);\n        p = ((v && ((v.timestamp - 1))));\n    }\n;\n;\n    if (!p) {\n        p = JSBNG__Date.now();\n    }\n;\n;\n    var w = {\n    };\n    o(w, g, {\n        getThreadIDs: function() {\n            var x = 0;\n            return q.filter(function(y) {\n                return ((((((x < r)) && s(y))) && ++x));\n            });\n        }\n    });\n    l.subscribe(\"threadlist-updated\", function() {\n        q = j.getThreadlistUntilTimestamp(p, n.INBOX, n.GROUPS).filter(s);\n        w.inform(\"update\");\n    });\n    e.exports = w;\n});\n__d(\"ChatHovercard\", [\"Arbiter\",\"AsyncLoader\",\"Hovercard\",\"JSLogger\",\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncLoader\"), i = b(\"Hovercard\"), j = b(\"JSLogger\"), k = b(\"debounce\"), l = 5, m = new h(\"/ajax/chat/hovercard/sidebar.php\", \"hover\"), n = j.create(\"chat_hovercard\");\n    g.subscribe(\"Hovercard/dirty\", m.reset.bind(m));\n    function o(s, t) {\n        m.get(s, function(u) {\n            (function() {\n                if (!u) {\n                    n.error(\"fetch_failure\", {\n                        id: s\n                    });\n                    return;\n                }\n            ;\n            ;\n                var v = i.getDialog(u);\n                if (!v) {\n                    n.error(\"no_hovercard\", {\n                        id: s,\n                        endpoint: u\n                    });\n                    return;\n                }\n            ;\n            ;\n                if (((s == t.getActiveID()))) {\n                    t.showHovercard(s, v);\n                }\n            ;\n            ;\n            }).defer();\n        });\n    };\n;\n    function p(s, t) {\n        var u = [];\n        function v(y) {\n            if (((((y >= 0)) && ((y < s.length))))) {\n                u.push(s[y]);\n            }\n        ;\n        ;\n        };\n    ;\n        var w = s.indexOf(t);\n        if (((w > -1))) {\n            v(w);\n            for (var x = 1; ((x < l)); x++) {\n                v(((w + x)));\n                v(((w - x)));\n            };\n        ;\n        }\n    ;\n    ;\n        return u.filter(function(y) {\n            return y;\n        });\n    };\n;\n    function q(s, t) {\n        var u = t.getActiveID();\n        if (u) {\n            var v = s.getShowingUsers(), w = p(v, u);\n            m.get(w, function() {\n            \n            });\n        }\n    ;\n    ;\n    };\n;\n    function r(s) {\n        var t = s.getHoverController();\n        t.registerDefault(o);\n        t.subscribe(\"hover\", k(q.curry(s, t), 100));\n    };\n;\n    e.exports = r;\n});\n__d(\"ChatOptions\", [\"Arbiter\",\"ChannelConstants\",\"JSLogger\",\"PresenceUtil\",\"copyProperties\",\"ChatOptionsInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"JSLogger\"), j = b(\"PresenceUtil\"), k = b(\"copyProperties\"), l = i.create(\"chat_options\"), m = {\n    };\n    (function() {\n        var o = b(\"ChatOptionsInitialData\");\n        {\n            var fin214keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin214i = (0);\n            var p;\n            for (; (fin214i < fin214keys.length); (fin214i++)) {\n                ((p) = (fin214keys[fin214i]));\n                {\n                    var q = o[p];\n                    m[p] = !!q;\n                };\n            };\n        };\n    ;\n    })();\n    var n = k(new g(), {\n        getSetting: function(o) {\n            return m[o];\n        },\n        setSetting: function(o, p, q) {\n            if (((this.getSetting(o) == p))) {\n                return;\n            }\n        ;\n        ;\n            if (q) {\n                q = ((\"from_\" + q));\n                l.log(q, {\n                    JSBNG__name: o,\n                    new_value: p,\n                    old_value: this.getSetting(o)\n                });\n            }\n        ;\n        ;\n            m[o] = !!p;\n            g.inform(\"chat/option-changed\", {\n                JSBNG__name: o,\n                value: p\n            });\n        }\n    });\n    g.subscribe(h.getArbiterType(\"setting\"), function(o, p) {\n        var q = p.obj;\n        if (((q.window_id === j.getSessionID()))) {\n            return;\n        }\n    ;\n    ;\n        n.setSetting(q.setting, !!q.value, \"channel\");\n    });\n    g.subscribe(i.DUMP_EVENT, function(o, p) {\n        p.chat_options = m;\n    });\n    e.exports = n;\n});\n__d(\"ChatOrderedListHover\", [\"function-extensions\",\"ArbiterMixin\",\"ChatFavoriteList\",\"CSS\",\"ErrorUtils\",\"JSBNG__Event\",\"LayerHideOnBlur\",\"Parent\",\"copyProperties\",\"cx\",\"setTimeoutAcrossTransitions\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"ArbiterMixin\"), h = b(\"ChatFavoriteList\"), i = b(\"CSS\"), j = b(\"ErrorUtils\"), k = b(\"JSBNG__Event\"), l = b(\"LayerHideOnBlur\"), m = b(\"Parent\"), n = b(\"copyProperties\"), o = b(\"cx\"), p = b(\"setTimeoutAcrossTransitions\"), q = b(\"shield\");\n    function r(u) {\n        i.addClass(u, \"fetching\");\n    };\n;\n    function s(u) {\n        i.removeClass(u, \"fetching\");\n    };\n;\n    function t(u) {\n        this._orderedList = u;\n        this._root = u.getRoot();\n        k.listen(this._root, \"mouseover\", this._mouseOver.bind(this));\n        k.listen(this._root, \"mouseleave\", this._mouseLeave.bind(this));\n        u.subscribe(\"click\", q(this._hide, this));\n    };\n;\n    n(t.prototype, g, {\n        _root: null,\n        _activeItem: null,\n        _hideTimeout: null,\n        _showTimeout: null,\n        _showingDialog: null,\n        _showingID: null,\n        _handlers: {\n        },\n        _defaultHandler: null,\n        _mouseOver: function(JSBNG__event) {\n            if (this._paused) {\n                return;\n            }\n        ;\n        ;\n            var u = JSBNG__event.getTarget(), v = ((m.byClass(u, \"_42fz\") || m.byClass(u, \"_5a58\")));\n            ((v && this._setActiveItem(v)));\n        },\n        _mouseLeave: function(JSBNG__event) {\n            this._setActiveItem(null);\n        },\n        _clearTimeouts: function() {\n            ((this._showTimeout && JSBNG__clearTimeout(this._showTimeout)));\n            this._showTimeout = null;\n            ((this._hideTimeout && JSBNG__clearTimeout(this._hideTimeout)));\n            this._hideTimeout = null;\n        },\n        _hide: function() {\n            if (this._showingDialog) {\n                this._showingDialog.hide();\n                this._showingDialog = null;\n                this._showingID = null;\n            }\n        ;\n        ;\n        },\n        _show: function() {\n            var u = this.getActiveID(), v = false;\n            if (this._handlers[u]) {\n                v = true;\n                j.applyWithGuard(this._handlers[u], {\n                }, [u,this,]);\n            }\n             else if (this._defaultHandler) {\n                v = true;\n                j.applyWithGuard(this._defaultHandler, {\n                }, [u,this,]);\n            }\n            \n        ;\n        ;\n            if (((v && ((this._showingID != this.getActiveID()))))) {\n                r(this._activeItem);\n            }\n        ;\n        ;\n        },\n        _setActiveItem: function(u) {\n            if (h.isEditMode()) {\n                this._clearTimeouts();\n                this._hide();\n                return;\n            }\n        ;\n        ;\n            if (((u != this._activeItem))) {\n                this._clearTimeouts();\n                ((this._activeItem && s(this._activeItem)));\n                this._activeItem = null;\n                var v = ((u ? 0 : 100));\n                this._hideTimeout = p(function() {\n                    if (((this.getActiveID() != this._showingID))) {\n                        this._hide();\n                    }\n                ;\n                ;\n                }.bind(this), v);\n                if (u) {\n                    this._activeItem = u;\n                    var w = ((v + 500));\n                    this._showTimeout = p(function() {\n                        this._show();\n                    }.bind(this), w);\n                    this.inform(\"hover\");\n                }\n                 else this.inform(\"leave\");\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        register: function(u, v) {\n            if (!this._handlers[u]) {\n                this._handlers[u] = v;\n                return {\n                    unregister: function() {\n                        if (((u == this._showingID))) {\n                            this._hide();\n                        }\n                    ;\n                    ;\n                        delete this._handlers[u];\n                        var w = this._orderedList.getAllNodes(), x = w[u];\n                        ((x && s(x)));\n                    }.bind(this)\n                };\n            }\n        ;\n        ;\n        },\n        registerDefault: function(u) {\n            this._defaultHandler = u;\n        },\n        getActiveID: function() {\n            var u = ((this._activeItem && this._orderedList.getUserForNode(this._activeItem)));\n            return ((u || null));\n        },\n        showHovercard: function(u, v) {\n            if (((((u == this.getActiveID())) && ((u != this._showingID))))) {\n                this._clearTimeouts();\n                s(this._activeItem);\n                this._hide();\n                this._showingDialog = v;\n                this._showingID = u;\n                var w = v.subscribe(\"mouseenter\", this._setActiveItem.bind(this, this._activeItem)), x = v.subscribe(\"mouseleave\", function() {\n                    w.unsubscribe();\n                    this._setActiveItem(null);\n                }.bind(this)), y = v.subscribe(\"hide\", function() {\n                    this.inform(\"hovercard_hide\");\n                    w.unsubscribe();\n                    x.unsubscribe();\n                    y.unsubscribe();\n                }.bind(this));\n                v.enableBehavior(l).setContext(this._activeItem).setPosition(\"left\").show();\n                this.inform(\"hovercard_show\");\n            }\n        ;\n        ;\n        },\n        setPaused: function(u) {\n            this._paused = u;\n        }\n    });\n    e.exports = t;\n});\n__d(\"ChatQuietLinks\", [\"JSBNG__Event\",\"DOM\",\"UserAgent\",\"DataStore\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"UserAgent\"), j = b(\"DataStore\"), k = b(\"Parent\"), l = {\n    }, m = {\n        silenceLinks: function(q) {\n            n(q, this.removeEmptyHrefs.bind(this));\n        },\n        nukeLinks: function(q) {\n            n(q, this.removeAllHrefs.bind(this));\n        },\n        removeEmptyHrefs: function(q) {\n            o(q, function(r) {\n                return ((!r || ((r === \"#\"))));\n            });\n        },\n        removeAllHrefs: function(q) {\n            o(q);\n        },\n        removeMessagesHrefs: function(q) {\n            o(q, function(r) {\n                return ((((!r || ((r === \"#\")))) || ((r.indexOf(\"/messages/\") != -1))));\n            });\n        }\n    };\n    function n(q, r) {\n        var s = !!i.chrome(), t = ((((!!i.chrome() || ((i.ie() >= 9)))) || ((i.firefox() >= 4))));\n        if (l[h.getID(q)]) {\n            return;\n        }\n    ;\n    ;\n        l[h.getID(q)] = true;\n        if (!t) {\n            return;\n        }\n    ;\n    ;\n        if (!s) {\n            ((r && r(q)));\n            return;\n        }\n    ;\n    ;\n        g.listen(q, \"mouseover\", function u(v) {\n            var w = k.byTag(v.getTarget(), \"a\");\n            if (w) {\n                var x = w.getAttribute(\"href\");\n                if (p(x)) {\n                    j.set(w, \"stashedHref\", w.getAttribute(\"href\"));\n                    w.removeAttribute(\"href\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        });\n        g.listen(q, \"mouseout\", function u(v) {\n            var w = k.byTag(v.getTarget(), \"a\"), x = ((w && j.remove(w, \"stashedHref\")));\n            if (p(x)) {\n                w.setAttribute(\"href\", x);\n            }\n        ;\n        ;\n        });\n        g.listen(q, \"mousedown\", function(u) {\n            if (!u.isDefaultRequested()) {\n                return true;\n            }\n        ;\n        ;\n            var v = k.byTag(u.getTarget(), \"a\"), w = ((v && j.get(v, \"stashedHref\")));\n            if (p(w)) {\n                v.setAttribute(\"href\", w);\n            }\n        ;\n        ;\n        });\n    };\n;\n    function o(q, r) {\n        var s = h.scry(q, \"a\");\n        if (r) {\n            s = s.filter(function(t) {\n                return r(t.getAttribute(\"href\"));\n            });\n        }\n    ;\n    ;\n        s.forEach(function(t) {\n            t.removeAttribute(\"href\");\n            t.setAttribute(\"tabindex\", 0);\n        });\n    };\n;\n    function p(q) {\n        return ((q && ((q !== \"#\"))));\n    };\n;\n    e.exports = m;\n});\n__d(\"ChatSidebarThreadlist.react\", [\"ChatConfig\",\"ChatGroupThreadsController\",\"ChatSidebarConstants\",\"ChatSidebarItem.react\",\"ChatSidebarThread.react\",\"MercuryServerRequests\",\"MercuryThreads\",\"MercuryParticipants\",\"PresenceStatus\",\"React\",\"copyProperties\",\"cx\",\"fbt\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatConfig\"), h = b(\"ChatGroupThreadsController\"), i = b(\"ChatSidebarConstants\"), j = b(\"ChatSidebarItem.react\"), k = b(\"ChatSidebarThread.react\"), l = b(\"MercuryServerRequests\").get(), m = b(\"MercuryThreads\").get(), n = b(\"MercuryParticipants\"), o = b(\"PresenceStatus\"), p = b(\"React\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = b(\"fbt\"), t = b(\"ix\"), u = p.createClass({\n        displayName: \"ChatSidebarThreadlist\",\n        render: function() {\n            var v = this.state.threadData, w = this.state.participantData, x = i.IMAGE_SIZE, y = t(\"/images/chat/sidebar/newGroupChat.png\");\n            if (this.props.litestandSidebar) {\n                x = ((g.get(\"litestand_blended_sidebar\") ? i.LITESTAND_BLENDED_SIZE : i.LITESTAND_IMAGE_SIZE));\n                y = ((g.get(\"litestand_blended_sidebar\") ? t(\"/images/litestand/sidebar/blended/new_group_chat.png\") : t(\"/images/chat/sidebar/newGroupChatLitestand.png\")));\n            }\n        ;\n        ;\n            var z = \"New Group Chat...\";\n            z = g.get(\"divebar_group_new_button_name\", z);\n            var aa = [];\n            if (this.props.showNewGroupsButton) {\n                aa.push(p.DOM.li({\n                    className: (((((\"_56yg\") + ((\" \" + \"_56yj\")))) + ((this.props.offlineItems ? ((\" \" + \"_570-\")) : \"\")))),\n                    key: \"new\"\n                }, j({\n                    images: y,\n                    imageSize: x,\n                    litestandSidebar: this.props.litestandSidebar,\n                    JSBNG__name: z\n                })));\n            }\n        ;\n        ;\n            var ba = {\n            };\n            {\n                var fin215keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin215i = (0);\n                var ca;\n                for (; (fin215i < fin215keys.length); (fin215i++)) {\n                    ((ca) = (fin215keys[fin215i]));\n                    {\n                        var da = v[ca], ea = da.participants.map(function(ia) {\n                            return ((w || {\n                            }))[ia];\n                        }).filter(function(ia) {\n                            return ia;\n                        }), fa = da.participants.map(function(ia) {\n                            return n.getUserID(ia);\n                        }), ga = fa.sort().join(\"|\");\n                        if (((!ba[ga] && ea.length))) {\n                            ba[ga] = 1;\n                            var ha = l.getServerThreadIDNow(ca);\n                            aa.push(p.DOM.li({\n                                className: (((((\"_5a58\") + ((\" \" + \"_56yg\")))) + ((this.props.offlineItems ? ((\" \" + \"_570-\")) : \"\")))),\n                                \"data-serverthreadid\": ha,\n                                \"data-threadid\": ca,\n                                key: ca\n                            }, k({\n                                image: da.image_src,\n                                imageSize: x,\n                                litestandSidebar: this.props.litestandSidebar,\n                                JSBNG__name: da.JSBNG__name,\n                                participants: ea,\n                                JSBNG__status: o.getGroup(fa),\n                                threadID: ca,\n                                unreadCount: da.unread_count\n                            })));\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return p.DOM.ul(null, aa);\n        },\n        getInitialState: function() {\n            return {\n            };\n        },\n        componentWillMount: function() {\n            var v = function() {\n                this.setState(this._calculateState());\n            }.bind(this);\n            this.token = h.subscribe(\"update\", v);\n            v();\n        },\n        componentWillUnmount: function() {\n            ((this.token && this.token.unsubscribe()));\n            this.token = null;\n        },\n        _calculateState: function() {\n            var v = false, w = {\n            }, x = {\n            }, y = h.getThreadIDs(), z = y.length;\n            y.forEach(function(ba) {\n                m.getThreadMeta(ba, function(ca) {\n                    x[ba] = ca;\n                    n.getMulti(ca.participants, function(da) {\n                        delete da[n.user];\n                        if (v) {\n                            this.setState(this._calculateState());\n                        }\n                         else q(w, da);\n                    ;\n                    ;\n                        z--;\n                    }.bind(this));\n                }.bind(this));\n            }.bind(this));\n            if (((z === 0))) {\n                return {\n                    threadData: x,\n                    participantData: w\n                };\n            }\n             else {\n                v = true;\n                var aa = ((this.state || {\n                }));\n                return {\n                    threadData: q(aa.threadData, x),\n                    participantData: q(aa.participantData, w)\n                };\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = u;\n});\n__d(\"runAfterScrollingStops\", [\"Arbiter\",\"JSBNG__Event\",\"Run\",\"debounceAcrossTransitions\",\"emptyFunction\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"JSBNG__Event\"), i = b(\"Run\"), j = b(\"debounceAcrossTransitions\"), k = b(\"emptyFunction\"), l = b(\"throttle\");\n    function m(x, y, z) {\n        if (((y && p[y]))) {\n            return;\n        }\n    ;\n    ;\n        if (!o) {\n            g.subscribe(\"page_transition\", w);\n            o = true;\n        }\n    ;\n    ;\n        if (!n) {\n            x();\n            return;\n        }\n    ;\n    ;\n        ((y && (p[y] = 1)));\n        q.push(x);\n        if (!z) {\n            if (s) {\n                i.onLeave(w);\n                s = false;\n            }\n        ;\n        ;\n            r.push(((q.length - 1)));\n        }\n    ;\n    ;\n    };\n;\n    var n, o, p = {\n    }, q = [], r = [], s = true, t = 500, u = j(function() {\n        n = false;\n        var x = q;\n        q = [];\n        r = [];\n        p = {\n        };\n        for (var y = 0, z = x.length; ((y < z)); ++y) {\n            x[y]();\n        ;\n        };\n    ;\n    }, t);\n    function v() {\n        n = true;\n        u();\n    };\n;\n    function w() {\n        var x = r;\n        r = [];\n        s = true;\n        for (var y = 0, z = x.length; ((y < z)); ++y) {\n            q[x[y]] = k;\n        ;\n        };\n    ;\n    };\n;\n    h.listen(window, \"JSBNG__scroll\", l.acrossTransitions(v, 250));\n    e.exports = m;\n});\n__d(\"ChatOrderedList\", [\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"AsyncDialog\",\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"Bootloader\",\"CSS\",\"ChannelImplementation\",\"Chat\",\"ChatConfig\",\"ChatContexts\",\"ChatFavoriteList\",\"ChatFavoriteNux\",\"ChatGroupThreadsController\",\"ChatOrderedListHover\",\"ChatQuietLinks\",\"ChatSidebarThreadlist.react\",\"ChatTypeaheadConstants\",\"ChatVisibility\",\"DOM\",\"DataStore\",\"Ease\",\"JSBNG__Event\",\"ImageSourceRequest\",\"ImageSourceType\",\"JSLogger\",\"JSXDOM\",\"LastMobileActiveTimes\",\"MercuryParticipantTypes\",\"MercuryThreadInformer\",\"MercuryThreads\",\"OrderedFriendsList\",\"Parent\",\"PhotoResizeModeConst\",\"PresencePrivacy\",\"React\",\"JSBNG__Rect\",\"ShortProfiles\",\"Style\",\"Tooltip\",\"TypeaheadUtil\",\"URI\",\"Vector\",\"XHPTemplate\",\"copyProperties\",\"createObjectFrom\",\"csx\",\"cx\",\"debounceAcrossTransitions\",\"guid\",\"JSBNG__requestAnimationFrame\",\"runAfterScrollingStops\",\"shield\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"AsyncDialog\"), k = b(\"AsyncRequest\"), l = b(\"AvailableList\"), m = b(\"AvailableListConstants\"), n = b(\"Bootloader\"), o = b(\"CSS\"), p = b(\"ChannelImplementation\").instance, q = b(\"Chat\"), r = b(\"ChatConfig\"), s = b(\"ChatContexts\"), t = b(\"ChatFavoriteList\"), u = b(\"ChatFavoriteNux\"), v = b(\"ChatGroupThreadsController\"), w = b(\"ChatOrderedListHover\"), x = b(\"ChatQuietLinks\"), y = b(\"ChatSidebarThreadlist.react\"), z = b(\"ChatTypeaheadConstants\"), aa = b(\"ChatVisibility\"), ba = b(\"DOM\"), ca = b(\"DataStore\"), da = b(\"Ease\"), ea = b(\"JSBNG__Event\"), fa = b(\"ImageSourceRequest\"), ga = b(\"ImageSourceType\"), ha = b(\"JSLogger\"), ia = b(\"JSXDOM\"), ja = b(\"LastMobileActiveTimes\"), ka = b(\"MercuryParticipantTypes\"), la = b(\"MercuryThreadInformer\").get(), ma = b(\"MercuryThreads\").get(), na = b(\"OrderedFriendsList\"), oa = b(\"Parent\"), pa = b(\"PhotoResizeModeConst\"), qa = b(\"PresencePrivacy\"), ra = b(\"React\"), sa = b(\"JSBNG__Rect\"), ta = b(\"ShortProfiles\"), ua = b(\"Style\"), va = b(\"Tooltip\"), wa = b(\"TypeaheadUtil\"), xa = b(\"URI\"), ya = b(\"Vector\"), za = b(\"XHPTemplate\"), ab = b(\"copyProperties\"), bb = b(\"createObjectFrom\"), cb = b(\"csx\"), db = b(\"cx\"), eb = b(\"debounceAcrossTransitions\"), fb = b(\"guid\"), gb = b(\"JSBNG__requestAnimationFrame\"), hb = b(\"runAfterScrollingStops\"), ib = b(\"shield\"), jb = b(\"throttle\"), kb = b(\"tx\"), lb = r.get(\"chat_ranked_by_coefficient\", 0), mb = null, nb, ob, pb = 9;\n    function qb(xb, yb, zb, ac, bc, cc) {\n        this._isSidebar = xb;\n        this._isLitestand = ((r.get(\"litestand\", 0) || r.get(\"test_litestand_sidebar\", 0)));\n        this._isLitestandSidebar = ((this._isSidebar && this._isLitestand));\n        this._hasChatFlyout = ((this._isSidebar && r.get(\"litestand_sidebar_chat_flyout\", 0)));\n        this._isSidebarFlyout = !!oa.byClass(yb, \"_57dj\");\n        this._isLeftCollapsedSidebar = !!oa.byClass(yb, \"_5ap0\");\n        this._root = yb;\n        this._itemsMap = {\n        };\n        this._isVisible = false;\n        this._excludedIds = {\n        };\n        this._numTopFriends = 5;\n        this._hasRendered = false;\n        this._preventRendering = false;\n        this._hoverController = null;\n        this._template = zb;\n        this._messageTemplate = ac;\n        this._favoriteMode = r.get(\"divebar_favorite_list\", 0);\n        this._contextualDialog = bc;\n        this._cachedItemHeight = null;\n        this._cachedItemPadding = null;\n        if (((cc && ba.scry(cc, \"._54y_\").length))) {\n            o.show(cc);\n            this._pymk = cc;\n        }\n    ;\n    ;\n        this._usePlaceholder = ((this._isLitestand && this._isSidebar));\n        if (r.get(\"groups_in_divebar\")) {\n            this._groupThreadsNode = ia.li({\n                className: \"_56yf\"\n            });\n            this._updateGroupThreads();\n            this._groupsList = ((this._favoriteMode && ba.JSBNG__find(this._root, \"._56yh\")));\n        }\n    ;\n    ;\n        if (this._favoriteMode) {\n            this._favoriteSidebar = ba.JSBNG__find(this._root, \"._42g5\");\n            this._editButton = ba.scry(this._root, \"._57m9 ._54sl\")[0];\n            this._favoriteList = ba.JSBNG__find(this._root, \"._54sm\");\n            this._activeNowList = ba.JSBNG__find(this._root, \"._54sn\");\n            this._activeNowLabel = ba.scry(this._root, \"._42g9\")[0];\n            if (this._activeNowLabel) {\n                this._activeNowArea = oa.byClass(this._activeNowLabel, \"_57yh\");\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        if (this._hasChatFlyout) {\n            this._sidebarFlyoutItemContainer = ba.JSBNG__find(this._root, \"._57yi\");\n        }\n    ;\n    ;\n        this._orderedList = ba.JSBNG__find(this._root, \".fbChatOrderedList\");\n        this._scrollableOrderedList = oa.byClass(this._root, \"scrollableOrderedList\");\n        this._chatSidebar = oa.byClass(this._root, \"fbChatSidebar\");\n        this._scrollableArea = oa.byClass(this._root, \"scrollable\");\n        ea.listen(this._root, \"click\", this._onClick.bind(this));\n        ea.listen(this._root, \"mouseenter\", this._mouseEnter.bind(this));\n        ea.listen(this._root, \"mouseleave\", this._mouseLeave.bind(this));\n        if (this._editButton) {\n            ea.listen(this._editButton, \"click\", this.toggleEditMode.bind(this));\n            h.subscribe([\"LitestandSidebarBookmarks/close\",\"LitestandSidebar/collapse\",], this._onEditEnd.bind(this));\n        }\n    ;\n    ;\n        h.subscribe([\"LitestandSidebar/collapse\",\"LitestandSidebar/expand\",], function(JSBNG__event) {\n            if (this._isLitestandSidebar) {\n                this.getHoverController().setPaused(((JSBNG__event === \"LitestandSidebar/collapse\")));\n            }\n        ;\n        ;\n            this.render();\n        }.bind(this));\n        l.subscribe(m.ON_AVAILABILITY_CHANGED, ib(this.update, this));\n        qa.subscribe(\"privacy-changed\", ib(this.update, this));\n        p.subscribe([p.CONNECTED,p.RECONNECTING,p.SHUTDOWN,p.MUTE_WARNING,p.UNMUTE_WARNING,], ib(this.update, this));\n        this.inform(\"initialized\", this, h.BEHAVIOR_PERSISTENT);\n        this.render();\n        h.subscribe(ha.DUMP_EVENT, function(dc, ec) {\n            ec.chat_lists = ((ec.chat_lists || {\n                sorted_list: this.getCachedSortedList(),\n                ordered_list: na.getList(),\n                available_list: qb.getAvailableList(this._excludedIds),\n                excluded_list: this._excludedIds\n            }));\n        }.bind(this));\n        h.subscribe(\"ChatOrderedList/itemHeightChange\", function() {\n            this._cachedItemHeight = null;\n            this._cachedItemPadding = null;\n        }.bind(this));\n        this._renderUnreadCount = r.get(\"divebar_message_count\");\n        if (this._renderUnreadCount) {\n            la.subscribe(\"threads-updated\", function(dc, ec) {\n                {\n                    var fin216keys = ((window.top.JSBNG_Replay.forInKeys)((ec))), fin216i = (0);\n                    var fc;\n                    for (; (fin216i < fin216keys.length); (fin216i++)) {\n                        ((fc) = (fin216keys[fin216i]));\n                        {\n                            var gc = ma.getCanonicalUserInThread(fc);\n                            if (((((!this._renderedTopUsers || !((gc in this._renderedTopUsers)))) || !this._itemsMap[gc]))) {\n                                continue;\n                            }\n                        ;\n                        ;\n                            ma.getThreadMeta(fc, function(hc) {\n                                var ic = ((hc && hc.unread_count));\n                                this._updateUnreadCount(gc, ic);\n                            }.bind(this));\n                        };\n                    };\n                };\n            ;\n            }.bind(this));\n        }\n    ;\n    ;\n    };\n;\n    function rb(xb, yb) {\n        var zb = sb(xb, yb);\n        if (((zb !== 0))) {\n            return zb;\n        }\n    ;\n    ;\n        if (!lb) {\n            var ac = vb(xb, yb);\n            if (((ac !== 0))) {\n                return ac;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return na.compare(xb, yb);\n    };\n;\n    function sb(xb, yb) {\n        var zb = qa.allows(xb), ac = qa.allows(yb);\n        if (((zb !== ac))) {\n            return ((zb ? -1 : 1));\n        }\n    ;\n    ;\n        return 0;\n    };\n;\n    var tb = {\n    };\n    function ub(xb) {\n        return ((tb[xb] || (tb[xb] = wa.flatten(xb))));\n    };\n;\n    function vb(xb, yb) {\n        var zb = ta.getNowUnsafe(xb), ac = ta.getNowUnsafe(yb), bc = ub(((((zb || {\n        })).JSBNG__name || \"~\"))), cc = ub(((((ac || {\n        })).JSBNG__name || \"~\")));\n        if (((bc !== cc))) {\n            return ((((bc < cc)) ? -1 : 1));\n        }\n    ;\n    ;\n        return 0;\n    };\n;\n    function wb(xb, yb) {\n        var zb = ((l.get(xb) === m.MOBILE)), ac = ((l.get(yb) === m.MOBILE));\n        if (((zb !== ac))) {\n            return ((ac ? -1 : 1));\n        }\n    ;\n    ;\n        return vb(xb, yb);\n    };\n;\n    ab(qb, {\n        CONTEXT_CLASSES: {\n            nearby: \"_56xw\",\n            visiting: \"_56xx\",\n            neighbourhood: \"_56xy\",\n            listening: \"_56xz\"\n        },\n        getSortedList: function(xb, yb) {\n            var zb = na.getList().filter(function(cc) {\n                return ((!((cc in xb)) && ((qa.getFriendVisibility(cc) !== qa.BLACKLISTED))));\n            }), ac = [];\n            if (!aa.isOnline()) {\n                Array.prototype.push.apply(ac, zb);\n            }\n             else {\n                if (((qa.getOnlinePolicy() === qa.ONLINE_TO_WHITELIST))) {\n                    zb = this._filterByWhitelist(zb);\n                }\n            ;\n            ;\n                if (r.get(\"chat_web_ranking_with_presence\")) {\n                    Array.prototype.push.apply(ac, zb);\n                }\n                 else ac = this._splitOutTopFriends(zb, yb);\n            ;\n            ;\n            }\n        ;\n        ;\n            ac = ac.slice(0, yb);\n            if (((ac.length === yb))) {\n                var bc = qb.getAvailableList(ac.concat(xb)).length;\n                ((bc && ac.splice(-1)));\n            }\n        ;\n        ;\n            if (!r.get(\"chat_web_ranking_with_presence\")) {\n                ac.sort(rb);\n            }\n        ;\n        ;\n            mb = ac.slice();\n            return ac;\n        },\n        _filterByWhitelist: function(xb) {\n            var yb = xb, zb = {\n            }, ac, bc;\n            xb = [];\n            for (ac = 0; ((ac < yb.length)); ++ac) {\n                bc = yb[ac];\n                if (qa.allows(bc)) {\n                    zb[bc] = true;\n                    xb.push(bc);\n                }\n            ;\n            ;\n            };\n        ;\n            var cc = qa.getWhitelist();\n            for (ac = 0; ((ac < cc.length)); ++ac) {\n                bc = cc[ac];\n                if (!((bc in zb))) {\n                    xb.push(bc);\n                }\n            ;\n            ;\n            };\n        ;\n            for (ac = 0; ((ac < yb.length)); ++ac) {\n                bc = yb[ac];\n                if (!qa.allows(bc)) {\n                    xb.push(bc);\n                }\n            ;\n            ;\n            };\n        ;\n            return xb;\n        },\n        _splitOutTopFriends: function(xb, yb) {\n            var zb = [], ac = [], bc = r.get(\"ordered_list.top_friends\", 0), cc = r.get(\"ordered_list.top_mobile\", 0), dc = yb, ec = xb.length;\n            for (var fc = 0; ((((fc < ec)) && ((dc > 0)))); fc++) {\n                var gc = xb[fc], hc = l.get(gc), ic = ((hc === m.ACTIVE));\n                if (((((ic || ((((hc === m.MOBILE)) && ((fc < cc)))))) || ((fc < bc))))) {\n                    zb.push(gc);\n                    ((ic && dc--));\n                }\n                 else ac.push(gc);\n            ;\n            ;\n            };\n        ;\n            if (((fc < ec))) {\n                Array.prototype.push.apply(ac, xb.slice(fc));\n            }\n        ;\n        ;\n            if (((zb.length < yb))) {\n                Array.prototype.push.apply(zb, ac);\n            }\n        ;\n        ;\n            return zb;\n        },\n        getAvailableList: function(xb) {\n            var yb;\n            if (((r.get(\"divebar_show_mobile_more_friends\") || r.get(\"divebar_show_mobile_more_friends_alphabetical\")))) {\n                yb = l.getAvailableIDs();\n            }\n        ;\n        ;\n            if (!yb) {\n                yb = l.getOnlineIDs();\n            }\n        ;\n        ;\n            return yb.filter(function(zb) {\n                return !((zb in xb));\n            });\n        },\n        _pause: function() {\n            ob = true;\n        },\n        _unpause: function() {\n            ob = false;\n        },\n        _registerToggleRenderItem: function(xb) {\n            ea.listen(xb, \"click\", function() {\n                ob = !ob;\n                o.conditionClass(xb, \"checked\", ob);\n            });\n        }\n    });\n    ab(qb.prototype, i, {\n        getAllNodes: function() {\n            var xb = {\n            }, yb = ba.scry(this._root, \"li._42fz\");\n            for (var zb = 0; ((zb < yb.length)); zb++) {\n                var ac = ca.get(yb[zb], \"id\");\n                if (ac) {\n                    xb[ac] = yb[zb];\n                }\n            ;\n            ;\n            };\n        ;\n            return xb;\n        },\n        getShowingUsers: function() {\n            return ba.scry(this._root, \"li._42fz,li._5a58\").map(this.getUserForNode);\n        },\n        getUserForNode: function(xb) {\n            return ((ca.get(xb, \"id\") || ca.get(xb, \"serverthreadid\")));\n        },\n        getHoverController: function() {\n            if (!this._hoverController) {\n                this._hoverController = new w(this, this._contextualDialog);\n                if (((this._isLitestandSidebar && this._isLitestandSidebarCollapsed()))) {\n                    this._hoverController.setPaused(true);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return this._hoverController;\n        },\n        _isLitestandSidebarCollapsed: function() {\n            if (this._isLeftCollapsedSidebar) {\n                return true;\n            }\n        ;\n        ;\n            if (nb) {\n                return !nb.isExpanded();\n            }\n        ;\n        ;\n            n.loadModules([\"LitestandSidebar\",], function(xb) {\n                nb = xb;\n            });\n            return o.hasClass(JSBNG__document.documentElement, \"_4kdq\");\n        },\n        getPaddingOffset: function() {\n            return ((this._favoriteMode ? 24 : 8));\n        },\n        _calculateItemMeasurements: function() {\n            var xb = this._orderedList, yb = this._template.build(), zb = yb.getRoot();\n            ba.setContent(yb.getNode(\"JSBNG__name\"), \"test\");\n            if (this._favoriteSidebar) {\n                xb = this._favoriteList;\n                o.addClass(this._favoriteSidebar, \"_4zmr\");\n            }\n        ;\n        ;\n            zb.style.visibility = \"hidden\";\n            ba.appendContent(xb, zb);\n            this._cachedItemHeight = ya.getElementDimensions(zb).y;\n            this._cachedItemPadding = ((ua.getFloat(yb.getNode(\"anchor\"), \"padding\") || 0));\n            ba.remove(zb);\n            if (this._favoriteSidebar) {\n                o.removeClass(this._favoriteSidebar, \"_4zmr\");\n            }\n        ;\n        ;\n        },\n        getItemHeight: function() {\n            if (((this._cachedItemHeight === null))) {\n                this._calculateItemMeasurements();\n            }\n        ;\n        ;\n            return this._cachedItemHeight;\n        },\n        getItemPadding: function() {\n            if (((this._cachedItemPadding === null))) {\n                this._calculateItemMeasurements();\n            }\n        ;\n        ;\n            return this._cachedItemPadding;\n        },\n        _updateGroupThreads: function() {\n            if (this._groupThreadsNode) {\n                var xb = qa.getVisibility(), yb = y({\n                    offlineItems: ((p.disconnected() || !xb)),\n                    litestandSidebar: ((((((this._isSidebar && this._isLitestand)) && !r.get(\"test_old_divebar\"))) || this._isSidebarFlyout)),\n                    showNewGroupsButton: r.get(\"divebar_has_new_groups_button\", false)\n                });\n                ra.renderComponent(yb, this._groupThreadsNode);\n            }\n        ;\n        ;\n        },\n        _placeholderUpdate: function() {\n            if (((!this._usePlaceholder || !this._scrollContainer))) {\n                return;\n            }\n        ;\n        ;\n            var xb = ((this._root.offsetTop - this._scrollContainer.scrollTop));\n            this._scrollContainerHeight = ((this._scrollContainerHeight || this._scrollContainer.offsetHeight));\n            var yb = this.getItemHeight(), zb = Math.ceil(((this._scrollContainerHeight / yb))), ac = ((((xb < 0)) ? Math.max(((Math.floor(((-xb / yb))) - zb)), 0) : 0)), bc = ((((ac + zb)) + zb));\n            this._cachedItems = ((this._cachedItems || ba.scry(this._root, \"li._42fz\")));\n            for (var cc = 0, dc = this._cachedItems.length; ((cc < dc)); cc++) {\n                o.conditionClass(this._cachedItems[cc], \"_50zv\", ((((cc < ac)) || ((cc > bc)))));\n            ;\n            };\n        ;\n        },\n        _getListItem: function(xb, yb) {\n            var zb = this._itemsMap[xb];\n            if (!zb) {\n                return;\n            }\n        ;\n        ;\n            var ac = l.get(xb), bc = ((qa.allows(xb) && !p.disconnected()));\n            if (((zb.buttonNode === undefined))) {\n                zb.buttonNode = ba.scry(zb.node, \"._54sk\")[0];\n                zb.contextNode = ba.JSBNG__find(zb.node, \"._52zk\");\n                zb.timeNode = ba.scry(zb.node, \".active_time\")[0];\n                zb.statusNodes = ba.scry(zb.node, \"img.JSBNG__status\");\n            }\n        ;\n        ;\n            o.conditionClass(zb.node, \"_42f-\", yb);\n            o.conditionClass(zb.node, \"_54sj\", yb);\n            o.conditionClass(zb.node, \"_52s3\", ((this._isLitestand && yb)));\n            if (zb.buttonNode) {\n                if (!this._isLitestand) {\n                    o.conditionClass(zb.buttonNode, \"_42f_\", yb);\n                    o.conditionClass(zb.buttonNode, \"_42g0\", !yb);\n                }\n            ;\n            }\n        ;\n        ;\n            var cc = {\n                active: false,\n                mobile: false\n            };\n            cc.active = ((ac === m.ACTIVE));\n            cc.mobile = ((ac === m.MOBILE));\n            if (cc.mobile) {\n                var dc = ja.getShortDisplay(xb);\n                if (((zb.timeNode && ((zb.lastActiveTime !== dc))))) {\n                    zb.lastActiveTime = dc;\n                    ba.setContent(zb.timeNode, dc);\n                }\n            ;\n            ;\n            }\n             else if (zb.lastActiveTime) {\n                zb.lastActiveTime = null;\n                ba.empty(zb.timeNode);\n            }\n            \n        ;\n        ;\n            {\n                var fin217keys = ((window.top.JSBNG_Replay.forInKeys)((cc))), fin217i = (0);\n                var ec;\n                for (; (fin217i < fin217keys.length); (fin217i++)) {\n                    ((ec) = (fin217keys[fin217i]));\n                    {\n                        o.conditionClass(zb.node, ec, ((cc[ec] && bc)));\n                    ;\n                    };\n                };\n            };\n        ;\n            o.conditionClass(zb.node, \"invis\", !bc);\n            zb.statusNodes.forEach(function(fc) {\n                if (((((ac === m.ACTIVE)) && bc))) {\n                    fc.alt = \"Online\";\n                }\n                 else if (((((ac === m.MOBILE)) && bc))) {\n                    fc.alt = \"Mobile\";\n                }\n                 else fc.alt = \"\";\n                \n            ;\n            ;\n            });\n            this._applyContext(xb, zb);\n            return zb.node;\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getSortedList: function(xb) {\n            return qb.getSortedList(((xb || this._excludedIds)), this._numTopFriends);\n        },\n        getCachedSortedList: function(xb) {\n            if (((mb == null))) {\n                mb = this.getSortedList(xb);\n            }\n        ;\n        ;\n            return mb;\n        },\n        toggleFavoriteSidebar: function(xb, yb) {\n            function zb(cc, dc) {\n                o.conditionShow(dc, cc);\n                var ec = oa.byClass(dc, \"uiContextualLayerPositioner\");\n                ((ec && o.conditionShow(ec, cc)));\n            };\n        ;\n            o.conditionShow(this._orderedList, !xb);\n            if (this._favoriteSidebar) {\n                o.conditionShow(this._favoriteSidebar, xb);\n            }\n        ;\n        ;\n            var ac = ba.scry(((this._scrollableOrderedList || this._root)), \"._42i3\");\n            ac.forEach(zb.curry(xb));\n            var bc = ba.scry(((this._scrollableOrderedList || this._root)), \"._56yi\");\n            ((bc.length && zb(yb, bc[0])));\n        },\n        hide: function() {\n            if (!this._isVisible) {\n                return;\n            }\n        ;\n        ;\n            this._isVisible = false;\n            u.tryHide();\n            o.hide(((this._scrollableOrderedList || this._root)));\n            this.inform(\"hide\");\n        },\n        _onFavoriteOrderChange: function() {\n            var xb = this.sortableGroup.getOrder();\n            t.updateList(xb);\n            t.save();\n        },\n        _getFavoriteItems: function() {\n            var xb = [], yb = t.get();\n            for (var zb = 0; ((zb < yb.length)); zb++) {\n                var ac = this._itemsMap[yb[zb]];\n                if (ac) {\n                    xb.push(ac.node);\n                }\n            ;\n            ;\n            };\n        ;\n            return xb;\n        },\n        _getChatTabOpenLogData: function(xb) {\n            var yb = o.hasClass(JSBNG__document.documentElement, \"sidebarMode\"), zb = {\n                mode: ((yb ? \"JSBNG__sidebar\" : \"chatNub\")),\n                typehead: false\n            };\n            if (((this._scrollableArea && this._scrollContainer))) {\n                var ac = ya.getElementPosition(this._scrollableArea, \"viewport\").y, bc = ya.getElementPosition(xb, \"viewport\").y, cc = this._scrollContainer.scrollTop;\n                if (((bc > ac))) {\n                    zb.visible_slot = Math.round(((((bc - ac)) / 32)));\n                    var dc = Math.round(((cc / 32)));\n                    zb.global_slot = ((zb.visible_slot + dc));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (yb) {\n                zb.sidebar_height = ((this._chatSidebar && this._chatSidebar.clientHeight));\n                if (this._scrollContainer) {\n                    zb.buddylist_height = this._scrollContainer.clientHeight;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return zb;\n        },\n        _resetFavoriteBounds: function() {\n            var xb = t.get(), yb = xb.length;\n            if (yb) {\n                var zb = xb[0], ac = xb[((yb - 1))], bc = this._itemsMap[zb], cc = this._itemsMap[ac], dc = new sa(ya.getElementPosition(bc.node).y, 0, ((ya.getElementPosition(cc.node).y + ya.getElementDimensions(cc.node).y)), 0);\n                this.sortableGroup.setBoundingBox(dc);\n            }\n        ;\n        ;\n        },\n        _createSortableGroup: function() {\n            if (this.sortableGroup) {\n                this.sortableGroup.destroy();\n            }\n        ;\n        ;\n            n.loadModules([\"SortableGroup\",], function(xb) {\n                this.sortableGroup = new xb().setBeforeGrabCallback(this._resetFavoriteBounds.bind(this)).setOrderChangeHandler(this._onFavoriteOrderChange.bind(this));\n                if (this._isLitestand) {\n                    this.sortableGroup.gutter = 1;\n                }\n            ;\n            ;\n                var yb = this._getFavoriteItems();\n                for (var zb = 0; ((zb < yb.length)); zb++) {\n                    var ac = yb[zb];\n                    this.sortableGroup.addSortable(ca.get(ac, \"id\"), ac);\n                };\n            ;\n            }.bind(this));\n        },\n        toggleEditMode: function() {\n            u.dismissDialog();\n            t.toggleEditMode();\n            if (t.isEditMode()) {\n                this._createSortableGroup();\n                ba.setContent(this._editButton, \"DONE\");\n                o.addClass(this._favoriteSidebar, \"_4-d6\");\n                this.inform(\"editStart\");\n            }\n             else this._onEditEnd();\n        ;\n        ;\n        },\n        _onEditEnd: function() {\n            if (t.isEditMode()) {\n                t.toggleEditMode();\n            }\n        ;\n        ;\n            ba.setContent(this._editButton, \"EDIT\");\n            o.removeClass(this._favoriteSidebar, \"_4-d6\");\n            this.inform(\"editEnd\");\n        },\n        _onClick: function(JSBNG__event) {\n            var xb = JSBNG__event.getTarget(), yb = oa.byTag(xb, \"li\");\n            if (t.isEditMode()) {\n                var zb = oa.byClass(xb, \"_54sk\");\n                if (((zb && yb))) {\n                    var ac = ca.get(yb, \"id\");\n                    if (ac) {\n                        t.toggleID(ac);\n                        t.save();\n                    }\n                ;\n                ;\n                    this.update();\n                }\n            ;\n            ;\n                JSBNG__event.prevent();\n                return false;\n            }\n        ;\n        ;\n            if (yb) {\n                if (o.hasClass(yb, \"blackbirdWhitelist\")) {\n                    var bc = new xa(\"/ajax/chat/privacy/settings_dialog.php\").addQueryData({\n                        ref: \"whitelist_separator\"\n                    });\n                    j.send(new k(bc));\n                    JSBNG__event.prevent();\n                    return false;\n                }\n            ;\n            ;\n                var cc = ca.get(yb, \"id\"), dc = o.hasClass(yb, \"_56yg\");\n                if (((cc || dc))) {\n                    var ec = this._getChatTabOpenLogData(yb), fc = o.hasClass(JSBNG__document.documentElement, \"sidebarMode\"), gc = ((qa.getOnlinePolicy() === qa.ONLINE_TO_WHITELIST)), hc = ((gc ? \"white_list\" : \"ordered_list\"));\n                    if (dc) {\n                        cc = yb.getAttribute(\"data-threadid\");\n                        hc = ((cc ? \"recent_threads_in_divebar\" : \"recent_threads_in_divebar_new\"));\n                    }\n                     else if (((((fc && this._favoriteMode)) && !gc))) {\n                        while (yb.parentNode) {\n                            yb = yb.parentNode;\n                            if (o.hasClass(yb, \"_42g8\")) {\n                                hc = \"more_online_friends\";\n                                break;\n                            }\n                        ;\n                        ;\n                            if (o.hasClass(yb, \"_42g7\")) {\n                                break;\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    }\n                     else while (yb.previousSibling) {\n                        yb = yb.previousSibling;\n                        if (o.hasClass(yb, \"_554m\")) {\n                            if (o.hasClass(yb, \"moreOnlineFriends\")) {\n                                hc = \"more_online_friends\";\n                                break;\n                            }\n                        ;\n                        ;\n                            if (o.hasClass(yb, \"blackbirdWhitelist\")) {\n                                hc = \"blackbird_offline_section\";\n                                break;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    }\n                    \n                ;\n                ;\n                    ec.source = hc;\n                    var ic = ((dc ? z.THREAD_TYPE : ka.FRIEND));\n                    q.openTab(cc, ic, ec);\n                    this.inform(\"click\", {\n                        id: cc\n                    });\n                }\n                 else if (((o.hasClass(yb, \"_554m\") && oa.byClass(xb, \"_554n\")))) {\n                    this.JSBNG__scrollTo(yb);\n                }\n                 else if (o.hasClass(yb, \"_55nf\")) {\n                    return;\n                }\n                \n                \n            ;\n            ;\n                return false;\n            }\n        ;\n        ;\n        },\n        _mouseEnter: function() {\n            this._preventRendering = true;\n        },\n        _mouseLeave: function() {\n            this._preventRendering = false;\n        },\n        setExcludedIds: function(xb) {\n            this._excludedIds = bb(((xb || [])));\n        },\n        setNumTopFriends: function(xb) {\n            if (((xb !== this._numTopFriends))) {\n                this._numTopFriends = xb;\n                this.render();\n            }\n        ;\n        ;\n        },\n        _getOfflineToSectionItems: function() {\n            var xb = ((\"subheader-text-\" + fb())), yb = ba.create(\"a\", {\n                href: \"#\",\n                \"aria-describedby\": xb\n            }, ba.tx._(\"Edit\")), zb = [], ac = ba.tx._(\"MORE FRIENDS\");\n            zb.push(ia.li({\n                className: \"_554m\"\n            }, ia.div({\n                className: \"_554o\"\n            }, ia.div({\n                className: \"_554n\"\n            }, ia.span({\n                className: \"_554p\"\n            }, ac), ia.div({\n                className: \"_554q\"\n            }, ia.span({\n                className: \"_554r\"\n            }))))));\n            zb.push(ia.li({\n                className: \"_554m blackbirdWhitelist\"\n            }, ia.div({\n                className: \"_554o\"\n            }, ia.div({\n                className: \"fbChatOrderedList/separatorInner\"\n            }, ia.div({\n                className: \"fbChatOrderedList/separatorSubheader\"\n            }, ia.span({\n                id: xb,\n                className: \"_554t\"\n            }, kb._(\"These friends can't see you on chat. {=link}\", {\n                \"=link\": yb\n            })))))));\n            return zb;\n        },\n        _renderOrderedList: function() {\n            if (((((!this._isVisible || ((this._preventRendering && this._hasRendered)))) || ob))) {\n                return;\n            }\n        ;\n        ;\n            this._hasRendered = true;\n            this._cachedItems = null;\n            var xb = [], yb, zb, ac = false, bc = false, cc = r.get(\"divebar_has_new_groups_button\", false), dc = o.hasClass(JSBNG__document.documentElement, \"sidebarMode\"), ec = qa.getVisibility(), fc = ((qa.getOnlinePolicy() === qa.ONLINE_TO_WHITELIST)), gc = ((this._isLitestandSidebar && this._isLitestandSidebarCollapsed())), hc = r.get(\"groups_in_divebar\");\n            ((hc && this._updateGroupThreads()));\n            var ic = ((hc && v.getThreadIDs().length)), jc = ((((((dc && this._favoriteMode)) && ec)) && !fc));\n            if (((((((jc && hc)) && ic)) && this._groupThreadsNode))) {\n                ba.setContent(this._groupsList, this._groupThreadsNode);\n                x.nukeLinks(this._groupThreadsNode);\n                x.nukeLinks(this._favoriteList);\n                this.inform(\"render\");\n            }\n        ;\n        ;\n            var kc = ((((jc && this._groupThreadsNode)) && this._groupsList)), lc = ((kc && ic)), mc = ((this._isLitestand && !oa.byClass(this._root, \"_4w59\")));\n            if (((kc && ((ic || ((mc && cc))))))) {\n                ba.setContent(this._groupsList, this._groupThreadsNode);\n                o.show(this._groupsList);\n                x.nukeLinks(this._favoriteList);\n                this.inform(\"render\");\n            }\n             else ((this._groupsList && o.hide(this._groupsList)));\n        ;\n        ;\n            var nc = ((ic || 0));\n            if (((cc && ((lc || !jc))))) {\n                nc++;\n            }\n        ;\n        ;\n            if (((this._hasChatFlyout && this._isLitestandSidebarCollapsed()))) {\n                nc++;\n            }\n        ;\n        ;\n            var oc = [], pc, qc;\n            if (jc) {\n                ((this._chatSidebar && o.addClass(this._chatSidebar, \"fbSidebarFavoriteList\")));\n                oc = t.get();\n                if (gc) {\n                    oc = oc.slice(0, Math.max(0, ((this._numTopFriends - nc))));\n                }\n            ;\n            ;\n                for (pc = 0, qc = oc.length; ((pc < qc)); pc++) {\n                    yb = oc[pc];\n                    zb = this._getListItem(yb, true);\n                    if (zb) {\n                        xb.push(zb);\n                    }\n                     else {\n                        bc = true;\n                        this._renderListItem(yb, this.update.bind(this));\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            this.toggleFavoriteSidebar(jc, lc);\n            var rc = ((gc ? 1 : 0)), sc = qb.getSortedList(bb(oc), Math.max(0, ((((((this._numTopFriends - oc.length)) - nc)) + rc))));\n            if (jc) {\n                if (((oc.length && sc.length))) {\n                    var tc = ba.create(\"li\", {\n                        className: \"_42g3\"\n                    });\n                    xb.push(tc);\n                }\n            ;\n            ;\n            }\n             else if (((ic || cc))) {\n                ((this._groupThreadsNode && xb.push(this._groupThreadsNode)));\n            }\n            \n        ;\n        ;\n            var uc = ((qa.getVisibility() && ((qa.getOnlinePolicy() == qa.ONLINE_TO_WHITELIST))));\n            for (var vc = 0, wc = sc.length; ((vc < wc)); vc++) {\n                yb = sc[vc];\n                if (uc) {\n                    if (!qa.allows(yb)) {\n                        if (((((vc + 2)) >= sc.length))) {\n                            break;\n                        }\n                    ;\n                    ;\n                        uc = false;\n                        var xc = this._getOfflineToSectionItems();\n                        xb.push(xc[0]);\n                        xb.push(xc[1]);\n                        wc -= 2;\n                    }\n                ;\n                }\n            ;\n            ;\n                zb = this._getListItem(yb);\n                if (zb) {\n                    xb.push(zb);\n                }\n                 else this._renderListItem(yb, this.render.bind(this));\n            ;\n            ;\n            };\n        ;\n            if (jc) {\n                ba.setContent(this._favoriteList, xb);\n                if (xb.length) {\n                    x.nukeLinks(this._favoriteList);\n                }\n            ;\n            ;\n                this.inform(\"render\");\n            }\n        ;\n        ;\n            var yc;\n            if (gc) {\n                yc = [];\n            }\n             else yc = qb.getAvailableList(this._excludedIds);\n        ;\n        ;\n            var zc = oc.concat(sc), ad = bb(zc);\n            yc = yc.filter(function(jd) {\n                return !((jd in ad));\n            });\n            if (this._renderUnreadCount) {\n                var bd = [];\n                if (this._renderedTopUsers) {\n                    var cd = Object.keys(this._renderedTopUsers).filter(function(jd) {\n                        return !((jd in ad));\n                    });\n                    cd.forEach(function(jd) {\n                        this._updateUnreadCount(jd, 0);\n                    }.bind(this));\n                    zc.forEach(function(jd) {\n                        if (!((jd in this._renderedTopUsers))) {\n                            bd.push(jd);\n                        }\n                    ;\n                    ;\n                    }.bind(this));\n                }\n                 else bd = zc;\n            ;\n            ;\n                bd.forEach(function(jd) {\n                    ma.getThreadMeta(ma.getThreadIdForUser(jd), function(kd) {\n                        this._updateUnreadCount(jd, ((kd && kd.unread_count)));\n                    }.bind(this));\n                }.bind(this));\n                this._renderedTopUsers = ad;\n            }\n        ;\n        ;\n            if (r.get(\"divebar_show_mobile_more_friends_alphabetical\")) {\n                yc.sort(vb);\n            }\n             else yc.sort(wb);\n        ;\n        ;\n            var dd = \"MORE FRIENDS\";\n            if (jc) {\n                xb = [];\n            }\n             else if (((yc.length && xb.length))) {\n                var ed;\n                if (this._isLitestand) {\n                    ed = ia.span(null, ia.span({\n                        className: \"_554u\"\n                    }, dd, \" \\u00b7 \", yc.length), ia.span({\n                        className: \"_554v\"\n                    }, \" +\", yc.length));\n                }\n                 else ed = kb._(\"{MORE ONLINE FRIENDS} ({=count})\", {\n                    \"MORE ONLINE FRIENDS\": dd,\n                    \"=count\": yc.length\n                });\n            ;\n            ;\n                if (this._pymk) {\n                    ac = true;\n                    xb.push(this._pymk);\n                }\n            ;\n            ;\n                xb.push(ia.li({\n                    className: \"_554m moreOnlineFriends\"\n                }, ia.div({\n                    className: \"_554o\"\n                }, ia.div({\n                    className: \"_554n\"\n                }, ia.span({\n                    className: \"_554p\"\n                }, ed), ia.div({\n                    className: \"_554q\"\n                }, ia.span({\n                    className: \"_554r\"\n                }))))));\n            }\n            \n        ;\n        ;\n            for (pc = 0, qc = yc.length; ((pc < qc)); pc++) {\n                yb = yc[pc];\n                zb = this._getListItem(yb);\n                if (zb) {\n                    xb.push(zb);\n                }\n                 else this._renderListItem(yb, this.render.bind(this));\n            ;\n            ;\n            };\n        ;\n            if (((((!sc.length && !yc.length)) && !nc))) {\n                var fd = this._messageTemplate.render(), gd = za.getNode(fd, \"message\");\n                ba.setContent(gd, \"No one is available to chat.\");\n                xb.push(fd);\n            }\n        ;\n        ;\n            if (this._hasChatFlyout) {\n                var hd = ((this._isLitestandSidebarCollapsed() ? this._getSidebarFlyoutItem() : null));\n                ba.setContent(this._sidebarFlyoutItemContainer, hd);\n            }\n        ;\n        ;\n            if (xb.length) {\n                if (jc) {\n                    o.show(this._activeNowList);\n                    if (this._activeNowLabel) {\n                        var id;\n                        o.show(this._activeNowArea);\n                        if (this._isLitestand) {\n                            id = ia.span(null, ia.span({\n                                className: \"_554u\"\n                            }, dd, \" \\u00b7 \", yc.length), ia.span({\n                                className: \"_554v\"\n                            }, \" +\", yc.length));\n                        }\n                         else id = kb._(\"{MORE ONLINE FRIENDS} ({=count})\", {\n                            \"MORE ONLINE FRIENDS\": \"ACTIVE NOW\",\n                            \"=count\": yc.length\n                        });\n                    ;\n                    ;\n                        ba.setContent(this._activeNowLabel, id);\n                    }\n                ;\n                ;\n                    ba.setContent(this._activeNowList, xb);\n                    x.nukeLinks(this._activeNowList);\n                }\n                 else {\n                    if (((this._pymk && !ac))) {\n                        xb.push(this._pymk);\n                    }\n                ;\n                ;\n                    ba.setContent(this._orderedList, xb);\n                    if (this._pymk) {\n                        x.removeMessagesHrefs(this.getRoot());\n                    }\n                     else x.nukeLinks(this.getRoot());\n                ;\n                ;\n                }\n            ;\n            ;\n                this.inform(\"render\");\n                this._placeholderUpdate();\n                if (!this._renderingAfterScroll) {\n                    this._renderingAfterScroll = true;\n                    this.render = eb(hb.curry(this._renderOrderedList.bind(this), \"ChatOrderedList/render\", true), 300);\n                }\n            ;\n            ;\n            }\n             else if (jc) {\n                o.hide(this._activeNowList);\n                if (this._activeNowArea) {\n                    o.hide(this._activeNowArea);\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            if (jc) {\n                ((this._editButton && u.tryShow(this._editButton)));\n            }\n             else u.tryHide();\n        ;\n        ;\n            if (((jc && !bc))) {\n                if (((t.isEditMode() && t.hasChanged()))) {\n                    this._createSortableGroup();\n                }\n            ;\n            }\n        ;\n        ;\n        },\n        render: function() {\n            this.render = eb(this._renderOrderedList.bind(this), 300);\n            this.render();\n        },\n        _renderListItem: function(xb, yb) {\n            ta.get(xb, function(zb) {\n                var ac = this._template.render(), bc = za.getNode(ac, \"profile-photo\");\n                if (r.get(\"chat_use_client_side_image_requests\", 0)) {\n                    var cc = ((this._isLitestand ? 24 : 28));\n                    new fa().setFBID(zb.id).setType(ga.PROFILE_PICTURE).setDimensions(cc, cc).setResizeMode(pa.COVER).setCallback(function(hc) {\n                        bc.setAttribute(\"src\", hc.uri);\n                    }).send();\n                }\n                 else bc.setAttribute(\"src\", zb.thumbSrc);\n            ;\n            ;\n                var dc = za.getNode(ac, \"JSBNG__name\");\n                ba.setContent(dc, zb.JSBNG__name);\n                var ec = za.getNode(ac, \"accessible-name\");\n                ba.setContent(ec, zb.JSBNG__name);\n                var fc = za.getNode(ac, \"anchor\");\n                fc.setAttribute(\"href\", ((\"/messages/\" + xb)));\n                var gc = za.getNode(ac, \"tooltip\");\n                ((gc && va.set(gc, zb.JSBNG__name, \"right\")));\n                ca.set(ac, \"id\", xb);\n                this._itemsMap[xb] = {\n                    node: ac\n                };\n                ((yb && yb(ac)));\n            }.bind(this));\n        },\n        _updateUnreadCount: function(xb, yb) {\n            var zb = this._itemsMap[xb];\n            if (!zb) {\n                return;\n            }\n        ;\n        ;\n            if (this._isSidebar) {\n                this._unreadMessages = ((this._unreadMessages || {\n                }));\n                if (!!yb) {\n                    this._unreadMessages[xb] = true;\n                }\n                 else delete this._unreadMessages[xb];\n            ;\n            ;\n                h.inform(\"buddylist-nub/updateCount\", {\n                    count: Object.keys(this._unreadMessages).length\n                });\n            }\n        ;\n        ;\n            zb.unreadCount = ((zb.unreadCount || ba.JSBNG__find(zb.node, \"._550_\")));\n            yb = ((yb ? yb : 0));\n            ba.setContent(zb.unreadCount, ((((yb > pb)) ? ((pb + \"+\")) : yb)));\n            o.conditionClass(zb.unreadCount, \"_550z\", ((yb > pb)));\n            o.conditionClass(zb.node, \"_550-\", yb);\n        },\n        _getSidebarFlyoutItem: function() {\n            if (this._flyoutItem) {\n                return this._flyoutItem;\n            }\n        ;\n        ;\n            this._flyoutItem = (ia.li({\n                className: \"_57dk\"\n            }, ia.div({\n                className: \"_57dl\"\n            })));\n            ea.listen(this._flyoutItem, \"mouseenter\", function() {\n                var yb = ia.span(null, \"Chat\", \" \\u00b7 \", l.getOnlineCount());\n                if (((this._flyoutInstance && this._flyoutInstance.isShown()))) {\n                    va.remove(this._flyoutItem);\n                }\n                 else va.set(this._flyoutItem, yb, \"right\");\n            ;\n            ;\n            }.bind(this));\n            var xb = this._showLitestandChatFlyout.bind(this);\n            h.subscribe(\"ChatBeeper/clicked\", xb);\n            ea.listen(this._flyoutItem, \"click\", xb);\n            return this._flyoutItem;\n        },\n        _showLitestandChatFlyout: function() {\n            if (this._loadingFlyout) {\n                return;\n            }\n        ;\n        ;\n            if (this._flyoutInstance) {\n                this._flyoutInstance.toggle();\n                return;\n            }\n        ;\n        ;\n            this._loadingFlyout = true;\n            new k(\"/ajax/chat/litestand_flyout\").setData({\n                contextID: ba.getID(this._flyoutItem)\n            }).setAllowCrossPageTransition(true).send();\n            var xb = h.subscribe(\"LitestandChatSidebarFlyout/init\", function(yb, zb) {\n                this._flyoutInstance = zb;\n                this._loadingFlyout = false;\n                xb.unsubscribe();\n                this.subscribe(\"render\", zb.contextPositionInvalidated.bind(zb));\n            }.bind(this));\n        },\n        show: function() {\n            if (this._isVisible) {\n                return;\n            }\n        ;\n        ;\n            this._isVisible = true;\n            o.show(((this._scrollableOrderedList || this._root)));\n            this.render();\n            this.inform(\"show\");\n        },\n        isVisible: function() {\n            return this._isVisible;\n        },\n        update: function() {\n            this._hasRendered = false;\n            if (!this._renderRequest) {\n                this._renderRequest = gb(function() {\n                    this.render();\n                    this._renderRequest = null;\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        setScrollContainer: function(xb) {\n            if (ba.contains(xb, this._root)) {\n                this._scrollContainer = xb;\n                if (this._usePlaceholder) {\n                    ea.listen(xb, \"JSBNG__scroll\", jb.acrossTransitions(this._placeholderUpdate.bind(this)));\n                    ea.listen(window, \"resize\", jb.acrossTransitions(function() {\n                        this._scrollContainerHeight = null;\n                        this._placeholderUpdate();\n                    }.bind(this), 250));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        JSBNG__scrollTo: function(xb) {\n            if (!this._scrollContainer) {\n                return;\n            }\n        ;\n        ;\n            var yb = this._scrollContainer.scrollHeight, zb = this._scrollContainer.clientHeight, ac = this._scrollContainer.scrollTop, bc = Math.min(xb.offsetTop, ((yb - zb)));\n            if (((ac !== bc))) {\n                var cc = ((this._isLitestand ? 600 : ((((Math.abs(((bc - ac))) / this._scrollContainer.clientHeight)) * 500)))), dc = ((this._isLitestand ? da.easeOutExpo : g.ease.end));\n                new g(this._scrollContainer).to(\"scrollTop\", bc).ease(dc).duration(cc).go();\n            }\n        ;\n        ;\n        },\n        _applyContext: function(xb, yb) {\n            var zb = ((s.getShortDisplay(xb) || \"\"));\n            if (yb.contextNode) {\n                ba.setContent(yb.contextNode, zb);\n                o.conditionClass(yb.node, \"_52zj\", zb);\n                var ac = s.get(xb), bc = ((ac ? ac.type : null));\n                {\n                    var fin218keys = ((window.top.JSBNG_Replay.forInKeys)((qb.CONTEXT_CLASSES))), fin218i = (0);\n                    var cc;\n                    for (; (fin218i < fin218keys.length); (fin218i++)) {\n                        ((cc) = (fin218keys[fin218i]));\n                        {\n                            var dc = ((cc === bc)), ec = ((qb.CONTEXT_CLASSES[cc] || \"_56x-\"));\n                            o.conditionClass(yb.contextNode, ec, dc);\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = qb;\n});\n__d(\"TypingDetectorController\", [\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"ChannelConnection\",\"ChatVisibility\",\"Keys\",\"PresencePrivacy\",\"ShortProfiles\",\"TypingDetector\",\"copyProperties\",\"emptyFunction\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"AvailableList\"), i = b(\"AvailableListConstants\"), j = b(\"ChannelConnection\"), k = b(\"ChatVisibility\"), l = b(\"Keys\"), m = b(\"PresencePrivacy\"), n = b(\"ShortProfiles\"), o = b(\"TypingDetector\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"shield\");\n    function s(u) {\n        if (!k.isOnline()) {\n            return false;\n        }\n    ;\n    ;\n        if (u) {\n            var v = n.getNow(u);\n            return ((((v && ((v.type == \"friend\")))) && m.allows(u)));\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    function t(u, v, w, x, y) {\n        this.userID = u;\n        this.input = v;\n        this.source = w;\n        this.threadID = y;\n        this.remoteState = o.INACTIVE;\n        this.notifyTimer = null;\n        x = ((x || {\n        }));\n        this.notifyDelay = ((x.notifyDelay || this.notifyDelay));\n        this._typingDetector = new o(v);\n        this._typingDetector.init(x);\n        this._typingDetector.subscribe(\"change\", this._stateChange.bind(this));\n    };\n;\n    p(t.prototype, {\n        notifyDelay: 1000,\n        setUserAndThread: function(u, v) {\n            if (((((this.userID !== u)) || ((this.threadID !== v))))) {\n                this.resetState();\n                this.userID = u;\n                this.threadID = v;\n            }\n        ;\n        ;\n        },\n        setIgnoreEnter: function(u) {\n            var v = ((u ? [l.RETURN,] : []));\n            this._typingDetector.setIgnoreKeys(v);\n        },\n        resetState: function() {\n            this.remoteState = t.INACTIVE;\n            this._typingDetector.reset();\n            JSBNG__clearTimeout(this.notifyTimer);\n            this.notifyTimer = null;\n        },\n        _stateChange: function(u, v) {\n            if (((v != o.QUITTING))) {\n                JSBNG__clearTimeout(this.notifyTimer);\n                this.notifyTimer = r(this._notifyState, this, v).defer(this.notifyDelay, false);\n            }\n             else this._notifyState(v, true);\n        ;\n        ;\n        },\n        _notifyState: function(u, v) {\n            if (((!this.userID && !this.threadID))) {\n                return;\n            }\n        ;\n        ;\n            var w = this.userID, x = s(w);\n            if (((x && ((u != this.remoteState))))) {\n                this.remoteState = u;\n                if (j.disconnected()) {\n                    return;\n                }\n            ;\n            ;\n                var y = {\n                    typ: u,\n                    to: w,\n                    source: this.source,\n                    thread: this.threadID\n                };\n                new g().setHandler(this._onTypResponse.bind(this, w)).setErrorHandler(q).setData(y).setURI(\"/ajax/messaging/typ.php\").setAllowCrossPageTransition(true).setOption(\"asynchronous\", !v).send();\n            }\n        ;\n        ;\n        },\n        _onTypResponse: function(u, v) {\n            var w = ((v.getPayload() || {\n            }));\n            if (w.offline) {\n                h.set(u, i.OFFLINE, \"typing_response\");\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = t;\n});\n__d(\"ChatBehavior\", [\"Arbiter\",\"AvailableList\",\"AvailableListConstants\",\"ChatConfig\",\"copyProperties\",\"MercuryConstants\",\"ChatSidebarCalloutData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AvailableList\"), i = b(\"AvailableListConstants\"), j = b(\"ChatConfig\"), k = b(\"copyProperties\"), l = b(\"MercuryConstants\").ChatNotificationConstants, m = b(\"ChatSidebarCalloutData\").isShown, n = h.getWebChatNotification(), o = m, p = true, q = k(new g(), {\n        ON_CHANGED: \"changed\",\n        notifiesUserMessages: function() {\n            return ((n !== l.NO_USER_MESSAGE_NOTIFICATION));\n        },\n        ignoresRemoteTabRaise: function() {\n            return o;\n        },\n        showsTabUnreadUI: function() {\n            if (j.get(\"web_messenger_suppress_tab_unread\")) {\n                return p;\n            }\n        ;\n        ;\n            return true;\n        }\n    });\n    function r() {\n        q.inform(q.ON_CHANGED);\n    };\n;\n    h.subscribe(i.ON_CHAT_NOTIFICATION_CHANGED, function() {\n        var s = n, t = h.getWebChatNotification();\n        n = t;\n        if (((s != t))) {\n            r();\n        }\n    ;\n    ;\n    });\n    g.subscribe(\"chat/set_does_page_occlude_tabs\", function(s, t) {\n        o = !!t;\n        r();\n    });\n    g.subscribe(\"chat/set_show_tab_unread_ui\", function(s, t) {\n        p = !!t;\n        r();\n    });\n    e.exports = q;\n});\n__d(\"ChatSidebarSheet\", [\"JSXDOM\",\"JSBNG__Event\",\"function-extensions\",\"ArbiterMixin\",\"BlackbirdUpsell\",\"ChannelConnection\",\"ChannelConstants\",\"ChatBehavior\",\"ChatConfig\",\"ChatVisibility\",\"CSS\",\"DOM\",\"JSLogger\",\"PresencePrivacy\",\"Tooltip\",\"csx\",\"cx\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var i = b(\"ArbiterMixin\"), j = b(\"BlackbirdUpsell\"), k = b(\"ChannelConnection\"), l = b(\"ChannelConstants\"), m = b(\"ChatBehavior\"), n = b(\"ChatConfig\"), o = b(\"ChatVisibility\"), p = b(\"CSS\"), q = b(\"DOM\"), r = b(\"JSLogger\"), s = b(\"PresencePrivacy\"), t = b(\"Tooltip\"), u = b(\"csx\"), v = b(\"cx\"), w = b(\"copyProperties\"), x = b(\"tx\"), y = r.create(\"sidebar_sheet\");\n    function z(ca) {\n        switch (ca) {\n          case l.HINT_AUTH:\n            return \"Your session has timed out. Please log in.\";\n          case l.HINT_CONN:\n            return x._(\"Facebook {Chat} is currently unavailable.\", {\n                Chat: \"Chat\"\n            });\n          case l.HINT_MAINT:\n            return x._(\"Facebook {Chat} is currently down for maintenance.\", {\n                Chat: \"Chat\"\n            });\n          default:\n            return x._(\"Facebook {Chat} is currently unavailable.\", {\n                Chat: \"Chat\"\n            });\n        };\n    ;\n    };\n;\n    function aa(ca) {\n        var da;\n        if (((ca === null))) {\n            da = \"Unable to connect to chat. Check your Internet connection.\";\n        }\n         else if (((ca > n.get(\"warning_countdown_threshold_msec\")))) {\n            var ea = q.create(\"a\", {\n                href: \"#\",\n                className: \"fbChatReconnectLink\"\n            }, \"Try again\");\n            da = q.tx._(\"Unable to connect to chat. {try-again-link}\", {\n                \"try-again-link\": ea\n            });\n        }\n         else if (((ca > 1000))) {\n            da = x._(\"Unable to connect to chat. Reconnecting in {seconds}...\", {\n                seconds: Math.floor(((ca / 1000)))\n            });\n        }\n         else da = \"Unable to connect to chat. Reconnecting...\";\n        \n        \n    ;\n    ;\n        return da;\n    };\n;\n    function ba(ca) {\n        this._root = ca;\n        this._litestandOffline = q.scry(ca, \"._52d2\");\n        this._message = q.JSBNG__find(ca, \"div.fbChatSidebarMessage div.message\");\n        k.subscribe([k.CONNECTED,k.SHUTDOWN,k.RECONNECTING,], this._handleConnectionChange.bind(this));\n        k.subscribe([k.MUTE_WARNING,k.UNMUTE_WARNING,], this._render.bind(this));\n        s.subscribe(\"privacy-user-presence-changed\", this._render.bind(this));\n        m.subscribe(m.ON_CHANGED, this._render.bind(this));\n        this._render();\n    };\n;\n    w(ba.prototype, i, {\n        _channelStatus: null,\n        _channelData: null,\n        _handleConnectionChange: function(ca, da) {\n            this._channelStatus = ca;\n            this._channelData = da;\n            this._render();\n        },\n        _showWarningTimeout: null,\n        _warningMsgEventListener: null,\n        _renderChannelDisconnect: function() {\n            if (((this._channelStatus === k.SHUTDOWN))) {\n                return q.setContent(this._message, z(this._channelData));\n            }\n             else if (((this._channelStatus === k.RECONNECTING))) {\n                var ca = this._channelData;\n                q.setContent(this._message, aa(ca));\n                if (((ca > 1000))) {\n                    if (((ca > n.get(\"warning_countdown_threshold_msec\")))) {\n                        this._warningMsgEventListener = h.listen(this._message, \"click\", function(JSBNG__event) {\n                            if (p.hasClass(JSBNG__event.getTarget(), \"fbChatReconnectLink\")) {\n                                k.reconnect();\n                                return false;\n                            }\n                        ;\n                        ;\n                        });\n                    }\n                ;\n                ;\n                    this._showWarningTimeout = JSBNG__setTimeout(this._handleConnectionChange.bind(this, k.RECONNECTING, ((ca - 1000))), 1000, false);\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n        },\n        _goOnlineEventListener: null,\n        _renderOffline: function() {\n            if (this._isLitestand) {\n                return;\n            }\n        ;\n        ;\n            if (((this._litestandOffline && this._litestandOffline.length))) {\n                this._renderLitestandOffline();\n            }\n        ;\n        ;\n            var ca = \"fbChatGoOnlineLink\", da = \"Turn on chat\", ea = q.create(\"a\", {\n                href: \"#\",\n                className: ca\n            }, da), fa = q.tx._(\"{=Go online} to see who's available.\", {\n                \"=Go online\": ea\n            });\n            q.setContent(this._message, fa);\n            this._goOnlineEventListener = h.listen(this._message, \"click\", function(JSBNG__event) {\n                if (p.hasClass(JSBNG__event.getTarget(), ca)) {\n                    y.log(\"sidebar_go_online\");\n                    o.goOnline();\n                    return false;\n                }\n            ;\n            ;\n            });\n        },\n        _renderLitestandOffline: function() {\n            this._litestandOffline = this._litestandOffline[0];\n            this._isLitestand = true;\n            var ca = g.div({\n                className: \"_4_vf\"\n            }), da = g.a({\n                className: \"_52cx _52i7\",\n                href: \"#\"\n            }, g.i({\n                className: \"_52c_\"\n            }), g.div({\n                className: \"_52cz\"\n            }, g.div({\n                className: \"_52c-\"\n            }, g.i({\n                className: \"_52d1\"\n            }), g.div({\n                className: \"_52cy\"\n            }, q.tx._(\"Turn on Chat\")))), g.i({\n                className: \"_52d0\"\n            }), ca);\n            t.set(ca, q.tx._(\"Turn on Chat\"), \"right\", \"center\");\n            q.replace(this._litestandOffline, da);\n            this._litestandOffline = null;\n            h.listen(da, \"click\", function(JSBNG__event) {\n                y.log(\"sidebar_go_online\");\n                o.goOnline();\n                JSBNG__event.prevent();\n            });\n        },\n        _renderBlackbirdUpsell: function() {\n            q.setContent(this._message, j.getOfflineContent());\n        },\n        _renderBlackbird: function(ca) {\n            q.setContent(this._message, j.getBlackbirdContent(ca));\n        },\n        _clear: function() {\n            if (this._showWarningTimeout) {\n                JSBNG__clearTimeout(this._showWarningTimeout);\n                this._showWarningTimeout = null;\n            }\n        ;\n        ;\n            if (this._warningMsgEventListener) {\n                this._warningMsgEventListener.remove();\n                this._warningMsgEventListener = null;\n            }\n        ;\n        ;\n            if (this._goOnlineEventListener) {\n                this._goOnlineEventListener.remove();\n                this._goOnlineEventListener = null;\n            }\n        ;\n        ;\n            p.removeClass(this._root, \"upsell\");\n            p.removeClass(this._root, \"offline\");\n            p.removeClass(this._root, \"blackbird\");\n            p.removeClass(this._root, \"error\");\n            p.removeClass(this._root, \"notice\");\n            q.empty(this._message);\n        },\n        _render: function() {\n            this._clear();\n            if (j.shouldShow()) {\n                if (o.hasBlackbirdEnabled()) {\n                    var ca = ((o.isOnline() ? \"blackbird\" : \"upsell\"));\n                    p.addClass(this._root, ca);\n                    this._renderBlackbird(s.getVisibility());\n                }\n                 else if (!o.isOnline()) {\n                    p.addClass(this._root, \"upsell\");\n                    this._renderBlackbirdUpsell();\n                }\n                \n            ;\n            ;\n            }\n             else if (!o.isOnline()) {\n                p.addClass(this._root, \"offline\");\n                this._renderOffline();\n            }\n             else if (k.disconnected()) {\n                p.addClass(this._root, \"error\");\n                this._renderChannelDisconnect();\n            }\n             else if (!m.notifiesUserMessages()) {\n                p.addClass(this._root, \"notice\");\n                q.setContent(this._message, \"Alerts are off while you use another client to chat.\");\n            }\n            \n            \n            \n        ;\n        ;\n            this.inform(\"updated\");\n        }\n    });\n    e.exports = ba;\n});\n__d(\"FBDesktopPlugin\", [\"CacheStorage\",\"DOM\",\"Env\",\"FBDesktopDetect\",\"URI\",\"Style\",], function(a, b, c, d, e, f) {\n    var g = b(\"CacheStorage\"), h = b(\"DOM\"), i = b(\"Env\"), j = b(\"FBDesktopDetect\"), k = b(\"URI\"), l = b(\"Style\"), m = new g(\"localstorage\", \"_socialfox_\"), n = {\n        _plugin: \"_not_checked\",\n        arbiterInform: function(o, p) {\n            var q = JSON.stringify({\n                JSBNG__name: o,\n                payload: p\n            });\n            this._transmitCommand(\"arbiterinform\", q);\n        },\n        bringToFront: function() {\n            this._transmitCommand(\"bringtofront\");\n        },\n        dock: function() {\n            this._transmitCommand(\"dock\");\n        },\n        getPlugin: function() {\n            if (((this._plugin === \"_not_checked\"))) {\n                this._plugin = null;\n                if (j.isPluginInstalled()) {\n                    var o = h.create(\"object\", {\n                        id: \"kiwi_plugin\",\n                        type: j.mimeType\n                    });\n                    l.set(o, \"width\", 0);\n                    l.set(o, \"height\", 0);\n                    var p = h.create(\"div\", {\n                    }, o);\n                    l.set(p, \"width\", 0);\n                    l.set(p, \"height\", 0);\n                    JSBNG__document.body.appendChild(p);\n                    this._plugin = o;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return this._plugin;\n        },\n        getUserID: function() {\n            var o = this.getPlugin();\n            return ((((o && ((\"getUserID\" in o)))) && o.getUserID()));\n        },\n        getVersion: function() {\n            var o = this.getPlugin();\n            return ((((o && ((\"getVersion\" in o)))) && o.getVersion()));\n        },\n        isAppRunning: function() {\n            var o = this.getPlugin();\n            return ((((o && ((\"isAppRunning\" in o)))) && o.isAppRunning()));\n        },\n        launchApp: function() {\n            var o = this.getPlugin();\n            return ((((o && ((\"launchApp\" in o)))) && o.launchApp()));\n        },\n        login: function(o, p) {\n            if (((((p && o)) && ((o.length > 0))))) {\n                var q = this.getPlugin();\n                if (q) {\n                    this._transmitCommand(((((((\"relogin\\u000a\" + o)) + \"\\u000a\")) + p)));\n                    return;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        logout: function(o) {\n            o = ((o || \"0\"));\n            var p = this.getPlugin();\n            if (p) {\n                p.logout(o);\n            }\n        ;\n        ;\n        },\n        recheck: function() {\n            if (((this._plugin === null))) {\n                this._plugin = \"_not_checked\";\n            }\n        ;\n        ;\n        },\n        shouldSuppressBeeper: function() {\n            return this.isAppRunning();\n        },\n        shouldSuppressMessages: function() {\n            if (((m && m.get(\"connected\")))) {\n                return true;\n            }\n        ;\n        ;\n            var o = this.getUserID();\n            if (o) {\n                return ((o === i.user));\n            }\n             else return this.isAppRunning()\n        ;\n        },\n        shouldSuppressSidebar: function() {\n            var o = this.getPlugin(), p = ((((o && ((\"isAppDocked\" in o)))) && o.isAppDocked())), q = ((m && ((m.get(\"active\") === \"true\"))));\n            return ((p || q));\n        },\n        transferAuthToken: function(o, p) {\n            if (((o && ((o.length > 0))))) {\n                var q = this.getPlugin();\n                if (q) {\n                    q.setAccessToken(o, p);\n                    var r = JSBNG__setInterval(function() {\n                        q.setAccessToken(o, p);\n                    }, 500);\n                    JSBNG__setTimeout(function() {\n                        JSBNG__clearInterval(r);\n                    }, ((10 * 1000)));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (this.redirectHome) {\n                window.JSBNG__location.href = k().setPath().toString();\n            }\n        ;\n        ;\n        },\n        _transmitCommand: function(o, p) {\n            p = ((p || \"\"));\n            var q = this.getPlugin();\n            if (((q && ((\"transmitCommand\" in q))))) {\n                q.transmitCommand(o, p);\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = n;\n});\n__d(\"ChatSidebar\", [\"ChatOrderedList\",\"ChatTypeaheadBehavior\",\"ChatTypeaheadCore\",\"ChatTypeaheadDataSource\",\"ChatTypeaheadRenderer\",\"ChatTypeaheadView\",\"Typeahead\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"Bootloader\",\"ChannelConnection\",\"Chat\",\"ChatConfig\",\"ChatHovercard\",\"ChatImpressionLogger\",\"ChatOptions\",\"ChatSidebarSheet\",\"ChatVisibility\",\"CSS\",\"DOM\",\"DOMDimensions\",\"JSBNG__Event\",\"FBDesktopPlugin\",\"JSLogger\",\"JSXDOM\",\"KeyEventController\",\"OrderedFriendsList\",\"Parent\",\"PresencePrivacy\",\"ScrollableArea\",\"Style\",\"UserAgent\",\"ViewportBounds\",\"copyProperties\",\"createArrayFrom\",\"csx\",\"cx\",\"debounce\",\"emptyFunction\",\"fbt\",\"ge\",\"tx\",], function(a, b, c, d, e, f) {\n    b(\"ChatOrderedList\");\n    b(\"ChatTypeaheadBehavior\");\n    b(\"ChatTypeaheadCore\");\n    b(\"ChatTypeaheadDataSource\");\n    b(\"ChatTypeaheadRenderer\");\n    b(\"ChatTypeaheadView\");\n    b(\"Typeahead\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"AsyncRequest\"), j = b(\"AvailableList\"), k = b(\"AvailableListConstants\"), l = b(\"Bootloader\"), m = b(\"ChannelConnection\"), n = b(\"Chat\"), o = b(\"ChatConfig\"), p = b(\"ChatHovercard\"), q = b(\"ChatImpressionLogger\"), r = b(\"ChatOptions\"), s = b(\"ChatSidebarSheet\"), t = b(\"ChatVisibility\"), u = b(\"CSS\"), v = b(\"DOM\"), w = b(\"DOMDimensions\"), x = b(\"JSBNG__Event\"), y = b(\"FBDesktopPlugin\"), z = b(\"JSLogger\"), aa = b(\"JSXDOM\"), ba = b(\"KeyEventController\"), ca = b(\"OrderedFriendsList\"), da = b(\"Parent\"), ea = b(\"PresencePrivacy\"), fa = b(\"ScrollableArea\"), ga = b(\"Style\"), ha = b(\"UserAgent\"), ia = b(\"ViewportBounds\"), ja = b(\"copyProperties\"), ka = b(\"createArrayFrom\"), la = b(\"csx\"), ma = b(\"cx\"), na = b(\"debounce\"), oa = b(\"emptyFunction\"), pa = b(\"fbt\"), qa = b(\"ge\"), ra = b(\"tx\"), sa, ta = false, ua = false, va = false, wa = false, xa = false, ya = false, za, ab, bb, cb, db, eb = null, fb, gb, hb, ib, jb, kb, lb = 28, mb = 38, nb = z.create(\"chat_sidebar\");\n    function ob() {\n        if (gb) {\n            return;\n        }\n    ;\n    ;\n        u.removeClass(JSBNG__document.documentElement, \"sidebarMode\");\n        if (((!wa || !yb.isVisible()))) {\n            g.inform(\"reflow\");\n            return;\n        }\n    ;\n    ;\n        va = false;\n        eb = null;\n        za.hide();\n        cb.getCore().reset();\n        u.hide(ab);\n        nb.rate(\"sidebar_hide\", wa);\n        yb.inform(\"sidebar/hide\", yb);\n        g.inform(\"sidebar/hide\", yb);\n        g.inform(\"reflow\");\n    };\n;\n    function pb() {\n        var zb = yb.shouldShowSidebar();\n        u.conditionClass(JSBNG__document.documentElement, \"sidebarCapable\", zb);\n        if (((yb.isEnabled() && zb))) {\n            sb();\n            var ac;\n            if (fb) {\n                var bc = u.hasClass(ab, \"_4w59\");\n                if (bc) {\n                    return;\n                }\n            ;\n            ;\n                kb = ((kb || v.JSBNG__find(ab, \"._50g0\")));\n                if (fb.has_favorites_editing) {\n                    jb = ((jb || v.scry(ab, \"._52s9\")[0]));\n                }\n            ;\n            ;\n                ac = [kb,];\n            }\n             else ac = ka(ab.childNodes);\n        ;\n        ;\n            var cc = rb(ac), dc = ((za.getItemHeight() || 32)), ec = ((za.getPaddingOffset() || 8)), fc;\n            if (gb) {\n                if (gb.isExpanded()) {\n                    ec = ((ec + lb));\n                    if (((fb && fb.always_show_one_see_more))) {\n                        ec += dc;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (!n.isOnline()) {\n                    ec += mb;\n                }\n            ;\n            ;\n                var gc = Math.floor(((za.getItemPadding() / 2)));\n                fc = Math.floor(((((((cc - ec)) + gc)) / dc)));\n                if (!za.isVisible()) {\n                    ga.set(sa, \"height\", ((cc + \"px\")));\n                }\n            ;\n            ;\n            }\n             else {\n                fc = Math.floor(((((cc - ec)) / ((dc + 1)))));\n                ga.set(sa, \"height\", ((cc + \"px\")));\n            }\n        ;\n        ;\n            za.setNumTopFriends(fc);\n            var hc = Math.floor(((((cc - ec)) / dc)));\n            if (ub()) {\n                hc = ((((((hc - 2)) > 0)) ? ((hc - 2)) : 0));\n            }\n        ;\n        ;\n            cb.getData().setMaxResults(hc);\n            yb.inform(\"sidebar/resized\", yb);\n            g.inform(\"sidebar/resized\", yb);\n            g.inform(\"reflow\");\n        }\n         else ob();\n    ;\n    ;\n        if (!wa) {\n            wb();\n            wa = true;\n        }\n    ;\n    ;\n        eb = null;\n    };\n;\n    function qb() {\n        if (((cb && yb.isVisible()))) {\n            cb.getCore().getElement().JSBNG__focus();\n        }\n    ;\n    ;\n    };\n;\n    function rb(zb) {\n        if (!zb) {\n            if (fb) {\n                kb = ((kb || v.JSBNG__find(ab, \"._50g0\")));\n                zb = [kb,];\n            }\n             else zb = ka(ab.childNodes);\n        ;\n        }\n    ;\n    ;\n        var ac = db.height;\n        if (((gb && hb))) {\n            ac -= hb.getFullHeight();\n        }\n    ;\n    ;\n        zb.forEach(function(bc) {\n            if (((bc && ((bc !== sa))))) {\n                ac -= w.getElementDimensions(bc).height;\n            }\n        ;\n        ;\n        });\n        return Math.max(0, ac);\n    };\n;\n    function sb() {\n        if (yb.isVisible()) {\n            return;\n        }\n    ;\n    ;\n        va = true;\n        eb = null;\n        u.show(ab);\n        u.addClass(JSBNG__document.documentElement, \"sidebarMode\");\n        za.show();\n        nb.rate(\"sidebar_show\", wa);\n        yb.inform(\"sidebar/show\", yb);\n        g.inform(\"sidebar/show\", yb);\n        ((ib && xb()));\n    };\n;\n    function tb() {\n        r.setSetting(\"sidebar_mode\", yb.isEnabled(), \"JSBNG__sidebar\");\n        new i(\"/ajax/chat/settings.php\").setHandler(oa).setErrorHandler(oa).setData({\n            sidebar_mode: yb.isEnabled()\n        }).setAllowCrossPageTransition(true).send();\n    };\n;\n    function ub() {\n        return o.get(\"divebar_typeahead_group_fof\", 0);\n    };\n;\n    function vb() {\n        return ((ca.getList().length <= o.get(\"JSBNG__sidebar.min_friends\")));\n    };\n;\n    function wb() {\n        var zb = true;\n        if (!yb.isEnabled()) {\n            nb.log(\"state_not_enabled\");\n            zb = false;\n        }\n    ;\n    ;\n        if (!yb.isViewportCapable()) {\n            nb.log(\"state_not_shown_viewport\");\n            zb = false;\n        }\n    ;\n    ;\n        if (ua) {\n            nb.log(\"state_not_shown_hidden\");\n            zb = false;\n        }\n    ;\n    ;\n        if (vb()) {\n            nb.log(\"state_not_shown_num_friends\");\n            zb = false;\n        }\n    ;\n    ;\n        if (y.shouldSuppressSidebar()) {\n            nb.log(\"state_not_shown_fbdesktop\");\n            zb = false;\n        }\n    ;\n    ;\n        nb.log(((zb ? \"state_shown\" : \"state_not_shown\")));\n    };\n;\n    function xb() {\n        if (!yb.isVisible()) {\n            return;\n        }\n    ;\n    ;\n        var zb;\n        if (!t.isOnline()) {\n            zb = \"Offline\";\n        }\n         else if (m.disconnected()) {\n            zb = \"Connection Lost\";\n        }\n         else zb = ra._(\"{Chat} {number-available}\", {\n            Chat: \"Chat\",\n            \"number-available\": ((((\"(\" + j.getOnlineCount())) + \")\"))\n        });\n        \n    ;\n    ;\n        v.setContent(ib, zb);\n    };\n;\n    var yb = {\n        init: function(zb, ac, bc, cc) {\n            yb.init = oa;\n            xa = true;\n            ab = zb;\n            za = ac;\n            cb = bc;\n            bb = cc;\n            sa = v.JSBNG__find(zb, \"div.fbChatSidebarBody\");\n            gb = ((cc && cc.ls_module));\n            fb = ((cc && cc.ls_config));\n            if (gb) {\n                g.subscribe(\"ViewportSizeChange\", function() {\n                    g.inform(\"ChatOrderedList/itemHeightChange\");\n                    pb();\n                });\n                g.subscribe(\"Sidebar/BookmarksHeightChange\", pb);\n                l.loadModules([\"LitestandSidebarBookmarksDisplay\",], function(ec) {\n                    hb = ec;\n                });\n            }\n             else x.listen(window, \"resize\", pb);\n        ;\n        ;\n            ba.registerKey(\"q\", function() {\n                var ec = null;\n                if (kb) {\n                    ec = v.scry(kb, \".inputsearch\")[0];\n                }\n                 else ec = v.scry(zb, \".inputsearch\")[0];\n            ;\n            ;\n                if (ec) {\n                    ec.JSBNG__focus();\n                    return false;\n                }\n            ;\n            ;\n            });\n            new p(ac);\n            var dc = new s(zb);\n            dc.subscribe(\"updated\", pb);\n            g.subscribe(\"sidebar/invalidate\", pb);\n            ac.setScrollContainer(da.byClass(ac.getRoot(), \"uiScrollableAreaWrap\"));\n            ac.subscribe([\"render\",\"show\",\"hide\",], na(function(ec) {\n                if (((((ec === \"render\")) && !ya))) {\n                    ya = true;\n                    yb.inform(\"sidebar/chatRendered\", null, g.BEHAVIOR_PERSISTENT);\n                }\n            ;\n            ;\n                var fc = ac.getRoot(), gc = fa.getInstance(fc);\n                ((gc && gc.adjustGripper()));\n            }));\n            ac.subscribe([\"editStart\",\"editEnd\",], function(ec) {\n                u.conditionClass(cb.getView().element, \"_4-d6\", ((ec == \"editStart\")));\n            });\n            if (((ha.firefox() >= 17))) {\n                x.listen(window, \"storage\", function(ec) {\n                    if (((((ec.key == \"_socialfox_active\")) && ((ec.oldValue != ec.newValue))))) {\n                        pb();\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            g.subscribe(\"chat/option-changed\", function(ec, fc) {\n                if (((fc.JSBNG__name == \"sidebar_mode\"))) {\n                    ta = !!r.getSetting(\"sidebar_mode\");\n                    pb();\n                }\n            ;\n            ;\n            });\n            bc.getCore().subscribe(\"sidebar/typeahead/active\", yb.updateOnActiveTypeahead);\n            bc.subscribe(\"reset\", function() {\n                if (((!bc.getCore().getValue() && !za.isVisible()))) {\n                    yb.updateOnActiveTypeahead(null, false);\n                }\n            ;\n            ;\n            });\n            if (gb) {\n                bc.getCore().subscribe(\"sidebar/typeahead/preActive\", function(ec, fc) {\n                    if (((ta && cb.getView().isVisible()))) {\n                        g.inform(ec, fc);\n                    }\n                     else pb();\n                ;\n                ;\n                });\n            }\n             else g.subscribe(\"buddylist-nub/initialized\", function(ec, fc) {\n                x.listen(fc.getButton(), \"click\", function(JSBNG__event) {\n                    yb.enable();\n                    return !yb.shouldShowSidebar();\n                });\n            });\n        ;\n        ;\n            ta = !!r.getSetting(\"sidebar_mode\");\n            ((ha.ie() && x.listen(zb, \"click\", function(ec) {\n                if (da.byClass(ec.getTarget(), \"_57du\")) {\n                    qb();\n                }\n            ;\n            ;\n            })));\n            ea.subscribe(\"privacy-user-presence-changed\", pb);\n            pb();\n            q.init(za);\n            if (!gb) {\n                ia.addRight(yb.getVisibleWidth);\n            }\n        ;\n        ;\n            yb.inform(\"sidebar/initialized\", yb, g.BEHAVIOR_PERSISTENT);\n            g.inform(\"sidebar/initialized\", yb, g.BEHAVIOR_PERSISTENT);\n            if (o.get(\"litestand_blended_sidebar\")) {\n                ib = v.JSBNG__find(zb, \"._5bct\");\n                j.subscribe(k.ON_AVAILABILITY_CHANGED, na(xb, 2000));\n                m.subscribe([m.CONNECTED,m.RECONNECTING,m.SHUTDOWN,], xb);\n                ea.subscribe(\"privacy-changed\", xb);\n                xb();\n            }\n        ;\n        ;\n        },\n        updateOnActiveTypeahead: function(zb, ac) {\n            if (!va) {\n                return;\n            }\n        ;\n        ;\n            if (ac) {\n                za.hide();\n                if (gb) {\n                    u.addClass(ab, \"_5384\");\n                    var bc = rb();\n                    if (jb) {\n                        bc += w.getElementDimensions(jb).height;\n                    }\n                ;\n                ;\n                    ga.set(sa, \"height\", ((bc + \"px\")));\n                }\n            ;\n            ;\n            }\n             else {\n                za.show();\n                if (gb) {\n                    ga.set(sa, \"height\", \"auto\");\n                    u.removeClass(ab, \"_5384\");\n                    g.inform(\"sidebar/typeahead/active\", false);\n                    pb();\n                }\n                 else pb();\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        isInitialized: function() {\n            return wa;\n        },\n        disable: function() {\n            if (!yb.isEnabled()) {\n                return;\n            }\n        ;\n        ;\n            ta = false;\n            tb();\n            ob();\n        },\n        enable: function() {\n            if (yb.isEnabled()) {\n                return;\n            }\n        ;\n        ;\n            ta = true;\n            tb();\n            pb();\n            qb.defer();\n        },\n        forceEnsureLoaded: function() {\n            if (xa) {\n                return;\n            }\n        ;\n        ;\n            if (qa(\"pagelet_sidebar\")) {\n                return;\n            }\n        ;\n        ;\n            d([\"UIPagelet\",], function(zb) {\n                var ac = aa.div({\n                    id: \"pagelet_sidebar\"\n                });\n                v.appendContent(JSBNG__document.body, ac);\n                zb.loadFromEndpoint(\"SidebarPagelet\", \"pagelet_sidebar\");\n            });\n            xa = true;\n        },\n        ensureLoaded: function() {\n            if (!ta) {\n                return;\n            }\n        ;\n        ;\n            yb.forceEnsureLoaded();\n        },\n        hide: function() {\n            if (ua) {\n                return;\n            }\n        ;\n        ;\n            ua = true;\n            ob();\n        },\n        unhide: function() {\n            if (!ua) {\n                return;\n            }\n        ;\n        ;\n            ua = false;\n            pb();\n        },\n        getBody: function() {\n            return sa;\n        },\n        getRoot: function() {\n            return ab;\n        },\n        getVisibleWidth: function() {\n            if (((!va || !ab))) {\n                return 0;\n            }\n        ;\n        ;\n            if (((eb === null))) {\n                eb = ab.offsetWidth;\n            }\n        ;\n        ;\n            return eb;\n        },\n        isEnabled: function() {\n            return ta;\n        },\n        isViewportCapable: function() {\n            db = w.getViewportWithoutScrollbarDimensions();\n            if (gb) {\n                return true;\n            }\n        ;\n        ;\n            var zb = o.get(\"JSBNG__sidebar.minimum_width\");\n            return ((db.width > zb));\n        },\n        shouldShowSidebar: function() {\n            var zb = yb.isViewportCapable();\n            return ((gb || ((((((zb && !ua)) && ((!vb() || o.get(\"litestand_blended_sidebar\", false))))) && !y.shouldSuppressSidebar()))));\n        },\n        isVisible: function() {\n            return va;\n        },\n        resize: pb,\n        toggle: function() {\n            if (gb) {\n                gb.toggle();\n            }\n             else ((yb.isEnabled() ? yb.disable() : yb.enable()));\n        ;\n        ;\n        },\n        isLitestandSidebar: function() {\n            return !!gb;\n        }\n    };\n    ja(yb, h);\n    e.exports = yb;\n});\n__d(\"VideoCallingTour\", [\"Arbiter\",\"ArbiterMixin\",\"Chat\",\"ChatSidebar\",\"ChatVisibility\",\"CSS\",\"DOM\",\"PresencePrivacy\",\"Run\",\"Toggler\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Chat\"), j = b(\"ChatSidebar\"), k = b(\"ChatVisibility\"), l = b(\"CSS\"), m = b(\"DOM\"), n = b(\"PresencePrivacy\"), o = b(\"Run\"), p = b(\"Toggler\"), q = b(\"Vector\"), r = b(\"copyProperties\"), s, t, u, v, w = [], x = function() {\n    \n    };\n    function y() {\n        if (j.isVisible()) {\n            z();\n        }\n         else if (u) {\n            aa();\n        }\n        \n    ;\n    ;\n    };\n;\n    function z() {\n        s.setContext(t.getBody());\n        ba();\n        s.show();\n        ca();\n    };\n;\n    function aa() {\n        if (!v) {\n            v = p.createInstance(u.getRoot());\n        }\n    ;\n    ;\n        var fa = m.scry(u.getRoot(), \"div.fbNubFlyout\")[0];\n        if (fa) {\n            s.setContext(fa);\n            ba();\n            s.show();\n            ca();\n        }\n    ;\n    ;\n    };\n;\n    function ba() {\n        var fa = q.getElementDimensions(s.getContext()).y;\n        s.setOffsetY(((fa * 61688)));\n        s.updatePosition();\n    };\n;\n    function ca() {\n        if (u) {\n            w.push(u.subscribe(\"hide\", function() {\n                da();\n                if (!j.isVisible()) {\n                    s.hide();\n                }\n            ;\n            ;\n            }), u.subscribe(\"show\", function() {\n                s.show();\n            }), u.subscribe(\"resize\", function() {\n                ba();\n                s.updatePosition();\n            }));\n        }\n    ;\n    ;\n        w.push(g.subscribe(\"sidebar/show\", z), g.subscribe(\"sidebar/hide\", aa), g.subscribe(\"sidebar/resized\", ba));\n    };\n;\n    function da() {\n        if (v) {\n            v.setSticky(false);\n            v = null;\n        }\n    ;\n    ;\n    };\n;\n    function ea() {\n        while (w.length) {\n            w.pop().unsubscribe();\n        ;\n        };\n    ;\n        if (u) {\n            da();\n        }\n    ;\n    ;\n        s.hide();\n        l.show(\"fbVideoCallingGetStarted\");\n    };\n;\n    r(x, h, {\n        start: function(fa) {\n            s = fa;\n            l.hide(\"fbVideoCallingGetStarted\");\n            k.goOnline(function() {\n                w.push(n.subscribe(\"privacy-user-presence-changed\", ea));\n                o.onLeave(ea);\n                i.openBuddyList();\n                var ga = null;\n                w.push(j.subscribe(\"sidebar/initialized\", function(ha, ia) {\n                    t = ia;\n                    JSBNG__clearTimeout(ga);\n                    ga = y.defer();\n                }), x.subscribe(\"videocallingtour/end\", ea));\n                w.push(g.subscribe(\"buddylist-nub/initialized\", function(ha, ia) {\n                    u = ia;\n                    JSBNG__clearTimeout(ga);\n                    ga = y.defer();\n                }));\n            });\n            x.inform(\"videocallingtour/start\");\n        }\n    });\n    e.exports = x;\n});\n__d(\"ModuleDependencies\", [], function(a, b, c, d, e, f) {\n    function g(k, l, m) {\n        var n = a.require.__debug.modules[m], o = a.require.__debug.deps;\n        if (l[m]) {\n            return;\n        }\n    ;\n    ;\n        l[m] = true;\n        if (!n) {\n            ((o[m] && (k[m] = true)));\n            return;\n        }\n    ;\n    ;\n        if (((!n.dependencies || !n.dependencies.length))) {\n            if (n.waiting) {\n                k[m] = true;\n            }\n        ;\n        ;\n            return;\n        }\n    ;\n    ;\n        n.dependencies.forEach(function(p) {\n            g(k, l, p);\n        });\n    };\n;\n    function h(k) {\n        if (a.require.__debug) {\n            var l = {\n            };\n            g(l, {\n            }, k);\n            var m = Object.keys(l);\n            m.sort();\n            return m;\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function i() {\n        var k = {\n            loading: {\n            },\n            missing: []\n        };\n        if (!a.require.__debug) {\n            return k;\n        }\n    ;\n    ;\n        var l = {\n        }, m = a.require.__debug.modules, n = a.require.__debug.deps;\n        {\n            var fin219keys = ((window.top.JSBNG_Replay.forInKeys)((m))), fin219i = (0);\n            var o;\n            for (; (fin219i < fin219keys.length); (fin219i++)) {\n                ((o) = (fin219keys[fin219i]));\n                {\n                    var p = m[o];\n                    if (p.waiting) {\n                        var q = {\n                        };\n                        g(q, {\n                        }, p.id);\n                        delete q[p.id];\n                        k.loading[p.id] = Object.keys(q);\n                        k.loading[p.id].sort();\n                        k.loading[p.id].forEach(function(r) {\n                            if (((!((r in m)) && n[r]))) {\n                                l[r] = 1;\n                            }\n                        ;\n                        ;\n                        });\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        k.missing = Object.keys(l);\n        k.missing.sort();\n        return k;\n    };\n;\n    var j = {\n        getMissing: h,\n        getNotLoadedModules: i\n    };\n    e.exports = j;\n});\n__d(\"ChatPeopleSuggestionList.react\", [\"ChatSidebarItem.react\",\"fbt\",\"React\",\"ShortProfiles\",\"PresenceStatus\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatSidebarItem.react\"), h = b(\"fbt\"), i = b(\"React\"), j = b(\"ShortProfiles\"), k = b(\"PresenceStatus\"), l = b(\"cx\"), m = i.createClass({\n        displayName: \"ChatPeopleSuggestionList\",\n        _renderPeopleList: function() {\n            var n = [];\n            this.props.uids.map(function(o) {\n                var p = j.getNow(o);\n                if (p) {\n                    n.push(i.DOM.li(null, g({\n                        isAdded: false,\n                        showEditButton: true,\n                        images: p.thumbSrc,\n                        JSBNG__name: p.JSBNG__name,\n                        JSBNG__status: k.get(o),\n                        onClick: this.props.onClick.curry(o)\n                    })));\n                }\n            ;\n            ;\n            }.bind(this));\n            return n;\n        },\n        render: function() {\n            return (i.DOM.div(null, i.DOM.div({\n                className: \"_57zm\"\n            }, i.DOM.span({\n                className: \"_57zn\"\n            }, \"SUGGESTIONS\")), i.DOM.ul({\n                className: \"_56ym\"\n            }, this._renderPeopleList())));\n        }\n    });\n    e.exports = m;\n});\n__d(\"Dock\", [\"function-extensions\",\"JSBNG__Event\",\"shield\",\"WebMessengerWidthControl\",\"Arbiter\",\"ArbiterMixin\",\"ChatQuietLinks\",\"CSS\",\"DataStore\",\"DOM\",\"Parent\",\"Style\",\"Toggler\",\"Vector\",\"copyProperties\",\"csx\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"JSBNG__Event\"), h = b(\"shield\");\n    b(\"WebMessengerWidthControl\");\n    var i = b(\"Arbiter\"), j = b(\"ArbiterMixin\"), k = b(\"ChatQuietLinks\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Parent\"), p = b(\"Style\"), q = b(\"Toggler\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"emptyFunction\"), v = b(\"ge\");\n    function w() {\n    \n    };\n;\n    s(w, j, {\n        MIN_HEIGHT: 140,\n        INITIAL_FLYOUT_HEIGHT_OFFSET: 10,\n        init: function(x) {\n            this.init = u;\n            this.rootEl = x;\n            this.calculateViewportDimensions();\n            this.calculateFlyoutHeightOffset();\n            k.removeEmptyHrefs(this.rootEl);\n            g.listen(x, \"click\", this._onClick.bind(this));\n            g.listen(window, \"resize\", this._onWindowResize.bind(this));\n            q.subscribe([\"show\",\"hide\",], function(y, z) {\n                var aa = z.getActive();\n                if (!n.contains(x, aa)) {\n                    return;\n                }\n            ;\n            ;\n                if (l.hasClass(aa, \"fbNub\")) {\n                    this.notifyNub(aa, y);\n                    if (((y === \"show\"))) {\n                        this._resizeNubFlyout(aa);\n                    }\n                ;\n                ;\n                }\n                 else {\n                    var ba = o.byClass(aa, \"fbNubFlyout\");\n                    if (ba) {\n                        l.conditionClass(ba, \"menuOpened\", ((y === \"show\")));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            this.inform(\"init\", {\n            }, i.BEHAVIOR_PERSISTENT);\n        },\n        calculateViewportDimensions: function() {\n            return (this.viewportDimensions = r.getViewportDimensions());\n        },\n        calculateFlyoutHeightOffset: function() {\n            this.flyoutHeightOffset = ((this.INITIAL_FLYOUT_HEIGHT_OFFSET + r.getElementDimensions(this.rootEl).y));\n            var x = v(\"blueBar\");\n            if (x) {\n                var y = ((p.isFixed(x) ? \"viewport\" : \"JSBNG__document\"));\n                this.flyoutHeightOffset += ((r.getElementPosition(x, y).y + r.getElementDimensions(x).y));\n            }\n        ;\n        ;\n        },\n        toggle: function(x) {\n            var y = this._findFlyout(x);\n            if (!y) {\n                return;\n            }\n        ;\n        ;\n            this.subscribe(\"init\", function() {\n                q.toggle(x);\n            });\n        },\n        show: function(x) {\n            this.subscribe(\"init\", function() {\n                q.show(x);\n            });\n        },\n        showNub: function(x) {\n            l.show(x);\n        },\n        hide: function(x) {\n            this.subscribe(\"init\", function() {\n                var y = q.getInstance(x);\n                ((n.contains(x, y.getActive()) && y.hide()));\n            });\n        },\n        hideNub: function(x) {\n            l.hide(x);\n            this.hide(x);\n        },\n        setUseMaxHeight: function(x, y) {\n            l.conditionClass(x, \"maxHeight\", ((y !== false)));\n            this._resizeNubFlyout(x);\n        },\n        _resizeNubFlyout: function(x) {\n            var y = this._findFlyout(x);\n            if (((!y || !((l.hasClass(x, \"openToggler\") || l.hasClass(x, \"opened\")))))) {\n                return;\n            }\n        ;\n        ;\n            var z = n.JSBNG__find(y, \"div.fbNubFlyoutOuter\"), aa = n.JSBNG__find(z, \"div.fbNubFlyoutInner\"), ba = n.JSBNG__find(aa, \"div.fbNubFlyoutBody\"), ca = ba.scrollTop, da = ba.offsetHeight;\n            p.set(ba, \"height\", \"auto\");\n            var ea = r.getElementDimensions(y), fa = r.getElementDimensions(ba), ga = this.getMaxFlyoutHeight(x);\n            p.set(y, \"max-height\", ((ga + \"px\")));\n            p.set(z, \"max-height\", ((ga + \"px\")));\n            ea = r.getElementDimensions(y);\n            var ha = r.getElementDimensions(aa), ia = ((ha.y - fa.y)), ja = ((ea.y - ia)), ka = parseInt(((ba.style.height || ba.clientHeight)), 10), la = ((ja !== ka));\n            if (((((ea.y > ia)) && la))) {\n                p.set(ba, \"height\", ((ja + \"px\")));\n            }\n        ;\n        ;\n            l.removeClass(y, \"swapDirection\");\n            var ma = r.getElementPosition(y).x;\n            l.conditionClass(y, \"swapDirection\", function() {\n                if (((ma < 0))) {\n                    return true;\n                }\n            ;\n            ;\n                return ((((ma + ea.x)) > this.viewportDimensions.x));\n            }.bind(this)());\n            if (((la && ((((ca + da)) >= fa.y))))) {\n                ba.scrollTop = ba.scrollHeight;\n            }\n             else ba.scrollTop = ca;\n        ;\n        ;\n            this.notifyNub(x, \"resize\");\n        },\n        getMaxFlyoutHeight: function(x) {\n            var y = this._findFlyout(x), z = r.getElementPosition(y, \"viewport\"), aa = r.getElementDimensions(y), ba = ((Math.max(this.MIN_HEIGHT, ((this.viewportDimensions.y - this.flyoutHeightOffset))) - ((((this.viewportDimensions.y - z.y)) - aa.y))));\n            return Math.max(ba, 0);\n        },\n        resizeAllFlyouts: function() {\n            var x = n.scry(this.rootEl, \"div._50-v.openToggler\");\n            x = x.concat(n.scry(this.rootEl, \"div._50-v.opened\"));\n            var y = x.length;\n            while (y--) {\n                this._resizeNubFlyout(x[y]);\n            ;\n            };\n        ;\n        },\n        _onClick: function(JSBNG__event) {\n            var x = JSBNG__event.getTarget(), y = o.byClass(x, \"fbNub\");\n            if (y) {\n                if (o.byClass(x, \"fbNubFlyoutTitlebar\")) {\n                    var z = o.byTag(x, \"a\"), aa = ((((x.nodeName == \"INPUT\")) && ((x.getAttribute(\"type\") == \"submit\"))));\n                    if (((!z && !aa))) {\n                        this.hide(y);\n                        return false;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                this.notifyNub(y, \"click\");\n            }\n        ;\n        ;\n        },\n        _onWindowResize: function(JSBNG__event) {\n            this.calculateViewportDimensions();\n            this.resizeAllFlyouts();\n        },\n        _findFlyout: function(x) {\n            return ((l.hasClass(x, \"fbNubFlyout\") ? x : ((n.scry(x, \"div.fbNubFlyout\")[0] || null))));\n        },\n        registerNubController: function(x, y) {\n            m.set(x, \"dock:nub:controller\", y);\n            y.subscribe(\"nub/button/content-changed\", h(this.inform, this, \"resize\", x));\n            y.subscribe(\"nub/flyout/content-changed\", h(this._resizeNubFlyout, this, x));\n        },\n        unregisterNubController: function(x) {\n            m.remove(x, \"dock:nub:controller\");\n        },\n        notifyNub: function(x, y, z) {\n            var aa = m.get(x, \"dock:nub:controller\");\n            ((aa && aa.inform(y, z)));\n        }\n    });\n    e.exports = ((a.Dock || w));\n});\n__d(\"NubController\", [\"ArbiterMixin\",\"Dock\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"Dock\"), i = b(\"copyProperties\");\n    function j() {\n    \n    };\n;\n    i(j.prototype, g, {\n        init: function(k) {\n            this.el = k;\n            h.registerNubController(k, this);\n            return this;\n        },\n        buttonContentChanged: function() {\n            this.inform(\"nub/button/content-changed\");\n        },\n        flyoutContentChanged: function() {\n            this.inform(\"nub/flyout/content-changed\");\n        },\n        hide: function() {\n            h.hide(this.el);\n        },\n        show: function() {\n            h.show(this.el);\n        }\n    });\n    e.exports = j;\n});\n__d(\"DropdownContextualHelpLink\", [\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"ge\"), i = {\n        set: function(j) {\n            var k = h(\"navHelpCenter\");\n            if (((k !== null))) {\n                g.replace(k, j);\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = i;\n});\n__d(\"ChatActivity\", [\"JSBNG__Event\",\"Arbiter\",\"AvailableList\",\"AvailableListConstants\",\"JSLogger\",\"MercuryConfig\",\"PresenceState\",\"UserActivity\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AvailableList\"), j = b(\"AvailableListConstants\"), k = b(\"JSLogger\"), l = b(\"MercuryConfig\"), m = b(\"PresenceState\"), n = b(\"UserActivity\"), o = b(\"copyProperties\"), p = ((l.activity_limit || 60000)), q = ((l.idle_limit || 1800000)), r = ((l.idle_poll_interval || 300000)), s = k.create(\"chat_activity\"), t = JSBNG__Date.now(), u = t, v = true;\n    function w() {\n        var aa = JSBNG__Date.now();\n        return !!((v && ((((aa - t)) < p))));\n    };\n;\n    var x = o(new h(), {\n        isActive: w\n    });\n    function y() {\n        var aa = t;\n        t = JSBNG__Date.now();\n        if (((((t - aa)) > q))) {\n            s.debug(\"idle_to_active\", aa);\n            m.doSync();\n        }\n    ;\n    ;\n        x.inform(\"activity\");\n    };\n;\n    i.subscribe(j.ON_AVAILABILITY_CHANGED, function() {\n        if (!i.isUserIdle()) {\n            u = JSBNG__Date.now();\n        }\n    ;\n    ;\n    });\n    g.listen(window, \"JSBNG__focus\", function() {\n        v = true;\n        y();\n    });\n    g.listen(window, \"JSBNG__blur\", function() {\n        v = false;\n    });\n    n.subscribe(function() {\n        y();\n    });\n    function z(aa) {\n        var ba = ((((aa && aa.at)) && m.verifyNumber(aa.at)));\n        if (((typeof ba !== \"number\"))) {\n            ba = null;\n        }\n    ;\n    ;\n        return ((ba || 0));\n    };\n;\n    JSBNG__setInterval(function() {\n        var aa = JSBNG__Date.now(), ba = z(m.get()), ca = Math.max(t, ba, u);\n        if (((((aa - ca)) > q))) {\n            s.debug(\"idle\", {\n                cookie: ba,\n                local: t,\n                presence: u\n            });\n            x.inform(\"idle\", ((aa - ca)));\n        }\n    ;\n    ;\n    }, r);\n    m.registerStateStorer(function(aa) {\n        var ba = z(aa);\n        if (((ba < t))) {\n            aa.at = t;\n        }\n    ;\n    ;\n        return aa;\n    });\n    h.subscribe(k.DUMP_EVENT, function(aa, ba) {\n        ba.chat_activity = {\n            activity_limit: p,\n            idle_limit: q,\n            idle_poll_interval: r,\n            last_active_time: t,\n            last_global_active_time: u\n        };\n    });\n    e.exports = x;\n});\n__d(\"MercuryNotificationRenderer\", [\"MercuryAssert\",\"MercuryMessages\",\"MercuryParticipants\",\"MercuryThreads\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAssert\"), h = b(\"MercuryMessages\").get(), i = b(\"MercuryParticipants\"), j = b(\"MercuryThreads\").get(), k = b(\"tx\");\n    function l(m, n) {\n        g.isThreadID(m);\n        j.getThreadMeta(m, function(o) {\n            h.getThreadMessagesRange(m, 0, 1, function(p) {\n                var q = ((p.length && p[((p.length - 1))]));\n                if (((q && ((q.author != i.user))))) {\n                    i.get(q.author, function(r) {\n                        if (o.JSBNG__name) {\n                            n(k._(\"{senderName} messaged {groupName}\", {\n                                senderName: r.short_name,\n                                groupName: o.JSBNG__name\n                            }));\n                        }\n                         else n(k._(\"{name} messaged you\", {\n                            JSBNG__name: r.short_name\n                        }));\n                    ;\n                    ;\n                    });\n                }\n                 else n(\"New message!\");\n            ;\n            ;\n            });\n        });\n    };\n;\n    e.exports = {\n        renderDocumentTitle: l\n    };\n});\n__d(\"MercuryTimestampTracker\", [\"MercuryActionTypeConstants\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MercuryServerRequests\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryActionTypeConstants\"), h = b(\"MercuryPayloadSource\"), i = b(\"MercurySingletonMixin\"), j = b(\"MercuryServerRequests\"), k = b(\"copyProperties\");\n    function l(m) {\n        this._fbid = m;\n        this._serverRequests = j.getForFBID(this._fbid);\n        this._lastTimestamp = 0;\n        this._serverRequests.subscribe(\"update-messages\", function(n, o) {\n            if (((!o.actions || !o.actions.length))) {\n                return;\n            }\n        ;\n        ;\n            if (((((o.payload_source == h.CLIENT_SEND_MESSAGE)) || ((o.payload_source == h.UNKNOWN))))) {\n                return;\n            }\n        ;\n        ;\n            for (var p = 0; ((p < o.actions.length)); p++) {\n                var q = o.actions[p], r = q.action_type;\n                if (((((((r == g.USER_GENERATED_MESSAGE)) && q.thread_id)) && ((q.timestamp > this._lastTimestamp))))) {\n                    this._lastTimestamp = q.timestamp;\n                }\n            ;\n            ;\n            };\n        ;\n        }.bind(this));\n    };\n;\n    k(l.prototype, {\n        getLastUserMessageTimestamp: function() {\n            return this._lastTimestamp;\n        }\n    });\n    k(l, i);\n    e.exports = l;\n});\n__d(\"ChatTitleBarBlinker\", [\"ChatActivity\",\"DocumentTitle\",\"JSLogger\",\"MercuryThreadInformer\",\"MercuryNotificationRenderer\",\"PresenceState\",\"MercuryTimestampTracker\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatActivity\"), h = b(\"DocumentTitle\"), i = b(\"JSLogger\"), j = b(\"MercuryThreadInformer\").get(), k = b(\"MercuryNotificationRenderer\"), l = b(\"PresenceState\"), m = b(\"MercuryTimestampTracker\").get(), n = i.create(\"chat_title\"), o = null, p = 0, q = false;\n    function r() {\n        if (o) {\n            o.JSBNG__stop();\n            o = null;\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function s(x) {\n        var y = ((x || m.getLastUserMessageTimestamp()));\n        if (((p <= y))) {\n            p = y;\n            if (((r() || q))) {\n                l.doSync();\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    var t = {\n        blink: function(x, y) {\n            if (((!o && ((p < y))))) {\n                k.renderDocumentTitle(x, function(z) {\n                    if (!o) {\n                        o = h.blink(z);\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n        },\n        stopBlinking: function() {\n            s();\n        },\n        blinkingElsewhere: function() {\n            q = true;\n        }\n    };\n    function u(x) {\n        var y = l.verifyNumber(x.sb2);\n        if (((!y || ((y <= p))))) {\n            return null;\n        }\n    ;\n    ;\n        return y;\n    };\n;\n    function v(x) {\n        var y = ((x && u(x)));\n        if (y) {\n            p = y;\n            n.debug(\"load\", p);\n            r();\n            q = false;\n        }\n    ;\n    ;\n    };\n;\n    function w(x) {\n        var y = u(x);\n        if (!y) {\n            n.debug(\"store\", p);\n            x.sb2 = p;\n            q = false;\n        }\n    ;\n    ;\n        return x;\n    };\n;\n    l.registerStateStorer(w);\n    l.registerStateLoader(v);\n    j.subscribe(\"thread-read-changed\", function(x, y) {\n        var z = m.getLastUserMessageTimestamp(), aa = 0;\n        {\n            var fin220keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin220i = (0);\n            var ba;\n            for (; (fin220i < fin220keys.length); (fin220i++)) {\n                ((ba) = (fin220keys[fin220i]));\n                {\n                    if (((((y[ba].mark_as_read && ((y[ba].timestamp >= z)))) && ((y[ba].timestamp > aa))))) {\n                        aa = y[ba].timestamp;\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        ((aa && s(aa)));\n    });\n    g.subscribe(\"activity\", function() {\n        s();\n    });\n    (function() {\n        var x = l.getInitial();\n        if (x) {\n            p = ((u(x) || 0));\n        }\n    ;\n    ;\n    })();\n    e.exports = t;\n});\n__d(\"swfobject\", [\"AsyncRequest\",\"Bootloader\",\"ControlledReferer\",\"copyProperties\",\"CSS\",\"DOM\",\"function-extensions\",\"ge\",\"htmlSpecialChars\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Bootloader\"), i = b(\"ControlledReferer\"), j = b(\"copyProperties\"), k = b(\"CSS\"), l = b(\"DOM\");\n    b(\"function-extensions\");\n    var m = b(\"ge\"), n = b(\"htmlSpecialChars\");\n    if (((typeof o == \"undefined\"))) {\n        var o = {\n        };\n    }\n;\n;\n    if (((typeof o.util == \"undefined\"))) {\n        o.util = {\n        };\n    }\n;\n;\n    if (((typeof o.SWFObjectUtil == \"undefined\"))) {\n        o.SWFObjectUtil = {\n        };\n    }\n;\n;\n    o.SWFObject = function(u, v, w, x, y, z, aa, ba, ca, da) {\n        if (!JSBNG__document.getElementById) {\n            return;\n        }\n    ;\n    ;\n        this.DETECT_KEY = ((da ? da : \"detectflash\"));\n        this.skipDetect = o.util.getRequestParameter(this.DETECT_KEY);\n        this.params = {\n        };\n        this.variables = {\n        };\n        this.attributes = [];\n        this.fallback_html = \"\";\n        this.fallback_js_fcn = function() {\n        \n        };\n        if (u) {\n            this.setAttribute(\"swf\", u);\n        }\n    ;\n    ;\n        if (v) {\n            this.setAttribute(\"id\", v);\n        }\n    ;\n    ;\n        if (w) {\n            this.setAttribute(\"width\", w);\n        }\n    ;\n    ;\n        if (x) {\n            this.setAttribute(\"height\", x);\n        }\n    ;\n    ;\n        this.installedVer = o.SWFObjectUtil.getPlayerVersion();\n        if (y) {\n            if (!((y instanceof Array))) {\n                y = [y,];\n            }\n        ;\n        ;\n            var ea;\n            y.forEach(function(ha) {\n                ea = new o.PlayerVersion(ha.toString().split(\".\"));\n                if (((ea.major == this.installedVer.major))) {\n                    this.setAttribute(\"version\", ea);\n                    return;\n                }\n                 else if (((!this.getAttribute(\"version\") || ((ea.major < this.getAttribute(\"version\").major))))) {\n                    this.setAttribute(\"version\", ea);\n                }\n                \n            ;\n            ;\n            }.bind(this));\n        }\n    ;\n    ;\n        if (((((!window.JSBNG__opera && JSBNG__document.all)) && ((this.installedVer.major > 7))))) {\n            if (!o.unloadSet) {\n                o.SWFObjectUtil.prepUnload = function() {\n                    var ha = function() {\n                    \n                    }, ia = function() {\n                    \n                    };\n                    window.JSBNG__attachEvent(\"JSBNG__onunload\", o.SWFObjectUtil.cleanupSWFs);\n                };\n                window.JSBNG__attachEvent(\"JSBNG__onbeforeunload\", o.SWFObjectUtil.prepUnload);\n                o.unloadSet = true;\n            }\n        ;\n        }\n    ;\n    ;\n        if (z) {\n            this.addParam(\"bgcolor\", z);\n        }\n    ;\n    ;\n        var fa = ((aa ? aa : \"high\"));\n        this.addParam(\"quality\", fa);\n        this.setAttribute(\"useExpressInstall\", false);\n        this.setAttribute(\"doExpressInstall\", false);\n        var ga = (((ba) ? ba : window.JSBNG__location));\n        this.setAttribute(\"xiRedirectUrl\", ga);\n        this.setAttribute(\"redirectUrl\", \"\");\n        if (ca) {\n            this.setAttribute(\"redirectUrl\", ca);\n        }\n    ;\n    ;\n        this.setAttribute(\"useIframe\", false);\n    };\n    o.SWFObject.ieWorkaroundApplied = false;\n    o.SWFObject.ensureIEWorkaroundAttached = function() {\n        if (((!o.SWFObject.ieWorkaroundApplied && JSBNG__document.JSBNG__attachEvent))) {\n            o.SWFObject.ieWorkaroundApplied = true;\n            JSBNG__document.JSBNG__attachEvent(\"onpropertychange\", o.SWFObject.onDocumentPropertyChange);\n        }\n    ;\n    ;\n    };\n    o.SWFObject.onDocumentPropertyChange = function(JSBNG__event) {\n        if (((JSBNG__event.propertyName == \"title\"))) {\n            var u = JSBNG__document.title;\n            if (((((u != null)) && ((u.indexOf(\"#!\") != -1))))) {\n                u = u.substring(0, u.indexOf(\"#!\"));\n                JSBNG__document.title = u;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n    j(o.SWFObject.prototype, {\n        useExpressInstall: function(u) {\n            this.xiSWFPath = ((!u ? \"/swf/expressinstall.swf\" : u));\n            this.setAttribute(\"useExpressInstall\", true);\n        },\n        setAttribute: function(u, v) {\n            this.attributes[u] = v;\n        },\n        getAttribute: function(u) {\n            return ((this.attributes[u] || \"\"));\n        },\n        addParam: function(u, v) {\n            this.params[u] = v;\n        },\n        getParams: function() {\n            return this.params;\n        },\n        addVariable: function(u, v) {\n            this.variables[u] = v;\n        },\n        getVariable: function(u) {\n            return ((this.variables[u] || \"\"));\n        },\n        getVariables: function() {\n            return this.variables;\n        },\n        getVariablePairs: function() {\n            var u = [], v, w = this.getVariables();\n            {\n                var fin221keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin221i = (0);\n                (0);\n                for (; (fin221i < fin221keys.length); (fin221i++)) {\n                    ((v) = (fin221keys[fin221i]));\n                    {\n                        u[u.length] = ((((v + \"=\")) + w[v]));\n                    ;\n                    };\n                };\n            };\n        ;\n            return u.join(\"&\");\n        },\n        getSWFHTML: function() {\n            var u, v, w;\n            if (((((JSBNG__navigator.plugins && JSBNG__navigator.mimeTypes)) && JSBNG__navigator.mimeTypes.length))) {\n                if (this.getAttribute(\"doExpressInstall\")) {\n                    this.addVariable(\"MMplayerType\", \"PlugIn\");\n                    this.setAttribute(\"swf\", this.xiSWFPath);\n                }\n            ;\n            ;\n                v = {\n                    type: \"application/x-shockwave-flash\",\n                    src: this.getAttribute(\"swf\"),\n                    width: this.getAttribute(\"width\"),\n                    height: this.getAttribute(\"height\"),\n                    style: ((this.getAttribute(\"style\") || \"display: block;\")),\n                    id: this.getAttribute(\"id\"),\n                    JSBNG__name: this.getAttribute(\"id\")\n                };\n                var x = this.getParams();\n                {\n                    var fin222keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin222i = (0);\n                    var y;\n                    for (; (fin222i < fin222keys.length); (fin222i++)) {\n                        ((y) = (fin222keys[fin222i]));\n                        {\n                            v[y] = x[y];\n                        ;\n                        };\n                    };\n                };\n            ;\n                w = this.getVariablePairs();\n                if (w) {\n                    v.flashvars = w;\n                }\n            ;\n            ;\n                u = t(\"embed\", v, null);\n            }\n             else {\n                if (this.getAttribute(\"doExpressInstall\")) {\n                    this.addVariable(\"MMplayerType\", \"ActiveX\");\n                    this.setAttribute(\"swf\", this.xiSWFPath);\n                }\n            ;\n            ;\n                v = {\n                    id: this.getAttribute(\"id\"),\n                    classid: \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",\n                    width: this.getAttribute(\"width\"),\n                    height: this.getAttribute(\"height\"),\n                    style: ((this.getAttribute(\"style\") || \"display: block;\"))\n                };\n                var z = t(\"param\", {\n                    JSBNG__name: \"movie\",\n                    value: this.getAttribute(\"swf\")\n                }, null), x = this.getParams();\n                {\n                    var fin223keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin223i = (0);\n                    var y;\n                    for (; (fin223i < fin223keys.length); (fin223i++)) {\n                        ((y) = (fin223keys[fin223i]));\n                        {\n                            z += t(\"param\", {\n                                JSBNG__name: y,\n                                value: x[y]\n                            }, null);\n                        ;\n                        };\n                    };\n                };\n            ;\n                w = this.getVariablePairs();\n                if (w) {\n                    z += t(\"param\", {\n                        JSBNG__name: \"flashvars\",\n                        value: w\n                    }, null);\n                }\n            ;\n            ;\n                u = t(\"object\", v, z);\n            }\n        ;\n        ;\n            return u;\n        },\n        write: function(u) {\n            if (this.getAttribute(\"useExpressInstall\")) {\n                var v = new o.PlayerVersion([6,0,65,]);\n                if (((this.installedVer.versionIsValid(v) && !this.installedVer.versionIsValid(this.getAttribute(\"version\"))))) {\n                    this.setAttribute(\"doExpressInstall\", true);\n                    this.addVariable(\"MMredirectURL\", escape(this.getAttribute(\"xiRedirectUrl\")));\n                    JSBNG__document.title = ((JSBNG__document.title.slice(0, 47) + \" - Flash Player Installation\"));\n                    this.addVariable(\"MMdoctitle\", JSBNG__document.title);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var w = ((((typeof u == \"string\")) ? JSBNG__document.getElementById(u) : u));\n            if (!w) {\n                return false;\n            }\n        ;\n        ;\n            k.addClass(w, \"swfObject\");\n            w.setAttribute(\"data-swfid\", this.getAttribute(\"id\"));\n            if (((((this.skipDetect || this.getAttribute(\"doExpressInstall\"))) || this.installedVer.versionIsValid(this.getAttribute(\"version\"))))) {\n                if (!this.getAttribute(\"useIframe\")) {\n                    o.SWFObject.ensureIEWorkaroundAttached();\n                    w.innerHTML = this.getSWFHTML();\n                }\n                 else this._createIframe(w);\n            ;\n            ;\n                return true;\n            }\n             else {\n                if (((this.getAttribute(\"redirectUrl\") != \"\"))) {\n                    JSBNG__document.JSBNG__location.replace(this.getAttribute(\"redirectUrl\"));\n                }\n            ;\n            ;\n                var x = ((((((((((((this.getAttribute(\"version\").major + \".\")) + this.getAttribute(\"version\").minor)) + \".\")) + this.getAttribute(\"version\").release)) + \".\")) + this.getAttribute(\"version\").build)), y = ((((((((((((this.installedVer.major + \".\")) + this.installedVer.minor)) + \".\")) + this.installedVer.release)) + \".\")) + this.installedVer.build));\n                this.fallback_js_fcn(y, x);\n                w.innerHTML = this.fallback_html;\n            }\n        ;\n        ;\n            return false;\n        },\n        _createIframe: function(u) {\n            var v = l.create(\"div\", {\n                width: this.getAttribute(\"width\"),\n                height: this.getAttribute(\"height\"),\n                frameBorder: 0\n            });\n            l.empty(u);\n            u.appendChild(v);\n            i.useFacebookRefererHtml(v, this.getSWFHTML(), this.getAttribute(\"iframeSource\"));\n        }\n    });\n    o.SWFObjectUtil.getPlayerVersion = function() {\n        var u = new o.PlayerVersion([0,0,0,0,]), v;\n        if (((JSBNG__navigator.plugins && JSBNG__navigator.mimeTypes.length))) {\n            for (var w = 0; ((w < JSBNG__navigator.plugins.length)); w++) {\n                try {\n                    var y = JSBNG__navigator.plugins[w];\n                    if (((y.JSBNG__name == \"Shockwave Flash\"))) {\n                        v = new o.PlayerVersion(y.description.replace(/([a-zA-Z]|\\s)+/, \"\").replace(/(\\s+(r|d)|\\s+b[0-9]+)/, \".\").split(\".\"));\n                        if (((((((typeof u == \"undefined\")) || ((v.major > u.major)))) || ((((v.major == u.major)) && ((((v.minor > u.minor)) || ((((v.minor == u.minor)) && ((((v.release > u.release)) || ((((v.release == u.release)) && ((v.build > u.build))))))))))))))) {\n                            u = v;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                } catch (x) {\n                \n                };\n            ;\n            };\n        ;\n        }\n         else if (((JSBNG__navigator.userAgent && ((JSBNG__navigator.userAgent.indexOf(\"Windows CE\") >= 0))))) {\n            var z = 1, aa = 3;\n            while (z) {\n                try {\n                    aa++;\n                    z = new ActiveXObject(((\"ShockwaveFlash.ShockwaveFlash.\" + aa)));\n                    u = new o.PlayerVersion([aa,0,0,]);\n                } catch (ba) {\n                    z = null;\n                };\n            ;\n            };\n        ;\n        }\n         else {\n            try {\n                var z = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.7\");\n            } catch (ca) {\n                try {\n                    var z = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.6\");\n                    u = new o.PlayerVersion([6,0,21,]);\n                    z.AllowScriptAccess = \"always\";\n                } catch (da) {\n                    if (((u.major == 6))) {\n                        return u;\n                    }\n                ;\n                ;\n                };\n            ;\n                try {\n                    z = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\");\n                } catch (ea) {\n                \n                };\n            ;\n            };\n        ;\n            if (((z != null))) {\n                u = new o.PlayerVersion(z.GetVariable(\"$version\").split(\" \")[1].split(\",\"));\n            }\n        ;\n        ;\n        }\n        \n    ;\n    ;\n        return u;\n    };\n    o.PlayerVersion = function(u) {\n        this.major = ((((u[0] != null)) ? parseInt(u[0], 10) : 0));\n        this.minor = ((((u[1] != null)) ? parseInt(u[1], 10) : 0));\n        this.release = ((((u[2] != null)) ? parseInt(u[2], 10) : 0));\n        this.build = ((((u[3] != null)) ? parseInt(u[3], 10) : 0));\n    };\n    o.PlayerVersion.prototype.versionIsValid = function(u) {\n        if (((this.major < u.major))) {\n            return false;\n        }\n    ;\n    ;\n        if (((this.major > u.major))) {\n            return true;\n        }\n    ;\n    ;\n        if (((this.minor < u.minor))) {\n            return false;\n        }\n    ;\n    ;\n        if (((this.minor > u.minor))) {\n            return true;\n        }\n    ;\n    ;\n        if (((this.release < u.release))) {\n            return false;\n        }\n    ;\n    ;\n        if (((this.release > u.release))) {\n            return true;\n        }\n    ;\n    ;\n        if (((this.build < u.build))) {\n            return false;\n        }\n    ;\n    ;\n        return true;\n    };\n    o.util = {\n        getRequestParameter: function(u) {\n            var v = ((JSBNG__document.JSBNG__location.search || JSBNG__document.JSBNG__location.hash));\n            if (((u == null))) {\n                return v;\n            }\n        ;\n        ;\n            if (v) {\n                var w = v.substring(1).split(\"&\");\n                for (var x = 0; ((x < w.length)); x++) {\n                    if (((w[x].substring(0, w[x].indexOf(\"=\")) == u))) {\n                        return w[x].substring(((w[x].indexOf(\"=\") + 1)));\n                    }\n                ;\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            return \"\";\n        }\n    };\n    o.SWFObjectUtil.cleanupSWFs = function() {\n        var u = JSBNG__document.getElementsByTagName(\"OBJECT\");\n        for (var v = ((u.length - 1)); ((v >= 0)); v--) {\n            u[v].style.display = \"none\";\n            {\n                var fin224keys = ((window.top.JSBNG_Replay.forInKeys)((u[v]))), fin224i = (0);\n                var w;\n                for (; (fin224i < fin224keys.length); (fin224i++)) {\n                    ((w) = (fin224keys[fin224i]));\n                    {\n                        if (((typeof u[v][w] == \"function\"))) {\n                            u[v][w] = function() {\n                            \n                            };\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        };\n    ;\n    };\n    if (((!JSBNG__document.getElementById && JSBNG__document.all))) {\n        JSBNG__document.getElementById = function(u) {\n            return JSBNG__document.all[u];\n        };\n    }\n;\n;\n    var p = o.util.getRequestParameter, q = o.SWFObject, r = o.SWFObject;\n    o.spawn_flash_update_dialog = function() {\n        new g().setURI(\"/ajax/flash_update_dialog.php\").setMethod(\"GET\").setReadOnly(true).send();\n    };\n    function s(u, v) {\n        var w = m(u), x = o.SWFObjectUtil.getPlayerVersion(), y;\n        v.forEach(function(ba) {\n            ba = new o.PlayerVersion(ba.toString().split(\".\"));\n            if (((ba.major == x.major))) {\n                y = ba;\n                return;\n            }\n             else if (((((typeof y == \"undefined\")) || ((ba.major < y.major))))) {\n                y = ba;\n            }\n            \n        ;\n        ;\n        }.bind(this));\n        if (((w && ((x.major > 0))))) {\n            var z = ((((((((((((x.major + \".\")) + x.minor)) + \".\")) + x.release)) + \".\")) + x.build)), aa = ((((((((((((y.major + \".\")) + y.minor)) + \".\")) + y.release)) + \".\")) + y.build));\n            l.setContent(w, l.tx._(\"Flash {required-version} is required to view this content. Your current version is {current-version}. Please download the latest Flash Player.\", {\n                \"required-version\": aa,\n                \"current-version\": z\n            }));\n        }\n    ;\n    ;\n    };\n;\n    o.showFlashErrorDialog = function(u, v) {\n        h.loadModules([\"ErrorDialog\",], function(w) {\n            w.show(u, v);\n        });\n    };\n    function t(u, v, w) {\n        var x = /^[A-Za-z0-9\\-]+$/;\n        if (!u.match(x)) {\n            throw new Error(((\"Invalid tag \" + u)));\n        }\n    ;\n    ;\n        var y = ((\"\\u003C\" + u));\n        {\n            var fin225keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin225i = (0);\n            var z;\n            for (; (fin225i < fin225keys.length); (fin225i++)) {\n                ((z) = (fin225keys[fin225i]));\n                {\n                    if (!z.match(x)) {\n                        throw new Error(((\"Invalid attr \" + z)));\n                    }\n                ;\n                ;\n                    y += ((((((((\" \" + z)) + \"=\\\"\")) + n(v[z]))) + \"\\\"\"));\n                };\n            };\n        };\n    ;\n        if (((w === null))) {\n            return ((y + \"/\\u003E\"));\n        }\n         else return ((((((((((y + \"\\u003E\")) + w)) + \"\\u003C/\")) + u)) + \"\\u003E\"))\n    ;\n    };\n;\n    e.exports = ((a.deconcept || o));\n});\n__d(\"swfobject2\", [], function(a, b, c, d, e, f) {\n    var g = function() {\n        var h = \"undefined\", i = \"object\", j = \"Shockwave Flash\", k = \"ShockwaveFlash.ShockwaveFlash\", l = \"application/x-shockwave-flash\", m = \"SWFObjectExprInst\", n = \"onreadystatechange\", o = window, p = JSBNG__document, q = JSBNG__navigator, r = false, s = [ka,], t = [], u = [], v = [], w, x, y, z, aa = false, ba = false, ca, da, ea = true, fa = function() {\n            var eb = ((((((typeof p.getElementById != h)) && ((typeof p.getElementsByTagName != h)))) && ((typeof p.createElement != h)))), fb = q.userAgent.toLowerCase(), gb = q.platform.toLowerCase(), hb = ((gb ? /win/.test(gb) : /win/.test(fb))), ib = ((gb ? /mac/.test(gb) : /mac/.test(fb))), jb = ((/webkit/.test(fb) ? parseFloat(fb.replace(/^.*webkit\\/(\\d+(\\.\\d+)?).*$/, \"$1\")) : false)), kb = !+\"\\u000b1\", lb = [0,0,0,], mb = null;\n            if (((((typeof q.plugins != h)) && ((typeof q.plugins[j] == i))))) {\n                mb = q.plugins[j].description;\n                if (((mb && !((((((typeof q.mimeTypes != h)) && q.mimeTypes[l])) && !q.mimeTypes[l].enabledPlugin))))) {\n                    r = true;\n                    kb = false;\n                    mb = mb.replace(/^.*\\s+(\\S+\\s+\\S+$)/, \"$1\");\n                    lb[0] = parseInt(mb.replace(/^(.*)\\..*$/, \"$1\"), 10);\n                    lb[1] = parseInt(mb.replace(/^.*\\.(.*)\\s.*$/, \"$1\"), 10);\n                    lb[2] = ((/[a-zA-Z]/.test(mb) ? parseInt(mb.replace(/^.*[a-zA-Z]+(.*)$/, \"$1\"), 10) : 0));\n                }\n            ;\n            ;\n            }\n             else if (((typeof o.ActiveXObject != h))) {\n                try {\n                    var ob = new ActiveXObject(k);\n                    if (ob) {\n                        mb = ob.GetVariable(\"$version\");\n                        if (mb) {\n                            kb = true;\n                            mb = mb.split(\" \")[1].split(\",\");\n                            lb = [parseInt(mb[0], 10),parseInt(mb[1], 10),parseInt(mb[2], 10),];\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                } catch (nb) {\n                \n                };\n            }\n            \n        ;\n        ;\n            return {\n                w3: eb,\n                pv: lb,\n                wk: jb,\n                ie: kb,\n                win: hb,\n                mac: ib\n            };\n        }(), ga = function() {\n            if (!fa.w3) {\n                return;\n            }\n        ;\n        ;\n            if (((((((typeof p.readyState != h)) && ((p.readyState == \"complete\")))) || ((((typeof p.readyState == h)) && ((p.getElementsByTagName(\"body\")[0] || p.body))))))) {\n                ha();\n            }\n        ;\n        ;\n            if (!aa) {\n                if (((typeof p.JSBNG__addEventListener != h))) {\n                    p.JSBNG__addEventListener(\"DOMContentLoaded\", ha, false);\n                }\n            ;\n            ;\n                if (((fa.ie && fa.win))) {\n                    p.JSBNG__attachEvent(n, function() {\n                        if (((p.readyState == \"complete\"))) {\n                            p.JSBNG__detachEvent(n, arguments.callee);\n                            ha();\n                        }\n                    ;\n                    ;\n                    });\n                    if (((o == JSBNG__top))) {\n                        (function() {\n                            if (aa) {\n                                return;\n                            }\n                        ;\n                        ;\n                            try {\n                                p.documentElement.doScroll(\"left\");\n                            } catch (eb) {\n                                JSBNG__setTimeout(arguments.callee, 0);\n                                return;\n                            };\n                        ;\n                            ha();\n                        })();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (fa.wk) {\n                    (function() {\n                        if (aa) {\n                            return;\n                        }\n                    ;\n                    ;\n                        if (!/loaded|complete/.test(p.readyState)) {\n                            JSBNG__setTimeout(arguments.callee, 0);\n                            return;\n                        }\n                    ;\n                    ;\n                        ha();\n                    })();\n                }\n            ;\n            ;\n                ja(ha);\n            }\n        ;\n        ;\n        }();\n        function ha() {\n            if (aa) {\n                return;\n            }\n        ;\n        ;\n            try {\n                var fb = p.getElementsByTagName(\"body\")[0].appendChild(xa(\"span\"));\n                fb.parentNode.removeChild(fb);\n            } catch (eb) {\n                return;\n            };\n        ;\n            aa = true;\n            var gb = s.length;\n            for (var hb = 0; ((hb < gb)); hb++) {\n                s[hb]();\n            ;\n            };\n        ;\n        };\n    ;\n        function ia(eb) {\n            if (aa) {\n                eb();\n            }\n             else s[s.length] = eb;\n        ;\n        ;\n        };\n    ;\n        function ja(eb) {\n            if (((typeof o.JSBNG__addEventListener != h))) {\n                o.JSBNG__addEventListener(\"load\", eb, false);\n            }\n             else if (((typeof p.JSBNG__addEventListener != h))) {\n                p.JSBNG__addEventListener(\"load\", eb, false);\n            }\n             else if (((typeof o.JSBNG__attachEvent != h))) {\n                ya(o, \"JSBNG__onload\", eb);\n            }\n             else if (((typeof o.JSBNG__onload == \"function\"))) {\n                var fb = o.JSBNG__onload;\n                o.JSBNG__onload = function() {\n                    fb();\n                    eb();\n                };\n            }\n             else o.JSBNG__onload = eb;\n            \n            \n            \n        ;\n        ;\n        };\n    ;\n        function ka() {\n            if (r) {\n                la();\n            }\n             else ma();\n        ;\n        ;\n        };\n    ;\n        function la() {\n            var eb = p.getElementsByTagName(\"body\")[0], fb = xa(i);\n            fb.setAttribute(\"type\", l);\n            fb.setAttribute(\"style\", \"visibility: hidden; position: absolute; top: -1000px;\");\n            var gb = eb.appendChild(fb);\n            if (gb) {\n                var hb = 0;\n                (function() {\n                    if (((typeof gb.GetVariable != h))) {\n                        var ib = gb.GetVariable(\"$version\");\n                        if (ib) {\n                            ib = ib.split(\" \")[1].split(\",\");\n                            fa.pv = [parseInt(ib[0], 10),parseInt(ib[1], 10),parseInt(ib[2], 10),];\n                        }\n                    ;\n                    ;\n                    }\n                     else if (((hb < 10))) {\n                        hb++;\n                        JSBNG__setTimeout(arguments.callee, 10);\n                        return;\n                    }\n                    \n                ;\n                ;\n                    gb = null;\n                    ma();\n                })();\n            }\n             else ma();\n        ;\n        ;\n        };\n    ;\n        function ma() {\n            var eb = t.length;\n            if (((eb > 0))) {\n                for (var fb = 0; ((fb < eb)); fb++) {\n                    var gb = t[fb].id, hb = t[fb].callbackFn, ib = {\n                        success: false,\n                        id: gb\n                    };\n                    if (((fa.pv[0] > 0))) {\n                        var jb = wa(gb);\n                        if (jb) {\n                            if (((za(t[fb].swfVersion) && !((fa.wk && ((fa.wk < 312))))))) {\n                                bb(gb, true);\n                                if (hb) {\n                                    ib.success = true;\n                                    ib.ref = na(gb);\n                                    hb(ib);\n                                }\n                            ;\n                            ;\n                            }\n                             else if (((t[fb].expressInstall && oa()))) {\n                                var kb = {\n                                };\n                                kb.data = t[fb].expressInstall;\n                                kb.width = ((jb.getAttribute(\"width\") || \"0\"));\n                                kb.height = ((jb.getAttribute(\"height\") || \"0\"));\n                                if (jb.getAttribute(\"class\")) {\n                                    kb.styleclass = jb.getAttribute(\"class\");\n                                }\n                            ;\n                            ;\n                                if (jb.getAttribute(\"align\")) {\n                                    kb.align = jb.getAttribute(\"align\");\n                                }\n                            ;\n                            ;\n                                var lb = {\n                                }, mb = jb.getElementsByTagName(\"param\"), nb = mb.length;\n                                for (var ob = 0; ((ob < nb)); ob++) {\n                                    if (((mb[ob].getAttribute(\"JSBNG__name\").toLowerCase() != \"movie\"))) {\n                                        lb[mb[ob].getAttribute(\"JSBNG__name\")] = mb[ob].getAttribute(\"value\");\n                                    }\n                                ;\n                                ;\n                                };\n                            ;\n                                pa(kb, lb, gb, hb);\n                            }\n                             else {\n                                qa(jb);\n                                if (hb) {\n                                    hb(ib);\n                                }\n                            ;\n                            ;\n                            }\n                            \n                        ;\n                        }\n                    ;\n                    ;\n                    }\n                     else {\n                        bb(gb, true);\n                        if (hb) {\n                            var pb = na(gb);\n                            if (((pb && ((typeof pb.SetVariable != h))))) {\n                                ib.success = true;\n                                ib.ref = pb;\n                            }\n                        ;\n                        ;\n                            hb(ib);\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                };\n            }\n        ;\n        ;\n        };\n    ;\n        function na(eb) {\n            var fb = null, gb = wa(eb);\n            if (((gb && ((gb.nodeName == \"OBJECT\"))))) {\n                if (((typeof gb.SetVariable != h))) {\n                    fb = gb;\n                }\n                 else {\n                    var hb = gb.getElementsByTagName(i)[0];\n                    if (hb) {\n                        fb = hb;\n                    }\n                ;\n                ;\n                }\n            ;\n            }\n        ;\n        ;\n            return fb;\n        };\n    ;\n        function oa() {\n            return ((((((!ba && za(\"6.0.65\"))) && ((fa.win || fa.mac)))) && !((fa.wk && ((fa.wk < 312))))));\n        };\n    ;\n        function pa(eb, fb, gb, hb) {\n            ba = true;\n            y = ((hb || null));\n            z = {\n                success: false,\n                id: gb\n            };\n            var ib = wa(gb);\n            if (ib) {\n                if (((ib.nodeName == \"OBJECT\"))) {\n                    w = ra(ib);\n                    x = null;\n                }\n                 else {\n                    w = ib;\n                    x = gb;\n                }\n            ;\n            ;\n                eb.id = m;\n                if (((((typeof eb.width == h)) || ((!/%$/.test(eb.width) && ((parseInt(eb.width, 10) < 310))))))) {\n                    eb.width = \"310\";\n                }\n            ;\n            ;\n                if (((((typeof eb.height == h)) || ((!/%$/.test(eb.height) && ((parseInt(eb.height, 10) < 137))))))) {\n                    eb.height = \"137\";\n                }\n            ;\n            ;\n                p.title = ((p.title.slice(0, 47) + \" - Flash Player Installation\"));\n                var jb = ((((fa.ie && fa.win)) ? \"ActiveX\" : \"PlugIn\")), kb = ((((((((((\"MMredirectURL=\" + o.JSBNG__location.toString().replace(/&/g, \"%26\"))) + \"&MMplayerType=\")) + jb)) + \"&MMdoctitle=\")) + p.title));\n                if (((typeof fb.flashvars != h))) {\n                    fb.flashvars += ((\"&\" + kb));\n                }\n                 else fb.flashvars = kb;\n            ;\n            ;\n                if (((((fa.ie && fa.win)) && ((ib.readyState != 4))))) {\n                    var lb = xa(\"div\");\n                    gb += \"SWFObjectNew\";\n                    lb.setAttribute(\"id\", gb);\n                    ib.parentNode.insertBefore(lb, ib);\n                    ib.style.display = \"none\";\n                    (function() {\n                        if (((ib.readyState == 4))) {\n                            ib.parentNode.removeChild(ib);\n                        }\n                         else JSBNG__setTimeout(arguments.callee, 10);\n                    ;\n                    ;\n                    })();\n                }\n            ;\n            ;\n                sa(eb, fb, gb);\n            }\n        ;\n        ;\n        };\n    ;\n        function qa(eb) {\n            if (((((fa.ie && fa.win)) && ((eb.readyState != 4))))) {\n                var fb = xa(\"div\");\n                eb.parentNode.insertBefore(fb, eb);\n                fb.parentNode.replaceChild(ra(eb), fb);\n                eb.style.display = \"none\";\n                (function() {\n                    if (((eb.readyState == 4))) {\n                        eb.parentNode.removeChild(eb);\n                    }\n                     else JSBNG__setTimeout(arguments.callee, 10);\n                ;\n                ;\n                })();\n            }\n             else eb.parentNode.replaceChild(ra(eb), eb);\n        ;\n        ;\n        };\n    ;\n        function ra(eb) {\n            var fb = xa(\"div\");\n            if (((fa.win && fa.ie))) {\n                fb.innerHTML = eb.innerHTML;\n            }\n             else {\n                var gb = eb.getElementsByTagName(i)[0];\n                if (gb) {\n                    var hb = gb.childNodes;\n                    if (hb) {\n                        var ib = hb.length;\n                        for (var jb = 0; ((jb < ib)); jb++) {\n                            if (((!((((hb[jb].nodeType == 1)) && ((hb[jb].nodeName == \"PARAM\")))) && !((hb[jb].nodeType == 8))))) {\n                                fb.appendChild(hb[jb].cloneNode(true));\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return fb;\n        };\n    ;\n        function sa(eb, fb, gb) {\n            var hb, ib = wa(gb);\n            if (((fa.wk && ((fa.wk < 312))))) {\n                return hb;\n            }\n        ;\n        ;\n            if (ib) {\n                if (((typeof eb.id == h))) {\n                    eb.id = gb;\n                }\n            ;\n            ;\n                if (((fa.ie && fa.win))) {\n                    var jb = \"\";\n                    {\n                        var fin226keys = ((window.top.JSBNG_Replay.forInKeys)((eb))), fin226i = (0);\n                        var kb;\n                        for (; (fin226i < fin226keys.length); (fin226i++)) {\n                            ((kb) = (fin226keys[fin226i]));\n                            {\n                                if (((eb[kb] != Object.prototype[kb]))) {\n                                    if (((kb.toLowerCase() == \"data\"))) {\n                                        fb.movie = eb[kb];\n                                    }\n                                     else if (((kb.toLowerCase() == \"styleclass\"))) {\n                                        jb += ((((\" class=\\\"\" + eb[kb])) + \"\\\"\"));\n                                    }\n                                     else if (((kb.toLowerCase() != \"classid\"))) {\n                                        jb += ((((((((\" \" + kb)) + \"=\\\"\")) + eb[kb])) + \"\\\"\"));\n                                    }\n                                    \n                                    \n                                ;\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    var lb = \"\";\n                    {\n                        var fin227keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin227i = (0);\n                        var mb;\n                        for (; (fin227i < fin227keys.length); (fin227i++)) {\n                            ((mb) = (fin227keys[fin227i]));\n                            {\n                                if (((fb[mb] != Object.prototype[mb]))) {\n                                    lb += ((((((((\"\\u003Cparam name=\\\"\" + mb)) + \"\\\" value=\\\"\")) + fb[mb])) + \"\\\" /\\u003E\"));\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    ib.outerHTML = ((((((((\"\\u003Cobject classid=\\\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\\\"\" + jb)) + \"\\u003E\")) + lb)) + \"\\u003C/object\\u003E\"));\n                    u[u.length] = eb.id;\n                    hb = wa(eb.id);\n                }\n                 else {\n                    var nb = xa(i);\n                    nb.setAttribute(\"type\", l);\n                    {\n                        var fin228keys = ((window.top.JSBNG_Replay.forInKeys)((eb))), fin228i = (0);\n                        var ob;\n                        for (; (fin228i < fin228keys.length); (fin228i++)) {\n                            ((ob) = (fin228keys[fin228i]));\n                            {\n                                if (((eb[ob] != Object.prototype[ob]))) {\n                                    if (((ob.toLowerCase() == \"styleclass\"))) {\n                                        nb.setAttribute(\"class\", eb[ob]);\n                                    }\n                                     else if (((ob.toLowerCase() != \"classid\"))) {\n                                        nb.setAttribute(ob, eb[ob]);\n                                    }\n                                    \n                                ;\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    {\n                        var fin229keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin229i = (0);\n                        var pb;\n                        for (; (fin229i < fin229keys.length); (fin229i++)) {\n                            ((pb) = (fin229keys[fin229i]));\n                            {\n                                if (((((fb[pb] != Object.prototype[pb])) && ((pb.toLowerCase() != \"movie\"))))) {\n                                    ta(nb, pb, fb[pb]);\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    ib.parentNode.replaceChild(nb, ib);\n                    hb = nb;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return hb;\n        };\n    ;\n        function ta(eb, fb, gb) {\n            var hb = xa(\"param\");\n            hb.setAttribute(\"JSBNG__name\", fb);\n            hb.setAttribute(\"value\", gb);\n            eb.appendChild(hb);\n        };\n    ;\n        function ua(eb) {\n            var fb = wa(eb);\n            if (((fb && ((fb.nodeName == \"OBJECT\"))))) {\n                if (((fa.ie && fa.win))) {\n                    fb.style.display = \"none\";\n                    (function() {\n                        if (((fb.readyState == 4))) {\n                            va(eb);\n                        }\n                         else JSBNG__setTimeout(arguments.callee, 10);\n                    ;\n                    ;\n                    })();\n                }\n                 else fb.parentNode.removeChild(fb);\n            ;\n            }\n        ;\n        ;\n        };\n    ;\n        function va(eb) {\n            var fb = wa(eb);\n            if (fb) {\n                {\n                    var fin230keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin230i = (0);\n                    var gb;\n                    for (; (fin230i < fin230keys.length); (fin230i++)) {\n                        ((gb) = (fin230keys[fin230i]));\n                        {\n                            if (((typeof fb[gb] == \"function\"))) {\n                                fb[gb] = null;\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n                fb.parentNode.removeChild(fb);\n            }\n        ;\n        ;\n        };\n    ;\n        function wa(eb) {\n            var fb = null;\n            try {\n                fb = p.getElementById(eb);\n            } catch (gb) {\n            \n            };\n        ;\n            return fb;\n        };\n    ;\n        function xa(eb) {\n            return p.createElement(eb);\n        };\n    ;\n        function ya(eb, fb, gb) {\n            eb.JSBNG__attachEvent(fb, gb);\n            v[v.length] = [eb,fb,gb,];\n        };\n    ;\n        function za(eb) {\n            var fb = fa.pv, gb = eb.split(\".\");\n            gb[0] = parseInt(gb[0], 10);\n            gb[1] = ((parseInt(gb[1], 10) || 0));\n            gb[2] = ((parseInt(gb[2], 10) || 0));\n            return ((((((((fb[0] > gb[0])) || ((((fb[0] == gb[0])) && ((fb[1] > gb[1])))))) || ((((((fb[0] == gb[0])) && ((fb[1] == gb[1])))) && ((fb[2] >= gb[2])))))) ? true : false));\n        };\n    ;\n        function ab(eb, fb, gb, hb) {\n            if (((fa.ie && fa.mac))) {\n                return;\n            }\n        ;\n        ;\n            var ib = p.getElementsByTagName(\"head\")[0];\n            if (!ib) {\n                return;\n            }\n        ;\n        ;\n            var jb = ((((gb && ((typeof gb == \"string\")))) ? gb : \"JSBNG__screen\"));\n            if (hb) {\n                ca = null;\n                da = null;\n            }\n        ;\n        ;\n            if (((!ca || ((da != jb))))) {\n                var kb = xa(\"style\");\n                kb.setAttribute(\"type\", \"text/css\");\n                kb.setAttribute(\"media\", jb);\n                ca = ib.appendChild(kb);\n                if (((((((fa.ie && fa.win)) && ((typeof p.styleSheets != h)))) && ((p.styleSheets.length > 0))))) {\n                    ca = p.styleSheets[((p.styleSheets.length - 1))];\n                }\n            ;\n            ;\n                da = jb;\n            }\n        ;\n        ;\n            if (((fa.ie && fa.win))) {\n                if (((ca && ((typeof ca.addRule == i))))) {\n                    ca.addRule(eb, fb);\n                }\n            ;\n            ;\n            }\n             else if (((ca && ((typeof p.createTextNode != h))))) {\n                ca.appendChild(p.createTextNode(((((((eb + \" {\")) + fb)) + \"}\"))));\n            }\n            \n        ;\n        ;\n        };\n    ;\n        function bb(eb, fb) {\n            if (!ea) {\n                return;\n            }\n        ;\n        ;\n            var gb = ((fb ? \"visible\" : \"hidden\"));\n            if (((aa && wa(eb)))) {\n                wa(eb).style.visibility = gb;\n            }\n             else ab(((\"#\" + eb)), ((\"visibility:\" + gb)));\n        ;\n        ;\n        };\n    ;\n        function cb(eb) {\n            var fb = /[\\\\\\\"<>\\.;]/, gb = ((fb.exec(eb) != null));\n            return ((((gb && ((typeof encodeURIComponent != h)))) ? encodeURIComponent(eb) : eb));\n        };\n    ;\n        var db = function() {\n            if (((fa.ie && fa.win))) {\n                window.JSBNG__attachEvent(\"JSBNG__onunload\", function() {\n                    var eb = v.length;\n                    for (var fb = 0; ((fb < eb)); fb++) {\n                        v[fb][0].JSBNG__detachEvent(v[fb][1], v[fb][2]);\n                    ;\n                    };\n                ;\n                    var gb = u.length;\n                    for (var hb = 0; ((hb < gb)); hb++) {\n                        ua(u[hb]);\n                    ;\n                    };\n                ;\n                    {\n                        var fin231keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin231i = (0);\n                        var ib;\n                        for (; (fin231i < fin231keys.length); (fin231i++)) {\n                            ((ib) = (fin231keys[fin231i]));\n                            {\n                                fa[ib] = null;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    fa = null;\n                    {\n                        var fin232keys = ((window.top.JSBNG_Replay.forInKeys)((g))), fin232i = (0);\n                        var jb;\n                        for (; (fin232i < fin232keys.length); (fin232i++)) {\n                            ((jb) = (fin232keys[fin232i]));\n                            {\n                                g[jb] = null;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    g = null;\n                });\n            }\n        ;\n        ;\n        }();\n        return {\n            registerObject: function(eb, fb, gb, hb) {\n                if (((((fa.w3 && eb)) && fb))) {\n                    var ib = {\n                    };\n                    ib.id = eb;\n                    ib.swfVersion = fb;\n                    ib.expressInstall = gb;\n                    ib.callbackFn = hb;\n                    t[t.length] = ib;\n                    bb(eb, false);\n                }\n                 else if (hb) {\n                    hb({\n                        success: false,\n                        id: eb\n                    });\n                }\n                \n            ;\n            ;\n            },\n            getObjectById: function(eb) {\n                if (fa.w3) {\n                    return na(eb);\n                }\n            ;\n            ;\n            },\n            embedSWF: function(eb, fb, gb, hb, ib, jb, kb, lb, mb, nb) {\n                var ob = {\n                    success: false,\n                    id: fb\n                };\n                if (((((((((((((fa.w3 && !((fa.wk && ((fa.wk < 312)))))) && eb)) && fb)) && gb)) && hb)) && ib))) {\n                    bb(fb, false);\n                    ia(function() {\n                        gb += \"\";\n                        hb += \"\";\n                        var pb = {\n                        };\n                        if (((mb && ((typeof mb === i))))) {\n                            {\n                                var fin233keys = ((window.top.JSBNG_Replay.forInKeys)((mb))), fin233i = (0);\n                                var qb;\n                                for (; (fin233i < fin233keys.length); (fin233i++)) {\n                                    ((qb) = (fin233keys[fin233i]));\n                                    {\n                                        pb[qb] = mb[qb];\n                                    ;\n                                    };\n                                };\n                            };\n                        }\n                    ;\n                    ;\n                        pb.data = eb;\n                        pb.width = gb;\n                        pb.height = hb;\n                        var rb = {\n                        };\n                        if (((lb && ((typeof lb === i))))) {\n                            {\n                                var fin234keys = ((window.top.JSBNG_Replay.forInKeys)((lb))), fin234i = (0);\n                                var sb;\n                                for (; (fin234i < fin234keys.length); (fin234i++)) {\n                                    ((sb) = (fin234keys[fin234i]));\n                                    {\n                                        rb[sb] = lb[sb];\n                                    ;\n                                    };\n                                };\n                            };\n                        }\n                    ;\n                    ;\n                        if (((kb && ((typeof kb === i))))) {\n                            {\n                                var fin235keys = ((window.top.JSBNG_Replay.forInKeys)((kb))), fin235i = (0);\n                                var tb;\n                                for (; (fin235i < fin235keys.length); (fin235i++)) {\n                                    ((tb) = (fin235keys[fin235i]));\n                                    {\n                                        if (((typeof rb.flashvars != h))) {\n                                            rb.flashvars += ((((((\"&\" + tb)) + \"=\")) + kb[tb]));\n                                        }\n                                         else rb.flashvars = ((((tb + \"=\")) + kb[tb]));\n                                    ;\n                                    ;\n                                    };\n                                };\n                            };\n                        }\n                    ;\n                    ;\n                        if (za(ib)) {\n                            var ub = sa(pb, rb, fb);\n                            if (((pb.id == fb))) {\n                                bb(fb, true);\n                            }\n                        ;\n                        ;\n                            ob.success = true;\n                            ob.ref = ub;\n                        }\n                         else if (((jb && oa()))) {\n                            pb.data = jb;\n                            pa(pb, rb, fb, nb);\n                            return;\n                        }\n                         else bb(fb, true);\n                        \n                    ;\n                    ;\n                        if (nb) {\n                            nb(ob);\n                        }\n                    ;\n                    ;\n                    });\n                }\n                 else if (nb) {\n                    nb(ob);\n                }\n                \n            ;\n            ;\n            },\n            switchOffAutoHideShow: function() {\n                ea = false;\n            },\n            ua: fa,\n            getFlashPlayerVersion: function() {\n                return {\n                    major: fa.pv[0],\n                    minor: fa.pv[1],\n                    release: fa.pv[2]\n                };\n            },\n            hasFlashPlayerVersion: za,\n            createSWF: function(eb, fb, gb) {\n                if (fa.w3) {\n                    return sa(eb, fb, gb);\n                }\n                 else return undefined\n            ;\n            },\n            showExpressInstall: function(eb, fb, gb, hb) {\n                if (((fa.w3 && oa()))) {\n                    pa(eb, fb, gb, hb);\n                }\n            ;\n            ;\n            },\n            removeSWF: function(eb) {\n                if (fa.w3) {\n                    ua(eb);\n                }\n            ;\n            ;\n            },\n            createCSS: function(eb, fb, gb, hb) {\n                if (fa.w3) {\n                    ab(eb, fb, gb, hb);\n                }\n            ;\n            ;\n            },\n            addDomLoadEvent: ia,\n            addLoadEvent: ja,\n            getQueryParamValue: function(eb) {\n                var fb = ((p.JSBNG__location.search || p.JSBNG__location.hash));\n                if (fb) {\n                    if (/\\?/.test(fb)) {\n                        fb = fb.split(\"?\")[1];\n                    }\n                ;\n                ;\n                    if (((eb == null))) {\n                        return cb(fb);\n                    }\n                ;\n                ;\n                    var gb = fb.split(\"&\");\n                    for (var hb = 0; ((hb < gb.length)); hb++) {\n                        if (((gb[hb].substring(0, gb[hb].indexOf(\"=\")) == eb))) {\n                            return cb(gb[hb].substring(((gb[hb].indexOf(\"=\") + 1))));\n                        }\n                    ;\n                    ;\n                    };\n                ;\n                }\n            ;\n            ;\n                return \"\";\n            },\n            expressInstallCallback: function() {\n                if (ba) {\n                    var eb = wa(m);\n                    if (((eb && w))) {\n                        eb.parentNode.replaceChild(w, eb);\n                        if (x) {\n                            bb(x, true);\n                            if (((fa.ie && fa.win))) {\n                                w.style.display = \"block\";\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                        if (y) {\n                            y(z);\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    ba = false;\n                }\n            ;\n            ;\n            }\n        };\n    }();\n    e.exports = g;\n});\n__d(\"SoundPlayer\", [\"Arbiter\",\"ChatConfig\",\"swfobject\",\"swfobject2\",\"URI\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatConfig\"), i = b(\"swfobject\").SWFObject, j = b(\"swfobject2\"), k = b(\"URI\"), l = b(\"createArrayFrom\"), m = {\n    }, n = null, o = false, p = \"so_sound_player\", q = \"/swf/SoundPlayer.swf?v=1\", r = \"10.0.22.87\", s = null, t = h.get(\"sound.useswfobject_2\", false), u = h.get(\"sound.force_flash\", false);\n    function v(da) {\n        var ea = k(da);\n        if (!ea.getDomain()) {\n            return k().setPath(ea.getPath()).toString();\n        }\n    ;\n    ;\n        return da;\n    };\n;\n    function w(da) {\n        var ea = k(da).getPath();\n        if (/\\.mp3$/.test(ea)) {\n            return \"audio/mpeg\";\n        }\n    ;\n    ;\n        if (/\\.og[ga]$/.test(ea)) {\n            return \"audio/ogg\";\n        }\n    ;\n    ;\n        return \"\";\n    };\n;\n    function x() {\n        if (((!s && !u))) {\n            var da = JSBNG__document.createElement(\"audio\");\n            if (((!da || !da.canPlayType))) {\n                return null;\n            }\n        ;\n        ;\n            da.setAttribute(\"preload\", \"auto\");\n            JSBNG__document.body.appendChild(da);\n            s = da;\n        }\n    ;\n    ;\n        return s;\n    };\n;\n    function y() {\n        var da = ((JSBNG__document[p] || window[p]));\n        if (da) {\n            if (((!da.playSound && da.length))) {\n                da = da[0];\n            }\n        ;\n        }\n    ;\n    ;\n        return ((((((da && da.playSound)) && da.loopSound)) ? da : null));\n    };\n;\n    function z() {\n        return o;\n    };\n;\n    function aa(da, ea, fa) {\n        n = {\n            path: da,\n            sync: ea,\n            loop: fa\n        };\n    };\n;\n    function ba() {\n        o = true;\n        if (n) {\n            var da = y();\n            if (n.loop) {\n                da.loopSound(n.path, n.sync);\n            }\n             else da.playSound(n.path, n.sync);\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    var ca = {\n        init: function(da) {\n            da = l(da);\n            var ea;\n            for (var fa = 0; ((fa < da.length)); ++fa) {\n                ea = da[fa];\n                if (m[ea]) {\n                    return;\n                }\n            ;\n            ;\n            };\n        ;\n            var ga = x();\n            for (fa = 0; ((ga && ((fa < da.length)))); ++fa) {\n                ea = da[fa];\n                if (ga.canPlayType(ea)) {\n                    m[ea] = true;\n                    return;\n                }\n            ;\n            ;\n            };\n        ;\n            m[\"audio/mpeg\"] = true;\n            if (y()) {\n                return;\n            }\n        ;\n        ;\n            try {\n                g.registerCallback(ba, [\"sound/player_ready\",\"sound/ready\",]);\n                var ia = JSBNG__document.createElement(\"div\");\n                ia.id = \"sound_player_holder\";\n                JSBNG__document.body.appendChild(ia);\n                if (t) {\n                    j.embedSWF(q, ia.id, \"1px\", \"1px\", r, null, {\n                        swf_id: p\n                    }, {\n                        allowscriptaccess: \"always\",\n                        wmode: \"transparent\"\n                    }, null, function(ka) {\n                        window[p] = ka.ref;\n                        g.inform(\"sound/player_ready\");\n                    });\n                }\n                 else {\n                    var ja = new i(q, p, \"1px\", \"1px\", [r,], \"#ffffff\");\n                    ja.addParam(\"allowscriptaccess\", \"always\");\n                    ja.addParam(\"wmode\", \"transparent\");\n                    ja.addVariable(\"swf_id\", p);\n                    ja.fallback_html = \" \";\n                    ja.write(ia.id);\n                    window[p] = ja;\n                    g.inform(\"sound/player_ready\");\n                }\n            ;\n            ;\n            } catch (ha) {\n            \n            };\n        ;\n        },\n        play: function(da, ea) {\n            da = l(da);\n            var fa = x(), ga, ha;\n            for (var ia = 0; ((fa && ((ia < da.length)))); ++ia) {\n                ga = da[ia];\n                ha = w(ga);\n                if (!fa.canPlayType(ha)) {\n                    continue;\n                }\n            ;\n            ;\n                ca.init([ha,]);\n                fa.src = v(ga);\n                if (ea) {\n                    fa.setAttribute(\"loop\", \"\");\n                }\n                 else fa.removeAttribute(\"loop\");\n            ;\n            ;\n                fa.play();\n                return;\n            };\n        ;\n            for (ia = 0; ((ia < da.length)); ++ia) {\n                ga = v(da[ia]);\n                ha = w(ga);\n                if (((ha != \"audio/mpeg\"))) {\n                    continue;\n                }\n            ;\n            ;\n                ca.init([ha,]);\n                var ja = y();\n                if (!z()) {\n                    aa(ga, true, ea);\n                    return;\n                }\n                 else if (ja) {\n                    if (ea) {\n                        ja.loopSound(ga, true);\n                    }\n                     else ja.playSound(ga, true);\n                ;\n                ;\n                    return;\n                }\n                \n            ;\n            ;\n            };\n        ;\n        },\n        JSBNG__stop: function(da) {\n            da = l(da);\n            for (var ea = 0; ((ea < da.length)); ++ea) {\n                var fa = v(da[ea]), ga = x(), ha = y();\n                if (((ga && ((ga.src == fa))))) {\n                    ga.pause();\n                    ga.src = undefined;\n                }\n                 else ((ha && ha.stopSound(fa)));\n            ;\n            ;\n            };\n        ;\n        }\n    };\n    e.exports = ca;\n});\n__d(\"SoundSynchronizer\", [\"hasArrayNature\",\"SoundPlayer\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"hasArrayNature\"), h = b(\"SoundPlayer\"), i = b(\"createArrayFrom\"), j = \"fb_sounds_playing3\";\n    function k() {\n        if (window.JSBNG__localStorage) {\n            try {\n                var p = window.JSBNG__localStorage[j];\n                if (p) {\n                    p = JSON.parse(p);\n                    if (g(p)) {\n                        return p;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            } catch (o) {\n            \n            };\n        }\n    ;\n    ;\n        return [];\n    };\n;\n    function l(o) {\n        if (window.JSBNG__localStorage) {\n            var p = k();\n            p.push(o);\n            while (((p.length > 5))) {\n                p.shift();\n            ;\n            };\n        ;\n            try {\n                window.JSBNG__localStorage[j] = JSON.stringify(p);\n            } catch (q) {\n            \n            };\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function m(o) {\n        return k().some(function(p) {\n            return ((p === o));\n        });\n    };\n;\n    var n = {\n        play: function(o, p, q) {\n            o = i(o);\n            p = ((p || ((o[0] + Math.floor(((JSBNG__Date.now() / 1000)))))));\n            if (m(p)) {\n                return;\n            }\n        ;\n        ;\n            h.play(o, q);\n            l(p);\n        },\n        isSupported: function() {\n            return !!window.JSBNG__localStorage;\n        }\n    };\n    e.exports = n;\n});\n__d(\"SoundRPC\", [\"JSBNG__Event\",\"SoundSynchronizer\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"SoundSynchronizer\");\n    function i(k, l, m) {\n        h.play(k, l, m);\n    };\n;\n    var j = {\n        playLocal: i,\n        playRemote: function(k, l, m, n) {\n            var o = {\n                paths: l,\n                sync: m,\n                loop: n\n            };\n            k.JSBNG__postMessage(JSON.stringify(o), \"*\");\n        },\n        supportsRPC: function() {\n            return !!window.JSBNG__postMessage;\n        },\n        _listen: function() {\n            g.listen(window, \"message\", function(k) {\n                if (!/\\.facebook.com$/.test(k.origin)) {\n                    return;\n                }\n            ;\n            ;\n                var l = JSON.parse(k.data);\n                i(l.paths, l.sync, l.loop);\n            });\n        }\n    };\n    e.exports = j;\n});\n__d(\"Sound\", [\"SoundPlayer\",\"SoundRPC\",\"SoundSynchronizer\",\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"SoundPlayer\"), h = b(\"SoundRPC\"), i = b(\"SoundSynchronizer\"), j = b(\"URI\"), k = b(\"UserAgent\"), l = null, m = {\n        init: function(q) {\n            if (!l) {\n                g.init(q);\n            }\n        ;\n        ;\n        },\n        play: function(q, r, s) {\n            if (l) {\n                h.playRemote(l.contentWindow, q, r, false);\n            }\n             else h.playLocal(q, r, s);\n        ;\n        ;\n        },\n        JSBNG__stop: function(q) {\n            if (!l) {\n                g.JSBNG__stop(q);\n            }\n        ;\n        ;\n        }\n    }, n = new j(JSBNG__location.href);\n    if (((n.getSubdomain() && ((n.getSubdomain() !== \"www\"))))) {\n        n.setSubdomain(\"www\");\n    }\n;\n;\n    var o = n.getDomain();\n    function p() {\n        if (((k.ie() < 9))) {\n            return false;\n        }\n    ;\n    ;\n        return ((i.isSupported() && h.supportsRPC()));\n    };\n;\n    if (((((n.isFacebookURI() && ((JSBNG__location.host !== o)))) && p()))) {\n        l = JSBNG__document.createElement(\"div\");\n        l.setAttribute(\"src\", ((((\"//\" + o)) + \"/sound_iframe.php\")));\n        l.style.display = \"none\";\n        JSBNG__document.body.appendChild(l);\n    }\n;\n;\n    e.exports = m;\n});\n__d(\"MercuryBrowserAlerts\", [\"ArbiterMixin\",\"ChatActivity\",\"ChatConfig\",\"ChatOptions\",\"ChatTitleBarBlinker\",\"MercuryParticipants\",\"MercuryThreadMuter\",\"MercuryThreads\",\"MessagingTag\",\"Sound\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"ChatActivity\"), i = b(\"ChatConfig\"), j = b(\"ChatOptions\"), k = b(\"ChatTitleBarBlinker\"), l = b(\"MercuryParticipants\"), m = b(\"MercuryThreadMuter\"), n = b(\"MercuryThreads\").get(), o = b(\"MessagingTag\"), p = b(\"Sound\"), q = b(\"copyProperties\");\n    p.init([\"audio/ogg\",\"audio/mpeg\",]);\n    function r(t) {\n        if (j.getSetting(\"sound\")) {\n            p.play([i.get(\"sound.notif_ogg_url\"),i.get(\"sound.notif_mp3_url\"),], t, false);\n        }\n    ;\n    ;\n    };\n;\n    var s = {\n        messageReceived: function(t) {\n            if (((((((t.author == l.user)) || !t.is_unread)) || ((((t.folder != o.INBOX)) && ((t.folder != o.ARCHIVED))))))) {\n                return;\n            }\n        ;\n        ;\n            var u = t.thread_id, v = h.isActive();\n            if (v) {\n                var w = false;\n                s.inform(\"before-alert\", {\n                    threadID: u,\n                    cancelAlert: function() {\n                        w = true;\n                    }\n                });\n            }\n        ;\n        ;\n            n.getThreadMeta(u, function(x) {\n                var y = m.isThreadMuted(x);\n                if (y) {\n                    return;\n                }\n            ;\n            ;\n                var z = t.timestamp;\n                if (v) {\n                    ((!w && r(z)));\n                }\n                 else {\n                    k.blink(u, z);\n                    r(z);\n                }\n            ;\n            ;\n                k.blinkingElsewhere();\n            }.bind(this));\n        }\n    };\n    e.exports = q(s, g);\n});\n__d(\"ActiveXSupport\", [], function(a, b, c, d, e, f) {\n    var g = null, h = {\n        isSupported: function() {\n            if (((g !== null))) {\n                return g;\n            }\n        ;\n        ;\n            try {\n                g = ((!!window.ActiveXObject && !!new ActiveXObject(\"htmlfile\")));\n            } catch (i) {\n                g = false;\n            };\n        ;\n            return g;\n        }\n    };\n    e.exports = h;\n});\n__d(\"VideoCallSupport\", [\"MercuryConfig\",\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryConfig\"), h = b(\"UserAgent\"), i = {\n        newVCIsSupported: function() {\n            return ((g.NewVCGK && ((((h.chrome() >= 24)) || ((h.firefox() >= 22))))));\n        }\n    };\n    e.exports = i;\n});\n__d(\"VideoCallRecordMessageDialog\", [\"AsyncDialog\",\"AsyncRequest\",\"Dialog\",\"URI\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncDialog\"), h = b(\"AsyncRequest\"), i = b(\"Dialog\"), j = b(\"URI\"), k = b(\"tx\"), l = {\n        get: function(m, n) {\n            var o = \"Would you like to leave a message?\", p = \"New Message\";\n            return new i().setTitle(k._(\"{firstname} is Unavailable\", {\n                firstname: n\n            })).setBody(o).setButtons([{\n                JSBNG__name: \"record-message\",\n                label: p\n            },i.CANCEL,]).setHandler(function() {\n                var q = j(\"/ajax/messaging/composer.php\").setQueryData({\n                    ids: [m,],\n                    autoloadvideo: true\n                }).toString();\n                g.send(new h(q));\n            });\n        }\n    };\n    e.exports = l;\n});\n__d(\"VideoCallCore\", [\"JSBNG__Event\",\"ActiveXSupport\",\"Arbiter\",\"AsyncRequest\",\"AvailableList\",\"AvailableListConstants\",\"Bootloader\",\"ChannelConstants\",\"Cookie\",\"CSS\",\"Dialog\",\"MercuryConfig\",\"UserAgent\",\"VideoCallSupport\",\"emptyFunction\",\"ge\",\"VideoCallTemplates\",\"ShortProfiles\",\"VideoCallRecordMessageDialog\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ActiveXSupport\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AvailableList\"), l = b(\"AvailableListConstants\"), m = b(\"Bootloader\"), n = b(\"ChannelConstants\"), o = b(\"Cookie\"), p = b(\"CSS\"), q = b(\"Dialog\"), r = b(\"MercuryConfig\"), s = b(\"UserAgent\"), t = b(\"VideoCallSupport\"), u = b(\"emptyFunction\"), v = b(\"ge\");\n    b(\"VideoCallTemplates\");\n    var w = [], x = [], y = {\n        isSupported: function() {\n            if (t.newVCIsSupported()) {\n                return true;\n            }\n        ;\n        ;\n            if (s.windows()) {\n                if (((((s.ie() >= 9)) && !s.ie64()))) {\n                    return h.isSupported();\n                }\n                 else return ((((((((((s.ie() >= 7)) && !s.ie64())) || ((s.firefox() >= 3.6)))) || ((s.chrome() >= 5)))) || ((s.JSBNG__opera() >= 12))))\n            ;\n            }\n             else if (((s.osx() > 10.4))) {\n                return ((((((((s.firefox() >= 3.6)) || ((s.chrome() >= 5)))) || ((s.webkit() >= 500)))) || ((s.JSBNG__opera() >= 12))));\n            }\n            \n        ;\n        ;\n            return false;\n        },\n        isInstalled: function() {\n            var ca = false;\n            if (this.isSupported()) {\n                if (z()) {\n                    var da = null;\n                    try {\n                        da = new ActiveXObject(\"SkypeLimited.SkypeWebPlugin\");\n                        ca = !!da;\n                    } catch (ea) {\n                    \n                    };\n                ;\n                    da = null;\n                }\n                 else {\n                    ca = aa();\n                    if (r.VideoCallingNoJavaGK) {\n                        if (((ca && ((s.osx() >= 10.8))))) {\n                            if (((ca.description && ((ca.description.charAt(0) != \"v\"))))) {\n                                ca = false;\n                            }\n                        ;\n                        }\n                    ;\n                    }\n                ;\n                ;\n                }\n            ;\n            }\n        ;\n        ;\n            return ca;\n        },\n        mightReloadPostInstall: function() {\n            return s.windows();\n        },\n        onVideoMessage: function(ca) {\n            w.push(ca);\n            m.loadModules([\"VideoCallController\",], u);\n        },\n        onRTCMessage: function(ca) {\n            if (t.newVCIsSupported()) {\n                x.push(ca);\n                m.loadModules([\"FBRTCCallController\",], u);\n            }\n        ;\n        ;\n        },\n        setMessageHandler: function(ca) {\n            this.onVideoMessage = ca;\n            if (ca) {\n                while (w.length) {\n                    ca(w.shift());\n                ;\n                };\n            }\n        ;\n        ;\n        },\n        setRTCMessageHandler: function(ca) {\n            this.onRTCMessage = ca;\n            if (ca) {\n                while (x.length) {\n                    ca(x.shift());\n                ;\n                };\n            }\n        ;\n        ;\n        },\n        availableForCall: function(ca) {\n            var da = k.get(ca);\n            return ((((da == l.ACTIVE)) || ((da == l.IDLE))));\n        },\n        onProfileButtonClick: function(ca) {\n            y.startCallOrLeaveMessage(ca, \"profile_button_click\");\n        },\n        attachListenerToProfileButton: function(ca) {\n            var da = v(\"videoCallProfileButton\");\n            if (da) {\n                if (!y.isSupported()) {\n                    p.hide(da);\n                    return;\n                }\n            ;\n            ;\n                g.listen(da, \"click\", function(JSBNG__event) {\n                    y.startCallOrLeaveMessage(ca, \"profile_button_click_timeline\");\n                });\n            }\n        ;\n        ;\n        },\n        startCallOrLeaveMessage: function(ca, da) {\n            if (this.availableForCall(ca)) {\n                y.showOutgoingCallDialog(ca, da);\n            }\n             else b(\"ShortProfiles\").get(ca, function(ea) {\n                b(\"VideoCallRecordMessageDialog\").get(ca, ea.firstName).show();\n            });\n        ;\n        ;\n        },\n        showOutgoingCallDialog: function(ca, da) {\n            var ea = ((da || \"unknown\"));\n            y.logClick(ca, ea);\n            var fa = ((((y.isInstalled() || r.NewVCGK)) ? \"outgoing_dialog.php\" : \"intro.php\")), ga = ((((((\"/ajax/chat/video/\" + fa)) + \"?idTarget=\")) + ca));\n            new q().setAllowCrossPageTransition(true).setAsync(new j(ga)).show();\n        },\n        logClick: function(ca, da) {\n            new j().setURI(\"/ajax/chat/video/log_click.php\").setData({\n                targetUserID: ca,\n                clickSource: da\n            }).setAllowCrossPageTransition(true).setErrorHandler(u).send();\n        }\n    };\n    function z() {\n        return ((((s.ie() && s.windows())) && !s.JSBNG__opera()));\n    };\n;\n    function aa() {\n        if (!JSBNG__navigator) {\n            return null;\n        }\n    ;\n    ;\n        JSBNG__navigator.plugins.refresh(false);\n        var ca = JSBNG__navigator.mimeTypes[\"application/skypesdk-plugin\"];\n        return ((ca && ca.enabledPlugin));\n    };\n;\n    function ba() {\n        if (!y.mightReloadPostInstall()) {\n            return;\n        }\n    ;\n    ;\n        var ca = o.get(\"vcpwn\");\n        if (ca) {\n            o.clear(\"vcpwn\");\n            var da = o.get(\"vctid\");\n            if (da) {\n                o.clear(\"vctid\");\n                if (o.get(\"vctid\")) {\n                    return;\n                }\n            ;\n            ;\n                if (((da && y.isInstalled()))) {\n                    var ea = ((\"/ajax/chat/video/outgoing_dialog.php?idTarget=\" + da));\n                    new q().setAllowCrossPageTransition(true).setAsync(new j(ea)).show();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    i.subscribe(n.getArbiterType(\"video\"), function(ca, da) {\n        y.onVideoMessage(da.obj);\n    });\n    i.subscribe(n.getArbiterType(\"webrtc\"), function(ca, da) {\n        y.onRTCMessage(da.obj);\n    });\n    i.subscribe(n.getArbiterType(\"chat_event\"), function(ca, da) {\n        if (((da.obj.event_name == \"missed-call\"))) {\n            m.loadModules([\"VideoCallController\",], function(ea) {\n                ea.onMissedCallEvent(da.obj);\n            });\n        }\n    ;\n    ;\n    });\n    ba();\n    e.exports = y;\n});\n__d(\"ChatApp\", [\"CSS\",\"JSLogger\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"JSLogger\"), i = false, j = false, k = false, l = null, m = {\n        init: function(n, o, p) {\n            if (l) {\n                h.create(\"chat_app\").error(\"repeated_init\");\n                return;\n            }\n        ;\n        ;\n            l = n;\n            d([\"TabsViewport\",\"ChatTabController\",\"ChatTabViewCoordinator\",\"MercuryServerRequests\",\"MercuryChannelHandler\",\"MercuryStateCheck\",], function(q, r, s, t, u, v) {\n                t.get().handleUpdate(p);\n                this.tabsViewport = new q(o);\n                this.tabController = new r(this.tabsViewport);\n                this.tabViewCoordinator = new s(o, this.tabsViewport);\n                i = j = true;\n            }.bind(this));\n        },\n        hide: function() {\n            if (((!i || k))) {\n                return;\n            }\n        ;\n        ;\n            g.hide(l);\n            k = true;\n        },\n        unhide: function() {\n            if (i) {\n                if (k) {\n                    g.show(l);\n                    this.tabsViewport.checkWidth();\n                    d([\"Dock\",], function(n) {\n                        n.resizeAllFlyouts();\n                    });\n                    k = false;\n                }\n            ;\n            ;\n            }\n             else if (!j) {\n                d([\"UIPagelet\",], function(n) {\n                    n.loadFromEndpoint(\"ChatTabsPagelet\", \"ChatTabsPagelet\");\n                    n.loadFromEndpoint(\"BuddylistPagelet\", \"BuddylistPagelet\");\n                });\n                j = true;\n            }\n            \n        ;\n        ;\n        }\n    };\n    e.exports = m;\n});\n__d(\"DataViewPolyfill\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\");\n    function h(i, j, k) {\n        if (((j === undefined))) {\n            this._ba = new JSBNG__Uint8Array(i);\n        }\n         else if (((k === undefined))) {\n            this._ba = new JSBNG__Uint8Array(i, j);\n        }\n         else this._ba = new JSBNG__Uint8Array(i, j, k);\n        \n    ;\n    ;\n        this.byteLength = this._ba.byteLength;\n    };\n;\n    g(h, {\n        isSupported: function() {\n            return !!a.JSBNG__Uint8Array;\n        }\n    });\n    g(h.prototype, {\n        getUint8: function(i) {\n            if (((i >= this._ba.length))) {\n                throw new Error(\"Trying to read beyond bounds of DataViewPolyfill\");\n            }\n        ;\n        ;\n            return this._ba[i];\n        },\n        getUint16: function(i, j) {\n            var k = this.getUint8(i), l = this.getUint8(((i + 1)));\n            return ((j ? ((((l * 256)) + k)) : ((((k * 256)) + l))));\n        },\n        getUint32: function(i, j) {\n            var k = this.getUint8(i), l = this.getUint8(((i + 1))), m = this.getUint8(((i + 2))), n = this.getUint8(((i + 3)));\n            return ((j ? ((((((((((((n * 256)) + m)) * 256)) + l)) * 256)) + k)) : ((((((((((((k * 256)) + l)) * 256)) + m)) * 256)) + n))));\n        }\n    });\n    e.exports = h;\n});\n__d(\"getImageSize\", [\"DataViewPolyfill\",], function(a, b, c, d, e, f) {\n    var g = b(\"DataViewPolyfill\"), h = ((a.JSBNG__DataView || g));\n    function i(m) {\n        return {\n            width: m.getUint16(6, true),\n            height: m.getUint16(8, true)\n        };\n    };\n;\n    function j(m) {\n        return {\n            width: m.getUint32(16, false),\n            height: m.getUint32(20, false)\n        };\n    };\n;\n    function k(m) {\n        var n = m.byteLength, o = 2;\n        while (((o < n))) {\n            var p = m.getUint16(o, false);\n            o += 2;\n            if (((((p == 65472)) || ((p == 65474))))) {\n                return {\n                    width: m.getUint16(((o + 5)), false),\n                    height: m.getUint16(((o + 3)), false)\n                };\n            }\n             else o += m.getUint16(o, false);\n        ;\n        ;\n        };\n    ;\n        return null;\n    };\n;\n    function l(m) {\n        var n = new h(m);\n        if (((((n.getUint8(0) == 255)) && ((n.getUint8(1) == 216))))) {\n            return k(n);\n        }\n    ;\n    ;\n        if (((((((n.getUint8(0) == 71)) && ((n.getUint8(1) == 73)))) && ((n.getUint8(2) == 70))))) {\n            return i(n);\n        }\n    ;\n    ;\n        if (((((((((n.getUint8(0) == 137)) && ((n.getUint8(1) == 80)))) && ((n.getUint8(2) == 78)))) && ((n.getUint8(3) == 71))))) {\n            return j(n);\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    e.exports = l;\n    l.gif = i;\n    l.png = j;\n    l.jpeg = k;\n});\n__d(\"ChatAutoSendPhotoUploader\", [\"ArbiterMixin\",\"DOM\",\"JSBNG__Event\",\"FileForm\",\"FileFormResetOnSubmit\",\"FileInput\",\"FormSubmitOnChange\",\"MercuryAttachmentType\",\"SubscriptionsHandler\",\"copyProperties\",\"csx\",\"getImageSize\",\"removeFromArray\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"FileForm\"), k = b(\"FileFormResetOnSubmit\"), l = b(\"FileInput\"), m = b(\"FormSubmitOnChange\"), n = b(\"MercuryAttachmentType\"), o = b(\"SubscriptionsHandler\"), p = b(\"copyProperties\"), q = b(\"csx\"), r = b(\"getImageSize\"), s = b(\"removeFromArray\"), t = b(\"shield\"), u = 0;\n    function v(w, x, y) {\n        this._idElem = y;\n        this._input = x;\n        this._subscriptionsHandler = new o();\n        this._uploadBatches = [];\n        var z = new j(w, [m,k,]), aa = h.JSBNG__find(w, \"._4q60\"), ba = h.JSBNG__find(aa, \"._4q61\");\n        new l(aa, ba, x);\n        this._subscriptionsHandler.addSubscriptions(z.subscribe(\"submit\", this._onFileSubmit.bind(this)), z.subscribe(\"success\", this._onFileUploadSuccess.bind(this)), z.subscribe(\"failure\", this._onFileUploadFailure.bind(this)), i.listen(ba, \"click\", t(this.inform, this, \"open\")));\n    };\n;\n    p(v.prototype, g, {\n        isUploading: function() {\n            return ((this._uploadBatches.length > 0));\n        },\n        destroy: function() {\n            this._subscriptionsHandler.release();\n        },\n        _getPreviewAttachment: function(w) {\n            var x = {\n                attach_type: n.PHOTO,\n                preview_uploading: true\n            };\n            if (w) {\n                x.preview_width = w.width;\n                x.preview_height = w.height;\n            }\n        ;\n        ;\n            return x;\n        },\n        _onFileSubmit: function() {\n            u += 1;\n            var w = ((\"upload_\" + u));\n            this._idElem.value = w;\n            this._uploadBatches.push(w);\n            if (((((((((typeof JSBNG__FileReader !== \"undefined\")) && JSBNG__FileReader.prototype.readAsArrayBuffer)) && this._input.files)) && ((this._input.files.length === 1))))) {\n                var x = new JSBNG__FileReader();\n                x.JSBNG__onload = function() {\n                    this.inform(\"submit\", {\n                        upload_id: w,\n                        raw_attachments: [this._getPreviewAttachment(r(x.result)),]\n                    });\n                }.bind(this);\n                x.JSBNG__onerror = function() {\n                    this.inform(\"submit\", {\n                        upload_id: w,\n                        raw_attachments: [this._getPreviewAttachment(null),]\n                    });\n                }.bind(this);\n                x.readAsArrayBuffer(this._input.files[0]);\n            }\n             else {\n                var y = 1;\n                if (this._input.files) {\n                    y = this._input.files.length;\n                }\n            ;\n            ;\n                var z = [];\n                for (var aa = 0; ((aa < y)); ++aa) {\n                    z.push(this._getPreviewAttachment(null));\n                ;\n                };\n            ;\n                this.inform(\"submit\", {\n                    upload_id: w,\n                    raw_attachments: z\n                });\n            }\n        ;\n        ;\n        },\n        _onFileUploadSuccess: function(JSBNG__event, w) {\n            var x = w.response.getPayload(), y = x.uploadID;\n            s(this._uploadBatches, y);\n            var z = [];\n            x.metadata.forEach(function(aa) {\n                z.push(aa.image_id);\n            });\n            this.inform(\"all-uploads-completed\", {\n                upload_id: x.uploadID,\n                image_ids: z\n            });\n        },\n        _onFileUploadFailure: function(JSBNG__event, w) {\n            var x = this._uploadBatches[((this._uploadBatches.length - 1))];\n            s(this._uploadBatches, x);\n            this.inform(\"all-uploads-failed\", {\n                upload_id: x\n            });\n        }\n    });\n    e.exports = v;\n});\n__d(\"ChatTabModel\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"ChatBehavior\",\"ChatConfig\",\"JSLogger\",\"MercuryAssert\",\"MercuryServerRequests\",\"MercuryThreads\",\"MercuryTimestampTracker\",\"PresenceInitialData\",\"PresenceState\",\"PresenceUtil\",\"areObjectsEqual\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"ChatBehavior\"), j = b(\"ChatConfig\"), k = b(\"JSLogger\"), l = b(\"MercuryAssert\"), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreads\").get(), o = b(\"MercuryTimestampTracker\").get(), p = b(\"PresenceInitialData\"), q = b(\"PresenceState\"), r = b(\"PresenceUtil\"), s = b(\"areObjectsEqual\"), t = b(\"copyProperties\"), u = [], v = null, w = null, x = null, y = null;\n    function z() {\n        return parseInt(p.serverTime, 10);\n    };\n;\n    var aa = ((j.get(\"tab_max_load_age\") || 3600000)), ba = ((z() - aa)), ca = 0, da = 20, ea = k.create(\"chat_tab_model\"), fa = false;\n    function ga(xa) {\n        var ya = q.verifyNumber(xa.uct2);\n        if (((!ya || ((typeof ya !== \"number\"))))) {\n            ea.warn(\"bad_cookie_version\", xa.uct2);\n            return null;\n        }\n    ;\n    ;\n        if (((((ya < ca)) || ((ya < ba))))) {\n            return null;\n        }\n    ;\n    ;\n        return ya;\n    };\n;\n    function ha(xa) {\n        var ya = ga(xa);\n        if (!ya) {\n            var za = {\n            };\n            za.old_tabs = ((((xa && xa.t2)) && JSON.stringify(xa.t2)));\n            za.old_promoted = ((xa && xa.lm2));\n            za.old_time = ((xa && xa.uct2));\n            za.old_reason = ((xa && xa.tr));\n            za.old_window = ((xa && xa.tw));\n            var ab;\n            if (((w && xa.t2))) {\n                for (var bb = 0; ((bb < xa.t2.length)); bb++) {\n                    var cb = xa.t2[bb];\n                    if (((cb.i === w))) {\n                        ab = cb.r;\n                    }\n                ;\n                ;\n                };\n            }\n        ;\n        ;\n            var db = [];\n            u.forEach(function(eb) {\n                if (!eb.fragile) {\n                    var fb = {\n                        i: eb.id,\n                        si: eb.server_id\n                    };\n                    if (((eb.raised || ((((eb.id === w)) && ab))))) {\n                        fb.r = 1;\n                    }\n                ;\n                ;\n                    db.push(fb);\n                }\n            ;\n            ;\n            });\n            xa.t2 = db;\n            xa.uct2 = ca;\n            xa.lm2 = v;\n            xa.tr = y;\n            xa.tw = r.getSessionID();\n            za.new_tabs = JSON.stringify(xa.t2);\n            za.new_promoted = xa.lm2;\n            za.new_time = xa.uct2;\n            za.new_reason = xa.tr;\n            za.new_window = xa.tw;\n            ea.debug(\"store\", za);\n        }\n    ;\n    ;\n        return xa;\n    };\n;\n    function ia(xa) {\n        if (xa) {\n            var ya = ga(xa);\n            if (((ya && ((ya !== ca))))) {\n                var za = {\n                };\n                za.old_tabs = JSON.stringify(u);\n                za.old_promoted = v;\n                za.old_time = ca;\n                za.old_reason = y;\n                za.window_id = r.getSessionID();\n                za.cookie_tabs = ((((xa && xa.t2)) && JSON.stringify(xa.t2)));\n                za.cookie_promoted = ((xa && xa.lm2));\n                za.cookie_time = ((xa && xa.uct2));\n                za.cookie_reason = ((xa && xa.tr));\n                za.cookie_window = ((xa && xa.tw));\n                ca = ya;\n                y = \"load\";\n                var ab = ja(xa.t2, ((xa.lm2 || null)));\n                za.load_result = ab;\n                za.new_tabs = JSON.stringify(u);\n                za.new_promoted = v;\n                za.new_time = ca;\n                za.new_reason = y;\n                var JSBNG__event = \"load\";\n                if (!fa) {\n                    JSBNG__event += \"_init\";\n                }\n            ;\n            ;\n                ea.log(JSBNG__event, za);\n                return ab;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function ja(xa, ya) {\n        if (ka(xa, ya)) {\n            var za = u.filter(function(cb) {\n                return cb.fragile;\n            }), ab = {\n            };\n            v = null;\n            u = xa.map(function(cb) {\n                var db = {\n                    id: cb.i,\n                    server_id: cb.si\n                };\n                if (((db.id == ya))) {\n                    v = db.id;\n                }\n            ;\n            ;\n                if (((w == cb.i))) {\n                    var eb = pa(w);\n                    if (((eb != -1))) {\n                        db.raised = u[eb].raised;\n                        return db;\n                    }\n                     else return null\n                ;\n                }\n            ;\n            ;\n                if (cb.r) {\n                    db.raised = true;\n                }\n            ;\n            ;\n                ab[db.id] = db;\n                return db;\n            });\n            u = u.filter(function(cb) {\n                return ((cb != null));\n            });\n            if (x) {\n                {\n                    var fin236keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin236i = (0);\n                    var bb;\n                    for (; (fin236i < fin236keys.length); (fin236i++)) {\n                        ((bb) = (fin236keys[fin236i]));\n                        {\n                            if (((!ab[bb] || !ab[bb].raised))) {\n                                delete x[bb];\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            }\n        ;\n        ;\n            za = za.filter(function(cb) {\n                return !ab[cb.id];\n            });\n            u = u.concat(za);\n            oa();\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function ka(xa, ya) {\n        if (((ya != v))) {\n            return true;\n        }\n    ;\n    ;\n        var za = u.filter(function(cb) {\n            return !cb.fragile;\n        });\n        if (((xa.length != za.length))) {\n            return true;\n        }\n    ;\n    ;\n        for (var ab = 0, bb = xa.length; ((ab < bb)); ab++) {\n            if (((xa[ab].id === w))) {\n                continue;\n            }\n        ;\n        ;\n            if (!s(xa[ab], za[ab])) {\n                return true;\n            }\n        ;\n        ;\n        };\n    ;\n        return false;\n    };\n;\n    function la(xa, ya, za) {\n        var ab = ia(q.get());\n        if (((((ya === undefined)) || ((ya > ca))))) {\n            if (xa()) {\n                ab = true;\n                y = ((za || null));\n                na(ya);\n            }\n        ;\n        ;\n        }\n         else ea.error(\"rejected\", {\n            change_time: ya,\n            state_time: ca\n        });\n    ;\n    ;\n        ((ab && ma()));\n    };\n;\n    function ma() {\n        if (fa) {\n            va.inform(\"chat/tabs-changed\", va.get());\n        }\n    ;\n    ;\n    };\n;\n    function na(xa) {\n        if (((xa === undefined))) {\n            xa = Math.max(((o.getLastUserMessageTimestamp() || 1)), ((ca + 1)));\n        }\n    ;\n    ;\n        ca = xa;\n        q.doSync();\n    };\n;\n    function oa() {\n        var xa = ((u.length - da));\n        if (((xa > 0))) {\n            u = u.filter(function(ya) {\n                return ((ya.raised || ((xa-- <= 0))));\n            });\n        }\n    ;\n    ;\n    };\n;\n    function pa(xa) {\n        for (var ya = 0; ((ya < u.length)); ya++) {\n            if (((u[ya].id == xa))) {\n                return ya;\n            }\n        ;\n        ;\n        };\n    ;\n        return -1;\n    };\n;\n    function qa(xa, ya) {\n        var za = n.getThreadMetaNow(xa);\n        if (!za) {\n            return false;\n        }\n    ;\n    ;\n        if (za.is_canonical_user) {\n            return sa(xa, ya);\n        }\n         else {\n            var ab = ra(xa);\n            if (ab) {\n                m.getServerThreadID(xa, function(bb) {\n                    if (ta(xa, bb)) {\n                        na();\n                        ma();\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            return ab;\n        }\n    ;\n    ;\n    };\n;\n    function ra(xa) {\n        if (((pa(xa) === -1))) {\n            u.push({\n                id: xa,\n                fragile: true\n            });\n            ea.log(\"open_fragile_tab\", {\n                tabs: JSON.stringify(u),\n                opened: xa,\n                window_id: r.getSessionID()\n            });\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function sa(xa, ya) {\n        var za = pa(xa);\n        if (((za != -1))) {\n            if (u[za].fragile) {\n                u.splice(za, 1);\n            }\n             else {\n                u[za].signatureID = ya;\n                return true;\n            }\n        ;\n        }\n    ;\n    ;\n        for (var ab = 0; ((ab <= u.length)); ab++) {\n            if (((((ab == u.length)) || u[ab].fragile))) {\n                u.splice(ab, 0, {\n                    id: xa,\n                    signatureID: ya\n                });\n                oa();\n                ea.log(\"open_tab\", {\n                    tabs: JSON.stringify(u),\n                    opened: xa,\n                    window_id: r.getSessionID()\n                });\n                return true;\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function ta(xa, ya) {\n        var za = pa(xa);\n        if (((((za != -1)) && u[za].fragile))) {\n            var ab = u[za];\n            ab.fragile = false;\n            ab.server_id = ya;\n            var bb = [];\n            u.forEach(function(cb) {\n                if (((cb.id != xa))) {\n                    if (((ab && cb.fragile))) {\n                        bb.push(ab);\n                        ab = null;\n                    }\n                ;\n                ;\n                    bb.push(cb);\n                }\n            ;\n            ;\n            });\n            if (ab) {\n                bb.push(ab);\n            }\n        ;\n        ;\n            u = bb;\n            ea.log(\"make_permanent\", {\n                tabs: JSON.stringify(u),\n                tab_id: xa,\n                window_id: r.getSessionID()\n            });\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function ua(xa) {\n        var ya = pa(xa);\n        if (((xa == v))) {\n            v = null;\n        }\n    ;\n    ;\n        if (((ya != -1))) {\n            u.splice(ya, 1);\n            ea.log(\"close_tab\", {\n                tabs: JSON.stringify(u),\n                JSBNG__closed: xa,\n                window_id: r.getSessionID()\n            });\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    q.registerStateStorer(ha);\n    q.registerStateLoader(function(xa) {\n        if (ia(xa)) {\n            ma();\n        }\n    ;\n    ;\n    });\n    function va() {\n    \n    };\n;\n    t(va, h, {\n        indexOf: function(xa) {\n            return pa(xa);\n        },\n        getTab: function(xa) {\n            l.isThreadID(xa);\n            var ya = this.indexOf(xa);\n            if (((ya > -1))) {\n                var za = u[ya];\n                return t({\n                }, za);\n            }\n        ;\n        ;\n            return null;\n        },\n        getEmptyTab: function() {\n            for (var xa = 0; ((xa < u.length)); xa++) {\n                var ya = u[xa].id;\n                if (n.isNewEmptyLocalThread(ya)) {\n                    return ya;\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        getServerTime: function() {\n            return z();\n        },\n        closeAllTabs: function() {\n            if (u.length) {\n                ea.log(\"close_all_tabs\", {\n                    closed_tabs: JSON.stringify(u),\n                    window_id: r.getSessionID()\n                });\n                u = [];\n                v = null;\n                if (x) {\n                    x = {\n                    };\n                }\n            ;\n            ;\n                na();\n                ma();\n            }\n        ;\n        ;\n        },\n        closeFragileTabs: function() {\n            var xa = [];\n            for (var ya = 0; ((ya < u.length)); ya++) {\n                if (((u[ya].fragile && !n.isNewEmptyLocalThread(u[ya].id)))) {\n                    xa.push(u[ya]);\n                    u.splice(ya);\n                    ma();\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n            ea.log(\"close_fragile_tabs\", {\n                tabs: JSON.stringify(u),\n                fragile_closed: xa,\n                window_id: r.getSessionID()\n            });\n        },\n        closeTab: function(xa, ya) {\n            l.isThreadID(xa);\n            var za = false;\n            if (x) {\n                delete x[xa];\n                za = true;\n            }\n        ;\n        ;\n            la(function() {\n                if (ua(xa)) {\n                    za = true;\n                }\n            ;\n            ;\n                return za;\n            }, undefined, ya);\n        },\n        closeTabAndDemote: function(xa, ya, za) {\n            l.isThreadID(xa);\n            var ab = false;\n            if (x) {\n                delete x[xa];\n                ab = true;\n            }\n        ;\n        ;\n            la(function() {\n                if (ua(xa)) {\n                    if (v) {\n                        var bb = pa(v);\n                        if (((bb > ya))) {\n                            var cb = u.splice(bb, 1)[0];\n                            u.splice(ya, 0, cb);\n                            v = null;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    ab = true;\n                }\n            ;\n            ;\n                return ab;\n            }, undefined, za);\n        },\n        raiseTab: function(xa, ya, za) {\n            l.isThreadID(xa);\n            var ab = false;\n            if (((x && ya))) {\n                x[xa] = true;\n                ab = true;\n            }\n        ;\n        ;\n            if (((!ya && ((xa === w))))) {\n                ((ab && ma()));\n                return;\n            }\n        ;\n        ;\n            la(function() {\n                if (qa(xa, za)) {\n                    ab = true;\n                }\n            ;\n            ;\n                var bb = pa(xa);\n                if (((((bb != -1)) && !u[bb].raised))) {\n                    u[bb].raised = true;\n                    ab = true;\n                    ea.log(\"raise_tab\", {\n                        tabs: JSON.stringify(u),\n                        raised: xa,\n                        window_id: r.getSessionID()\n                    });\n                }\n            ;\n            ;\n                return ab;\n            });\n        },\n        get: function() {\n            var xa = u.map(function(ya) {\n                var za = t({\n                }, ya);\n                delete za.fragile;\n                if (x) {\n                    za.raised = x[za.id];\n                }\n            ;\n            ;\n                return za;\n            });\n            return {\n                tabs: xa,\n                promoted: v\n            };\n        },\n        openFragileTab: function(xa) {\n            l.isThreadID(xa);\n            if (ra(xa)) {\n                ma();\n            }\n        ;\n        ;\n        },\n        openTab: function(xa) {\n            l.isThreadID(xa);\n            la(qa.curry(xa));\n        },\n        lowerTab: function(xa) {\n            l.isThreadID(xa);\n            var ya = false;\n            if (x) {\n                delete x[xa];\n                ya = true;\n            }\n        ;\n        ;\n            la(function() {\n                var za = pa(xa);\n                if (((((za != -1)) && u[za].raised))) {\n                    delete u[za].raised;\n                    ea.log(\"lower_tab\", {\n                        tabs: JSON.stringify(u),\n                        lowered: xa,\n                        window_id: r.getSessionID()\n                    });\n                    ya = true;\n                }\n            ;\n            ;\n                return ya;\n            });\n        },\n        raiseAndPromoteTab: function(xa, ya, za, ab, bb) {\n            l.isThreadID(xa);\n            var cb = false;\n            if (((x && ya))) {\n                x[xa] = true;\n                cb = true;\n            }\n        ;\n        ;\n            if (((!ya && ((xa === w))))) {\n                ((cb && ma()));\n                return;\n            }\n        ;\n        ;\n            la(function() {\n                if (qa(xa, za)) {\n                    cb = true;\n                }\n            ;\n            ;\n                var db = pa(xa);\n                if (((((db != -1)) && ((!u[db].raised || ((v != xa))))))) {\n                    u[db].raised = true;\n                    v = xa;\n                    cb = true;\n                    ea.log(\"raise_and_promote_tab\", {\n                        tabs: JSON.stringify(u),\n                        promoted: xa,\n                        window_id: r.getSessionID()\n                    });\n                }\n            ;\n            ;\n                return cb;\n            }, ab, bb);\n        },\n        promoteThreadInPlaceOfThread: function(xa, ya) {\n            l.isThreadID(xa);\n            l.isThreadID(ya);\n            la(function() {\n                var za = pa(xa), ab = pa(ya);\n                if (((v === ya))) {\n                    v = xa;\n                }\n            ;\n            ;\n                var bb = u[za];\n                u[za] = u[ab];\n                u[ab] = bb;\n                return true;\n            });\n        },\n        squelchTab: function(xa) {\n            l.isThreadID(xa);\n            w = xa;\n            this.lowerTab(xa);\n            ea.log(\"squelch_tab\", {\n                squelched: xa,\n                tabs: JSON.stringify(u),\n                window_id: r.getSessionID()\n            });\n        },\n        clearSquelchedTab: function() {\n            if (w) {\n                ea.log(\"unsquelch_tab\", {\n                    squelched: w,\n                    tabs: JSON.stringify(u),\n                    window_id: r.getSessionID()\n                });\n            }\n        ;\n        ;\n            w = null;\n        },\n        persistLocalRaised: function() {\n            if (x) {\n                la(function() {\n                    var xa = false;\n                    u.forEach(function(ya) {\n                        if (((ya.raised != x[ya.id]))) {\n                            xa = true;\n                            if (x[ya.id]) {\n                                ya.raised = true;\n                            }\n                             else delete ya.raised;\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    });\n                    return xa;\n                });\n                ea.log(\"persist_local_raise\", {\n                    tabs: JSON.stringify(u),\n                    window_id: r.getSessionID()\n                });\n            }\n        ;\n        ;\n        }\n    });\n    g.subscribe(k.DUMP_EVENT, function(xa, ya) {\n        ya.chat_tabs = {\n            promoted: v,\n            tabs: u.map(function(za) {\n                return t({\n                }, za);\n            }),\n            time: ca,\n            max_load_age: aa\n        };\n    });\n    function wa() {\n        var xa = i.ignoresRemoteTabRaise();\n        if (((xa && !x))) {\n            ea.log(\"start_ignore_remote_raise\");\n            x = {\n            };\n            ma();\n        }\n         else if (((!xa && x))) {\n            ea.log(\"stop_ignore_remote_raise\");\n            x = null;\n            ma();\n        }\n        \n    ;\n    ;\n    };\n;\n    i.subscribe(i.ON_CHANGED, wa);\n    wa();\n    ia(q.getInitial(), true);\n    if (((ca === 0))) {\n        ca = ((z() - 600000));\n    }\n;\n;\n    fa = true;\n    e.exports = va;\n});\n__d(\"VideoCallPromo\", [\"ArbiterMixin\",\"AsyncRequest\",\"ChatConfig\",\"ChatVisibility\",\"LegacyContextualDialog\",\"CSS\",\"MercuryParticipants\",\"MercuryThreads\",\"ChatTabTemplates\",\"VideoCallCore\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"ChatConfig\"), j = b(\"ChatVisibility\"), k = b(\"LegacyContextualDialog\"), l = b(\"CSS\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryThreads\").get(), o = b(\"ChatTabTemplates\"), p = b(\"VideoCallCore\"), q = b(\"copyProperties\"), r = b(\"emptyFunction\");\n    function s() {\n        this._dialog = null;\n    };\n;\n    function t(v) {\n        if (!((p.isSupported() && i.get(\"video.show_promo\")))) {\n            return false;\n        }\n    ;\n    ;\n        var w = n.getCanonicalUserInThread(v);\n        if (!w) {\n            return false;\n        }\n    ;\n    ;\n        return ((j.isOnline() && p.availableForCall(w)));\n    };\n;\n    function u(v) {\n        new h().setURI(\"/ajax/chat/video/log_promo.php\").setData({\n            viewedUserID: v\n        }).setAllowCrossPageTransition(true).setErrorHandler(r).send();\n    };\n;\n    q(s.prototype, g);\n    q(s.prototype, {\n        render: function(v, w) {\n            var x = t(w);\n            if (!x) {\n                return;\n            }\n        ;\n        ;\n            var y = n.getCanonicalUserInThread(w);\n            m.get(((\"fbid:\" + y)), function(z) {\n                if (!z.call_promo) {\n                    return;\n                }\n            ;\n            ;\n                var aa = o[\":fb:mercury:call:promo\"].build();\n                this._dialog = new k();\n                this._dialog.init(aa.getRoot()).setWidth(250).setAlignH(\"center\").setContext(v).show();\n                l.addClass(this._dialog.getRoot(), \"uiContextualDialogWithFooterArrowBottom\");\n                l.addClass(v, \"video_call_promo\");\n                u(n.getCanonicalUserInThread(w));\n                this.inform(\"chat/dialog-rendered\", {\n                    dialog: this,\n                    thread_id: w\n                });\n            }.bind(this));\n        },\n        updatePosition: function() {\n            if (((this._dialog && this._dialog.isShown()))) {\n                this._dialog.updatePosition();\n            }\n        ;\n        ;\n        },\n        hide: function() {\n            if (((this._dialog && this._dialog.isShown()))) {\n                this._dialog.hide();\n                this._dialog = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = s;\n});\n__d(\"VideoCallTourDialog\", [\"ArbiterMixin\",\"LegacyContextualDialog\",\"CSS\",\"MercuryThreads\",\"ChatTabTemplates\",\"VideoCallCore\",\"VideoCallingTour\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"LegacyContextualDialog\"), i = b(\"CSS\"), j = b(\"MercuryThreads\").get(), k = b(\"ChatTabTemplates\"), l = b(\"VideoCallCore\"), m = b(\"VideoCallingTour\"), n = b(\"copyProperties\");\n    function o() {\n        this._dialog = null;\n    };\n;\n    n(o.prototype, g);\n    n(o.prototype, {\n        render: function(p, q) {\n            var r = j.getCanonicalUserInThread(q);\n            if (((!r || !l.availableForCall(r)))) {\n                return;\n            }\n        ;\n        ;\n            var s = k[\":fb:mercury:call:tour\"].build();\n            this._dialog = new h();\n            this._dialog.init(s.getRoot()).setWidth(250).setAlignH(\"center\").setContext(p).show();\n            i.addClass(this._dialog.getRoot(), \"uiContextualDialogWithFooterArrowBottom\");\n            i.addClass(p, \"video_call_tour\");\n            this.inform(\"chat/dialog-rendered\", {\n                dialog: this,\n                thread_id: q\n            });\n            m.inform(\"videocallingtour/end\");\n        },\n        updatePosition: function() {\n            if (((this._dialog && this._dialog.isShown()))) {\n                this._dialog.updatePosition();\n            }\n        ;\n        ;\n        },\n        hide: function() {\n            if (((this._dialog && this._dialog.isShown()))) {\n                this._dialog.hide();\n                this._dialog = null;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = o;\n});\n__d(\"ChatContextualDialogController\", [\"JSBNG__Event\",\"ArbiterMixin\",\"ChatTabModel\",\"VideoCallingTour\",\"VideoCallPromo\",\"VideoCallTourDialog\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"ChatTabModel\"), j = b(\"VideoCallingTour\"), k = b(\"VideoCallPromo\"), l = b(\"VideoCallTourDialog\"), m = b(\"copyProperties\"), n = b(\"setTimeoutAcrossTransitions\"), o = 60000, p = false, q = false, r = function(y, z) {\n        this._videoCallPromo = new k();\n        this._videoCallTour = new l();\n        this._threadID = y;\n        this._tabMainElement = z;\n        this._openDialog = null;\n        this._subscriptionTokens = [];\n        this._scrollListener = null;\n        this._timeout = null;\n    };\n    function s(y, JSBNG__event, z) {\n        if (y._openDialog) {\n            y._openDialog.updatePosition();\n        }\n    ;\n    ;\n    };\n;\n    function t(y) {\n        if (y._openDialog) {\n            y._openDialog.updatePosition();\n        }\n    ;\n    ;\n    };\n;\n    function u(y) {\n        if (y._openDialog) {\n            y._openDialog.hide();\n            y._openDialog = null;\n        }\n    ;\n    ;\n        if (y._timeout) {\n            JSBNG__clearTimeout(y._timeout);\n            y._timeout = null;\n        }\n    ;\n    ;\n        while (y._subscriptionTokens.length) {\n            y._subscriptionTokens.pop().unsubscribe();\n        ;\n        };\n    ;\n        if (y._scrollListener) {\n            y._scrollListener.remove();\n            y._scrollListener = null;\n        }\n    ;\n    ;\n    };\n;\n    function v(y, JSBNG__event, z) {\n        if (((z.thread_id === y._threadID))) {\n            y._openDialog = z.dialog;\n            p = true;\n            x(y);\n            y._timeout = n(y.destroy.bind(y, y._threadID), o);\n            y._scrollListener = g.listen(window, \"JSBNG__scroll\", t.curry(y));\n        }\n    ;\n    ;\n    };\n;\n    function w(y, z) {\n        if (!y._openDialog) {\n            y._subscriptionTokens.push(z.subscribe(\"chat/dialog-rendered\", v.curry(y)));\n            z.render(y._tabMainElement, y._threadID);\n        }\n    ;\n    ;\n    };\n;\n    function x(y) {\n        y._subscriptionTokens.push(i.subscribe(\"chat/tabs-changed\", s.curry(y)), r.subscribe(\"dialog/close-all\", u.curry(y)));\n    };\n;\n    m(r, h);\n    m(r.prototype, {\n        destroy: function() {\n            u(this);\n        },\n        tabFocused: function() {\n            if (q) {\n                w(this, this._videoCallTour);\n                return;\n            }\n        ;\n        ;\n            if (!p) {\n                w(this, this._videoCallPromo);\n            }\n        ;\n        ;\n        },\n        tabNotActive: function() {\n            u(this);\n        },\n        hideVideoCallouts: function() {\n            u(this);\n        }\n    });\n    j.subscribe(\"videocallingtour/start\", function() {\n        q = true;\n        r.inform(\"dialog/close-all\");\n    });\n    j.subscribe(\"videocallingtour/end\", function() {\n        q = false;\n    });\n    e.exports = r;\n});\n__d(\"ChatPrivacyActionController\", [\"ChatVisibility\",\"JSLogger\",\"PresencePrivacy\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatVisibility\"), h = b(\"JSLogger\"), i = b(\"PresencePrivacy\"), j = b(\"copyProperties\"), k = function(l, m) {\n        this._userID = l;\n        this._logger = h.create(\"blackbird\");\n        this._getState = function() {\n            if (g.isOnline()) {\n                return ((i.allows(this._userID) ? k.NORMAL : k.BLOCKED));\n            }\n        ;\n        ;\n            return k.OFFLINE;\n        };\n        this._togglePrivacy = function() {\n            var n = this._getState();\n            switch (this._getState()) {\n              case k.OFFLINE:\n                if (g.isOnline()) {\n                    this._logger.error(\"tabs_already_online\");\n                    break;\n                }\n            ;\n            ;\n                this._logger.log(\"tabs_go_online\", {\n                    tab_id: this._userID\n                });\n                g.goOnline(function() {\n                    if (!i.allows(this._userID)) {\n                        if (((this._getState() !== k.BLOCKED))) {\n                            this._logger.error(\"privacy_action_controller_blocked_inconsistency\");\n                        }\n                    ;\n                    ;\n                        this._togglePrivacy();\n                    }\n                ;\n                ;\n                }.bind(this));\n                break;\n              case k.BLOCKED:\n                i.allow(this._userID);\n                this._logger.log(\"tabs_unblock\", {\n                    tab_id: this._userID\n                });\n                break;\n              case k.NORMAL:\n                i.disallow(this._userID);\n                this._logger.log(\"tabs_block\", {\n                    tab_id: this._userID\n                });\n                break;\n            };\n        ;\n        };\n        (function() {\n            var n = function() {\n                ((m && m(this._getState())));\n            }.bind(this);\n            n();\n            this._subscribeToken = i.subscribe(\"privacy-changed\", n);\n        }.bind(this)).defer();\n    };\n    k.OFFLINE = \"offline\";\n    k.BLOCKED = \"blocked\";\n    k.NORMAL = \"normal\";\n    j(k.prototype, {\n        togglePrivacy: function() {\n            this._logger.log(\"gear_menu_toggle_privacy\", {\n                tab_id: this._userID\n            });\n            this._togglePrivacy();\n        },\n        destroy: function() {\n            i.unsubscribe(this._subscribeToken);\n        }\n    });\n    e.exports = k;\n});\n__d(\"MercuryTypingIndicator\", [\"Animation\",\"CSS\",\"DOM\",\"MercuryTypingReceiver\",\"MercuryParticipants\",\"Style\",\"ChatTabTemplates\",\"MercuryThreadInformer\",\"Tooltip\",\"copyProperties\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MercuryTypingReceiver\"), k = b(\"MercuryParticipants\"), l = b(\"Style\"), m = b(\"ChatTabTemplates\"), n = b(\"MercuryThreadInformer\").get(), o = b(\"Tooltip\"), p = b(\"copyProperties\"), q = b(\"cx\"), r = b(\"tx\"), s = [];\n    n.subscribe(\"messages-received\", function(v, w) {\n        s.forEach(function(x) {\n            var y = w[x._threadID];\n            ((y && x.receivedMessages(y)));\n        });\n    });\n    j.subscribe(\"state-changed\", function(v, w) {\n        s.forEach(function(x) {\n            var y = w[x._threadID];\n            ((y && x._handleStateChanged(y)));\n        });\n    });\n    function t(v) {\n        var w = m[\":fb:chat:conversation:message-group\"].build(), x = m[\":fb:mercury:typing-indicator:typing\"].build();\n        h.addClass(w.getRoot(), \"_50kd\");\n        var y = w.getNode(\"profileLink\");\n        o.set(y, v.JSBNG__name, \"left\");\n        y.href = v.href;\n        w.setNodeContent(\"profileName\", v.JSBNG__name);\n        w.setNodeProperty(\"profilePhoto\", \"src\", v.image_src);\n        var z = r._(\"{name} is typing...\", {\n            JSBNG__name: v.short_name\n        });\n        o.set(x.getRoot(), z, \"above\");\n        i.appendContent(w.getNode(\"messages\"), x.getRoot());\n        return w;\n    };\n;\n    function u(v, w, x) {\n        this._animations = {\n        };\n        this._activeUsers = {\n        };\n        this._typingIndicator = w;\n        this._messagesView = x;\n        this._threadID = v;\n        this._subscription = j.subscribe(\"state-changed\", function(y, z) {\n            var aa = z[this._threadID];\n            ((aa && this._handleStateChanged(aa)));\n        }.bind(this));\n        s.push(this);\n    };\n;\n    p(u.prototype, {\n        destroy: function() {\n            Object.keys(this._activeUsers).forEach(this._removeUserBubble.bind(this));\n            this._controller.destroy();\n            s.remove(this);\n        },\n        receivedMessages: function(v) {\n            v.forEach(function(w) {\n                if (!k.isAuthor(w.author)) {\n                    this._removeUserBubble(w.author);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _handleStateChanged: function(v) {\n            {\n                var fin237keys = ((window.top.JSBNG_Replay.forInKeys)((this._activeUsers))), fin237i = (0);\n                var w;\n                for (; (fin237i < fin237keys.length); (fin237i++)) {\n                    ((w) = (fin237keys[fin237i]));\n                    {\n                        if (((v.indexOf(w) === -1))) {\n                            this._slideOutUserBubble(w);\n                            delete this._activeUsers[w];\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (v.length) {\n                k.getMulti(v, function(x) {\n                    var y = this._messagesView.isScrolledToBottom(), z = {\n                    };\n                    {\n                        var fin238keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin238i = (0);\n                        var aa;\n                        for (; (fin238i < fin238keys.length); (fin238i++)) {\n                            ((aa) = (fin238keys[fin238i]));\n                            {\n                                var ba = this._activeUsers[aa];\n                                z[aa] = ((ba || t(x[aa]).getRoot()));\n                                if (!ba) {\n                                    i.appendContent(this._typingIndicator, z[aa]);\n                                }\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    var ca = ((Object.keys(z).length > 0));\n                    ((y && this._messagesView.scrollToBottom(ca)));\n                    this._activeUsers = z;\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _removeUserBubble: function(v, w) {\n            var x = this._getCurrentAnimation(v, w);\n            if (x) {\n                x.animation.JSBNG__stop();\n                i.remove(x.elem);\n                delete this._animations[v];\n            }\n        ;\n        ;\n            if (((v in this._activeUsers))) {\n                i.remove(this._activeUsers[v]);\n                delete this._activeUsers[v];\n            }\n        ;\n        ;\n            ((w && i.remove(w)));\n        },\n        _slideOutUserBubble: function(v) {\n            var w = this._activeUsers[v];\n            if (this._getCurrentAnimation(v, w)) {\n                return;\n            }\n             else if (w) {\n                l.set(w, \"overflow\", \"hidden\");\n                var x = (new g(w)).from(\"opacity\", 1).from(\"height\", w.offsetHeight).to(\"height\", 0).to(\"opacity\", 0).ease(g.ease.end).duration(250).ondone(this._removeUserBubble.bind(this, v, w)).go();\n                this._animations[v] = {\n                    animation: x,\n                    elem: w\n                };\n            }\n            \n        ;\n        ;\n        },\n        _getCurrentAnimation: function(v, w) {\n            if (((this._animations[v] && ((!w || ((this._animations[v].elem === w))))))) {\n                return this._animations[v];\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = u;\n});\n__d(\"ChatTabMessagesView\", [\"JSXDOM\",\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"MercuryAttachment\",\"MercuryAttachmentRenderer\",\"ChannelConstants\",\"ChatConfig\",\"ChatVisibility\",\"createArrayFrom\",\"CSS\",\"DOM\",\"Env\",\"JSBNG__Event\",\"JoinableConversationMessageFilter\",\"LiveTimer\",\"MercuryActionTypeConstants\",\"MercuryAPIArgsSource\",\"MercuryLastMessageIndicator\",\"MercuryLogMessageType\",\"MercurySourceType\",\"shield\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreadMetadataRawRenderer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreads\",\"MercuryThreadlistConstants\",\"MercuryTypingIndicator\",\"MercuryMessageRenderer\",\"Parent\",\"MercuryParticipants\",\"React\",\"ServerTime\",\"MercuryStatusTemplates\",\"Style\",\"ChatTabTemplates\",\"MercuryThreadInformer\",\"Timestamp.react\",\"Tooltip\",\"VideoCallCore\",\"copyProperties\",\"csx\",\"cx\",\"formatDate\",\"isRTL\",\"removeFromArray\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"ArbiterMixin\"), k = b(\"MercuryAttachment\"), l = b(\"MercuryAttachmentRenderer\"), m = b(\"ChannelConstants\"), n = b(\"ChatConfig\"), o = b(\"ChatVisibility\"), p = b(\"createArrayFrom\"), q = b(\"CSS\"), r = b(\"DOM\"), s = b(\"Env\"), t = b(\"JSBNG__Event\"), u = b(\"JoinableConversationMessageFilter\"), v = b(\"LiveTimer\"), w = b(\"MercuryActionTypeConstants\"), x = b(\"MercuryAPIArgsSource\"), y = b(\"MercuryLastMessageIndicator\"), z = b(\"MercuryLogMessageType\"), aa = b(\"MercurySourceType\"), ba = b(\"shield\"), ca = b(\"MercuryMessages\").get(), da = b(\"MercuryServerRequests\").get(), ea = b(\"MercuryThreadMetadataRawRenderer\"), fa = b(\"MercuryThreadMetadataRenderer\").get(), ga = b(\"MercuryThreads\").get(), ha = b(\"MercuryThreadlistConstants\"), ia = b(\"MercuryTypingIndicator\"), ja = b(\"MercuryMessageRenderer\"), ka = b(\"Parent\"), la = b(\"MercuryParticipants\"), ma = b(\"React\"), na = b(\"ServerTime\"), oa = b(\"MercuryStatusTemplates\"), pa = b(\"Style\"), qa = b(\"ChatTabTemplates\"), ra = b(\"MercuryThreadInformer\").get(), sa = b(\"Timestamp.react\"), ta = b(\"Tooltip\"), ua = b(\"VideoCallCore\"), va = b(\"copyProperties\"), wa = b(\"csx\"), xa = b(\"cx\"), ya = b(\"formatDate\"), za = b(\"isRTL\"), ab = b(\"removeFromArray\"), bb = b(\"throttle\"), cb = b(\"tx\"), db, eb = 34, fb = ((((1000 * 60)) * 60)), gb = 70, hb = null, ib = 20;\n    function jb(tb) {\n        return ya(new JSBNG__Date(tb), ((n.get(\"24h_times\") ? \"H:i\" : \"g:ia\")));\n    };\n;\n    function kb(tb) {\n        var ub = qa[\":fb:chat:conversation:message-group\"].build(), vb = ub.getNode(\"profileLink\"), wb = n.get(\"chat_tab_bubbles\"), xb = la.isAuthor(tb.author), yb = da.tokenizeThreadID(tb.thread_id), zb = ((yb.type !== \"user\")), ac = ((!xb || !wb));\n        if (!wb) {\n            ub.setNodeContent(\"timestamp\", jb(tb.timestamp));\n        }\n    ;\n    ;\n        q.conditionClass(ub.getRoot(), \"_50kd\", ((!xb && wb)));\n        q.conditionClass(ub.getRoot(), \"_50x4\", ((((zb && !xb)) && wb)));\n        q.conditionShow(vb, ac);\n        la.get(tb.author, function(bc) {\n            if (ac) {\n                vb.href = bc.href;\n                var cc = ((xb ? \"You\" : bc.JSBNG__name));\n                if (((!xb && wb))) {\n                    cc = g.div({\n                        className: \"_522l\"\n                    }, g.div({\n                        className: \"_522m\"\n                    }, jb(tb.timestamp)), bc.JSBNG__name);\n                }\n            ;\n            ;\n                ta.set(vb, cc, \"left\");\n                if (((((!xb && wb)) && zb))) {\n                    ub.setNodeContent(\"profileName\", bc.JSBNG__name);\n                }\n            ;\n            ;\n                ub.setNodeProperty(\"profilePhoto\", \"src\", bc.image_src);\n            }\n        ;\n        ;\n        });\n        return ub;\n    };\n;\n    function lb(tb) {\n        var ub = qa[\":fb:chat:conversation:message:event\"].build(), vb = n.get(\"chat_tab_bubbles\"), wb = jb(tb.timestamp);\n        if (vb) {\n            ub.getRoot().setAttribute(\"title\", wb);\n        }\n         else ub.setNodeContent(\"timestamp\", wb);\n    ;\n    ;\n        ja.renderLogMessage(ub.getNode(\"icon\"), ub.getNode(\"message\"), ub.getNode(\"attachment\"), tb);\n        var xb = nb(tb);\n        if (xb) {\n            r.appendContent(ub.getNode(\"message\"), xb);\n        }\n    ;\n    ;\n        return ub.getRoot();\n    };\n;\n    function mb(tb, ub) {\n        if (!n.get(\"chat_tab_bubbles\")) {\n            return;\n        }\n    ;\n    ;\n        if (((hb === null))) {\n            var vb = ub.childNodes[0];\n            pa.set(ub, \"overflow\", \"JSBNG__scroll\");\n            hb = ((vb.clientWidth - gb));\n            pa.set(ub, \"overflow\", \"\");\n        }\n    ;\n    ;\n        if (!q.hasClass(tb, \"_kso\")) {\n            var wb = r.scry(tb, \"._kso\");\n            if (((wb.length === 1))) {\n                tb = wb[0];\n            }\n             else return\n        ;\n        }\n    ;\n    ;\n        pa.set(tb, \"max-width\", ((hb + \"px\")));\n        var xb, yb, zb = tb.firstChild;\n        if (((((tb.childNodes.length === 1)) && zb.getAttribute(\"data-measureme\")))) {\n            xb = zb.getClientRects();\n            var ac = zb.offsetHeight;\n            if (((((xb && ((xb.length > 1)))) && ((xb[0].height < ac))))) {\n                yb = true;\n                if (!db) {\n                    r.remove(zb);\n                    db = tb.offsetWidth;\n                    r.appendContent(tb, zb);\n                }\n            ;\n            ;\n                var bc = zb.offsetWidth, cc = ((((tb.offsetWidth - bc)) - db));\n                if (((cc > 0))) {\n                    pa.set(tb, \"max-width\", ((bc + \"px\")));\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        var dc = ka.byClass(tb, \"_50x4\");\n        if (dc) {\n            q.conditionClass(dc, \"_51lo\", ((xb ? !yb : ((tb.offsetHeight < eb)))));\n        }\n    ;\n    ;\n    };\n;\n    function nb(tb) {\n        var ub, vb;\n        if (((tb.log_message_type == z.VIDEO_CALL))) {\n            if (((tb.log_message_data.event_name == \"install_canceled\"))) {\n                ub = r.tx._(\"Retry setup and call back.\");\n                vb = \"callback_cancelinstall_link\";\n                return ob(ub, tb.thread_id, tb.log_message_data.to, vb);\n            }\n             else if (((((!tb.log_message_data.event_name && ((tb.log_message_data.callee == la.user)))) && !tb.log_message_data.answered))) {\n                ub = r.tx._(\"Call Back\");\n                vb = \"callback_link\";\n                return ob(ub, tb.thread_id, tb.log_message_data.caller.split(\":\")[1], vb);\n            }\n            \n        ;\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function ob(tb, ub, vb, wb) {\n        if (ua.isSupported()) {\n            var xb = ((!o.isOnline() || !ua.availableForCall(vb))), yb = r.create(\"a\", {\n                href: \"#\",\n                className: \"callBackLink\"\n            }, tb);\n            if (xb) {\n                q.hide(yb);\n            }\n        ;\n        ;\n            yb.setAttribute(\"data-gt\", JSON.stringify({\n                videochat: \"clicked_callback_link\"\n            }));\n            t.listen(yb, \"click\", function() {\n                rb.inform(\"video-call-clicked\", {\n                    userID: vb,\n                    threadID: ub,\n                    clickSource: wb\n                });\n            });\n            return yb;\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function pb(tb) {\n        var ub = qa[\":fb:mercury:chat:message:forward\"].build(), vb = ub.getNode(\"forwardText\");\n        if (vb) {\n            q.hide(ub.getRoot());\n            fa.renderTitanLink(tb.thread_id, ub.getNode(\"forwardLink\"), q.show.bind(q, ub.getRoot()));\n            if (((tb.forward_count > 1))) {\n                r.appendContent(vb, cb._(\"{count} forwarded messages\", {\n                    count: tb.forward_count\n                }));\n            }\n             else r.appendContent(vb, \"1 forwarded message\");\n        ;\n        ;\n        }\n    ;\n    ;\n        return ub.getRoot();\n    };\n;\n    var qb = [];\n    function rb(tb, ub, vb, wb, xb, yb, zb) {\n        this.loadingIcon = xb;\n        this.threadID = tb;\n        this.sheetController = ub;\n        this.scrollContainer = vb;\n        this.conversationElem = wb;\n        this.messageElements = {\n        };\n        this.messageGroup = null;\n        this.prevMessage = null;\n        v.restart(((na.get() / 1000)));\n        this._fetchMultiplier = 1;\n        this._oldestMessageDisplayedTimestamp = null;\n        this._loadingMoreMessages = false;\n        this._currentMessageCount = 0;\n        this._hasReachedClearedMessages = false;\n        var ac = ha.MESSAGE_TIMESTAMP_THRESHOLD;\n        this._oldestMessageDisplayedTimestamp = ((JSBNG__Date.now() - ac));\n        qb.push(this);\n        this._subscription = i.subscribe(\"overflow-applied-to-body\", this.scrollToBottom.bind(this));\n        t.listen(this.scrollContainer, \"JSBNG__scroll\", bb(this.scrolling, 50, this));\n        var bc = n.get(\"chat_tab_bubbles\");\n        this.lastMessageIndicator = new y(this.threadID, yb, bc, this);\n        if (bc) {\n            this.typingIndicator = new ia(this.threadID, zb, this);\n        }\n    ;\n    ;\n        ca.getThreadMessagesRange(this.threadID, 0, ha.RECENT_MESSAGES_LIMIT, this._updateTimestamp.bind(this));\n        this.rerender();\n    };\n;\n    va(rb, j);\n    va(rb.prototype, {\n        scrolling: function() {\n            if (((((((!this._loadingMoreMessages && this.isScrolledNearTop())) && !this.isScrolledToBottom())) && !this._hasReachedClearedMessages))) {\n                this.loadMoreMessages();\n            }\n        ;\n        ;\n            if (!this._newMessagesSheetOpened) {\n                return;\n            }\n        ;\n        ;\n            if (this.isScrolledToBottom()) {\n                this.sheetController.closeNewMessagesSheet();\n                this._newMessagesSheetOpened = false;\n            }\n        ;\n        ;\n        },\n        destroy: function() {\n            r.empty(this.conversationElem);\n            this._subscription.unsubscribe();\n            ab(qb, this);\n            ((this.lastMessageIndicator && this.lastMessageIndicator.destroy()));\n            this.destroyed = true;\n        },\n        _appendMessage: function(tb) {\n            if (((tb == this.prevMessage))) {\n                return;\n            }\n        ;\n        ;\n            var ub = ha, vb = ub.GROUPING_THRESHOLD, wb = ((((tb.action_type == w.LOG_MESSAGE)) && ((tb.log_message_type == z.SERVER_ERROR))));\n            if (tb.is_cleared) {\n                this._hasReachedClearedMessages = true;\n                return;\n            }\n        ;\n        ;\n            var xb;\n            if (((this.prevMessage !== null))) {\n                xb = ((tb.timestamp - this.prevMessage.timestamp));\n            }\n             else xb = Infinity;\n        ;\n        ;\n            if (((!wb && ((xb >= fb))))) {\n                var yb = Math.round(((tb.timestamp / 1000))), zb = tb.timestamp_datetime, ac = qa[\":fb:chat:conversation:date-break\"].build();\n                ma.renderComponent(sa({\n                    time: yb,\n                    verbose: zb,\n                    text: zb\n                }), ac.getNode(\"date\"));\n                r.appendContent(this.conversationElem, ac.getRoot());\n                this.messageGroup = null;\n            }\n        ;\n        ;\n            if (((tb.action_type == w.LOG_MESSAGE))) {\n                r.appendContent(this.conversationElem, lb(tb));\n                this.messageGroup = null;\n                this.prevMessage = tb;\n                return;\n            }\n        ;\n        ;\n            var bc = n.get(\"chat_tab_bubbles\");\n            if (((((((!this.messageGroup || ((bc && ((tb.author !== la.user)))))) || ((this.prevMessage.author != tb.author)))) || ((this.prevMessage.timestamp < ((tb.timestamp - vb))))))) {\n                this.messageGroup = kb(tb);\n                r.appendContent(this.conversationElem, this.messageGroup.getRoot());\n            }\n        ;\n        ;\n            var cc = this._makeSingleMessage(tb);\n            this.messageElements[tb.message_id] = cc;\n            r.appendContent(this.messageGroup.getNode(\"messages\"), cc);\n            mb(cc, this.scrollContainer);\n            this.prevMessage = tb;\n        },\n        rerender: function() {\n            if (!this._oldestMessageDisplayedTimestamp) {\n                return;\n            }\n        ;\n        ;\n            var tb = ((this._finishedFetchingMoreMessages && this.scrollContainer.scrollHeight)), ub = ((this._finishedFetchingMoreMessages && this.scrollContainer.scrollTop)), vb = this.isScrolledToBottom();\n            r.empty(this.conversationElem);\n            this.messageElements = {\n            };\n            this.messageGroup = null;\n            this.prevMessage = null;\n            var wb = ca.getThreadMessagesSinceTimestamp(this.threadID, this._oldestMessageDisplayedTimestamp);\n            this._renderOlderMessages(wb, tb, ub, vb);\n            this._finishedFetchingMoreMessages = false;\n        },\n        update: function(tb) {\n            {\n                var fin239keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin239i = (0);\n                var ub;\n                for (; (fin239i < fin239keys.length); (fin239i++)) {\n                    ((ub) = (fin239keys[fin239i]));\n                    {\n                        var vb = this.messageElements[ub];\n                        if (vb) {\n                            var wb = this.isScrolledToBottom(), xb = this._makeSingleMessage(ca.getMessagesFromIDs([ub,])[0]);\n                            this.messageElements[ub] = xb;\n                            r.replace(vb, xb);\n                            mb(xb, this.scrollContainer);\n                            if (wb) {\n                                this.scrollToBottom();\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        _getLoadingHeight: function() {\n            return ((this.loadingHeight || this.loadingIcon.clientHeight));\n        },\n        _appendMessages: function(tb) {\n            tb.forEach(this._appendMessage.bind(this));\n            ((this.lastMessageIndicator && this.lastMessageIndicator.setLastMessage(this.prevMessage)));\n        },\n        _appendNewMessages: function(tb) {\n            tb = u.filterMessages(function(wb) {\n                this.sheetController.openUserJoinStatusSheet(wb);\n            }.bind(this), tb, true);\n            var ub = this.isScrolledToBottom(), vb = this._messagesOnlySentFromSelf(tb);\n            this._appendMessages(tb);\n            if (ub) {\n                this.scrollToBottom();\n            }\n             else if (!vb) {\n                this.sheetController.openNewMessagesSheet();\n                this._newMessagesSheetOpened = true;\n            }\n            \n        ;\n        ;\n        },\n        _messagesOnlySentFromSelf: function(tb) {\n            for (var ub = 0; ((ub < tb.length)); ub++) {\n                if (((tb[ub].author !== la.user))) {\n                    return false;\n                }\n            ;\n            ;\n            };\n        ;\n            return true;\n        },\n        _renderOlderMessages: function(tb, ub, vb, wb) {\n            if (!tb) {\n                return;\n            }\n        ;\n        ;\n            tb = u.filterMessages(function(xb) {\n                this.sheetController.openUserJoinStatusSheet(xb);\n            }.bind(this), tb, false);\n            this._appendMessages(tb);\n            if (wb) {\n                this.scrollToBottom();\n            }\n             else if (this._finishedFetchingMoreMessages) {\n                this.scrollToPosition(((((((this.scrollContainer.scrollHeight - ub)) - this.loadingHeight)) + vb)));\n            }\n            \n        ;\n        ;\n        },\n        _updateTimestamp: function(tb) {\n            if (((tb && tb.length))) {\n                this._oldestMessageDisplayedTimestamp = tb[0].timestamp;\n                this._currentMessageCount = tb.length;\n            }\n        ;\n        ;\n            this._loadingMoreMessages = false;\n            this._finishedFetchingMoreMessages = true;\n            q.hide(this.loadingIcon);\n        },\n        isScrolledToBottom: function() {\n            var tb = this.scrollContainer;\n            return ((((tb.scrollTop + tb.clientHeight)) >= ((tb.scrollHeight - ib))));\n        },\n        isScrolledNearTop: function() {\n            return ((this.scrollContainer.scrollTop < this.scrollContainer.clientHeight));\n        },\n        scrollToBottom: function(tb) {\n            this.scrollToPosition(this.scrollContainer.scrollHeight, tb);\n        },\n        scrollToPosition: function(tb, ub) {\n            ((this._scrollTopAnimation && this._scrollTopAnimation.JSBNG__stop()));\n            if (((ub === true))) {\n                this._scrollTopAnimation = (new h(this.scrollContainer)).to(\"scrollTop\", tb).ease(h.ease.end).duration(400).go();\n            }\n             else this.scrollContainer.scrollTop = tb;\n        ;\n        ;\n        },\n        loadMoreMessages: function() {\n            if (((ca.hasLoadedExactlyNMessages(this.threadID, this._currentMessageCount) && ca.hasLoadedAllMessages(this.threadID)))) {\n                return;\n            }\n        ;\n        ;\n            if (ga.isNewEmptyLocalThread(this.threadID)) {\n                return;\n            }\n        ;\n        ;\n            q.show(this.loadingIcon);\n            this.loadingHeight = this._getLoadingHeight();\n            this._loadingMoreMessages = true;\n            if (((this._fetchMultiplier < 10))) {\n                this._fetchMultiplier += 1;\n            }\n        ;\n        ;\n            var tb = ((ha.RECENT_MESSAGES_LIMIT * this._fetchMultiplier)), ub = ((this._currentMessageCount + tb)), vb = ca.hasLoadedNMessages(this.threadID, ub);\n            ca.getThreadMessagesRange(this.threadID, 0, ub, this._updateTimestamp.bind(this), null, x.CHAT);\n            if (vb) {\n                this.rerender();\n            }\n        ;\n        ;\n        },\n        _makeSingleMessage: function(tb) {\n            var ub = this._renderSingleMessage(tb);\n            q.addClass(ub, \"_55r0\");\n            return ub;\n        },\n        _renderSingleMessage: function(tb) {\n            var ub = qa[\":fb:chat:conversation:message\"].render(), vb = n.get(\"chat_tab_bubbles\");\n            if (((vb && la.isAuthor(tb.author)))) {\n                ub.setAttribute(\"title\", jb(tb.timestamp));\n            }\n        ;\n        ;\n            if (tb.subject) {\n                var wb = qa[\":fb:chat:conversation:message:subject\"].render();\n                r.setContent(wb, tb.subject);\n                r.appendContent(ub, wb);\n            }\n        ;\n        ;\n            function xb(fc) {\n                if (vb) {\n                    fc = r.create(\"span\", {\n                        \"data-measureme\": 1\n                    }, fc);\n                }\n            ;\n            ;\n                return fc;\n            };\n        ;\n            if (tb.is_filtered_content) {\n                var yb = oa[\":fb:mercury:filtered-message\"].build();\n                r.appendContent(ub, xb(yb.getRoot()));\n                return ub;\n            }\n        ;\n        ;\n            if (((tb.body.substr(0, 4) == \"?OTR\"))) {\n                r.setContent(ub, xb(\"[encrypted message]\"));\n                q.addClass(ub, \"_542c\");\n            }\n             else {\n                q.addClass(ub, ((za(tb.body) ? \"direction_rtl\" : \"direction_ltr\")));\n                var zb = ja.formatMessageBody(tb.body);\n                r.appendContent(ub, xb(zb));\n            }\n        ;\n        ;\n            if (tb.has_attachment) {\n                var ac = g.div(null), bc = this._appendMessageAttachments(ac, tb);\n                if (((((vb && !tb.body)) && !bc))) {\n                    return ac;\n                }\n            ;\n            ;\n                r.appendContent(ub, p(ac.childNodes));\n            }\n        ;\n        ;\n            if (tb.forward_count) {\n                r.appendContent(ub, pb(tb));\n            }\n        ;\n        ;\n            if (tb.is_spoof_warning) {\n                var cc = qa[\":fb:chat:conversation:message:undertext\"].build();\n                r.appendContent(cc.getNode(\"message\"), ub);\n                la.get(tb.author, function(fc) {\n                    fa.renderChatSpoofWarning(cc.getNode(\"JSBNG__status\"), tb.is_spoof_warning, fc);\n                });\n                return cc.getRoot();\n            }\n        ;\n        ;\n            var dc = ea.renderStatusIndicator(tb.JSBNG__status, tb.error_data, ba(ca.resendMessage, ca, tb));\n            if (dc) {\n                var ec = qa[\":fb:chat:conversation:message:status\"].build();\n                r.appendContent(ec.getNode(\"message\"), ub);\n                r.appendContent(ec.getNode(\"JSBNG__status\"), dc);\n                return ec.getRoot();\n            }\n        ;\n        ;\n            return ub;\n        },\n        _appendMessageAttachments: function(tb, ub) {\n            var vb = 0, wb = ub.attachments;\n            wb.sort(l.booleanLexicographicComparator([l.isPhotoAttachment,l.isShareAttachment,l.isFileAttachment,l.isErrorAttachment,]));\n            if (((ub.raw_attachments && ((ub.raw_attachments.length > 0))))) {\n                wb = k.convertRaw(ub.raw_attachments);\n            }\n        ;\n        ;\n            var xb = l.renderPhotoAttachments(wb.filter(l.isPhotoAttachment), ub, 176, 4);\n            if (xb) {\n                r.appendContent(tb, xb);\n            }\n        ;\n        ;\n            for (var yb = 0; ((yb < wb.length)); yb++) {\n                if (l.isPhotoAttachment(wb[yb])) {\n                    vb = 1;\n                    continue;\n                }\n            ;\n            ;\n                var zb = l.renderAttachment(true, wb[yb], ub);\n                ((zb.error && r.appendContent(tb, zb.error)));\n                ((zb.JSBNG__content && r.appendContent(tb, zb.JSBNG__content)));\n                vb |= zb.bubblePreferred;\n            };\n        ;\n            var ac = r.scry(tb, \"img\");\n            ac.forEach(function(bc) {\n                t.listen(bc, \"load\", ba(this._thumbLoaded, this, bc));\n            }.bind(this));\n            return !!vb;\n        },\n        _thumbLoaded: function(tb) {\n            var ub = ((this.scrollContainer.scrollTop + this.scrollContainer.clientHeight));\n            if (((((ub + tb.offsetHeight)) >= this.scrollContainer.scrollHeight))) {\n                this.scrollToBottom();\n            }\n        ;\n        ;\n        }\n    });\n    ra.subscribe(\"messages-reordered\", function(tb, ub) {\n        qb.forEach(function(vb) {\n            ((ub[vb.threadID] && vb.rerender()));\n        });\n    });\n    ra.subscribe(\"messages-updated\", function(tb, ub) {\n        qb.forEach(function(vb) {\n            ((ub[vb.threadID] && vb.update(ub[vb.threadID])));\n        });\n    });\n    ra.subscribe(\"messages-received\", function(tb, ub) {\n        qb.forEach(function(vb) {\n            var wb = ub[vb.threadID];\n            if (((wb && wb.length))) {\n                vb._currentMessageCount += wb.length;\n            }\n        ;\n        ;\n            ((wb && vb._appendNewMessages(wb)));\n        });\n    });\n    i.subscribe(m.getArbiterType(\"chat_event\"), function(tb, ub) {\n        if (sb(ub.obj)) {\n            var vb = ((((s.user == ub.obj.from)) ? ub.obj.to : ub.obj.from)), wb = ga.getThreadIdForUser(vb), xb = qb.filter(function(ac) {\n                return ((ac.threadID === wb));\n            });\n            if (((xb.length > 0))) {\n                var yb = xb[0], zb = ca.constructLogMessageObject(aa.CHAT_WEB, wb, z.VIDEO_CALL, ub.obj);\n                zb.author = ((\"fbid:\" + ub.obj.from));\n                yb._appendNewMessages([zb,]);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    });\n    function sb(tb) {\n        return ((((tb.event_name === \"installing\")) || ((tb.event_name === \"install_canceled\"))));\n    };\n;\n    e.exports = rb;\n});\n__d(\"MercuryPeopleSuggestions\", [\"KeyedCallbackManager\",\"MercuryServerDispatcher\",\"OrderedFriendsList\",\"ShortProfiles\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = b(\"MercuryServerDispatcher\"), i = b(\"OrderedFriendsList\"), j = b(\"ShortProfiles\"), k = b(\"arrayContains\"), l = new g(), m = 6;\n    function n(s) {\n        return s.sort().join(\",\");\n    };\n;\n    function o(s, t) {\n        if (((s.length < m))) {\n            var u = i.getList();\n            for (var v = 0; ((v < u.length)); v++) {\n                if (!((k(s, u[v]) || k(t, u[v])))) {\n                    s.push(u[v]);\n                    if (((s.length >= m))) {\n                        break;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n    ;\n    ;\n        return s;\n    };\n;\n    function p(s) {\n        h.trySend(\"/ajax/chat/people_suggest.php\", s);\n    };\n;\n    function q(s, t, u) {\n        s = s.filter(function(w) {\n            return !k(t, w);\n        });\n        var v = o(s, t);\n        j.getMulti(v, function() {\n            u(v);\n        });\n    };\n;\n    var r = {\n        getPeopleSuggestions: function(s, t) {\n            if (s) {\n                if (s.length) {\n                    var u = n(s), v = l.executeOrEnqueue(u, function(x) {\n                        q(x, s, t);\n                    }), w = l.getUnavailableResources(v);\n                    if (w.length) {\n                        p({\n                            query: u,\n                            size: m\n                        });\n                    }\n                ;\n                ;\n                    return v;\n                }\n                 else q([], [], t);\n            ;\n            }\n        ;\n        ;\n            return 0;\n        },\n        handleUpdate: function(s) {\n            if (s.query) {\n                var t = ((s.suggestions || \"\")), u = ((t.length ? t.split(\",\") : []));\n                l.setResource(s.query, u);\n            }\n        ;\n        ;\n        }\n    };\n    h.registerEndpoints({\n        \"/ajax/chat/people_suggest.php\": {\n            mode: h.IMMEDIATE,\n            handler: r.handleUpdate\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatTabPeopleSuggestionView\", [\"ChatPeopleSuggestionList.react\",\"ChatQuietLinks\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"MercuryPeopleSuggestions\",\"MercuryIDs\",\"React\",\"ShortProfiles\",\"Style\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatPeopleSuggestionList.react\"), h = b(\"ChatQuietLinks\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"MercuryPeopleSuggestions\"), m = b(\"MercuryIDs\"), n = b(\"React\"), o = b(\"ShortProfiles\"), p = b(\"Style\"), q = b(\"copyProperties\");\n    function r(s, t, u) {\n        this.sheetController = s;\n        this.viewNode = t;\n        this.loadingIcon = u;\n        this.addFriendsSheet = s.getAddFriendsTabSheet();\n        this.mercuryTypeahead = ((this.addFriendsSheet && this.addFriendsSheet._typeahead));\n        this.typeaheadInput = ((this.mercuryTypeahead && this.mercuryTypeahead._input));\n        this.typeaheadView = ((this.mercuryTypeahead && this.mercuryTypeahead.getTypeahead().getView()));\n        var v = this.showSuggestions.bind(this);\n        if (this.typeaheadInput) {\n            k.listen(this.typeaheadInput, \"JSBNG__focus\", v);\n        }\n    ;\n    ;\n        if (this.typeaheadView) {\n            this.typeaheadView.subscribe(\"reset\", v);\n            this.typeaheadView.subscribe(\"render\", this.clearSuggestions.bind(this));\n        }\n    ;\n    ;\n        this.tokenizer = ((this.mercuryTypeahead && this.mercuryTypeahead.getTokenizer()));\n        if (this.tokenizer) {\n            this.tokenizer.subscribe(\"removeToken\", v);\n        }\n    ;\n    ;\n        this.showSuggestions();\n    };\n;\n    q(r.prototype, {\n        addSelectedParticipant: function(s) {\n            var t = o.getNow(s);\n            if (((t && this.tokenizer))) {\n                this.tokenizer.addToken(this.tokenizer.createToken({\n                    uid: s,\n                    text: t.JSBNG__name\n                }));\n                this.showSuggestions();\n            }\n        ;\n        ;\n        },\n        showSuggestions: function() {\n            if (this.mercuryTypeahead) {\n                var s = this.mercuryTypeahead.getSelectedParticipantIDs();\n                s = s.map(m.getUserIDFromParticipantID);\n                j.empty(this.viewNode);\n                i.show(this.loadingIcon);\n                l.getPeopleSuggestions(s, function(t) {\n                    var u = g({\n                        uids: t,\n                        onClick: this.addSelectedParticipant.bind(this)\n                    });\n                    i.hide(this.loadingIcon);\n                    n.renderComponent(u, this.viewNode);\n                    h.removeAllHrefs(this.viewNode);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        clearSuggestions: function() {\n            j.empty(this.viewNode);\n            i.hide(this.loadingIcon);\n            p.set(this.viewNode, \"margin-top\", 0);\n        },\n        destroy: function() {\n            this.clearSuggestions();\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatAddFriendsTabSheetRawRenderer\", [\"ContextualTypeaheadView\",\"DOM\",\"JSBNG__Event\",\"MercuryTypeahead\",\"ChatTabTemplates\",\"tx\",\"MercuryDataSourceWrapper\",], function(a, b, c, d, e, f) {\n    var g = b(\"ContextualTypeaheadView\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"MercuryTypeahead\"), k = b(\"ChatTabTemplates\"), l = b(\"tx\"), m = b(\"MercuryDataSourceWrapper\").source, n = {\n        render: function(o, p, q, r, s, t) {\n            var u = ((t ? k[\":fb:mercury:chat:tab-sheet:add-friends-empty-tab\"].build() : k[\":fb:mercury:chat:tab-sheet:add-friends\"].build())), v = new j(m, g);\n            v.setExcludedParticipants(r.participants);\n            if (!t) {\n                v.setPlaceholder(\"Add friends to this chat\");\n            }\n        ;\n        ;\n            v.build();\n            h.replace(u.getNode(\"participantsTypeahead\"), v.getElement());\n            h.setContent(q, u.getRoot());\n            v.getTokenizer().adjustWidth();\n            v.JSBNG__focus();\n            if (!t) {\n                var w = function() {\n                    var x = v.getSelectedParticipantIDs();\n                    if (x.length) {\n                        s(x);\n                    }\n                ;\n                ;\n                    p.close(o);\n                };\n                i.listen(u.getNode(\"doneButton\"), \"click\", w);\n            }\n        ;\n        ;\n            return v;\n        }\n    };\n    e.exports = n;\n});\n__d(\"MultiChatController\", [\"Arbiter\",\"AsyncSignal\",\"copyProperties\",\"Form\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncSignal\"), i = b(\"copyProperties\"), j = b(\"Form\"), k = b(\"MercuryMessages\").get(), l = b(\"MercuryServerRequests\").get(), m = b(\"MercuryThreads\").get();\n    function n() {\n    \n    };\n;\n    i(n, {\n        subscribe: function(o, p) {\n            o.subscribe(\"JSBNG__confirm\", function() {\n                this.createGroupThreadFromChooserDialog(o, p);\n            }.bind(this));\n        },\n        createGroupThreadFromChooserDialog: function(o, p) {\n            var q = j.serialize(o.getRoot()), r = JSON.parse(q.profileChooserItems), s = [];\n            {\n                var fin240keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin240i = (0);\n                var t;\n                for (; (fin240i < fin240keys.length); (fin240i++)) {\n                    ((t) = (fin240keys[fin240i]));\n                    {\n                        if (r[t]) {\n                            s.push(t);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var u = n.createThreadForFBIDs(s);\n            l.subscribe(\"update-thread-ids\", function(v, w) {\n                {\n                    var fin241keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin241i = (0);\n                    var x;\n                    for (; (fin241i < fin241keys.length); (fin241i++)) {\n                        ((x) = (fin241keys[fin241i]));\n                        {\n                            if (((w[x] == u))) {\n                                new h(\"/ajax/groups/chat/log\", {\n                                    group_id: p,\n                                    message_id: x\n                                }).send();\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            });\n            o.hide();\n        },\n        createThreadForTokens: function(o) {\n            if (!o.length) {\n                return;\n            }\n        ;\n        ;\n            var p;\n            if (((o.length == 1))) {\n                p = ((\"user:\" + o[0].split(\":\")[1]));\n            }\n             else p = ((\"root:\" + k.generateNewClientMessageID(JSBNG__Date.now())));\n        ;\n        ;\n            m.createNewLocalThread(p, o);\n            g.inform(\"chat/open-tab\", {\n                thread_id: p\n            });\n            return p;\n        },\n        createThreadForFBIDs: function(o) {\n            var p = [];\n            for (var q = 0; ((q < o.length)); q++) {\n                p.push(((\"fbid:\" + o[q])));\n            ;\n            };\n        ;\n            return n.createThreadForTokens(p);\n        }\n    });\n    e.exports = n;\n});\n__d(\"ChatAddFriendsTabSheet\", [\"Arbiter\",\"ChatAddFriendsTabSheetRawRenderer\",\"MercuryLogMessageType\",\"MercurySourceType\",\"MercuryMessages\",\"MultiChatController\",\"Style\",\"MercuryThreads\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatAddFriendsTabSheetRawRenderer\"), i = b(\"MercuryLogMessageType\"), j = b(\"MercurySourceType\"), k = b(\"MercuryMessages\").get(), l = b(\"MultiChatController\"), m = b(\"Style\"), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\");\n    function p(s, t, u) {\n        this._threadID = s;\n        this._rootElement = t;\n        this._sheetView = u;\n        this._typeahead = null;\n    };\n;\n    o(p.prototype, {\n        render: function() {\n            n.getThreadMeta(this._threadID, function(s) {\n                var t = ((s.is_canonical_user ? q : r));\n                this._typeahead = h.render(this, this._sheetView, this._rootElement, s, t.curry(s), n.isNewEmptyLocalThread(this._threadID));\n                this._typeahead.subscribe(\"resize\", function() {\n                    this._sheetView.inform(\"resize\");\n                }.bind(this));\n            }.bind(this));\n        },\n        getParticipants: function() {\n            if (!this._typeahead) {\n                return null;\n            }\n        ;\n        ;\n            return this._typeahead.getSelectedParticipantIDs();\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"add_friends_type\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        },\n        getHeight: function() {\n            return m.get(this._rootElement, \"height\");\n        }\n    });\n    function q(s, t) {\n        var u = s.participants;\n        l.createThreadForTokens(u.concat(t));\n    };\n;\n    function r(s, t) {\n        var u = s.thread_id;\n        if (n.isEmptyLocalThread(u)) {\n            n.addParticipantsToThreadLocally(u, t);\n            g.inform(\"chat/open-tab\", {\n                thread_id: u\n            });\n        }\n         else {\n            k.sendMessage(k.constructLogMessageObject(j.CHAT_WEB, u, i.SUBSCRIBE, {\n                added_participants: t\n            }));\n            g.inform(\"chat/open-tab\", {\n                thread_id: u\n            });\n        }\n    ;\n    ;\n    };\n;\n    e.exports = p;\n});\n__d(\"ChatNameConversationTabSheetRawRenderer\", [\"DOM\",\"JSBNG__Event\",\"Input\",\"Keys\",\"ChatTabTemplates\",\"fbt\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"JSBNG__Event\"), i = b(\"Input\"), j = b(\"Keys\"), k = b(\"ChatTabTemplates\"), l = b(\"fbt\"), m = {\n        render: function(n, o, p, q, r, s) {\n            var t = k[\":fb:mercury:chat:tab-sheet:name-conversation\"].build(), u = t.getNode(\"nameInput\"), v = t.getNode(\"doneButton\"), w = \"Done\", x = \"Hide\", y = q.JSBNG__name;\n            if (y) {\n                i.setValue(u, y);\n            }\n             else g.setContent(v, x);\n        ;\n        ;\n            var z = function() {\n                var aa = i.getValue(u);\n                if (aa) {\n                    r(aa);\n                }\n            ;\n            ;\n                s();\n                o.close(n);\n            };\n            h.listen(u, \"input\", function() {\n                g.setContent(v, ((((i.getValue(u).length === 0)) ? x : w)));\n            });\n            h.listen(v, \"click\", z);\n            h.listen(u, \"keyup\", function(aa) {\n                if (((aa.keyCode === j.RETURN))) {\n                    z();\n                    return false;\n                }\n            ;\n            ;\n            });\n            g.setContent(p, t.getRoot());\n            ((!n.isAutomatic() && u.JSBNG__focus()));\n        }\n    };\n    e.exports = m;\n});\n__d(\"ChatNameConversationTabSheet\", [\"AsyncRequest\",\"ChatNameConversationTabSheetRawRenderer\",\"MercuryAPIArgsSource\",\"MercuryLogMessageType\",\"MercurySourceType\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"ChatNameConversationTabSheetRawRenderer\"), i = b(\"MercuryAPIArgsSource\"), j = b(\"MercuryLogMessageType\"), k = b(\"MercurySourceType\"), l = b(\"MercuryMessages\").get(), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\"), p = \"/ajax/chat/multichat/name_conversation/dismiss.php\";\n    function q(t, u, v) {\n        this._threadID = t;\n        this._rootElement = u;\n        this._sheetView = v;\n        this._isAutomatic = false;\n    };\n;\n    o(q.prototype, {\n        render: function() {\n            n.getThreadMeta(this._threadID, function(t) {\n                h.render(this, this._sheetView, this._rootElement, t, r.curry(t), s.curry(t));\n            }.bind(this));\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"name_conversation_type\";\n        },\n        open: function(t) {\n            this._isAutomatic = t;\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        },\n        isAutomatic: function() {\n            return this._isAutomatic;\n        }\n    });\n    function r(t, u) {\n        var v = t.JSBNG__name;\n        if (((((u || v)) && ((u != v))))) {\n            l.sendMessage(l.constructLogMessageObject(k.CHAT_WEB, t.thread_id, j.THREAD_NAME, {\n                JSBNG__name: u\n            }), null, i.CHAT);\n        }\n    ;\n    ;\n    };\n;\n    function s(t) {\n        if (!t.name_conversation_sheet_dismissed) {\n            t.name_conversation_sheet_dismissed = true;\n            m.getServerThreadID(t.thread_id, function(u) {\n                new g(p).setData({\n                    thread_id: u\n                }).send();\n            });\n        }\n    ;\n    ;\n    };\n;\n    e.exports = q;\n});\n__d(\"ChatNewMessagesTabSheet\", [\"JSBNG__Event\",\"ArbiterMixin\",\"DOM\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"ChatTabTemplates\"), k = b(\"copyProperties\");\n    function l(m, n, o) {\n        this._threadID = m;\n        this._rootElement = n;\n        this._sheetView = o;\n    };\n;\n    k(l.prototype, h, {\n        render: function() {\n            var m = j[\":fb:mercury:chat:tab-sheet:clickable-message-icon-sheet\"].build();\n            i.setContent(m.getNode(\"text\"), i.tx._(\"Scroll down to see new messages.\"));\n            i.setContent(this._rootElement, m.getRoot());\n            g.listen(m.getRoot(), \"click\", function() {\n                this.inform(\"clicked\", this._threadID);\n            }.bind(this));\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"new_messages_type\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        }\n    });\n    e.exports = l;\n});\n__d(\"ChatNoRecipientsTabSheet\", [\"DOM\",\"fbt\",\"MercuryParticipants\",\"ChatTabTemplates\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"fbt\"), i = b(\"MercuryParticipants\"), j = b(\"ChatTabTemplates\"), k = b(\"MercuryThreadInformer\").get(), l = b(\"MercuryThreads\").get(), m = b(\"copyProperties\");\n    function n(o, p, q) {\n        this._threadID = o;\n        this._rootElement = p;\n        this._sheetView = q;\n        k.subscribe(\"threads-updated\", this._handleThreadsUpdated.bind(this));\n    };\n;\n    m(n.prototype, {\n        render: function() {\n            var o = j[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"].build();\n            g.setContent(o.getNode(\"text\"), \"Everyone has left the conversation.\");\n            g.setContent(this._rootElement, o.getRoot());\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"no_recipients_type\";\n        },\n        _handleThreadsUpdated: function() {\n            l.getThreadMeta(this._threadID, function(o) {\n                var p = i.user, q = o.participants.filter(function(r) {\n                    return ((r != p));\n                });\n                if (((((((q.length < 1)) && !o.is_joinable)) && !l.isNewEmptyLocalThread(this._threadID)))) {\n                    this._sheetView.open(this);\n                }\n                 else this._sheetView.close(this);\n            ;\n            ;\n            }.bind(this));\n        }\n    });\n    e.exports = n;\n});\n__d(\"ChatOfflineTabSheet\", [\"ChatPrivacyActionController\",\"ChatVisibility\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"JSLogger\",\"MercuryParticipants\",\"MercuryThreads\",\"ChatTabTemplates\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatPrivacyActionController\"), h = b(\"ChatVisibility\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"JSLogger\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryThreads\").get(), o = b(\"ChatTabTemplates\"), p = b(\"copyProperties\"), q = b(\"cx\");\n    function r(s, t, u) {\n        this._rootElement = t;\n        this._sheetView = u;\n        this._logger = l.create(\"blackbird\");\n        this._canonicalUser = n.getCanonicalUserInThread(s);\n        if (this._canonicalUser) {\n            this._privacyActionController = new g(this._canonicalUser, this._handlePrivacyChange.bind(this));\n        }\n    ;\n    ;\n    };\n;\n    p(r.prototype, {\n        render: function() {\n            if (!this._canonicalUser) {\n                this._logger.error(\"offline_sheet_open_with_non_friend\");\n                return;\n            }\n        ;\n        ;\n            var s = o[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"].build(), t = ((\"fbid:\" + this._canonicalUser));\n            m.get(t, function(u) {\n                var v = \"fbChatGoOnlineLink\", w = j.tx._(\"turn on chat\"), x = j.create(\"a\", {\n                    href: \"#\",\n                    className: v\n                }, w), y = j.tx._(\"To chat with {name} and other friends, {link}.\", {\n                    JSBNG__name: u.short_name,\n                    link: x\n                });\n                j.setContent(s.getNode(\"text\"), y);\n                i.addClass(s.getRoot(), \"_1sk1\");\n                j.setContent(this._rootElement, s.getRoot());\n                k.listen(this._rootElement, \"click\", function(JSBNG__event) {\n                    if (i.hasClass(JSBNG__event.getTarget(), v)) {\n                        if (h.isOnline()) {\n                            this._logger.error(\"tab_sheet_already_online\");\n                        }\n                    ;\n                    ;\n                        this._privacyActionController.togglePrivacy();\n                        this._logger.log(\"tab_sheet_go_online\", {\n                            tab_id: this._canonicalUser\n                        });\n                        return false;\n                    }\n                ;\n                ;\n                }.bind(this));\n            }.bind(this));\n        },\n        _handlePrivacyChange: function(s) {\n            if (!this._canonicalUser) {\n                this._logger.error(\"user_blocked_sheet_privacy_changed_non_friend\");\n            }\n        ;\n        ;\n            switch (s) {\n              case g.OFFLINE:\n                this._sheetView.open(this);\n                break;\n              case g.NORMAL:\n            \n              case g.BLOCKED:\n                this._sheetView.close(this);\n                break;\n            };\n        ;\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"offline_type\";\n        },\n        destroy: function() {\n            ((this._privacyActionController && this._privacyActionController.destroy()));\n        }\n    });\n    e.exports = r;\n});\n__d(\"ChatUploadWarningTabSheet\", [\"DOM\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"ChatTabTemplates\"), i = b(\"copyProperties\");\n    function j(k, l, m) {\n        this._threadID = k;\n        this._rootElement = l;\n        this._sheetView = m;\n    };\n;\n    i(j.prototype, {\n        render: function() {\n            var k = h[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"].build();\n            g.setContent(k.getNode(\"text\"), g.tx._(\"Please wait until the upload is complete before you send your message.\"));\n            g.setContent(this._rootElement, k.getRoot());\n        },\n        isPermanent: function() {\n            return false;\n        },\n        getType: function() {\n            return \"upload_warning_type\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        }\n    });\n    e.exports = j;\n});\n__d(\"ChatThreadIsMutedTabSheet\", [\"JSBNG__Event\",\"ArbiterMixin\",\"DOM\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"ChatTabTemplates\"), k = b(\"copyProperties\");\n    function l(m, n, o) {\n        this._threadID = m;\n        this._rootElement = n;\n        this._sheetView = o;\n    };\n;\n    k(l.prototype, h, {\n        render: function() {\n            var m = j[\":fb:mercury:chat:tab-sheet:message-mute-sheet\"].build();\n            i.setContent(m.getNode(\"text\"), i.tx._(\"This conversation is muted. Chat tabs will not pop up for it and push notifications are off.\"));\n            i.setContent(this._rootElement, m.getRoot());\n            g.listen(m.getNode(\"unmuteButton\"), \"click\", function() {\n                this.inform(\"clicked\", this._threadID);\n            }.bind(this));\n        },\n        isPermanent: function() {\n            return false;\n        },\n        getType: function() {\n            return \"chat-thread-is-muted\";\n        },\n        open: function() {\n            this._sheetView.open(this);\n        },\n        close: function() {\n            this._sheetView.close(this);\n        }\n    });\n    e.exports = l;\n});\n__d(\"ChatUserBlockedTabSheet\", [\"ChatPrivacyActionController\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"GenderConst\",\"JSLogger\",\"MercuryParticipants\",\"MercuryThreads\",\"ChatTabTemplates\",\"copyProperties\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatPrivacyActionController\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"GenderConst\"), l = b(\"JSLogger\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryThreads\").get(), o = b(\"ChatTabTemplates\"), p = b(\"copyProperties\"), q = b(\"cx\"), r = b(\"tx\");\n    function s(t, u, v) {\n        this._rootElement = u;\n        this._sheetView = v;\n        this._logger = l.create(\"blackbird\");\n        this._canonicalUser = n.getCanonicalUserInThread(t);\n        if (this._canonicalUser) {\n            this._privacyActionController = new g(this._canonicalUser, this._handlePrivacyChange.bind(this));\n        }\n    ;\n    ;\n    };\n;\n    p(s.prototype, {\n        render: function() {\n            if (!this._canonicalUser) {\n                this._logger.error(\"user_blocked_sheet_open_with_non_friend\");\n                return;\n            }\n        ;\n        ;\n            var t = o[\":fb:mercury:chat:tab-sheet:user-blocked\"].build(), u = ((\"fbid:\" + this._canonicalUser));\n            m.get(u, function(v) {\n                var w = null;\n                switch (v.gender) {\n                  case k.FEMALE_SINGULAR:\n                \n                  case k.FEMALE_SINGULAR_GUESS:\n                    w = r._(\"You turned off chat for {name} but you can still send her a message. \", {\n                        JSBNG__name: v.short_name\n                    });\n                    break;\n                  case k.MALE_SINGULAR:\n                \n                  case k.MALE_SINGULAR_GUESS:\n                    w = r._(\"You turned off chat for {name} but you can still send him a message. \", {\n                        JSBNG__name: v.short_name\n                    });\n                    break;\n                  default:\n                    w = r._(\"You turned off chat for {name} but you can still send them a message. \", {\n                        JSBNG__name: v.short_name\n                    });\n                };\n            ;\n                i.setContent(t.getNode(\"text\"), w);\n                var x = r._(\"Turn on chat for {name}?\", {\n                    JSBNG__name: v.short_name\n                });\n                i.setContent(t.getNode(\"actionLink\"), x);\n                h.addClass(t.getRoot(), \"_1sk0\");\n                i.setContent(this._rootElement, t.getRoot());\n                j.listen(t.getNode(\"actionLink\"), \"click\", this._privacyActionController.togglePrivacy.bind(this._privacyActionController));\n            }.bind(this));\n        },\n        _handlePrivacyChange: function(t) {\n            if (!this._canonicalUser) {\n                this._logger.error(\"user_blocked_sheet_privacy_changed_non_friend\");\n            }\n        ;\n        ;\n            switch (t) {\n              case g.BLOCKED:\n                this._sheetView.open(this);\n                break;\n              case g.NORMAL:\n            \n              case g.OFFLINE:\n                this._sheetView.close(this);\n                break;\n            };\n        ;\n        },\n        isPermanent: function() {\n            return true;\n        },\n        getType: function() {\n            return \"user_blocked_type\";\n        },\n        destroy: function() {\n            ((this._privacyActionController && this._privacyActionController.destroy()));\n        }\n    });\n    e.exports = s;\n});\n__d(\"ChatUserJoinStatusTabSheet\", [\"Class\",\"JoinStatusTabSheet\",\"ChatTabTemplates\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"JoinStatusTabSheet\"), i = b(\"ChatTabTemplates\"), j = b(\"copyProperties\");\n    function k(l, m) {\n        this.parent.construct(this, l, m);\n    };\n;\n    g.extend(k, h);\n    j(k.prototype, {\n        _getTemplate: function() {\n            return i[\":fb:mercury:chat:tab-sheet:message-icon-sheet\"];\n        }\n    });\n    e.exports = k;\n});\n__d(\"ChatTabSheetController\", [\"ChatAddFriendsTabSheet\",\"ChatNameConversationTabSheet\",\"ChatNewMessagesTabSheet\",\"ChatNoRecipientsTabSheet\",\"ChatOfflineTabSheet\",\"ChatUploadWarningTabSheet\",\"ChatThreadIsMutedTabSheet\",\"ChatUserBlockedTabSheet\",\"ChatUserJoinStatusTabSheet\",\"copyProperties\",\"MercurySheetView\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatAddFriendsTabSheet\"), h = b(\"ChatNameConversationTabSheet\"), i = b(\"ChatNewMessagesTabSheet\"), j = b(\"ChatNoRecipientsTabSheet\"), k = b(\"ChatOfflineTabSheet\"), l = b(\"ChatUploadWarningTabSheet\"), m = b(\"ChatThreadIsMutedTabSheet\"), n = b(\"ChatUserBlockedTabSheet\"), o = b(\"ChatUserJoinStatusTabSheet\"), p = b(\"copyProperties\"), q = b(\"MercurySheetView\"), r = b(\"MercuryThreads\").get(), s = function(t, u, v) {\n        this._sheetView = new q(t, u, v);\n        this._addFriendsTabSheet = new g(t, u, this._sheetView);\n        this._nameConversationTabSheet = new h(t, u, this._sheetView);\n        this._userBlockedTabSheet = new n(t, u, this._sheetView);\n        this._offlineTabSheet = new k(t, u, this._sheetView);\n        this._newMessagesTabSheet = new i(t, u, this._sheetView);\n        this._uploadWarningTabSheet = new l(t, u, this._sheetView);\n        this._threadIsMutedTabSheet = new m(t, u, this._sheetView);\n        this._userJoinStatusTabSheet = new o(u, this._sheetView);\n        if (!r.getCanonicalUserInThread(t)) {\n            this._noRecipientsTabSheet = new j(t, u, this._sheetView);\n        }\n    ;\n    ;\n    };\n    p(s.prototype, {\n        openAddFriendsSheet: function() {\n            this._addFriendsTabSheet.open();\n        },\n        openUserJoinStatusSheet: function(t) {\n            this._userJoinStatusTabSheet.addToQueue(t);\n        },\n        getAddFriendsTabSheet: function() {\n            return this._addFriendsTabSheet;\n        },\n        getAddFriendsParticipants: function() {\n            var t = this._addFriendsTabSheet.getParticipants();\n            this._addFriendsTabSheet.close();\n            return t;\n        },\n        openNameConversationSheet: function(t) {\n            this._nameConversationTabSheet.open(t);\n        },\n        openNewMessagesSheet: function() {\n            this._newMessagesTabSheet.open();\n        },\n        openUploadWarningTabSheet: function() {\n            this._uploadWarningTabSheet.open();\n        },\n        openThreadIsMutedTabSheet: function() {\n            this._threadIsMutedTabSheet.open();\n        },\n        closeAutomaticNameConversationSheet: function() {\n            if (this._nameConversationTabSheet.isAutomatic()) {\n                this._nameConversationTabSheet.close();\n            }\n        ;\n        ;\n        },\n        closeThreadIsMutedTabSheet: function() {\n            this._threadIsMutedTabSheet.close();\n        },\n        closeNewMessagesSheet: function() {\n            this._newMessagesTabSheet.close();\n        },\n        closeUploadWarningTabSheet: function() {\n            this._uploadWarningTabSheet.close();\n        },\n        onClickNewMessagesSheet: function(t) {\n            this._newMessageClickSub = this._newMessagesTabSheet.subscribe(\"clicked\", t);\n        },\n        onClickThreadIsMutedSheet: function(t) {\n            this._threadIsMutedClickSub = this._threadIsMutedTabSheet.subscribe(\"clicked\", t);\n        },\n        onResize: function(t) {\n            this._sheetView.subscribe(\"resize\", t);\n        },\n        destroy: function() {\n            this._sheetView.destroy();\n            this._offlineTabSheet.destroy();\n            this._userBlockedTabSheet.destroy();\n            ((this._newMessageClickSub && this._newMessageClickSub.unsubscribe()));\n            ((this._threadIsMutedClickSub && this._threadIsMutedClickSub.unsubscribe()));\n        }\n    });\n    e.exports = s;\n});\n__d(\"ChatTabView\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"AsyncDialog\",\"AsyncRequest\",\"AsyncSignal\",\"AvailableListConstants\",\"ChatBehavior\",\"ChatConfig\",\"ChatContextualDialogController\",\"ChatAutoSendPhotoUploader\",\"ChatPrivacyActionController\",\"ChatQuietLinks\",\"ChatTabMessagesView\",\"ChatTabPeopleSuggestionView\",\"ChatTabSheetController\",\"ChatVisibility\",\"MercuryConstants\",\"CSS\",\"Dialog\",\"Dock\",\"DOM\",\"Input\",\"JSLogger\",\"Keys\",\"Locale\",\"MercuryActionStatus\",\"MercuryFileUploader\",\"MercuryLogMessageType\",\"MercuryMessages\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercurySourceType\",\"MercuryStickers\",\"MercuryThreadInformer\",\"MercuryThreadMetadataRawRenderer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreadMuter\",\"MercuryThreads\",\"MercuryTypingReceiver\",\"MessagesEmoticonView\",\"NubController\",\"Parent\",\"PhotosUploadWaterfall\",\"PresencePrivacy\",\"PresenceStatus\",\"Run\",\"Style\",\"SubscriptionsHandler\",\"ChatTabTemplates\",\"TextAreaControl\",\"Tooltip\",\"TypingDetectorController\",\"URI\",\"UserAgent\",\"VideoCallCore\",\"WaterfallIDGenerator\",\"copyProperties\",\"cx\",\"setIntervalAcrossTransitions\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"AsyncDialog\"), k = b(\"AsyncRequest\"), l = b(\"AsyncSignal\"), m = b(\"AvailableListConstants\"), n = b(\"ChatBehavior\"), o = b(\"ChatConfig\"), p = b(\"ChatContextualDialogController\"), q = b(\"ChatAutoSendPhotoUploader\"), r = b(\"ChatPrivacyActionController\"), s = b(\"ChatQuietLinks\"), t = b(\"ChatTabMessagesView\"), u = b(\"ChatTabPeopleSuggestionView\"), v = b(\"ChatTabSheetController\"), w = b(\"ChatVisibility\"), x = b(\"MercuryConstants\"), y = b(\"CSS\"), z = b(\"Dialog\"), aa = b(\"Dock\"), ba = b(\"DOM\"), ca = b(\"Input\"), da = b(\"JSLogger\"), ea = b(\"Keys\"), fa = b(\"Locale\"), ga = b(\"MercuryActionStatus\"), ha = b(\"MercuryFileUploader\"), ia = b(\"MercuryLogMessageType\"), ja = b(\"MercuryMessages\").get(), ka = b(\"MercuryParticipants\"), la = b(\"MercuryServerRequests\").get(), ma = b(\"MercurySourceType\"), na = b(\"MercuryStickers\"), oa = b(\"MercuryThreadInformer\").get(), pa = b(\"MercuryThreadMetadataRawRenderer\"), qa = b(\"MercuryThreadMetadataRenderer\").get(), ra = b(\"MercuryThreadMuter\"), sa = b(\"MercuryThreads\").get(), ta = b(\"MercuryTypingReceiver\"), ua = b(\"MessagesEmoticonView\"), va = b(\"NubController\"), wa = b(\"Parent\"), xa = b(\"PhotosUploadWaterfall\"), ya = b(\"PresencePrivacy\"), za = b(\"PresenceStatus\"), ab = b(\"Run\"), bb = b(\"Style\"), cb = b(\"SubscriptionsHandler\"), db = b(\"ChatTabTemplates\"), eb = b(\"TextAreaControl\"), fb = b(\"Tooltip\"), gb = b(\"TypingDetectorController\"), hb = b(\"URI\"), ib = b(\"UserAgent\"), jb = b(\"VideoCallCore\"), kb = b(\"WaterfallIDGenerator\"), lb = b(\"copyProperties\"), mb = b(\"cx\"), nb = b(\"setIntervalAcrossTransitions\"), ob = b(\"tx\"), pb = /^\\s*$/, qb = da.create(\"tab_view\"), rb = {\n    }, sb = null, tb, ub;\n    function vb(qc, rc) {\n        var sc = ba.create(\"div\");\n        rc = rc.filter(function(tc) {\n            return ((tc != ka.user));\n        });\n        if (!rc.length) {\n            return fb.remove(qc);\n        }\n    ;\n    ;\n        ka.getMulti(rc, function(tc) {\n            {\n                var fin242keys = ((window.top.JSBNG_Replay.forInKeys)((tc))), fin242i = (0);\n                var uc;\n                for (; (fin242i < fin242keys.length); (fin242i++)) {\n                    ((uc) = (fin242keys[fin242i]));\n                    {\n                        var vc = tc[uc], wc = db[\":fb:mercury:chat:multichat-tooltip-item\"].build();\n                        ba.setContent(wc.getNode(\"JSBNG__name\"), vc.JSBNG__name);\n                        var xc = ka.getUserID(uc), yc = ((xc && ((za.get(xc) == m.ACTIVE))));\n                        y.conditionShow(wc.getNode(\"icon\"), yc);\n                        y.conditionClass(wc.getNode(\"JSBNG__name\"), \"tooltipItemWithIcon\", yc);\n                        ba.appendContent(sc, wc.getRoot());\n                    };\n                };\n            };\n        ;\n            fb.set(qc, sc, \"above\");\n        });\n    };\n;\n    var wb = {\n    }, xb = null, yb = false;\n    function zb(qc, rc, sc) {\n        if (sc) {\n            wb[qc] = rc;\n            if (!xb) {\n                xb = nb(ac, 600);\n            }\n        ;\n        ;\n        }\n         else {\n            y.removeClass(rc, \"highlightTitle\");\n            delete wb[qc];\n        }\n    ;\n    ;\n    };\n;\n    function ac() {\n        {\n            var fin243keys = ((window.top.JSBNG_Replay.forInKeys)((wb))), fin243i = (0);\n            var qc;\n            for (; (fin243i < fin243keys.length); (fin243i++)) {\n                ((qc) = (fin243keys[fin243i]));\n                {\n                    var rc = wb[qc];\n                    if (rc.parentNode) {\n                        y.conditionClass(rc, \"highlightTitle\", yb);\n                    }\n                     else delete wb[qc];\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        yb = !yb;\n        if (!Object.keys(wb).length) {\n            JSBNG__clearInterval(xb);\n            xb = null;\n        }\n    ;\n    ;\n    };\n;\n    function bc(qc) {\n        var rc = la.tokenizeThreadID(qc);\n        switch (rc.type) {\n          case \"user\":\n            return db[\":fb:mercury:chat:user-tab\"].build();\n        };\n    ;\n        return db[\":fb:mercury:chat:multichat-tab\"].build();\n    };\n;\n    function cc(qc) {\n        var rc = ((qc._tabTemplate.getNode(\"input\").value || \"\")), sc = qc._fileUploader.getAttachments();\n        if (ic(qc)) {\n            ec(qc, rc, sc, function(tc) {\n                var uc = qc._fileUploader.getImageIDs();\n                if (((uc.length > 0))) {\n                    tc.photo_fbids = uc;\n                    tc.has_attachment = true;\n                }\n            ;\n            ;\n                ja.sendMessage(tc);\n                qc._fileUploader.removeAttachments();\n                qc._getNode(\"input\").value = \"\";\n                ((qc._lastMessageIndicator && qc._lastMessageIndicator.resetState()));\n                ((qc._messagesView && qc._messagesView.scrollToBottom()));\n            });\n        }\n    ;\n    ;\n    };\n;\n    function dc(qc, rc) {\n        if (((rc === 0))) {\n            return;\n        }\n    ;\n    ;\n        mc(qc, xa.POST_PUBLISHED, {\n            count: rc\n        });\n        qc._waterfallID = kb.generate();\n    };\n;\n    function ec(qc, rc, sc, tc) {\n        sa.getThreadMeta(qc._threadID, function(uc) {\n            var vc = ja.constructUserGeneratedMessageObject(rc, ma.CHAT_WEB, qc._threadID);\n            if (((sc.length > 0))) {\n                vc.has_attachment = true;\n                vc.raw_attachments = sc;\n            }\n        ;\n        ;\n            if (sa.isNewEmptyLocalThread(qc._threadID)) {\n                var wc = qc._sheetController.getAddFriendsParticipants();\n                if (((((wc === null)) || ((wc.length === 0))))) {\n                    return;\n                }\n                 else if (((wc.length === 1))) {\n                    var xc = ((\"user:\" + ka.getUserID(wc[0])));\n                    vc.thread_id = xc;\n                }\n                 else sa.addParticipantsToThreadLocally(qc._threadID, wc);\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            if (sa.isEmptyLocalThread(qc._threadID)) {\n                var yc = la.tokenizeThreadID(qc._threadID);\n                vc.message_id = yc.value;\n                vc.specific_to_list = uc.participants;\n            }\n        ;\n        ;\n            if (((typeof vc != \"undefined\"))) {\n                vc.signatureID = qc._signatureID;\n            }\n        ;\n        ;\n            vc.ui_push_phase = x.UIPushPhase;\n            tc(vc);\n            if (((qc._threadID !== vc.thread_id))) {\n                nc.inform(\"closed-tab\", qc._threadID);\n                h.inform(\"chat/open-tab\", {\n                    thread_id: vc.thread_id\n                });\n            }\n        ;\n        ;\n        });\n    };\n;\n    function fc(qc) {\n        qc._blocked = true;\n        qc._sheetController.openUploadWarningTabSheet();\n    };\n;\n    function gc(qc) {\n        return ((qc._fileUploader.isUploading() || qc._photoUploader.isUploading()));\n    };\n;\n    function hc(qc) {\n        return qc._fileUploader.isUploading();\n    };\n;\n    function ic(qc) {\n        var rc = ((qc._tabTemplate.getNode(\"input\").value || \"\"));\n        if (!pb.test(rc)) {\n            return true;\n        }\n    ;\n    ;\n        if (((((qc._fileUploader.getAttachments().length > 0)) || ((qc._fileUploader.getImageIDs().length > 0))))) {\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function jc(qc) {\n        if (qc._blocked) {\n            if (hc(qc)) {\n                return;\n            }\n        ;\n        ;\n            qc._blocked = false;\n            cc(qc);\n            qc._sheetController.closeUploadWarningTabSheet();\n        }\n    ;\n    ;\n    };\n;\n    function kc(qc) {\n        qc._nubController.flyoutContentChanged();\n        qc._attachmentsDiv.scrollTop = qc._attachmentsDiv.scrollHeight;\n    };\n;\n    function lc(qc, rc, sc) {\n        qc._subscriptionsHandler.addSubscriptions(qc._photoUploader.subscribe(rc, function(tc, uc) {\n            mc(qc, sc, uc);\n        }));\n    };\n;\n    function mc(qc, rc, sc) {\n        xa.sendSignal(lb({\n            qn: qc._waterfallID,\n            step: rc,\n            uploader: xa.APP_CHAT\n        }, ((sc || {\n        }))));\n    };\n;\n    function nc(qc, rc, sc) {\n        if (rc) {\n            la.ensureThreadIsFetched(rc);\n        }\n    ;\n    ;\n        this._threadID = qc;\n        this._signatureID = sc;\n        this._eventListeners = [];\n        this._tabTemplate = bc(qc);\n        this._tabElem = this._tabTemplate.getRoot();\n        this._waterfallID = kb.generate();\n        if (!((this._getNode instanceof Function))) {\n            qb.log(\"getnode_undefined\", {\n                is_getnode_set: !!this._getNode,\n                is_prototype_set: !!nc.prototype,\n                is_window: ((window == this)),\n                is_chat_tab_view: ((this instanceof nc)),\n                ctor_name: ((this.constructor && this.constructor.JSBNG__name))\n            });\n        }\n    ;\n    ;\n        this._subscriptionsHandler = new cb();\n        this._fileUploader = new ha(this._tabTemplate.getNode(\"attachmentShelf\"), this._tabTemplate.getNode(\"attachButtonForm\"), this._tabTemplate.getNode(\"fileInput\"), this._tabTemplate.getNode(\"attachID\"));\n        this._initializeUploader(this._fileUploader);\n        this._initializeAutoSendPhotoUploader();\n        this._attachmentsDiv = this._getNode(\"attachmentShelf\");\n        this._sheetController = new v(this._threadID, this._getNode(\"sheet\"), this._tabElem);\n        this._sheetController.onClickNewMessagesSheet(function() {\n            ((this._messagesView && this._messagesView.scrollToBottom()));\n            this.JSBNG__focus();\n            nc.inform(\"read\", this._threadID);\n        }.bind(this));\n        this._sheetController.onClickThreadIsMutedSheet(function() {\n            ra.showMuteChangeDialog(0, this._threadID);\n            this.JSBNG__focus();\n        }.bind(this));\n        this._nubController = new va().init(this._tabElem);\n        this._sheetController.onResize(this._nubController.flyoutContentChanged.bind(this._nubController));\n        this._contextualDialogController = new p(this._threadID, this._getNode(\"videoCallLink\"));\n        if (((sb === null))) {\n            sb = !o.get(\"seen_autosend_photo_nux\");\n        }\n    ;\n    ;\n        if (((tb === undefined))) {\n            tb = o.get(\"show_sticker_nux\");\n        }\n    ;\n    ;\n        this._messagesView = null;\n        var tc = this._getNode(\"conversationLink\");\n        if (tc) {\n            y.hide(tc);\n            qa.renderTitanLink(qc, tc, y.show.bind(y, tc));\n        }\n    ;\n    ;\n        if (!sa.getCanonicalUserInThread(this._threadID)) {\n            this._titlebarTooltipAnchor = this._getNode(\"titlebarText\");\n        }\n    ;\n    ;\n        var uc = this._getCanonicalUserID();\n        if (this._isTitleTextLinked()) {\n            ka.get(((\"fbid:\" + uc)), function(fd) {\n                if (fd.href) {\n                    var gd = this._getNode(\"titlebarText\");\n                    gd.setAttribute(\"href\", fd.href);\n                    gd.removeAttribute(\"rel\");\n                    y.removeClass(gd, \"noLink\");\n                }\n            ;\n            ;\n            }.bind(this));\n        }\n    ;\n    ;\n        var vc = this._getNode(\"inputContainer\").clientHeight;\n        eb.getInstance(this._getNode(\"input\")).subscribe(\"resize\", function() {\n            var fd = this._getNode(\"inputContainer\").clientHeight;\n            if (((fd != vc))) {\n                this._nubController.flyoutContentChanged();\n            }\n        ;\n        ;\n            vc = fd;\n        }.bind(this));\n        var wc = null, xc = this._getNode(\"inputContainer\");\n        this._nubController.subscribe(\"resize\", function() {\n            if (!wc) {\n                wc = this._tabElem.clientWidth;\n            }\n        ;\n        ;\n            var fd = 2, gd = ((wc - ((xc.clientWidth + fd)))), hd = ((fa.isRTL() ? \"left\" : \"right\"));\n            bb.set(this._iconsContainerNode, hd, ((gd + \"px\")));\n            eb.getInstance(this._getNode(\"input\")).update();\n        }.bind(this));\n        var yc = o.get(\"chat_tab_height\");\n        if (yc) {\n            var zc = this._tabTemplate.getNode(\"chatWrapper\");\n            bb.set(zc, \"height\", ((yc + \"px\")));\n        }\n    ;\n    ;\n        this._listen(\"closeButton\", \"click\", this._closeClicked);\n        this._listen(\"titlebarCloseButton\", \"click\", this._closeClicked);\n        this._listen(\"titlebarCloseButton\", \"mousedown\", this._closePreClicked);\n        this._listen(\"dockButton\", \"click\", this._nubClicked);\n        this._listen(\"dockButton\", \"keydown\", this._dockKeyDown);\n        this._listen(\"nubFlyoutTitlebar\", \"click\", this._titleClicked);\n        this._listen(\"chatConv\", \"click\", this._chatConvClicked);\n        this._listen(\"inputContainer\", \"click\", this._inputContainerClicked);\n        this._listen(\"addFriendLink\", \"click\", this._addFriendLinkClicked, true);\n        this._listen(\"addToThreadLink\", \"click\", this._addFriendLinkClicked, true);\n        this._listen(\"nameConversationLink\", \"click\", this._nameConversationLinkClicked, true);\n        this._listen(\"clearWindowLink\", \"click\", this._clearHistory, true);\n        this._listen(\"unsubscribeLink\", \"click\", this._unsubscribeLinkClicked, true);\n        this._listen(\"videoCallLink\", \"click\", this._callClicked, true);\n        this._listen(\"reportSpamLink\", \"click\", this._reportSpamClicked, true);\n        this._listen(\"muteThreadLink\", \"click\", this._showMuteSettingDialog.bind(this, -1), true);\n        this._listen(\"unmuteThreadLink\", \"click\", this._showMuteSettingDialog.bind(this, 0), true);\n        this._listen(\"input\", \"JSBNG__focus\", this._focusTab);\n        this._listen(\"input\", \"JSBNG__blur\", this._blurTab);\n        this._listen(\"sheet\", \"keydown\", function(JSBNG__event) {\n            if (((!JSBNG__event.getModifiers().any && ((JSBNG__event.keyCode === ea.TAB))))) {\n                this._getNode(\"input\").JSBNG__focus();\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        }.bind(this));\n        this._iconsContainerNode = this._getNode(\"iconsContainer\");\n        var ad = this._getNode(\"emoticons\");\n        this._emoticonView = null;\n        if (ad) {\n            this._emoticonView = new ua(ad, this._getNode(\"input\"));\n        }\n    ;\n    ;\n        var bd = this._getNode(\"stickers\");\n        if (bd) {\n            this._stickerController = new na(bd);\n            this._subscriptionsHandler.addSubscriptions(this._stickerController.subscribe(\"stickerselected\", function(fd, gd) {\n                this._stickerSelected(gd.id);\n            }.bind(this)));\n        }\n    ;\n    ;\n        if (ib.firefox()) {\n            this._listen(\"input\", \"keypress\", this._inputKeyDown);\n        }\n         else this._listen(\"input\", \"keydown\", this._inputKeyDown);\n    ;\n    ;\n        this._privacyLink = this._getNode(\"privacyLink\");\n        if (this._privacyLink) {\n            this._privacyActionController = new r(uc, this._updatePrivacyLink.bind(this));\n            this._eventListeners.push(g.listen(this._privacyLink, \"click\", this._privacyActionController.togglePrivacy.bind(this._privacyActionController)));\n        }\n    ;\n    ;\n        sa.getThreadMeta(this._threadID, function(fd) {\n            var gd = ((uc || ((o.get(\"chat_multi_typ_send\") && !fd.is_canonical))));\n            if (gd) {\n                la.getServerThreadID(this._threadID, function(hd) {\n                    this._lastMessageIndicator = new gb(uc, this._getNode(\"input\"), \"mercury-chat\", null, hd);\n                }.bind(this));\n            }\n        ;\n        ;\n            this._setUpMutingSettings(fd);\n        }.bind(this));\n        var cd = this._getNode(\"muteGroupLink\");\n        if (cd) {\n            var dd = sa.getCanonicalGroupInThread(this._threadID);\n            if (dd) {\n                cd.setAttribute(\"ajaxify\", hb(cd.getAttribute(\"ajaxify\")).addQueryData({\n                    id: dd\n                }));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        s.removeEmptyHrefs(this._tabElem);\n        rb[qc] = this;\n        this.updateAvailableStatus();\n        this.updateTab();\n        this._setCloseTooltip(false);\n        var ed = {\n            threadID: qc,\n            userID: uc,\n            signatureID: this._signatureID\n        };\n        new l(\"/ajax/chat/opentab_tracking.php\", ed).send();\n        ab.onBeforeUnload(function() {\n            if (((ic(this) || gc(this)))) {\n                return \"You haven't sent your message yet. Do you want to leave without sending?\";\n            }\n        ;\n        ;\n            if (ja.getNumberLocalMessages(this._threadID)) {\n                return \"Your message is still being sent. Are you sure you want to leave?\";\n            }\n        ;\n        ;\n            return null;\n        }.bind(this), false);\n        ab.onUnload(function() {\n            oc(this);\n        }.bind(this));\n    };\n;\n    function oc(qc) {\n        if (qc._photoUploader.isUploading()) {\n            mc(qc, xa.CANCEL_DURING_UPLOAD);\n        }\n    ;\n    ;\n    };\n;\n    function pc() {\n        {\n            var fin244keys = ((window.top.JSBNG_Replay.forInKeys)((rb))), fin244i = (0);\n            var qc;\n            for (; (fin244i < fin244keys.length); (fin244i++)) {\n                ((qc) = (fin244keys[fin244i]));\n                {\n                    rb[qc].updateAvailableStatus();\n                    rb[qc].updateMultichatTooltip();\n                };\n            };\n        };\n    ;\n    };\n;\n    h.subscribe([\"buddylist/availability-changed\",], pc);\n    ya.subscribe([\"privacy-changed\",\"privacy-availability-changed\",], pc);\n    n.subscribe(n.ON_CHANGED, function() {\n        {\n            var fin245keys = ((window.top.JSBNG_Replay.forInKeys)((rb))), fin245i = (0);\n            var qc;\n            for (; (fin245i < fin245keys.length); (fin245i++)) {\n                ((qc) = (fin245keys[fin245i]));\n                {\n                    sa.getThreadMeta(qc, function(rc) {\n                        rb[qc]._updateUnreadCount(rc);\n                    });\n                ;\n                };\n            };\n        };\n    ;\n    });\n    ta.subscribe(\"state-changed\", function(qc, rc) {\n        {\n            var fin246keys = ((window.top.JSBNG_Replay.forInKeys)((rc))), fin246i = (0);\n            var sc;\n            for (; (fin246i < fin246keys.length); (fin246i++)) {\n                ((sc) = (fin246keys[fin246i]));\n                {\n                    var tc = ((rc[sc] && rc[sc].length)), uc = rb[sc];\n                    ((uc && uc.showTypingIndicator(tc)));\n                };\n            };\n        };\n    ;\n    });\n    oa.subscribe(\"threads-updated\", function(qc, rc) {\n        {\n            var fin247keys = ((window.top.JSBNG_Replay.forInKeys)((rb))), fin247i = (0);\n            var sc;\n            for (; (fin247i < fin247keys.length); (fin247i++)) {\n                ((sc) = (fin247keys[fin247i]));\n                {\n                    ((rc[sc] && rb[sc].updateTab()));\n                ;\n                };\n            };\n        };\n    ;\n    });\n    oa.subscribe(\"threads-deleted\", function(qc, rc) {\n        {\n            var fin248keys = ((window.top.JSBNG_Replay.forInKeys)((rb))), fin248i = (0);\n            var sc;\n            for (; (fin248i < fin248keys.length); (fin248i++)) {\n                ((sc) = (fin248keys[fin248i]));\n                {\n                    ((rc[sc] && nc.inform(\"thread-deleted\", sc)));\n                ;\n                };\n            };\n        };\n    ;\n    });\n    lb(nc, i, {\n        get: function(qc) {\n            return rb[qc];\n        }\n    });\n    lb(nc.prototype, {\n        getThreadID: function() {\n            return this._threadID;\n        },\n        showAddFriend: function() {\n            (function() {\n                this._sheetController.openAddFriendsSheet();\n            }).bind(this).defer();\n        },\n        showPeopleSuggestions: function() {\n            (function() {\n                this._peopleSuggestions = new u(this._sheetController, this._getNode(\"conversation\"), this._getNode(\"loadingIndicator\"));\n            }).bind(this).defer();\n        },\n        showNameConversation: function(qc) {\n            (function() {\n                this._sheetController.openNameConversationSheet(qc);\n            }).bind(this).defer();\n        },\n        hideAutomaticNameConversation: function() {\n            (function() {\n                this._sheetController.closeAutomaticNameConversationSheet();\n            }).bind(this).defer();\n        },\n        isVisible: function() {\n            return y.shown(this._tabElem);\n        },\n        setVisibleState: function(qc, rc) {\n            var sc = y.shown(this._tabElem), tc = y.hasClass(this._tabElem, \"opened\");\n            y.conditionShow(this._tabElem, qc);\n            y.conditionClass(this._tabElem, \"opened\", rc);\n            if (((((!((sc && tc)) && qc)) && rc))) {\n                if (!this._messagesView) {\n                    this._messagesView = new t(this._threadID, this._sheetController, this._getNode(\"chatConv\"), this._getNode(\"conversation\"), this._getNode(\"loadingIndicator\"), this._getNode(\"lastMessageIndicator\"), this._getNode(\"typingIndicator\"));\n                }\n            ;\n            ;\n                this._nubController.flyoutContentChanged();\n                this._messagesView.scrollToBottom();\n            }\n        ;\n        ;\n            if (((((sc && tc)) && !((qc && rc))))) {\n                this._contextualDialogController.tabNotActive();\n            }\n        ;\n        ;\n        },\n        JSBNG__focus: function() {\n            var qc = ((y.hasClass(this._tabElem, \"opened\") ? \"input\" : \"dockButton\"));\n            this._getNode(qc).JSBNG__focus();\n        },\n        isFocused: function() {\n            var qc = JSBNG__document.activeElement;\n            return ((wa.byClass(qc, \"_50mz\") === this._tabElem));\n        },\n        hasEmptyInput: function() {\n            return pb.test(this._getNode(\"input\").value);\n        },\n        getInputElem: function() {\n            return this._getNode(\"input\");\n        },\n        setInput: function(qc) {\n            this._getNode(\"input\").value = qc;\n        },\n        insertBefore: function(qc) {\n            ba.insertBefore(qc._tabElem, this._tabElem);\n        },\n        appendTo: function(qc) {\n            ba.appendContent(qc, this._tabElem);\n        },\n        nextTabIs: function(qc) {\n            var rc = ((qc && qc._tabElem));\n            return ((this._tabElem.nextSibling == rc));\n        },\n        getScrollTop: function() {\n            return ba.JSBNG__find(this._tabElem, \".scrollable\").scrollTop;\n        },\n        setScrollTop: function(qc) {\n            ba.JSBNG__find(this._tabElem, \".scrollable\").scrollTop = qc;\n        },\n        destroy: function() {\n            ba.remove(this._tabElem);\n            ((this._emoticonView && this._emoticonView.destroy()));\n            ((this._stickerController && this._stickerController.destroy()));\n            while (this._eventListeners.length) {\n                this._eventListeners.pop().remove();\n            ;\n            };\n        ;\n            ((this._messagesView && this._messagesView.destroy()));\n            this._sheetController.destroy();\n            this._fileUploader.destroy();\n            this._photoUploader.destroy();\n            this._subscriptionsHandler.release();\n            this._contextualDialogController.destroy();\n            ((this._privacyActionController && this._privacyActionController.destroy()));\n            delete rb[this._threadID];\n            aa.unregisterNubController(this._nubController);\n            ca.reset(this._getNode(\"input\"));\n        },\n        updateAvailableStatus: function() {\n            sa.getThreadMeta(this._threadID, function(qc) {\n                var rc = m.OFFLINE, sc = this._getCanonicalUserID();\n                if (sc) {\n                    rc = za.get(sc);\n                }\n                 else {\n                    var tc = qc.participants.map(function(vc) {\n                        return ka.getUserID(vc);\n                    });\n                    rc = za.getGroup(tc);\n                }\n            ;\n            ;\n                if (!w.isOnline()) {\n                    rc = m.OFFLINE;\n                }\n            ;\n            ;\n                if (sc) {\n                    this._updateCallLink(rc);\n                }\n            ;\n            ;\n                y.conditionClass(this._tabElem, \"_5238\", ((rc === m.ACTIVE)));\n                y.conditionClass(this._tabElem, \"_5239\", ((rc === m.MOBILE)));\n                var uc = this._getNode(\"presenceIndicator\");\n                switch (rc) {\n                  case m.ACTIVE:\n                    uc.setAttribute(\"alt\", \"Online\");\n                    break;\n                  case m.MOBILE:\n                    uc.setAttribute(\"alt\", \"Mobile\");\n                    break;\n                  default:\n                    uc.removeAttribute(\"alt\");\n                    break;\n                };\n            ;\n            }.bind(this));\n        },\n        updateTab: function() {\n            sa.getThreadMeta(this._threadID, function(qc) {\n                if (!qc.is_subscribed) {\n                    nc.inform(\"unsubscribed\", this._threadID);\n                    return;\n                }\n            ;\n            ;\n                qa.renderAndSeparatedParticipantList(this._threadID, [this._getNode(\"JSBNG__name\"),this._getNode(\"titlebarText\"),], {\n                    names_renderer: pa.renderShortNames,\n                    check_length: true\n                });\n                if (((qc.is_joinable && !o.get(\"joinable_conversation_is_modal\")))) {\n                    this._updateJoinableAddFriendSheet(qc);\n                }\n            ;\n            ;\n                this._updateMutingSettings(qc);\n                this._updateUnreadCount(qc);\n                this.updateMultichatTooltip();\n                this._updateArchiveWarning(qc);\n                this._updateNewThread(qc);\n                this._updateNameConversationSheet(qc);\n            }.bind(this));\n        },\n        _updateNameConversationSheet: function(qc) {\n            if (((((((!qc.JSBNG__name && !qc.is_canonical)) && !qc.name_conversation_sheet_dismissed)) && !sa.isEmptyLocalThread(qc.thread_id)))) {\n                this.showNameConversation(true);\n            }\n             else this.hideAutomaticNameConversation();\n        ;\n        ;\n        },\n        _updateJoinableAddFriendSheet: function(qc) {\n            var rc = ka.user, sc = qc.participants.filter(function(tc) {\n                return ((tc != rc));\n            });\n            if (((qc.is_joinable && ((sc.length < 1))))) {\n                this.showAddFriend();\n            }\n        ;\n        ;\n        },\n        updateSignatureID: function(qc) {\n            this._signatureID = qc;\n        },\n        _showPhotoNUXIfNecessary: function() {\n            if (sb) {\n                sb = false;\n                new k(\"/ajax/chat/photo_nux.php\").setRelativeTo(this._getNode(\"photoAttachLink\")).setData({\n                    threadID: this._threadID\n                }).send();\n                return true;\n            }\n        ;\n        ;\n        },\n        _showStickerNUXIfNecessary: function() {\n            if (tb) {\n                tb = false;\n                new k(\"/ajax/messaging/stickers/nux\").setRelativeTo(this._getNode(\"emoticons\")).setData({\n                    threadID: this._threadID\n                }).send();\n                return true;\n            }\n        ;\n        ;\n        },\n        _setUpMutingSettings: function(qc) {\n            var rc = ra.isThreadMuted(qc);\n            if (rc) {\n                this._sheetController.openThreadIsMutedTabSheet();\n            }\n        ;\n        ;\n            this._updateActionMenu(rc);\n        },\n        _updateMutingSettings: function(qc) {\n            var rc = ra.isThreadMuted(qc);\n            if (((rc && y.shown(this._getNode(\"muteThreadLink\").parentNode)))) {\n                this._sheetController.openThreadIsMutedTabSheet();\n            }\n             else if (((!rc && y.shown(this._getNode(\"unmuteThreadLink\").parentNode)))) {\n                this._sheetController.closeThreadIsMutedTabSheet();\n            }\n            \n        ;\n        ;\n            this._updateActionMenu(rc);\n        },\n        _updateActionMenu: function(qc) {\n            y.conditionShow(this._getNode(\"muteThreadLink\").parentNode, !qc);\n            y.conditionShow(this._getNode(\"unmuteThreadLink\").parentNode, qc);\n        },\n        _updateArchiveWarning: function(qc) {\n            var rc = false;\n            ka.get(ka.user, function(sc) {\n                rc = sc.employee;\n                if (rc) {\n                    ka.getMulti(qc.participants, this._showArchiveWarningIfAllParticipantsAreEmployees.bind(this));\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _updateNewThread: function(qc) {\n            var rc = sa.isNewEmptyLocalThread(qc.thread_id);\n            y.conditionShow(this._getNode(\"dropdown\"), !rc);\n            if (rc) {\n                this.showAddFriend();\n                if (o.get(\"www_chat_compose_suggestions\", 0)) {\n                    this.showPeopleSuggestions();\n                }\n            ;\n            ;\n            }\n             else if (this._peopleSuggestions) {\n                this._peopleSuggestions.destroy();\n                this._peopleSuggestions = null;\n            }\n            \n        ;\n        ;\n        },\n        _showArchiveWarningIfAllParticipantsAreEmployees: function(qc) {\n            var rc = true;\n            {\n                var fin249keys = ((window.top.JSBNG_Replay.forInKeys)((qc))), fin249i = (0);\n                var sc;\n                for (; (fin249i < fin249keys.length); (fin249i++)) {\n                    ((sc) = (fin249keys[fin249i]));\n                    {\n                        rc = ((rc && qc[sc].employee));\n                    ;\n                    };\n                };\n            };\n        ;\n            var tc = this._getNode(\"titanArchiveWarning\");\n            if (tc) {\n                if (this._titlebarTooltipAnchor) {\n                    y.conditionClass(this._titlebarTooltipAnchor, \"narrowTitleBar\", rc);\n                }\n            ;\n            ;\n                y.conditionShow(tc, rc);\n            }\n        ;\n        ;\n        },\n        updateMultichatTooltip: function() {\n            sa.getThreadMeta(this._threadID, function(qc) {\n                if (!qc.is_canonical) {\n                    vb(this._titlebarTooltipAnchor, qc.participants);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        _getNode: function(qc) {\n            return this._tabTemplate.getNode(qc);\n        },\n        _getCanonicalUserID: function() {\n            return sa.getCanonicalUserInThread(this._threadID);\n        },\n        _listen: function(qc, JSBNG__event, rc, sc) {\n            var tc = this._getNode(qc);\n            if (tc) {\n                this._eventListeners.push(g.listen(tc, JSBNG__event, rc.bind(this)));\n            }\n             else if (!sc) {\n                throw new Error(((((\"Could not find node \\\"\" + qc)) + \"\\\"\")));\n            }\n            \n        ;\n        ;\n        },\n        _closePreClicked: function(qc) {\n            this._closeMouseDown = true;\n        },\n        _closeClicked: function(qc) {\n            oc(this);\n            nc.inform(\"closed-tab\", this._threadID);\n            qc.kill();\n        },\n        _nubClicked: function(qc) {\n            qc.kill();\n            return nc.inform(\"nub-activated\", this._threadID);\n        },\n        _dockKeyDown: function(JSBNG__event) {\n            if (((((JSBNG__event.keyCode === ea.RETURN)) || ((JSBNG__event.keyCode === ea.SPACE))))) {\n                nc.inform(\"nub-activated\", this._threadID);\n                JSBNG__event.kill();\n            }\n             else this._handleHotkeyPressed(JSBNG__event);\n        ;\n        ;\n        },\n        _handleHotkeyPressed: function(JSBNG__event) {\n            if (((JSBNG__event.keyCode === ea.ESC))) {\n                oc(this);\n                nc.inform(\"esc-pressed\", this._threadID);\n                JSBNG__event.kill();\n            }\n             else if (((((JSBNG__event.keyCode === ea.TAB)) && !JSBNG__event.ctrlKey))) {\n                var qc = nc.inform(\"tab-pressed\", {\n                    id: this._threadID,\n                    shiftPressed: JSBNG__event.shiftKey\n                });\n                ((!qc && JSBNG__event.kill()));\n            }\n            \n        ;\n        ;\n        },\n        _isTitleTextLinked: function() {\n            var qc = this._getCanonicalUserID();\n            return ((qc && o.get(\"chat_tab_title_link_timeline\")));\n        },\n        _titleClicked: function(JSBNG__event) {\n            var qc = JSBNG__event.getTarget(), rc = wa.byClass(qc, \"titlebarText\"), sc = ((rc && this._isTitleTextLinked()));\n            if (((((!sc && !wa.byClass(qc, \"uiSelector\"))) && !wa.byClass(qc, \"addToThread\")))) {\n                nc.inform(\"lower-activated\", this._threadID);\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        _callClicked: function(qc) {\n            var rc = this._getCanonicalUserID();\n            if (jb.availableForCall(rc)) {\n                var sc = \"chat_tab_icon\";\n                if (((qc.target && y.hasClass(qc.target, \"video_call_promo\")))) {\n                    sc = \"chat_tab_icon_promo\";\n                }\n                 else if (((qc.target && y.hasClass(qc.target, \"video_call_tour\")))) {\n                    sc = \"chat_tab_icon_tour\";\n                }\n                \n            ;\n            ;\n                nc.inform(\"video-call-clicked\", {\n                    threadID: this._threadID,\n                    userID: rc,\n                    clickSource: sc\n                });\n            }\n        ;\n        ;\n            return false;\n        },\n        _addFriendLinkClicked: function() {\n            this.showAddFriend();\n        },\n        _nameConversationLinkClicked: function() {\n            this.showNameConversation();\n        },\n        _clearHistory: function() {\n            var qc = sa.getThreadMetaNow(this._threadID);\n            if (qc) {\n                var rc = this._getCanonicalUserID();\n                la.clearChat(this._threadID, rc, qc.timestamp);\n            }\n        ;\n        ;\n        },\n        _unsubscribeLinkClicked: function() {\n            var qc = [];\n            qc.push({\n                JSBNG__name: \"unsubscribe\",\n                label: \"Leave Conversation\",\n                handler: this._unsubscribeToThread.bind(this)\n            });\n            qc.push(z.CANCEL);\n            new z().setTitle(\"Leave Conversation?\").setBody(\"You will stop receiving messages from this conversation and people will see that you left.\").setButtons(qc).show();\n        },\n        _reportSpamClicked: function() {\n            var qc = this._getCanonicalUserID(), rc = hb(\"/ajax/chat/report.php\").addQueryData({\n                id: qc\n            }).addQueryData({\n                src: \"top_report_link\"\n            });\n            j.send(new k(rc));\n        },\n        _showMuteSettingDialog: function(qc) {\n            ra.showMuteChangeDialog(qc, this._threadID);\n        },\n        _focusTab: function() {\n            y.addClass(this._tabElem, \"focusedTab\");\n            if (this._peopleSuggestions) {\n                this._peopleSuggestions.clearSuggestions();\n            }\n        ;\n        ;\n            this.tryMarkAsRead();\n            this._contextualDialogController.tabFocused();\n            if (((!ub && ((this._showPhotoNUXIfNecessary() || this._showStickerNUXIfNecessary()))))) {\n                h.subscribe([\"ChatNUX/show\",\"ChatNUX/hide\",], function(JSBNG__event) {\n                    ub = ((JSBNG__event === \"ChatNUX/show\"));\n                });\n            }\n        ;\n        ;\n            this._closeMouseDown = false;\n            this._setCloseTooltip(true);\n        },\n        _blurTab: function() {\n            y.removeClass(this._tabElem, \"focusedTab\");\n            ((!this._closeMouseDown && this._setCloseTooltip(false)));\n        },\n        _setCloseTooltip: function(qc) {\n            var rc = this._getNode(\"titlebarCloseButton\"), sc = ((qc ? \"Press Esc to close\" : \"Close tab\"));\n            fb.set(rc, sc, \"above\");\n        },\n        _inputKeyDown: function(JSBNG__event) {\n            if (((((JSBNG__event.keyCode === ea.RETURN)) && !JSBNG__event.shiftKey))) {\n                if (hc(this)) {\n                    fc(this);\n                    JSBNG__event.kill();\n                    return;\n                }\n            ;\n            ;\n                cc(this);\n                JSBNG__event.kill();\n                return;\n            }\n        ;\n        ;\n            if (((((((JSBNG__event.keyCode === ea.DOWN)) && JSBNG__event.shiftKey)) && ((this._getNode(\"input\").value === \"\"))))) {\n                nc.inform(\"lower-activated\", this._threadID);\n                JSBNG__event.kill();\n                return;\n            }\n        ;\n        ;\n            this._handleHotkeyPressed(JSBNG__event);\n        },\n        tryMarkAsRead: function() {\n            if (((!this._messagesView || this._messagesView.isScrolledToBottom()))) {\n                nc.inform(\"read\", this._threadID);\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        _chatConvClicked: function(qc) {\n            this.tryMarkAsRead();\n            if (((wa.byTag(qc.getTarget(), \"a\") || ba.JSBNG__getSelection()))) {\n                return;\n            }\n        ;\n        ;\n            this.JSBNG__focus();\n        },\n        _inputContainerClicked: function(qc) {\n            this.tryMarkAsRead();\n            this.JSBNG__focus();\n        },\n        showTypingIndicator: function(qc) {\n            var rc = sa.getThreadMetaNow(this._threadID), sc = ((this._getCanonicalUserID() || ((((o.get(\"chat_multi_typ\") && rc)) && !rc.is_canonical))));\n            if (sc) {\n                y.conditionClass(this._tabElem, \"typing\", qc);\n            }\n        ;\n        ;\n        },\n        _updateUnreadCount: function(qc) {\n            var rc = qc.unread_count;\n            if (((typeof rc != \"undefined\"))) {\n                var sc = ((!!rc && ((!n.showsTabUnreadUI || n.showsTabUnreadUI())))), tc = this._getNode(\"numMessages\");\n                y.conditionShow(tc, sc);\n                y.conditionClass(this._tabElem, \"highlightTab\", sc);\n                zb(this._threadID, this._tabElem, sc);\n                ba.setContent(tc, rc);\n            }\n        ;\n        ;\n        },\n        _updateCallLink: function(qc) {\n            var rc = this._getNode(\"videoCallLink\");\n            if (w.isOnline()) {\n                var sc = this._getCanonicalUserID(), tc = ((\"fbid:\" + sc));\n                ka.get(tc, function(uc) {\n                    if (jb.availableForCall(sc)) {\n                        fb.set(rc, ob._(\"Start a video call with {firstname}\", {\n                            firstname: uc.short_name\n                        }));\n                        this._updateCallBackLinks(this._tabElem, true);\n                    }\n                     else {\n                        fb.set(rc, ob._(\"{firstname} is currently unavailable for video calling\", {\n                            firstname: uc.short_name\n                        }));\n                        this._hideVideoCallouts();\n                        this._updateCallBackLinks(this._tabElem, false);\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n             else {\n                fb.set(rc, \"You must be online to make a call.\");\n                this._hideVideoCallouts();\n                this._updateCallBackLinks(JSBNG__document.body, false);\n            }\n        ;\n        ;\n        },\n        _updateCallBackLinks: function(qc, rc) {\n            var sc = ba.scry(qc, \"a.callBackLink\");\n            if (rc) {\n                sc.forEach(y.show);\n            }\n             else sc.forEach(y.hide);\n        ;\n        ;\n        },\n        _hideVideoCallouts: function() {\n            this._contextualDialogController.hideVideoCallouts();\n        },\n        _updatePrivacyLink: function(qc) {\n            if (((qc == r.OFFLINE))) {\n                ba.setContent(this._privacyLink, \"Go online\");\n            }\n             else {\n                var rc = this._getCanonicalUserID(), sc = ((\"fbid:\" + rc));\n                ka.get(sc, function(tc) {\n                    var uc = null;\n                    if (((qc == r.BLOCKED))) {\n                        uc = ob._(\"Turn On Chat for {name}\", {\n                            JSBNG__name: tc.short_name\n                        });\n                    }\n                     else uc = ob._(\"Turn Off Chat for {name}\", {\n                        JSBNG__name: tc.short_name\n                    });\n                ;\n                ;\n                    ba.setContent(this._privacyLink, uc);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        _unsubscribeToThread: function() {\n            if (sa.isEmptyLocalThread(this._threadID)) {\n                nc.inform(\"unsubscribed\", this._threadID);\n            }\n             else {\n                var qc = ja.constructLogMessageObject(ma.CHAT_WEB, this._threadID, ia.UNSUBSCRIBE, {\n                });\n                ja.sendMessage(qc);\n            }\n        ;\n        ;\n            return true;\n        },\n        _initializeUploader: function(qc) {\n            this._subscriptionsHandler.addSubscriptions(qc.subscribe([\"all-uploads-completed\",\"upload-canceled\",], function() {\n                jc(this);\n            }.bind(this)), qc.subscribe(\"dom-updated\", function() {\n                kc(this);\n            }.bind(this)), qc.subscribe(\"submit\", function() {\n                this._getNode(\"input\").JSBNG__focus();\n            }.bind(this)));\n        },\n        _initializeAutoSendPhotoUploader: function() {\n            this._photoUploader = new q(this._tabTemplate.getNode(\"photoAttachButtonForm\"), this._tabTemplate.getNode(\"photoFileInput\"), this._tabTemplate.getNode(\"photoAttachID\"));\n            var qc = {\n            };\n            lc(this, \"submit\", xa.UPLOAD_START);\n            lc(this, \"all-uploads-completed\", xa.ALL_UPLOADS_DONE);\n            lc(this, \"all-uploads-failed\", xa.CLIENT_ERROR);\n            this._subscriptionsHandler.addSubscriptions(this._photoUploader.subscribe(\"submit\", function(rc, sc) {\n                ec(this, \"\", sc.raw_attachments, function(tc) {\n                    qc[sc.upload_id] = tc;\n                    tc.do_not_send_to_server = true;\n                    tc.JSBNG__status = ga.RESENDING;\n                    ja.sendMessage(tc);\n                });\n                this._getNode(\"input\").JSBNG__focus();\n            }.bind(this)), this._photoUploader.subscribe(\"all-uploads-failed\", function(rc, sc) {\n                var tc = qc[sc.upload_id];\n                delete qc[sc.upload_id];\n                ja.deleteMessages(tc.thread_id, [tc.message_id,]);\n            }.bind(this)), this._photoUploader.subscribe(\"all-uploads-completed\", function(rc, sc) {\n                var tc = qc[sc.upload_id];\n                delete qc[sc.upload_id];\n                delete tc.raw_attachments;\n                tc.image_ids = sc.image_ids;\n                tc.do_not_send_to_server = false;\n                ja.sendMessage(tc);\n                var uc = ((sc.image_ids.length || sc.attachments.length));\n                dc(this, uc);\n            }.bind(this)));\n        },\n        _stickerSelected: function(qc) {\n            ec(this, \"\", [], function(rc) {\n                rc.has_attachment = true;\n                rc.sticker_id = qc;\n                ja.sendMessage(rc);\n                this.JSBNG__focus();\n            }.bind(this));\n        },\n        _emoticonView: null\n    });\n    e.exports = nc;\n});\n__d(\"ChatNewMessageHandler\", [\"ChatActivity\",\"ChatTabModel\",\"ChatTabView\",\"JSLogger\",\"MercuryAssert\",\"MercuryBrowserAlerts\",\"MercuryUnseenState\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatActivity\"), h = b(\"ChatTabModel\"), i = b(\"ChatTabView\"), j = b(\"JSLogger\"), k = b(\"MercuryAssert\"), l = b(\"MercuryBrowserAlerts\"), m = b(\"MercuryUnseenState\").get(), n = j.create(\"chat_new_message\"), o = {\n        _raiseTab: function(p, q) {\n            var r = h.getTab(p), s = false;\n            if (r) {\n                s = r.raised;\n            }\n             else {\n                h.raiseTab(p, false);\n                s = true;\n            }\n        ;\n        ;\n            q.to_new_tab = !r;\n            q.to_raised_tab = !!s;\n        },\n        _notify: function(p, q, r) {\n            var s = i.get(p);\n            r.view_is_visible = ((s && s.isVisible()));\n            r.view_is_focused = ((s && s.isFocused()));\n            if (!r.view_is_visible) {\n                n.log(\"message_to_hidden\");\n            }\n        ;\n        ;\n            r.is_active = g.isActive();\n            l.messageReceived(q);\n        },\n        _promoteTab: function(p, q, r) {\n            if (((((r && !r[p])) && q))) {\n                h.promoteThreadInPlaceOfThread(p, q);\n            }\n        ;\n        ;\n        },\n        newMessage: function(p, q, r, s) {\n            k.isThreadID(p);\n            var t = {\n                thread_id: p,\n                message_id: q.message_id\n            };\n            this._raiseTab(p, t);\n            this._promoteTab(p, r, s);\n            this._notify(p, q, t);\n            n.log(\"message\", t);\n        }\n    };\n    l.subscribe(\"before-alert\", function(p, JSBNG__event) {\n        var q = JSBNG__event.threadID, r = i.get(q), s = h.getTab(q);\n        if (((((((((((s && s.raised)) && r)) && r.isVisible())) && r.isFocused())) && r.tryMarkAsRead()))) {\n            m.markThreadSeen(q);\n            JSBNG__event.cancelAlert();\n        }\n    ;\n    ;\n    });\n    e.exports = o;\n});\n__d(\"ChatTabPresence\", [\"AvailableList\",\"ChatTabModel\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"AvailableList\"), h = b(\"ChatTabModel\"), i = b(\"MercuryThreads\").get(), j = {\n    };\n    function k(l) {\n        var m = i.getCanonicalUserInThread(l);\n        if (m) {\n            g.updateForID(m);\n        }\n    ;\n    ;\n    };\n;\n    h.subscribe(\"chat/tabs-changed\", function(JSBNG__event, l) {\n        l.tabs.forEach(function(m) {\n            if (((m.raised && !j[m.id]))) {\n                k(m.id);\n            }\n        ;\n        ;\n        });\n        j = {\n        };\n        l.tabs.forEach(function(m) {\n            if (m.raised) {\n                j[m.id] = true;\n            }\n        ;\n        ;\n        });\n    });\n    e.exports = {\n    };\n});\n__d(\"ChatTabPolicy\", [\"ChatBehavior\",\"FBDesktopPlugin\",\"JSLogger\",\"MercuryActionTypeConstants\",\"MercuryAssert\",\"MercuryParticipants\",\"MercuryParticipantTypes\",\"MercurySourceType\",\"MercuryThreadMode\",\"MercuryThreadMuter\",\"MercuryUnseenState\",\"MessagingTag\",\"PresencePrivacy\",\"ShortProfiles\",], function(a, b, c, d, e, f) {\n    var g = b(\"ChatBehavior\"), h = b(\"FBDesktopPlugin\"), i = b(\"JSLogger\"), j = b(\"MercuryActionTypeConstants\"), k = b(\"MercuryAssert\"), l = b(\"MercuryParticipants\"), m = b(\"MercuryParticipantTypes\"), n = b(\"MercurySourceType\"), o = b(\"MercuryThreadMode\"), p = b(\"MercuryThreadMuter\"), q = b(\"MercuryUnseenState\").get(), r = b(\"MessagingTag\"), s = b(\"PresencePrivacy\"), t = b(\"ShortProfiles\"), u = i.create(\"tab_policy\");\n    function v(w, x) {\n        q.markThreadSeen(w, x);\n    };\n;\n    e.exports = {\n        messageIsAllowed: function(w, x, y) {\n            var z = w.thread_id, aa = x.message_id;\n            k.isThreadID(z);\n            k.isParticipantID(x.author);\n            var ba;\n            if (p.isThreadMuted(w)) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    mute_settings: w.mute_settings\n                };\n                u.log(\"message_thread_muted\", ba);\n                return;\n            }\n        ;\n        ;\n            if (((w.mode == o.OBJECT_ORIGINATED))) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    mode: w.mode\n                };\n                u.log(\"message_object_originated\", ba);\n                return;\n            }\n        ;\n        ;\n            if (((((x.source == n.EMAIL)) || ((x.source == n.TITAN_EMAIL_REPLY))))) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    source: x.source\n                };\n                u.log(\"message_source_not_allowed\", ba);\n                return;\n            }\n        ;\n        ;\n            var ca = l.getUserID(x.author);\n            if (!ca) {\n                u.log(\"message_bad_author\", {\n                    thread_id: z,\n                    message_id: aa,\n                    user: ca\n                });\n                return;\n            }\n        ;\n        ;\n            if (((x.action_type != j.USER_GENERATED_MESSAGE))) {\n                ba = {\n                    thread_id: z,\n                    message_id: aa,\n                    type: x.action_type\n                };\n                u.log(\"message_non_user_generated\", ba);\n                return;\n            }\n        ;\n        ;\n            if (((w.is_canonical_user && !g.notifiesUserMessages()))) {\n                u.log(\"message_jabber\", {\n                    thread_id: z,\n                    message_id: aa\n                });\n                v(z, true);\n                return;\n            }\n        ;\n        ;\n            if (((w.is_canonical && !w.canonical_fbid))) {\n                u.log(\"message_canonical_contact\", {\n                    thread_id: z,\n                    message_id: aa\n                });\n                return;\n            }\n        ;\n        ;\n            if (h.shouldSuppressMessages()) {\n                u.log(\"message_desktop\", {\n                    thread_id: z,\n                    message_id: aa\n                });\n                return;\n            }\n        ;\n        ;\n            if (((w.folder != r.INBOX))) {\n                u.log(\"message_folder\", {\n                    thread_id: z,\n                    message_id: aa,\n                    folder: w.folder\n                });\n                return;\n            }\n        ;\n        ;\n            var da = l.getUserID(l.user);\n            t.getMulti([ca,da,], function(ea) {\n                if (!s.allows(ca)) {\n                    u.log(\"message_privacy\", {\n                        thread_id: z,\n                        message_id: aa,\n                        user: ca\n                    });\n                    return;\n                }\n            ;\n            ;\n                var fa = ((ea[ca].employee && ea[da].employee));\n                if (((!fa && ((ea[ca].type !== m.FRIEND))))) {\n                    u.log(\"message_non_friend\", {\n                        thread_id: z,\n                        message_id: aa,\n                        user: ca\n                    });\n                    return;\n                }\n            ;\n            ;\n                y();\n            });\n        }\n    };\n});\n__d(\"ChatTabViewSelector\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"MenuDeprecated\",\"MercuryThreadInformer\",\"MercuryThreads\",\"NubController\",\"ChatTabTemplates\",\"MercuryThreadMetadataRenderer\",\"Toggler\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"MenuDeprecated\"), m = b(\"MercuryThreadInformer\").get(), n = b(\"MercuryThreads\").get(), o = b(\"NubController\"), p = b(\"ChatTabTemplates\"), q = b(\"MercuryThreadMetadataRenderer\").get(), r = b(\"Toggler\"), s = b(\"copyProperties\");\n    function t(u) {\n        var v = p[\":fb:chat:tab:selector\"].build(), w = v.getRoot(), x = v.getNode(\"menu\"), y = k.JSBNG__find(x, \".uiMenuInner\"), z = {\n        }, aa = new o().init(w);\n        i.hide(w);\n        k.insertBefore(u, w);\n        function ba(ea) {\n            var fa = 0;\n            {\n                var fin250keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin250i = (0);\n                var ga;\n                for (; (fin250i < fin250keys.length); (fin250i++)) {\n                    ((ga) = (fin250keys[fin250i]));\n                    {\n                        var ha = z[ga], ia = n.getThreadMetaNow(ga), ja = ha.getNode(\"unreadCount\"), ka = ((((ia && ia.unread_count)) || 0));\n                        fa += ka;\n                        if (((ka > 9))) {\n                            ka = \"+\";\n                        }\n                    ;\n                    ;\n                        i.conditionClass(ja, \"invisible_elem\", !ka);\n                        k.setContent(ja, ka);\n                    };\n                };\n            };\n        ;\n            var la = v.getNode(\"numMessages\");\n            i.conditionShow(la, fa);\n            k.setContent(la, fa);\n        };\n    ;\n        this.setTabData = function(ea) {\n            z = {\n            };\n            if (((ea.length < 1))) {\n                i.hide(w);\n                return;\n            }\n        ;\n        ;\n            i.show(w);\n            k.empty(y);\n            ea.forEach(function(fa) {\n                var ga = p[\":fb:chat:tab:selector:item\"].build();\n                z[fa.id] = ga;\n                var ha = ga.getNode(\"JSBNG__content\");\n                q.renderAndSeparatedParticipantList(fa.id, ha);\n                k.prependContent(y, ga.getRoot());\n                j.set(ga.getRoot(), \"threadID\", fa.id);\n                var ia = ga.getNode(\"closeButton\");\n                g.listen(ia, \"click\", function(JSBNG__event) {\n                    t.inform(\"selector/close-tab\", fa.id);\n                    JSBNG__event.kill();\n                });\n            });\n            aa.flyoutContentChanged();\n            k.setContent(v.getNode(\"numTabs\"), ea.length);\n            ba();\n        };\n        function ca(JSBNG__event, ea) {\n            if (((ea.menu != x))) {\n                return;\n            }\n        ;\n        ;\n            var fa = j.get(ea.item, \"threadID\");\n            t.inform(\"selected\", fa);\n            r.hide(w);\n        };\n    ;\n        function da(JSBNG__event, ea) {\n            l.register(x);\n        };\n    ;\n        l.subscribe(\"select\", ca.bind(this));\n        r.listen(\"show\", w, function() {\n            h.inform(\"layer_shown\", {\n                type: \"ChatTabSelector\"\n            });\n            da();\n        });\n        r.listen(\"hide\", w, function() {\n            h.inform(\"layer_hidden\", {\n                type: \"ChatTabSelector\"\n            });\n        });\n        m.subscribe(\"threads-updated\", ba);\n    };\n;\n    s(t, new h());\n    e.exports = t;\n});\n__d(\"ChatTabController\", [\"ChatTabPresence\",\"ChatTypeaheadBehavior\",\"Arbiter\",\"ChatActivity\",\"ChatBehavior\",\"ChatConfig\",\"ChatNewMessageHandler\",\"ChatTabMessagesView\",\"ChatTabModel\",\"ChatTabPolicy\",\"ChatTabView\",\"ChatTabViewSelector\",\"JSLogger\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"MercuryUnseenState\",\"Style\",\"UserAgent\",\"VideoCallCore\",], function(a, b, c, d, e, f) {\n    b(\"ChatTabPresence\");\n    b(\"ChatTypeaheadBehavior\");\n    var g = b(\"Arbiter\"), h = b(\"ChatActivity\"), i = b(\"ChatBehavior\"), j = b(\"ChatConfig\"), k = b(\"ChatNewMessageHandler\"), l = b(\"ChatTabMessagesView\"), m = b(\"ChatTabModel\"), n = b(\"ChatTabPolicy\"), o = b(\"ChatTabView\"), p = b(\"ChatTabViewSelector\"), q = b(\"JSLogger\"), r = b(\"MercuryParticipants\"), s = b(\"MercuryServerRequests\").get(), t = b(\"MercuryThreadInformer\").get(), u = b(\"MercuryThreads\").get(), v = b(\"MercuryUnseenState\").get(), w = b(\"Style\"), x = b(\"UserAgent\"), y = b(\"VideoCallCore\"), z = ((j.get(\"tab_auto_close_timeout\") || 7200000)), aa = q.create(\"tab_controller\");\n    function ba(na) {\n        u.changeThreadReadStatus(na, true);\n        ca(na);\n    };\n;\n    function ca(na) {\n        v.markThreadSeen(na);\n    };\n;\n    function da(na, oa, pa) {\n        var qa = m.get().tabs;\n        na += ((oa ? 1 : -1));\n        while (((((na >= 0)) && ((na < qa.length))))) {\n            var ra = qa[na], sa = o.get(ra.id);\n            if (((((sa && sa.isVisible())) && ((!pa || ra.raised))))) {\n                sa.JSBNG__focus();\n                return true;\n            }\n        ;\n        ;\n            na += ((oa ? 1 : -1));\n        };\n    ;\n        return false;\n    };\n;\n    function ea(na, oa, pa) {\n        var qa = oa.shouldPromoteOnRaise(na);\n        g.inform(\"chat/promote-tab\", na);\n        if (qa) {\n            m.raiseAndPromoteTab(na, true, pa);\n        }\n         else m.raiseTab(na, true, pa);\n    ;\n    ;\n        var ra = o.get(na);\n        ((ra && ra.JSBNG__focus()));\n    };\n;\n    function fa(na, oa, pa) {\n        var qa = pa.getMaxTabsToShow(), ra = m.indexOf(na);\n        m.closeTabAndDemote(na, ((qa - 2)), oa);\n        return ra;\n    };\n;\n    function ga(na) {\n        var oa = Object.keys(((na.getTabsToShow() || {\n        }))), pa = ((1 * 60)), qa = null, ra = Infinity;\n        for (var sa = 0; ((sa < oa.length)); sa++) {\n            var ta = oa[sa], ua = u.getThreadMetaNow(ta);\n            if (((!o.get(ta).hasEmptyInput() || !ua))) {\n                continue;\n            }\n        ;\n        ;\n            var va = ((((m.getServerTime() - ua.timestamp)) / 1000));\n            if (((!ua.timestamp || ((((ua.timestamp && ((ua.timestamp < ra)))) && ((va > pa))))))) {\n                qa = ua.thread_id;\n                ra = ua.timestamp;\n            }\n        ;\n        ;\n        };\n    ;\n        return qa;\n    };\n;\n    function ha(na) {\n        p.subscribe(\"selected\", function(pa, qa) {\n            ea(qa, na);\n        });\n        g.subscribe(\"chat/open-tab\", function(pa, qa) {\n            ea(qa.thread_id, na, qa.signature_id);\n        });\n        g.subscribe(\"page_transition\", function(pa, qa) {\n            m.closeFragileTabs();\n        });\n        o.subscribe(\"read\", function(JSBNG__event, pa) {\n            ba(pa);\n        });\n        h.subscribe(\"idle\", function(pa, qa) {\n            if (((qa > z))) {\n                var ra = m.get().tabs;\n                ra.forEach(function(sa) {\n                    var ta = sa.id;\n                    u.getThreadMeta(ta, function(ua) {\n                        if (!ua.unread_count) {\n                            aa.log(\"autoclose_idle_seen\", {\n                                thread_id: ta,\n                                idleness: qa\n                            });\n                            m.closeTab(ta, \"autoclose_idle_seen\");\n                        }\n                    ;\n                    ;\n                    });\n                });\n            }\n        ;\n        ;\n        });\n        o.subscribe(\"nub-activated\", function(pa, qa) {\n            ea(qa, na);\n        });\n        o.subscribe(\"lower-activated\", function(pa, qa) {\n            m.lowerTab(qa);\n            var ra = o.get(qa);\n            ((ra && ra.JSBNG__focus()));\n        });\n        function oa(pa, qa) {\n            y.showOutgoingCallDialog(qa.userID, qa.clickSource);\n            m.lowerTab(qa.threadID);\n        };\n    ;\n        o.subscribe(\"video-call-clicked\", oa);\n        l.subscribe(\"video-call-clicked\", oa);\n        o.subscribe(\"closed-tab\", function(pa, qa) {\n            aa.log(\"close_view\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_view\", na);\n            return false;\n        });\n        o.subscribe(\"thread-deleted\", function(pa, qa) {\n            aa.log(\"close_thread_deleted\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_thread_deleted\", na);\n            return false;\n        });\n        o.subscribe(\"unsubscribed\", function(pa, qa) {\n            aa.log(\"close_view_unsubscribed\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_view_unsubscribed\", na);\n            return false;\n        });\n        o.subscribe(\"esc-pressed\", function(pa, qa) {\n            aa.log(\"close_esc\", {\n                thread_id: qa\n            });\n            var ra = fa(qa, \"close_esc\", na);\n            (function() {\n                ((da(((ra - 1)), true, true) || da(ra, false, true)));\n            }).defer();\n        });\n        p.subscribe(\"selector/close-tab\", function(pa, qa) {\n            aa.log(\"close_chat_from_selector\", {\n                thread_id: qa\n            });\n            fa(qa, \"close_chat_from_selector\", na);\n        });\n        t.subscribe(\"messages-received\", function(pa, qa) {\n            {\n                var fin251keys = ((window.top.JSBNG_Replay.forInKeys)((qa))), fin251i = (0);\n                var ra;\n                for (; (fin251i < fin251keys.length); (fin251i++)) {\n                    ((ra) = (fin251keys[fin251i]));\n                    {\n                        var sa = qa[ra];\n                        for (var ta = 0; ((ta < sa.length)); ta++) {\n                            var ua = sa[ta];\n                            if (((ua.author != r.user))) {\n                                if (!ua.is_unread) {\n                                    aa.log(\"message_already_read\", {\n                                        action_id: ua.action_id,\n                                        thread_id: ua.thread_id\n                                    });\n                                    continue;\n                                }\n                            ;\n                            ;\n                                u.getThreadMeta(ra, function(va) {\n                                    n.messageIsAllowed(va, ua, function() {\n                                        var wa = ((na.hasRoomForRaisedTab() ? undefined : ga(na)));\n                                        k.newMessage(ra, ua, wa, na.getTabsToShow());\n                                    });\n                                });\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    };\n                };\n            };\n        ;\n        });\n        t.subscribe(\"thread-read-changed\", function(pa, qa) {\n            {\n                var fin252keys = ((window.top.JSBNG_Replay.forInKeys)((qa))), fin252i = (0);\n                var ra;\n                for (; (fin252i < fin252keys.length); (fin252i++)) {\n                    ((ra) = (fin252keys[fin252i]));\n                    {\n                        if (!qa[ra].mark_as_read) {\n                            aa.log(\"autoclose_marked_unread\", {\n                                thread_id: ra\n                            });\n                            m.closeTab(ra, \"autoclose_marked_unread\");\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        });\n        o.subscribe(\"tab-pressed\", function(pa, qa) {\n            return !da(m.indexOf(qa.id), qa.shiftPressed);\n        });\n        g.subscribe(q.DUMP_EVENT, function(pa, qa) {\n            qa.chat_controller = {\n                auto_close_timeout: z\n            };\n        });\n    };\n;\n    if (x.firefox()) {\n        var ia = function() {\n            return ((((w.get(JSBNG__document.body, \"overflowX\") + \" \")) + w.get(JSBNG__document.body, \"overflowY\")));\n        }, ja = ia(), ka = function() {\n            var na = ia();\n            if (((na !== ja))) {\n                ja = na;\n                g.inform(\"overflow-applied-to-body\");\n            }\n        ;\n        ;\n        };\n        if (((\"JSBNG__MutationObserver\" in window))) {\n            var la = new JSBNG__MutationObserver(ka), ma = {\n                attributes: true,\n                attributeFilter: [\"class\",\"style\",]\n            };\n            la.observe(JSBNG__document.documentElement, ma);\n        }\n         else JSBNG__document.documentElement.JSBNG__addEventListener(\"DOMAttrModified\", function(JSBNG__event) {\n            if (((((JSBNG__event.getTarget() === JSBNG__document.documentElement)) && ((((JSBNG__event.attrName === \"class\")) || ((JSBNG__event.attrName === \"style\"))))))) {\n                ka();\n            }\n        ;\n        ;\n        }, false);\n    ;\n    ;\n    }\n;\n;\n    e.exports = ha;\n});\n__d(\"ChatTabViewCoordinator\", [\"Arbiter\",\"ChatTabModel\",\"ChatTabView\",\"ChatTabViewSelector\",\"CSS\",\"VideoCallCore\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatTabModel\"), i = b(\"ChatTabView\"), j = b(\"ChatTabViewSelector\"), k = b(\"CSS\"), l = b(\"VideoCallCore\");\n    function m(n, o) {\n        var p = new j(n), q = {\n        }, r = false;\n        function s() {\n            var w = h.get(), x = {\n            };\n            w.tabs.forEach(function(z) {\n                x[z.id] = 1;\n            });\n            {\n                var fin253keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin253i = (0);\n                var y;\n                for (; (fin253i < fin253keys.length); (fin253i++)) {\n                    ((y) = (fin253keys[fin253i]));\n                    {\n                        if (!x[y]) {\n                            q[y].destroy();\n                            delete (q[y]);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            t(w);\n            u(w);\n        };\n    ;\n        function t(w) {\n            var x = null;\n            w.tabs.forEach(function(y) {\n                var z = y.id, aa = false;\n                if (!q[z]) {\n                    q[z] = new i(z, y.server_id, y.signatureID);\n                    aa = true;\n                }\n                 else q[z].updateSignatureID(y.signatureID);\n            ;\n            ;\n                if (((aa || !q[z].nextTabIs(x)))) {\n                    var ba = q[z].getScrollTop();\n                    if (x) {\n                        q[z].insertBefore(x);\n                    }\n                     else q[z].appendTo(n);\n                ;\n                ;\n                    if (ba) {\n                        q[z].setScrollTop(ba);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                x = q[z];\n            });\n        };\n    ;\n        function u(w) {\n            var x = o.getTabsToShow(w), y = [], z = false;\n            w.tabs.forEach(function(aa) {\n                if (!x[aa.id]) {\n                    q[aa.id].setVisibleState(false, aa.raised);\n                    y.push(aa);\n                }\n            ;\n            ;\n            });\n            w.tabs.forEach(function(aa) {\n                if (x[aa.id]) {\n                    q[aa.id].setVisibleState(true, aa.raised);\n                    z |= aa.raised;\n                }\n            ;\n            ;\n            });\n            p.setTabData(y);\n            v(z);\n        };\n    ;\n        function v(w) {\n            if (((!w && r))) {\n                g.inform(\"layer_hidden\", {\n                    type: \"ChatTab\"\n                });\n                r = false;\n            }\n             else if (((w && !r))) {\n                g.inform(\"layer_shown\", {\n                    type: \"ChatTab\"\n                });\n                r = true;\n            }\n            \n        ;\n        ;\n        };\n    ;\n        if (l.isSupported()) {\n            k.addClass(n, \"videoCallEnabled\");\n        }\n    ;\n    ;\n        o.subscribe(\"tabs-changed\", s);\n        s();\n    };\n;\n    e.exports = m;\n});\n__d(\"TabsViewport\", [\"Arbiter\",\"ArbiterMixin\",\"ChatTabModel\",\"Dock\",\"DOM\",\"DOMDimensions\",\"JSBNG__Event\",\"Parent\",\"Vector\",\"ViewportBounds\",\"areObjectsEqual\",\"copyProperties\",\"csx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"ChatTabModel\"), j = b(\"Dock\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"JSBNG__Event\"), n = b(\"Parent\"), o = b(\"Vector\"), p = b(\"ViewportBounds\"), q = b(\"areObjectsEqual\"), r = b(\"copyProperties\"), s = b(\"csx\"), t = b(\"shield\"), u = 164, v = 264;\n    function w(x) {\n        this._root = x;\n        var y = this._recalculateWidth.bind(this);\n        m.listen(window, \"resize\", y);\n        j.subscribe(\"resize\", y);\n        g.subscribe([\"LitestandSidebar/expand\",\"LitestandSidebar/collapse\",], y);\n        g.subscribeOnce([\"sidebar/initialized\",\"LitestandSidebar/initialized\",], y, g.SUBSCRIBE_NEW);\n        i.subscribe(\"chat/tabs-changed\", t(this._recalculateTabs, this, true));\n        this._recalculateWidth();\n        this._initialized = true;\n    };\n;\n    r(w.prototype, h, {\n        _root: null,\n        _initialized: false,\n        _availableWidth: 0,\n        _maxShown: 1,\n        _viewState: null,\n        _recalculateWidth: function() {\n            var x = w._getAvailableDockWidth(this._root), y = Math.max(1, Math.floor(((x / v)))), z = ((y != this._maxShown));\n            if (((((((!this._viewState || z)) || ((x <= this._viewState.usedWidth)))) || ((x > this._viewState.widthToShowNext))))) {\n                this._availableWidth = x;\n                this._maxShown = y;\n                this._viewState = null;\n                this._recalculateTabs(z);\n            }\n        ;\n        ;\n        },\n        _onTabsChanged: function() {\n            if (this._initialized) {\n                this.inform(\"tabs-changed\");\n                this.inform(\"max-to-show-changed\", this._maxShown);\n                this.inform(\"max-to-show-change-completed\");\n            }\n        ;\n        ;\n        },\n        _recalculateTabs: function(x) {\n            var y = w._getTabsToShow(i.get(), this._availableWidth);\n            if (((x || !q(this._viewState, y)))) {\n                this._viewState = y;\n                this._onTabsChanged();\n            }\n        ;\n        ;\n        },\n        getMaxTabsToShow: function() {\n            return this._maxShown;\n        },\n        checkWidth: function() {\n            this._recalculateWidth();\n        },\n        hasRoomForRaisedTab: function() {\n            return ((((this._availableWidth - this._viewState.usedWidth)) > v));\n        },\n        getTabsToShow: function() {\n            return JSON.parse(JSON.stringify(this._viewState.tabsToShow));\n        },\n        shouldPromoteOnRaise: function(x) {\n            if (!this._viewState.tabsToShow[x]) {\n                return true;\n            }\n        ;\n        ;\n            if (((this._viewState.nextToHide != x))) {\n                return false;\n            }\n        ;\n        ;\n            var y = i.getTab(x), z = ((y && y.raised));\n            return ((!z && ((((this._availableWidth - this._viewState.usedWidth)) < 100))));\n        }\n    });\n    r(w, {\n        _getAvailableDockWidth: function(x) {\n            var y = l.getViewportWithoutScrollbarDimensions().width;\n            y -= ((p.getLeft() + p.getRight()));\n            y -= 50;\n            var z = n.byClass(x, \"fbDock\"), aa = k.JSBNG__find(z, \"._56ox\"), ba = o.getElementDimensions(aa).x;\n            y -= ba;\n            var ca = k.JSBNG__find(z, \"._56oy\");\n            ba += o.getElementDimensions(ca).x;\n            var da = o.getElementDimensions(z), ea = ((da.x - ba));\n            y -= ea;\n            y -= 15;\n            return Math.max(y, 0);\n        },\n        _getTabsToShow: function(x, y) {\n            y = Math.max(y, ((v + 1)));\n            function z(oa) {\n                return ((oa.raised ? v : u));\n            };\n        ;\n            var aa = JSON.parse(JSON.stringify(x.tabs)), ba = -1, ca = null;\n            if (x.promoted) {\n                aa.forEach(function(oa, pa) {\n                    if (((oa.id === x.promoted))) {\n                        ba = pa;\n                        ca = oa;\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            var da = 0, ea = 0, fa = !ca;\n            aa.forEach(function(oa, pa) {\n                var qa = z(oa);\n                oa.leftmostOffset = ((da + v));\n                da += qa;\n                if (((oa.leftmostOffset < y))) {\n                    ea++;\n                }\n            ;\n            ;\n                fa |= ((pa == ba));\n                oa.alreadyPlacedPromoted = fa;\n            });\n            function ga(oa, pa, qa) {\n                var ra = {\n                };\n                for (var sa = 0; ((sa < pa)); sa++) {\n                    var ta = oa[sa];\n                    if (((!ta.alreadyPlacedPromoted && ((sa == ((pa - 1))))))) {\n                        ra[qa] = true;\n                    }\n                     else ra[ta.id] = true;\n                ;\n                ;\n                };\n            ;\n                return ra;\n            };\n        ;\n            var ha = ga(aa, ea, x.promoted), ia = ga(aa, ((ea - 1)), x.promoted), ja = null;\n            {\n                var fin254keys = ((window.top.JSBNG_Replay.forInKeys)((ha))), fin254i = (0);\n                var ka;\n                for (; (fin254i < fin254keys.length); (fin254i++)) {\n                    ((ka) = (fin254keys[fin254i]));\n                    {\n                        if (!ia[ka]) {\n                            ja = ka;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var la = aa[((ea - 1))], ma = ((la ? la.leftmostOffset : 0)), na = Infinity;\n            if (((ea < aa.length))) {\n                na = aa[ea].leftmostOffset;\n            }\n        ;\n        ;\n            return {\n                nextToHide: ja,\n                tabsToShow: ha,\n                usedWidth: ma,\n                widthToShowNext: na\n            };\n        }\n    });\n    e.exports = w;\n});\n__d(\"LinkshimHandler\", [\"JSBNG__Event\",\"LinkshimAsyncLink\",\"LinkshimHandlerConfig\",\"URI\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"LinkshimAsyncLink\"), i = b(\"LinkshimHandlerConfig\"), j = b(\"URI\"), k = b(\"shield\"), l = {\n        setUpLinkshimHandling: function(r) {\n            var s = j(r.getAttribute(\"href\")), t = m(s);\n            if (((t && n(s)))) {\n                g.listen(r, \"mouseover\", k(h.swap, null, r, t));\n                var u = p(s);\n                g.listen(r, \"click\", function() {\n                    if (i.supports_meta_referrer) {\n                        h.referrer_log(r, u, o(s).toString());\n                    }\n                     else h.swap(r, s);\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n        }\n    };\n    function m(r) {\n        return ((r.getQueryData().u ? new j(r.getQueryData().u) : null));\n    };\n;\n    function n(r) {\n        return r.getQueryData().hasOwnProperty(\"s\");\n    };\n;\n    function o(r) {\n        return j(\"/si/ajax/l/render_linkshim_log/\").setSubdomain(\"www\").setQueryData(r.getQueryData());\n    };\n;\n    function p(r) {\n        var s;\n        if (q()) {\n            s = j(r).addQueryData({\n                render_verification: true\n            });\n        }\n         else s = m(r);\n    ;\n    ;\n        return s;\n    };\n;\n    function q() {\n        var r = ((i.render_verification_rate || 0));\n        return ((Math.floor(((((Math.JSBNG__random() * r)) + 1))) === r));\n    };\n;\n    e.exports = l;\n});\n__d(\"legacy:CompactTypeaheadRenderer\", [\"CompactTypeaheadRenderer\",], function(a, b, c, d) {\n    if (!a.TypeaheadRenderers) {\n        a.TypeaheadRenderers = {\n        };\n    }\n;\n;\n    a.TypeaheadRenderers.compact = b(\"CompactTypeaheadRenderer\");\n}, 3);");
36563 // 13257
36564 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o96,o97);
36565 // undefined
36566 o97 = null;
36567 // 13262
36568 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o98,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/y1/r/-lwVuunZG1z.js",o206);
36569 // undefined
36570 o98 = null;
36571 // undefined
36572 o206 = null;
36573 // 13266
36574 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"H+v1W\",]);\n}\n;\n__d(\"CanvasAppRequestUpdater\", [\"Arbiter\",\"CSS\",\"ChannelConstants\",\"DOM\",\"copyProperties\",\"csx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"ChannelConstants\"), j = b(\"DOM\"), k = b(\"copyProperties\"), l = b(\"csx\");\n    function m(n) {\n        this._root = n;\n        g.subscribe(i.getArbiterType(\"app_request_create\"), function(o, p) {\n            var q = j.scry(this._root, (\".item_\" + p.obj.appid))[0], r = (q && j.scry(q, \"._1k71\")[0]);\n            (r && j.appendContent(r, p.obj.request));\n            (q && this._updateBookmark(q, 1));\n        }.bind(this));\n        g.subscribe(i.getArbiterType(\"app_request_delete\"), function(o, p) {\n            var q = j.scry(this._root, (\".item_\" + p.obj.appid))[0], r = (q && j.scry(q, ((\"[data-requestid='\" + p.obj.requestid) + \"']\"))[0]);\n            (r && j.remove(r.parentNode));\n            (q && this._updateBookmark(q, -1));\n        }.bind(this));\n    };\n    k(m.prototype, {\n        _updateBookmark: function(n, o) {\n            var p = j.find(n, \"._1k72\"), q = j.find(n, \".countValue\"), r = parseInt(j.getText(q), 10), s = Math.max(0, (r + o));\n            j.setContent(q, s);\n            if ((s < 1)) {\n                h.hide(q.parentNode);\n                h.hide(p);\n            }\n             else {\n                h.show(q.parentNode);\n                h.show(p);\n            }\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"CanvasFlyoutLoader\", [\"AsyncRequest\",\"Event\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Event\"), i = b(\"shield\"), j = {\n        endpoint: \"/ajax/canvas/flyouts\",\n        init: function(k, l, m) {\n            this.root = k;\n            this.largeApps = l;\n            this.seeAllApps = m;\n            this.handler = h.listen(k, \"mouseenter\", i(this.loadFlyouts, this));\n        },\n        loadFlyouts: function() {\n            this.handler.remove();\n            this.handler = null;\n            var k = {\n                items: this.largeApps,\n                all_apps: this.seeAllApps\n            };\n            new g().setURI(this.endpoint).setRelativeTo(this.root).setMethod(\"post\").setReadOnly(true).setData(k).setAllowCrossPageTransition(true).send();\n        }\n    };\n    e.exports = j;\n});\n__d(\"CanvasRecommendationFlyoutLoader\", [\"AsyncRequest\",\"Event\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Event\"), i = b(\"shield\"), j = {\n        endpoint: \"/ajax/canvas/recommendation/flyouts\",\n        init: function(k, l, m, n) {\n            this.root = k;\n            this.apps = l;\n            this.editorialApps = m;\n            if (n) {\n                this.egoRedirectUrls = n;\n            };\n            this.handler = h.listen(k, \"mouseenter\", i(this.loadFlyouts, this));\n        },\n        loadFlyouts: function() {\n            this.handler.remove();\n            this.handler = null;\n            var k = {\n                items: this.apps\n            };\n            if (this.editorialApps) {\n                k.editorial_items = this.editorialApps;\n            };\n            if (this.egoRedirectUrls) {\n                k.egoredirecturls = this.egoRedirectUrls;\n            };\n            new g().setURI(this.endpoint).setRelativeTo(this.root).setMethod(\"post\").setReadOnly(true).setData(k).setAllowCrossPageTransition(true).send();\n        }\n    };\n    e.exports = j;\n});\n__d(\"BuddyListNub\", [\"JSXDOM\",\"Event\",\"Arbiter\",\"AvailableList\",\"BlackbirdUpsell\",\"ChannelConnection\",\"ChannelConstants\",\"ChatConfig\",\"ChatVisibility\",\"Class\",\"CSS\",\"Dock\",\"DOM\",\"HTML\",\"Keys\",\"NubController\",\"OrderedFriendsList\",\"Parent\",\"PresencePrivacy\",\"Toggler\",\"copyProperties\",\"csx\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Event\"), i = b(\"Arbiter\"), j = b(\"AvailableList\"), k = b(\"BlackbirdUpsell\"), l = b(\"ChannelConnection\"), m = b(\"ChannelConstants\"), n = b(\"ChatConfig\"), o = b(\"ChatVisibility\"), p = b(\"Class\"), q = b(\"CSS\"), r = b(\"Dock\"), s = b(\"DOM\"), t = b(\"HTML\"), u = b(\"Keys\"), v = b(\"NubController\"), w = b(\"OrderedFriendsList\"), x = b(\"Parent\"), y = b(\"PresencePrivacy\"), z = b(\"Toggler\"), aa = b(\"copyProperties\"), ba = b(\"csx\"), ca = b(\"cx\"), da = b(\"tx\"), ea = 32, fa = 10;\n    function ga(ha, ia, ja) {\n        this.parent.construct(this);\n        this.parent.init(ha);\n        this.root = ha;\n        this.orderedList = ia;\n        this.typeahead = ja;\n        this.button = s.find(ha, \"a.fbNubButton\");\n        this.unreadCount = s.find(ha, \"span._5ayx\");\n        this.label = s.find(ha, \"span.label\");\n        this.body = s.scry(ha, \"div.fbNubFlyoutBody\")[0];\n        this.container = x.byClass(ha, \"_56ox\");\n        var ka = s.find(ha, \"div.fbNubFlyoutTitlebar\");\n        z.createInstance(ka).setSticky(false);\n        ia.subscribe(\"render\", this.flyoutContentChanged.bind(this));\n        ia.setScrollContainer(this.body);\n        j.subscribe(\"buddylist/availability-changed\", this._updateCount.bind(this));\n        i.subscribe(\"chat/connect\", this._handleConnect.bind(this));\n        y.subscribe(\"privacy-user-presence-changed\", this._handleVisibilityChange.bind(this));\n        this.message = s.find(ha, \"div._4mq1\");\n        this.warningMsgText = null;\n        this.warningMsgEventListener = null;\n        this.showWarningTimeout = null;\n        l.subscribe(l.CONNECTED, this._handleChannelConnected.bind(this));\n        l.subscribe(l.SHUTDOWN, this._handleChannelShutdown.bind(this));\n        l.subscribe(l.RECONNECTING, this._handleChannelReconnecting.bind(this));\n        l.subscribe([l.MUTE_WARNING,l.UNMUTE_WARNING,], this._updateView.bind(this));\n        this.subscribe(\"show\", this.onShow.bind(this));\n        this.subscribe(\"hide\", this.onHide.bind(this));\n        this.subscribe(\"resize\", this.onResize.bind(this));\n        h.listen(ha, \"keydown\", this._onKeyDown.bind(this));\n        h.listen(this.button, \"click\", this.onButtonClick.bind(this));\n        ja.subscribe([\"respond\",\"reset\",], function(la, ma) {\n            if (this._isOpen) {\n                var na = this.orderedList.isVisible();\n                if ((((ma && ma.value) && (ma.value === ja.getCore().getValue())) && ja.getView().isVisible())) {\n                    r.setUseMaxHeight(this.root, false);\n                    this.orderedList.hide();\n                }\n                 else this._showBuddyList();\n            ;\n                if ((na !== this.orderedList.isVisible())) {\n                    this.flyoutContentChanged();\n                };\n            }\n        ;\n        }.bind(this));\n        i.subscribe(\"sidebar/show\", this.hide.bind(this));\n        if (n.get(\"litestand_buddylist_count\")) {\n            i.subscribe(\"buddylist-nub/updateCount\", function(la, ma) {\n                this._unreadMessageCount = ma.count;\n                this._updateView();\n            }.bind(this));\n        };\n        this._orderedListCount = w.getList().length;\n        i.inform(\"buddylist-nub/initialized\", this, i.BEHAVIOR_PERSISTENT);\n        this._handleVisibilityChange();\n    };\n    p.extend(ga, v);\n    aa(ga.prototype, {\n        getButton: function() {\n            return this.button;\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        _handleConnect: function(ha) {\n            this._updateView(true);\n        },\n        _getShutdownReason: function(ha) {\n            switch (ha) {\n              case m.HINT_AUTH:\n                return \"Your session has timed out. Please log in.\";\n              case m.HINT_CONN:\n                return da._(\"Facebook {Chat} is currently unavailable.\", {\n                    Chat: \"Chat\"\n                });\n              case m.HINT_MAINT:\n                return da._(\"Facebook {Chat} is currently down for maintenance.\", {\n                    Chat: \"Chat\"\n                });\n              default:\n                return da._(\"Facebook {Chat} is currently unavailable.\", {\n                    Chat: \"Chat\"\n                });\n            };\n        },\n        _getReconnectMsg: function(ha) {\n            var ia;\n            if ((ha === null)) {\n                ia = \"Unable to connect to chat. Check your Internet connection.\";\n            }\n             else if ((ha > n.get(\"warning_countdown_threshold_msec\"))) {\n                var ja = s.create(\"a\", {\n                    href: \"#\",\n                    className: \"fbChatReconnectLink\"\n                }, \"Try again\"), ka = s.create(\"div\", null, ja), la = ka.innerHTML;\n                ia = t(da._(\"Unable to connect to chat. {try-again-link}\", {\n                    \"try-again-link\": la\n                }));\n            }\n             else if ((ha > 1000)) {\n                ia = da._(\"Unable to connect to chat. Reconnecting in {seconds}...\", {\n                    seconds: Math.floor((ha / 1000))\n                });\n            }\n             else ia = \"Unable to connect to chat. Reconnecting...\";\n            \n            \n        ;\n            return ia;\n        },\n        _resetShowWarningTimeout: function() {\n            if (this.showWarningTimeout) {\n                clearTimeout(this.showWarningTimeout);\n                this.showWarningTimeout = null;\n            }\n        ;\n        },\n        _handleChannelConnected: function(ha) {\n            this._resetShowWarningTimeout();\n            if (this.orderedList.isVisible()) {\n                o.goOnline();\n            };\n            this.warningMsgText = null;\n            this._updateView();\n        },\n        _handleChannelShutdown: function(ha, ia) {\n            this._resetShowWarningTimeout();\n            this.warningMsgText = this._getShutdownReason(ia);\n            this._updateView();\n        },\n        _handleChannelReconnecting: function(ha, ia) {\n            this._resetShowWarningTimeout();\n            this.warningMsgText = this._getReconnectMsg(ia);\n            if ((ia > 1000)) {\n                if ((ia > n.get(\"warning_countdown_threshold_msec\"))) {\n                    if (this.warningMsgEventListener) {\n                        this.warningMsgEventListener.remove();\n                        this.warningMsgEventListener = null;\n                    }\n                ;\n                    this.warningMsgEventListener = h.listen(this.message, \"click\", function(event) {\n                        if (q.hasClass(event.getTarget(), \"fbChatReconnectLink\")) {\n                            this._tryReconnect();\n                            event.kill();\n                        }\n                    ;\n                    }.bind(this));\n                }\n            ;\n                this.showWarningTimeout = setTimeout(this._handleChannelReconnecting.bind(this, ha, (ia - 1000)), 1000, false);\n            }\n        ;\n            this._updateView();\n        },\n        _tryReconnect: function() {\n            if (l.disconnected()) {\n                l.reconnect();\n            };\n        },\n        _handleVisibilityChange: function() {\n            this._updateView();\n            if (k.shouldShow()) {\n                if (o.hasBlackbirdEnabled()) {\n                    k.showBlackbirdDialog(this.getButton(), y.getVisibility());\n                }\n                 else if (!o.isOnline()) {\n                    k.showOfflineDialog(this.getButton());\n                }\n            ;\n            }\n             else k.hide();\n        ;\n            if (!o.isOnline()) {\n                this.hide();\n            };\n        },\n        _updateView: function(ha) {\n            var ia = this.container;\n            if (ia) {\n                q.conditionClass(ia, \"offline\", !o.isOnline());\n                q.conditionClass(ia, \"error\", l.disconnected());\n            }\n        ;\n            if (l.disconnected()) {\n                s.setContent(this.message, this.warningMsgText);\n            };\n            var ja, ka;\n            if (!o.isOnline()) {\n                ja = da._(\"{Chat} (Off)\", {\n                    Chat: \"Chat\"\n                });\n            }\n             else if (l.disconnected()) {\n                ja = da._(\"{Chat} (Disconnected)\", {\n                    Chat: \"Chat\"\n                });\n            }\n             else {\n                var la = j.getOnlineCount();\n                if (la) {\n                    ja = da._(\"{Chat} {number-available}\", {\n                        Chat: \"Chat\",\n                        \"number-available\": g.span({\n                            className: \"count\"\n                        }, \" (\", g.strong(null, la), \") \")\n                    });\n                }\n                 else {\n                    ja = \"Chat\";\n                    ka = true;\n                }\n            ;\n            }\n            \n        ;\n            this._setUnread(this._unreadMessageCount);\n            this._setLabel(ja, ka);\n            this.buttonContentChanged();\n        },\n        onButtonClick: function() {\n            this._conditionallyShowTypeahead();\n            if (q.shown(this.typeahead.getElement())) {\n                var ha = this.subscribe(\"show\", function() {\n                    this.typeahead.getCore().getElement().focus();\n                    k.dismiss();\n                }.bind(this));\n                this.unsubscribe.bind(this, ha).defer();\n            }\n        ;\n        },\n        onHide: function() {\n            this._isOpen = false;\n            if (this._buddyListRenderSubscription) {\n                this.orderedList.unsubscribe(this._buddyListRenderSubscription);\n                this._buddyListRenderSubscription = null;\n            }\n        ;\n            this.orderedList.hide();\n            this.typeahead.getCore().reset();\n        },\n        _onKeyDown: function(event) {\n            var ha = h.getKeyCode(event);\n            if (((ha === u.ESC) && !q.hasClass(this.root, \"menuOpened\"))) {\n                this.hide();\n                return false;\n            }\n        ;\n        },\n        onResize: function() {\n            var ha = (r.getMaxFlyoutHeight(this.root) - 60), ia = Math.max(250, ha);\n            this.orderedList.setNumTopFriends(Math.floor((ia / ea)));\n        },\n        _showBuddyList: function() {\n            if (!this._buddyListRenderSubscription) {\n                this._buddyListRenderSubscription = this.orderedList.subscribe(\"render\", r.setUseMaxHeight.bind(r, this.root, false));\n            };\n            this.orderedList.show();\n        },\n        onShow: function() {\n            this._isOpen = true;\n            if (l.disconnected()) {\n                this._tryReconnect();\n                this._showBuddyList();\n            }\n             else o.goOnline(this._showBuddyList.bind(this));\n        ;\n        },\n        _setLabel: function(ha, ia) {\n            var ja = this.label.cloneNode(true);\n            s.setContent(ja, ha);\n            s.replace(this.label, ja);\n            this.label = ja;\n            (this.throbber && q.conditionShow(this.throbber, !!ia));\n        },\n        _setUnread: function(ha) {\n            q.conditionShow(this.unreadCount, !!ha);\n            if (ha) {\n                ha = g.span({\n                    className: \"_51jx _5ayw\"\n                }, ha);\n                s.setContent(this.unreadCount, ha);\n            }\n        ;\n        },\n        _conditionallyShowTypeahead: function() {\n            q.conditionShow(this.typeahead.getElement(), (this._orderedListCount >= fa));\n        },\n        _updateCount: function() {\n            this._updateView();\n            this._conditionallyShowTypeahead();\n        }\n    });\n    e.exports = ga;\n});\n__d(\"LiveBarData\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"ChannelConstants\",\"LayerDestroyOnHide\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"AsyncRequest\"), j = b(\"ChannelConstants\"), k = b(\"LayerDestroyOnHide\"), l = b(\"copyProperties\"), m = b(\"setTimeoutAcrossTransitions\"), n = false, o = {\n    }, p = {\n    }, q = {\n    };\n    function r(y) {\n        if (((((y.expires * 1000)) - Date.now()) > 0)) {\n            return true\n        };\n        return false;\n    };\n    function s(y) {\n        var z = y.payload.actions;\n        if (!((z && z.length))) {\n            return\n        };\n        var aa;\n        for (var ba = 0; (ba < z.length); ba++) {\n            aa = z[ba].actor_id;\n            if ((!o[aa] || (z[ba].action_id != o[aa].action_id))) {\n                continue;\n            };\n            if ((z[ba].delete_action || z[ba].remove)) {\n                v(z[ba]);\n                continue;\n            }\n        ;\n        };\n    };\n    function t(y) {\n        var z = false;\n        for (var aa = 0; (aa < y.length); aa++) {\n            if ((y[aa].delete_action || y[aa].remove)) {\n                v(y[aa]);\n                continue;\n            }\n        ;\n            var ba = y[aa].actor_id, ca = y[aa].action_id;\n            if (o[ba]) {\n                if ((o[ba].action_id == ca)) {\n                    continue;\n                };\n                v(o[ba]);\n            }\n        ;\n            z = true;\n            o[ba] = y[aa];\n            u(y[aa]);\n        };\n        if (z) {\n            x.inform(\"new-actions\");\n        };\n    };\n    function u(y) {\n        var z = (((y.expires * 1000)) - Date.now());\n        p[y.actor_id] = m(v.curry(y), Math.max(0, z));\n    };\n    function v(y) {\n        if (!o[y.actor_id]) {\n            return\n        };\n        if ((o[y.actor_id].action_id != y.action_id)) {\n            return\n        };\n        delete o[y.actor_id];\n        var z = y.actor_id;\n        if (p[z]) {\n            clearTimeout(p[z]);\n            delete p[z];\n        }\n    ;\n        w(z);\n        x.inform(\"remove-action\", y);\n    };\n    function w(y) {\n        var z = q[y];\n        if (z) {\n            z.enableBehavior(k);\n            if (!z.isShown()) {\n                z.destroy();\n            };\n            delete q[y];\n        }\n    ;\n    };\n    g.subscribe(j.getArbiterType(\"livebar_update\"), function(y, z) {\n        t(z.obj.actions);\n    });\n    var x = {\n    };\n    l(x, h, {\n        fetch: function() {\n            if (n) {\n                return\n            };\n            var y = [];\n            for (var z in o) {\n                var aa = o[z];\n                if (aa.suppress_callout) {\n                    continue;\n                };\n                if (!q[aa.actor_id]) {\n                    y.push(o[z]);\n                };\n            };\n            if ((y.length > 0)) {\n                n = true;\n                new i().setURI(\"/ajax/chat/livebar.php\").setData({\n                    actions: y\n                }).setHandler(s).setFinallyHandler(function() {\n                    n = false;\n                }).setAllowCrossPageTransition(true).send();\n            }\n        ;\n        },\n        addActions: t,\n        getAction: function(y) {\n            var z = o[y];\n            if ((z && r(z))) {\n                return z\n            };\n            return null;\n        },\n        getDialog: function(y) {\n            var z = this.getAction(y);\n            if ((z && q[z.actor_id])) {\n                return q[z.actor_id]\n            };\n            return null;\n        },\n        setDialog: function(y, z, aa) {\n            var ba = o[y];\n            if ((ba && (ba.action_id == z))) {\n                w(y);\n                q[y] = aa;\n                x.inform(\"dialog-fetched\", y);\n            }\n        ;\n        }\n    });\n    e.exports = x;\n});\n__d(\"LiveBar\", [\"ChatOrderedList\",\"function-extensions\",\"LegacyContextualDialog\",\"ChatConfig\",\"CSS\",\"LiveBarData\",\"copyProperties\",\"setTimeoutAcrossTransitions\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"ChatOrderedList\");\n    b(\"function-extensions\");\n    b(\"LegacyContextualDialog\");\n    var g = b(\"ChatConfig\"), h = b(\"CSS\"), i = b(\"LiveBarData\"), j = b(\"copyProperties\"), k = b(\"setTimeoutAcrossTransitions\"), l = b(\"shield\"), m = (g.get(\"livebar_fetch_defer\") || 1000);\n    function n(o, p, q) {\n        this._orderedList = o;\n        this._root = o.getRoot();\n        this._liveBarTypes = q;\n        this._hoverController = o.getHoverController();\n        this._hoverController.subscribe(\"hover\", this._mouseMove.bind(this));\n        this._hoverController.subscribe(\"leave\", this._mouseLeave.bind(this));\n        o.subscribe(\"render\", l(this._handleChatListUpdate, this));\n        i.subscribe(\"new-actions\", this._updateIcons.bind(this));\n        i.subscribe(\"remove-action\", this._handleRemoveAction.bind(this));\n        i.subscribe(\"dialog-fetched\", function(r, s) {\n            this._setDialogContent(s);\n        }.bind(this));\n        i.addActions(p);\n    };\n    j(n, {\n        setDialog: function(o, p, q) {\n            i.setDialog(o, p, q);\n        }\n    });\n    j(n.prototype, {\n        _root: null,\n        _liveBarTypes: null,\n        _hoverController: null,\n        _registrations: {\n        },\n        _renderedIcons: {\n        },\n        _fetchTimer: null,\n        _mouseLeftRoot: false,\n        _chatListRendered: false,\n        _getLiveBarTypes: function() {\n            return this._liveBarTypes;\n        },\n        _handleChatListUpdate: function() {\n            if (!this._chatListRendered) {\n                this._chatListRendered = true;\n                this._updateIcons();\n            }\n        ;\n        },\n        _handleShow: function(o) {\n            this._setDialogContent(o);\n        },\n        _mouseMove: function() {\n            if (!this._fetchTimer) {\n                this._fetchTimer = k(this._fetch.bind(this), m);\n                this._mouseLeftRoot = false;\n            }\n        ;\n        },\n        _mouseLeave: function() {\n            this._mouseLeftRoot = true;\n            clearTimeout(this._fetchTimer);\n            this._fetchTimer = null;\n        },\n        _setDialogContent: function(o) {\n            var p = i.getDialog(o);\n            if (p) {\n                this._hoverController.showHovercard(o, p);\n            };\n        },\n        _fetch: function() {\n            if (this._mouseLeftRoot) {\n                return\n            };\n            this._fetchTimer = null;\n            i.fetch();\n        },\n        _updateIcons: function() {\n            if (!this._chatListRendered) {\n                return\n            };\n            var o = this._orderedList.getAllNodes(), p = this._getLiveBarTypes();\n            for (var q in o) {\n                var r = i.getAction(q);\n                if ((r && ((!this._renderedIcons[q] || (this._renderedIcons[q] != r.action_id))))) {\n                    for (var s = 0; (s < p.length); s++) {\n                        h.removeClass(o[q], p[s]);;\n                    };\n                    h.addClass(o[q], r.livebar_type);\n                    this._renderedIcons[q] = r.action_id;\n                    var t = this._hoverController.register(q, this._handleShow.bind(this));\n                    if (t) {\n                        this._registrations[q] = t;\n                    };\n                }\n            ;\n            };\n        },\n        _handleRemoveAction: function(o, p) {\n            var q = p.action_id, r = p.actor_id;\n            (this._registrations[r] && this._registrations[r].unregister());\n            delete this._registrations[r];\n            if ((this._renderedIcons[r] == q)) {\n                var s = this._getLiveBarTypes(), t = this._orderedList.getAllNodes();\n                if (t[r]) {\n                    for (var u = 0; (u < s.length); u++) {\n                        h.removeClass(t[r], s[u]);;\n                    }\n                };\n                delete this._renderedIcons[r];\n            }\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"LiveBarDark\", [\"Class\",\"LiveBar\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"LiveBar\"), i = b(\"copyProperties\"), j = b(\"emptyFunction\");\n    function k(l, m, n) {\n        this.parent.construct(this, l, m, n);\n    };\n    g.extend(k, h);\n    i(k.prototype, {\n        _setupDialogContent: j,\n        _show: j,\n        _updateIcons: j,\n        _handleRemoveAction: j,\n        _handleChatListUpdate: j\n    });\n    e.exports = k;\n});\n__d(\"ChatSidebarDropdown\", [\"Arbiter\",\"AsyncRequest\",\"Chat\",\"ChatOptions\",\"ChatVisibility\",\"CSS\",\"DOM\",\"Event\",\"JSLogger\",\"PresenceState\",\"SelectorDeprecated\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Chat\"), j = b(\"ChatOptions\"), k = b(\"ChatVisibility\"), l = b(\"CSS\"), m = b(\"DOM\"), n = b(\"Event\"), o = b(\"JSLogger\"), p = b(\"PresenceState\"), q = b(\"SelectorDeprecated\"), r = b(\"copyProperties\");\n    function s(t, u) {\n        this._root = t;\n        this._logger = o.create(\"blackbird\");\n        this._displayBrowserNotificationsIfNeeded();\n        q.listen(t, \"select\", this._onSelect.bind(this));\n        q.listen(t, \"toggle\", this._onToggle.bind(this));\n        if (u) {\n            q.listen(t, \"close\", u.allowCollapse.curry(true, \"SidebarMenu\"));\n            q.listen(t, \"open\", u.allowCollapse.curry(false, \"SidebarMenu\"));\n        }\n    ;\n        g.subscribe(\"chat/option-changed\", this._onOptionChanged.bind(this));\n    };\n    r(s, {\n        registerEditFavorites: function(t, u, v) {\n            function w(x) {\n                l.conditionShow(t, !x);\n                l.conditionShow(u, x);\n            };\n            n.listen(t, \"click\", function() {\n                v.toggleEditMode();\n                w(true);\n            });\n            n.listen(u, \"click\", function() {\n                v.toggleEditMode();\n                w(false);\n            });\n            v.subscribe(\"editStart\", w.curry(true));\n            v.subscribe(\"editEnd\", w.curry(false));\n        }\n    });\n    r(s.prototype, {\n        changeSetting: function(t, u) {\n            if (this._pendingChange) {\n                return false\n            };\n            this._pendingChange = true;\n            var v = {\n            };\n            v[t] = u;\n            j.setSetting(t, u, \"sidebar_menu\");\n            new h(\"/ajax/chat/settings.php\").setHandler(this._onChangeSettingResponse.bind(this, t, u)).setErrorHandler(this._onChangeSettingError.bind(this, t, u)).setFinallyHandler(this._onChangeFinally.bind(this)).setData(v).setAllowCrossPageTransition(true).send();\n        },\n        _displayBrowserNotificationsIfNeeded: function() {\n            if (window.webkitNotifications) {\n                m.scry(document, \"li.sidebar-browser-notif\").forEach(l.show);\n                if ((window.webkitNotifications.checkPermission() !== 0)) {\n                    m.scry(document, \"li.sidebar-browser-notif\").forEach(function(t) {\n                        l.removeClass(t, \"checked\");\n                    });\n                };\n            }\n        ;\n        },\n        _conditionEnabled: function(t, u) {\n            var v = q.getOption(this._root, t);\n            (v && q.setOptionEnabled(v, u));\n        },\n        _onChangeSettingResponse: function(t, u, v) {\n            p.doSync();\n        },\n        _onChangeSettingError: function(t, u, v) {\n            j.setSetting(t, !u, \"sidebar_menu_error\");\n        },\n        _onChangeFinally: function() {\n            this._pendingChange = false;\n        },\n        _onOptionChanged: function(t, u) {\n            var v = u.name, w = u.value;\n            if (((v === \"sound\") || (v === \"browser_notif\"))) {\n                var x = q.getOption(this._root, v);\n                if ((w !== q.isOptionSelected(x))) {\n                    q.setSelected(this._root, v, w);\n                };\n            }\n        ;\n        },\n        _onSelect: function(t) {\n            if (this._pendingChange) {\n                return false\n            };\n            var u = false, v = false, w = q.getOptionValue(t.option);\n            switch (w) {\n              case \"sidebar\":\n                return this.toggleSidebar();\n              case \"online\":\n                if (!k.isOnline()) {\n                    k.goOnline();\n                }\n                 else v = true;\n            ;\n                u = true;\n                break;\n              case \"offline\":\n                if (k.isOnline()) {\n                    k.goOffline();\n                }\n                 else v = true;\n            ;\n                u = true;\n                break;\n              case \"advanced_settings\":\n            \n              case \"turn_off_dialog\":\n                g.inform(\"chat/advanced-settings-dialog-opened\");\n                u = true;\n                break;\n            };\n            if (v) {\n                this._logger.error(\"sidebar_dropdown_visibility_error\", {\n                    action: w\n                });\n            }\n             else this._logger.log(\"sidebar_dropdown_set_visibility\", {\n                action: w\n            });\n        ;\n            if (u) {\n                q.toggle(this._root);\n                return false;\n            }\n        ;\n        },\n        _onToggle: function(t) {\n            if (this._pendingChange) {\n                return false\n            };\n            var u = q.getOptionValue(t.option), v = q.isOptionSelected(t.option);\n            switch (u) {\n              case \"visibility\":\n                if (!k) {\n                    this._jslogger.error(\"on_toggle_visibility_undefined\");\n                    return;\n                }\n            ;\n                k.toggleVisibility();\n                this._logger.log(\"sidebar_dropdown_toggle_visibility\", {\n                    available: v\n                });\n                break;\n              case \"browser_notif\":\n                if (((v && window.webkitNotifications) && (window.webkitNotifications.checkPermission() !== 0))) {\n                    window.webkitNotifications.requestPermission(function() {\n                        this.changeSetting(u, v);\n                    }.bind(this));\n                }\n                 else this.changeSetting(u, v);\n            ;\n                break;\n              case \"sound\":\n                this.changeSetting(u, v);\n                break;\n            };\n            q.toggle(this._root);\n        },\n        _onVisibilityChanged: function() {\n            var t = k.isOnline(), u = q.getOption(this._root, \"visibility\");\n            if ((t !== q.isOptionSelected(u))) {\n                q.setSelected(this._root, \"visibility\", t);\n            };\n        },\n        toggleSidebar: function() {\n            i.toggleSidebar();\n            q.toggle(this._root);\n            return false;\n        }\n    });\n    e.exports = s;\n});\n__d(\"ChatSidebarLog\", [\"AsyncSignal\",\"Bootloader\",\"ModuleDependencies\",\"JSLogger\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"Bootloader\"), i = b(\"ModuleDependencies\"), j = b(\"JSLogger\"), k = b(\"Run\"), l = j.create(\"chat_sidebar_load\"), m = null, n = false, o = (((Math.random() * 2147483648) | 0)).toString(36);\n    k.onLoad(function() {\n        n = true;\n    });\n    try {\n        d([\"ChatSidebar\",], function(t) {\n            m = t;\n        });\n    } catch (p) {\n        l.warn(\"exception\", {\n            reason: p.toString()\n        });\n    };\n    function q(t, u) {\n        if ((t.length > u)) {\n            return t[u]\n        };\n        return null;\n    };\n    function r(t) {\n        setTimeout(function() {\n            var u = i.getMissing(\"ChatSidebar\"), v = h.getErrorUrls(), w = h.getLoadingUrls(), x = [];\n            for (var y in w) {\n                x.push({\n                    url: y,\n                    time: w[y]\n                });;\n            };\n            x.sort(function(aa, ba) {\n                return (ba.time - aa.time);\n            });\n            var z = {\n                page_loaded: n,\n                page_id: o,\n                timeout: t,\n                missing_total: u.length,\n                module_1: q(u, 0),\n                module_2: q(u, 1),\n                module_3: q(u, 2),\n                error_url_total: v.length,\n                error_url_1: q(v, 0),\n                error_url_2: q(v, 1),\n                error_url_3: q(v, 2),\n                loading_url_total: x.length,\n                loading_url_1: (q(x, 0) ? q(x, 0).url : null),\n                loading_time_1: (q(x, 0) ? q(x, 0).time : null),\n                loading_url_2: (q(x, 1) ? q(x, 1).url : null),\n                loading_time_2: (q(x, 1) ? q(x, 1).time : null),\n                loading_url_3: (q(x, 2) ? q(x, 2).url : null),\n                loading_time_3: (q(x, 2) ? q(x, 2).time : null)\n            };\n            if (!m) {\n                l.warn((\"require_\" + t), {\n                    missing: u\n                });\n                z.symptom = \"require\";\n            }\n        ;\n            if ((m && !m.isInitialized())) {\n                l.warn((\"init_\" + t), {\n                    missing: u\n                });\n                z.symptom = \"init\";\n            }\n        ;\n            if (z.symptom) {\n                new g(\"/ajax/chat/sidebar_load.php\", z).send();\n            };\n        }, t);\n    };\n    var s = {\n        start: function() {\n            r(5000);\n            r(10000);\n            r(15000);\n            r(30000);\n            r(60000);\n        }\n    };\n    e.exports = s;\n});\n__d(\"NotificationConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        PayloadSourceType: {\n            UNKNOWN: 0,\n            USER_ACTION: 1,\n            LIVE_SEND: 2,\n            ENDPOINT: 3,\n            INITIAL_LOAD: 4,\n            OTHER_APPLICATION: 5\n        }\n    };\n});\n__d(\"NotificationTokens\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = {\n        tokenizeIDs: function(i) {\n            return i.map(function(j) {\n                return ((g.user + \":\") + j);\n            });\n        },\n        untokenizeIDs: function(i) {\n            return i.map(function(j) {\n                return j.split(\":\")[1];\n            });\n        }\n    };\n    e.exports = h;\n});\n__d(\"NotificationImpressions\", [\"AsyncSignal\",\"NotificationTokens\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"NotificationTokens\"), i = b(\"URI\"), j = \"/ajax/notifications/impression.php\";\n    function k(l, m) {\n        var n = {\n            ref: m\n        };\n        h.untokenizeIDs(l).forEach(function(o, p) {\n            n[((\"alert_ids[\" + p) + \"]\")] = o;\n        });\n        new g(i(j).getQualifiedURI().toString(), n).send();\n    };\n    e.exports = {\n        log: k\n    };\n});\n__d(\"NotificationPhotoThumbnail\", [], function(a, b, c, d, e, f) {\n    function g(i) {\n        return ((i.style == \"photo\") ? i.media.image : null);\n    };\n    var h = {\n        getThumbnail: function(i, j) {\n            var k;\n            if ((i && i.length)) {\n                k = g(i[0]);\n                if (k) {\n                    return k\n                };\n            }\n        ;\n            if (j) {\n                var l = j.attachments;\n                if ((l && l.length)) {\n                    return g(l[0])\n                };\n            }\n        ;\n            return null;\n        }\n    };\n    e.exports = h;\n});\n__d(\"NotificationUpdates\", [\"Arbiter\",\"ChannelConstants\",\"JSLogger\",\"NotificationConstants\",\"NotificationTokens\",\"LiveTimer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"JSLogger\"), j = b(\"NotificationConstants\"), k = b(\"NotificationTokens\"), l = b(\"LiveTimer\"), m = b(\"copyProperties\"), n = b(\"createObjectFrom\"), o = {\n    }, p = {\n    }, q = {\n    }, r = {\n    }, s = [], t = 0, u = i.create(\"notification_updates\");\n    function v() {\n        if (t) {\n            return\n        };\n        var z = o, aa = p, ba = q, ca = r;\n        o = {\n        };\n        p = {\n        };\n        q = {\n        };\n        r = {\n        };\n        x(\"notifications-updated\", z);\n        if (Object.keys(aa).length) {\n            x(\"seen-state-updated\", aa);\n        };\n        if (Object.keys(ba).length) {\n            x(\"read-state-updated\", ba);\n        };\n        if (Object.keys(ca).length) {\n            x(\"hidden-state-updated\", ca);\n        };\n        s.pop();\n    };\n    function w() {\n        if (s.length) {\n            return s[(s.length - 1)]\n        };\n        return j.PayloadSourceType.UNKNOWN;\n    };\n    function x(event, z) {\n        y.inform(event, {\n            updates: z,\n            source: w()\n        });\n    };\n    g.subscribe(h.getArbiterType(\"notification_json\"), function(z, aa) {\n        var ba = Date.now(), ca = aa.obj.nodes;\n        if (ca) {\n            ca.forEach(function(da) {\n                da.receivedTime = ba;\n            });\n            u.debug(\"notifications_received\", ca);\n            y.handleUpdate(j.PayloadSourceType.LIVE_SEND, aa.obj);\n        }\n    ;\n    });\n    g.subscribe(h.getArbiterType(\"notifications_seen\"), function(z, aa) {\n        var ba = k.tokenizeIDs(aa.obj.alert_ids);\n        y.handleUpdate(j.PayloadSourceType.LIVE_SEND, {\n            seenState: n(ba)\n        });\n    });\n    g.subscribe(h.getArbiterType(\"notifications_read\"), function(z, aa) {\n        var ba = k.tokenizeIDs(aa.obj.alert_ids);\n        y.handleUpdate(j.PayloadSourceType.LIVE_SEND, {\n            readState: n(ba)\n        });\n    });\n    var y = m(new g(), {\n        handleUpdate: function(z, aa) {\n            if (aa.servertime) {\n                l.restart(aa.servertime);\n            };\n            if (Object.keys(aa).length) {\n                this.synchronizeInforms(function() {\n                    s.push(z);\n                    var ba = m({\n                        payloadsource: w()\n                    }, aa);\n                    this.inform(\"update-notifications\", ba);\n                    this.inform(\"update-seen\", ba);\n                    this.inform(\"update-read\", ba);\n                    this.inform(\"update-hidden\", ba);\n                }.bind(this));\n            };\n        },\n        didUpdateNotifications: function(z) {\n            m(o, n(z));\n            v();\n        },\n        didUpdateSeenState: function(z) {\n            m(p, n(z));\n            v();\n        },\n        didUpdateReadState: function(z) {\n            m(q, n(z));\n            v();\n        },\n        didUpdateHiddenState: function(z) {\n            m(r, n(z));\n            v();\n        },\n        synchronizeInforms: function(z) {\n            t++;\n            try {\n                z();\n            } catch (aa) {\n                throw aa;\n            } finally {\n                t--;\n                v();\n            };\n        }\n    });\n    e.exports = y;\n});\n__d(\"NotificationStore\", [\"KeyedCallbackManager\",\"NotificationConstants\",\"NotificationUpdates\",\"RangedCallbackManager\",\"MercuryServerDispatcher\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = b(\"NotificationConstants\"), i = b(\"NotificationUpdates\"), j = b(\"RangedCallbackManager\"), k = b(\"MercuryServerDispatcher\"), l = new g(), m = new j(function(p) {\n        var q = l.getResource(p);\n        return q.creation_time;\n    }, function(p, q) {\n        return (q - p);\n    }), n = {\n    };\n    i.subscribe(\"update-notifications\", function(p, q) {\n        if (q.page_info) {\n            n = q.page_info;\n        };\n        if ((q.nodes === undefined)) {\n            return\n        };\n        var r, s = [], t = {\n        }, u = (q.nodes || []), v;\n        u.forEach(function(w) {\n            r = w.alert_id;\n            v = l.getResource(r);\n            if ((!v || (v.creation_time < w.creation_time))) {\n                s.push(r);\n                t[r] = w;\n            }\n        ;\n        });\n        l.addResourcesAndExecute(t);\n        m.addResources(s);\n        i.didUpdateNotifications(s);\n    });\n    k.registerEndpoints({\n        \"/ajax/notifications/client/get.php\": {\n            mode: k.IMMEDIATE,\n            handler: function(p) {\n                i.handleUpdate(h.PayloadSourceType.ENDPOINT, p);\n            }\n        }\n    });\n    var o = {\n        getNotifications: function(p, q) {\n            var r = m.executeOrEnqueue(0, p, function(w) {\n                var x = l.executeOrEnqueue(w, function(y) {\n                    q(y);\n                });\n            }), s = m.getUnavailableResources(r);\n            if (s.length) {\n                m.unsubscribe(r);\n                if (!o.canFetchMore()) {\n                    l.executeOrEnqueue(m.getAllResources(), q);\n                    return;\n                }\n            ;\n                var t = (n.end_cursor || null), u;\n                if (t) {\n                    var v = Math.max.apply(null, s);\n                    u = ((v - m.getCurrentArraySize()) + 1);\n                }\n                 else u = p;\n            ;\n                k.trySend(\"/ajax/notifications/client/get.php\", {\n                    cursor: t,\n                    length: u\n                });\n            }\n        ;\n        },\n        getAll: function(p) {\n            o.getNotifications(o.getCount(), p);\n        },\n        getCount: function() {\n            return m.getCurrentArraySize();\n        },\n        canFetchMore: function() {\n            if (n.hasOwnProperty(\"has_next_page\")) {\n                return n.has_next_page\n            };\n            return true;\n        }\n    };\n    e.exports = o;\n});\n__d(\"NotificationUserActions\", [\"AsyncRequest\",\"AsyncSignal\",\"NotificationConstants\",\"NotificationStore\",\"NotificationTokens\",\"NotificationUpdates\",\"URI\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"AsyncSignal\"), i = b(\"NotificationConstants\"), j = b(\"NotificationStore\"), k = b(\"NotificationTokens\"), l = b(\"NotificationUpdates\"), m = b(\"URI\"), n = b(\"createObjectFrom\"), o = b(\"emptyFunction\"), p = i.PayloadSourceType.USER_ACTION, q = \"mark_spam\", r = \"turn_off\", s = \"undo\", t = \"first_receipt_yes\", u = \"first_receipt_no\";\n    function v(aa) {\n        var ba = m(\"/ajax/notifications/mark_read.php\").getQualifiedURI().toString();\n        new h(ba, aa).send();\n    };\n    function w(aa) {\n        var ba = {\n        };\n        aa.forEach(function(ca, da) {\n            ba[((\"alert_ids[\" + da) + \"]\")] = ca;\n        });\n        return ba;\n    };\n    function x(aa, ba, ca, da) {\n        var ea = k.untokenizeIDs([aa,])[0];\n        new g(\"/ajax/notifications/negative_req.php\").setData({\n            notification_id: ea,\n            client_rendered: true,\n            request_type: ba\n        }).setHandler((ca || o)).setErrorHandler((da || o)).send();\n    };\n    function y(aa, ba, ca, da, ea) {\n        var fa = (ea ? s : r);\n        j.getAll(function(ga) {\n            var ha = Object.keys(ga).filter(function(ia) {\n                var ja = ga[ia];\n                return !!(((ja.application && ja.application.id) && (ja.application.id == ba)));\n            });\n            x(aa, fa, function(ia) {\n                ca(ia);\n                l.handleUpdate(p, {\n                    hiddenState: n(ha, !ea)\n                });\n            }, da);\n        });\n    };\n    var z = {\n        markNotificationsAsSeen: function(aa) {\n            l.handleUpdate(p, {\n                seenState: n(aa)\n            });\n            var ba = k.untokenizeIDs(aa), ca = w(ba);\n            ca.seen = true;\n            v(ca);\n            if (a.presenceNotifications) {\n                a.presenceNotifications.alertList.markSeen(ba);\n            };\n        },\n        markNotificationsAsRead: function(aa) {\n            l.handleUpdate(p, {\n                readState: n(aa)\n            });\n            var ba = k.untokenizeIDs(aa);\n            v(w(ba));\n            if (a.presenceNotifications) {\n                a.presenceNotifications.markRead(false, ba);\n            };\n        },\n        markNotificationAsHidden: function(aa, ba, ca) {\n            l.handleUpdate(p, {\n                hiddenState: n([aa,])\n            });\n            x(aa, r, ba, ca);\n        },\n        markNotificationAsVisible: function(aa, ba, ca) {\n            l.handleUpdate(p, {\n                hiddenState: n([aa,], false)\n            });\n            x(aa, s, ba, ca);\n        },\n        markNotificationAsSpam: function(aa, ba, ca) {\n            l.handleUpdate(p, {\n                hiddenState: n([aa,], false)\n            });\n            x(aa, q, ba, ca);\n        },\n        markAppAsHidden: function(aa, ba, ca, da) {\n            var ea = false;\n            y(aa, ba, ca, da, ea);\n        },\n        markAppAsVisible: function(aa, ba, ca, da) {\n            var ea = true;\n            y(aa, ba, ca, da, ea);\n        },\n        markFirstReceiptYes: function(aa, ba, ca) {\n            x(aa, t, ba, ca);\n        },\n        markFirstReceiptNo: function(aa, ba, ca) {\n            x(aa, u, ba, ca);\n        }\n    };\n    e.exports = z;\n});\n__d(\"NotificationBeeperItemContents.react\", [\"Animation\",\"CloseButton.react\",\"ImageBlock.react\",\"NotificationURI\",\"NotificationUserActions\",\"React\",\"TextWithEntities.react\",\"Timestamp.react\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"CloseButton.react\"), i = b(\"ImageBlock.react\"), j = b(\"NotificationURI\"), k = b(\"NotificationUserActions\"), l = b(\"React\"), m = b(\"TextWithEntities.react\"), n = b(\"Timestamp.react\"), o = b(\"cx\");\n    function p(r, s) {\n        return l.DOM.span({\n            className: \"fwb\"\n        }, r);\n    };\n    var q = l.createClass({\n        displayName: \"NotificationBeeperItemContents\",\n        _markAsRead: function() {\n            k.markNotificationsAsRead([this.props.beep.notificationID,]);\n            this.props.onHide();\n        },\n        _onClose: function() {\n            this._markAsRead();\n            this.props.onHide();\n        },\n        _doFlash: function() {\n            new g(this.refs.inner.getDOMNode()).from(\"opacity\", \"0\").to(\"opacity\", \"1\").duration(200).go();\n        },\n        componentDidUpdate: function(r) {\n            if ((r.beep.beepID !== this.props.beep.beepID)) {\n                this._doFlash();\n            };\n        },\n        render: function() {\n            var r = this.props.beep, s = r.icon.uri, t = (r.link ? j.localize(r.link) : \"#\"), u = (r.photo && j.snowliftable(t));\n            return (l.DOM.div({\n                ref: \"inner\"\n            }, h({\n                className: \"_3soc\",\n                onClick: this._onClose,\n                size: \"medium\"\n            }), l.DOM.a({\n                href: t,\n                ajaxify: (u ? t : null),\n                onClick: this._markAsRead,\n                rel: (u ? \"theater\" : null),\n                className: \"_3soi\"\n            }, i({\n                className: \"_3soj\"\n            }, l.DOM.img({\n                src: r.actors[0].profile_picture.uri,\n                className: \"_3sok\"\n            }), l.DOM.div({\n                className: \"_3sol\"\n            }, m({\n                renderEmoticons: true,\n                renderEmoji: true,\n                interpolator: p,\n                ranges: r.text.ranges,\n                aggregatedranges: r.text.aggregated_ranges,\n                text: r.text.text\n            }), i({\n                className: \"_3som\"\n            }, l.DOM.img({\n                src: s\n            }), n({\n                time: r.timestamp.time,\n                text: r.timestamp.text,\n                verbose: r.timestamp.verbose\n            })))))));\n        }\n    });\n    e.exports = q;\n});\n__d(\"NotificationBeeperItem.react\", [\"Animation\",\"BrowserSupport\",\"NotificationBeeperItemContents.react\",\"React\",\"cx\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"BrowserSupport\"), i = b(\"NotificationBeeperItemContents.react\"), j = b(\"React\"), k = b(\"cx\"), l = b(\"setTimeoutAcrossTransitions\"), m = j.createClass({\n        displayName: \"NotificationBeeperItem\",\n        getInitialState: function() {\n            return {\n                fadedIn: false,\n                hidden: false\n            };\n        },\n        componentDidMount: function() {\n            var n;\n            if (h.hasCSSAnimations()) {\n                n = this.setState.bind(this, {\n                    fadedIn: true\n                });\n            }\n             else n = function() {\n                new g(this.refs.item.getDOMNode()).from(\"top\", \"-30px\").from(\"opacity\", \"0\").to(\"top\", \"0px\").to(\"opacity\", \"1\").duration(200).ondone(this.setState.bind(this, {\n                    fadedIn: true\n                })).go();\n            }.bind(this);\n        ;\n            l(n, 50);\n            this.props.onInserted(this.props.beep);\n        },\n        render: function() {\n            var n = this.props.beep, o = ((((\"_3sod\") + ((this.state.fadedIn ? (\" \" + \"_3soe\") : \"\"))) + ((this.state.hidden ? (\" \" + \"_3sof\") : \"\")))), p = (n.beepRenderer || i);\n            return (j.DOM.li({\n                className: o,\n                ref: \"item\",\n                \"data-gt\": n.tracking\n            }, p({\n                beep: n,\n                onHide: this.setState.bind(this, {\n                    hidden: true\n                })\n            })));\n        }\n    });\n    e.exports = m;\n});\n__d(\"NotificationSound\", [\"Sound\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Sound\"), h = b(\"copyProperties\"), i = 5000;\n    g.init([\"audio/mpeg\",]);\n    function j(k) {\n        this._soundPath = k;\n        this._lastPlayed = 0;\n    };\n    h(j.prototype, {\n        play: function(k) {\n            if (!this._soundPath) {\n                return\n            };\n            var l = Date.now();\n            if ((((l - this._lastPlayed)) < i)) {\n                return\n            };\n            this._lastPlayed = l;\n            g.play(this._soundPath, k);\n        }\n    });\n    e.exports = j;\n});\n__d(\"NotificationBeeper.react\", [\"Animation\",\"Arbiter\",\"ChannelConstants\",\"NotificationBeeperItem.react\",\"NotificationConstants\",\"NotificationImpressions\",\"NotificationPhotoThumbnail\",\"NotificationSound\",\"NotificationUpdates\",\"NotificationUserActions\",\"React\",\"Style\",\"cx\",\"isEmpty\",\"merge\",\"setTimeoutAcrossTransitions\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"ChannelConstants\"), j = b(\"NotificationBeeperItem.react\"), k = b(\"NotificationConstants\"), l = b(\"NotificationImpressions\"), m = b(\"NotificationPhotoThumbnail\"), n = b(\"NotificationSound\"), o = b(\"NotificationUpdates\"), p = b(\"NotificationUserActions\"), q = b(\"React\"), r = b(\"Style\"), s = b(\"cx\"), t = b(\"isEmpty\"), u = b(\"merge\"), v = b(\"setTimeoutAcrossTransitions\"), w = b(\"shield\"), x = 5000, y = 2000, z = \"beeper\", aa = k.PayloadSourceType.LIVE_SEND, ba = k.PayloadSourceType.OTHER_APPLICATION, ca = q.createClass({\n        displayName: \"NotificationBeeper\",\n        getInitialState: function() {\n            return {\n                soundEnabled: this.props.soundEnabled,\n                hovering: false,\n                fading: false,\n                paused: false,\n                pendingBeeps: {\n                },\n                renderedBeeps: {\n                }\n            };\n        },\n        componentWillMount: function() {\n            var ea = i.getArbiterType(\"notif_sound_pref_changed\"), fa = \"update-notifications\";\n            this.subscriptions = [o.subscribe(fa, function(ga, ha) {\n                if (((ha.payloadsource === aa) || (ha.payloadsource === ba))) {\n                    var ia = ha.nodes;\n                    if ((ia && ia.length)) {\n                        this._handleBeepChanges(da(ia));\n                    };\n                }\n            ;\n            }.bind(this)),h.subscribe(ea, function(ga, ha) {\n                this.setState({\n                    soundEnabled: ha.obj.enabled\n                });\n            }.bind(this)),];\n            h.inform(\"NotificationBeeper/mounted\", null, h.BEHAVIOR_PERSISTENT);\n        },\n        componentWillUnmount: function() {\n            this.subscriptions.forEach(function(ea) {\n                ea.unsubscribe();\n            });\n            this.subscriptions = null;\n        },\n        _onMouseEnter: function() {\n            if (this.state.paused) {\n                return\n            };\n            (this._hideWait && clearTimeout(this._hideWait));\n            if (this.state.fading) {\n                this._animation.stop();\n                this._animation = null;\n                r.set(this.refs.container.getDOMNode(), \"opacity\", \"0.96\");\n            }\n        ;\n            var ea = Object.keys(this.state.renderedBeeps);\n            if (this.props.unseenVsUnread) {\n                p.markNotificationsAsSeen(ea);\n            }\n             else p.markNotificationsAsRead(ea);\n        ;\n            this.setState({\n                hovering: true,\n                fading: false,\n                pendingBeeps: {\n                },\n                renderedBeeps: u(this.state.renderedBeeps, this.state.pendingBeeps)\n            });\n        },\n        _onMouseLeave: function() {\n            if (this.state.paused) {\n                return\n            };\n            this._waitToHide(y);\n            this.setState({\n                hovering: false\n            });\n        },\n        _onInsertedItem: function(ea) {\n            if (!this.state.hovering) {\n                this._waitToHide();\n            };\n            if ((this.state.soundEnabled && ea.sound)) {\n                if (!this._notifSound) {\n                    this._notifSound = new n(this.props.soundPath);\n                };\n                this._notifSound.play(ea.beepID);\n            }\n        ;\n            if (this.props.shouldLogImpressions) {\n                l.log([ea.notificationID,], z);\n            };\n        },\n        _waitToHide: function(ea) {\n            (this._hideWait && clearTimeout(this._hideWait));\n            this._hideWait = v(w(this._hide, this), (ea || x));\n        },\n        _hide: function() {\n            (this._animation && this._animation.stop());\n            this._animation = new g(this.refs.container.getDOMNode()).from(\"opacity\", \"0.96\").to(\"opacity\", \"0\").duration(1500).ondone(this._finishHide).go();\n            this.setState({\n                fading: true\n            });\n        },\n        _finishHide: function() {\n            var ea = this.state.pendingBeeps;\n            this.setState({\n                fading: false,\n                pendingBeeps: {\n                },\n                renderedBeeps: {\n                }\n            });\n            v(this.setState.bind(this, {\n                renderedBeeps: ea\n            }));\n            r.set(this.refs.container.getDOMNode(), \"opacity\", \"0.96\");\n        },\n        _handleBeepChanges: function(ea) {\n            var fa = (this.state.fading ? this.state.pendingBeeps : this.state.renderedBeeps);\n            Object.keys(ea).reverse().forEach(function(ga) {\n                var ha = ea[ga], ia = ha.beepID, ja = (this.state.renderedBeeps[ga] || {\n                });\n                if ((ja.beepID != ia)) {\n                    delete fa[ga];\n                    fa[ga] = ha;\n                }\n            ;\n            }.bind(this));\n            if (!this.state.paused) {\n                this._waitToHide();\n            };\n            this.forceUpdate();\n        },\n        _togglePause: function() {\n            if (!this.state.paused) {\n                (this._animation && this._animation.stop());\n                (this._hideWait && clearTimeout(this._hideWait));\n            }\n             else this._waitToHide();\n        ;\n            this.setState({\n                paused: !this.state.paused\n            });\n        },\n        render: function() {\n            var ea = this.state.renderedBeeps, fa = {\n            };\n            Object.keys(ea).reverse().forEach(function(ja) {\n                var ka = ea[ja];\n                fa[ja] = j({\n                    beep: ka,\n                    onInserted: this._onInsertedItem\n                });\n            }, this);\n            var ga = !t(fa), ha = null;\n            if ((ga && this.props.canPause)) {\n                ha = q.DOM.li({\n                    className: \"_a_g\",\n                    onClick: this._togglePause\n                }, (this.state.paused ? \"Continue\" : \"Pause [fb]\"));\n            };\n            var ia = ((((!ga ? \"hidden_elem\" : \"\")) + ((\" \" + \"_50d1\"))));\n            return (q.DOM.ul({\n                ref: \"container\",\n                className: ia,\n                \"data-gt\": this.props.tracking,\n                onMouseEnter: this._onMouseEnter,\n                onMouseLeave: this._onMouseLeave\n            }, fa, ha));\n        }\n    });\n    function da(ea) {\n        var fa = {\n        };\n        ea.forEach(function(ga) {\n            var ha = ga.alert_id, ia = ((ha + \"-\") + ga.receivedTime), ja = m.getThumbnail(ga.attachments, ga.attached_story);\n            fa[ha] = {\n                notificationID: ha,\n                beepID: ia,\n                beepRenderer: ga.beepRenderer,\n                actors: ga.actors,\n                icon: ga.icon,\n                link: ga.url,\n                photo: ja,\n                text: (ga.unaggregatedTitle || ga.title),\n                timestamp: ga.timestamp,\n                receivedTime: ga.receivedTime,\n                sound: !!ga.sound,\n                tracking: ga.tracking\n            };\n        });\n        return fa;\n    };\n    e.exports = ca;\n});\n__d(\"FbdEventLog\", [\"URI\",\"AsyncSignal\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = b(\"AsyncSignal\"), i = {\n        log: function(j, k, l, m) {\n            if (!j) {\n                return\n            };\n            var n = g(\"/desktop/eventlog.php\"), o = new h(n.toString(), {\n                event: j,\n                category: (k || \"unknown\"),\n                payload: (l || \"\")\n            });\n            o.setHandler(m).send();\n        }\n    };\n    e.exports = i;\n});\n__d(\"DownloadDialog\", [\"Event\",\"Arbiter\",\"Class\",\"DataStore\",\"ModalMask\",\"Overlay\",\"Parent\",\"Style\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"DataStore\"), k = b(\"ModalMask\"), l = b(\"Overlay\"), m = b(\"Parent\"), n = b(\"Style\"), o = b(\"copyProperties\"), p = b(\"emptyFunction\");\n    function q() {\n        this.parent.construct(this);\n        return this;\n    };\n    i.extend(q, l);\n    o(q, {\n        POSITIONS: {\n            BOTTOM_LEFT: \"bottom_left\",\n            TOP_LEFT: \"top_left\",\n            IE9_BOTTOM: \"ie9_bottom\"\n        },\n        activeDialogs: {\n        },\n        dismissAll: function() {\n            for (var r in this.POSITIONS) {\n                this.hideDialog(this.POSITIONS[r]);;\n            };\n        },\n        hideDialog: function(r) {\n            var s = this.activeDialogs[r];\n            (s && s.hide());\n            this.activeDialogs[r] = null;\n        }\n    });\n    o(q.prototype, {\n        _cancelHandler: p,\n        _closeHandler: p,\n        _width: null,\n        position: q.POSITIONS.BOTTOM_LEFT,\n        init: function(r, s) {\n            this.parent.init(r);\n            this.position = s;\n            var t = ((j.get(this._root, \"modal\") === \"true\"));\n            q.hideDialog(s);\n            q.activeDialogs[s] = this;\n            g.listen(this._root, \"click\", function(event) {\n                if (m.byClass(event.getTarget(), \"closeButton\")) {\n                    if ((this._cancelHandler() !== false)) {\n                        q.hideDialog(this.position);\n                    }\n                };\n            }.bind(this));\n            this.subscribe(\"show\", function() {\n                if (t) {\n                    k.show();\n                };\n                h.inform(\"layer_shown\", {\n                    type: \"DownloadDialog\"\n                });\n            }.bind(this));\n            this.subscribe(\"hide\", function() {\n                if (t) {\n                    k.hide();\n                };\n                h.inform(\"layer_hidden\", {\n                    type: \"DownloadDialog\"\n                });\n                this._closeHandler();\n            }.bind(this));\n        },\n        setWidth: function(r) {\n            this._width = Math.floor(r);\n            return this;\n        },\n        updatePosition: function() {\n            if (this._width) {\n                n.set(this._overlay, \"width\", (this._width + \"px\"));\n            };\n            return true;\n        },\n        setCancelHandler: function(r) {\n            this._cancelHandler = (r || p);\n            return this;\n        },\n        setCloseHandler: function(r) {\n            this._closeHandler = (r || p);\n            return this;\n        }\n    });\n    e.exports = q;\n    a.DownloadDialog = q;\n});\n__d(\"FbdConversionTracking\", [\"AsyncRequest\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"emptyFunction\"), i = {\n        logClick: function(j, k) {\n            if (!k) {\n                k = \"desktop\";\n            };\n            new g().setURI(\"/ajax/desktop/log_clicks.php\").setData({\n                click_source: j,\n                promo: k\n            }).setAllowCrossPageTransition(true).setErrorHandler(h).send();\n        },\n        logConversion: function(j, k) {\n            if (!k) {\n                k = \"desktop\";\n            };\n            new g().setURI(\"/ajax/desktop/log_conversions.php\").setData({\n                conversion_action: j,\n                promo: k\n            }).setAllowCrossPageTransition(true).setErrorHandler(h).send();\n        }\n    };\n    e.exports = i;\n});\n__d(\"MegaphoneHelper\", [\"JSXDOM\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"DOM\",\"DOMDimensions\",\"Dialog\",\"LitestandMessages\",\"Parent\",\"Run\",\"Style\",\"csx\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"Dialog\"), n = b(\"LitestandMessages\"), o = b(\"Parent\"), p = b(\"Run\"), q = b(\"Style\"), r = b(\"csx\"), s = b(\"cx\"), t = b(\"ge\");\n    function u() {\n        var w = k.scry(document.body, \".megaphone_story_wrapper\")[0];\n        (w && k.remove(w));\n        v.removeLitestandHomeWash();\n    };\n    var v = {\n        hideStory: function(w, x, y, z, aa) {\n            var ba = {\n                mp_id: w,\n                location: x,\n                context: z\n            };\n            new j().setURI(\"/ajax/megaphone/megaphone_hide.php\").setMethod(\"POST\").setData(ba).setHandler(function(da) {\n                (aa && aa(da));\n            }).send();\n            var ca = t(y);\n            if (ca) {\n                new h(ca).to(\"height\", 0).duration(500).hide().go();\n            };\n        },\n        createModalStory: function(w, x, y, z) {\n            var aa;\n            if ((!w.buttons || !w.buttons.length)) {\n                w.buttons = m.CLOSE;\n                aa = v.hideStory(x, y, z, null);\n            }\n        ;\n            var ba = new m(w);\n            if (aa) {\n                ba.setHandler(aa);\n            };\n            ba.show();\n        },\n        buttonOnClick: function(w, x, y, z, aa, ba) {\n            var ca = function() {\n                if (aa) {\n                    new j().setURI(z).send();\n                }\n                 else document.location.href = z;\n            ;\n            };\n            if (ba) {\n                v.hideStory(w, x, \"\", y, ca);\n            }\n             else ca();\n        ;\n        },\n        renderFullWidth: function(w, x, y) {\n            var z = t(w);\n            k.prependContent(z, x);\n            if (y) {\n                var aa = l.getElementDimensions(x), ba = g.div({\n                    className: \"_5847\"\n                });\n                q.set(ba, \"height\", (aa.height + \"px\"));\n                var ca = o.byClass(z, \"_4_37\");\n                k.prependContent(ca, ba);\n                p.onLeave(u);\n                i.subscribeOnce(n.FILTER_SWITCH_BEGIN, u);\n            }\n        ;\n            i.inform(\"Megaphone/show\", w, i.BEHAVIOR_PERSISTENT);\n        },\n        removeLitestandHomeWash: function() {\n            var w = k.find(document.body, \"._5847\");\n            k.remove(w);\n        }\n    };\n    e.exports = v;\n});\n__d(\"FbdInstall\", [\"$\",\"AsyncRequest\",\"CSS\",\"DOM\",\"DownloadDialog\",\"FbdConversionTracking\",\"FbdEventLog\",\"FBDesktopDetect\",\"FBDesktopPlugin\",\"MegaphoneHelper\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DownloadDialog\"), l = b(\"FbdConversionTracking\"), m = b(\"FbdEventLog\"), n = b(\"FBDesktopDetect\"), o = b(\"FBDesktopPlugin\"), p = b(\"MegaphoneHelper\"), q = 1000, r = (300 * q), s = {\n        cancelSetup: function() {\n            var t = JSON.stringify({\n                ref: this.ref\n            });\n            m.log(\"download_canceled\", \"setup\", t);\n            l.logConversion(\"download_canceled\");\n        },\n        hideMegaphone: function() {\n            if ((this.megaphoneId && this.megaphoneLoc)) {\n                p.hideStory(this.megaphoneId, this.megaphoneLoc, this.elementId, \"\", null);\n            };\n        },\n        init: function(t, u) {\n            this.downloadUrl = t;\n            this.ref = (u || \"unknown\");\n        },\n        initInstallWait: function(t, u, v) {\n            this.megaphoneId = t;\n            this.megaphoneLoc = u;\n            this.elementId = v;\n            this._waitForInstall(r);\n        },\n        promptDownload: function(t) {\n            t = (t || this.downloadUrl);\n            if (t) {\n                var u = JSON.stringify({\n                    ref: this.ref\n                });\n                m.log(\"download_prompted\", \"setup\", u);\n                l.logConversion(\"download_prompted\");\n                var v = j.create(\"iframe\", {\n                    src: t,\n                    className: \"hidden_elem\"\n                });\n                j.appendContent(document.body, v);\n            }\n        ;\n        },\n        _responseHandler: function(t) {\n            if (t.payload) {\n                this._authToken = t.payload.access_token;\n                this._userId = t.payload.id;\n            }\n        ;\n            if ((this._authToken && this._userId)) {\n                this._waitForRunningStart = Date.now();\n                setTimeout(this._waitForRunning.bind(this), q);\n            }\n        ;\n        },\n        setupPlugin: function() {\n            new h(\"/ajax/desktop/download\").send();\n            this.promptDownload();\n        },\n        updateSidebarLinkVisibility: function() {\n            if (!n.isPluginInstalled()) {\n                i.show(g(\"sidebar-messenger-install-link\"));\n                i.show(g(\"sidebar-messenger-install-separator\"));\n            }\n        ;\n        },\n        _waitForInstall: function(t) {\n            var u = JSON.stringify({\n                ref: this.ref\n            });\n            if (n.isPluginInstalled()) {\n                m.log(\"install_success\", \"setup\", u);\n                l.logConversion(\"install_success\");\n                o.recheck();\n                new h(\"/desktop/fbdesktop2/transfer.php\").setMethod(\"POST\").setHandler(this._responseHandler.bind(this)).send();\n                k.dismissAll();\n                this.hideMegaphone();\n                return;\n            }\n        ;\n            if ((t <= 0)) {\n                m.log(\"install_timeout\", \"setup\", u);\n                l.logConversion(\"install_timeout\");\n                k.dismissAll();\n            }\n             else setTimeout(this._waitForInstall.bind(this, (t - q)), q);\n        ;\n        },\n        _waitForRunning: function() {\n            var t = (Date.now() - this._waitForRunningStart);\n            if (o.isAppRunning()) {\n                o.transferAuthToken(this._authToken, this._userId);\n            }\n             else if ((t < r)) {\n                setTimeout(this._waitForRunning.bind(this), q);\n            }\n        ;\n        }\n    };\n    e.exports = s;\n});\n__d(\"legacy:fbdesktop2-install-js\", [\"FbdInstall\",], function(a, b, c, d) {\n    a.FbdInstall = b(\"FbdInstall\");\n}, 3);\n__d(\"legacy:fbdesktop-conversion-tracking\", [\"FbdConversionTracking\",], function(a, b, c, d) {\n    a.FbdConversionTracking = b(\"FbdConversionTracking\");\n}, 3);\n__d(\"SidebarTicker\", [\"Arbiter\",\"ChatSidebar\",\"CSS\",\"DOM\",\"Run\",\"TickerController\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatSidebar\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Run\"), l = b(\"TickerController\"), m = b(\"$\"), n = b(\"copyProperties\");\n    function o() {\n        this._ticker = m(\"pagelet_ticker\");\n        this._initSubscriptions();\n        if (i.hasClass(document.documentElement, \"sidebarMode\")) {\n            this._onSidebarShow();\n        };\n    };\n    o.hide = function() {\n        k.onAfterLoad(function() {\n            j.remove(m(\"pagelet_ticker\"));\n            j.remove(j.find(document.body, \"div.fbSidebarGripper\"));\n            h.resize();\n        });\n    };\n    n(o.prototype, {\n        _initSubscriptions: function() {\n            this._subscriptions = [g.subscribe(\"sidebar/show\", this._onSidebarShow.bind(this)),];\n        },\n        _onSidebarShow: function() {\n            l.show(this._ticker);\n        }\n    });\n    e.exports = o;\n});\n__d(\"SidebarTickerResizer\", [\"Arbiter\",\"AsyncRequest\",\"ChatSidebar\",\"SimpleDrag\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"ChatSidebar\"), j = b(\"SimpleDrag\"), k = b(\"$\"), l = 1e-7;\n    function m(n) {\n        var o = k(\"pagelet_ticker\"), p = o.parentNode, q = this._saveResizedState.bind(this), r, s, t, u = function(x, event) {\n            r = event.clientY;\n            s = o.offsetHeight;\n            t = p.offsetHeight;\n        }, v = function(x, event) {\n            var y = (s + ((event.clientY - r))), z = (100 - ((((((t - y)) / t)) * 100)));\n            z = Math.max(l, Math.min(90, z));\n            o.style.height = (z + \"%\");\n            if ((x == \"end\")) {\n                q(z);\n                g.inform(\"Ticker/resized\");\n            }\n        ;\n            i.resize();\n        }, w = new j(n);\n        w.subscribe(\"start\", u);\n        w.subscribe([\"update\",\"end\",], v);\n    };\n    m.prototype._saveResizedState = function(n) {\n        new h(\"/ajax/feed/ticker/resize\").setData({\n            height: (\"\" + n)\n        }).setMethod(\"POST\").send();\n    };\n    e.exports = m;\n});\n__d(\"legacy:megaphone\", [\"MegaphoneHelper\",], function(a, b, c, d) {\n    a.MegaphoneHelper = b(\"MegaphoneHelper\");\n}, 3);\n__d(\"NotificationXOut\", [\"Arbiter\",\"Event\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Event\"), i = b(\"userAction\");\n    function j(p, q, r) {\n        g.inform(\"notif/negativeCancel\", {\n            id: p\n        });\n        k(q, r);\n        h.$E(r).kill();\n    };\n    function k(p, q) {\n        i(\"click\", null, q, null, {\n            gt: p\n        });\n    };\n    function l(p, q) {\n        k(p, q);\n        h.$E(q).prevent();\n    };\n    function m(p, q) {\n        h.listen(p, \"click\", k.curry(q));\n    };\n    function n(p, q, r) {\n        h.listen(p, \"click\", j.curry(q, r));\n    };\n    function o(p, q) {\n        h.listen(p, \"click\", l.curry(q));\n    };\n    e.exports = {\n        setupConfirmListener: m,\n        setupCancelListener: n,\n        setupNoListener: o\n    };\n});\n__d(\"LiveMessageReceiver\", [\"Arbiter\",\"ChannelConstants\",\"copyProperties\",\"emptyFunction\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"copyProperties\"), j = b(\"emptyFunction\"), k = b(\"shield\");\n    function l(m) {\n        this.eventName = m;\n        this.subs = null;\n        this.handler = j;\n        this.shutdownHandler = null;\n        this.registered = false;\n        this.appId = 1;\n    };\n    i(l, {\n        getAppMessageType: function(m, n) {\n            return (((\"live_message/\" + m) + \":\") + n);\n        },\n        route: function(m) {\n            var n = function(o) {\n                var p = l.getAppMessageType(m.app_id, m.event_name);\n                g.inform(p, o, g.BEHAVIOR_PERSISTENT);\n            };\n            n(m.response);\n        }\n    });\n    i(l.prototype, {\n        setAppId: function(m) {\n            this.appId = m;\n            return this;\n        },\n        setHandler: function(m) {\n            this.handler = m;\n            this._dirty();\n            return this;\n        },\n        setRestartHandler: j,\n        setShutdownHandler: function(m) {\n            this.shutdownHandler = k(m);\n            this._dirty();\n            return this;\n        },\n        _dirty: function() {\n            if (this.registered) {\n                this.unregister();\n                this.register();\n            }\n        ;\n        },\n        register: function() {\n            var m = function(o, p) {\n                return this.handler(p);\n            }.bind(this), n = l.getAppMessageType(this.appId, this.eventName);\n            this.subs = {\n            };\n            this.subs.main = g.subscribe(n, m);\n            if (this.shutdownHandler) {\n                this.subs.shut = g.subscribe(h.ON_SHUTDOWN, this.shutdownHandler);\n            };\n            this.registered = true;\n            return this;\n        },\n        unregister: function() {\n            if (!this.subs) {\n                return this\n            };\n            for (var m in this.subs) {\n                if (this.subs[m]) {\n                    this.subs[m].unsubscribe();\n                };\n            };\n            this.subs = null;\n            this.registered = false;\n            return this;\n        }\n    });\n    e.exports = l;\n});\n__d(\"initLiveMessageReceiver\", [\"Arbiter\",\"ChannelConstants\",\"LiveMessageReceiver\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"LiveMessageReceiver\");\n    g.subscribe(h.getArbiterType(\"app_msg\"), function(j, k) {\n        i.route(k.obj);\n    });\n});\n__d(\"Slideshow\", [\"ArbiterMixin\",\"CSS\",\"DOM\",\"Event\",\"Locale\",\"Parent\",\"copyProperties\",\"csx\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"Locale\"), l = b(\"Parent\"), m = b(\"copyProperties\"), n = b(\"csx\"), o = b(\"cx\"), p = b(\"shield\");\n    function q(r, s) {\n        this._root = r;\n        this._config = s;\n        this._currentIndex = 0;\n        this._animating = false;\n        this._autoplayTimer = null;\n        this._init();\n    };\n    m(q.prototype, g, {\n        getIndex: function() {\n            return this._currentIndex;\n        },\n        getNumItems: function() {\n            return this._items.length;\n        },\n        page: function(r) {\n            if ((typeof r === \"undefined\")) {\n                r = \"next\";\n            };\n            if ((r === \"next\")) {\n                if ((this._config.wrap || (this.getIndex() < (this.getNumItems() - 1)))) {\n                    this._animateTo((this._currentIndex + 1));\n                };\n            }\n             else if ((r === \"prev\")) {\n                if ((this._config.wrap || (this.getIndex() > 0))) {\n                    this._animateTo((this._currentIndex - 1));\n                }\n            }\n        ;\n        },\n        pageTo: function(r) {\n            this._animateTo(r, p(this._setCurrent, this, r));\n        },\n        insert: function(r, s) {\n            if ((r > this._currentIndex)) {\n                i.insertAfter(this._items[(r - 1)], s);\n            }\n             else {\n                i.insertBefore(this._items[r], s);\n                this._currentIndex++;\n            }\n        ;\n            this._items.splice(r, 0, s);\n            this._updateArrowState(this._currentIndex);\n            this.inform(\"items_updated\");\n        },\n        push: function(r) {\n            this.insert(this._items.length, r);\n        },\n        _init: function() {\n            this._container = i.find(this._root, \"ul._2xq\");\n            this._items = i.scry(this._container, \"li._2xr\");\n            if (this._config.arrows) {\n                j.listen(this._root, \"click\", this._clickListener.bind(this));\n                var r = i.find(this._root, \"a._2xw\"), s = i.find(this._root, \"a._2xx\");\n                this._arrowLeft = (k.isRTL() ? r : s);\n                this._arrowRight = (k.isRTL() ? s : r);\n            }\n        ;\n            if (this._config.autoplay) {\n                j.listen(this._root, \"mouseenter\", this.stopAutoplay.bind(this));\n                j.listen(this._root, \"mouseleave\", this.resetAutoplay.bind(this));\n                this.resetAutoplay();\n            }\n        ;\n            this.subscribe([\"page_start\",\"page_end\",], function(t, u) {\n                h.conditionClass(this._root, \"_2xm\", (t === \"page_start\"));\n            }.bind(this));\n        },\n        _clickListener: function(event) {\n            var r = event.getTarget(), s = l.byTag(r, \"a\");\n            if ((s && !h.hasClass(s, \"_2xo\"))) {\n                if (h.hasClass(s, \"_2xw\")) {\n                    this.page(\"next\");\n                }\n                 else if (h.hasClass(s, \"_2xx\")) {\n                    this.page(\"prev\");\n                }\n            \n            };\n        },\n        _updateArrowState: function(r) {\n            if (!this._config.arrows) {\n                return\n            };\n            h.conditionClass(this._arrowRight, \"_2xo\", (this._items.length === 1));\n            h.conditionClass(this._arrowLeft, \"_2xo\", (this._items.length === 1));\n        },\n        _animateTo: function(r) {\n        \n        },\n        _setCurrent: function(r) {\n            h.removeClass(this._items[this._currentIndex], \"_2xn\");\n            h.addClass(this._items[r], \"_2xn\");\n            h.removeClass(this._root, \"_2xm\");\n            this._currentIndex = r;\n            this._animating = false;\n            this.inform(\"page_end\", r);\n        },\n        resetAutoplay: function() {\n            if (this._config.autoplay) {\n                clearTimeout(this._autoplayTimer);\n                this._autoplayTimer = setTimeout(this._autoplay.bind(this), this._config.autoplayTimeout);\n            }\n        ;\n        },\n        stopAutoplay: function() {\n            clearTimeout(this._autoplayTimer);\n            this._autoplayTimer = null;\n        },\n        _autoplay: function() {\n            this.resetAutoplay();\n            if ((this._items.length > 1)) {\n                this.page();\n            };\n        }\n    });\n    e.exports = q;\n});\n__d(\"Carousel\", [\"Animation\",\"Class\",\"CSS\",\"Ease\",\"Locale\",\"Slideshow\",\"Style\",\"copyProperties\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Class\"), i = b(\"CSS\"), j = b(\"Ease\"), k = b(\"Locale\"), l = b(\"Slideshow\"), m = b(\"Style\"), n = b(\"copyProperties\"), o = b(\"cx\"), p = b(\"shield\"), q = (k.isRTL() ? \"right\" : \"left\"), r = j.sineInOut;\n    function s(t, u) {\n        this.parent.construct(this, t, u);\n        this.subscribe(\"items_updated\", this._updateItemState.bind(this));\n    };\n    h.extend(s, l);\n    n(s.prototype, {\n        _updateItemState: function(t, u) {\n            this._setContainerPos(t);\n            m.set(this._container, \"width\", (((this._items.length * this._config.width)) + \"px\"));\n        },\n        _updateArrowState: function(t) {\n            if (!this._config.arrows) {\n                return\n            };\n            var u = this._config.wrap, v = this._items.length, w = Math.floor((v / this._config.photosperframe));\n            i.conditionClass(this._arrowRight, \"_2xo\", ((w === 1) || ((!u && (t === (w - 1))))));\n            i.conditionClass(this._arrowLeft, \"_2xo\", ((w === 1) || ((!u && (t === 0)))));\n        },\n        _animate: function(t, u) {\n            this._animating = true;\n            this.inform(\"page_start\", t);\n            new g(this._container).to(q, (-t * this._config.width)).duration(this._config.animationDuration).ease(r).ondone(u).go();\n        },\n        _setContainerPos: function(t) {\n            m.set(this._container, q, ((-t * this._config.width) + \"px\"));\n        },\n        _animateTo: function(t) {\n            if (this._animating) {\n                return\n            };\n            var u = this._items.length;\n            if (((((0 <= t) && (t < u))) || !this._config.wrap)) {\n                var v = (((t + u)) % u);\n                this._updateArrowState(v);\n                return this._animate(v, p(this._setCurrent, this, v));\n            }\n        ;\n            var w = (t % u), x = (w ? (u - 1) : 0), y = this._items[(u - 1)];\n            m.set(y, \"position\", \"absolute\");\n            m.set(y, q, (-this._config.width + \"px\"));\n            if ((x === 0)) {\n                this._setContainerPos(-1);\n            };\n            this._animate(w, function() {\n                m.set(y, \"position\", \"static\");\n                m.set(y, q, \"auto\");\n                this._setContainerPos(x);\n                this._setCurrent(x);\n            }.bind(this));\n        }\n    });\n    e.exports = s;\n});");
36575 // 13267
36576 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s610492c67064c0ead09a2fdf91c068744cb6c1ed");
36577 // 13268
36578 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"H+v1W\",]);\n}\n;\n;\n__d(\"CanvasAppRequestUpdater\", [\"Arbiter\",\"CSS\",\"ChannelConstants\",\"DOM\",\"copyProperties\",\"csx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"ChannelConstants\"), j = b(\"DOM\"), k = b(\"copyProperties\"), l = b(\"csx\");\n    function m(n) {\n        this._root = n;\n        g.subscribe(i.getArbiterType(\"app_request_create\"), function(o, p) {\n            var q = j.scry(this._root, ((\".item_\" + p.obj.appid)))[0], r = ((q && j.scry(q, \"._1k71\")[0]));\n            ((r && j.appendContent(r, p.obj.request)));\n            ((q && this._updateBookmark(q, 1)));\n        }.bind(this));\n        g.subscribe(i.getArbiterType(\"app_request_delete\"), function(o, p) {\n            var q = j.scry(this._root, ((\".item_\" + p.obj.appid)))[0], r = ((q && j.scry(q, ((((\"[data-requestid='\" + p.obj.requestid)) + \"']\")))[0]));\n            ((r && j.remove(r.parentNode)));\n            ((q && this._updateBookmark(q, -1)));\n        }.bind(this));\n    };\n;\n    k(m.prototype, {\n        _updateBookmark: function(n, o) {\n            var p = j.JSBNG__find(n, \"._1k72\"), q = j.JSBNG__find(n, \".countValue\"), r = parseInt(j.getText(q), 10), s = Math.max(0, ((r + o)));\n            j.setContent(q, s);\n            if (((s < 1))) {\n                h.hide(q.parentNode);\n                h.hide(p);\n            }\n             else {\n                h.show(q.parentNode);\n                h.show(p);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"CanvasFlyoutLoader\", [\"AsyncRequest\",\"JSBNG__Event\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"JSBNG__Event\"), i = b(\"shield\"), j = {\n        endpoint: \"/ajax/canvas/flyouts\",\n        init: function(k, l, m) {\n            this.root = k;\n            this.largeApps = l;\n            this.seeAllApps = m;\n            this.handler = h.listen(k, \"mouseenter\", i(this.loadFlyouts, this));\n        },\n        loadFlyouts: function() {\n            this.handler.remove();\n            this.handler = null;\n            var k = {\n                items: this.largeApps,\n                all_apps: this.seeAllApps\n            };\n            new g().setURI(this.endpoint).setRelativeTo(this.root).setMethod(\"post\").setReadOnly(true).setData(k).setAllowCrossPageTransition(true).send();\n        }\n    };\n    e.exports = j;\n});\n__d(\"CanvasRecommendationFlyoutLoader\", [\"AsyncRequest\",\"JSBNG__Event\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"JSBNG__Event\"), i = b(\"shield\"), j = {\n        endpoint: \"/ajax/canvas/recommendation/flyouts\",\n        init: function(k, l, m, n) {\n            this.root = k;\n            this.apps = l;\n            this.editorialApps = m;\n            if (n) {\n                this.egoRedirectUrls = n;\n            }\n        ;\n        ;\n            this.handler = h.listen(k, \"mouseenter\", i(this.loadFlyouts, this));\n        },\n        loadFlyouts: function() {\n            this.handler.remove();\n            this.handler = null;\n            var k = {\n                items: this.apps\n            };\n            if (this.editorialApps) {\n                k.editorial_items = this.editorialApps;\n            }\n        ;\n        ;\n            if (this.egoRedirectUrls) {\n                k.egoredirecturls = this.egoRedirectUrls;\n            }\n        ;\n        ;\n            new g().setURI(this.endpoint).setRelativeTo(this.root).setMethod(\"post\").setReadOnly(true).setData(k).setAllowCrossPageTransition(true).send();\n        }\n    };\n    e.exports = j;\n});\n__d(\"BuddyListNub\", [\"JSXDOM\",\"JSBNG__Event\",\"Arbiter\",\"AvailableList\",\"BlackbirdUpsell\",\"ChannelConnection\",\"ChannelConstants\",\"ChatConfig\",\"ChatVisibility\",\"Class\",\"CSS\",\"Dock\",\"DOM\",\"HTML\",\"Keys\",\"NubController\",\"OrderedFriendsList\",\"Parent\",\"PresencePrivacy\",\"Toggler\",\"copyProperties\",\"csx\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"JSBNG__Event\"), i = b(\"Arbiter\"), j = b(\"AvailableList\"), k = b(\"BlackbirdUpsell\"), l = b(\"ChannelConnection\"), m = b(\"ChannelConstants\"), n = b(\"ChatConfig\"), o = b(\"ChatVisibility\"), p = b(\"Class\"), q = b(\"CSS\"), r = b(\"Dock\"), s = b(\"DOM\"), t = b(\"HTML\"), u = b(\"Keys\"), v = b(\"NubController\"), w = b(\"OrderedFriendsList\"), x = b(\"Parent\"), y = b(\"PresencePrivacy\"), z = b(\"Toggler\"), aa = b(\"copyProperties\"), ba = b(\"csx\"), ca = b(\"cx\"), da = b(\"tx\"), ea = 32, fa = 10;\n    function ga(ha, ia, ja) {\n        this.parent.construct(this);\n        this.parent.init(ha);\n        this.root = ha;\n        this.orderedList = ia;\n        this.typeahead = ja;\n        this.button = s.JSBNG__find(ha, \"a.fbNubButton\");\n        this.unreadCount = s.JSBNG__find(ha, \"span._5ayx\");\n        this.label = s.JSBNG__find(ha, \"span.label\");\n        this.body = s.scry(ha, \"div.fbNubFlyoutBody\")[0];\n        this.container = x.byClass(ha, \"_56ox\");\n        var ka = s.JSBNG__find(ha, \"div.fbNubFlyoutTitlebar\");\n        z.createInstance(ka).setSticky(false);\n        ia.subscribe(\"render\", this.flyoutContentChanged.bind(this));\n        ia.setScrollContainer(this.body);\n        j.subscribe(\"buddylist/availability-changed\", this._updateCount.bind(this));\n        i.subscribe(\"chat/connect\", this._handleConnect.bind(this));\n        y.subscribe(\"privacy-user-presence-changed\", this._handleVisibilityChange.bind(this));\n        this.message = s.JSBNG__find(ha, \"div._4mq1\");\n        this.warningMsgText = null;\n        this.warningMsgEventListener = null;\n        this.showWarningTimeout = null;\n        l.subscribe(l.CONNECTED, this._handleChannelConnected.bind(this));\n        l.subscribe(l.SHUTDOWN, this._handleChannelShutdown.bind(this));\n        l.subscribe(l.RECONNECTING, this._handleChannelReconnecting.bind(this));\n        l.subscribe([l.MUTE_WARNING,l.UNMUTE_WARNING,], this._updateView.bind(this));\n        this.subscribe(\"show\", this.onShow.bind(this));\n        this.subscribe(\"hide\", this.onHide.bind(this));\n        this.subscribe(\"resize\", this.onResize.bind(this));\n        h.listen(ha, \"keydown\", this._onKeyDown.bind(this));\n        h.listen(this.button, \"click\", this.onButtonClick.bind(this));\n        ja.subscribe([\"respond\",\"reset\",], function(la, ma) {\n            if (this._isOpen) {\n                var na = this.orderedList.isVisible();\n                if (((((((ma && ma.value)) && ((ma.value === ja.getCore().getValue())))) && ja.getView().isVisible()))) {\n                    r.setUseMaxHeight(this.root, false);\n                    this.orderedList.hide();\n                }\n                 else this._showBuddyList();\n            ;\n            ;\n                if (((na !== this.orderedList.isVisible()))) {\n                    this.flyoutContentChanged();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }.bind(this));\n        i.subscribe(\"sidebar/show\", this.hide.bind(this));\n        if (n.get(\"litestand_buddylist_count\")) {\n            i.subscribe(\"buddylist-nub/updateCount\", function(la, ma) {\n                this._unreadMessageCount = ma.count;\n                this._updateView();\n            }.bind(this));\n        }\n    ;\n    ;\n        this._orderedListCount = w.getList().length;\n        i.inform(\"buddylist-nub/initialized\", this, i.BEHAVIOR_PERSISTENT);\n        this._handleVisibilityChange();\n    };\n;\n    p.extend(ga, v);\n    aa(ga.prototype, {\n        getButton: function() {\n            return this.button;\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        _handleConnect: function(ha) {\n            this._updateView(true);\n        },\n        _getShutdownReason: function(ha) {\n            switch (ha) {\n              case m.HINT_AUTH:\n                return \"Your session has timed out. Please log in.\";\n              case m.HINT_CONN:\n                return da._(\"Facebook {Chat} is currently unavailable.\", {\n                    Chat: \"Chat\"\n                });\n              case m.HINT_MAINT:\n                return da._(\"Facebook {Chat} is currently down for maintenance.\", {\n                    Chat: \"Chat\"\n                });\n              default:\n                return da._(\"Facebook {Chat} is currently unavailable.\", {\n                    Chat: \"Chat\"\n                });\n            };\n        ;\n        },\n        _getReconnectMsg: function(ha) {\n            var ia;\n            if (((ha === null))) {\n                ia = \"Unable to connect to chat. Check your Internet connection.\";\n            }\n             else if (((ha > n.get(\"warning_countdown_threshold_msec\")))) {\n                var ja = s.create(\"a\", {\n                    href: \"#\",\n                    className: \"fbChatReconnectLink\"\n                }, \"Try again\"), ka = s.create(\"div\", null, ja), la = ka.innerHTML;\n                ia = t(da._(\"Unable to connect to chat. {try-again-link}\", {\n                    \"try-again-link\": la\n                }));\n            }\n             else if (((ha > 1000))) {\n                ia = da._(\"Unable to connect to chat. Reconnecting in {seconds}...\", {\n                    seconds: Math.floor(((ha / 1000)))\n                });\n            }\n             else ia = \"Unable to connect to chat. Reconnecting...\";\n            \n            \n        ;\n        ;\n            return ia;\n        },\n        _resetShowWarningTimeout: function() {\n            if (this.showWarningTimeout) {\n                JSBNG__clearTimeout(this.showWarningTimeout);\n                this.showWarningTimeout = null;\n            }\n        ;\n        ;\n        },\n        _handleChannelConnected: function(ha) {\n            this._resetShowWarningTimeout();\n            if (this.orderedList.isVisible()) {\n                o.goOnline();\n            }\n        ;\n        ;\n            this.warningMsgText = null;\n            this._updateView();\n        },\n        _handleChannelShutdown: function(ha, ia) {\n            this._resetShowWarningTimeout();\n            this.warningMsgText = this._getShutdownReason(ia);\n            this._updateView();\n        },\n        _handleChannelReconnecting: function(ha, ia) {\n            this._resetShowWarningTimeout();\n            this.warningMsgText = this._getReconnectMsg(ia);\n            if (((ia > 1000))) {\n                if (((ia > n.get(\"warning_countdown_threshold_msec\")))) {\n                    if (this.warningMsgEventListener) {\n                        this.warningMsgEventListener.remove();\n                        this.warningMsgEventListener = null;\n                    }\n                ;\n                ;\n                    this.warningMsgEventListener = h.listen(this.message, \"click\", function(JSBNG__event) {\n                        if (q.hasClass(JSBNG__event.getTarget(), \"fbChatReconnectLink\")) {\n                            this._tryReconnect();\n                            JSBNG__event.kill();\n                        }\n                    ;\n                    ;\n                    }.bind(this));\n                }\n            ;\n            ;\n                this.showWarningTimeout = JSBNG__setTimeout(this._handleChannelReconnecting.bind(this, ha, ((ia - 1000))), 1000, false);\n            }\n        ;\n        ;\n            this._updateView();\n        },\n        _tryReconnect: function() {\n            if (l.disconnected()) {\n                l.reconnect();\n            }\n        ;\n        ;\n        },\n        _handleVisibilityChange: function() {\n            this._updateView();\n            if (k.shouldShow()) {\n                if (o.hasBlackbirdEnabled()) {\n                    k.showBlackbirdDialog(this.getButton(), y.getVisibility());\n                }\n                 else if (!o.isOnline()) {\n                    k.showOfflineDialog(this.getButton());\n                }\n                \n            ;\n            ;\n            }\n             else k.hide();\n        ;\n        ;\n            if (!o.isOnline()) {\n                this.hide();\n            }\n        ;\n        ;\n        },\n        _updateView: function(ha) {\n            var ia = this.container;\n            if (ia) {\n                q.conditionClass(ia, \"offline\", !o.isOnline());\n                q.conditionClass(ia, \"error\", l.disconnected());\n            }\n        ;\n        ;\n            if (l.disconnected()) {\n                s.setContent(this.message, this.warningMsgText);\n            }\n        ;\n        ;\n            var ja, ka;\n            if (!o.isOnline()) {\n                ja = da._(\"{Chat} (Off)\", {\n                    Chat: \"Chat\"\n                });\n            }\n             else if (l.disconnected()) {\n                ja = da._(\"{Chat} (Disconnected)\", {\n                    Chat: \"Chat\"\n                });\n            }\n             else {\n                var la = j.getOnlineCount();\n                if (la) {\n                    ja = da._(\"{Chat} {number-available}\", {\n                        Chat: \"Chat\",\n                        \"number-available\": g.span({\n                            className: \"count\"\n                        }, \" (\", g.strong(null, la), \") \")\n                    });\n                }\n                 else {\n                    ja = \"Chat\";\n                    ka = true;\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            this._setUnread(this._unreadMessageCount);\n            this._setLabel(ja, ka);\n            this.buttonContentChanged();\n        },\n        onButtonClick: function() {\n            this._conditionallyShowTypeahead();\n            if (q.shown(this.typeahead.getElement())) {\n                var ha = this.subscribe(\"show\", function() {\n                    this.typeahead.getCore().getElement().JSBNG__focus();\n                    k.dismiss();\n                }.bind(this));\n                this.unsubscribe.bind(this, ha).defer();\n            }\n        ;\n        ;\n        },\n        onHide: function() {\n            this._isOpen = false;\n            if (this._buddyListRenderSubscription) {\n                this.orderedList.unsubscribe(this._buddyListRenderSubscription);\n                this._buddyListRenderSubscription = null;\n            }\n        ;\n        ;\n            this.orderedList.hide();\n            this.typeahead.getCore().reset();\n        },\n        _onKeyDown: function(JSBNG__event) {\n            var ha = h.getKeyCode(JSBNG__event);\n            if (((((ha === u.ESC)) && !q.hasClass(this.root, \"menuOpened\")))) {\n                this.hide();\n                return false;\n            }\n        ;\n        ;\n        },\n        onResize: function() {\n            var ha = ((r.getMaxFlyoutHeight(this.root) - 60)), ia = Math.max(250, ha);\n            this.orderedList.setNumTopFriends(Math.floor(((ia / ea))));\n        },\n        _showBuddyList: function() {\n            if (!this._buddyListRenderSubscription) {\n                this._buddyListRenderSubscription = this.orderedList.subscribe(\"render\", r.setUseMaxHeight.bind(r, this.root, false));\n            }\n        ;\n        ;\n            this.orderedList.show();\n        },\n        onShow: function() {\n            this._isOpen = true;\n            if (l.disconnected()) {\n                this._tryReconnect();\n                this._showBuddyList();\n            }\n             else o.goOnline(this._showBuddyList.bind(this));\n        ;\n        ;\n        },\n        _setLabel: function(ha, ia) {\n            var ja = this.label.cloneNode(true);\n            s.setContent(ja, ha);\n            s.replace(this.label, ja);\n            this.label = ja;\n            ((this.throbber && q.conditionShow(this.throbber, !!ia)));\n        },\n        _setUnread: function(ha) {\n            q.conditionShow(this.unreadCount, !!ha);\n            if (ha) {\n                ha = g.span({\n                    className: \"_51jx _5ayw\"\n                }, ha);\n                s.setContent(this.unreadCount, ha);\n            }\n        ;\n        ;\n        },\n        _conditionallyShowTypeahead: function() {\n            q.conditionShow(this.typeahead.getElement(), ((this._orderedListCount >= fa)));\n        },\n        _updateCount: function() {\n            this._updateView();\n            this._conditionallyShowTypeahead();\n        }\n    });\n    e.exports = ga;\n});\n__d(\"LiveBarData\", [\"function-extensions\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"ChannelConstants\",\"LayerDestroyOnHide\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"AsyncRequest\"), j = b(\"ChannelConstants\"), k = b(\"LayerDestroyOnHide\"), l = b(\"copyProperties\"), m = b(\"setTimeoutAcrossTransitions\"), n = false, o = {\n    }, p = {\n    }, q = {\n    };\n    function r(y) {\n        if (((((((y.expires * 1000)) - JSBNG__Date.now())) > 0))) {\n            return true;\n        }\n    ;\n    ;\n        return false;\n    };\n;\n    function s(y) {\n        var z = y.payload.actions;\n        if (!((z && z.length))) {\n            return;\n        }\n    ;\n    ;\n        var aa;\n        for (var ba = 0; ((ba < z.length)); ba++) {\n            aa = z[ba].actor_id;\n            if (((!o[aa] || ((z[ba].action_id != o[aa].action_id))))) {\n                continue;\n            }\n        ;\n        ;\n            if (((z[ba].delete_action || z[ba].remove))) {\n                v(z[ba]);\n                continue;\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function t(y) {\n        var z = false;\n        for (var aa = 0; ((aa < y.length)); aa++) {\n            if (((y[aa].delete_action || y[aa].remove))) {\n                v(y[aa]);\n                continue;\n            }\n        ;\n        ;\n            var ba = y[aa].actor_id, ca = y[aa].action_id;\n            if (o[ba]) {\n                if (((o[ba].action_id == ca))) {\n                    continue;\n                }\n            ;\n            ;\n                v(o[ba]);\n            }\n        ;\n        ;\n            z = true;\n            o[ba] = y[aa];\n            u(y[aa]);\n        };\n    ;\n        if (z) {\n            x.inform(\"new-actions\");\n        }\n    ;\n    ;\n    };\n;\n    function u(y) {\n        var z = ((((y.expires * 1000)) - JSBNG__Date.now()));\n        p[y.actor_id] = m(v.curry(y), Math.max(0, z));\n    };\n;\n    function v(y) {\n        if (!o[y.actor_id]) {\n            return;\n        }\n    ;\n    ;\n        if (((o[y.actor_id].action_id != y.action_id))) {\n            return;\n        }\n    ;\n    ;\n        delete o[y.actor_id];\n        var z = y.actor_id;\n        if (p[z]) {\n            JSBNG__clearTimeout(p[z]);\n            delete p[z];\n        }\n    ;\n    ;\n        w(z);\n        x.inform(\"remove-action\", y);\n    };\n;\n    function w(y) {\n        var z = q[y];\n        if (z) {\n            z.enableBehavior(k);\n            if (!z.isShown()) {\n                z.destroy();\n            }\n        ;\n        ;\n            delete q[y];\n        }\n    ;\n    ;\n    };\n;\n    g.subscribe(j.getArbiterType(\"livebar_update\"), function(y, z) {\n        t(z.obj.actions);\n    });\n    var x = {\n    };\n    l(x, h, {\n        fetch: function() {\n            if (n) {\n                return;\n            }\n        ;\n        ;\n            var y = [];\n            {\n                var fin255keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin255i = (0);\n                var z;\n                for (; (fin255i < fin255keys.length); (fin255i++)) {\n                    ((z) = (fin255keys[fin255i]));\n                    {\n                        var aa = o[z];\n                        if (aa.suppress_callout) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        if (!q[aa.actor_id]) {\n                            y.push(o[z]);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            if (((y.length > 0))) {\n                n = true;\n                new i().setURI(\"/ajax/chat/livebar.php\").setData({\n                    actions: y\n                }).setHandler(s).setFinallyHandler(function() {\n                    n = false;\n                }).setAllowCrossPageTransition(true).send();\n            }\n        ;\n        ;\n        },\n        addActions: t,\n        getAction: function(y) {\n            var z = o[y];\n            if (((z && r(z)))) {\n                return z;\n            }\n        ;\n        ;\n            return null;\n        },\n        getDialog: function(y) {\n            var z = this.getAction(y);\n            if (((z && q[z.actor_id]))) {\n                return q[z.actor_id];\n            }\n        ;\n        ;\n            return null;\n        },\n        setDialog: function(y, z, aa) {\n            var ba = o[y];\n            if (((ba && ((ba.action_id == z))))) {\n                w(y);\n                q[y] = aa;\n                x.inform(\"dialog-fetched\", y);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = x;\n});\n__d(\"LiveBar\", [\"ChatOrderedList\",\"function-extensions\",\"LegacyContextualDialog\",\"ChatConfig\",\"CSS\",\"LiveBarData\",\"copyProperties\",\"setTimeoutAcrossTransitions\",\"shield\",], function(a, b, c, d, e, f) {\n    b(\"ChatOrderedList\");\n    b(\"function-extensions\");\n    b(\"LegacyContextualDialog\");\n    var g = b(\"ChatConfig\"), h = b(\"CSS\"), i = b(\"LiveBarData\"), j = b(\"copyProperties\"), k = b(\"setTimeoutAcrossTransitions\"), l = b(\"shield\"), m = ((g.get(\"livebar_fetch_defer\") || 1000));\n    function n(o, p, q) {\n        this._orderedList = o;\n        this._root = o.getRoot();\n        this._liveBarTypes = q;\n        this._hoverController = o.getHoverController();\n        this._hoverController.subscribe(\"hover\", this._mouseMove.bind(this));\n        this._hoverController.subscribe(\"leave\", this._mouseLeave.bind(this));\n        o.subscribe(\"render\", l(this._handleChatListUpdate, this));\n        i.subscribe(\"new-actions\", this._updateIcons.bind(this));\n        i.subscribe(\"remove-action\", this._handleRemoveAction.bind(this));\n        i.subscribe(\"dialog-fetched\", function(r, s) {\n            this._setDialogContent(s);\n        }.bind(this));\n        i.addActions(p);\n    };\n;\n    j(n, {\n        setDialog: function(o, p, q) {\n            i.setDialog(o, p, q);\n        }\n    });\n    j(n.prototype, {\n        _root: null,\n        _liveBarTypes: null,\n        _hoverController: null,\n        _registrations: {\n        },\n        _renderedIcons: {\n        },\n        _fetchTimer: null,\n        _mouseLeftRoot: false,\n        _chatListRendered: false,\n        _getLiveBarTypes: function() {\n            return this._liveBarTypes;\n        },\n        _handleChatListUpdate: function() {\n            if (!this._chatListRendered) {\n                this._chatListRendered = true;\n                this._updateIcons();\n            }\n        ;\n        ;\n        },\n        _handleShow: function(o) {\n            this._setDialogContent(o);\n        },\n        _mouseMove: function() {\n            if (!this._fetchTimer) {\n                this._fetchTimer = k(this._fetch.bind(this), m);\n                this._mouseLeftRoot = false;\n            }\n        ;\n        ;\n        },\n        _mouseLeave: function() {\n            this._mouseLeftRoot = true;\n            JSBNG__clearTimeout(this._fetchTimer);\n            this._fetchTimer = null;\n        },\n        _setDialogContent: function(o) {\n            var p = i.getDialog(o);\n            if (p) {\n                this._hoverController.showHovercard(o, p);\n            }\n        ;\n        ;\n        },\n        _fetch: function() {\n            if (this._mouseLeftRoot) {\n                return;\n            }\n        ;\n        ;\n            this._fetchTimer = null;\n            i.fetch();\n        },\n        _updateIcons: function() {\n            if (!this._chatListRendered) {\n                return;\n            }\n        ;\n        ;\n            var o = this._orderedList.getAllNodes(), p = this._getLiveBarTypes();\n            {\n                var fin256keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin256i = (0);\n                var q;\n                for (; (fin256i < fin256keys.length); (fin256i++)) {\n                    ((q) = (fin256keys[fin256i]));\n                    {\n                        var r = i.getAction(q);\n                        if (((r && ((!this._renderedIcons[q] || ((this._renderedIcons[q] != r.action_id))))))) {\n                            for (var s = 0; ((s < p.length)); s++) {\n                                h.removeClass(o[q], p[s]);\n                            ;\n                            };\n                        ;\n                            h.addClass(o[q], r.livebar_type);\n                            this._renderedIcons[q] = r.action_id;\n                            var t = this._hoverController.register(q, this._handleShow.bind(this));\n                            if (t) {\n                                this._registrations[q] = t;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        _handleRemoveAction: function(o, p) {\n            var q = p.action_id, r = p.actor_id;\n            ((this._registrations[r] && this._registrations[r].unregister()));\n            delete this._registrations[r];\n            if (((this._renderedIcons[r] == q))) {\n                var s = this._getLiveBarTypes(), t = this._orderedList.getAllNodes();\n                if (t[r]) {\n                    for (var u = 0; ((u < s.length)); u++) {\n                        h.removeClass(t[r], s[u]);\n                    ;\n                    };\n                }\n            ;\n            ;\n                delete this._renderedIcons[r];\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = n;\n});\n__d(\"LiveBarDark\", [\"Class\",\"LiveBar\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"LiveBar\"), i = b(\"copyProperties\"), j = b(\"emptyFunction\");\n    function k(l, m, n) {\n        this.parent.construct(this, l, m, n);\n    };\n;\n    g.extend(k, h);\n    i(k.prototype, {\n        _setupDialogContent: j,\n        _show: j,\n        _updateIcons: j,\n        _handleRemoveAction: j,\n        _handleChatListUpdate: j\n    });\n    e.exports = k;\n});\n__d(\"ChatSidebarDropdown\", [\"Arbiter\",\"AsyncRequest\",\"Chat\",\"ChatOptions\",\"ChatVisibility\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"JSLogger\",\"PresenceState\",\"SelectorDeprecated\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Chat\"), j = b(\"ChatOptions\"), k = b(\"ChatVisibility\"), l = b(\"CSS\"), m = b(\"DOM\"), n = b(\"JSBNG__Event\"), o = b(\"JSLogger\"), p = b(\"PresenceState\"), q = b(\"SelectorDeprecated\"), r = b(\"copyProperties\");\n    function s(t, u) {\n        this._root = t;\n        this._logger = o.create(\"blackbird\");\n        this._displayBrowserNotificationsIfNeeded();\n        q.listen(t, \"select\", this._onSelect.bind(this));\n        q.listen(t, \"toggle\", this._onToggle.bind(this));\n        if (u) {\n            q.listen(t, \"close\", u.allowCollapse.curry(true, \"SidebarMenu\"));\n            q.listen(t, \"open\", u.allowCollapse.curry(false, \"SidebarMenu\"));\n        }\n    ;\n    ;\n        g.subscribe(\"chat/option-changed\", this._onOptionChanged.bind(this));\n    };\n;\n    r(s, {\n        registerEditFavorites: function(t, u, v) {\n            function w(x) {\n                l.conditionShow(t, !x);\n                l.conditionShow(u, x);\n            };\n        ;\n            n.listen(t, \"click\", function() {\n                v.toggleEditMode();\n                w(true);\n            });\n            n.listen(u, \"click\", function() {\n                v.toggleEditMode();\n                w(false);\n            });\n            v.subscribe(\"editStart\", w.curry(true));\n            v.subscribe(\"editEnd\", w.curry(false));\n        }\n    });\n    r(s.prototype, {\n        changeSetting: function(t, u) {\n            if (this._pendingChange) {\n                return false;\n            }\n        ;\n        ;\n            this._pendingChange = true;\n            var v = {\n            };\n            v[t] = u;\n            j.setSetting(t, u, \"sidebar_menu\");\n            new h(\"/ajax/chat/settings.php\").setHandler(this._onChangeSettingResponse.bind(this, t, u)).setErrorHandler(this._onChangeSettingError.bind(this, t, u)).setFinallyHandler(this._onChangeFinally.bind(this)).setData(v).setAllowCrossPageTransition(true).send();\n        },\n        _displayBrowserNotificationsIfNeeded: function() {\n            if (window.JSBNG__webkitNotifications) {\n                m.scry(JSBNG__document, \"li.sidebar-browser-notif\").forEach(l.show);\n                if (((window.JSBNG__webkitNotifications.checkPermission() !== 0))) {\n                    m.scry(JSBNG__document, \"li.sidebar-browser-notif\").forEach(function(t) {\n                        l.removeClass(t, \"checked\");\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _conditionEnabled: function(t, u) {\n            var v = q.getOption(this._root, t);\n            ((v && q.setOptionEnabled(v, u)));\n        },\n        _onChangeSettingResponse: function(t, u, v) {\n            p.doSync();\n        },\n        _onChangeSettingError: function(t, u, v) {\n            j.setSetting(t, !u, \"sidebar_menu_error\");\n        },\n        _onChangeFinally: function() {\n            this._pendingChange = false;\n        },\n        _onOptionChanged: function(t, u) {\n            var v = u.JSBNG__name, w = u.value;\n            if (((((v === \"sound\")) || ((v === \"browser_notif\"))))) {\n                var x = q.getOption(this._root, v);\n                if (((w !== q.isOptionSelected(x)))) {\n                    q.setSelected(this._root, v, w);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _onSelect: function(t) {\n            if (this._pendingChange) {\n                return false;\n            }\n        ;\n        ;\n            var u = false, v = false, w = q.getOptionValue(t.option);\n            switch (w) {\n              case \"JSBNG__sidebar\":\n                return this.toggleSidebar();\n              case \"online\":\n                if (!k.isOnline()) {\n                    k.goOnline();\n                }\n                 else v = true;\n            ;\n            ;\n                u = true;\n                break;\n              case \"offline\":\n                if (k.isOnline()) {\n                    k.goOffline();\n                }\n                 else v = true;\n            ;\n            ;\n                u = true;\n                break;\n              case \"advanced_settings\":\n            \n              case \"turn_off_dialog\":\n                g.inform(\"chat/advanced-settings-dialog-opened\");\n                u = true;\n                break;\n            };\n        ;\n            if (v) {\n                this._logger.error(\"sidebar_dropdown_visibility_error\", {\n                    action: w\n                });\n            }\n             else this._logger.log(\"sidebar_dropdown_set_visibility\", {\n                action: w\n            });\n        ;\n        ;\n            if (u) {\n                q.toggle(this._root);\n                return false;\n            }\n        ;\n        ;\n        },\n        _onToggle: function(t) {\n            if (this._pendingChange) {\n                return false;\n            }\n        ;\n        ;\n            var u = q.getOptionValue(t.option), v = q.isOptionSelected(t.option);\n            switch (u) {\n              case \"visibility\":\n                if (!k) {\n                    this._jslogger.error(\"on_toggle_visibility_undefined\");\n                    return;\n                }\n            ;\n            ;\n                k.toggleVisibility();\n                this._logger.log(\"sidebar_dropdown_toggle_visibility\", {\n                    available: v\n                });\n                break;\n              case \"browser_notif\":\n                if (((((v && window.JSBNG__webkitNotifications)) && ((window.JSBNG__webkitNotifications.checkPermission() !== 0))))) {\n                    window.JSBNG__webkitNotifications.requestPermission(function() {\n                        this.changeSetting(u, v);\n                    }.bind(this));\n                }\n                 else this.changeSetting(u, v);\n            ;\n            ;\n                break;\n              case \"sound\":\n                this.changeSetting(u, v);\n                break;\n            };\n        ;\n            q.toggle(this._root);\n        },\n        _onVisibilityChanged: function() {\n            var t = k.isOnline(), u = q.getOption(this._root, \"visibility\");\n            if (((t !== q.isOptionSelected(u)))) {\n                q.setSelected(this._root, \"visibility\", t);\n            }\n        ;\n        ;\n        },\n        toggleSidebar: function() {\n            i.toggleSidebar();\n            q.toggle(this._root);\n            return false;\n        }\n    });\n    e.exports = s;\n});\n__d(\"ChatSidebarLog\", [\"AsyncSignal\",\"Bootloader\",\"ModuleDependencies\",\"JSLogger\",\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"Bootloader\"), i = b(\"ModuleDependencies\"), j = b(\"JSLogger\"), k = b(\"Run\"), l = j.create(\"chat_sidebar_load\"), m = null, n = false, o = ((((Math.JSBNG__random() * 2147483648)) | 0)).toString(36);\n    k.onLoad(function() {\n        n = true;\n    });\n    try {\n        d([\"ChatSidebar\",], function(t) {\n            m = t;\n        });\n    } catch (p) {\n        l.warn(\"exception\", {\n            reason: p.toString()\n        });\n    };\n;\n    function q(t, u) {\n        if (((t.length > u))) {\n            return t[u];\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function r(t) {\n        JSBNG__setTimeout(function() {\n            var u = i.getMissing(\"ChatSidebar\"), v = h.getErrorUrls(), w = h.getLoadingUrls(), x = [];\n            {\n                var fin257keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin257i = (0);\n                var y;\n                for (; (fin257i < fin257keys.length); (fin257i++)) {\n                    ((y) = (fin257keys[fin257i]));\n                    {\n                        x.push({\n                            url: y,\n                            time: w[y]\n                        });\n                    ;\n                    };\n                };\n            };\n        ;\n            x.sort(function(aa, ba) {\n                return ((ba.time - aa.time));\n            });\n            var z = {\n                page_loaded: n,\n                page_id: o,\n                timeout: t,\n                missing_total: u.length,\n                module_1: q(u, 0),\n                module_2: q(u, 1),\n                module_3: q(u, 2),\n                error_url_total: v.length,\n                error_url_1: q(v, 0),\n                error_url_2: q(v, 1),\n                error_url_3: q(v, 2),\n                loading_url_total: x.length,\n                loading_url_1: ((q(x, 0) ? q(x, 0).url : null)),\n                loading_time_1: ((q(x, 0) ? q(x, 0).time : null)),\n                loading_url_2: ((q(x, 1) ? q(x, 1).url : null)),\n                loading_time_2: ((q(x, 1) ? q(x, 1).time : null)),\n                loading_url_3: ((q(x, 2) ? q(x, 2).url : null)),\n                loading_time_3: ((q(x, 2) ? q(x, 2).time : null))\n            };\n            if (!m) {\n                l.warn(((\"require_\" + t)), {\n                    missing: u\n                });\n                z.symptom = \"require\";\n            }\n        ;\n        ;\n            if (((m && !m.isInitialized()))) {\n                l.warn(((\"init_\" + t)), {\n                    missing: u\n                });\n                z.symptom = \"init\";\n            }\n        ;\n        ;\n            if (z.symptom) {\n                new g(\"/ajax/chat/sidebar_load.php\", z).send();\n            }\n        ;\n        ;\n        }, t);\n    };\n;\n    var s = {\n        start: function() {\n            r(5000);\n            r(10000);\n            r(15000);\n            r(30000);\n            r(60000);\n        }\n    };\n    e.exports = s;\n});\n__d(\"NotificationConstants\", [], function(a, b, c, d, e, f) {\n    e.exports = {\n        PayloadSourceType: {\n            UNKNOWN: 0,\n            USER_ACTION: 1,\n            LIVE_SEND: 2,\n            ENDPOINT: 3,\n            INITIAL_LOAD: 4,\n            OTHER_APPLICATION: 5\n        }\n    };\n});\n__d(\"NotificationTokens\", [\"Env\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = {\n        tokenizeIDs: function(i) {\n            return i.map(function(j) {\n                return ((((g.user + \":\")) + j));\n            });\n        },\n        untokenizeIDs: function(i) {\n            return i.map(function(j) {\n                return j.split(\":\")[1];\n            });\n        }\n    };\n    e.exports = h;\n});\n__d(\"NotificationImpressions\", [\"AsyncSignal\",\"NotificationTokens\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = b(\"NotificationTokens\"), i = b(\"URI\"), j = \"/ajax/notifications/impression.php\";\n    function k(l, m) {\n        var n = {\n            ref: m\n        };\n        h.untokenizeIDs(l).forEach(function(o, p) {\n            n[((((\"alert_ids[\" + p)) + \"]\"))] = o;\n        });\n        new g(i(j).getQualifiedURI().toString(), n).send();\n    };\n;\n    e.exports = {\n        log: k\n    };\n});\n__d(\"NotificationPhotoThumbnail\", [], function(a, b, c, d, e, f) {\n    function g(i) {\n        return ((((i.style == \"photo\")) ? i.media.image : null));\n    };\n;\n    var h = {\n        getThumbnail: function(i, j) {\n            var k;\n            if (((i && i.length))) {\n                k = g(i[0]);\n                if (k) {\n                    return k;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (j) {\n                var l = j.attachments;\n                if (((l && l.length))) {\n                    return g(l[0]);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return null;\n        }\n    };\n    e.exports = h;\n});\n__d(\"NotificationUpdates\", [\"Arbiter\",\"ChannelConstants\",\"JSLogger\",\"NotificationConstants\",\"NotificationTokens\",\"LiveTimer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"JSLogger\"), j = b(\"NotificationConstants\"), k = b(\"NotificationTokens\"), l = b(\"LiveTimer\"), m = b(\"copyProperties\"), n = b(\"createObjectFrom\"), o = {\n    }, p = {\n    }, q = {\n    }, r = {\n    }, s = [], t = 0, u = i.create(\"notification_updates\");\n    function v() {\n        if (t) {\n            return;\n        }\n    ;\n    ;\n        var z = o, aa = p, ba = q, ca = r;\n        o = {\n        };\n        p = {\n        };\n        q = {\n        };\n        r = {\n        };\n        x(\"notifications-updated\", z);\n        if (Object.keys(aa).length) {\n            x(\"seen-state-updated\", aa);\n        }\n    ;\n    ;\n        if (Object.keys(ba).length) {\n            x(\"read-state-updated\", ba);\n        }\n    ;\n    ;\n        if (Object.keys(ca).length) {\n            x(\"hidden-state-updated\", ca);\n        }\n    ;\n    ;\n        s.pop();\n    };\n;\n    function w() {\n        if (s.length) {\n            return s[((s.length - 1))];\n        }\n    ;\n    ;\n        return j.PayloadSourceType.UNKNOWN;\n    };\n;\n    function x(JSBNG__event, z) {\n        y.inform(JSBNG__event, {\n            updates: z,\n            source: w()\n        });\n    };\n;\n    g.subscribe(h.getArbiterType(\"notification_json\"), function(z, aa) {\n        var ba = JSBNG__Date.now(), ca = aa.obj.nodes;\n        if (ca) {\n            ca.forEach(function(da) {\n                da.receivedTime = ba;\n            });\n            u.debug(\"notifications_received\", ca);\n            y.handleUpdate(j.PayloadSourceType.LIVE_SEND, aa.obj);\n        }\n    ;\n    ;\n    });\n    g.subscribe(h.getArbiterType(\"notifications_seen\"), function(z, aa) {\n        var ba = k.tokenizeIDs(aa.obj.alert_ids);\n        y.handleUpdate(j.PayloadSourceType.LIVE_SEND, {\n            seenState: n(ba)\n        });\n    });\n    g.subscribe(h.getArbiterType(\"notifications_read\"), function(z, aa) {\n        var ba = k.tokenizeIDs(aa.obj.alert_ids);\n        y.handleUpdate(j.PayloadSourceType.LIVE_SEND, {\n            readState: n(ba)\n        });\n    });\n    var y = m(new g(), {\n        handleUpdate: function(z, aa) {\n            if (aa.servertime) {\n                l.restart(aa.servertime);\n            }\n        ;\n        ;\n            if (Object.keys(aa).length) {\n                this.synchronizeInforms(function() {\n                    s.push(z);\n                    var ba = m({\n                        payloadsource: w()\n                    }, aa);\n                    this.inform(\"update-notifications\", ba);\n                    this.inform(\"update-seen\", ba);\n                    this.inform(\"update-read\", ba);\n                    this.inform(\"update-hidden\", ba);\n                }.bind(this));\n            }\n        ;\n        ;\n        },\n        didUpdateNotifications: function(z) {\n            m(o, n(z));\n            v();\n        },\n        didUpdateSeenState: function(z) {\n            m(p, n(z));\n            v();\n        },\n        didUpdateReadState: function(z) {\n            m(q, n(z));\n            v();\n        },\n        didUpdateHiddenState: function(z) {\n            m(r, n(z));\n            v();\n        },\n        synchronizeInforms: function(z) {\n            t++;\n            try {\n                z();\n            } catch (aa) {\n                throw aa;\n            } finally {\n                t--;\n                v();\n            };\n        ;\n        }\n    });\n    e.exports = y;\n});\n__d(\"NotificationStore\", [\"KeyedCallbackManager\",\"NotificationConstants\",\"NotificationUpdates\",\"RangedCallbackManager\",\"MercuryServerDispatcher\",], function(a, b, c, d, e, f) {\n    var g = b(\"KeyedCallbackManager\"), h = b(\"NotificationConstants\"), i = b(\"NotificationUpdates\"), j = b(\"RangedCallbackManager\"), k = b(\"MercuryServerDispatcher\"), l = new g(), m = new j(function(p) {\n        var q = l.getResource(p);\n        return q.creation_time;\n    }, function(p, q) {\n        return ((q - p));\n    }), n = {\n    };\n    i.subscribe(\"update-notifications\", function(p, q) {\n        if (q.page_info) {\n            n = q.page_info;\n        }\n    ;\n    ;\n        if (((q.nodes === undefined))) {\n            return;\n        }\n    ;\n    ;\n        var r, s = [], t = {\n        }, u = ((q.nodes || [])), v;\n        u.forEach(function(w) {\n            r = w.alert_id;\n            v = l.getResource(r);\n            if (((!v || ((v.creation_time < w.creation_time))))) {\n                s.push(r);\n                t[r] = w;\n            }\n        ;\n        ;\n        });\n        l.addResourcesAndExecute(t);\n        m.addResources(s);\n        i.didUpdateNotifications(s);\n    });\n    k.registerEndpoints({\n        \"/ajax/notifications/client/get.php\": {\n            mode: k.IMMEDIATE,\n            handler: function(p) {\n                i.handleUpdate(h.PayloadSourceType.ENDPOINT, p);\n            }\n        }\n    });\n    var o = {\n        getNotifications: function(p, q) {\n            var r = m.executeOrEnqueue(0, p, function(w) {\n                var x = l.executeOrEnqueue(w, function(y) {\n                    q(y);\n                });\n            }), s = m.getUnavailableResources(r);\n            if (s.length) {\n                m.unsubscribe(r);\n                if (!o.canFetchMore()) {\n                    l.executeOrEnqueue(m.getAllResources(), q);\n                    return;\n                }\n            ;\n            ;\n                var t = ((n.end_cursor || null)), u;\n                if (t) {\n                    var v = Math.max.apply(null, s);\n                    u = ((((v - m.getCurrentArraySize())) + 1));\n                }\n                 else u = p;\n            ;\n            ;\n                k.trySend(\"/ajax/notifications/client/get.php\", {\n                    cursor: t,\n                    length: u\n                });\n            }\n        ;\n        ;\n        },\n        getAll: function(p) {\n            o.getNotifications(o.getCount(), p);\n        },\n        getCount: function() {\n            return m.getCurrentArraySize();\n        },\n        canFetchMore: function() {\n            if (n.hasOwnProperty(\"has_next_page\")) {\n                return n.has_next_page;\n            }\n        ;\n        ;\n            return true;\n        }\n    };\n    e.exports = o;\n});\n__d(\"NotificationUserActions\", [\"AsyncRequest\",\"AsyncSignal\",\"NotificationConstants\",\"NotificationStore\",\"NotificationTokens\",\"NotificationUpdates\",\"URI\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"AsyncSignal\"), i = b(\"NotificationConstants\"), j = b(\"NotificationStore\"), k = b(\"NotificationTokens\"), l = b(\"NotificationUpdates\"), m = b(\"URI\"), n = b(\"createObjectFrom\"), o = b(\"emptyFunction\"), p = i.PayloadSourceType.USER_ACTION, q = \"mark_spam\", r = \"turn_off\", s = \"undo\", t = \"first_receipt_yes\", u = \"first_receipt_no\";\n    function v(aa) {\n        var ba = m(\"/ajax/notifications/mark_read.php\").getQualifiedURI().toString();\n        new h(ba, aa).send();\n    };\n;\n    function w(aa) {\n        var ba = {\n        };\n        aa.forEach(function(ca, da) {\n            ba[((((\"alert_ids[\" + da)) + \"]\"))] = ca;\n        });\n        return ba;\n    };\n;\n    function x(aa, ba, ca, da) {\n        var ea = k.untokenizeIDs([aa,])[0];\n        new g(\"/ajax/notifications/negative_req.php\").setData({\n            notification_id: ea,\n            client_rendered: true,\n            request_type: ba\n        }).setHandler(((ca || o))).setErrorHandler(((da || o))).send();\n    };\n;\n    function y(aa, ba, ca, da, ea) {\n        var fa = ((ea ? s : r));\n        j.getAll(function(ga) {\n            var ha = Object.keys(ga).filter(function(ia) {\n                var ja = ga[ia];\n                return !!((((ja.application && ja.application.id)) && ((ja.application.id == ba))));\n            });\n            x(aa, fa, function(ia) {\n                ca(ia);\n                l.handleUpdate(p, {\n                    hiddenState: n(ha, !ea)\n                });\n            }, da);\n        });\n    };\n;\n    var z = {\n        markNotificationsAsSeen: function(aa) {\n            l.handleUpdate(p, {\n                seenState: n(aa)\n            });\n            var ba = k.untokenizeIDs(aa), ca = w(ba);\n            ca.seen = true;\n            v(ca);\n            if (a.presenceNotifications) {\n                a.presenceNotifications.alertList.markSeen(ba);\n            }\n        ;\n        ;\n        },\n        markNotificationsAsRead: function(aa) {\n            l.handleUpdate(p, {\n                readState: n(aa)\n            });\n            var ba = k.untokenizeIDs(aa);\n            v(w(ba));\n            if (a.presenceNotifications) {\n                a.presenceNotifications.markRead(false, ba);\n            }\n        ;\n        ;\n        },\n        markNotificationAsHidden: function(aa, ba, ca) {\n            l.handleUpdate(p, {\n                hiddenState: n([aa,])\n            });\n            x(aa, r, ba, ca);\n        },\n        markNotificationAsVisible: function(aa, ba, ca) {\n            l.handleUpdate(p, {\n                hiddenState: n([aa,], false)\n            });\n            x(aa, s, ba, ca);\n        },\n        markNotificationAsSpam: function(aa, ba, ca) {\n            l.handleUpdate(p, {\n                hiddenState: n([aa,], false)\n            });\n            x(aa, q, ba, ca);\n        },\n        markAppAsHidden: function(aa, ba, ca, da) {\n            var ea = false;\n            y(aa, ba, ca, da, ea);\n        },\n        markAppAsVisible: function(aa, ba, ca, da) {\n            var ea = true;\n            y(aa, ba, ca, da, ea);\n        },\n        markFirstReceiptYes: function(aa, ba, ca) {\n            x(aa, t, ba, ca);\n        },\n        markFirstReceiptNo: function(aa, ba, ca) {\n            x(aa, u, ba, ca);\n        }\n    };\n    e.exports = z;\n});\n__d(\"NotificationBeeperItemContents.react\", [\"Animation\",\"CloseButton.react\",\"ImageBlock.react\",\"NotificationURI\",\"NotificationUserActions\",\"React\",\"TextWithEntities.react\",\"Timestamp.react\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"CloseButton.react\"), i = b(\"ImageBlock.react\"), j = b(\"NotificationURI\"), k = b(\"NotificationUserActions\"), l = b(\"React\"), m = b(\"TextWithEntities.react\"), n = b(\"Timestamp.react\"), o = b(\"cx\");\n    function p(r, s) {\n        return l.DOM.span({\n            className: \"fwb\"\n        }, r);\n    };\n;\n    var q = l.createClass({\n        displayName: \"NotificationBeeperItemContents\",\n        _markAsRead: function() {\n            k.markNotificationsAsRead([this.props.beep.notificationID,]);\n            this.props.onHide();\n        },\n        _onClose: function() {\n            this._markAsRead();\n            this.props.onHide();\n        },\n        _doFlash: function() {\n            new g(this.refs.JSBNG__inner.getDOMNode()).from(\"opacity\", \"0\").to(\"opacity\", \"1\").duration(200).go();\n        },\n        componentDidUpdate: function(r) {\n            if (((r.beep.beepID !== this.props.beep.beepID))) {\n                this._doFlash();\n            }\n        ;\n        ;\n        },\n        render: function() {\n            var r = this.props.beep, s = r.icon.uri, t = ((r.link ? j.localize(r.link) : \"#\")), u = ((r.photo && j.snowliftable(t)));\n            return (l.DOM.div({\n                ref: \"JSBNG__inner\"\n            }, h({\n                className: \"_3soc\",\n                onClick: this._onClose,\n                size: \"medium\"\n            }), l.DOM.a({\n                href: t,\n                ajaxify: ((u ? t : null)),\n                onClick: this._markAsRead,\n                rel: ((u ? \"theater\" : null)),\n                className: \"_3soi\"\n            }, i({\n                className: \"_3soj\"\n            }, l.DOM.img({\n                src: r.actors[0].profile_picture.uri,\n                className: \"_3sok\"\n            }), l.DOM.div({\n                className: \"_3sol\"\n            }, m({\n                renderEmoticons: true,\n                renderEmoji: true,\n                interpolator: p,\n                ranges: r.text.ranges,\n                aggregatedranges: r.text.aggregated_ranges,\n                text: r.text.text\n            }), i({\n                className: \"_3som\"\n            }, l.DOM.img({\n                src: s\n            }), n({\n                time: r.timestamp.time,\n                text: r.timestamp.text,\n                verbose: r.timestamp.verbose\n            })))))));\n        }\n    });\n    e.exports = q;\n});\n__d(\"NotificationBeeperItem.react\", [\"Animation\",\"BrowserSupport\",\"NotificationBeeperItemContents.react\",\"React\",\"cx\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"BrowserSupport\"), i = b(\"NotificationBeeperItemContents.react\"), j = b(\"React\"), k = b(\"cx\"), l = b(\"setTimeoutAcrossTransitions\"), m = j.createClass({\n        displayName: \"NotificationBeeperItem\",\n        getInitialState: function() {\n            return {\n                fadedIn: false,\n                hidden: false\n            };\n        },\n        componentDidMount: function() {\n            var n;\n            if (h.hasCSSAnimations()) {\n                n = this.setState.bind(this, {\n                    fadedIn: true\n                });\n            }\n             else n = function() {\n                new g(this.refs.item.getDOMNode()).from(\"JSBNG__top\", \"-30px\").from(\"opacity\", \"0\").to(\"JSBNG__top\", \"0px\").to(\"opacity\", \"1\").duration(200).ondone(this.setState.bind(this, {\n                    fadedIn: true\n                })).go();\n            }.bind(this);\n        ;\n        ;\n            l(n, 50);\n            this.props.onInserted(this.props.beep);\n        },\n        render: function() {\n            var n = this.props.beep, o = (((((\"_3sod\") + ((this.state.fadedIn ? ((\" \" + \"_3soe\")) : \"\")))) + ((this.state.hidden ? ((\" \" + \"_3sof\")) : \"\")))), p = ((n.beepRenderer || i));\n            return (j.DOM.li({\n                className: o,\n                ref: \"item\",\n                \"data-gt\": n.tracking\n            }, p({\n                beep: n,\n                onHide: this.setState.bind(this, {\n                    hidden: true\n                })\n            })));\n        }\n    });\n    e.exports = m;\n});\n__d(\"NotificationSound\", [\"Sound\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Sound\"), h = b(\"copyProperties\"), i = 5000;\n    g.init([\"audio/mpeg\",]);\n    function j(k) {\n        this._soundPath = k;\n        this._lastPlayed = 0;\n    };\n;\n    h(j.prototype, {\n        play: function(k) {\n            if (!this._soundPath) {\n                return;\n            }\n        ;\n        ;\n            var l = JSBNG__Date.now();\n            if (((((l - this._lastPlayed)) < i))) {\n                return;\n            }\n        ;\n        ;\n            this._lastPlayed = l;\n            g.play(this._soundPath, k);\n        }\n    });\n    e.exports = j;\n});\n__d(\"NotificationBeeper.react\", [\"Animation\",\"Arbiter\",\"ChannelConstants\",\"NotificationBeeperItem.react\",\"NotificationConstants\",\"NotificationImpressions\",\"NotificationPhotoThumbnail\",\"NotificationSound\",\"NotificationUpdates\",\"NotificationUserActions\",\"React\",\"Style\",\"cx\",\"isEmpty\",\"merge\",\"setTimeoutAcrossTransitions\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"ChannelConstants\"), j = b(\"NotificationBeeperItem.react\"), k = b(\"NotificationConstants\"), l = b(\"NotificationImpressions\"), m = b(\"NotificationPhotoThumbnail\"), n = b(\"NotificationSound\"), o = b(\"NotificationUpdates\"), p = b(\"NotificationUserActions\"), q = b(\"React\"), r = b(\"Style\"), s = b(\"cx\"), t = b(\"isEmpty\"), u = b(\"merge\"), v = b(\"setTimeoutAcrossTransitions\"), w = b(\"shield\"), x = 5000, y = 2000, z = \"beeper\", aa = k.PayloadSourceType.LIVE_SEND, ba = k.PayloadSourceType.OTHER_APPLICATION, ca = q.createClass({\n        displayName: \"NotificationBeeper\",\n        getInitialState: function() {\n            return {\n                soundEnabled: this.props.soundEnabled,\n                hovering: false,\n                fading: false,\n                paused: false,\n                pendingBeeps: {\n                },\n                renderedBeeps: {\n                }\n            };\n        },\n        componentWillMount: function() {\n            var ea = i.getArbiterType(\"notif_sound_pref_changed\"), fa = \"update-notifications\";\n            this.subscriptions = [o.subscribe(fa, function(ga, ha) {\n                if (((((ha.payloadsource === aa)) || ((ha.payloadsource === ba))))) {\n                    var ia = ha.nodes;\n                    if (((ia && ia.length))) {\n                        this._handleBeepChanges(da(ia));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this)),h.subscribe(ea, function(ga, ha) {\n                this.setState({\n                    soundEnabled: ha.obj.enabled\n                });\n            }.bind(this)),];\n            h.inform(\"NotificationBeeper/mounted\", null, h.BEHAVIOR_PERSISTENT);\n        },\n        componentWillUnmount: function() {\n            this.subscriptions.forEach(function(ea) {\n                ea.unsubscribe();\n            });\n            this.subscriptions = null;\n        },\n        _onMouseEnter: function() {\n            if (this.state.paused) {\n                return;\n            }\n        ;\n        ;\n            ((this._hideWait && JSBNG__clearTimeout(this._hideWait)));\n            if (this.state.fading) {\n                this._animation.JSBNG__stop();\n                this._animation = null;\n                r.set(this.refs.container.getDOMNode(), \"opacity\", \"0.96\");\n            }\n        ;\n        ;\n            var ea = Object.keys(this.state.renderedBeeps);\n            if (this.props.unseenVsUnread) {\n                p.markNotificationsAsSeen(ea);\n            }\n             else p.markNotificationsAsRead(ea);\n        ;\n        ;\n            this.setState({\n                hovering: true,\n                fading: false,\n                pendingBeeps: {\n                },\n                renderedBeeps: u(this.state.renderedBeeps, this.state.pendingBeeps)\n            });\n        },\n        _onMouseLeave: function() {\n            if (this.state.paused) {\n                return;\n            }\n        ;\n        ;\n            this._waitToHide(y);\n            this.setState({\n                hovering: false\n            });\n        },\n        _onInsertedItem: function(ea) {\n            if (!this.state.hovering) {\n                this._waitToHide();\n            }\n        ;\n        ;\n            if (((this.state.soundEnabled && ea.sound))) {\n                if (!this._notifSound) {\n                    this._notifSound = new n(this.props.soundPath);\n                }\n            ;\n            ;\n                this._notifSound.play(ea.beepID);\n            }\n        ;\n        ;\n            if (this.props.shouldLogImpressions) {\n                l.log([ea.notificationID,], z);\n            }\n        ;\n        ;\n        },\n        _waitToHide: function(ea) {\n            ((this._hideWait && JSBNG__clearTimeout(this._hideWait)));\n            this._hideWait = v(w(this._hide, this), ((ea || x)));\n        },\n        _hide: function() {\n            ((this._animation && this._animation.JSBNG__stop()));\n            this._animation = new g(this.refs.container.getDOMNode()).from(\"opacity\", \"0.96\").to(\"opacity\", \"0\").duration(1500).ondone(this._finishHide).go();\n            this.setState({\n                fading: true\n            });\n        },\n        _finishHide: function() {\n            var ea = this.state.pendingBeeps;\n            this.setState({\n                fading: false,\n                pendingBeeps: {\n                },\n                renderedBeeps: {\n                }\n            });\n            v(this.setState.bind(this, {\n                renderedBeeps: ea\n            }));\n            r.set(this.refs.container.getDOMNode(), \"opacity\", \"0.96\");\n        },\n        _handleBeepChanges: function(ea) {\n            var fa = ((this.state.fading ? this.state.pendingBeeps : this.state.renderedBeeps));\n            Object.keys(ea).reverse().forEach(function(ga) {\n                var ha = ea[ga], ia = ha.beepID, ja = ((this.state.renderedBeeps[ga] || {\n                }));\n                if (((ja.beepID != ia))) {\n                    delete fa[ga];\n                    fa[ga] = ha;\n                }\n            ;\n            ;\n            }.bind(this));\n            if (!this.state.paused) {\n                this._waitToHide();\n            }\n        ;\n        ;\n            this.forceUpdate();\n        },\n        _togglePause: function() {\n            if (!this.state.paused) {\n                ((this._animation && this._animation.JSBNG__stop()));\n                ((this._hideWait && JSBNG__clearTimeout(this._hideWait)));\n            }\n             else this._waitToHide();\n        ;\n        ;\n            this.setState({\n                paused: !this.state.paused\n            });\n        },\n        render: function() {\n            var ea = this.state.renderedBeeps, fa = {\n            };\n            Object.keys(ea).reverse().forEach(function(ja) {\n                var ka = ea[ja];\n                fa[ja] = j({\n                    beep: ka,\n                    onInserted: this._onInsertedItem\n                });\n            }, this);\n            var ga = !t(fa), ha = null;\n            if (((ga && this.props.canPause))) {\n                ha = q.DOM.li({\n                    className: \"_a_g\",\n                    onClick: this._togglePause\n                }, ((this.state.paused ? \"Continue\" : \"Pause [fb]\")));\n            }\n        ;\n        ;\n            var ia = ((((!ga ? \"hidden_elem\" : \"\")) + ((\" \" + \"_50d1\"))));\n            return (q.DOM.ul({\n                ref: \"container\",\n                className: ia,\n                \"data-gt\": this.props.tracking,\n                onMouseEnter: this._onMouseEnter,\n                onMouseLeave: this._onMouseLeave\n            }, fa, ha));\n        }\n    });\n    function da(ea) {\n        var fa = {\n        };\n        ea.forEach(function(ga) {\n            var ha = ga.alert_id, ia = ((((ha + \"-\")) + ga.receivedTime)), ja = m.getThumbnail(ga.attachments, ga.attached_story);\n            fa[ha] = {\n                notificationID: ha,\n                beepID: ia,\n                beepRenderer: ga.beepRenderer,\n                actors: ga.actors,\n                icon: ga.icon,\n                link: ga.url,\n                photo: ja,\n                text: ((ga.unaggregatedTitle || ga.title)),\n                timestamp: ga.timestamp,\n                receivedTime: ga.receivedTime,\n                sound: !!ga.sound,\n                tracking: ga.tracking\n            };\n        });\n        return fa;\n    };\n;\n    e.exports = ca;\n});\n__d(\"FbdEventLog\", [\"URI\",\"AsyncSignal\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = b(\"AsyncSignal\"), i = {\n        log: function(j, k, l, m) {\n            if (!j) {\n                return;\n            }\n        ;\n        ;\n            var n = g(\"/desktop/eventlog.php\"), o = new h(n.toString(), {\n                JSBNG__event: j,\n                category: ((k || \"unknown\")),\n                payload: ((l || \"\"))\n            });\n            o.setHandler(m).send();\n        }\n    };\n    e.exports = i;\n});\n__d(\"DownloadDialog\", [\"JSBNG__Event\",\"Arbiter\",\"Class\",\"DataStore\",\"ModalMask\",\"Overlay\",\"Parent\",\"Style\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"DataStore\"), k = b(\"ModalMask\"), l = b(\"Overlay\"), m = b(\"Parent\"), n = b(\"Style\"), o = b(\"copyProperties\"), p = b(\"emptyFunction\");\n    function q() {\n        this.parent.construct(this);\n        return this;\n    };\n;\n    i.extend(q, l);\n    o(q, {\n        POSITIONS: {\n            BOTTOM_LEFT: \"bottom_left\",\n            TOP_LEFT: \"top_left\",\n            IE9_BOTTOM: \"ie9_bottom\"\n        },\n        activeDialogs: {\n        },\n        dismissAll: function() {\n            {\n                var fin258keys = ((window.top.JSBNG_Replay.forInKeys)((this.POSITIONS))), fin258i = (0);\n                var r;\n                for (; (fin258i < fin258keys.length); (fin258i++)) {\n                    ((r) = (fin258keys[fin258i]));\n                    {\n                        this.hideDialog(this.POSITIONS[r]);\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        hideDialog: function(r) {\n            var s = this.activeDialogs[r];\n            ((s && s.hide()));\n            this.activeDialogs[r] = null;\n        }\n    });\n    o(q.prototype, {\n        _cancelHandler: p,\n        _closeHandler: p,\n        _width: null,\n        position: q.POSITIONS.BOTTOM_LEFT,\n        init: function(r, s) {\n            this.parent.init(r);\n            this.position = s;\n            var t = ((j.get(this._root, \"modal\") === \"true\"));\n            q.hideDialog(s);\n            q.activeDialogs[s] = this;\n            g.listen(this._root, \"click\", function(JSBNG__event) {\n                if (m.byClass(JSBNG__event.getTarget(), \"closeButton\")) {\n                    if (((this._cancelHandler() !== false))) {\n                        q.hideDialog(this.position);\n                    }\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            this.subscribe(\"show\", function() {\n                if (t) {\n                    k.show();\n                }\n            ;\n            ;\n                h.inform(\"layer_shown\", {\n                    type: \"DownloadDialog\"\n                });\n            }.bind(this));\n            this.subscribe(\"hide\", function() {\n                if (t) {\n                    k.hide();\n                }\n            ;\n            ;\n                h.inform(\"layer_hidden\", {\n                    type: \"DownloadDialog\"\n                });\n                this._closeHandler();\n            }.bind(this));\n        },\n        setWidth: function(r) {\n            this._width = Math.floor(r);\n            return this;\n        },\n        updatePosition: function() {\n            if (this._width) {\n                n.set(this._overlay, \"width\", ((this._width + \"px\")));\n            }\n        ;\n        ;\n            return true;\n        },\n        setCancelHandler: function(r) {\n            this._cancelHandler = ((r || p));\n            return this;\n        },\n        setCloseHandler: function(r) {\n            this._closeHandler = ((r || p));\n            return this;\n        }\n    });\n    e.exports = q;\n    a.DownloadDialog = q;\n});\n__d(\"FbdConversionTracking\", [\"AsyncRequest\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"emptyFunction\"), i = {\n        logClick: function(j, k) {\n            if (!k) {\n                k = \"desktop\";\n            }\n        ;\n        ;\n            new g().setURI(\"/ajax/desktop/log_clicks.php\").setData({\n                click_source: j,\n                promo: k\n            }).setAllowCrossPageTransition(true).setErrorHandler(h).send();\n        },\n        logConversion: function(j, k) {\n            if (!k) {\n                k = \"desktop\";\n            }\n        ;\n        ;\n            new g().setURI(\"/ajax/desktop/log_conversions.php\").setData({\n                conversion_action: j,\n                promo: k\n            }).setAllowCrossPageTransition(true).setErrorHandler(h).send();\n        }\n    };\n    e.exports = i;\n});\n__d(\"MegaphoneHelper\", [\"JSXDOM\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"DOM\",\"DOMDimensions\",\"Dialog\",\"LitestandMessages\",\"Parent\",\"Run\",\"Style\",\"csx\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"Dialog\"), n = b(\"LitestandMessages\"), o = b(\"Parent\"), p = b(\"Run\"), q = b(\"Style\"), r = b(\"csx\"), s = b(\"cx\"), t = b(\"ge\");\n    function u() {\n        var w = k.scry(JSBNG__document.body, \".megaphone_story_wrapper\")[0];\n        ((w && k.remove(w)));\n        v.removeLitestandHomeWash();\n    };\n;\n    var v = {\n        hideStory: function(w, x, y, z, aa) {\n            var ba = {\n                mp_id: w,\n                JSBNG__location: x,\n                context: z\n            };\n            new j().setURI(\"/ajax/megaphone/megaphone_hide.php\").setMethod(\"POST\").setData(ba).setHandler(function(da) {\n                ((aa && aa(da)));\n            }).send();\n            var ca = t(y);\n            if (ca) {\n                new h(ca).to(\"height\", 0).duration(500).hide().go();\n            }\n        ;\n        ;\n        },\n        createModalStory: function(w, x, y, z) {\n            var aa;\n            if (((!w.buttons || !w.buttons.length))) {\n                w.buttons = m.CLOSE;\n                aa = v.hideStory(x, y, z, null);\n            }\n        ;\n        ;\n            var ba = new m(w);\n            if (aa) {\n                ba.setHandler(aa);\n            }\n        ;\n        ;\n            ba.show();\n        },\n        buttonOnClick: function(w, x, y, z, aa, ba) {\n            var ca = function() {\n                if (aa) {\n                    new j().setURI(z).send();\n                }\n                 else JSBNG__document.JSBNG__location.href = z;\n            ;\n            ;\n            };\n            if (ba) {\n                v.hideStory(w, x, \"\", y, ca);\n            }\n             else ca();\n        ;\n        ;\n        },\n        renderFullWidth: function(w, x, y) {\n            var z = t(w);\n            k.prependContent(z, x);\n            if (y) {\n                var aa = l.getElementDimensions(x), ba = g.div({\n                    className: \"_5847\"\n                });\n                q.set(ba, \"height\", ((aa.height + \"px\")));\n                var ca = o.byClass(z, \"_4_37\");\n                k.prependContent(ca, ba);\n                p.onLeave(u);\n                i.subscribeOnce(n.FILTER_SWITCH_BEGIN, u);\n            }\n        ;\n        ;\n            i.inform(\"Megaphone/show\", w, i.BEHAVIOR_PERSISTENT);\n        },\n        removeLitestandHomeWash: function() {\n            var w = k.JSBNG__find(JSBNG__document.body, \"._5847\");\n            k.remove(w);\n        }\n    };\n    e.exports = v;\n});\n__d(\"FbdInstall\", [\"$\",\"AsyncRequest\",\"CSS\",\"DOM\",\"DownloadDialog\",\"FbdConversionTracking\",\"FbdEventLog\",\"FBDesktopDetect\",\"FBDesktopPlugin\",\"MegaphoneHelper\",], function(a, b, c, d, e, f) {\n    var g = b(\"$\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DownloadDialog\"), l = b(\"FbdConversionTracking\"), m = b(\"FbdEventLog\"), n = b(\"FBDesktopDetect\"), o = b(\"FBDesktopPlugin\"), p = b(\"MegaphoneHelper\"), q = 1000, r = ((300 * q)), s = {\n        cancelSetup: function() {\n            var t = JSON.stringify({\n                ref: this.ref\n            });\n            m.log(\"download_canceled\", \"setup\", t);\n            l.logConversion(\"download_canceled\");\n        },\n        hideMegaphone: function() {\n            if (((this.megaphoneId && this.megaphoneLoc))) {\n                p.hideStory(this.megaphoneId, this.megaphoneLoc, this.elementId, \"\", null);\n            }\n        ;\n        ;\n        },\n        init: function(t, u) {\n            this.downloadUrl = t;\n            this.ref = ((u || \"unknown\"));\n        },\n        initInstallWait: function(t, u, v) {\n            this.megaphoneId = t;\n            this.megaphoneLoc = u;\n            this.elementId = v;\n            this._waitForInstall(r);\n        },\n        promptDownload: function(t) {\n            t = ((t || this.downloadUrl));\n            if (t) {\n                var u = JSON.stringify({\n                    ref: this.ref\n                });\n                m.log(\"download_prompted\", \"setup\", u);\n                l.logConversion(\"download_prompted\");\n                var v = j.create(\"div\", {\n                    src: t,\n                    className: \"hidden_elem\"\n                });\n                j.appendContent(JSBNG__document.body, v);\n            }\n        ;\n        ;\n        },\n        _responseHandler: function(t) {\n            if (t.payload) {\n                this._authToken = t.payload.access_token;\n                this._userId = t.payload.id;\n            }\n        ;\n        ;\n            if (((this._authToken && this._userId))) {\n                this._waitForRunningStart = JSBNG__Date.now();\n                JSBNG__setTimeout(this._waitForRunning.bind(this), q);\n            }\n        ;\n        ;\n        },\n        setupPlugin: function() {\n            new h(\"/ajax/desktop/download\").send();\n            this.promptDownload();\n        },\n        updateSidebarLinkVisibility: function() {\n            if (!n.isPluginInstalled()) {\n                i.show(g(\"sidebar-messenger-install-link\"));\n                i.show(g(\"sidebar-messenger-install-separator\"));\n            }\n        ;\n        ;\n        },\n        _waitForInstall: function(t) {\n            var u = JSON.stringify({\n                ref: this.ref\n            });\n            if (n.isPluginInstalled()) {\n                m.log(\"install_success\", \"setup\", u);\n                l.logConversion(\"install_success\");\n                o.recheck();\n                new h(\"/desktop/fbdesktop2/transfer.php\").setMethod(\"POST\").setHandler(this._responseHandler.bind(this)).send();\n                k.dismissAll();\n                this.hideMegaphone();\n                return;\n            }\n        ;\n        ;\n            if (((t <= 0))) {\n                m.log(\"install_timeout\", \"setup\", u);\n                l.logConversion(\"install_timeout\");\n                k.dismissAll();\n            }\n             else JSBNG__setTimeout(this._waitForInstall.bind(this, ((t - q))), q);\n        ;\n        ;\n        },\n        _waitForRunning: function() {\n            var t = ((JSBNG__Date.now() - this._waitForRunningStart));\n            if (o.isAppRunning()) {\n                o.transferAuthToken(this._authToken, this._userId);\n            }\n             else if (((t < r))) {\n                JSBNG__setTimeout(this._waitForRunning.bind(this), q);\n            }\n            \n        ;\n        ;\n        }\n    };\n    e.exports = s;\n});\n__d(\"legacy:fbdesktop2-install-js\", [\"FbdInstall\",], function(a, b, c, d) {\n    a.FbdInstall = b(\"FbdInstall\");\n}, 3);\n__d(\"legacy:fbdesktop-conversion-tracking\", [\"FbdConversionTracking\",], function(a, b, c, d) {\n    a.FbdConversionTracking = b(\"FbdConversionTracking\");\n}, 3);\n__d(\"SidebarTicker\", [\"Arbiter\",\"ChatSidebar\",\"CSS\",\"DOM\",\"Run\",\"TickerController\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChatSidebar\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Run\"), l = b(\"TickerController\"), m = b(\"$\"), n = b(\"copyProperties\");\n    function o() {\n        this._ticker = m(\"pagelet_ticker\");\n        this._initSubscriptions();\n        if (i.hasClass(JSBNG__document.documentElement, \"sidebarMode\")) {\n            this._onSidebarShow();\n        }\n    ;\n    ;\n    };\n;\n    o.hide = function() {\n        k.onAfterLoad(function() {\n            j.remove(m(\"pagelet_ticker\"));\n            j.remove(j.JSBNG__find(JSBNG__document.body, \"div.fbSidebarGripper\"));\n            h.resize();\n        });\n    };\n    n(o.prototype, {\n        _initSubscriptions: function() {\n            this._subscriptions = [g.subscribe(\"sidebar/show\", this._onSidebarShow.bind(this)),];\n        },\n        _onSidebarShow: function() {\n            l.show(this._ticker);\n        }\n    });\n    e.exports = o;\n});\n__d(\"SidebarTickerResizer\", [\"Arbiter\",\"AsyncRequest\",\"ChatSidebar\",\"SimpleDrag\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"ChatSidebar\"), j = b(\"SimpleDrag\"), k = b(\"$\"), l = 1e-7;\n    function m(n) {\n        var o = k(\"pagelet_ticker\"), p = o.parentNode, q = this._saveResizedState.bind(this), r, s, t, u = function(x, JSBNG__event) {\n            r = JSBNG__event.clientY;\n            s = o.offsetHeight;\n            t = p.offsetHeight;\n        }, v = function(x, JSBNG__event) {\n            var y = ((s + ((JSBNG__event.clientY - r)))), z = ((100 - ((((((t - y)) / t)) * 100))));\n            z = Math.max(l, Math.min(90, z));\n            o.style.height = ((z + \"%\"));\n            if (((x == \"end\"))) {\n                q(z);\n                g.inform(\"Ticker/resized\");\n            }\n        ;\n        ;\n            i.resize();\n        }, w = new j(n);\n        w.subscribe(\"start\", u);\n        w.subscribe([\"update\",\"end\",], v);\n    };\n;\n    m.prototype._saveResizedState = function(n) {\n        new h(\"/ajax/feed/ticker/resize\").setData({\n            height: ((\"\" + n))\n        }).setMethod(\"POST\").send();\n    };\n    e.exports = m;\n});\n__d(\"legacy:megaphone\", [\"MegaphoneHelper\",], function(a, b, c, d) {\n    a.MegaphoneHelper = b(\"MegaphoneHelper\");\n}, 3);\n__d(\"NotificationXOut\", [\"Arbiter\",\"JSBNG__Event\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"JSBNG__Event\"), i = b(\"userAction\");\n    function j(p, q, r) {\n        g.inform(\"notif/negativeCancel\", {\n            id: p\n        });\n        k(q, r);\n        h.$E(r).kill();\n    };\n;\n    function k(p, q) {\n        i(\"click\", null, q, null, {\n            gt: p\n        });\n    };\n;\n    function l(p, q) {\n        k(p, q);\n        h.$E(q).prevent();\n    };\n;\n    function m(p, q) {\n        h.listen(p, \"click\", k.curry(q));\n    };\n;\n    function n(p, q, r) {\n        h.listen(p, \"click\", j.curry(q, r));\n    };\n;\n    function o(p, q) {\n        h.listen(p, \"click\", l.curry(q));\n    };\n;\n    e.exports = {\n        setupConfirmListener: m,\n        setupCancelListener: n,\n        setupNoListener: o\n    };\n});\n__d(\"LiveMessageReceiver\", [\"Arbiter\",\"ChannelConstants\",\"copyProperties\",\"emptyFunction\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"copyProperties\"), j = b(\"emptyFunction\"), k = b(\"shield\");\n    function l(m) {\n        this.eventName = m;\n        this.subs = null;\n        this.handler = j;\n        this.shutdownHandler = null;\n        this.registered = false;\n        this.appId = 1;\n    };\n;\n    i(l, {\n        getAppMessageType: function(m, n) {\n            return ((((((\"live_message/\" + m)) + \":\")) + n));\n        },\n        route: function(m) {\n            var n = function(o) {\n                var p = l.getAppMessageType(m.app_id, m.event_name);\n                g.inform(p, o, g.BEHAVIOR_PERSISTENT);\n            };\n            n(m.response);\n        }\n    });\n    i(l.prototype, {\n        setAppId: function(m) {\n            this.appId = m;\n            return this;\n        },\n        setHandler: function(m) {\n            this.handler = m;\n            this._dirty();\n            return this;\n        },\n        setRestartHandler: j,\n        setShutdownHandler: function(m) {\n            this.shutdownHandler = k(m);\n            this._dirty();\n            return this;\n        },\n        _dirty: function() {\n            if (this.registered) {\n                this.unregister();\n                this.register();\n            }\n        ;\n        ;\n        },\n        register: function() {\n            var m = function(o, p) {\n                return this.handler(p);\n            }.bind(this), n = l.getAppMessageType(this.appId, this.eventName);\n            this.subs = {\n            };\n            this.subs.main = g.subscribe(n, m);\n            if (this.shutdownHandler) {\n                this.subs.shut = g.subscribe(h.ON_SHUTDOWN, this.shutdownHandler);\n            }\n        ;\n        ;\n            this.registered = true;\n            return this;\n        },\n        unregister: function() {\n            if (!this.subs) {\n                return this;\n            }\n        ;\n        ;\n            {\n                var fin259keys = ((window.top.JSBNG_Replay.forInKeys)((this.subs))), fin259i = (0);\n                var m;\n                for (; (fin259i < fin259keys.length); (fin259i++)) {\n                    ((m) = (fin259keys[fin259i]));\n                    {\n                        if (this.subs[m]) {\n                            this.subs[m].unsubscribe();\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            this.subs = null;\n            this.registered = false;\n            return this;\n        }\n    });\n    e.exports = l;\n});\n__d(\"initLiveMessageReceiver\", [\"Arbiter\",\"ChannelConstants\",\"LiveMessageReceiver\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"LiveMessageReceiver\");\n    g.subscribe(h.getArbiterType(\"app_msg\"), function(j, k) {\n        i.route(k.obj);\n    });\n});\n__d(\"Slideshow\", [\"ArbiterMixin\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"Locale\",\"Parent\",\"copyProperties\",\"csx\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"Locale\"), l = b(\"Parent\"), m = b(\"copyProperties\"), n = b(\"csx\"), o = b(\"cx\"), p = b(\"shield\");\n    function q(r, s) {\n        this._root = r;\n        this._config = s;\n        this._currentIndex = 0;\n        this._animating = false;\n        this._autoplayTimer = null;\n        this._init();\n    };\n;\n    m(q.prototype, g, {\n        getIndex: function() {\n            return this._currentIndex;\n        },\n        getNumItems: function() {\n            return this._items.length;\n        },\n        page: function(r) {\n            if (((typeof r === \"undefined\"))) {\n                r = \"next\";\n            }\n        ;\n        ;\n            if (((r === \"next\"))) {\n                if (((this._config.wrap || ((this.getIndex() < ((this.getNumItems() - 1))))))) {\n                    this._animateTo(((this._currentIndex + 1)));\n                }\n            ;\n            ;\n            }\n             else if (((r === \"prev\"))) {\n                if (((this._config.wrap || ((this.getIndex() > 0))))) {\n                    this._animateTo(((this._currentIndex - 1)));\n                }\n            ;\n            }\n            \n        ;\n        ;\n        },\n        pageTo: function(r) {\n            this._animateTo(r, p(this._setCurrent, this, r));\n        },\n        insert: function(r, s) {\n            if (((r > this._currentIndex))) {\n                i.insertAfter(this._items[((r - 1))], s);\n            }\n             else {\n                i.insertBefore(this._items[r], s);\n                this._currentIndex++;\n            }\n        ;\n        ;\n            this._items.splice(r, 0, s);\n            this._updateArrowState(this._currentIndex);\n            this.inform(\"items_updated\");\n        },\n        push: function(r) {\n            this.insert(this._items.length, r);\n        },\n        _init: function() {\n            this._container = i.JSBNG__find(this._root, \"ul._2xq\");\n            this._items = i.scry(this._container, \"li._2xr\");\n            if (this._config.arrows) {\n                j.listen(this._root, \"click\", this._clickListener.bind(this));\n                var r = i.JSBNG__find(this._root, \"a._2xw\"), s = i.JSBNG__find(this._root, \"a._2xx\");\n                this._arrowLeft = ((k.isRTL() ? r : s));\n                this._arrowRight = ((k.isRTL() ? s : r));\n            }\n        ;\n        ;\n            if (this._config.autoplay) {\n                j.listen(this._root, \"mouseenter\", this.stopAutoplay.bind(this));\n                j.listen(this._root, \"mouseleave\", this.resetAutoplay.bind(this));\n                this.resetAutoplay();\n            }\n        ;\n        ;\n            this.subscribe([\"page_start\",\"page_end\",], function(t, u) {\n                h.conditionClass(this._root, \"_2xm\", ((t === \"page_start\")));\n            }.bind(this));\n        },\n        _clickListener: function(JSBNG__event) {\n            var r = JSBNG__event.getTarget(), s = l.byTag(r, \"a\");\n            if (((s && !h.hasClass(s, \"_2xo\")))) {\n                if (h.hasClass(s, \"_2xw\")) {\n                    this.page(\"next\");\n                }\n                 else if (h.hasClass(s, \"_2xx\")) {\n                    this.page(\"prev\");\n                }\n                \n            ;\n            }\n        ;\n        ;\n        },\n        _updateArrowState: function(r) {\n            if (!this._config.arrows) {\n                return;\n            }\n        ;\n        ;\n            h.conditionClass(this._arrowRight, \"_2xo\", ((this._items.length === 1)));\n            h.conditionClass(this._arrowLeft, \"_2xo\", ((this._items.length === 1)));\n        },\n        _animateTo: function(r) {\n        \n        },\n        _setCurrent: function(r) {\n            h.removeClass(this._items[this._currentIndex], \"_2xn\");\n            h.addClass(this._items[r], \"_2xn\");\n            h.removeClass(this._root, \"_2xm\");\n            this._currentIndex = r;\n            this._animating = false;\n            this.inform(\"page_end\", r);\n        },\n        resetAutoplay: function() {\n            if (this._config.autoplay) {\n                JSBNG__clearTimeout(this._autoplayTimer);\n                this._autoplayTimer = JSBNG__setTimeout(this._autoplay.bind(this), this._config.autoplayTimeout);\n            }\n        ;\n        ;\n        },\n        stopAutoplay: function() {\n            JSBNG__clearTimeout(this._autoplayTimer);\n            this._autoplayTimer = null;\n        },\n        _autoplay: function() {\n            this.resetAutoplay();\n            if (((this._items.length > 1))) {\n                this.page();\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = q;\n});\n__d(\"Carousel\", [\"Animation\",\"Class\",\"CSS\",\"Ease\",\"Locale\",\"Slideshow\",\"Style\",\"copyProperties\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Class\"), i = b(\"CSS\"), j = b(\"Ease\"), k = b(\"Locale\"), l = b(\"Slideshow\"), m = b(\"Style\"), n = b(\"copyProperties\"), o = b(\"cx\"), p = b(\"shield\"), q = ((k.isRTL() ? \"right\" : \"left\")), r = j.sineInOut;\n    function s(t, u) {\n        this.parent.construct(this, t, u);\n        this.subscribe(\"items_updated\", this._updateItemState.bind(this));\n    };\n;\n    h.extend(s, l);\n    n(s.prototype, {\n        _updateItemState: function(t, u) {\n            this._setContainerPos(t);\n            m.set(this._container, \"width\", ((((this._items.length * this._config.width)) + \"px\")));\n        },\n        _updateArrowState: function(t) {\n            if (!this._config.arrows) {\n                return;\n            }\n        ;\n        ;\n            var u = this._config.wrap, v = this._items.length, w = Math.floor(((v / this._config.photosperframe)));\n            i.conditionClass(this._arrowRight, \"_2xo\", ((((w === 1)) || ((!u && ((t === ((w - 1)))))))));\n            i.conditionClass(this._arrowLeft, \"_2xo\", ((((w === 1)) || ((!u && ((t === 0)))))));\n        },\n        _animate: function(t, u) {\n            this._animating = true;\n            this.inform(\"page_start\", t);\n            new g(this._container).to(q, ((-t * this._config.width))).duration(this._config.animationDuration).ease(r).ondone(u).go();\n        },\n        _setContainerPos: function(t) {\n            m.set(this._container, q, ((((-t * this._config.width)) + \"px\")));\n        },\n        _animateTo: function(t) {\n            if (this._animating) {\n                return;\n            }\n        ;\n        ;\n            var u = this._items.length;\n            if (((((((0 <= t)) && ((t < u)))) || !this._config.wrap))) {\n                var v = ((((t + u)) % u));\n                this._updateArrowState(v);\n                return this._animate(v, p(this._setCurrent, this, v));\n            }\n        ;\n        ;\n            var w = ((t % u)), x = ((w ? ((u - 1)) : 0)), y = this._items[((u - 1))];\n            m.set(y, \"position\", \"absolute\");\n            m.set(y, q, ((-this._config.width + \"px\")));\n            if (((x === 0))) {\n                this._setContainerPos(-1);\n            }\n        ;\n        ;\n            this._animate(w, function() {\n                m.set(y, \"position\", \"static\");\n                m.set(y, q, \"auto\");\n                this._setContainerPos(x);\n                this._setCurrent(x);\n            }.bind(this));\n        }\n    });\n    e.exports = s;\n});");
36579 // 13447
36580 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o3,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yl/r/OUIW4Mbs_w6.js",o5);
36581 // undefined
36582 o3 = null;
36583 // undefined
36584 o5 = null;
36585 // 13459
36586 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"LpC/l\",]);\n}\n;\n__d(\"DOMWrapper\", [], function(a, b, c, d, e, f) {\n    var g, h, i = {\n        setRoot: function(j) {\n            g = j;\n        },\n        getRoot: function() {\n            return (g || document.body);\n        },\n        setWindow: function(j) {\n            h = j;\n        },\n        getWindow: function() {\n            return (h || self);\n        }\n    };\n    e.exports = i;\n});\n__d(\"Flash\", [\"DOMWrapper\",\"QueryString\",\"UserAgent\",\"copyProperties\",\"guid\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMWrapper\"), h = b(\"QueryString\"), i = b(\"UserAgent\"), j = b(\"copyProperties\"), k = b(\"guid\"), l = {\n    }, m, n = g.getWindow().document;\n    function o(t) {\n        var u = n.getElementById(t);\n        if (u) {\n            u.parentNode.removeChild(u);\n        };\n        delete l[t];\n    };\n    function p() {\n        for (var t in l) {\n            if (l.hasOwnProperty(t)) {\n                o(t);\n            };\n        };\n    };\n    function q(t) {\n        return t.replace(/\\d+/g, function(u) {\n            return (\"000\".substring(u.length) + u);\n        });\n    };\n    function r(t) {\n        if (!m) {\n            if ((i.ie() >= 9)) {\n                window.attachEvent(\"onunload\", p);\n            };\n            m = true;\n        }\n    ;\n        l[t] = t;\n    };\n    var s = {\n        embed: function(t, u, v, w) {\n            var x = k();\n            t = encodeURI(t);\n            v = j({\n                allowscriptaccess: \"always\",\n                flashvars: w,\n                movie: t\n            }, (v || {\n            }));\n            if ((typeof v.flashvars == \"object\")) {\n                v.flashvars = h.encode(v.flashvars);\n            };\n            var y = [];\n            for (var z in v) {\n                if ((v.hasOwnProperty(z) && v[z])) {\n                    y.push(((((\"\\u003Cparam name=\\\"\" + encodeURI(z)) + \"\\\" value=\\\"\") + encodeURI(v[z])) + \"\\\"\\u003E\"));\n                };\n            };\n            var aa = n.createElement(\"div\"), ba = (((((((((\"\\u003Cobject \" + ((i.ie() ? \"classid=\\\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\\\" \" : \"type=\\\"application/x-shockwave-flash\\\"\"))) + \"data=\\\"\") + t) + \"\\\" \") + \"id=\\\"\") + x) + \"\\\"\\u003E\") + y.join(\"\")) + \"\\u003C/object\\u003E\");\n            aa.innerHTML = ba;\n            var ca = u.appendChild(aa.firstChild);\n            r(x);\n            return ca;\n        },\n        remove: o,\n        getVersion: function() {\n            var t = \"Shockwave Flash\", u = \"application/x-shockwave-flash\", v = \"ShockwaveFlash.ShockwaveFlash\", w;\n            if ((navigator.plugins && (typeof navigator.plugins[t] == \"object\"))) {\n                var x = navigator.plugins[t].description;\n                if ((((x && navigator.mimeTypes) && navigator.mimeTypes[u]) && navigator.mimeTypes[u].enabledPlugin)) {\n                    w = x.match(/\\d+/g);\n                };\n            }\n        ;\n            if (!w) {\n                try {\n                    w = (new ActiveXObject(v)).GetVariable(\"$version\").match(/(\\d+),(\\d+),(\\d+),(\\d+)/);\n                    w = Array.prototype.slice.call(w, 1);\n                } catch (y) {\n                \n                }\n            };\n            return w;\n        },\n        checkMinVersion: function(t) {\n            var u = s.getVersion();\n            if (!u) {\n                return false\n            };\n            return (q(u.join(\".\")) >= q(t));\n        },\n        isAvailable: function() {\n            return !!s.getVersion();\n        }\n    };\n    e.exports = s;\n});\n__d(\"MercuryAudioPlayer\", [\"Event\",\"Arbiter\",\"DOM\",\"Flash\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"Flash\"), k = b(\"copyProperties\"), l = 200;\n    function m() {\n        var v = i.create(\"audio\"), w = false;\n        try {\n            if (!!v.canPlayType) {\n                if (v.canPlayType(\"video/mp4;\").replace(/^no$/, \"\")) {\n                    w = true;\n                }\n            };\n        } finally {\n            return w;\n        };\n    };\n    function n() {\n        return j.isAvailable();\n    };\n    var o = function() {\n        this.interval = null;\n        this.arbiterInstance = null;\n        this.audio = i.create(\"audio\");\n        g.listen(this.audio, \"playing\", function() {\n            this.informAttachment(\"playing\", this.audio.currentTime);\n            this.interval = setInterval(function() {\n                this.informAttachment(\"playing\", this.audio.currentTime);\n            }.bind(this), l);\n        }.bind(this));\n        g.listen(this.audio, \"ended\", function() {\n            clearInterval(this.interval);\n            this.informAttachment(\"finished\");\n        }.bind(this));\n    };\n    k(o.prototype, {\n        setAudio: function(v, w) {\n            this.audio.setAttribute(\"src\", v);\n            this.arbiterInstance = w;\n        },\n        informAttachment: function(v, w) {\n            if (this.arbiterInstance) {\n                this.arbiterInstance.inform(v, w);\n            };\n        },\n        play: function() {\n            this.audio.play();\n            this.informAttachment(\"played\");\n        },\n        resume: function() {\n            this.audio.play();\n            this.informAttachment(\"played\");\n        },\n        pause: function() {\n            this.audio.pause();\n            clearInterval(this.interval);\n            this.informAttachment(\"paused\");\n        },\n        getType: function() {\n            return \"html5\";\n        }\n    });\n    var p = function() {\n        this.src = null;\n        this.arbiterInstance = null;\n        var v = i.create(\"div\");\n        document.body.appendChild(v);\n        this.swf = j.embed(\"/swf/SoundStreamPlayer.swf\", v, null, {\n        });\n        this.interval = null;\n        h.subscribe(\"soundstream/finished\", function() {\n            clearInterval(this.interval);\n            this.informAttachment(\"finished\");\n        }.bind(this));\n    };\n    k(p.prototype, {\n        setAudio: function(v, w) {\n            this.src = v;\n            this.arbiterInstance = w;\n        },\n        informAttachment: function(v, w) {\n            if (this.arbiterInstance) {\n                this.arbiterInstance.inform(v, w);\n            };\n        },\n        play: function() {\n            this.swf.playSound(this.src);\n            this.interval = setInterval(function() {\n                var v = this.swf.getCurrentTime();\n                this.informAttachment(\"playing\", v);\n            }.bind(this), l);\n            this.informAttachment(\"played\");\n        },\n        resume: function() {\n            this.swf.resume();\n            this.informAttachment(\"played\");\n        },\n        pause: function() {\n            clearInterval(this.interval);\n            this.swf.pause();\n            this.informAttachment(\"paused\");\n        },\n        getType: function() {\n            return \"flash\";\n        }\n    });\n    function q() {\n        if (m()) {\n            return new o();\n        }\n         else if (n()) {\n            return new p()\n        }\n    ;\n        return false;\n    };\n    var r = null, s = null, t = 0;\n    function u(v, w) {\n        this.src = v;\n        this.arbiterInstance = w;\n        this.audio_id = ++t;\n        ((r !== null) || (r = q()));\n        if (!r) {\n            return false\n        };\n    };\n    k(u.prototype, {\n        getType: function() {\n            if (!r) {\n                return false;\n            }\n             else return r.getType()\n        ;\n        },\n        play: function(v) {\n            if ((v && (s == this.audio_id))) {\n                r.resume();\n            }\n             else {\n                this.pause();\n                s = this.audio_id;\n                r.setAudio(this.src, this.arbiterInstance);\n                r.play();\n            }\n        ;\n        },\n        pause: function() {\n            r.pause();\n        }\n    });\n    e.exports = u;\n});\n__d(\"MercuryAttachmentAudioClip.react\", [\"Arbiter\",\"ArbiterMixin\",\"MercuryAudioPlayer\",\"Env\",\"JSLogger\",\"LeftRight.react\",\"React\",\"cx\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"MercuryAudioPlayer\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"LeftRight.react\"), m = b(\"React\"), n = b(\"cx\"), o = b(\"shield\"), p = b(\"tx\"), q = \"MercuryAttachmentAudioClip/play\", r = k.create(\"mercury_audio_clip\"), s = m.createClass({\n        displayName: \"AudioClip\",\n        mixins: [h,],\n        getInitialState: function() {\n            this.subscribe(\"playing\", this.updateTime);\n            this.subscribe(\"played\", o(this.setState, this, {\n                playing: true,\n                started: true\n            }));\n            this.subscribe(\"paused\", o(this.setState, this, {\n                playing: false\n            }));\n            this.subscribe(\"finished\", o(this.setState, this, {\n                playing: false,\n                started: false,\n                time: this.props.duration\n            }));\n            this.logged = false;\n            var t = (this.props.downloadOnly ? false : new i(this.props.src, this));\n            g.subscribe(q, function(u, v) {\n                if ((this.props.src != v)) {\n                    this.setState({\n                        time: 0\n                    });\n                };\n            }.bind(this));\n            return {\n                time: 0,\n                playing: false,\n                started: false,\n                duration: this.props.duration,\n                audioPlayer: t\n            };\n        },\n        updateTime: function(t, u) {\n            this.setState({\n                time: u\n            });\n        },\n        play: function() {\n            if (this.state.playing) {\n                this.state.audioPlayer.pause();\n            }\n             else {\n                this.state.audioPlayer.play(this.state.started);\n                g.inform(q, this.props.src);\n                if (!this.logged) {\n                    this.logged = true;\n                    r.log(\"play\", {\n                        uid: j.user,\n                        duration: this.props.duration\n                    });\n                }\n            ;\n            }\n        ;\n        },\n        _formatSeconds: function(t) {\n            if (t) {\n                t = Math.ceil(t);\n                var u = (t % 60);\n                if ((u < 10)) {\n                    u = (\"0\" + u);\n                };\n                var v = Math.floor((t / 60));\n                return ((v + \":\") + u);\n            }\n             else return null\n        ;\n        },\n        _renderPlayer: function(t, u) {\n            return (m.DOM.a({\n                className: \"_1miz\",\n                style: {\n                    width: t\n                },\n                onClick: this.play\n            }, m.DOM.span({\n                className: \"_1mi-\"\n            }, m.DOM.i({\n                className: \"_1mi_\"\n            })), m.DOM.span({\n                className: \"_1mj0\"\n            }, u), m.DOM.div({\n                className: \"_1mj1\"\n            })));\n        },\n        render: function() {\n            var t = this.state.time, u = this.state.playing, v = this._formatSeconds(this.state.duration), w = (this.props.width || 170), x = null, y = Math.ceil((((t * ((w + 2)))) / this.state.duration));\n            if ((this.state.audioPlayer && this.state.audioPlayer.getType())) {\n                var z = this._renderPlayer(w, v), aa = this._renderPlayer(w, v), ba = ((((\"_1mj2\") + (((u && ((t !== 0))) ? (\" \" + \"_1mj3\") : \"\"))) + (((u && ((t === 0))) ? (\" \" + \"_4g4x\") : \"\"))));\n                x = (m.DOM.div({\n                    className: ba\n                }, z, m.DOM.div({\n                    className: \"_1mj4\",\n                    style: {\n                        width: y\n                    }\n                }, aa)));\n            }\n             else x = (m.DOM.div({\n                className: \"_1mj2\"\n            }, m.DOM.div({\n                className: \"_1miz\"\n            }, l(null, m.DOM.a({\n                className: \"_1mj5\",\n                href: this.props.src\n            }, m.DOM.span({\n                className: \"_3qi6\"\n            }, m.DOM.i({\n                className: \"_1mj6\"\n            })), m.DOM.span({\n                className: \"_1mj7\"\n            }, \"Voice Message\"), m.DOM.span({\n                className: \"_1mj8\"\n            }, v)), m.DOM.a({\n                href: this.props.src,\n                className: \"_1mj9\"\n            }, m.DOM.i({\n                className: \"_1mja\"\n            }))))));\n        ;\n            return (m.DOM.div({\n                className: \"_1mjb\"\n            }, x));\n        }\n    });\n    e.exports = s;\n});\n__d(\"MercuryStickersFlyoutList.react\", [\"Animation\",\"React\",\"Image.react\",\"cx\",\"fbt\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"React\"), i = b(\"Image.react\"), j = b(\"cx\"), k = b(\"fbt\"), l = b(\"ix\"), m = 5, n = \"Sticker Store\", o = h.createClass({\n        displayName: \"MercuryStickersFlyoutList\",\n        _calculateNumPages: function(q) {\n            return Math.max(1, Math.ceil((((q.length - 1)) / m)));\n        },\n        getInitialState: function() {\n            return {\n                animating: false,\n                selectedId: this.props.packs[0].id,\n                page: 0,\n                numPages: this._calculateNumPages(this.props.packs)\n            };\n        },\n        componentWillReceiveProps: function(q) {\n            this.setState({\n                numPages: this._calculateNumPages(q.packs)\n            });\n        },\n        shouldComponentUpdate: function(q, r) {\n            return !r.animating;\n        },\n        _canGoPrev: function() {\n            return (this.state.page > 0);\n        },\n        _canGoNext: function() {\n            return ((this.state.page + 1) < this.state.numPages);\n        },\n        _setPage: function(q) {\n            if (this.state.animating) {\n                return\n            };\n            this.setState({\n                animating: true,\n                page: q\n            });\n            var r = this.refs.positioner.getDOMNode();\n            new g(r).to(\"marginLeft\", (-r.childNodes[q].offsetLeft + \"px\")).ondone(function() {\n                this.setState({\n                    animating: false\n                });\n            }.bind(this)).duration(200).go();\n        },\n        _back: function() {\n            (this._canGoPrev() && this._setPage((this.state.page - 1)));\n        },\n        _next: function() {\n            (this._canGoNext() && this._setPage((this.state.page + 1)));\n        },\n        render: function() {\n            var q = this.props.packs, r = this.props.onPackClick, s = [];\n            q.forEach(function(y, z) {\n                s.push(p({\n                    key: y.id,\n                    onClick: function() {\n                        (r && r(y.id));\n                        this.setState({\n                            selectedId: y.id\n                        });\n                    }.bind(this),\n                    pack: y,\n                    selected: (this.state.selectedId === y.id)\n                }));\n            }.bind(this));\n            var t = [], u = [];\n            s.forEach(function(y, z) {\n                u.push(y);\n                if (((z > 0) && ((((z % m) === 0) || (z === (s.length - 1)))))) {\n                    t.push(h.DOM.div({\n                        className: \"_58_z\"\n                    }, u));\n                    u = [];\n                }\n            ;\n            });\n            var v = ((((\"_58_w\") + ((\" \" + \"lfloat\"))) + ((!this._canGoPrev() ? (\" \" + \"hidden_elem\") : \"\")))), w = ((((\"_58_x\") + ((\" \" + \"rfloat\"))) + ((!this._canGoNext() ? (\" \" + \"hidden_elem\") : \"\")))), x;\n            if ((t.length > 1)) {\n                x = h.DOM.a({\n                    className: w,\n                    onClick: this._next\n                }, i({\n                    className: \"_590q\",\n                    src: l(\"/images/messaging/stickers/selector/rightarrow.png\")\n                }));\n            };\n            return (h.DOM.div({\n                className: \"_5908\"\n            }, h.DOM.a({\n                ajaxify: \"/ajax/messaging/stickers/store\",\n                \"aria-label\": n,\n                className: \"_59wb rfloat\",\n                \"data-hover\": \"tooltip\",\n                ref: \"store\",\n                rel: \"dialog\"\n            }, i({\n                className: \"_5bo3\",\n                src: l(\"/images/messaging/stickers/selector/store.png\")\n            })), h.DOM.a({\n                className: v,\n                onClick: this._back\n            }, i({\n                className: \"_590q\",\n                src: l(\"/images/messaging/stickers/selector/leftarrow.png\")\n            })), x, h.DOM.div({\n                className: \"_590r\"\n            }, h.DOM.div({\n                className: \"_58_y\",\n                ref: \"positioner\"\n            }, t))));\n        }\n    }), p = h.createClass({\n        displayName: \"PackIcon\",\n        render: function() {\n            var q = this.props.pack, r = (((\"_55bn\") + ((this.props.selected ? (\" \" + \"_55bo\") : \"\"))));\n            return (h.DOM.a({\n                \"aria-label\": q.name,\n                className: r,\n                \"data-id\": q.id,\n                \"data-hover\": \"tooltip\",\n                onClick: function() {\n                    (this.props.onClick && this.props.onClick(q.id));\n                }.bind(this)\n            }, h.DOM.img({\n                className: \"_55bw\",\n                src: q.icon\n            }), h.DOM.img({\n                className: \"_590u\",\n                src: q.selectedIcon\n            })));\n        }\n    });\n    e.exports = o;\n});\n__d(\"str2rstr\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        var i = \"\", j, k;\n        for (var l = 0; (l < h.length); l++) {\n            j = h.charCodeAt(l);\n            k = (((l + 1) < h.length) ? h.charCodeAt((l + 1)) : 0);\n            if (((((55296 <= j) && (j <= 56319)) && (56320 <= k)) && (k <= 57343))) {\n                j = ((65536 + ((((j & 1023)) << 10))) + ((k & 1023)));\n                l++;\n            }\n        ;\n            if ((j <= 127)) {\n                i += String.fromCharCode(j);\n            }\n             else if ((j <= 2047)) {\n                i += String.fromCharCode((192 | ((((j >>> 6)) & 31))), (128 | ((j & 63))));\n            }\n             else if ((j <= 65535)) {\n                i += String.fromCharCode((224 | ((((j >>> 12)) & 15))), (128 | ((((j >>> 6)) & 63))), (128 | ((j & 63))));\n            }\n             else if ((j <= 2097151)) {\n                i += String.fromCharCode((240 | ((((j >>> 18)) & 7))), (128 | ((((j >>> 12)) & 63))), (128 | ((((j >>> 6)) & 63))), (128 | ((j & 63))));\n            }\n            \n            \n        ;\n        };\n        return i;\n    };\n    e.exports = g;\n});\n__d(\"md5\", [\"str2rstr\",], function(a, b, c, d, e, f) {\n    var g = b(\"str2rstr\");\n    function h(u, v) {\n        var w = u[0], x = u[1], y = u[2], z = u[3];\n        w = j(w, x, y, z, v[0], 7, -680876936);\n        z = j(z, w, x, y, v[1], 12, -389564586);\n        y = j(y, z, w, x, v[2], 17, 606105819);\n        x = j(x, y, z, w, v[3], 22, -1044525330);\n        w = j(w, x, y, z, v[4], 7, -176418897);\n        z = j(z, w, x, y, v[5], 12, 1200080426);\n        y = j(y, z, w, x, v[6], 17, -1473231341);\n        x = j(x, y, z, w, v[7], 22, -45705983);\n        w = j(w, x, y, z, v[8], 7, 1770035416);\n        z = j(z, w, x, y, v[9], 12, -1958414417);\n        y = j(y, z, w, x, v[10], 17, -42063);\n        x = j(x, y, z, w, v[11], 22, -1990404162);\n        w = j(w, x, y, z, v[12], 7, 1804603682);\n        z = j(z, w, x, y, v[13], 12, -40341101);\n        y = j(y, z, w, x, v[14], 17, -1502002290);\n        x = j(x, y, z, w, v[15], 22, 1236535329);\n        w = k(w, x, y, z, v[1], 5, -165796510);\n        z = k(z, w, x, y, v[6], 9, -1069501632);\n        y = k(y, z, w, x, v[11], 14, 643717713);\n        x = k(x, y, z, w, v[0], 20, -373897302);\n        w = k(w, x, y, z, v[5], 5, -701558691);\n        z = k(z, w, x, y, v[10], 9, 38016083);\n        y = k(y, z, w, x, v[15], 14, -660478335);\n        x = k(x, y, z, w, v[4], 20, -405537848);\n        w = k(w, x, y, z, v[9], 5, 568446438);\n        z = k(z, w, x, y, v[14], 9, -1019803690);\n        y = k(y, z, w, x, v[3], 14, -187363961);\n        x = k(x, y, z, w, v[8], 20, 1163531501);\n        w = k(w, x, y, z, v[13], 5, -1444681467);\n        z = k(z, w, x, y, v[2], 9, -51403784);\n        y = k(y, z, w, x, v[7], 14, 1735328473);\n        x = k(x, y, z, w, v[12], 20, -1926607734);\n        w = l(w, x, y, z, v[5], 4, -378558);\n        z = l(z, w, x, y, v[8], 11, -2022574463);\n        y = l(y, z, w, x, v[11], 16, 1839030562);\n        x = l(x, y, z, w, v[14], 23, -35309556);\n        w = l(w, x, y, z, v[1], 4, -1530992060);\n        z = l(z, w, x, y, v[4], 11, 1272893353);\n        y = l(y, z, w, x, v[7], 16, -155497632);\n        x = l(x, y, z, w, v[10], 23, -1094730640);\n        w = l(w, x, y, z, v[13], 4, 681279174);\n        z = l(z, w, x, y, v[0], 11, -358537222);\n        y = l(y, z, w, x, v[3], 16, -722521979);\n        x = l(x, y, z, w, v[6], 23, 76029189);\n        w = l(w, x, y, z, v[9], 4, -640364487);\n        z = l(z, w, x, y, v[12], 11, -421815835);\n        y = l(y, z, w, x, v[15], 16, 530742520);\n        x = l(x, y, z, w, v[2], 23, -995338651);\n        w = m(w, x, y, z, v[0], 6, -198630844);\n        z = m(z, w, x, y, v[7], 10, 1126891415);\n        y = m(y, z, w, x, v[14], 15, -1416354905);\n        x = m(x, y, z, w, v[5], 21, -57434055);\n        w = m(w, x, y, z, v[12], 6, 1700485571);\n        z = m(z, w, x, y, v[3], 10, -1894986606);\n        y = m(y, z, w, x, v[10], 15, -1051523);\n        x = m(x, y, z, w, v[1], 21, -2054922799);\n        w = m(w, x, y, z, v[8], 6, 1873313359);\n        z = m(z, w, x, y, v[15], 10, -30611744);\n        y = m(y, z, w, x, v[6], 15, -1560198380);\n        x = m(x, y, z, w, v[13], 21, 1309151649);\n        w = m(w, x, y, z, v[4], 6, -145523070);\n        z = m(z, w, x, y, v[11], 10, -1120210379);\n        y = m(y, z, w, x, v[2], 15, 718787259);\n        x = m(x, y, z, w, v[9], 21, -343485551);\n        u[0] = s(w, u[0]);\n        u[1] = s(x, u[1]);\n        u[2] = s(y, u[2]);\n        u[3] = s(z, u[3]);\n    };\n    function i(u, v, w, x, y, z) {\n        v = s(s(v, u), s(x, z));\n        return s((((v << y)) | ((v >>> ((32 - y))))), w);\n    };\n    function j(u, v, w, x, y, z, aa) {\n        return i((((v & w)) | (((~v) & x))), u, v, y, z, aa);\n    };\n    function k(u, v, w, x, y, z, aa) {\n        return i((((v & x)) | ((w & (~x)))), u, v, y, z, aa);\n    };\n    function l(u, v, w, x, y, z, aa) {\n        return i(((v ^ w) ^ x), u, v, y, z, aa);\n    };\n    function m(u, v, w, x, y, z, aa) {\n        return i((w ^ ((v | (~x)))), u, v, y, z, aa);\n    };\n    function n(u) {\n        var v = u.length, w = [1732584193,-271733879,-1732584194,271733878,], x;\n        for (x = 64; (x <= u.length); x += 64) {\n            h(w, o(u.substring((x - 64), x)));;\n        };\n        u = u.substring((x - 64));\n        var y = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,];\n        for (x = 0; (x < u.length); x++) {\n            y[(x >> 2)] |= (u.charCodeAt(x) << ((((x & 3)) << 3)));;\n        };\n        y[(x >> 2)] |= (128 << ((((x & 3)) << 3)));\n        if ((x > 55)) {\n            h(w, y);\n            for (x = 0; (x < 16); x++) {\n                y[x] = 0;;\n            };\n        }\n    ;\n        y[14] = (v * 8);\n        h(w, y);\n        return w;\n    };\n    function o(u) {\n        var v = [], w = 0;\n        while ((w < 64)) {\n            v[(w >> 2)] = (((u.charCodeAt(w++) | ((u.charCodeAt(w++) << 8))) | ((u.charCodeAt(w++) << 16))) | ((u.charCodeAt(w++) << 24)));;\n        };\n        return v;\n    };\n    var p = \"0123456789abcdef\".split(\"\");\n    function q(u) {\n        var v = \"\", w = 0;\n        for (; (w < 4); w++) {\n            v += (p[(((u >> ((((w << 3)) + 4)))) & 15)] + p[(((u >> ((w << 3)))) & 15)]);;\n        };\n        return v;\n    };\n    function r(u) {\n        for (var v = 0; (v < u.length); v++) {\n            u[v] = q(u[v]);;\n        };\n        return u.join(\"\");\n    };\n    var s = function(u, v) {\n        return (((u + v)) & 4294967295);\n    };\n    function t(u) {\n        if (((null === u) || (undefined === u))) {\n            return null;\n        }\n         else {\n            for (var v = 0; (v < u.length); v++) {\n                if ((u[v] > \"\7f\")) {\n                    u = g(u);\n                    break;\n                }\n            ;\n            };\n            return r(n(u));\n        }\n    ;\n    };\n    if ((t(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\")) {\n        s = function(u, v) {\n            var w = (((u & 65535)) + ((v & 65535))), x = ((((u >> 16)) + ((v >> 16))) + ((w >> 16)));\n            return (((x << 16)) | ((w & 65535)));\n        };\n    };\n    e.exports = t;\n});\n__d(\"isRTL\", [], function(a, b, c, d, e, f) {\n    var g = (\"A-Za-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02b8\\u0300-\\u0590\\u0800-\\u1fff\" + \"\\u200e\\u2c00-\\ufb1c\\ufe00-\\ufe6f\\ufefd-\\uffff\"), h = \"\\u0591-\\u07ff\\u200f\\ufb1d-\\ufdff\\ufe70-\\ufefc\", i = new RegExp(((((\"^[^\" + g) + \"]*[\") + h) + \"]\")), j = new RegExp(((\"[\" + g) + \"]\"));\n    function k(l) {\n        var m = 0, n = 0;\n        l.split(/\\s+/, 20).forEach(function(o) {\n            if (/^https?:\\/\\//.test(o)) {\n                return\n            };\n            if (i.test(o)) {\n                n++;\n                m++;\n            }\n             else if (j.test(o)) {\n                m++;\n            }\n        ;\n        });\n        return !!((m && (((n / m) > 14503))));\n    };\n    e.exports = k;\n});\n__d(\"WaterfallIDGenerator\", [\"Env\",\"md5\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"md5\");\n    function i() {\n        var l = 2147483647;\n        return (Math.random() * l);\n    };\n    function j() {\n        return Math.floor((Date.now() / 1000));\n    };\n    var k = {\n        generate: function() {\n            return h([g.user,j(),i(),].join(\":\"));\n        }\n    };\n    e.exports = k;\n});\n__d(\"FeatureDetection\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\");\n    e.exports = {\n        isFileAPISupported: function() {\n            if (((g.webkit() && !g.chrome()) && g.windows())) {\n                return false\n            };\n            return (((\"FileList\" in window)) && ((\"FormData\" in window)));\n        },\n        isBlobFactorySupported: function() {\n            return !!a.Blob;\n        }\n    };\n});\n__d(\"AsyncUploadBase\", [\"ArbiterMixin\",\"AsyncRequest\",\"AsyncResponse\",\"Form\",\"FeatureDetection\",\"copyProperties\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"Form\"), k = b(\"FeatureDetection\"), l = b(\"copyProperties\"), m = b(\"removeFromArray\");\n    function n(p) {\n        this.setURI(p);\n    };\n    n.isSupported = function() {\n        return k.isFileAPISupported();\n    };\n    l(n.prototype, g, {\n        _limit: 10,\n        setAllowCrossOrigin: function(p) {\n            this._allowCrossOrigin = !!p;\n            return this;\n        },\n        setData: function(p) {\n            this._data = p;\n            return this;\n        },\n        setLimit: function(p) {\n            this._limit = p;\n            return this;\n        },\n        setRelativeTo: function(p) {\n            this._relativeTo = p;\n            return this;\n        },\n        setStatusElement: function(p) {\n            this._statusElement = p;\n            return this;\n        },\n        setURI: function(p) {\n            this._uri = p;\n            return this;\n        },\n        suspend: function() {\n            this._suspended = true;\n            return this;\n        },\n        resume: function() {\n            this._suspended = false;\n            this._processQueue();\n            return this;\n        },\n        isUploading: function() {\n            return this._inFlight;\n        },\n        _createFileUpload: function(p, q, r) {\n            return new o(p, q, r);\n        },\n        _parseFiles: function(p) {\n            var q = {\n            };\n            for (var r in p) {\n                var s = p[r];\n                if (Array.isArray(s)) {\n                    q[r] = s;\n                }\n                 else {\n                    q[r] = [];\n                    if ((s instanceof window.FileList)) {\n                        for (var t = 0; (t < s.length); t++) {\n                            q[r].push(s.item(t));;\n                        };\n                    }\n                     else if (((s instanceof window.File) || (s instanceof window.Blob))) {\n                        q[r].push(s);\n                    }\n                ;\n                }\n            ;\n            };\n            return q;\n        },\n        _processQueue: function() {\n            if (this._suspended) {\n                return\n            };\n            while ((this._pending.length < this._limit)) {\n                if (!this._waiting.length) {\n                    break;\n                };\n                var p = this._waiting.shift();\n                this._processUpload(p);\n                this._pending.push(p);\n            };\n        },\n        _processUpload: function(p) {\n            var q = j.createFormData((p.getData() || this._data));\n            if (p.getFile()) {\n                q.append(p.getName(), p.getFile());\n                q.append(\"upload_id\", p.getFile().uploadID);\n            }\n        ;\n            var r = new h().setAllowCrossOrigin(this._allowCrossOrigin).setURI(this._uri).setRawData(q).setRelativeTo(this._relativeTo).setStatusElement(this._statusElement).setHandler(this._success.bind(this, p)).setErrorHandler(this._failure.bind(this, p)).setUploadProgressHandler(this._progress.bind(this, p)).setInitialHandler(this._initial.bind(this, p));\n            r.send();\n            p.setAsyncRequest(r);\n            this._inFlight = true;\n            this.inform(\"start\", p);\n        },\n        _abort: function(p) {\n            m(this._waiting, p);\n            p.abort();\n        },\n        _initial: function(p) {\n            this.inform(\"initial\", p);\n        },\n        _success: function(p, q) {\n            this._complete(p);\n            this.inform(\"success\", p.handleSuccess(q));\n            this._processQueue();\n        },\n        _failure: function(p, q) {\n            this._complete(p);\n            if ((this.inform(\"failure\", p.handleFailure(q)) !== false)) {\n                i.defaultErrorHandler(q);\n            };\n            this._processQueue();\n        },\n        _progress: function(p, event) {\n            this.inform(\"progress\", p.handleProgress(event));\n        },\n        _complete: function(p) {\n            m(this._pending, p);\n            if (!this._pending.length) {\n                this._inFlight = false;\n            };\n        }\n    });\n    var o = function(p, q, r) {\n        this._name = p;\n        this._file = q;\n        this._data = r;\n        this._success = null;\n        this._response = null;\n        this._progressEvent = null;\n        this._request = null;\n    };\n    l(o.prototype, {\n        getName: function() {\n            return this._name;\n        },\n        getFile: function() {\n            return this._file;\n        },\n        getData: function() {\n            return this._data;\n        },\n        isComplete: function() {\n            return (this._success !== null);\n        },\n        isSuccess: function() {\n            return (this._success === true);\n        },\n        getResponse: function() {\n            return this._response;\n        },\n        getProgressEvent: function() {\n            return this._progressEvent;\n        },\n        setAsyncRequest: function(p) {\n            this._request = p;\n            return this;\n        },\n        isWaiting: function() {\n            return !this._request;\n        },\n        abort: function() {\n            (this._request && this._request.abort());\n            this._request = null;\n        },\n        handleSuccess: function(p) {\n            this._success = true;\n            this._response = p;\n            this._progressEvent = null;\n            return this;\n        },\n        handleFailure: function(p) {\n            this._success = false;\n            this._response = p;\n            this._progressEvent = null;\n            return this;\n        },\n        handleProgress: function(event) {\n            this._progressEvent = event;\n            return this;\n        }\n    });\n    e.exports = n;\n});\n__d(\"AsyncUploadRequest\", [\"AsyncUploadBase\",\"Class\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncUploadBase\"), h = b(\"Class\"), i = b(\"copyProperties\");\n    function j(k) {\n        this.parent.construct(this, k);\n    };\n    j.isSupported = function() {\n        return g.isSupported();\n    };\n    h.extend(j, g);\n    i(j.prototype, {\n        setFiles: function(k) {\n            this._files = this._parseFiles(k);\n            return this;\n        },\n        send: function() {\n            if (this._inFlight) {\n                return\n            };\n            this._inFlight = true;\n            this._uploads = [];\n            for (var k in this._files) {\n                this._files[k].forEach(function(l) {\n                    this._uploads.push(this._createFileUpload(k, l));\n                }.bind(this));;\n            };\n            if (this._uploads.length) {\n                this._waiting = this._uploads.slice(0);\n                this._pending = [];\n                this._processQueue();\n            }\n             else this._processUpload(this._createFileUpload(null, null));\n        ;\n        },\n        _processQueue: function() {\n            this.parent._processQueue();\n            if ((!this._pending.length && !this._waiting.length)) {\n                this.inform(\"complete\", this._uploads);\n            };\n        }\n    });\n    e.exports = j;\n});\n__d(\"FileForm\", [\"ArbiterMixin\",\"AsyncRequest\",\"AsyncResponse\",\"AsyncUploadRequest\",\"BehaviorsMixin\",\"DataStore\",\"DOMQuery\",\"Env\",\"Event\",\"Form\",\"JSONPTransport\",\"Parent\",\"URI\",\"copyProperties\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"AsyncUploadRequest\"), k = b(\"BehaviorsMixin\"), l = b(\"DataStore\"), m = b(\"DOMQuery\"), n = b(\"Env\"), o = b(\"Event\"), p = b(\"Form\"), q = b(\"JSONPTransport\"), r = b(\"Parent\"), s = b(\"URI\"), t = b(\"copyProperties\"), u = b(\"shield\");\n    function v(y) {\n        var z = {\n        }, aa = m.scry(y, \"input[type=\\\"file\\\"]\");\n        aa.forEach(function(ba) {\n            z[ba.name] = ba.files;\n        });\n        return z;\n    };\n    function w(y) {\n        var z = m.scry(y, \"input[type=\\\"file\\\"]\");\n        z.forEach(function(aa) {\n            aa.files = null;\n        });\n    };\n    function x(y, z, aa) {\n        if ((y.getAttribute(\"rel\") === \"async\")) {\n            throw new Error(\"FileForm cannot be used with Primer forms.\")\n        };\n        if ((y.getAttribute(\"method\").toUpperCase() !== \"POST\")) {\n            throw new Error(\"FileForm must be used with POST forms.\")\n        };\n        this._form = y;\n        this._previousEncoding = this._form.enctype;\n        this._form.enctype = this._form.encoding = \"multipart/form-data\";\n        (z && this.enableBehaviors(z));\n        this._options = (aa || {\n        });\n        this.setAllowCrossOrigin(this._options.allowCrossOrigin);\n        this.setUploadInParallel(this._options.uploadInParallel);\n        this._listener = o.listen(this._form, \"submit\", this._submit.bind(this));\n        l.set(this._form, \"FileForm\", this);\n    };\n    t(x, {\n        EVENTS: [\"start\",\"submit\",\"initial\",\"progress\",\"success\",\"failure\",],\n        getInstance: function(y) {\n            return l.get(y, \"FileForm\");\n        }\n    });\n    t(x.prototype, g, k, {\n        getRoot: function() {\n            return this._form;\n        },\n        setAllowCrossOrigin: function(y) {\n            this._allowCrossOrigin = !!y;\n            return this;\n        },\n        setUploadInParallel: function(y) {\n            this._uploadInParallel = !!y;\n            return this;\n        },\n        _submit: function(event) {\n            if ((this.inform(\"submit\") === false)) {\n                event.prevent();\n                return;\n            }\n        ;\n            var y = (\"FormData\" in window);\n            if (y) {\n                if ((!s(this._form.action).isSameOrigin() && !this._allowCrossOrigin)) {\n                    y = false;\n                }\n            };\n            return (y ? this._sendViaXHR(event) : this._sendViaFrame(event));\n        },\n        _sendViaFrame: function(event) {\n            var y = this._request = new h();\n            y.setStatusElement(this._getStatusElement());\n            y.addStatusIndicator();\n            y.setOption(\"useIframeTransport\", true);\n            var z = y.handleResponse.bind(y), aa = new q(\"iframe\", this._form.action, z), ba = aa.getTransportFrame(), ca = aa.getRequestURI().addQueryData({\n                __iframe: true,\n                __user: n.user\n            });\n            this._form.setAttribute(\"action\", ca.toString());\n            this._form.setAttribute(\"target\", ba.name);\n            y.setJSONPTransport(aa);\n            y.setURI(ca);\n            y.setHandler(this.success.bind(this, null));\n            y.setErrorHandler(this.failure.bind(this, null));\n            y.setInitialHandler(u(this.initial, this, null));\n        },\n        _sendViaXHR: function(event) {\n            var y;\n            if ((this._uploadInParallel && j.isSupported())) {\n                y = new j().setData(p.serialize(this._form)).setFiles(v(this._form));\n                var z = [y.subscribe(\"progress\", function(aa, ba) {\n                    this.progress(ba, ba.getProgressEvent());\n                }.bind(this)),y.subscribe(\"initial\", function(aa, ba) {\n                    this.initial(ba, ba.getResponse());\n                }.bind(this)),y.subscribe(\"success\", function(aa, ba) {\n                    this.success(ba, ba.getResponse());\n                }.bind(this)),y.subscribe(\"start\", function(aa, ba) {\n                    this.inform(\"start\", {\n                        upload: ba\n                    });\n                }.bind(this)),y.subscribe(\"failure\", function(aa, ba) {\n                    this.failure(ba, ba.getResponse());\n                    return false;\n                }.bind(this)),y.subscribe(\"complete\", function() {\n                    while (z.length) {\n                        z.pop().unsubscribe();;\n                    };\n                }),];\n            }\n             else y = new h().setRawData(p.createFormData(this._form)).setHandler(this.success.bind(this, null)).setErrorHandler(this.failure.bind(this, null)).setUploadProgressHandler(this.progress.bind(this, null)).setInitialHandler(u(this.initial, this, null));\n        ;\n            y.setAllowCrossOrigin(this._allowCrossOrigin).setRelativeTo(this._form).setStatusElement(this._getStatusElement()).setURI(this._form.action).send();\n            this._request = y;\n            event.prevent();\n        },\n        initial: function(y) {\n            return this.inform(\"initial\", {\n                upload: y\n            });\n        },\n        success: function(y, z) {\n            var aa = {\n                response: z,\n                upload: y\n            };\n            if ((this.inform(\"success\", aa) !== false)) {\n                o.fire(this._form, \"success\", aa);\n            };\n            this._cleanup();\n        },\n        failure: function(y, z) {\n            var aa = {\n                response: z,\n                upload: y\n            };\n            if ((this.inform(\"failure\", aa) !== false)) {\n                if ((o.fire(this._form, \"error\", aa) !== false)) {\n                    i.defaultErrorHandler(z);\n                }\n            };\n            this._cleanup();\n        },\n        progress: function(y, event) {\n            this.inform(\"progress\", {\n                event: event,\n                upload: y\n            });\n        },\n        abort: function() {\n            if (this._request) {\n                this._request.abort();\n                this._cleanup();\n            }\n        ;\n        },\n        clear: function() {\n            w(this._form);\n        },\n        destroy: function() {\n            this._cleanup();\n            this._listener.remove();\n            this._listener = null;\n            this._form.enctype = this._form.encoding = this._previousEncoding;\n            l.remove(this._form, \"FileForm\");\n        },\n        _cleanup: function() {\n            this._request = null;\n        },\n        _getStatusElement: function() {\n            return (r.byClass(this._form, \"stat_elem\") || this._form);\n        }\n    });\n    e.exports = x;\n});\n__d(\"FileFormResetOnSubmit\", [\"DOMQuery\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._form = j;\n    };\n    h(i.prototype, {\n        enable: function() {\n            this._subscription = this._form.subscribe(\"submit\", Function.prototype.defer.bind(this._reset.bind(this)));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _reset: function() {\n            var j = g.scry(this._form.getRoot(), \"input[type=\\\"file\\\"]\");\n            j.forEach(function(k) {\n                k.value = \"\";\n            });\n        }\n    });\n    e.exports = i;\n});\n__d(\"submitForm\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = function(i) {\n        var j = g.scry(i, \"input[type=\\\"submit\\\"]\")[0];\n        if (j) {\n            j.click();\n        }\n         else {\n            j = g.create(\"input\", {\n                type: \"submit\",\n                className: \"hidden_elem\"\n            });\n            g.appendContent(i, j);\n            j.click();\n            g.remove(j);\n        }\n    ;\n    };\n    e.exports = h;\n});\n__d(\"FormSubmitOnChange\", [\"Event\",\"copyProperties\",\"submitForm\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\"), i = b(\"submitForm\");\n    function j(k) {\n        this._form = k;\n    };\n    h(j.prototype, {\n        _listener: null,\n        enable: function() {\n            this._listener = g.listen(this._form.getRoot(), \"change\", this._submit.bind(this));\n        },\n        disable: function() {\n            this._listener.remove();\n            this._listener = null;\n        },\n        _submit: function() {\n            i(this._form.getRoot());\n        }\n    });\n    e.exports = j;\n});\n__d(\"MercuryFileUploader\", [\"ArbiterMixin\",\"CSS\",\"Dialog\",\"DOM\",\"Event\",\"FileForm\",\"FileFormResetOnSubmit\",\"FileInput\",\"FormSubmitOnChange\",\"MercuryAttachment\",\"MercuryAttachmentTemplates\",\"MercuryConstants\",\"SubscriptionsHandler\",\"copyProperties\",\"csx\",\"getObjectValues\",\"shield\",\"startsWith\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"Dialog\"), j = b(\"DOM\"), k = b(\"Event\"), l = b(\"FileForm\"), m = b(\"FileFormResetOnSubmit\"), n = b(\"FileInput\"), o = b(\"FormSubmitOnChange\"), p = b(\"MercuryAttachment\"), q = b(\"MercuryAttachmentTemplates\"), r = b(\"MercuryConstants\"), s = b(\"SubscriptionsHandler\"), t = b(\"copyProperties\"), u = b(\"csx\"), v = b(\"getObjectValues\"), w = b(\"shield\"), x = b(\"startsWith\"), y = b(\"tx\"), z = 0;\n    function aa(ca, da, ea, fa) {\n        this._parentElem = ca;\n        this._attachments = {\n        };\n        this._imageIDs = {\n        };\n        this._uploading = {\n        };\n        this._uploadTemplates = {\n        };\n        this._uploadStartTimes = {\n        };\n        this._subscriptionsHandler = new s();\n        this._fileForm = new l(da, [o,m,]);\n        this._fileForm.setAllowCrossOrigin(true);\n        this._fileForm.setUploadInParallel(true);\n        var ga = j.find(da, \"._4q60\"), ha = j.find(ga, \"._4q61\");\n        new n(ga, ha, ea);\n        h.hide(this._parentElem);\n        this._subscriptionsHandler.addSubscriptions(this._fileForm.subscribe(\"submit\", function() {\n            var ia = (\"upload_\" + z++);\n            fa.value = ia;\n            var ja = {\n                count: 0,\n                file_sizes: []\n            };\n            if (ea.files) {\n                for (var ka = 0; (ka < ea.files.length); ka++) {\n                    if ((ea.files[ka].size > r.AttachmentMaxSize)) {\n                        this._fileForm.abort();\n                        this._fileForm.clear();\n                        new i().setTitle(\"The file you have selected is too large\").setBody(\"The file you have selected is too large. The maximum size is 25MB.\").setButtons(i.OK).setSemiModal(true).show();\n                        return false;\n                    }\n                ;\n                };\n                for (var la = 0; (la < ea.files.length); la++) {\n                    this._addFileUploadRow(ia, ea.files[la].name);\n                    ja.count++;\n                    ja.file_sizes.push(ea.files[la].size);\n                };\n            }\n             else {\n                this._addFileUploadRow(ia, ea.value);\n                ja.count = 1;\n            }\n        ;\n            this.inform(\"submit\", ja);\n        }.bind(this)), this._fileForm.subscribe(\"success\", this._onFileUploadSuccess.bind(this)), this._fileForm.subscribe(\"failure\", this._onFileUploadFailure.bind(this)), k.listen(ha, \"click\", w(this.inform, this, \"open\")));\n    };\n    t(aa.prototype, g, {\n        isUploading: function() {\n            return !!Object.keys(this._uploading).length;\n        },\n        getAttachments: function() {\n            return v(this._attachments);\n        },\n        getImageIDs: function() {\n            return v(this._imageIDs);\n        },\n        removeAttachments: function() {\n            v(this._uploadTemplates).forEach(function(ca) {\n                if (ca) {\n                    j.remove(ca.getRoot());\n                };\n            });\n            this._attachments = {\n            };\n            this._imageIDs = {\n            };\n            this._uploadTemplates = {\n            };\n            this._uploading = {\n            };\n            this._uploadStartTimes = {\n            };\n            h.hide(this._parentElem);\n            this.inform(\"dom-updated\");\n        },\n        destroy: function() {\n            this._subscriptionsHandler.release();\n            this._fileForm.destroy();\n            this.removeAttachments();\n        },\n        _addFileUploadRow: function(ca, da) {\n            var ea = q[\":fb:mercury:upload-file-row\"].build(), fa = ba(da), ga = ((ca + \"/\") + fa);\n            this._uploadTemplates[ga] = ea;\n            this._uploading[ga] = true;\n            this._uploadStartTimes[ga] = Date.now();\n            j.appendContent(ea.getNode(\"iconText\"), fa);\n            k.listen(ea.getNode(\"closeFileUpload\"), \"click\", this._removeFileUploader.bind(this, ga));\n            j.appendContent(this._parentElem, ea.getRoot());\n            h.show(this._parentElem);\n            this.inform(\"dom-updated\");\n        },\n        _removeFileUploader: function(ca, event) {\n            if (this._uploading[ca]) {\n                this.inform(\"upload-canceled-during-upload\");\n            }\n             else if ((this._attachments[ca] || this._imageIDs[ca])) {\n                this.inform(\"upload-canceled-after-uploaded\");\n            }\n        ;\n            delete this._attachments[ca];\n            delete this._imageIDs[ca];\n            delete this._uploading[ca];\n            delete this._uploadStartTimes[ca];\n            var da = this._uploadTemplates[ca];\n            delete this._uploadTemplates[ca];\n            if (da) {\n                j.remove(da.getRoot());\n                this.inform(\"dom-updated\");\n            }\n        ;\n            this.inform(\"upload-canceled\");\n            return false;\n        },\n        _updateFileUploader: function(ca, da) {\n            var ea = this._uploadTemplates[ca], fa = p.getAttachIconClassByMime(da);\n            h.addClass(ea.getNode(\"iconText\"), fa);\n            h.addClass(ea.getRoot(), \"done\");\n        },\n        _onFileUploadSuccess: function(event, ca) {\n            var da = ca.response.getPayload(), ea = da.uploadID, fa = da.metadata;\n            for (var ga = 0; (ga < fa.length); ga++) {\n                var ha = ((ea + \"/\") + fa[ga].filename);\n                if (this._uploading[ha]) {\n                    delete this._uploading[ha];\n                    if (fa[ga].image_id) {\n                        this._imageIDs[ha] = fa[ga].image_id;\n                    }\n                     else this._attachments[ha] = fa[ga];\n                ;\n                    this._updateFileUploader(ha, fa[ga].filetype);\n                    this.inform(\"one-upload-completed\", {\n                        upload_time_ms: (Date.now() - this._uploadStartTimes[ha])\n                    });\n                }\n            ;\n            };\n            if (!this.isUploading()) {\n                this.inform(\"all-uploads-completed\", {\n                    count: this.getAttachments().length\n                });\n            };\n        },\n        _onFileUploadFailure: function(event, ca) {\n            this.inform(\"one-upload-failed\");\n        }\n    });\n    function ba(ca) {\n        if ((ca && x(ca, \"C:\\\\fakepath\\\\\"))) {\n            return ca.substring(12)\n        };\n        return ca;\n    };\n    e.exports = aa;\n});\n__d(\"JoinableConversationMessageFilter\", [\"MercuryLogMessageType\",\"MercuryThreads\",\"MercuryParticipants\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryLogMessageType\"), h = b(\"MercuryThreads\").get(), i = b(\"MercuryParticipants\"), j = {\n        _isFilterable: function(k) {\n            var l = k.log_message_type;\n            if (!l) {\n                return false\n            };\n            if ((l == g.JOINABLE_JOINED)) {\n                return (k.log_message_data.joined_participant !== i.user)\n            };\n            if (((l == g.UNSUBSCRIBE) || (l == g.SUBSCRIBE))) {\n                var m = h.getThreadMetaNow(k.thread_id);\n                if ((m && m.is_joinable)) {\n                    return (k.author !== i.user)\n                };\n                return false;\n            }\n        ;\n            return false;\n        },\n        filterMessages: function(k, l, m) {\n            var n = [];\n            for (var o = 0; (o < l.length); o++) {\n                var p = l[o];\n                if (j._isFilterable(p)) {\n                    if (m) {\n                        k(p);\n                    };\n                }\n                 else n.push(p);\n            ;\n            };\n            return n;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryThreadMuter\", [\"AsyncDialog\",\"AsyncRequest\",\"Env\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncDialog\"), h = b(\"AsyncRequest\"), i = b(\"Env\"), j = b(\"MercuryThreads\").get(), k = {\n        getUserIDEmail: function() {\n            return (i.user + \"@facebook.com\");\n        },\n        getThreadMuteSettingForUser: function(l) {\n            return (l.mute_settings && l.mute_settings[k.getUserIDEmail()]);\n        },\n        isThreadMuted: function(l) {\n            return (k.getThreadMuteSettingForUser(l) !== undefined);\n        },\n        showMuteChangeDialog: function(l, m) {\n            g.send(new h(\"/ajax/mercury/mute_thread_dialog.php\").setData({\n                muting: l\n            }), function(n) {\n                n.subscribe(\"confirm\", function() {\n                    this.hide();\n                    j.updateThreadMuteSetting(m, l);\n                }.bind(n));\n            });\n        }\n    };\n    e.exports = k;\n});\n__d(\"JoinStatusTabSheet\", [\"copyProperties\",\"DOM\",\"MercuryLogMessageType\",\"MercuryParticipants\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"DOM\"), i = b(\"MercuryLogMessageType\"), j = b(\"MercuryParticipants\");\n    function k(l, m) {\n        this._rootElement = l;\n        this._messageQueue = [];\n        this._sheetView = m;\n    };\n    g(k.prototype, {\n        _setMessage: function(l, m) {\n            var n = l.author, o = l.log_message_type;\n            if ((o == i.JOINABLE_JOINED)) {\n                var p = l.log_message_data.joined_participant;\n                if ((p !== j.user)) {\n                    j.get(p, function(s) {\n                        h.setContent(m, h.tx._(\"{actor} joined the chat.\", {\n                            actor: s.name\n                        }));\n                    });\n                };\n            }\n             else if ((o == i.UNSUBSCRIBE)) {\n                if ((n !== j.user)) {\n                    j.get(n, function(s) {\n                        h.setContent(m, h.tx._(\"{actor} left the conversation.\", {\n                            actor: s.name\n                        }));\n                    });\n                };\n            }\n             else if ((o == i.SUBSCRIBE)) {\n                if ((n !== j.user)) {\n                    var q = l.log_message_data.added_participants;\n                    if ((q && (q.length > 0))) {\n                        var r = [n,q[0],];\n                        j.getMulti(r, function(s) {\n                            h.setContent(m, h.tx._(\"{actor} added {subscriber1}.\", {\n                                actor: s[n].name,\n                                subscriber1: s[q[0]].name\n                            }));\n                        });\n                    }\n                ;\n                }\n            \n            }\n            \n        ;\n        },\n        isPermanent: function() {\n            return false;\n        },\n        getCloseTimeout: function() {\n            return 2000;\n        },\n        getType: function() {\n            return \"join_status_type\";\n        },\n        addToQueue: function(l) {\n            this._messageQueue.push(l);\n            if ((this._messageQueue.length === 1)) {\n                this._open();\n            };\n        },\n        render: function() {\n            var l = this._messageQueue[0], m = this._getTemplate().build();\n            this._setMessage(l, m.getNode(\"text\"));\n            h.setContent(this._rootElement, m.getRoot());\n        },\n        _open: function() {\n            this._sheetView.open(this);\n        },\n        autoCloseCallback: function() {\n            this._messageQueue.shift();\n            if ((this._messageQueue.length > 0)) {\n                this._open();\n            };\n        },\n        couldNotReplace: function() {\n            this._open.bind(this).defer(this.getCloseTimeout(), false);\n        }\n    });\n    e.exports = k;\n});\n__d(\"WebMessengerEvents\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = h(new g(), {\n        MASTER_DOM_CHANGED: \"master-dom-changed\",\n        DETAIL_DOM_CHANGED: \"detail-dom-changed\",\n        FOCUS_COMPOSER: \"focus-composer\",\n        FOCUS_SEARCH: \"focus-search\",\n        FOCUS_AND_SELECT_SEARCH: \"focus-and-select-search\",\n        SUBMIT_REPLY: \"submit-reply\",\n        UPDATE_SELECTION: \"update-selection\",\n        masterDOMChanged: function() {\n            this.inform(i.MASTER_DOM_CHANGED);\n        },\n        detailDOMChanged: function() {\n            this.inform(i.DETAIL_DOM_CHANGED);\n        },\n        focusComposer: function() {\n            this.inform(i.FOCUS_COMPOSER);\n        },\n        focusSearch: function() {\n            this.inform(i.FOCUS_SEARCH);\n        },\n        focusAndSelectSearch: function() {\n            this.inform(i.FOCUS_AND_SELECT_SEARCH);\n        },\n        updateSelection: function(j) {\n            this.inform(i.UPDATE_SELECTION, j);\n        },\n        submitReply: function() {\n            this.inform(i.SUBMIT_REPLY);\n        }\n    });\n    e.exports = i;\n});\n__d(\"WebMessengerSubscriptionsHandler\", [\"SubscriptionsHandler\",], function(a, b, c, d, e, f) {\n    var g = b(\"SubscriptionsHandler\"), h = new g(\"webmessenger\");\n    e.exports = h;\n});\n__d(\"isWebMessengerURI\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return (/^(\\/messages)/).test(h.getPath());\n    };\n    e.exports = g;\n});\n__d(\"WebMessengerWidthControl\", [\"Arbiter\",\"CSS\",\"CSSClassTransition\",\"DOMDimensions\",\"Event\",\"Style\",\"URI\",\"ViewportBounds\",\"WebMessengerEvents\",\"shield\",\"WebMessengerSubscriptionsHandler\",\"$\",\"cx\",\"isWebMessengerURI\",\"requestAnimationFrame\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"CSSClassTransition\"), j = b(\"DOMDimensions\"), k = b(\"Event\"), l = b(\"Style\"), m = b(\"URI\"), n = b(\"ViewportBounds\"), o = b(\"WebMessengerEvents\"), p = b(\"shield\"), q = b(\"WebMessengerSubscriptionsHandler\"), r = b(\"$\"), s = b(\"cx\"), t = b(\"isWebMessengerURI\"), u = b(\"requestAnimationFrame\"), v = b(\"throttle\"), w = 205, x = 981, y = 257, z = 18, aa = 848, ba = 724, ca = 34096, da = 56, ea, fa, ga;\n    function ha(ma, na, oa) {\n        this.masterChanged = ma;\n        this.detailChaned = na;\n        q.addSubscriptions(k.listen(window, \"resize\", v(p(ia, this, this), 100)), g.subscribe([\"sidebar/initialized\",\"sidebar/show\",\"sidebar/hide\",], p(ia, this, this), g.SUBSCRIBE_NEW));\n        var pa = (la() ? da : 0);\n        if (oa) {\n            pa = w;\n        };\n        this._width = (la() ? 0 : aa);\n        ga = true;\n        ia(this, pa);\n    };\n    function ia(ma, na) {\n        var oa = (n.getRight() + n.getLeft());\n        oa = ((oa || na) || 0);\n        var pa = (j.getViewportWithoutScrollbarDimensions().width - oa), qa = Math.round(Math.max(0, ((pa / 2) - (x / 2))));\n        pa = ((x + qa) - y);\n        pa -= z;\n        pa = Math.max(ba, Math.min(aa, pa));\n        if ((!isNaN(pa) && (ma._width !== pa))) {\n            ma._width = pa;\n            var ra = Math.round((pa / ((1 + ca)))), sa = (pa - ra);\n            ma.masterChanged(sa);\n            ma.detailChaned(ra);\n            if (la()) {\n                var ta = (pa + y);\n                ja(function() {\n                    if (fa) {\n                        document.body.className = fa;\n                        fa = \"\";\n                    }\n                ;\n                    ka((ta + \"px\"));\n                    h.removeClass(document.body, \"_5262\");\n                    (ga && o.detailDOMChanged());\n                    ga = false;\n                }, fa);\n            }\n        ;\n        }\n    ;\n    };\n    function ja(ma, na) {\n        (na && h.addClass(document.documentElement, \"_5261\"));\n        u(ma);\n        (na && h.removeClass.curry(document.documentElement, \"_5261\").defer(1000, false));\n    };\n    function ka(ma) {\n        l.set(r(\"pageHead\"), \"width\", ma);\n        l.set(r(\"globalContainer\"), \"width\", ma);\n    };\n    function la() {\n        if (!ea) {\n            ea = h.hasClass(document.body, \"_6nw\");\n        };\n        return ea;\n    };\n    i.registerHandler(function(ma, na, oa, pa) {\n        function qa(ra) {\n            return (la() && t(m(ra)));\n        };\n        if (qa(pa)) {\n            fa = na;\n            return true;\n        }\n         else if (qa(oa)) {\n            ja(function() {\n                ma.className = na;\n                ka(\"\");\n            }, true);\n            return true;\n        }\n        \n    ;\n    });\n    e.exports = ha;\n});\n__d(\"TextInputControl\", [\"Event\",\"function-extensions\",\"Class\",\"DOMControl\",\"Input\",\"copyProperties\",\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Class\"), i = b(\"DOMControl\"), j = b(\"Input\"), k = b(\"copyProperties\"), l = b(\"debounce\");\n    function m(n) {\n        this.parent.construct(this, n);\n        var o = this.getRoot(), p = l(this.update.bind(this), 0);\n        g.listen(o, {\n            input: p,\n            keydown: p,\n            paste: p\n        });\n    };\n    h.extend(m, i);\n    k(m.prototype, {\n        setMaxLength: function(n) {\n            j.setMaxLength(this.getRoot(), n);\n            return this;\n        },\n        getValue: function() {\n            return j.getValue(this.getRoot());\n        },\n        isEmpty: function() {\n            return j.isEmpty(this.getRoot());\n        },\n        setValue: function(n) {\n            j.setValue(this.getRoot(), n);\n            this.update();\n            return this;\n        },\n        clear: function() {\n            return this.setValue(\"\");\n        },\n        setPlaceholderText: function(n) {\n            j.setPlaceholder(this.getRoot(), n);\n            return this;\n        }\n    });\n    e.exports = m;\n});\n__d(\"TextMetrics\", [\"Event\",\"DOM\",\"Style\",\"UserAgent\",\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"Style\"), j = b(\"UserAgent\"), k = b(\"debounce\"), l;\n    function m() {\n        if ((typeof l === \"undefined\")) {\n            var o = h.create(\"div\", {\n                className: \"webkitZoomTest\"\n            }), p = function() {\n                h.appendContent(document.body, o);\n                l = (100 / o.clientHeight);\n                h.remove(o);\n            };\n            g.listen(window, \"resize\", k(p, 100));\n            p();\n        }\n    ;\n        return l;\n    };\n    function n(o, p) {\n        this._node = o;\n        this._flexible = !!p;\n        var q = \"textarea\", r = \"textMetrics\";\n        if (this._flexible) {\n            q = \"div\";\n            r += \" textMetricsInline\";\n        }\n    ;\n        this._shadow = h.create(q, {\n            className: r\n        });\n        var s = [\"fontSize\",\"fontStyle\",\"fontWeight\",\"fontFamily\",\"wordWrap\",];\n        s.forEach(function(u) {\n            i.set(this._shadow, u, i.get(o, u));\n        }.bind(this));\n        var t = i.get(o, \"lineHeight\");\n        if ((j.chrome() || j.webkit())) {\n            t = (Math.round((parseInt(t, 10) * m())) + \"px\");\n        };\n        i.set(this._shadow, \"lineHeight\", t);\n        document.body.appendChild(this._shadow);\n    };\n    n.prototype.measure = function(o) {\n        var p = this._node, q = this._shadow;\n        o = (((o || p.value)) + \"...\");\n        if (!this._flexible) {\n            var r = ((p.clientWidth - i.getFloat(p, \"paddingLeft\")) - i.getFloat(p, \"paddingRight\"));\n            i.set(q, \"width\", (Math.max(r, 0) + \"px\"));\n        }\n    ;\n        h.setContent(q, o);\n        return {\n            width: q.scrollWidth,\n            height: q.scrollHeight\n        };\n    };\n    n.prototype.destroy = function() {\n        h.remove(this._shadow);\n    };\n    e.exports = n;\n});\n__d(\"TextAreaControl\", [\"Event\",\"Arbiter\",\"ArbiterMixin\",\"Class\",\"CSS\",\"DOMControl\",\"Style\",\"TextInputControl\",\"TextMetrics\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"Class\"), k = b(\"CSS\"), l = b(\"DOMControl\"), m = b(\"Style\"), n = b(\"TextInputControl\"), o = b(\"TextMetrics\"), p = b(\"copyProperties\");\n    function q(s, t) {\n        return (m.getFloat(s, t) || 0);\n    };\n    function r(s) {\n        this.autogrow = k.hasClass(s, \"uiTextareaAutogrow\");\n        this.parent.construct(this, s);\n        this.width = null;\n        g.listen(s, \"focus\", this._handleFocus.bind(this));\n    };\n    j.extend(r, n);\n    p(r.prototype, i, {\n        setAutogrow: function(s) {\n            this.autogrow = s;\n            return this;\n        },\n        onupdate: function() {\n            this.parent.onupdate();\n            if (this.autogrow) {\n                var s = this.getRoot();\n                if (!this.metrics) {\n                    this.metrics = new o(s);\n                };\n                if ((typeof this.initialHeight === \"undefined\")) {\n                    this.isBorderBox = (((m.get(s, \"box-sizing\") === \"border-box\") || (m.get(s, \"-moz-box-sizing\") === \"border-box\")) || (m.get(s, \"-webkit-box-sizing\") === \"border-box\"));\n                    this.borderBoxOffset = (((q(s, \"padding-top\") + q(s, \"padding-bottom\")) + q(s, \"border-top-width\")) + q(s, \"border-bottom-width\"));\n                    this.initialHeight = (s.offsetHeight - this.borderBoxOffset);\n                }\n            ;\n                var t = this.metrics.measure(), u = Math.max(this.initialHeight, t.height);\n                if (this.isBorderBox) {\n                    u += this.borderBoxOffset;\n                };\n                if ((u !== this.height)) {\n                    this.height = u;\n                    m.set(s, \"height\", (u + \"px\"));\n                    h.inform(\"reflow\");\n                    this.inform(\"resize\");\n                }\n            ;\n            }\n             else if (this.metrics) {\n                this.metrics.destroy();\n                this.metrics = null;\n            }\n            \n        ;\n        },\n        resetHeight: function() {\n            this.height = -1;\n            this.update();\n        },\n        _handleFocus: function() {\n            this.width = null;\n        }\n    });\n    r.getInstance = function(s) {\n        return (l.getInstance(s) || new r(s));\n    };\n    e.exports = r;\n});\n__d(\"MessagesEmoticonView\", [\"DOM\",\"EmoticonsList\",\"Event\",\"Focus\",\"InputSelection\",\"Keys\",\"Parent\",\"SubscriptionsHandler\",\"TextAreaControl\",\"Toggler\",\"copyProperties\",\"endsWith\",\"startsWith\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"EmoticonsList\"), i = b(\"Event\"), j = b(\"Focus\"), k = b(\"InputSelection\"), l = b(\"Keys\"), m = b(\"Parent\"), n = b(\"SubscriptionsHandler\"), o = b(\"TextAreaControl\"), p = b(\"Toggler\"), q = b(\"copyProperties\"), r = b(\"endsWith\"), s = b(\"startsWith\"), t = h.symbols;\n    function u(w, x, y) {\n        var z = m.byClass(w, \"emoticon\");\n        if (!z) {\n            return\n        };\n        var aa = \"emoticon_\", ba = null;\n        z.className.split(\" \").forEach(function(ia) {\n            if (s(ia, aa)) {\n                ba = ia.substring(aa.length);\n            };\n        });\n        if (!t[ba]) {\n            return\n        };\n        var ca = o.getInstance(x), da = ca.getValue(), ea = t[ba], fa = da.substring(0, y.start), ga = da.substring(y.end);\n        if (((y.start > 0) && !r(fa, \" \"))) {\n            ea = (\" \" + ea);\n        };\n        if (!s(ga, \" \")) {\n            ea += \" \";\n        };\n        var ha = ((fa + ea) + ga);\n        y.start += ea.length;\n        y.end = y.start;\n        ca.setValue(ha);\n        k.set(x, y.start, y.end);\n        return true;\n    };\n    function v(w, x) {\n        var y = {\n            start: 0,\n            end: 0\n        };\n        function z() {\n            y = k.get(x);\n        };\n        var aa = g.find(w, \".uiToggleFlyout\");\n        this._subscriptions = new n();\n        this._subscriptions.addSubscriptions(p.subscribe(\"show\", function(ba, ca) {\n            if ((ca.active && g.contains(w, ca.active))) {\n                k.set(x, y.start, y.end);\n                var da = g.scry(aa, \"a.emoticon\")[0];\n                j.setWithoutOutline(da);\n            }\n        ;\n        }), i.listen(aa, \"click\", function(event) {\n            var ba = u(event.getTarget(), x, y);\n            (ba && p.hide(w));\n        }), i.listen(aa, \"keyup\", function(event) {\n            if ((event.keyCode === l.ESC)) {\n                p.hide(w);\n                k.set(x, y.start, y.end);\n            }\n        ;\n        }), i.listen(x, \"keyup\", z), i.listen(x, \"click\", z));\n    };\n    q(v.prototype, {\n        destroy: function() {\n            this._subscriptions.release();\n            this._subscriptions = null;\n        }\n    });\n    q(v, {\n        create: function(w, x) {\n            return new v(w, x);\n        }\n    });\n    e.exports = v;\n});\n__d(\"MercuryTypingReceiver\", [\"Arbiter\",\"ChannelConstants\",\"MercuryActionTypeConstants\",\"MercuryParticipants\",\"MercuryPayloadSource\",\"MercuryServerRequests\",\"MercuryThreads\",\"TypingDetector\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"MercuryActionTypeConstants\"), j = b(\"MercuryParticipants\"), k = b(\"MercuryPayloadSource\"), l = b(\"MercuryServerRequests\").get(), m = b(\"MercuryThreads\").get(), n = b(\"TypingDetector\"), o = b(\"setTimeoutAcrossTransitions\"), p, q = {\n    }, r = 30000, s = new g();\n    function t(y) {\n        var z = (q[y] || {\n        }), aa = Object.keys(z);\n        aa.sort(function(ba, ca) {\n            return (z[ba] - z[ca]);\n        });\n        return aa;\n    };\n    function u() {\n        p = null;\n        var y = Date.now(), z = {\n        }, aa = false;\n        for (var ba in q) {\n            var ca = false;\n            for (var da in (q[ba] || {\n            })) {\n                if ((q[ba][da] < (y - r))) {\n                    delete q[ba][da];\n                    ca = true;\n                }\n                 else aa = true;\n            ;\n            };\n            if (ca) {\n                z[ba] = t(ba);\n            };\n        };\n        for (var ea in z) {\n            s.inform(\"state-changed\", z);\n            break;\n        };\n        if (aa) {\n            p = o(u, 3000);\n        };\n    };\n    function v(y, z) {\n        if ((y in q)) {\n            if ((z in q[y])) {\n                delete q[y][z];\n                w(y);\n            }\n        \n        };\n    };\n    function w(y) {\n        var z = {\n        };\n        z[y] = t(y);\n        s.inform(\"state-changed\", z);\n    };\n    function x(y) {\n        if (y.thread) {\n            return l.getClientThreadIDNow(y.thread)\n        };\n        if ((y.type === \"typ\")) {\n            return m.getThreadIdForUser(y.from)\n        };\n        return null;\n    };\n    g.subscribe([h.getArbiterType(\"typ\"),h.getArbiterType(\"ttyp\"),], function(y, z) {\n        var aa = z.obj, ba = x(aa);\n        if (ba) {\n            var ca = j.getIDForUser(aa.from);\n            if ((aa.st == n.TYPING)) {\n                q[ba] = (q[ba] || {\n                });\n                var da = q[ba][ca];\n                q[ba][ca] = Date.now();\n                if (!p) {\n                    p = o(u, 3000);\n                };\n                (!da && w(ba));\n            }\n             else if ((aa.st == n.INACTIVE)) {\n                v(ba, ca);\n            }\n        ;\n        }\n    ;\n    });\n    l.subscribe(\"update-typing-state\", function(y, z) {\n        var aa = z.payload_source;\n        if (((aa != k.CLIENT_CHANNEL_MESSAGE) && (aa != k.SERVER_ZAP))) {\n            return\n        };\n        var ba = z.actions;\n        if ((!ba || !ba.length)) {\n            return\n        };\n        var ca = i.USER_GENERATED_MESSAGE;\n        ba.forEach(function(da) {\n            if (((da.action_type == ca) && (da.author != j.user))) {\n                v(da.thread_id, da.author);\n            };\n        });\n    });\n    e.exports = s;\n});\n__d(\"formatUnixTimestamp\", [\"formatDate\",], function(a, b, c, d, e, f) {\n    var g = b(\"formatDate\");\n    function h(i, j, k, l) {\n        var m = new Date((i * 1000));\n        return g(m, j, k, l);\n    };\n    e.exports = h;\n});\n__d(\"MercuryIndicatorController\", [\"ArbiterMixin\",\"DOM\",\"MercuryActionTypeConstants\",\"MercuryConfig\",\"MercuryDelayedRoger\",\"MercuryMessageSourceTags\",\"MercuryParticipants\",\"MercuryRoger\",\"MercuryThreads\",\"MercuryTypingReceiver\",\"DateFormatConfig\",\"arrayContains\",\"copyProperties\",\"formatUnixTimestamp\",\"removeFromArray\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"MercuryActionTypeConstants\"), j = b(\"MercuryConfig\"), k = b(\"MercuryDelayedRoger\"), l = b(\"MercuryMessageSourceTags\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryRoger\"), o = b(\"MercuryThreads\").get(), p = b(\"MercuryTypingReceiver\"), q = b(\"DateFormatConfig\"), r = b(\"arrayContains\"), s = b(\"copyProperties\"), t = b(\"formatUnixTimestamp\"), u = b(\"removeFromArray\"), v = b(\"tx\"), w = [];\n    function x(y) {\n        this._threadID = y;\n        this._canonicalUser = o.getCanonicalUserInThread(y);\n        w.push(this);\n    };\n    s(x.prototype, g, {\n        destroy: function() {\n            u(w, this);\n        },\n        setLastMessage: function(y) {\n            this._lastMsg = y;\n            this._handleStateChange();\n        },\n        _informStateChanged: function(y) {\n            if (((y.activity == \"none\") && (this._currentActivity == \"none\"))) {\n                return\n            };\n            if ((this._lastMsg && m.isAuthor(this._lastMsg.author))) {\n                y.self_authored = true;\n            };\n            this._currentActivity = y.activity;\n            this.inform(\"state-changed\", y);\n        },\n        _notifySentFrom: function() {\n            var y, z, aa = this._lastMsg.location_text, ba = (this._lastMsg.source_tags || []);\n            if (aa) {\n                y = v._(\"Sent from {location}\", {\n                    location: aa\n                });\n                z = \"sentFromMobile\";\n            }\n             else if (r(ba, l.MESSENGER)) {\n                y = h.create(\"a\", {\n                    href: \"/mobile/messenger\",\n                    class: \"fcg\",\n                    target: \"_blank\"\n                }, \"Sent from Messenger\");\n                z = \"sentFromMobile\";\n            }\n             else if (r(ba, l.MOBILE)) {\n                y = h.create(\"a\", {\n                    href: \"/mobile\",\n                    class: \"fcg\",\n                    target: \"_blank\"\n                }, \"Sent from Mobile\");\n                z = \"sentFromMobile\";\n            }\n             else if (r(ba, l.EMAIL)) {\n                y = \"Sent from email\";\n                z = \"sentFromEmail\";\n            }\n             else {\n                this._informStateChanged({\n                    activity: \"none\"\n                });\n                return;\n            }\n            \n            \n            \n        ;\n            this._informStateChanged({\n                activity: z,\n                text: y\n            });\n        },\n        _notifySeenTimestamp: function(y) {\n            var z = (n.getSeenTimestamp(this._threadID, y[0]) * 44405), aa = (Date.now() * 44424);\n            if ((z < (aa - 518400))) {\n                ba = \"M j\";\n            }\n             else if ((z < (aa - 86400))) {\n                ba = \"D g:ia\";\n            }\n             else ba = \"g:ia\";\n            \n        ;\n            var ba = (q.formats[ba] || ba), ca = t(z, ba, false, true);\n            this._informStateChanged({\n                activity: \"seen-timestamp\",\n                text: v._(\"Seen {timestamp}\", {\n                    timestamp: ca\n                })\n            });\n        },\n        _checkNamesForCollision: function(y, z) {\n            var aa = false;\n            m.getMulti(y, function(ba) {\n                function ca(fa) {\n                    if ((typeof ba[fa] !== \"undefined\")) {\n                        return ba[fa].short_name.toLowerCase();\n                    }\n                     else return fa\n                ;\n                };\n                var da = z.map(ca), ea = y.map(ca);\n                aa = da.some(function(fa) {\n                    return (ea.indexOf(fa) !== ea.lastIndexOf(fa));\n                });\n            });\n            return aa;\n        },\n        _notifySeenBy: function(y) {\n            var z = this._lastMsg, aa = true;\n            m.getMulti(y, function(ba) {\n                aa = false;\n                if ((this._lastMsg != z)) {\n                    return\n                };\n                var ca = o.getThreadMetaNow(this._threadID), da = (ca ? ca.participants.length : 0), ea = (y.length + ((z.author != m.user))), fa, ga = false, ha = false, ia = ((da > 2) && (ea >= (da - 1)));\n                if ((!(ia) && (da > 0))) {\n                    ha = this._checkNamesForCollision(ca.participants, y);\n                };\n                if (ia) {\n                    fa = \"Seen by everyone\";\n                }\n                 else if ((y.length == 1)) {\n                    fa = v._(\"Seen by {user}\", {\n                        user: ba[y[0]].short_name\n                    });\n                }\n                 else if ((y.length == 2)) {\n                    fa = v._(\"Seen by {user1}, {user2}\", {\n                        user1: ba[y[0]].short_name,\n                        user2: ba[y[1]].short_name\n                    });\n                }\n                 else if ((y.length == 3)) {\n                    fa = v._(\"Seen by {user1}, {user2}, {user3}\", {\n                        user1: ba[y[0]].short_name,\n                        user2: ba[y[1]].short_name,\n                        user3: ba[y[2]].short_name\n                    });\n                }\n                 else if ((y.length > 3)) {\n                    var ja = (Object.keys(ba).length - 2), ka = v._(\"{num} more\", {\n                        num: ja\n                    }), la = h.create(\"span\", {\n                        className: \"more\"\n                    }, ka);\n                    fa = h.tx._(\"Seen by {user1}, {user2}, {=num more link}\", {\n                        user1: ba[y[0]].short_name,\n                        user2: ba[y[1]].short_name,\n                        \"=num more link\": la\n                    });\n                    ga = true;\n                }\n                \n                \n                \n                \n            ;\n                ga = (ga || ha);\n                this._informStateChanged({\n                    activity: \"seen-by\",\n                    text: fa,\n                    seenBy: y,\n                    hasNameCollision: ha,\n                    tooltip: ga\n                });\n            }.bind(this));\n            (aa && this._informStateChanged({\n                activity: \"none\"\n            }));\n        },\n        _notifyTyping: function(y) {\n            var z = this._lastMsg, aa = true;\n            m.getMulti(y, function(ba) {\n                aa = false;\n                if ((this._lastMsg != z)) {\n                    return\n                };\n                if ((this._canonicalUser || j.ChatMultiTypGK)) {\n                    var ca = o.getThreadMetaNow(this._threadID), da = (ca ? ca.participants.length : 0), ea, fa = false;\n                    if (((da > 2) && (y.length >= (da - 1)))) {\n                        ea = \"Everyone is typing...\";\n                    }\n                     else if ((y.length == 1)) {\n                        ea = v._(\"{name} is typing...\", {\n                            name: ba[y[0]].short_name\n                        });\n                    }\n                     else if ((y.length == 2)) {\n                        ea = v._(\"{user1} and {user2} are typing...\", {\n                            user1: ba[y[0]].short_name,\n                            user2: ba[y[1]].short_name\n                        });\n                    }\n                     else if ((y.length == 3)) {\n                        ea = v._(\"{user1}, {user2}, and {user3} are typing...\", {\n                            user1: ba[y[0]].short_name,\n                            user2: ba[y[1]].short_name,\n                            user3: ba[y[2]].short_name\n                        });\n                    }\n                     else if ((y.length > 3)) {\n                        var ga = (Object.keys(ba).length - 2), ha = v._(\"{num} more\", {\n                            num: ga\n                        }), ia = h.create(\"a\", {\n                            href: \"#\"\n                        }, ha);\n                        ea = h.tx._(\"{user1}, {user2}, and {=num more link} are typing...\", {\n                            user1: ba[y[0]].short_name,\n                            user2: ba[y[1]].short_name,\n                            \"=num more link\": ia\n                        });\n                        fa = true;\n                    }\n                    \n                    \n                    \n                    \n                ;\n                    this._informStateChanged({\n                        activity: \"typing\",\n                        text: ea,\n                        typing: y,\n                        tooltip: fa\n                    });\n                }\n            ;\n            }.bind(this));\n            (aa && this._informStateChanged({\n                activity: \"none\"\n            }));\n        },\n        _handleStateChange: function() {\n            var y = i.LOG_MESSAGE;\n            if ((!this._lastMsg || (this._lastMsg.action_type == y))) {\n                this._informStateChanged({\n                    activity: \"none\"\n                });\n                return;\n            }\n        ;\n            if ((this._typing && this._typing.length)) {\n                this._notifyTyping(this._typing);\n                return;\n            }\n        ;\n            if ((this._canonicalUser && (this._lastMsg.author != m.user))) {\n                this._notifySentFrom();\n                return;\n            }\n        ;\n            var z = k.getSeenBy(this._threadID, true);\n            if (z.length) {\n                if (this._canonicalUser) {\n                    this._notifySeenTimestamp(z);\n                    return;\n                }\n                 else {\n                    this._notifySeenBy(z);\n                    return;\n                }\n            \n            };\n            this._informStateChanged({\n                activity: \"none\"\n            });\n        }\n    });\n    p.subscribe(\"state-changed\", function(y, z) {\n        w.forEach(function(aa) {\n            var ba = z[aa._threadID];\n            if ((ba !== undefined)) {\n                aa._typing = ba;\n                aa._handleStateChange();\n            }\n        ;\n        });\n    });\n    k.subscribe(\"state-changed\", function(y, z) {\n        w.forEach(function(aa) {\n            (z[aa._threadID] && aa._handleStateChange());\n        });\n    });\n    e.exports = x;\n});\n__d(\"MercuryLastMessageIndicator\", [\"CSS\",\"MercuryIndicatorController\",\"DOM\",\"MercuryParticipants\",\"Tooltip\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"MercuryIndicatorController\"), i = b(\"DOM\"), j = b(\"MercuryParticipants\"), k = b(\"Tooltip\"), l = b(\"copyProperties\"), m = b(\"csx\"), n = b(\"cx\");\n    function o(p, q, r, s) {\n        this._lastMessageIndicator = q;\n        this._hideTyping = (r || false);\n        this._messagesView = s;\n        this._controller = new h(p);\n        this._subscription = this._controller.subscribe(\"state-changed\", this._handleStateChanged.bind(this));\n    };\n    l(o.prototype, {\n        destroy: function() {\n            this._setClass(null);\n            this._subscription.unsubscribe();\n            this._controller.destroy();\n        },\n        setLastMessage: function(p) {\n            this._controller.setLastMessage(p);\n        },\n        _handleStateChanged: function(p, q) {\n            var r = this._messagesView.isScrolledToBottom();\n            this._rerender(q);\n            (r && this._messagesView.scrollToBottom());\n        },\n        _rerender: function(p) {\n            if ((p.activity == \"none\")) {\n                this._setClass(null);\n                return;\n            }\n        ;\n            if ((this._hideTyping && (p.activity == \"typing\"))) {\n                this._setClass(null);\n                return;\n            }\n        ;\n            g.conditionClass(this._lastMessageIndicator, \"_510e\", p.self_authored);\n            var q = i.find(this._lastMessageIndicator, \"._510f\");\n            if (p.text) {\n                i.setContent(q, p.text);\n            }\n             else i.empty(q);\n        ;\n            if ((p.activity.substring(0, 4) == \"seen\")) {\n                this._setClass(\"seen\");\n                if (((p.activity == \"seen-by\") && p.tooltip)) {\n                    j.getMulti(p.seenBy, function(r) {\n                        var s = i.create(\"div\");\n                        for (var t in r) {\n                            var u = i.create(\"div\");\n                            i.setContent(u, r[t].name);\n                            i.appendContent(s, u);\n                        };\n                        var v = p.hasNameCollision, w;\n                        if (v) {\n                            w = this._lastMessageIndicator;\n                        }\n                         else w = i.find(this._lastMessageIndicator, \"span.more\");\n                    ;\n                        k.set(w, s, \"above\", \"center\");\n                    }.bind(this));\n                }\n                 else k.remove(this._lastMessageIndicator);\n            ;\n            }\n             else this._setClass(p.activity);\n        ;\n        },\n        _setClass: function(p) {\n            if ((this._lastClass === p)) {\n                return\n            };\n            (this._lastClass && g.removeClass(this._lastMessageIndicator, this._lastClass));\n            (p && g.addClass(this._lastMessageIndicator, p));\n            this._lastClass = p;\n        }\n    });\n    e.exports = o;\n});\n__d(\"MercuryStateCheck\", [\"Arbiter\",\"ChannelConstants\",\"MercuryFolders\",\"MessagingTag\",\"MercuryServerRequests\",\"URI\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"MercuryFolders\"), j = b(\"MessagingTag\"), k = b(\"MercuryServerRequests\").get(), l = b(\"URI\"), m = b(\"copyProperties\"), n = m(new g(), {\n        initialize: function() {\n            g.subscribe(h.ON_INVALID_HISTORY, o);\n            d([\"ChannelConnection\",], function(p) {\n                p.subscribe(p.CONNECTED, function(q, r) {\n                    if (!r.init) {\n                        o();\n                    };\n                });\n            });\n        }\n    });\n    function o() {\n        var p;\n        if ((l.getRequestURI().getPath().search(/messages/) !== -1)) {\n            p = i.getSupportedFolders();\n        }\n         else p = [j.INBOX,];\n    ;\n        k.fetchMissedMessages(p);\n    };\n    n.initialize();\n    e.exports = n;\n});\n__d(\"MercuryAttachmentRenderer\", [\"MercuryAttachmentTemplates\",\"MercuryAttachmentAudioClip.react\",\"CSS\",\"MercuryConstants\",\"DOM\",\"Image.react\",\"JSXDOM\",\"MercuryAttachment\",\"MercuryAttachmentType\",\"MercuryMessages\",\"MercuryParticipants\",\"React\",\"Style\",\"URI\",\"UserAgent\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAttachmentTemplates\"), h = b(\"MercuryAttachmentAudioClip.react\"), i = b(\"CSS\"), j = b(\"MercuryConstants\"), k = b(\"DOM\"), l = b(\"Image.react\"), m = b(\"JSXDOM\"), n = b(\"MercuryAttachment\"), o = b(\"MercuryAttachmentType\"), p = b(\"MercuryMessages\").get(), q = b(\"MercuryParticipants\"), r = b(\"React\"), s = b(\"Style\"), t = b(\"URI\"), u = b(\"UserAgent\"), v = b(\"cx\"), w = b(\"tx\"), x = (u.ie() <= 8);\n    function y(ba, ca) {\n        var da = g[ca].build().setNodeContent(\"filename\", ba.name), ea = da.getNode(\"link\");\n        ea.setAttribute(\"href\", ba.url);\n        (ba.rel && ea.setAttribute(\"rel\", ba.rel));\n        i.addClass(da.getRoot(), n.getAttachIconClass(ba.icon_type));\n        return da;\n    };\n    function z(ba, ca) {\n        var da = g[ca].build().setNodeContent(\"filename\", ba.name);\n        i.addClass(da.getRoot(), n.getAttachIconClass(ba.icon_type));\n        return da;\n    };\n    var aa = {\n        renderAttachment: function(ba, ca, da, ea, fa) {\n            var ga = 100, ha = (ba ? 160 : 400), ia = ca.attach_type, ja = null, ka = null, la = true, ma = j.MercurySupportedShareType;\n            if ((ia == o.ERROR)) {\n                ja = aa.renderError(ca);\n            };\n            if (((!ba && (ia == o.SHARE)) && ca.share_xhp)) {\n                ka = aa.renderShareXHP(ca, da.id);\n            };\n            if ((ia == o.STICKER)) {\n                la = false;\n                ka = aa.renderSticker(ca);\n            }\n        ;\n            if ((!ka && (ia == o.SHARE))) {\n                var na = ca.share_data_type;\n                switch (na) {\n                  case ma.FB_PHOTO:\n                    ka = aa.renderPreview(ca, da, ea, fa);\n                    break;\n                  case ma.FB_VIDEO:\n                    ka = aa.renderVideoThumb(ca);\n                    break;\n                  case ma.FB_MUSIC_ALBUM:\n                \n                  case ma.FB_SONG:\n                \n                  case ma.FB_PLAYLIST:\n                \n                  case ma.FB_MUSICIAN:\n                \n                  case ma.FB_RADIO_STATION:\n                    ka = aa.renderMusic(ca);\n                    break;\n                  case ma.EXTERNAL:\n                \n                  case ma.FB_TEMPLATE:\n                \n                  case ma.FB_COUPON:\n                \n                  case ma.FB_SOCIAL_REPORT_PHOTO:\n                    ka = aa.renderExternalLink(ca);\n                    break;\n                  default:\n                    if (ca.name) {\n                        ka = aa.renderShareLink(ca, (da && da.id), ba);\n                    };\n                    break;\n                };\n            }\n        ;\n            if ((!ka && ca.preview_loading)) {\n                ka = aa.renderPreview(null);\n            };\n            if ((!ka && ca.preview_url)) {\n                ka = aa.renderPreview(ca, da, ea, fa);\n            };\n            if ((!ka && (ia == o.FILE))) {\n                if ((ca.metadata && (ca.metadata.type == j.MercuryAttachmentAudioClip))) {\n                    ka = k.create(\"div\");\n                    var oa = aa.renderAudioClip(ca, da.message_id, ga, ha);\n                    r.renderComponent(oa, ka);\n                }\n                 else ka = (ba ? aa.renderFileLink(ca) : aa.renderExtendedFileLink(ca));\n            \n            };\n            return {\n                error: ja,\n                content: ka,\n                bubblePreferred: la\n            };\n        },\n        renderError: function(ba) {\n            var ca = g[\":fb:mercury:attachment:error\"].build();\n            k.appendContent(ca.getNode(\"error\"), ba.error_msg);\n            return ca.getRoot();\n        },\n        renderExternalLink: function(ba) {\n            var ca = g[\":fb:mercury:attachment:external-link\"].build().setNodeContent(\"name\", ba.name);\n            (ba.base_url && ca.setNodeContent(\"shortLink\", ba.base_url));\n            var da = ca.getNode(\"preview\"), ea = ca.getNode(\"image-link\");\n            ea.setAttribute(\"href\", ba.url);\n            (ba.rel && ea.setAttribute(\"rel\", ba.rel));\n            if (ba.preview_url) {\n                var fa = ca.getNode(\"preview-image\");\n                fa.setAttribute(\"src\", ba.preview_url);\n                i.addClass(da, ba.preview_class);\n                i.show(fa);\n            }\n             else {\n                i.addClass(ca.getRoot(), \"noMedia\");\n                i.hide(da);\n            }\n        ;\n            ca.getNode(\"name\").setAttribute(\"href\", ba.url);\n            d([\"LinkshimHandler\",], function(ga) {\n                ga.setUpLinkshimHandling(ca.getNode(\"name\"));\n                ga.setUpLinkshimHandling(ca.getNode(\"image-link\"));\n            });\n            if (ba.rel) {\n                ca.getNode(\"name\").setAttribute(\"rel\", ba.rel);\n            };\n            return ca.getRoot();\n        },\n        renderFileLink: function(ba) {\n            var ca = null;\n            if ((ba.url === \"\")) {\n                ca = \":fb:mercury:attachment:file-name\";\n                return z(ba, ca).getRoot();\n            }\n             else {\n                ca = \":fb:mercury:attachment:file-link\";\n                return y(ba, ca).getRoot();\n            }\n        ;\n        },\n        renderAudioClip: function(ba, ca, da, ea) {\n            var fa = (ba.metadata.duration / 1000), ga = 200;\n            if ((da && ea)) {\n                if ((fa < 5)) {\n                    ga = da;\n                }\n                 else ga = ((((1 - Math.pow(10, (((fa - 5)) / -30)))) * ((ea - da))) + da);\n            \n            };\n            return h({\n                src: ba.url,\n                duration: (ba.metadata.duration / 1000),\n                showHelp: false,\n                width: ga\n            });\n        },\n        renderExtendedFileLink: function(ba) {\n            var ca = null;\n            if ((ba.url === \"\")) {\n                ca = \":fb:mercury:attachment:file-name\";\n                return z(ba, ca).getRoot();\n            }\n        ;\n            var ca = \":fb:mercury:attachment:extended-file-link\", da = y(ba, ca);\n            if (ba.open_url) {\n                var ea = da.getNode(\"openLinkContainer\");\n                i.show(ea);\n                var fa = da.getNode(\"openFile\");\n                fa.setAttribute(\"href\", ba.open_url);\n            }\n        ;\n            var ga = da.getNode(\"downloadFile\");\n            ga.setAttribute(\"href\", ba.url);\n            (ba.rel && ga.setAttribute(\"rel\", ba.rel));\n            return da.getRoot();\n        },\n        renderMusic: function(ba) {\n            var ca = g[\":fb:mercury:attachment:music\"].build().setNodeContent(\"filename\", ba.name), da = ca.getNode(\"link\");\n            da.setAttribute(\"href\", ba.url);\n            da.setAttribute(\"target\", \"_blank\");\n            (ba.rel && da.setAttribute(\"rel\", ba.rel));\n            var ea = ca.getNode(\"image-link\");\n            ea.setAttribute(\"href\", ba.url);\n            (ba.rel && ea.setAttribute(\"rel\", ba.rel));\n            var fa = ca.getNode(\"preview-image\");\n            fa.setAttribute(\"src\", ba.preview_url);\n            i.show(fa);\n            i.addClass(ca.getNode(\"icon_link\"), \"MercuryMusicIcon\");\n            return ca.getRoot();\n        },\n        resizeContain: function(ba, ca) {\n            var da = (ba.width / ba.height), ea = (ca.width / ca.height);\n            if ((ea < da)) {\n                return {\n                    width: Math.min((ba.height * ea), ca.width),\n                    height: Math.min(ba.height, ca.height)\n                };\n            }\n             else return {\n                width: Math.min(ba.width, ca.width),\n                height: Math.min((ba.width / ea), ca.height)\n            }\n        ;\n        },\n        renderPreview: function(ba, ca, da, ea) {\n            var fa = g[\":fb:mercury:attachment:preview\"].build(), ga = fa.getNode(\"image-link\");\n            if (ba) {\n                (ba.url && ga.setAttribute(\"href\", ba.url));\n                (ba.rel && ga.setAttribute(\"rel\", ba.rel));\n                var ha;\n                if (ba.preview_uploading) {\n                    i.addClass(ga, \"_57jm\");\n                    if ((da >= 176)) {\n                        ha = \"/images/photos/dots_large.png\";\n                    }\n                     else if ((da >= 86)) {\n                        ha = \"/images/photos/dots_medium.png\";\n                    }\n                     else ha = \"/images/photos/dots_small.png\";\n                    \n                ;\n                    s.set(ga, \"width\", (da + \"px\"));\n                    s.set(ga, \"max-width\", (da + \"px\"));\n                    if ((ba.preview_width && ba.preview_height)) {\n                        s.set(ga, \"padding-bottom\", (((((ba.preview_height / ba.preview_width)) * 100)) + \"%\"));\n                    };\n                }\n                 else if ((ba.metadata && ba.metadata.fbid)) {\n                    ha = t(\"/ajax/mercury/attachments/photo.php\").addQueryData({\n                        fbid: ba.metadata.fbid,\n                        mode: ea,\n                        width: da,\n                        height: da\n                    }).toString();\n                }\n                 else ha = t(ba.preview_url).addQueryData({\n                    mode: ea,\n                    width: da,\n                    height: da\n                }).toString();\n                \n            ;\n                var ia = fa.getNode(\"preview-image\");\n                if (ha) {\n                    if ((((ea === \"contain\") && ba.preview_width) && ba.preview_height)) {\n                        var ja = aa.resizeContain({\n                            width: da,\n                            height: da\n                        }, {\n                            width: ba.preview_width,\n                            height: ba.preview_height\n                        });\n                        ia.setAttribute(\"width\", ja.width);\n                        ia.setAttribute(\"height\", ja.height);\n                    }\n                ;\n                    if ((ba.preview_uploading || (((ea === \"cover\") && !x)))) {\n                        i.addClass(ga, \"_55pj\");\n                        s.set(ga, \"backgroundImage\", ((\"url(\" + ha) + \")\"));\n                    }\n                     else {\n                        ia.onload = function() {\n                            ia.removeAttribute(\"width\");\n                            ia.removeAttribute(\"height\");\n                        };\n                        ia.setAttribute(\"src\", ha);\n                    }\n                ;\n                }\n            ;\n                if (ca) {\n                    this.renderReportRespondLink(fa.getRoot(), ba, ca.message_id);\n                };\n            }\n             else i.addClass(ga, \"_ksa\");\n        ;\n            return fa.getRoot();\n        },\n        renderShareLink: function(ba, ca, da) {\n            var ea = g[\":fb:mercury:attachment:share-link\"].build().setNodeContent(\"name\", ba.name), fa = ea.getNode(\"link\");\n            fa.setAttribute(\"href\", ba.url);\n            (ba.rel && fa.setAttribute(\"rel\", ba.rel));\n            return ea.getRoot();\n        },\n        renderVideoThumb: function(ba) {\n            var ca = g[\":fb:mercury:attachment:video-thumb\"].build(), da = ca.getNode(\"thumb\");\n            da.setAttribute(\"href\", ba.url);\n            da.setAttribute(\"rel\", ba.rel);\n            var ea = k.find(ca.getRoot(), \"img\");\n            ea.src = ba.preview_url;\n            return ca.getRoot();\n        },\n        renderShareXHP: function(ba, ca) {\n            var da = k.create(\"div\");\n            if (ba) {\n                k.appendContent(da, ba.share_xhp);\n                this.renderReportRespondLink(da, ba, ca);\n            }\n        ;\n            return da;\n        },\n        renderSticker: function(ba) {\n            var ca = k.create(\"div\"), da = {\n                uri: ba.url,\n                width: ba.metadata.width,\n                height: ba.metadata.height\n            }, ea = l({\n                className: \"mvs\",\n                src: da\n            });\n            r.renderComponent(ea, ca);\n            return ca;\n        },\n        renderReportRespondLink: function(ba, ca, da) {\n            if (!ca.is_social_report_attachment) {\n                return null\n            };\n            switch (ca.share_data_type) {\n              case j.MercurySupportedShareType.FB_PHOTO:\n                break;\n              case j.MercurySupportedShareType.FB_SOCIAL_REPORT_PHOTO:\n                return null;\n              default:\n                return null;\n            };\n            var ea = null;\n            if (da) {\n                ea = p.getMessagesFromIDs([da,])[0];\n            };\n            if (!ea) {\n                return null\n            };\n            if ((ea.author === q.user)) {\n                return null\n            };\n            var fa = null;\n            q.get(ea.author, function(ga) {\n                fa = k.create(\"a\", {\n                    rel: \"dialog-post\",\n                    className: \"_z6l\",\n                    id: \"respond-link\",\n                    ajaxify: t(\"/ajax/report/social_resolution/photo/\").setQueryData({\n                        attachment_fbid: ca.attach_id,\n                        photo_fbid: ca.shared_object_id,\n                        sender_id: q.getUserID(ga.id)\n                    }).toString()\n                });\n                k.setContent(fa, w._(\"Respond to {name}'s request\", {\n                    name: ga.name\n                }));\n                k.appendContent(ba, fa);\n            });\n        },\n        renderPhotoAttachments: function(ba, ca, da, ea) {\n            var fa = ba.length;\n            if (!fa) {\n                return null\n            };\n            var ga = m.div({\n                className: \"_55pk\"\n            }), ha = (m.div({\n                className: \"_55pl\"\n            }, ga));\n            if ((fa === 1)) {\n                var ia = aa.renderPreview(ba[0], ca, da, \"contain\");\n                k.appendContent(ga, ia);\n                return ha;\n            }\n        ;\n            var ja = ((((fa == 2) || (fa == 4))) ? 2 : 3), ka = (((da - (((ja - 1)) * ea))) / ja), la = Math.ceil((fa / ja)), ma = ((la * ka) + (((la - 1)) * ea)), na = (m.div({\n                className: \"_55pm\",\n                style: ((\"padding-bottom: \" + (((ma / da) * 100))) + \"%;\")\n            }));\n            k.appendContent(ga, na);\n            for (var oa = 0; (oa < fa); ++oa) {\n                var pa = aa.renderPreview(ba[oa], ca, ka, \"cover\"), qa = (oa % ja), ra = Math.floor((oa / ja));\n                i.addClass(pa, \"_55pn\");\n                s.apply(pa, {\n                    width: ((((ka / da) * 100)) + \"%\"),\n                    left: ((((((qa * ((ka + ea)))) / da) * 100)) + \"%\"),\n                    top: ((((((ra * ((ka + ea)))) / ma) * 100)) + \"%\")\n                });\n                k.appendContent(na, pa);\n            };\n            return ha;\n        },\n        isPhotoAttachment: function(ba) {\n            return ((ba.attach_type == o.PHOTO) || (((ba.attach_type == o.FILE) && ba.preview_url)));\n        },\n        isShareAttachment: function(ba) {\n            return (ba.attach_type == o.SHARE);\n        },\n        isFileAttachment: function(ba) {\n            return (ba.attach_type == o.FILE);\n        },\n        isErrorAttachment: function(ba) {\n            return (ba.attach_type == o.ERROR);\n        },\n        booleanLexicographicComparator: function(ba) {\n            return function(ca, da) {\n                for (var ea = 0; (ea < ba.length); ++ea) {\n                    var fa = ba[ea](ca), ga = ba[ea](da);\n                    if ((fa && !ga)) {\n                        return -1;\n                    }\n                     else if ((!fa && ga)) {\n                        return 1\n                    }\n                ;\n                };\n                return 0;\n            };\n        }\n    };\n    e.exports = aa;\n});\n__d(\"URLScraper\", [\"ArbiterMixin\",\"DataStore\",\"Event\",\"URLMatcher\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DataStore\"), i = b(\"Event\"), j = b(\"URLMatcher\"), k = b(\"copyProperties\"), l = \"scraperLastPermissiveMatch\";\n    function m(n) {\n        this.input = n;\n        this.enable();\n    };\n    k(m.prototype, g, {\n        reset: function() {\n            h.set(this.input, l, null);\n        },\n        enable: function() {\n            if (this.events) {\n                return\n            };\n            var n = function(o) {\n                setTimeout(this.check.bind(this, o), 30);\n            };\n            this.events = i.listen(this.input, {\n                paste: n.bind(this, false),\n                keydown: n.bind(this, true)\n            });\n        },\n        disable: function() {\n            if (!this.events) {\n                return\n            };\n            for (var event in this.events) {\n                this.events[event].remove();;\n            };\n            this.events = null;\n        },\n        check: function(n) {\n            var o = this.input.value;\n            if ((n && m.trigger(o))) {\n                return\n            };\n            var p = m.match(o), q = j.permissiveMatch(o);\n            if ((q && ((q != h.get(this.input, l))))) {\n                h.set(this.input, l, q);\n                this.inform(\"match\", {\n                    url: (p || q),\n                    alt_url: q\n                });\n            }\n        ;\n        }\n    });\n    k(m, j);\n    e.exports = m;\n});\n__d(\"htmlHyperlink\", [\"Env\",\"htmlize\",\"UntrustedLink\",\"URI\",\"URLScraper\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"htmlize\"), i = b(\"UntrustedLink\"), j = b(\"URI\"), k = b(\"URLScraper\"), l = b(\"cx\");\n    function m(n, o, p, q) {\n        if (((typeof n === \"undefined\") || !n.toString)) {\n            return \"\"\n        };\n        if ((typeof o !== \"function\")) {\n            o = h;\n        };\n        if ((typeof p !== \"function\")) {\n            p = h;\n        };\n        var n = n.toString(), r = [], s;\n        while ((s = k.match(n))) {\n            var t = n.indexOf(s);\n            if ((t >= 0)) {\n                r.push(o(n.substring(0, t)));\n            };\n            var u = p(s), v = s.replace(/\"/g, \"%22\");\n            if (!(/^[a-z][a-z0-9\\-+.]+:\\/\\//i.test(s))) {\n                v = (\"http://\" + v);\n            };\n            if (j.isValidURI(v)) {\n                r.push(((((((\"\\u003Ca target=\\\"_blank\\\" rel=\\\"nofollow\\\" \" + \"class=\\\"\") + \"_553k\") + \"\\\" \") + \"href=\\\"\") + v) + \"\\\"\"));\n                if ((q && !j(v).isFacebookURI())) {\n                    a.UntrustedLink = i;\n                    r.push(((\" onmousedown=\\\"UntrustedLink.bootstrap(this, '\" + g.lhsh) + \"', event)\\\"\"));\n                }\n            ;\n                r.push(((\"\\u003E\" + u) + \"\\u003C/a\\u003E\"));\n            }\n             else r.push(u);\n        ;\n            n = n.substring((t + s.length));\n        };\n        (n && r.push(o(n)));\n        return r.join(\"\");\n    };\n    e.exports = m;\n});\n__d(\"MercuryMessageRenderer\", [\"MercuryAttachmentRenderer\",\"CSS\",\"DOM\",\"DOMQuery\",\"HTML\",\"MercuryEmoji\",\"MercuryLogMessageType\",\"MercuryParticipants\",\"Tooltip\",\"cx\",\"htmlHyperlink\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAttachmentRenderer\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"HTML\"), l = b(\"MercuryEmoji\"), m = b(\"MercuryLogMessageType\"), n = b(\"MercuryParticipants\"), o = b(\"Tooltip\"), p = b(\"cx\"), q = b(\"htmlHyperlink\"), r = b(\"tx\"), s = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",], t = {\n        renderDate: function(ma) {\n            var na = new Date();\n            na.setHours(0);\n            na.setMinutes(0);\n            na.setSeconds(0);\n            na.setMilliseconds(0);\n            var oa = (((24 * 60) * 60) * 1000), pa = (na.getTime() - ma.getTime());\n            if ((pa <= 0)) {\n                return \"Today\";\n            }\n             else if ((pa < oa)) {\n                return \"Yesterday\"\n            }\n        ;\n            var qa = s[ma.getMonth()], ra = ma.getDate(), sa = ma.getFullYear();\n            if ((sa != na.getFullYear())) {\n                return r._(\"{month} {date}, {year}\", {\n                    month: qa,\n                    date: ra,\n                    year: sa\n                });\n            }\n             else return r._(\"{month} {date}\", {\n                month: qa,\n                date: ra\n            })\n        ;\n        },\n        renderTooltipFlyout: function(ma, na) {\n            na.forEach(function(oa) {\n                var pa = i.create(\"div\");\n                i.setContent(pa, oa.name);\n                i.appendContent(ma, pa);\n            });\n        },\n        renderLogMessage: function(ma, na, oa, pa) {\n            w(ma, pa);\n            x(na, pa);\n            y(oa, pa);\n        },\n        formatMessageBody: function(ma, na, oa) {\n            var pa = ((ma || \"\")).replace(/\\s+$/, \"\");\n            if (!na) {\n                return v(pa, false, oa)\n            };\n            var qa = Object.keys(na).map(function(ta) {\n                return window.parseInt(ta);\n            }).sort(function(ta, ua) {\n                return (ta - ua);\n            }), ra = [], sa = 0;\n            qa.forEach(function(ta) {\n                var ua = pa.slice(sa, ta);\n                if (ua) {\n                    ra.push(v(ua, false, oa));\n                };\n                sa = (ta + na[ta].length);\n                var va = pa.slice(ta, sa);\n                if (va) {\n                    ra.push(v(va, true, oa));\n                };\n            });\n            if ((sa < pa.length)) {\n                ra.push(v(pa.slice(sa), false, oa));\n            };\n            return ((ra.length === 0) ? null : ((ra.length === 1) ? ra[0] : i.create(\"span\", {\n            }, ra)));\n        }\n    };\n    function u(ma, na) {\n        var oa = ma.replace(/\\r\\n?/g, \"\\u000a\").split(/\\n{2,}/), pa = [];\n        for (var qa = 0; (qa < oa.length); qa++) {\n            var ra = oa[qa];\n            if (ra.length) {\n                pa.push(\"\\u003Cp\\u003E\");\n                pa.push(na(ra));\n                pa.push(\"\\u003C/p\\u003E\");\n            }\n        ;\n        };\n        return pa.join(\"\");\n    };\n    function v(ma, na, oa) {\n        var pa = null;\n        if (((ma.length === 0) && !na)) {\n            return pa\n        };\n        function qa(ra) {\n            return q(ra, l.htmlEmojiAndEmote, null, true);\n        };\n        pa = (oa ? u(ma, qa) : qa(ma));\n        if (na) {\n            return i.create(\"span\", {\n                className: \"highlight\"\n            }, k(pa))\n        };\n        return k(pa);\n    };\n    function w(ma, na) {\n        var oa = \"\", pa;\n        switch (na.log_message_type) {\n          case m.JOINABLE_CREATED:\n        \n          case m.JOINABLE_JOINED:\n        \n          case m.SUBSCRIBE:\n            oa = \"mercurySubscribeIcon\";\n            break;\n          case m.UNSUBSCRIBE:\n            oa = \"mercuryUnsubscribeIcon\";\n            break;\n          case m.THREAD_NAME:\n            oa = \"mercuryThreadNameIcon\";\n            break;\n          case m.THREAD_IMAGE:\n            oa = \"mercuryThreadImageIcon\";\n            break;\n          case m.VIDEO_CALL:\n            pa = na.log_message_data.answered;\n            if ((pa || la(na))) {\n                oa = \"mercuryVideoCallIcon\";\n            }\n             else oa = \"mercuryMissedVideoCallIcon\";\n        ;\n            break;\n          case m.PHONE_CALL:\n            pa = na.log_message_data.answered;\n            if (pa) {\n                oa = \"mercuryPhoneCallIcon\";\n            }\n             else oa = \"mercuryMissedPhoneCallIcon\";\n        ;\n            break;\n          case m.SERVER_ERROR:\n            oa = \"mercuryErrorIcon\";\n            break;\n        };\n        h.addClass(ma, oa);\n    };\n    function x(ma, na) {\n        switch (na.log_message_type) {\n          case m.JOINABLE_CREATED:\n            da(ma, na);\n            break;\n          case m.JOINABLE_JOINED:\n            ea(ma, na);\n            break;\n          case m.SUBSCRIBE:\n            ia(ma, na);\n            break;\n          case m.UNSUBSCRIBE:\n            ja(ma, na);\n            break;\n          case m.VIDEO_CALL:\n            if (la(na)) {\n                z(ma, na);\n            }\n             else ba(ma, na);\n        ;\n            break;\n          case m.PHONE_CALL:\n            aa(ma, na);\n            break;\n          case m.THREAD_NAME:\n            ca(ma, na);\n            break;\n          case m.THREAD_IMAGE:\n            fa(ma, na);\n            break;\n          case m.SERVER_ERROR:\n            ka(ma, na);\n            break;\n        };\n    };\n    function y(ma, na) {\n        var oa = na.log_message_type;\n        if ((oa == m.THREAD_IMAGE)) {\n            var pa = na.log_message_data.image;\n            if (pa) {\n                var qa = g.renderPreview((pa.preview_url ? pa : null));\n                i.setContent(ma, qa);\n                h.addClass(qa, \"_z6a\");\n                h.show(ma);\n            }\n        ;\n        }\n    ;\n    };\n    var z = function(ma, na) {\n        n.get(na.author, function(oa) {\n            var pa = i.create(\"span\", {\n                className: \"_511e\"\n            }, oa.short_name), qa;\n            switch (na.log_message_data.event_name) {\n              case \"installing\":\n                qa = i.tx._(\"{firstname} is setting up video calling...\", {\n                    firstname: pa\n                });\n                break;\n              case \"installed\":\n                qa = i.tx._(\"{firstname} finished setting up video calling.\", {\n                    firstname: pa\n                });\n                break;\n              case \"install_canceled\":\n                qa = i.tx._(\"You canceled the video calling installation. \", {\n                    firstname: pa\n                });\n                break;\n            };\n            if (qa) {\n                i.setContent(ma, qa);\n            };\n        });\n    }, aa = function(ma, na) {\n        var oa = na.log_message_data.caller, pa = na.log_message_data.callee, qa = [oa,pa,];\n        n.getMulti(qa, function(ra) {\n            if ((oa == n.user)) {\n                var sa = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[pa].short_name), ta;\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"You called {firstname}.\", {\n                        firstname: sa\n                    });\n                }\n                 else ta = i.tx._(\"{firstname} missed a call from you. \", {\n                    firstname: sa\n                });\n            ;\n            }\n             else {\n                var ua = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[oa].short_name);\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"{firstname} called you.\", {\n                        firstname: ua\n                    });\n                }\n                 else ta = i.tx._(\"You missed a call from {firstname}. \", {\n                    firstname: ua\n                });\n            ;\n            }\n        ;\n            i.setContent(ma, ta);\n        });\n    }, ba = function(ma, na) {\n        var oa = na.log_message_data.caller, pa = na.log_message_data.callee, qa = [oa,pa,];\n        n.getMulti(qa, function(ra) {\n            if ((oa == n.user)) {\n                var sa = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[pa].short_name), ta;\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"You called {firstname}.\", {\n                        firstname: sa\n                    });\n                }\n                 else ta = i.tx._(\"{firstname} missed a call from you. \", {\n                    firstname: sa\n                });\n            ;\n            }\n             else {\n                var ua = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[oa].short_name);\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"{firstname} called you.\", {\n                        firstname: ua\n                    });\n                }\n                 else ta = i.tx._(\"You missed a call from {firstname}. \", {\n                    firstname: ua\n                });\n            ;\n            }\n        ;\n            i.setContent(ma, ta);\n        });\n    }, ca = function(ma, na) {\n        var oa = na.log_message_data.name, pa = i.create(\"b\", {\n        }, oa);\n        if ((na.author == n.user)) {\n            if (oa) {\n                i.setContent(ma, i.tx._(\"You named the conversation: {name}.\", {\n                    name: pa\n                }));\n            }\n             else i.setContent(ma, i.tx._(\"You removed the conversation name.\"));\n        ;\n        }\n         else n.get(na.author, function(qa) {\n            var ra, sa = ga(qa);\n            if (oa) {\n                ra = i.tx._(\"{actor} named the conversation: {name}.\", {\n                    actor: sa,\n                    name: pa\n                });\n            }\n             else ra = i.tx._(\"{actor} removed the conversation name.\", {\n                actor: sa\n            });\n        ;\n            i.setContent(ma, ra);\n        });\n    ;\n    }, da = function(ma, na) {\n        if ((na.author == n.user)) {\n            i.setContent(ma, i.tx._(\"Other people can join this chat from News Feed and add their friends.\"));\n        }\n         else n.get(na.author, function(oa) {\n            var pa = ga(oa);\n            i.setContent(ma, i.tx._(\"{actor} shared this chat to News Feed. Other people can join and add their friends.\", {\n                actor: pa\n            }));\n        });\n    ;\n    }, ea = function(ma, na) {\n        var oa = na.log_message_data.joined_participant;\n        if ((oa == n.user)) {\n            i.setContent(ma, i.tx._(\"You joined the chat. Other people can join from News Feed and add their friends.\"));\n        }\n         else n.get(oa, function(pa) {\n            var qa = ga(pa);\n            i.setContent(ma, i.tx._(\"{actor} joined the chat.\", {\n                actor: qa\n            }));\n        });\n    ;\n    }, fa = function(ma, na) {\n        if ((na.author == n.user)) {\n            if (na.log_message_data.image) {\n                i.setContent(ma, i.tx._(\"You changed the conversation picture.\"));\n            }\n             else i.setContent(ma, i.tx._(\"You removed the conversation picture.\"));\n        ;\n        }\n         else n.get(na.author, function(oa) {\n            var pa = ga(oa), qa;\n            if (na.log_message_data.image) {\n                qa = i.tx._(\"{actor} changed the conversation picture.\", {\n                    actor: pa\n                });\n            }\n             else qa = i.tx._(\"{actor} removed the conversation picture.\", {\n                actor: pa\n            });\n        ;\n            i.setContent(ma, qa);\n        });\n    ;\n    }, ga = function(ma) {\n        if (ma.href) {\n            return i.create(\"a\", {\n                href: ma.href,\n                className: \"_511e\"\n            }, ma.name)\n        };\n        return ma.name;\n    }, ha = function(ma) {\n        var na = ma.indexOf(n.user);\n        if ((na > 0)) {\n            return ma.splice(na, 1).concat(ma)\n        };\n        return ma;\n    }, ia = function(ma, na) {\n        var oa = ha(na.log_message_data.added_participants), pa = null, qa;\n        if ((oa.length == 1)) {\n            pa = [na.author,oa[0],];\n            n.getMulti(pa, function(ra) {\n                if ((na.author == n.user)) {\n                    qa = i.tx._(\"You added {subscriber1}.\", {\n                        subscriber1: ga(ra[oa[0]])\n                    });\n                }\n                 else if ((oa[0] == n.user)) {\n                    qa = i.tx._(\"{actor} added you.\", {\n                        actor: ga(ra[na.author])\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]])\n                });\n                \n            ;\n                i.setContent(ma, qa);\n            });\n        }\n         else if ((oa.length == 2)) {\n            pa = [na.author,].concat(oa);\n            n.getMulti(pa, function(ra) {\n                if ((na.author == n.user)) {\n                    qa = i.tx._(\"You added {subscriber1} and {subscriber2}.\", {\n                        subscriber1: ga(ra[oa[0]]),\n                        subscriber2: ga(ra[oa[1]])\n                    });\n                }\n                 else if ((oa[0] == n.user)) {\n                    qa = i.tx._(\"{actor} added you and {subscriber2}.\", {\n                        actor: ga(ra[na.author]),\n                        subscriber2: ga(ra[oa[1]])\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1} and {subscriber2}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]]),\n                    subscriber2: ga(ra[oa[1]])\n                });\n                \n            ;\n                i.setContent(ma, qa);\n            });\n        }\n         else if ((oa.length == 3)) {\n            pa = [na.author,].concat(oa);\n            n.getMulti(pa, function(ra) {\n                if ((na.author == n.user)) {\n                    qa = i.tx._(\"You added {subscriber1}, {subscriber2} and {subscriber3}.\", {\n                        subscriber1: ga(ra[oa[0]]),\n                        subscriber2: ga(ra[oa[1]]),\n                        subscriber3: ga(ra[oa[2]])\n                    });\n                }\n                 else if ((oa[0] == n.user)) {\n                    qa = i.tx._(\"{actor} added you, {subscriber2} and {subscriber3}.\", {\n                        actor: ga(ra[na.author]),\n                        subscriber2: ga(ra[oa[1]]),\n                        subscriber3: ga(ra[oa[2]])\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1}, {subscriber2} and {subscriber3}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]]),\n                    subscriber2: ga(ra[oa[1]]),\n                    subscriber3: ga(ra[oa[2]])\n                });\n                \n            ;\n                i.setContent(ma, qa);\n            });\n        }\n         else {\n            pa = [na.author,].concat(oa);\n            n.getMulti(pa, function(ra) {\n                var sa = i.tx._(\"{num} more\", {\n                    num: (oa.length - 2)\n                }), ta = i.create(\"span\", {\n                    className: \"more\"\n                }, sa), ua = i.create(\"div\");\n                t.renderTooltipFlyout(ua, oa.slice(2).map(function(wa) {\n                    return ra[wa];\n                }));\n                if ((na.author == n.user)) {\n                    qa = i.tx._(\"You added {subscriber1}, {subscriber2} and {more_people}.\", {\n                        subscriber1: ga(ra[oa[0]]),\n                        subscriber2: ga(ra[oa[1]]),\n                        more_people: ta\n                    });\n                }\n                 else if ((oa[0] == n.user)) {\n                    qa = i.tx._(\"{actor} added you, {subscriber2} and {more_people}.\", {\n                        actor: ga(ra[na.author]),\n                        subscriber2: ga(ra[oa[1]]),\n                        more_people: ta\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1}, {subscriber2} and {more_people}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]]),\n                    subscriber2: ga(ra[oa[1]]),\n                    more_people: ta\n                });\n                \n            ;\n                i.setContent(ma, qa);\n                var va = j.find(ma, \"span.more\");\n                o.set(va, ua, \"above\", \"center\");\n            });\n        }\n        \n        \n    ;\n    }, ja = function(ma, na) {\n        n.get(na.author, function(oa) {\n            var pa;\n            if ((na.author == n.user)) {\n                pa = i.tx._(\"You left the conversation.\");\n            }\n             else pa = i.tx._(\"{actor} left the conversation.\", {\n                actor: ga(oa)\n            });\n        ;\n            i.setContent(ma, pa);\n        });\n    }, ka = function(ma, na) {\n        var oa = \"We were unable to fetch previous messages in this conversation.\";\n        i.setContent(ma, oa);\n    }, la = function(ma) {\n        return ((ma.log_message_data.event_name === \"installing\") || (ma.log_message_data.event_name === \"install_canceled\"));\n    };\n    e.exports = t;\n});\n__d(\"MercurySheetPolicy\", [], function(a, b, c, d, e, f) {\n    var g = {\n        canReplaceOpenSheet: function(h, i) {\n            if ((h.getType() == i.getType())) {\n                return false\n            };\n            if ((h.isPermanent() && !i.isPermanent())) {\n                return false\n            };\n            return true;\n        }\n    };\n    e.exports = g;\n});\n__d(\"MercurySheetView\", [\"Animation\",\"ArbiterMixin\",\"MercurySheetPolicy\",\"CSS\",\"DOM\",\"Style\",\"MercurySheetTemplates\",\"Vector\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"MercurySheetPolicy\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Style\"), m = b(\"MercurySheetTemplates\"), n = b(\"Vector\"), o = b(\"copyProperties\"), p = b(\"cx\"), q = 5000, r = function(s, t, u) {\n        this._threadID = s;\n        this._rootElement = t;\n        this._tabMainElement = u;\n        this._openSheet = null;\n    };\n    o(r.prototype, h, {\n        destroy: function() {\n            k.empty(this._rootElement);\n        },\n        _openCommon: function(s, t) {\n            if ((this._openSheet && !i.canReplaceOpenSheet(this._openSheet, s))) {\n                if (s.couldNotReplace) {\n                    s.couldNotReplace();\n                };\n                return;\n            }\n        ;\n            this.clear(function() {\n                this._openSheet = s;\n                var u = m[\":fb:mercury:tab-sheet:loading\"].build().getRoot();\n                k.setContent(this._rootElement, u);\n                j.show(u);\n                j.show(this._rootElement);\n                s.render();\n                if (t) {\n                    j.addClass(this._tabMainElement, \"sheetSlide\");\n                    j.addClass(this._tabMainElement, \"_1sk4\");\n                    var v = n.getElementDimensions(this._rootElement).y;\n                    l.set(this._rootElement, \"bottom\", (v + \"px\"));\n                    this.inform(\"resize\");\n                    this._animation = new g(this._rootElement).to(\"bottom\", 0).duration(150).ease(g.ease.both).ondone(function() {\n                        j.removeClass(this._tabMainElement, \"sheetSlide\");\n                        j.removeClass(this._tabMainElement, \"_1sk4\");\n                        this.inform(\"resize\");\n                    }.bind(this)).go();\n                }\n                 else this.inform(\"resize\");\n            ;\n                if (!s.isPermanent()) {\n                    var w = q;\n                    if (s.getCloseTimeout) {\n                        w = s.getCloseTimeout();\n                    };\n                    var x = this.getAutoCloseCallback(s);\n                    this._sheetCloseHandler = this.close.bind(this, s, x).defer(w, false);\n                    if (s.timeoutCanBeReset) {\n                        s.setResetTimeoutCallback(this.resetTimeout.bind(this));\n                    };\n                }\n            ;\n            }.bind(this));\n        },\n        getAutoCloseCallback: function(s) {\n            if (!s.autoCloseCallback) {\n                return null\n            };\n            return s.autoCloseCallback.bind(s);\n        },\n        resetTimeout: function(s, t) {\n            clearTimeout(this._sheetCloseHandler);\n            var u = this.getAutoCloseCallback(s);\n            this._sheetCloseHandler = this.close.bind(this, s, u).defer(t, false);\n        },\n        set: function(s) {\n            return this._openCommon(s, false);\n        },\n        open: function(s) {\n            return this._openCommon(s, true);\n        },\n        close: function(s, t) {\n            if ((this._openSheet != s)) {\n                return\n            };\n            if (!this._openSheet) {\n                (t && t());\n                return;\n            }\n        ;\n            if (this._animation) {\n                this._animation.stop();\n            };\n            if (this._sheetCloseHandler) {\n                clearTimeout(this._sheetCloseHandler);\n                this._sheetCloseHandler = null;\n            }\n        ;\n            j.addClass(this._tabMainElement, \"sheetSlide\");\n            j.addClass(this._tabMainElement, \"_1sk4\");\n            var u = n.getElementDimensions(this._rootElement).y;\n            this.inform(\"resize\");\n            this._animation = new g(this._rootElement).to(\"bottom\", (u + \"px\")).duration(100).ease(g.ease.begin).ondone(function() {\n                k.empty(this._rootElement);\n                j.hide(this._rootElement);\n                j.removeClass(this._tabMainElement, \"sheetSlide\");\n                j.removeClass(this._tabMainElement, \"_1sk4\");\n                this._openSheet = null;\n                this.inform(\"resize\");\n                (t && t());\n            }.bind(this)).go();\n        },\n        clear: function(s) {\n            this.close(this._openSheet, s);\n        }\n    });\n    e.exports = r;\n});\n__d(\"MercuryStickersData\", [\"Arbiter\",\"MercuryStickersInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"MercuryStickersInitialData\"), i = h.packs, j = {\n        getPacks: function() {\n            return i;\n        },\n        updatePackData: function(k) {\n            i = k.packs;\n            g.inform(\"MercuryStickers/updatedPacks\");\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryStickers\", [\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"Event\",\"MercuryStickersData\",\"MercuryStickersFlyoutList.react\",\"Parent\",\"React\",\"SubscriptionsHandler\",\"Toggler\",\"UIPagelet\",\"XUISpinner.react\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Event\"), l = b(\"MercuryStickersData\"), m = b(\"MercuryStickersFlyoutList.react\"), n = b(\"Parent\"), o = b(\"React\"), p = b(\"SubscriptionsHandler\"), q = b(\"Toggler\"), r = b(\"UIPagelet\"), s = b(\"XUISpinner.react\"), t = b(\"copyProperties\"), u = b(\"csx\"), v = b(\"cx\");\n    function w(x) {\n        this._packs = j.find(x, \"._5907\");\n        this._packSelector = j.find(x, \"._5906\");\n        this._loadedPacks = {\n            emoticons: true\n        };\n        var y = n.byClass(x, \"uiToggle\"), z = q.listen(\"show\", y, function() {\n            this._renderPackList();\n            this._subscriptions.addSubscriptions(g.subscribe(\"MercuryStickers/updatedPacks\", this._renderPackList.bind(this)));\n            this._selectPack(l.getPacks()[0].id);\n            q.unsubscribe(z);\n        }.bind(this));\n        this._subscriptions = new p();\n        this._subscriptions.addSubscriptions(k.listen(this._packs, \"click\", function(event) {\n            var aa = n.byClass(event.getTarget(), \"_55bp\");\n            if (aa) {\n                this._selectedSticker(aa);\n                q.hide(y);\n            }\n        ;\n        }.bind(this)));\n    };\n    t(w.prototype, h, {\n        _renderPackList: function() {\n            o.renderComponent(m({\n                onPackClick: this._selectPack.bind(this),\n                packs: l.getPacks()\n            }), this._packSelector);\n        },\n        _loadPack: function(x) {\n            if (this._loadedPacks[x]) {\n                return\n            };\n            var y = this._getPackWithID(x);\n            o.renderComponent(s({\n                className: \"_5905\"\n            }), y);\n            this._loadedPacks[x] = true;\n            r.loadFromEndpoint(\"StickerPackPagelet\", y, {\n                id: x\n            });\n        },\n        _getPackWithID: function(x) {\n            var y = j.scry(this._packs, (((\"._55bq\" + \"[data-id=\\\"\") + x) + \"\\\"]\"))[0];\n            if (!y) {\n                y = j.create(\"div\", {\n                    className: \"_55bq hidden_elem\",\n                    \"data-id\": x\n                });\n                j.appendContent(this._packs, y);\n            }\n        ;\n            return y;\n        },\n        _selectedSticker: function(x) {\n            var y = parseInt(x.getAttribute(\"data-id\"), 10);\n            this.inform(\"stickerselected\", {\n                id: y\n            });\n        },\n        _selectPack: function(x) {\n            j.scry(this._packs, \"._55bq\").forEach(i.hide);\n            this._loadPack(x);\n            i.show(this._getPackWithID(x));\n        },\n        destroy: function() {\n            (this._subscriptions && this._subscriptions.release());\n            this._subscriptions = null;\n        }\n    });\n    e.exports = w;\n});\n__d(\"Token\", [\"CSS\",\"DataStore\",\"DOM\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"copyProperties\"), k = b(\"tx\");\n    function l(m, n) {\n        this.info = m;\n        this.paramName = n;\n    };\n    j(l.prototype, {\n        getInfo: function() {\n            return this.info;\n        },\n        getText: function() {\n            return this.info.text;\n        },\n        getValue: function() {\n            return this.info.uid;\n        },\n        isFreeform: function() {\n            return !!this.info.freeform;\n        },\n        setSelected: function(m) {\n            g.conditionClass(this.getElement(), \"uiTokenSelected\", m);\n            return this;\n        },\n        getElement: function() {\n            if (!this.element) {\n                this.setElement(this.createElement());\n            };\n            return this.element;\n        },\n        setElement: function(m) {\n            h.set(m, \"Token\", this);\n            this.element = m;\n            return this;\n        },\n        isRemovable: function() {\n            return g.hasClass(this.element, \"removable\");\n        },\n        createElement: function(m, n) {\n            var o = this.paramName, p = this.getText(), q = this.getValue(), r = i.create(\"a\", {\n                href: \"#\",\n                \"aria-label\": k._(\"Remove {item}\", {\n                    item: p\n                }),\n                className: \"remove uiCloseButton uiCloseButtonSmall\"\n            });\n            if (m) {\n                g.addClass(r, \"uiCloseButtonSmallGray\");\n            };\n            var s = i.create(\"input\", {\n                type: \"hidden\",\n                value: q,\n                name: (o + \"[]\"),\n                autocomplete: \"off\"\n            }), t = i.create(\"input\", {\n                type: \"hidden\",\n                value: p,\n                name: ((\"text_\" + o) + \"[]\"),\n                autocomplete: \"off\"\n            }), u = i.create(\"span\", {\n                className: \"removable uiToken\"\n            }, [p,s,t,r,]);\n            if (m) {\n                g.addClass(u, \"uiTokenGray\");\n            };\n            if (n) {\n                var v = i.create(\"i\", {\n                    className: n\n                });\n                i.prependContent(u, v);\n            }\n        ;\n            return u;\n        }\n    });\n    e.exports = l;\n});\n__d(\"WeakToken\", [\"Class\",\"CSS\",\"Token\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"Token\"), j = b(\"copyProperties\");\n    function k(l, m) {\n        this.parent.construct(this, l, m);\n    };\n    g.extend(k, i);\n    j(k.prototype, {\n        createElement: function() {\n            var l = this.parent.createElement(true, \"UFIWeakReferenceIcon\");\n            h.addClass(l, \"uiTokenWeakReference\");\n            return l;\n        }\n    });\n    e.exports = k;\n});\n__d(\"Tokenizer\", [\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"DOMQuery\",\"DataStore\",\"Event\",\"Focus\",\"Input\",\"Keys\",\"Parent\",\"StickyPlaceholderInput\",\"Style\",\"TextMetrics\",\"Token\",\"UserAgent\",\"WeakToken\",\"copyProperties\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"DataStore\"), m = b(\"Event\"), n = b(\"Focus\"), o = b(\"Input\"), p = b(\"Keys\"), q = b(\"Parent\"), r = b(\"StickyPlaceholderInput\"), s = b(\"Style\"), t = b(\"TextMetrics\"), u = b(\"Token\"), v = b(\"UserAgent\"), w = b(\"WeakToken\"), x = b(\"copyProperties\"), y = b(\"createObjectFrom\"), z = b(\"emptyFunction\"), aa = 20;\n    function ba(ca, da) {\n        this.element = ca;\n        this.typeahead = da;\n        this.input = da.getCore().getElement();\n        l.set(this.element, \"Tokenizer\", this);\n    };\n    ba.getInstance = function(ca) {\n        var da = q.byClass(ca, \"uiTokenizer\");\n        return (da ? l.get(da, \"Tokenizer\") : null);\n    };\n    x(ba.prototype, h, {\n        inline: false,\n        maxTokens: null,\n        excludeDuplicates: true,\n        placeholder: \"\",\n        init: function(ca, da, ea, fa) {\n            this.init = z;\n            this.tokenarea = ca;\n            this.paramName = da;\n            if (!this.placeholder) {\n                this.placeholder = (this.input.getAttribute(\"data-placeholder\") || \"\");\n            };\n            x(this, (fa || {\n            }));\n            this.initEvents();\n            this.initTypeahead();\n            this.reset(ea);\n            this.initBehaviors();\n            this.adjustWidth.bind(this).defer();\n            g.inform(\"Tokenizer/init\", this, g.BEHAVIOR_PERSISTENT);\n        },\n        reset: function(ca) {\n            this.tokens = [];\n            this.unique = {\n            };\n            if (ca) {\n                this.populate(ca);\n            }\n             else j.empty(this.tokenarea);\n        ;\n            this.updateTokenarea();\n        },\n        populate: function(ca) {\n            var da = [];\n            this.tokens = this.getTokenElements().map(function(ea, fa) {\n                var ga = ca[fa];\n                da.push(this._tokenKey(ga));\n                return this.createToken(ga, ea);\n            }, this);\n            this.unique = y(da, this.tokens);\n        },\n        getElement: function() {\n            return this.element;\n        },\n        getTypeahead: function() {\n            return this.typeahead;\n        },\n        getInput: function() {\n            return this.input;\n        },\n        initBehaviors: function() {\n            this.behaviors = (this.behaviors || []);\n            if ((this.behaviors instanceof Array)) {\n                this.behaviors.forEach(function(ea) {\n                    ea.behavior(this, ea.config);\n                }.bind(this));\n            }\n             else for (var ca in ((this.behaviors || {\n            }))) {\n                var da = (window.TokenizerBehaviors && window.TokenizerBehaviors[ca]);\n                da.call(null, this, this.behaviors[ca]);\n            }\n        ;\n        },\n        initTypeahead: function() {\n            var ca = this.typeahead.getCore();\n            ca.resetOnSelect = true;\n            ca.setValueOnSelect = false;\n            ca.preventFocusChangeOnTab = true;\n            if (this.inline) {\n                var da = this.typeahead.getView();\n                i.addClass(da.getElement(), \"uiInlineTokenizerView\");\n            }\n        ;\n            this.typeahead.subscribe(\"select\", function(ea, fa) {\n                var ga = fa.selected;\n                if ((\"uid\" in ga)) {\n                    this.updateInput();\n                    this.addToken(this.createToken(ga));\n                }\n            ;\n            }.bind(this));\n            this.typeahead.subscribe(\"blur\", this.handleBlur.bind(this));\n        },\n        handleBlur: function(event) {\n            this.inform(\"blur\", {\n                event: event\n            });\n            this.updatePlaceholder();\n        },\n        initEvents: function() {\n            var ca = this.handleEvents.bind(this), da = ((v.firefox() < 4) ? \"keypress\" : \"keydown\");\n            m.listen(this.tokenarea, {\n                click: ca,\n                keydown: ca\n            });\n            m.listen(this.input, \"paste\", this.paste.bind(this));\n            m.listen(this.input, da, this.keydown.bind(this));\n        },\n        handleEvents: function(event) {\n            var ca = event.getTarget(), da = (ca && this.getTokenElementFromTarget(ca));\n            if (!da) {\n                return\n            };\n            if (((event.type != \"keydown\") || (m.getKeyCode(event) == p.RETURN))) {\n                this.processEvents(event, ca, da);\n            };\n        },\n        processEvents: function(event, ca, da) {\n            if (q.byClass(ca, \"remove\")) {\n                var ea = da.nextSibling;\n                ea = (ea && k.scry(da.nextSibling, \".remove\")[0]);\n                var fa = this.getTokenFromElement(da);\n                fa = this.addTokenData(fa, ca);\n                this.removeToken(fa);\n                this.focusOnTokenRemoval(event, ea);\n                event.kill();\n            }\n        ;\n        },\n        focusOnTokenRemoval: function(event, ca) {\n            n.set((((event.type == \"keydown\") && ca) || this.input));\n        },\n        addTokenData: function(ca, da) {\n            return ca;\n        },\n        keydown: function(event) {\n            this.inform(\"keydown\", {\n                event: event\n            });\n            var ca = m.getKeyCode(event), da = this.input;\n            if (((this.inline && (ca == p.BACKSPACE)) && o.isEmpty(da))) {\n                var ea = this.getLastToken();\n                if ((ea && ea.isRemovable())) {\n                    this.removeToken(ea);\n                };\n            }\n        ;\n            this.updateInput();\n        },\n        paste: function(event) {\n            this.inform(\"paste\", {\n                event: event\n            });\n            this.updateInput(true);\n        },\n        focusInput: function() {\n            n.set(this.input);\n        },\n        updateInput: function(ca) {\n            if (!this.inline) {\n                return\n            };\n            setTimeout(function() {\n                this.adjustWidth(this.input.value);\n                if (ca) {\n                    this.input.value = this.input.value;\n                };\n            }.bind(this), 20);\n            r.setPlaceholderText(this.input, \"\");\n            this.inform(\"resize\");\n        },\n        setPlaceholder: function(ca) {\n            this.placeholder = ca;\n            if (this.stickyPlaceholder) {\n                r.setPlaceholderText(this.input, ca);\n            };\n            this.updatePlaceholder();\n        },\n        updatePlaceholder: function() {\n            if ((!this.inline || this.input.value)) {\n                return\n            };\n            var ca = !this.tokens.length, da = \"\";\n            if ((ca || this.stickyPlaceholder)) {\n                this.adjustWidth(this.placeholder);\n                da = this.placeholder;\n            }\n             else this.adjustWidth(this.input.value);\n        ;\n            r.setPlaceholderText(this.input, da);\n        },\n        adjustWidth: function(ca) {\n            if ((!this.inline || !this._getIsInDOM())) {\n                return\n            };\n            if ((!ca && (this.input.value === \"\"))) {\n                ca = this.placeholder;\n            };\n            var da = aa;\n            if ((((ca !== this.placeholder) || !this.getTokens().length) || this.stickyPlaceholder)) {\n                var ea = this._getMetrics().measure(ca);\n                da = ((ea.width + this._getWidthOffset()) + 10);\n            }\n        ;\n            s.set(this.input, \"width\", (da + \"px\"));\n            this.inform(\"resize\");\n        },\n        getToken: function(ca) {\n            return (this.unique[ca] || null);\n        },\n        getTokens: function() {\n            return (this.tokens || []);\n        },\n        getTokenElements: function() {\n            return k.scry(this.tokenarea, \"span.uiToken\");\n        },\n        getTokenElementFromTarget: function(ca) {\n            return q.byClass(ca, \"uiToken\");\n        },\n        getTokenFromElement: function(ca) {\n            return l.get(ca, \"Token\");\n        },\n        getTokenValues: function() {\n            if (!this.tokens) {\n                return []\n            };\n            return this.tokens.map(function(ca) {\n                return ca.getValue();\n            });\n        },\n        getFirstToken: function() {\n            return (this.tokens[0] || null);\n        },\n        getLastToken: function() {\n            return (this.tokens[(this.tokens.length - 1)] || null);\n        },\n        hasMaxTokens: function() {\n            return (this.maxTokens && (this.maxTokens <= this.tokens.length));\n        },\n        createToken: function(ca, da) {\n            var ea = this.getToken(this._tokenKey(ca));\n            if (!ea) {\n                ea = (ca.weak_reference ? new w(ca, this.paramName) : new u(ca, this.paramName));\n            };\n            (da && ea.setElement(da));\n            return ea;\n        },\n        addToken: function(ca) {\n            if (this.hasMaxTokens()) {\n                return\n            };\n            var da = this._tokenKey(ca.getInfo());\n            if ((da in this.unique)) {\n                return\n            };\n            this.unique[da] = ca;\n            this.tokens.push(ca);\n            this.insertToken(ca);\n            this.updateTokenarea();\n            this.inform(\"addToken\", ca);\n            g.inform(\"Form/change\", {\n                node: this.element\n            });\n        },\n        insertToken: function(ca) {\n            j.appendContent(this.tokenarea, ca.getElement());\n        },\n        removeToken: function(ca) {\n            if (!ca) {\n                return\n            };\n            var da = this.tokens.indexOf(ca);\n            if ((da < 0)) {\n                return\n            };\n            this.tokens.splice(this.tokens.indexOf(ca), 1);\n            delete this.unique[this._tokenKey(ca.getInfo())];\n            j.remove(ca.getElement());\n            this.updateTokenarea();\n            this.inform(\"removeToken\", ca);\n            g.inform(\"Form/change\", {\n                node: this.element\n            });\n        },\n        removeAllTokens: function() {\n            this.reset();\n            this.inform(\"removeAllTokens\");\n        },\n        updateTokenarea: function() {\n            var ca = this.typeahead.getCore(), da = this.getTokenValues();\n            if (this.excludeDuplicates) {\n                (this._exclusions || (this._exclusions = ca.getExclusions()));\n                ca.setExclusions(da.concat(this._exclusions));\n            }\n        ;\n            ca.setEnabled(!this.hasMaxTokens());\n            this.updateTokenareaVisibility();\n            this.updatePlaceholder();\n            this.inform(\"resize\");\n        },\n        updateTokenareaVisibility: function() {\n            i.conditionShow(this.tokenarea, (this.tokens.length !== 0));\n        },\n        _tokenKey: function(ca) {\n            return (ca.uid + ((ca.freeform ? \":\" : \"\")));\n        },\n        _widthOffset: null,\n        _getWidthOffset: function() {\n            if ((this._widthOffset === null)) {\n                var ca = this.input.clientWidth, da = s.getFloat(this.input, \"width\");\n                if ((ca == da)) {\n                    this._widthOffset = (s.getFloat(this.input, \"paddingLeft\") + s.getFloat(this.input, \"paddingRight\"));\n                }\n                 else this._widthOffset = 0;\n            ;\n            }\n        ;\n            return this._widthOffset;\n        },\n        _metrics: null,\n        _getMetrics: function() {\n            if (!this._metrics) {\n                this._metrics = new t(this.input, this.inline);\n            };\n            return this._metrics;\n        },\n        _getIsInDOM: function() {\n            return (this._isInDOM || (this._isInDOM = k.contains(document.body, this.input)));\n        }\n    });\n    ba.init = function(ca, da) {\n        ca.init(da.tokenarea, da.param_name, da.initial_info, da.options);\n    };\n    e.exports = ba;\n});\n__d(\"MercuryTypeahead\", [\"Event\",\"ArbiterMixin\",\"DOM\",\"DOMDimensions\",\"Input\",\"Keys\",\"MercuryTypeaheadTemplates\",\"Tokenizer\",\"Typeahead\",\"TypeaheadCore\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"DOMDimensions\"), k = b(\"Input\"), l = b(\"Keys\"), m = b(\"MercuryTypeaheadTemplates\"), n = b(\"Tokenizer\"), o = b(\"Typeahead\"), p = b(\"TypeaheadCore\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = function(t, u) {\n        this._domElement = null;\n        this._typeahead = null;\n        this._tokenizer = null;\n        this._placeholder = \"\";\n        this._exclusions = [];\n        this._viewNodeOrID = null;\n        this._viewOptions = {\n            renderer: \"compact\",\n            autoSelect: true\n        };\n        this._tokenizerBehaviors = [];\n        this._heightPrev = null;\n        this._dataSource = t;\n        this._view = u;\n    };\n    q(s.prototype, h);\n    q(s.prototype, {\n        setPlaceholder: function(t) {\n            this._placeholder = t;\n            return this;\n        },\n        setExcludedParticipants: function(t) {\n            this._exclusions = [];\n            t.forEach(function(u) {\n                var v = u.indexOf(\":\");\n                if ((u.substr(0, v) == \"fbid\")) {\n                    this._exclusions.push(u.substr((v + 1)));\n                };\n            }.bind(this));\n            return this;\n        },\n        setViewNodeID: function(t) {\n            this._viewNodeOrID = t;\n        },\n        setViewNode: function(t) {\n            this._viewNodeOrID = t;\n        },\n        setFullWidthView: function(t) {\n            var u = i.create(\"div\", {\n                className: \"_4ck uiTypeaheadView\"\n            });\n            i.setContent(t, u);\n            this.setViewNode(u);\n        },\n        setViewOption: function(t, u) {\n            this._viewOptions[t] = u;\n        },\n        addTokenizerBehavior: function(t) {\n            this._tokenizerBehaviors.push(t);\n        },\n        build: function(t) {\n            if (this._domElement) {\n                return\n            };\n            var u = m[\":fb:mercury:tokenizer\"].build(), v = m[\":fb:mercury:typeahead\"].build();\n            this._domElement = u.getRoot();\n            i.appendContent(this._domElement, v.getRoot());\n            var w = v.getNode(\"textfield\");\n            k.setPlaceholder(w, this._placeholder);\n            w.setAttribute(\"data-placeholder\", this._placeholder);\n            this._input = w;\n            var x = {\n                node_id: this._viewNodeOrID,\n                ctor: this._view,\n                options: this._viewOptions\n            }, y = {\n                ctor: p,\n                options: {\n                    setValueOnSelect: true\n                }\n            };\n            this._typeahead = new o(this._dataSource, x, y, v.getRoot());\n            this._typeahead.init();\n            var z = {\n                inline: true,\n                behaviors: this._tokenizerBehaviors\n            };\n            this._tokenizer = new n(this._domElement, this._typeahead);\n            this._tokenizer.init(u.getNode(\"tokenarea\"), \"participants\", [], z);\n            this._tokenizer.subscribe([\"addToken\",\"removeToken\",\"removeAllTokens\",], this._tokensChanged.bind(this));\n            this._tokenizer.subscribe(\"resize\", function() {\n                this.inform(\"resize\");\n            }.bind(this));\n            g.listen(w, \"focus\", function() {\n                this._resetDataSource();\n                this._typeahead.init();\n            }.bind(this));\n            g.listen(this._domElement, \"click\", this.focus.bind(this));\n            g.listen(w, \"keydown\", this.keydown.bind(this));\n            this._heightPrev = j.getElementDimensions(this._domElement).height;\n        },\n        getElement: function() {\n            return this._domElement;\n        },\n        getSelectedParticipantIDs: function() {\n            var t = [];\n            if (this._tokenizer) {\n                ((this._tokenizer.getTokenValues() || [])).forEach(function(u) {\n                    t.push((\"fbid:\" + u));\n                });\n            };\n            return t;\n        },\n        getTokens: function() {\n            var t = [];\n            if (this._tokenizer) {\n                t = this._tokenizer.getTokens();\n            };\n            return t;\n        },\n        getTokenizer: function() {\n            return this._tokenizer;\n        },\n        keydown: function(event) {\n            if ((this._tokenizer.inline && (event.keyCode == l.ESC))) {\n                if (k.isEmpty(this._input)) {\n                    var t = this._tokenizer.getLastToken();\n                    if ((t && t.isRemovable())) {\n                        this._tokenizer.removeToken(t);\n                    };\n                }\n                 else this._typeahead.getCore().reset();\n            ;\n                return false;\n            }\n        ;\n        },\n        reset: function() {\n            (this._tokenizer && this._tokenizer.removeAllTokens());\n            (this._typeahead && this._typeahead.getCore().reset());\n        },\n        focus: function() {\n            (this._tokenizer && this._tokenizer.focusInput());\n        },\n        getTypeahead: function() {\n            return this._typeahead;\n        },\n        _resetDataSource: function() {\n            this._dataSource.setExclusions(this._exclusions);\n        },\n        _tokensChanged: function() {\n            this.inform(\"tokens-changed\");\n        }\n    });\n    e.exports = s;\n});\n__d(\"PhotosUploadWaterfall\", [\"AsyncSignal\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = {\n        APP_FLASH: \"flash_pro\",\n        APP_SIMPLE: \"simple\",\n        APP_ARCHIVE: \"archive\",\n        APP_COMPOSER: \"composer\",\n        APP_MESSENGER: \"messenger\",\n        APP_HTML5: \"html5\",\n        APP_CHAT: \"chat\",\n        INSTALL_CANCEL: 1,\n        INSTALL_INSTALL: 2,\n        INSTALL_UPDATE: 3,\n        INSTALL_REINSTALL: 4,\n        INSTALL_PERMA_CANCEL: 5,\n        INSTALL_SILENT_SKIP: 6,\n        INSTALL_DOWNLOAD: 7,\n        CERROR_RESIZING_FAILED: 6,\n        CERROR_MARKER_EXTRACTION_FAILED: 9,\n        BEGIN: 1,\n        UPLOAD_START: 4,\n        ALL_UPLOADS_DONE: 6,\n        CLIENT_ERROR: 7,\n        RECOVERABLE_CLIENT_ERROR: 12,\n        IMAGES_SELECTED: 9,\n        UPGRADE_REQUIRED: 11,\n        VERSION: 15,\n        SELECT_START: 18,\n        SELECT_CANCELED: 19,\n        CANCEL: 22,\n        CANCEL_DURING_UPLOAD: 83,\n        ONE_RESIZING_START: 2,\n        ONE_UPLOAD_DONE: 29,\n        ONE_RESIZING_DONE: 34,\n        PROGRESS_BAR_STOPPED: 44,\n        MISSED_BEAT: 45,\n        HEART_ATTACK: 46,\n        PUBLISH_START: 100,\n        PUBLISH_SUCCESS: 101,\n        PUBLISH_FAILURE: 102,\n        SESSION_POSTED: 72,\n        POST_PUBLISHED: 80,\n        ONE_UPLOAD_CANCELED: 81,\n        ONE_UPLOAD_CANCELED_DURING_UPLOAD: 82,\n        RESIZER_AVAILABLE: 20,\n        OVERLAY_FIRST: 61,\n        ASYNC_AVAILABLE: 63,\n        FALLBACK_TO_FLASH: 13,\n        RETRY_UPLOAD: 17,\n        TAGGED_ALL_FACES: 14,\n        VAULT_IMAGES_SELECTED: 62,\n        VAULT_CREATE_POST_CANCEL: 65,\n        VAULT_SEND_IN_MESSAGE_CLICKED: 66,\n        VAULT_DELETE_CANCEL: 68,\n        VAULT_ADD_TO_ALBUM_CANCEL: 74,\n        VAULT_SHARE_IN_AN_ALBUM_CLICKED: 76,\n        VAULT_SHARE_OWN_TIMELINE_CLICKED: 77,\n        VAULT_SHARE_FRIENDS_TIMELINE_CLICKED: 78,\n        VAULT_SHARE_IN_A_GROUP_CLICKED: 79,\n        METHOD_DRAGDROP: \"dragdrop\",\n        METHOD_FILE_SELECTOR: \"file_selector\",\n        METHOD_VAULT: \"vault\",\n        METHOD_PHOTOS_OF_YOU: \"photos_of_you\",\n        METHOD_RECENT_PHOTOS: \"recent_photos\",\n        VAULTBOX: \"vaultbox\",\n        GRID: \"grid\",\n        SPOTLIGHT_VAULT_VIEWER: \"spotlight_vault_viewer\",\n        sendSignal: function(i, j) {\n            new g(\"/ajax/photos/waterfall.php\", {\n                data: JSON.stringify(i)\n            }).setHandler(j).send();\n        }\n    };\n    e.exports = h;\n});\n__d(\"FreeformTokenizerBehavior\", [\"Input\",\"Keys\",\"Event\",\"function-extensions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Input\"), h = b(\"Keys\"), i = b(\"Event\");\n    b(\"function-extensions\");\n    function j(k, l) {\n        var m = (l.tokenize_on_blur !== false), n = (l.tokenize_on_paste !== false), o = (l.matcher && new RegExp(l.matcher, \"i\")), p = (l.paste_split && new RegExp(l.paste_split)), q = (l.select_on_comma !== false), r = (l.never_submit === true);\n        function s(event) {\n            var t = g.getValue(k.getInput()).trim();\n            if (((p && event) && (event.type == \"paste\"))) {\n                t = t.split(p);\n            }\n             else t = [t,];\n        ;\n            var u = false;\n            for (var v = 0; (v < t.length); v++) {\n                var w = t[v].trim();\n                if ((w && ((!o || o.test(w))))) {\n                    var x = {\n                        uid: w,\n                        text: w,\n                        freeform: true\n                    };\n                    k.addToken(k.createToken(x));\n                    u = true;\n                }\n            ;\n            };\n            if ((event && u)) {\n                k.getTypeahead().getCore().afterSelect();\n                event.kill();\n            }\n        ;\n        };\n        k.subscribe(\"keydown\", function(t, u) {\n            var event = u.event, v = i.getKeyCode(event);\n            if ((((q && (v == h.COMMA))) || (v == h.RETURN))) {\n                var w = k.getTypeahead().getView();\n                if (w.getSelection()) {\n                    w.select();\n                    event.kill();\n                }\n                 else s(event);\n            ;\n            }\n        ;\n            if (((v == h.RETURN) && r)) {\n                event.kill();\n            };\n        });\n        k.subscribe(\"paste\", function(t, u) {\n            if (n) {\n                s.bind(null, u.event).defer(20);\n            };\n        });\n        k.subscribe(\"blur\", function(t, u) {\n            if (m) {\n                s();\n            };\n            k.getTypeahead().getCore().reset();\n        });\n    };\n    e.exports = j;\n});");
36587 // 13460
36588 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"scaff3dbb6c695995ec315b3795e7ed24f2b1e2f0");
36589 // 13461
36590 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"LpC/l\",]);\n}\n;\n;\n__d(\"DOMWrapper\", [], function(a, b, c, d, e, f) {\n    var g, h, i = {\n        setRoot: function(j) {\n            g = j;\n        },\n        getRoot: function() {\n            return ((g || JSBNG__document.body));\n        },\n        setWindow: function(j) {\n            h = j;\n        },\n        getWindow: function() {\n            return ((h || JSBNG__self));\n        }\n    };\n    e.exports = i;\n});\n__d(\"Flash\", [\"DOMWrapper\",\"QueryString\",\"UserAgent\",\"copyProperties\",\"guid\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMWrapper\"), h = b(\"QueryString\"), i = b(\"UserAgent\"), j = b(\"copyProperties\"), k = b(\"guid\"), l = {\n    }, m, n = g.getWindow().JSBNG__document;\n    function o(t) {\n        var u = n.getElementById(t);\n        if (u) {\n            u.parentNode.removeChild(u);\n        }\n    ;\n    ;\n        delete l[t];\n    };\n;\n    function p() {\n        {\n            var fin260keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin260i = (0);\n            var t;\n            for (; (fin260i < fin260keys.length); (fin260i++)) {\n                ((t) = (fin260keys[fin260i]));\n                {\n                    if (l.hasOwnProperty(t)) {\n                        o(t);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    };\n;\n    function q(t) {\n        return t.replace(/\\d+/g, function(u) {\n            return ((\"000\".substring(u.length) + u));\n        });\n    };\n;\n    function r(t) {\n        if (!m) {\n            if (((i.ie() >= 9))) {\n                window.JSBNG__attachEvent(\"JSBNG__onunload\", p);\n            }\n        ;\n        ;\n            m = true;\n        }\n    ;\n    ;\n        l[t] = t;\n    };\n;\n    var s = {\n        embed: function(t, u, v, w) {\n            var x = k();\n            t = encodeURI(t);\n            v = j({\n                allowscriptaccess: \"always\",\n                flashvars: w,\n                movie: t\n            }, ((v || {\n            })));\n            if (((typeof v.flashvars == \"object\"))) {\n                v.flashvars = h.encode(v.flashvars);\n            }\n        ;\n        ;\n            var y = [];\n            {\n                var fin261keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin261i = (0);\n                var z;\n                for (; (fin261i < fin261keys.length); (fin261i++)) {\n                    ((z) = (fin261keys[fin261i]));\n                    {\n                        if (((v.hasOwnProperty(z) && v[z]))) {\n                            y.push(((((((((\"\\u003Cparam name=\\\"\" + encodeURI(z))) + \"\\\" value=\\\"\")) + encodeURI(v[z]))) + \"\\\"\\u003E\")));\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var aa = n.createElement(\"div\"), ba = ((((((((((((((((((\"\\u003Cobject \" + ((i.ie() ? \"classid=\\\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\\\" \" : \"type=\\\"application/x-shockwave-flash\\\"\")))) + \"data=\\\"\")) + t)) + \"\\\" \")) + \"id=\\\"\")) + x)) + \"\\\"\\u003E\")) + y.join(\"\"))) + \"\\u003C/object\\u003E\"));\n            aa.innerHTML = ba;\n            var ca = u.appendChild(aa.firstChild);\n            r(x);\n            return ca;\n        },\n        remove: o,\n        getVersion: function() {\n            var t = \"Shockwave Flash\", u = \"application/x-shockwave-flash\", v = \"ShockwaveFlash.ShockwaveFlash\", w;\n            if (((JSBNG__navigator.plugins && ((typeof JSBNG__navigator.plugins[t] == \"object\"))))) {\n                var x = JSBNG__navigator.plugins[t].description;\n                if (((((((x && JSBNG__navigator.mimeTypes)) && JSBNG__navigator.mimeTypes[u])) && JSBNG__navigator.mimeTypes[u].enabledPlugin))) {\n                    w = x.match(/\\d+/g);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (!w) {\n                try {\n                    w = (new ActiveXObject(v)).GetVariable(\"$version\").match(/(\\d+),(\\d+),(\\d+),(\\d+)/);\n                    w = Array.prototype.slice.call(w, 1);\n                } catch (y) {\n                \n                };\n            }\n        ;\n        ;\n            return w;\n        },\n        checkMinVersion: function(t) {\n            var u = s.getVersion();\n            if (!u) {\n                return false;\n            }\n        ;\n        ;\n            return ((q(u.join(\".\")) >= q(t)));\n        },\n        isAvailable: function() {\n            return !!s.getVersion();\n        }\n    };\n    e.exports = s;\n});\n__d(\"MercuryAudioPlayer\", [\"JSBNG__Event\",\"Arbiter\",\"DOM\",\"Flash\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"Flash\"), k = b(\"copyProperties\"), l = 200;\n    function m() {\n        var v = i.create(\"audio\"), w = false;\n        try {\n            if (!!v.canPlayType) {\n                if (v.canPlayType(\"video/mp4;\").replace(/^no$/, \"\")) {\n                    w = true;\n                }\n            ;\n            }\n        ;\n        ;\n        } finally {\n            return w;\n        };\n    ;\n    };\n;\n    function n() {\n        return j.isAvailable();\n    };\n;\n    var o = function() {\n        this.interval = null;\n        this.arbiterInstance = null;\n        this.audio = i.create(\"audio\");\n        g.listen(this.audio, \"playing\", function() {\n            this.informAttachment(\"playing\", this.audio.currentTime);\n            this.interval = JSBNG__setInterval(function() {\n                this.informAttachment(\"playing\", this.audio.currentTime);\n            }.bind(this), l);\n        }.bind(this));\n        g.listen(this.audio, \"ended\", function() {\n            JSBNG__clearInterval(this.interval);\n            this.informAttachment(\"finished\");\n        }.bind(this));\n    };\n    k(o.prototype, {\n        setAudio: function(v, w) {\n            this.audio.setAttribute(\"src\", v);\n            this.arbiterInstance = w;\n        },\n        informAttachment: function(v, w) {\n            if (this.arbiterInstance) {\n                this.arbiterInstance.inform(v, w);\n            }\n        ;\n        ;\n        },\n        play: function() {\n            this.audio.play();\n            this.informAttachment(\"played\");\n        },\n        resume: function() {\n            this.audio.play();\n            this.informAttachment(\"played\");\n        },\n        pause: function() {\n            this.audio.pause();\n            JSBNG__clearInterval(this.interval);\n            this.informAttachment(\"paused\");\n        },\n        getType: function() {\n            return \"html5\";\n        }\n    });\n    var p = function() {\n        this.src = null;\n        this.arbiterInstance = null;\n        var v = i.create(\"div\");\n        JSBNG__document.body.appendChild(v);\n        this.swf = j.embed(\"/swf/SoundStreamPlayer.swf\", v, null, {\n        });\n        this.interval = null;\n        h.subscribe(\"soundstream/finished\", function() {\n            JSBNG__clearInterval(this.interval);\n            this.informAttachment(\"finished\");\n        }.bind(this));\n    };\n    k(p.prototype, {\n        setAudio: function(v, w) {\n            this.src = v;\n            this.arbiterInstance = w;\n        },\n        informAttachment: function(v, w) {\n            if (this.arbiterInstance) {\n                this.arbiterInstance.inform(v, w);\n            }\n        ;\n        ;\n        },\n        play: function() {\n            this.swf.playSound(this.src);\n            this.interval = JSBNG__setInterval(function() {\n                var v = this.swf.getCurrentTime();\n                this.informAttachment(\"playing\", v);\n            }.bind(this), l);\n            this.informAttachment(\"played\");\n        },\n        resume: function() {\n            this.swf.resume();\n            this.informAttachment(\"played\");\n        },\n        pause: function() {\n            JSBNG__clearInterval(this.interval);\n            this.swf.pause();\n            this.informAttachment(\"paused\");\n        },\n        getType: function() {\n            return \"flash\";\n        }\n    });\n    function q() {\n        if (m()) {\n            return new o();\n        }\n         else if (n()) {\n            return new p();\n        }\n        \n    ;\n    ;\n        return false;\n    };\n;\n    var r = null, s = null, t = 0;\n    function u(v, w) {\n        this.src = v;\n        this.arbiterInstance = w;\n        this.audio_id = ++t;\n        ((((r !== null)) || (r = q())));\n        if (!r) {\n            return false;\n        }\n    ;\n    ;\n    };\n;\n    k(u.prototype, {\n        getType: function() {\n            if (!r) {\n                return false;\n            }\n             else return r.getType()\n        ;\n        },\n        play: function(v) {\n            if (((v && ((s == this.audio_id))))) {\n                r.resume();\n            }\n             else {\n                this.pause();\n                s = this.audio_id;\n                r.setAudio(this.src, this.arbiterInstance);\n                r.play();\n            }\n        ;\n        ;\n        },\n        pause: function() {\n            r.pause();\n        }\n    });\n    e.exports = u;\n});\n__d(\"MercuryAttachmentAudioClip.react\", [\"Arbiter\",\"ArbiterMixin\",\"MercuryAudioPlayer\",\"Env\",\"JSLogger\",\"LeftRight.react\",\"React\",\"cx\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"MercuryAudioPlayer\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"LeftRight.react\"), m = b(\"React\"), n = b(\"cx\"), o = b(\"shield\"), p = b(\"tx\"), q = \"MercuryAttachmentAudioClip/play\", r = k.create(\"mercury_audio_clip\"), s = m.createClass({\n        displayName: \"AudioClip\",\n        mixins: [h,],\n        getInitialState: function() {\n            this.subscribe(\"playing\", this.updateTime);\n            this.subscribe(\"played\", o(this.setState, this, {\n                playing: true,\n                started: true\n            }));\n            this.subscribe(\"paused\", o(this.setState, this, {\n                playing: false\n            }));\n            this.subscribe(\"finished\", o(this.setState, this, {\n                playing: false,\n                started: false,\n                time: this.props.duration\n            }));\n            this.logged = false;\n            var t = ((this.props.downloadOnly ? false : new i(this.props.src, this)));\n            g.subscribe(q, function(u, v) {\n                if (((this.props.src != v))) {\n                    this.setState({\n                        time: 0\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n            return {\n                time: 0,\n                playing: false,\n                started: false,\n                duration: this.props.duration,\n                audioPlayer: t\n            };\n        },\n        updateTime: function(t, u) {\n            this.setState({\n                time: u\n            });\n        },\n        play: function() {\n            if (this.state.playing) {\n                this.state.audioPlayer.pause();\n            }\n             else {\n                this.state.audioPlayer.play(this.state.started);\n                g.inform(q, this.props.src);\n                if (!this.logged) {\n                    this.logged = true;\n                    r.log(\"play\", {\n                        uid: j.user,\n                        duration: this.props.duration\n                    });\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _formatSeconds: function(t) {\n            if (t) {\n                t = Math.ceil(t);\n                var u = ((t % 60));\n                if (((u < 10))) {\n                    u = ((\"0\" + u));\n                }\n            ;\n            ;\n                var v = Math.floor(((t / 60)));\n                return ((((v + \":\")) + u));\n            }\n             else return null\n        ;\n        },\n        _renderPlayer: function(t, u) {\n            return (m.DOM.a({\n                className: \"_1miz\",\n                style: {\n                    width: t\n                },\n                onClick: this.play\n            }, m.DOM.span({\n                className: \"_1mi-\"\n            }, m.DOM.i({\n                className: \"_1mi_\"\n            })), m.DOM.span({\n                className: \"_1mj0\"\n            }, u), m.DOM.div({\n                className: \"_1mj1\"\n            })));\n        },\n        render: function() {\n            var t = this.state.time, u = this.state.playing, v = this._formatSeconds(this.state.duration), w = ((this.props.width || 170)), x = null, y = Math.ceil(((((t * ((w + 2)))) / this.state.duration)));\n            if (((this.state.audioPlayer && this.state.audioPlayer.getType()))) {\n                var z = this._renderPlayer(w, v), aa = this._renderPlayer(w, v), ba = (((((\"_1mj2\") + ((((u && ((t !== 0)))) ? ((\" \" + \"_1mj3\")) : \"\")))) + ((((u && ((t === 0)))) ? ((\" \" + \"_4g4x\")) : \"\"))));\n                x = (m.DOM.div({\n                    className: ba\n                }, z, m.DOM.div({\n                    className: \"_1mj4\",\n                    style: {\n                        width: y\n                    }\n                }, aa)));\n            }\n             else x = (m.DOM.div({\n                className: \"_1mj2\"\n            }, m.DOM.div({\n                className: \"_1miz\"\n            }, l(null, m.DOM.a({\n                className: \"_1mj5\",\n                href: this.props.src\n            }, m.DOM.span({\n                className: \"_3qi6\"\n            }, m.DOM.i({\n                className: \"_1mj6\"\n            })), m.DOM.span({\n                className: \"_1mj7\"\n            }, \"Voice Message\"), m.DOM.span({\n                className: \"_1mj8\"\n            }, v)), m.DOM.a({\n                href: this.props.src,\n                className: \"_1mj9\"\n            }, m.DOM.i({\n                className: \"_1mja\"\n            }))))));\n        ;\n        ;\n            return (m.DOM.div({\n                className: \"_1mjb\"\n            }, x));\n        }\n    });\n    e.exports = s;\n});\n__d(\"MercuryStickersFlyoutList.react\", [\"Animation\",\"React\",\"JSBNG__Image.react\",\"cx\",\"fbt\",\"ix\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"React\"), i = b(\"JSBNG__Image.react\"), j = b(\"cx\"), k = b(\"fbt\"), l = b(\"ix\"), m = 5, n = \"Sticker Store\", o = h.createClass({\n        displayName: \"MercuryStickersFlyoutList\",\n        _calculateNumPages: function(q) {\n            return Math.max(1, Math.ceil(((((q.length - 1)) / m))));\n        },\n        getInitialState: function() {\n            return {\n                animating: false,\n                selectedId: this.props.packs[0].id,\n                page: 0,\n                numPages: this._calculateNumPages(this.props.packs)\n            };\n        },\n        componentWillReceiveProps: function(q) {\n            this.setState({\n                numPages: this._calculateNumPages(q.packs)\n            });\n        },\n        shouldComponentUpdate: function(q, r) {\n            return !r.animating;\n        },\n        _canGoPrev: function() {\n            return ((this.state.page > 0));\n        },\n        _canGoNext: function() {\n            return ((((this.state.page + 1)) < this.state.numPages));\n        },\n        _setPage: function(q) {\n            if (this.state.animating) {\n                return;\n            }\n        ;\n        ;\n            this.setState({\n                animating: true,\n                page: q\n            });\n            var r = this.refs.positioner.getDOMNode();\n            new g(r).to(\"marginLeft\", ((-r.childNodes[q].offsetLeft + \"px\"))).ondone(function() {\n                this.setState({\n                    animating: false\n                });\n            }.bind(this)).duration(200).go();\n        },\n        _back: function() {\n            ((this._canGoPrev() && this._setPage(((this.state.page - 1)))));\n        },\n        _next: function() {\n            ((this._canGoNext() && this._setPage(((this.state.page + 1)))));\n        },\n        render: function() {\n            var q = this.props.packs, r = this.props.onPackClick, s = [];\n            q.forEach(function(y, z) {\n                s.push(p({\n                    key: y.id,\n                    onClick: function() {\n                        ((r && r(y.id)));\n                        this.setState({\n                            selectedId: y.id\n                        });\n                    }.bind(this),\n                    pack: y,\n                    selected: ((this.state.selectedId === y.id))\n                }));\n            }.bind(this));\n            var t = [], u = [];\n            s.forEach(function(y, z) {\n                u.push(y);\n                if (((((z > 0)) && ((((((z % m)) === 0)) || ((z === ((s.length - 1))))))))) {\n                    t.push(h.DOM.div({\n                        className: \"_58_z\"\n                    }, u));\n                    u = [];\n                }\n            ;\n            ;\n            });\n            var v = (((((\"_58_w\") + ((\" \" + \"lfloat\")))) + ((!this._canGoPrev() ? ((\" \" + \"hidden_elem\")) : \"\")))), w = (((((\"_58_x\") + ((\" \" + \"rfloat\")))) + ((!this._canGoNext() ? ((\" \" + \"hidden_elem\")) : \"\")))), x;\n            if (((t.length > 1))) {\n                x = h.DOM.a({\n                    className: w,\n                    onClick: this._next\n                }, i({\n                    className: \"_590q\",\n                    src: l(\"/images/messaging/stickers/selector/rightarrow.png\")\n                }));\n            }\n        ;\n        ;\n            return (h.DOM.div({\n                className: \"_5908\"\n            }, h.DOM.a({\n                ajaxify: \"/ajax/messaging/stickers/store\",\n                \"aria-label\": n,\n                className: \"_59wb rfloat\",\n                \"data-hover\": \"tooltip\",\n                ref: \"store\",\n                rel: \"dialog\"\n            }, i({\n                className: \"_5bo3\",\n                src: l(\"/images/messaging/stickers/selector/store.png\")\n            })), h.DOM.a({\n                className: v,\n                onClick: this._back\n            }, i({\n                className: \"_590q\",\n                src: l(\"/images/messaging/stickers/selector/leftarrow.png\")\n            })), x, h.DOM.div({\n                className: \"_590r\"\n            }, h.DOM.div({\n                className: \"_58_y\",\n                ref: \"positioner\"\n            }, t))));\n        }\n    }), p = h.createClass({\n        displayName: \"PackIcon\",\n        render: function() {\n            var q = this.props.pack, r = (((\"_55bn\") + ((this.props.selected ? ((\" \" + \"_55bo\")) : \"\"))));\n            return (h.DOM.a({\n                \"aria-label\": q.JSBNG__name,\n                className: r,\n                \"data-id\": q.id,\n                \"data-hover\": \"tooltip\",\n                onClick: function() {\n                    ((this.props.onClick && this.props.onClick(q.id)));\n                }.bind(this)\n            }, h.DOM.img({\n                className: \"_55bw\",\n                src: q.icon\n            }), h.DOM.img({\n                className: \"_590u\",\n                src: q.selectedIcon\n            })));\n        }\n    });\n    e.exports = o;\n});\n__d(\"str2rstr\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        var i = \"\", j, k;\n        for (var l = 0; ((l < h.length)); l++) {\n            j = h.charCodeAt(l);\n            k = ((((((l + 1)) < h.length)) ? h.charCodeAt(((l + 1))) : 0));\n            if (((((((((55296 <= j)) && ((j <= 56319)))) && ((56320 <= k)))) && ((k <= 57343))))) {\n                j = ((((65536 + ((((j & 1023)) << 10)))) + ((k & 1023))));\n                l++;\n            }\n        ;\n        ;\n            if (((j <= 127))) {\n                i += String.fromCharCode(j);\n            }\n             else if (((j <= 2047))) {\n                i += String.fromCharCode(((192 | ((((j >>> 6)) & 31)))), ((128 | ((j & 63)))));\n            }\n             else if (((j <= 65535))) {\n                i += String.fromCharCode(((224 | ((((j >>> 12)) & 15)))), ((128 | ((((j >>> 6)) & 63)))), ((128 | ((j & 63)))));\n            }\n             else if (((j <= 2097151))) {\n                i += String.fromCharCode(((240 | ((((j >>> 18)) & 7)))), ((128 | ((((j >>> 12)) & 63)))), ((128 | ((((j >>> 6)) & 63)))), ((128 | ((j & 63)))));\n            }\n            \n            \n            \n        ;\n        ;\n        };\n    ;\n        return i;\n    };\n;\n    e.exports = g;\n});\n__d(\"md5\", [\"str2rstr\",], function(a, b, c, d, e, f) {\n    var g = b(\"str2rstr\");\n    function h(u, v) {\n        var w = u[0], x = u[1], y = u[2], z = u[3];\n        w = j(w, x, y, z, v[0], 7, -680876936);\n        z = j(z, w, x, y, v[1], 12, -389564586);\n        y = j(y, z, w, x, v[2], 17, 606105819);\n        x = j(x, y, z, w, v[3], 22, -1044525330);\n        w = j(w, x, y, z, v[4], 7, -176418897);\n        z = j(z, w, x, y, v[5], 12, 1200080426);\n        y = j(y, z, w, x, v[6], 17, -1473231341);\n        x = j(x, y, z, w, v[7], 22, -45705983);\n        w = j(w, x, y, z, v[8], 7, 1770035416);\n        z = j(z, w, x, y, v[9], 12, -1958414417);\n        y = j(y, z, w, x, v[10], 17, -42063);\n        x = j(x, y, z, w, v[11], 22, -1990404162);\n        w = j(w, x, y, z, v[12], 7, 1804603682);\n        z = j(z, w, x, y, v[13], 12, -40341101);\n        y = j(y, z, w, x, v[14], 17, -1502002290);\n        x = j(x, y, z, w, v[15], 22, 1236535329);\n        w = k(w, x, y, z, v[1], 5, -165796510);\n        z = k(z, w, x, y, v[6], 9, -1069501632);\n        y = k(y, z, w, x, v[11], 14, 643717713);\n        x = k(x, y, z, w, v[0], 20, -373897302);\n        w = k(w, x, y, z, v[5], 5, -701558691);\n        z = k(z, w, x, y, v[10], 9, 38016083);\n        y = k(y, z, w, x, v[15], 14, -660478335);\n        x = k(x, y, z, w, v[4], 20, -405537848);\n        w = k(w, x, y, z, v[9], 5, 568446438);\n        z = k(z, w, x, y, v[14], 9, -1019803690);\n        y = k(y, z, w, x, v[3], 14, -187363961);\n        x = k(x, y, z, w, v[8], 20, 1163531501);\n        w = k(w, x, y, z, v[13], 5, -1444681467);\n        z = k(z, w, x, y, v[2], 9, -51403784);\n        y = k(y, z, w, x, v[7], 14, 1735328473);\n        x = k(x, y, z, w, v[12], 20, -1926607734);\n        w = l(w, x, y, z, v[5], 4, -378558);\n        z = l(z, w, x, y, v[8], 11, -2022574463);\n        y = l(y, z, w, x, v[11], 16, 1839030562);\n        x = l(x, y, z, w, v[14], 23, -35309556);\n        w = l(w, x, y, z, v[1], 4, -1530992060);\n        z = l(z, w, x, y, v[4], 11, 1272893353);\n        y = l(y, z, w, x, v[7], 16, -155497632);\n        x = l(x, y, z, w, v[10], 23, -1094730640);\n        w = l(w, x, y, z, v[13], 4, 681279174);\n        z = l(z, w, x, y, v[0], 11, -358537222);\n        y = l(y, z, w, x, v[3], 16, -722521979);\n        x = l(x, y, z, w, v[6], 23, 76029189);\n        w = l(w, x, y, z, v[9], 4, -640364487);\n        z = l(z, w, x, y, v[12], 11, -421815835);\n        y = l(y, z, w, x, v[15], 16, 530742520);\n        x = l(x, y, z, w, v[2], 23, -995338651);\n        w = m(w, x, y, z, v[0], 6, -198630844);\n        z = m(z, w, x, y, v[7], 10, 1126891415);\n        y = m(y, z, w, x, v[14], 15, -1416354905);\n        x = m(x, y, z, w, v[5], 21, -57434055);\n        w = m(w, x, y, z, v[12], 6, 1700485571);\n        z = m(z, w, x, y, v[3], 10, -1894986606);\n        y = m(y, z, w, x, v[10], 15, -1051523);\n        x = m(x, y, z, w, v[1], 21, -2054922799);\n        w = m(w, x, y, z, v[8], 6, 1873313359);\n        z = m(z, w, x, y, v[15], 10, -30611744);\n        y = m(y, z, w, x, v[6], 15, -1560198380);\n        x = m(x, y, z, w, v[13], 21, 1309151649);\n        w = m(w, x, y, z, v[4], 6, -145523070);\n        z = m(z, w, x, y, v[11], 10, -1120210379);\n        y = m(y, z, w, x, v[2], 15, 718787259);\n        x = m(x, y, z, w, v[9], 21, -343485551);\n        u[0] = s(w, u[0]);\n        u[1] = s(x, u[1]);\n        u[2] = s(y, u[2]);\n        u[3] = s(z, u[3]);\n    };\n;\n    function i(u, v, w, x, y, z) {\n        v = s(s(v, u), s(x, z));\n        return s(((((v << y)) | ((v >>> ((32 - y)))))), w);\n    };\n;\n    function j(u, v, w, x, y, z, aa) {\n        return i(((((v & w)) | (((~v) & x)))), u, v, y, z, aa);\n    };\n;\n    function k(u, v, w, x, y, z, aa) {\n        return i(((((v & x)) | ((w & (~x))))), u, v, y, z, aa);\n    };\n;\n    function l(u, v, w, x, y, z, aa) {\n        return i(((((v ^ w)) ^ x)), u, v, y, z, aa);\n    };\n;\n    function m(u, v, w, x, y, z, aa) {\n        return i(((w ^ ((v | (~x))))), u, v, y, z, aa);\n    };\n;\n    function n(u) {\n        var v = u.length, w = [1732584193,-271733879,-1732584194,271733878,], x;\n        for (x = 64; ((x <= u.length)); x += 64) {\n            h(w, o(u.substring(((x - 64)), x)));\n        ;\n        };\n    ;\n        u = u.substring(((x - 64)));\n        var y = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,];\n        for (x = 0; ((x < u.length)); x++) {\n            y[((x >> 2))] |= ((u.charCodeAt(x) << ((((x & 3)) << 3))));\n        ;\n        };\n    ;\n        y[((x >> 2))] |= ((128 << ((((x & 3)) << 3))));\n        if (((x > 55))) {\n            h(w, y);\n            for (x = 0; ((x < 16)); x++) {\n                y[x] = 0;\n            ;\n            };\n        ;\n        }\n    ;\n    ;\n        y[14] = ((v * 8));\n        h(w, y);\n        return w;\n    };\n;\n    function o(u) {\n        var v = [], w = 0;\n        while (((w < 64))) {\n            v[((w >> 2))] = ((((((u.charCodeAt(w++) | ((u.charCodeAt(w++) << 8)))) | ((u.charCodeAt(w++) << 16)))) | ((u.charCodeAt(w++) << 24))));\n        ;\n        };\n    ;\n        return v;\n    };\n;\n    var p = \"0123456789abcdef\".split(\"\");\n    function q(u) {\n        var v = \"\", w = 0;\n        for (; ((w < 4)); w++) {\n            v += ((p[((((u >> ((((w << 3)) + 4)))) & 15))] + p[((((u >> ((w << 3)))) & 15))]));\n        ;\n        };\n    ;\n        return v;\n    };\n;\n    function r(u) {\n        for (var v = 0; ((v < u.length)); v++) {\n            u[v] = q(u[v]);\n        ;\n        };\n    ;\n        return u.join(\"\");\n    };\n;\n    var s = function(u, v) {\n        return ((((u + v)) & 4294967295));\n    };\n    function t(u) {\n        if (((((null === u)) || ((undefined === u))))) {\n            return null;\n        }\n         else {\n            for (var v = 0; ((v < u.length)); v++) {\n                if (((u[v] > \"\7f\"))) {\n                    u = g(u);\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n            return r(n(u));\n        }\n    ;\n    ;\n    };\n;\n    if (((t(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\"))) {\n        s = function(u, v) {\n            var w = ((((u & 65535)) + ((v & 65535)))), x = ((((((u >> 16)) + ((v >> 16)))) + ((w >> 16))));\n            return ((((x << 16)) | ((w & 65535))));\n        };\n    }\n;\n;\n    e.exports = t;\n});\n__d(\"isRTL\", [], function(a, b, c, d, e, f) {\n    var g = ((\"A-Za-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02b8\\u0300-\\u0590\\u0800-\\u1fff\" + \"\\u200e\\u2c00-\\ufb1c\\ufe00-\\ufe6f\\ufefd-\\uffff\")), h = \"\\u0591-\\u07ff\\u200f\\ufb1d-\\ufdff\\ufe70-\\ufefc\", i = new RegExp(((((((((\"^[^\" + g)) + \"]*[\")) + h)) + \"]\"))), j = new RegExp(((((\"[\" + g)) + \"]\")));\n    function k(l) {\n        var m = 0, n = 0;\n        l.split(/\\s+/, 20).forEach(function(o) {\n            if (/^https?:\\/\\//.test(o)) {\n                return;\n            }\n        ;\n        ;\n            if (i.test(o)) {\n                n++;\n                m++;\n            }\n             else if (j.test(o)) {\n                m++;\n            }\n            \n        ;\n        ;\n        });\n        return !!((m && ((((n / m)) > 14503))));\n    };\n;\n    e.exports = k;\n});\n__d(\"WaterfallIDGenerator\", [\"Env\",\"md5\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"md5\");\n    function i() {\n        var l = 2147483647;\n        return ((Math.JSBNG__random() * l));\n    };\n;\n    function j() {\n        return Math.floor(((JSBNG__Date.now() / 1000)));\n    };\n;\n    var k = {\n        generate: function() {\n            return h([g.user,j(),i(),].join(\":\"));\n        }\n    };\n    e.exports = k;\n});\n__d(\"FeatureDetection\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\");\n    e.exports = {\n        isFileAPISupported: function() {\n            if (((((g.webkit() && !g.chrome())) && g.windows()))) {\n                return false;\n            }\n        ;\n        ;\n            return ((((\"JSBNG__FileList\" in window)) && ((\"JSBNG__FormData\" in window))));\n        },\n        isBlobFactorySupported: function() {\n            return !!a.JSBNG__Blob;\n        }\n    };\n});\n__d(\"AsyncUploadBase\", [\"ArbiterMixin\",\"AsyncRequest\",\"AsyncResponse\",\"Form\",\"FeatureDetection\",\"copyProperties\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"Form\"), k = b(\"FeatureDetection\"), l = b(\"copyProperties\"), m = b(\"removeFromArray\");\n    function n(p) {\n        this.setURI(p);\n    };\n;\n    n.isSupported = function() {\n        return k.isFileAPISupported();\n    };\n    l(n.prototype, g, {\n        _limit: 10,\n        setAllowCrossOrigin: function(p) {\n            this._allowCrossOrigin = !!p;\n            return this;\n        },\n        setData: function(p) {\n            this._data = p;\n            return this;\n        },\n        setLimit: function(p) {\n            this._limit = p;\n            return this;\n        },\n        setRelativeTo: function(p) {\n            this._relativeTo = p;\n            return this;\n        },\n        setStatusElement: function(p) {\n            this._statusElement = p;\n            return this;\n        },\n        setURI: function(p) {\n            this._uri = p;\n            return this;\n        },\n        suspend: function() {\n            this._suspended = true;\n            return this;\n        },\n        resume: function() {\n            this._suspended = false;\n            this._processQueue();\n            return this;\n        },\n        isUploading: function() {\n            return this._inFlight;\n        },\n        _createFileUpload: function(p, q, r) {\n            return new o(p, q, r);\n        },\n        _parseFiles: function(p) {\n            var q = {\n            };\n            {\n                var fin262keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin262i = (0);\n                var r;\n                for (; (fin262i < fin262keys.length); (fin262i++)) {\n                    ((r) = (fin262keys[fin262i]));\n                    {\n                        var s = p[r];\n                        if (Array.isArray(s)) {\n                            q[r] = s;\n                        }\n                         else {\n                            q[r] = [];\n                            if (((s instanceof window.JSBNG__FileList))) {\n                                for (var t = 0; ((t < s.length)); t++) {\n                                    q[r].push(s.item(t));\n                                ;\n                                };\n                            ;\n                            }\n                             else if (((((s instanceof window.JSBNG__File)) || ((s instanceof window.JSBNG__Blob))))) {\n                                q[r].push(s);\n                            }\n                            \n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return q;\n        },\n        _processQueue: function() {\n            if (this._suspended) {\n                return;\n            }\n        ;\n        ;\n            while (((this._pending.length < this._limit))) {\n                if (!this._waiting.length) {\n                    break;\n                }\n            ;\n            ;\n                var p = this._waiting.shift();\n                this._processUpload(p);\n                this._pending.push(p);\n            };\n        ;\n        },\n        _processUpload: function(p) {\n            var q = j.createFormData(((p.getData() || this._data)));\n            if (p.getFile()) {\n                q.append(p.getName(), p.getFile());\n                q.append(\"upload_id\", p.getFile().uploadID);\n            }\n        ;\n        ;\n            var r = new h().setAllowCrossOrigin(this._allowCrossOrigin).setURI(this._uri).setRawData(q).setRelativeTo(this._relativeTo).setStatusElement(this._statusElement).setHandler(this._success.bind(this, p)).setErrorHandler(this._failure.bind(this, p)).setUploadProgressHandler(this._progress.bind(this, p)).setInitialHandler(this._initial.bind(this, p));\n            r.send();\n            p.setAsyncRequest(r);\n            this._inFlight = true;\n            this.inform(\"start\", p);\n        },\n        _abort: function(p) {\n            m(this._waiting, p);\n            p.abort();\n        },\n        _initial: function(p) {\n            this.inform(\"initial\", p);\n        },\n        _success: function(p, q) {\n            this._complete(p);\n            this.inform(\"success\", p.handleSuccess(q));\n            this._processQueue();\n        },\n        _failure: function(p, q) {\n            this._complete(p);\n            if (((this.inform(\"failure\", p.handleFailure(q)) !== false))) {\n                i.defaultErrorHandler(q);\n            }\n        ;\n        ;\n            this._processQueue();\n        },\n        _progress: function(p, JSBNG__event) {\n            this.inform(\"progress\", p.handleProgress(JSBNG__event));\n        },\n        _complete: function(p) {\n            m(this._pending, p);\n            if (!this._pending.length) {\n                this._inFlight = false;\n            }\n        ;\n        ;\n        }\n    });\n    var o = function(p, q, r) {\n        this._name = p;\n        this._file = q;\n        this._data = r;\n        this._success = null;\n        this._response = null;\n        this._progressEvent = null;\n        this._request = null;\n    };\n    l(o.prototype, {\n        getName: function() {\n            return this._name;\n        },\n        getFile: function() {\n            return this._file;\n        },\n        getData: function() {\n            return this._data;\n        },\n        isComplete: function() {\n            return ((this._success !== null));\n        },\n        isSuccess: function() {\n            return ((this._success === true));\n        },\n        getResponse: function() {\n            return this._response;\n        },\n        getProgressEvent: function() {\n            return this._progressEvent;\n        },\n        setAsyncRequest: function(p) {\n            this._request = p;\n            return this;\n        },\n        isWaiting: function() {\n            return !this._request;\n        },\n        abort: function() {\n            ((this._request && this._request.abort()));\n            this._request = null;\n        },\n        handleSuccess: function(p) {\n            this._success = true;\n            this._response = p;\n            this._progressEvent = null;\n            return this;\n        },\n        handleFailure: function(p) {\n            this._success = false;\n            this._response = p;\n            this._progressEvent = null;\n            return this;\n        },\n        handleProgress: function(JSBNG__event) {\n            this._progressEvent = JSBNG__event;\n            return this;\n        }\n    });\n    e.exports = n;\n});\n__d(\"AsyncUploadRequest\", [\"AsyncUploadBase\",\"Class\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncUploadBase\"), h = b(\"Class\"), i = b(\"copyProperties\");\n    function j(k) {\n        this.parent.construct(this, k);\n    };\n;\n    j.isSupported = function() {\n        return g.isSupported();\n    };\n    h.extend(j, g);\n    i(j.prototype, {\n        setFiles: function(k) {\n            this._files = this._parseFiles(k);\n            return this;\n        },\n        send: function() {\n            if (this._inFlight) {\n                return;\n            }\n        ;\n        ;\n            this._inFlight = true;\n            this._uploads = [];\n            {\n                var fin263keys = ((window.top.JSBNG_Replay.forInKeys)((this._files))), fin263i = (0);\n                var k;\n                for (; (fin263i < fin263keys.length); (fin263i++)) {\n                    ((k) = (fin263keys[fin263i]));\n                    {\n                        this._files[k].forEach(function(l) {\n                            this._uploads.push(this._createFileUpload(k, l));\n                        }.bind(this));\n                    ;\n                    };\n                };\n            };\n        ;\n            if (this._uploads.length) {\n                this._waiting = this._uploads.slice(0);\n                this._pending = [];\n                this._processQueue();\n            }\n             else this._processUpload(this._createFileUpload(null, null));\n        ;\n        ;\n        },\n        _processQueue: function() {\n            this.parent._processQueue();\n            if (((!this._pending.length && !this._waiting.length))) {\n                this.inform(\"complete\", this._uploads);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = j;\n});\n__d(\"FileForm\", [\"ArbiterMixin\",\"AsyncRequest\",\"AsyncResponse\",\"AsyncUploadRequest\",\"BehaviorsMixin\",\"DataStore\",\"DOMQuery\",\"Env\",\"JSBNG__Event\",\"Form\",\"JSONPTransport\",\"Parent\",\"URI\",\"copyProperties\",\"shield\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"AsyncUploadRequest\"), k = b(\"BehaviorsMixin\"), l = b(\"DataStore\"), m = b(\"DOMQuery\"), n = b(\"Env\"), o = b(\"JSBNG__Event\"), p = b(\"Form\"), q = b(\"JSONPTransport\"), r = b(\"Parent\"), s = b(\"URI\"), t = b(\"copyProperties\"), u = b(\"shield\");\n    function v(y) {\n        var z = {\n        }, aa = m.scry(y, \"input[type=\\\"file\\\"]\");\n        aa.forEach(function(ba) {\n            z[ba.JSBNG__name] = ba.files;\n        });\n        return z;\n    };\n;\n    function w(y) {\n        var z = m.scry(y, \"input[type=\\\"file\\\"]\");\n        z.forEach(function(aa) {\n            aa.files = null;\n        });\n    };\n;\n    function x(y, z, aa) {\n        if (((y.getAttribute(\"rel\") === \"async\"))) {\n            throw new Error(\"FileForm cannot be used with Primer forms.\");\n        }\n    ;\n    ;\n        if (((y.getAttribute(\"method\").toUpperCase() !== \"POST\"))) {\n            throw new Error(\"FileForm must be used with POST forms.\");\n        }\n    ;\n    ;\n        this._form = y;\n        this._previousEncoding = this._form.enctype;\n        this._form.enctype = this._form.encoding = \"multipart/form-data\";\n        ((z && this.enableBehaviors(z)));\n        this._options = ((aa || {\n        }));\n        this.setAllowCrossOrigin(this._options.allowCrossOrigin);\n        this.setUploadInParallel(this._options.uploadInParallel);\n        this._listener = o.listen(this._form, \"submit\", this._submit.bind(this));\n        l.set(this._form, \"FileForm\", this);\n    };\n;\n    t(x, {\n        EVENTS: [\"start\",\"submit\",\"initial\",\"progress\",\"success\",\"failure\",],\n        getInstance: function(y) {\n            return l.get(y, \"FileForm\");\n        }\n    });\n    t(x.prototype, g, k, {\n        getRoot: function() {\n            return this._form;\n        },\n        setAllowCrossOrigin: function(y) {\n            this._allowCrossOrigin = !!y;\n            return this;\n        },\n        setUploadInParallel: function(y) {\n            this._uploadInParallel = !!y;\n            return this;\n        },\n        _submit: function(JSBNG__event) {\n            if (((this.inform(\"submit\") === false))) {\n                JSBNG__event.prevent();\n                return;\n            }\n        ;\n        ;\n            var y = ((\"JSBNG__FormData\" in window));\n            if (y) {\n                if (((!s(this._form.action).isSameOrigin() && !this._allowCrossOrigin))) {\n                    y = false;\n                }\n            ;\n            }\n        ;\n        ;\n            return ((y ? this._sendViaXHR(JSBNG__event) : this._sendViaFrame(JSBNG__event)));\n        },\n        _sendViaFrame: function(JSBNG__event) {\n            var y = this._request = new h();\n            y.setStatusElement(this._getStatusElement());\n            y.addStatusIndicator();\n            y.setOption(\"useIframeTransport\", true);\n            var z = y.handleResponse.bind(y), aa = new q(\"div\", this._form.action, z), ba = aa.getTransportFrame(), ca = aa.getRequestURI().addQueryData({\n                __iframe: true,\n                __user: n.user\n            });\n            this._form.setAttribute(\"action\", ca.toString());\n            this._form.setAttribute(\"target\", ba.JSBNG__name);\n            y.setJSONPTransport(aa);\n            y.setURI(ca);\n            y.setHandler(this.success.bind(this, null));\n            y.setErrorHandler(this.failure.bind(this, null));\n            y.setInitialHandler(u(this.initial, this, null));\n        },\n        _sendViaXHR: function(JSBNG__event) {\n            var y;\n            if (((this._uploadInParallel && j.isSupported()))) {\n                y = new j().setData(p.serialize(this._form)).setFiles(v(this._form));\n                var z = [y.subscribe(\"progress\", function(aa, ba) {\n                    this.progress(ba, ba.getProgressEvent());\n                }.bind(this)),y.subscribe(\"initial\", function(aa, ba) {\n                    this.initial(ba, ba.getResponse());\n                }.bind(this)),y.subscribe(\"success\", function(aa, ba) {\n                    this.success(ba, ba.getResponse());\n                }.bind(this)),y.subscribe(\"start\", function(aa, ba) {\n                    this.inform(\"start\", {\n                        upload: ba\n                    });\n                }.bind(this)),y.subscribe(\"failure\", function(aa, ba) {\n                    this.failure(ba, ba.getResponse());\n                    return false;\n                }.bind(this)),y.subscribe(\"complete\", function() {\n                    while (z.length) {\n                        z.pop().unsubscribe();\n                    ;\n                    };\n                ;\n                }),];\n            }\n             else y = new h().setRawData(p.createFormData(this._form)).setHandler(this.success.bind(this, null)).setErrorHandler(this.failure.bind(this, null)).setUploadProgressHandler(this.progress.bind(this, null)).setInitialHandler(u(this.initial, this, null));\n        ;\n        ;\n            y.setAllowCrossOrigin(this._allowCrossOrigin).setRelativeTo(this._form).setStatusElement(this._getStatusElement()).setURI(this._form.action).send();\n            this._request = y;\n            JSBNG__event.prevent();\n        },\n        initial: function(y) {\n            return this.inform(\"initial\", {\n                upload: y\n            });\n        },\n        success: function(y, z) {\n            var aa = {\n                response: z,\n                upload: y\n            };\n            if (((this.inform(\"success\", aa) !== false))) {\n                o.fire(this._form, \"success\", aa);\n            }\n        ;\n        ;\n            this._cleanup();\n        },\n        failure: function(y, z) {\n            var aa = {\n                response: z,\n                upload: y\n            };\n            if (((this.inform(\"failure\", aa) !== false))) {\n                if (((o.fire(this._form, \"error\", aa) !== false))) {\n                    i.defaultErrorHandler(z);\n                }\n            ;\n            }\n        ;\n        ;\n            this._cleanup();\n        },\n        progress: function(y, JSBNG__event) {\n            this.inform(\"progress\", {\n                JSBNG__event: JSBNG__event,\n                upload: y\n            });\n        },\n        abort: function() {\n            if (this._request) {\n                this._request.abort();\n                this._cleanup();\n            }\n        ;\n        ;\n        },\n        clear: function() {\n            w(this._form);\n        },\n        destroy: function() {\n            this._cleanup();\n            this._listener.remove();\n            this._listener = null;\n            this._form.enctype = this._form.encoding = this._previousEncoding;\n            l.remove(this._form, \"FileForm\");\n        },\n        _cleanup: function() {\n            this._request = null;\n        },\n        _getStatusElement: function() {\n            return ((r.byClass(this._form, \"stat_elem\") || this._form));\n        }\n    });\n    e.exports = x;\n});\n__d(\"FileFormResetOnSubmit\", [\"DOMQuery\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._form = j;\n    };\n;\n    h(i.prototype, {\n        enable: function() {\n            this._subscription = this._form.subscribe(\"submit\", Function.prototype.defer.bind(this._reset.bind(this)));\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        },\n        _reset: function() {\n            var j = g.scry(this._form.getRoot(), \"input[type=\\\"file\\\"]\");\n            j.forEach(function(k) {\n                k.value = \"\";\n            });\n        }\n    });\n    e.exports = i;\n});\n__d(\"submitForm\", [\"DOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = function(i) {\n        var j = g.scry(i, \"input[type=\\\"submit\\\"]\")[0];\n        if (j) {\n            j.click();\n        }\n         else {\n            j = g.create(\"input\", {\n                type: \"submit\",\n                className: \"hidden_elem\"\n            });\n            g.appendContent(i, j);\n            j.click();\n            g.remove(j);\n        }\n    ;\n    ;\n    };\n    e.exports = h;\n});\n__d(\"FormSubmitOnChange\", [\"JSBNG__Event\",\"copyProperties\",\"submitForm\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"submitForm\");\n    function j(k) {\n        this._form = k;\n    };\n;\n    h(j.prototype, {\n        _listener: null,\n        enable: function() {\n            this._listener = g.listen(this._form.getRoot(), \"change\", this._submit.bind(this));\n        },\n        disable: function() {\n            this._listener.remove();\n            this._listener = null;\n        },\n        _submit: function() {\n            i(this._form.getRoot());\n        }\n    });\n    e.exports = j;\n});\n__d(\"MercuryFileUploader\", [\"ArbiterMixin\",\"CSS\",\"Dialog\",\"DOM\",\"JSBNG__Event\",\"FileForm\",\"FileFormResetOnSubmit\",\"FileInput\",\"FormSubmitOnChange\",\"MercuryAttachment\",\"MercuryAttachmentTemplates\",\"MercuryConstants\",\"SubscriptionsHandler\",\"copyProperties\",\"csx\",\"getObjectValues\",\"shield\",\"startsWith\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"Dialog\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"FileForm\"), m = b(\"FileFormResetOnSubmit\"), n = b(\"FileInput\"), o = b(\"FormSubmitOnChange\"), p = b(\"MercuryAttachment\"), q = b(\"MercuryAttachmentTemplates\"), r = b(\"MercuryConstants\"), s = b(\"SubscriptionsHandler\"), t = b(\"copyProperties\"), u = b(\"csx\"), v = b(\"getObjectValues\"), w = b(\"shield\"), x = b(\"startsWith\"), y = b(\"tx\"), z = 0;\n    function aa(ca, da, ea, fa) {\n        this._parentElem = ca;\n        this._attachments = {\n        };\n        this._imageIDs = {\n        };\n        this._uploading = {\n        };\n        this._uploadTemplates = {\n        };\n        this._uploadStartTimes = {\n        };\n        this._subscriptionsHandler = new s();\n        this._fileForm = new l(da, [o,m,]);\n        this._fileForm.setAllowCrossOrigin(true);\n        this._fileForm.setUploadInParallel(true);\n        var ga = j.JSBNG__find(da, \"._4q60\"), ha = j.JSBNG__find(ga, \"._4q61\");\n        new n(ga, ha, ea);\n        h.hide(this._parentElem);\n        this._subscriptionsHandler.addSubscriptions(this._fileForm.subscribe(\"submit\", function() {\n            var ia = ((\"upload_\" + z++));\n            fa.value = ia;\n            var ja = {\n                count: 0,\n                file_sizes: []\n            };\n            if (ea.files) {\n                for (var ka = 0; ((ka < ea.files.length)); ka++) {\n                    if (((ea.files[ka].size > r.AttachmentMaxSize))) {\n                        this._fileForm.abort();\n                        this._fileForm.clear();\n                        new i().setTitle(\"The file you have selected is too large\").setBody(\"The file you have selected is too large. The maximum size is 25MB.\").setButtons(i.OK).setSemiModal(true).show();\n                        return false;\n                    }\n                ;\n                ;\n                };\n            ;\n                for (var la = 0; ((la < ea.files.length)); la++) {\n                    this._addFileUploadRow(ia, ea.files[la].JSBNG__name);\n                    ja.count++;\n                    ja.file_sizes.push(ea.files[la].size);\n                };\n            ;\n            }\n             else {\n                this._addFileUploadRow(ia, ea.value);\n                ja.count = 1;\n            }\n        ;\n        ;\n            this.inform(\"submit\", ja);\n        }.bind(this)), this._fileForm.subscribe(\"success\", this._onFileUploadSuccess.bind(this)), this._fileForm.subscribe(\"failure\", this._onFileUploadFailure.bind(this)), k.listen(ha, \"click\", w(this.inform, this, \"open\")));\n    };\n;\n    t(aa.prototype, g, {\n        isUploading: function() {\n            return !!Object.keys(this._uploading).length;\n        },\n        getAttachments: function() {\n            return v(this._attachments);\n        },\n        getImageIDs: function() {\n            return v(this._imageIDs);\n        },\n        removeAttachments: function() {\n            v(this._uploadTemplates).forEach(function(ca) {\n                if (ca) {\n                    j.remove(ca.getRoot());\n                }\n            ;\n            ;\n            });\n            this._attachments = {\n            };\n            this._imageIDs = {\n            };\n            this._uploadTemplates = {\n            };\n            this._uploading = {\n            };\n            this._uploadStartTimes = {\n            };\n            h.hide(this._parentElem);\n            this.inform(\"dom-updated\");\n        },\n        destroy: function() {\n            this._subscriptionsHandler.release();\n            this._fileForm.destroy();\n            this.removeAttachments();\n        },\n        _addFileUploadRow: function(ca, da) {\n            var ea = q[\":fb:mercury:upload-file-row\"].build(), fa = ba(da), ga = ((((ca + \"/\")) + fa));\n            this._uploadTemplates[ga] = ea;\n            this._uploading[ga] = true;\n            this._uploadStartTimes[ga] = JSBNG__Date.now();\n            j.appendContent(ea.getNode(\"iconText\"), fa);\n            k.listen(ea.getNode(\"closeFileUpload\"), \"click\", this._removeFileUploader.bind(this, ga));\n            j.appendContent(this._parentElem, ea.getRoot());\n            h.show(this._parentElem);\n            this.inform(\"dom-updated\");\n        },\n        _removeFileUploader: function(ca, JSBNG__event) {\n            if (this._uploading[ca]) {\n                this.inform(\"upload-canceled-during-upload\");\n            }\n             else if (((this._attachments[ca] || this._imageIDs[ca]))) {\n                this.inform(\"upload-canceled-after-uploaded\");\n            }\n            \n        ;\n        ;\n            delete this._attachments[ca];\n            delete this._imageIDs[ca];\n            delete this._uploading[ca];\n            delete this._uploadStartTimes[ca];\n            var da = this._uploadTemplates[ca];\n            delete this._uploadTemplates[ca];\n            if (da) {\n                j.remove(da.getRoot());\n                this.inform(\"dom-updated\");\n            }\n        ;\n        ;\n            this.inform(\"upload-canceled\");\n            return false;\n        },\n        _updateFileUploader: function(ca, da) {\n            var ea = this._uploadTemplates[ca], fa = p.getAttachIconClassByMime(da);\n            h.addClass(ea.getNode(\"iconText\"), fa);\n            h.addClass(ea.getRoot(), \"done\");\n        },\n        _onFileUploadSuccess: function(JSBNG__event, ca) {\n            var da = ca.response.getPayload(), ea = da.uploadID, fa = da.metadata;\n            for (var ga = 0; ((ga < fa.length)); ga++) {\n                var ha = ((((ea + \"/\")) + fa[ga].filename));\n                if (this._uploading[ha]) {\n                    delete this._uploading[ha];\n                    if (fa[ga].image_id) {\n                        this._imageIDs[ha] = fa[ga].image_id;\n                    }\n                     else this._attachments[ha] = fa[ga];\n                ;\n                ;\n                    this._updateFileUploader(ha, fa[ga].filetype);\n                    this.inform(\"one-upload-completed\", {\n                        upload_time_ms: ((JSBNG__Date.now() - this._uploadStartTimes[ha]))\n                    });\n                }\n            ;\n            ;\n            };\n        ;\n            if (!this.isUploading()) {\n                this.inform(\"all-uploads-completed\", {\n                    count: this.getAttachments().length\n                });\n            }\n        ;\n        ;\n        },\n        _onFileUploadFailure: function(JSBNG__event, ca) {\n            this.inform(\"one-upload-failed\");\n        }\n    });\n    function ba(ca) {\n        if (((ca && x(ca, \"C:\\\\fakepath\\\\\")))) {\n            return ca.substring(12);\n        }\n    ;\n    ;\n        return ca;\n    };\n;\n    e.exports = aa;\n});\n__d(\"JoinableConversationMessageFilter\", [\"MercuryLogMessageType\",\"MercuryThreads\",\"MercuryParticipants\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryLogMessageType\"), h = b(\"MercuryThreads\").get(), i = b(\"MercuryParticipants\"), j = {\n        _isFilterable: function(k) {\n            var l = k.log_message_type;\n            if (!l) {\n                return false;\n            }\n        ;\n        ;\n            if (((l == g.JOINABLE_JOINED))) {\n                return ((k.log_message_data.joined_participant !== i.user));\n            }\n        ;\n        ;\n            if (((((l == g.UNSUBSCRIBE)) || ((l == g.SUBSCRIBE))))) {\n                var m = h.getThreadMetaNow(k.thread_id);\n                if (((m && m.is_joinable))) {\n                    return ((k.author !== i.user));\n                }\n            ;\n            ;\n                return false;\n            }\n        ;\n        ;\n            return false;\n        },\n        filterMessages: function(k, l, m) {\n            var n = [];\n            for (var o = 0; ((o < l.length)); o++) {\n                var p = l[o];\n                if (j._isFilterable(p)) {\n                    if (m) {\n                        k(p);\n                    }\n                ;\n                ;\n                }\n                 else n.push(p);\n            ;\n            ;\n            };\n        ;\n            return n;\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryThreadMuter\", [\"AsyncDialog\",\"AsyncRequest\",\"Env\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncDialog\"), h = b(\"AsyncRequest\"), i = b(\"Env\"), j = b(\"MercuryThreads\").get(), k = {\n        getUserIDEmail: function() {\n            return ((i.user + \"@facebook.com\"));\n        },\n        getThreadMuteSettingForUser: function(l) {\n            return ((l.mute_settings && l.mute_settings[k.getUserIDEmail()]));\n        },\n        isThreadMuted: function(l) {\n            return ((k.getThreadMuteSettingForUser(l) !== undefined));\n        },\n        showMuteChangeDialog: function(l, m) {\n            g.send(new h(\"/ajax/mercury/mute_thread_dialog.php\").setData({\n                muting: l\n            }), function(n) {\n                n.subscribe(\"JSBNG__confirm\", function() {\n                    this.hide();\n                    j.updateThreadMuteSetting(m, l);\n                }.bind(n));\n            });\n        }\n    };\n    e.exports = k;\n});\n__d(\"JoinStatusTabSheet\", [\"copyProperties\",\"DOM\",\"MercuryLogMessageType\",\"MercuryParticipants\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"DOM\"), i = b(\"MercuryLogMessageType\"), j = b(\"MercuryParticipants\");\n    function k(l, m) {\n        this._rootElement = l;\n        this._messageQueue = [];\n        this._sheetView = m;\n    };\n;\n    g(k.prototype, {\n        _setMessage: function(l, m) {\n            var n = l.author, o = l.log_message_type;\n            if (((o == i.JOINABLE_JOINED))) {\n                var p = l.log_message_data.joined_participant;\n                if (((p !== j.user))) {\n                    j.get(p, function(s) {\n                        h.setContent(m, h.tx._(\"{actor} joined the chat.\", {\n                            actor: s.JSBNG__name\n                        }));\n                    });\n                }\n            ;\n            ;\n            }\n             else if (((o == i.UNSUBSCRIBE))) {\n                if (((n !== j.user))) {\n                    j.get(n, function(s) {\n                        h.setContent(m, h.tx._(\"{actor} left the conversation.\", {\n                            actor: s.JSBNG__name\n                        }));\n                    });\n                }\n            ;\n            ;\n            }\n             else if (((o == i.SUBSCRIBE))) {\n                if (((n !== j.user))) {\n                    var q = l.log_message_data.added_participants;\n                    if (((q && ((q.length > 0))))) {\n                        var r = [n,q[0],];\n                        j.getMulti(r, function(s) {\n                            h.setContent(m, h.tx._(\"{actor} added {subscriber1}.\", {\n                                actor: s[n].JSBNG__name,\n                                subscriber1: s[q[0]].JSBNG__name\n                            }));\n                        });\n                    }\n                ;\n                ;\n                }\n            ;\n            }\n            \n            \n        ;\n        ;\n        },\n        isPermanent: function() {\n            return false;\n        },\n        getCloseTimeout: function() {\n            return 2000;\n        },\n        getType: function() {\n            return \"join_status_type\";\n        },\n        addToQueue: function(l) {\n            this._messageQueue.push(l);\n            if (((this._messageQueue.length === 1))) {\n                this._open();\n            }\n        ;\n        ;\n        },\n        render: function() {\n            var l = this._messageQueue[0], m = this._getTemplate().build();\n            this._setMessage(l, m.getNode(\"text\"));\n            h.setContent(this._rootElement, m.getRoot());\n        },\n        _open: function() {\n            this._sheetView.open(this);\n        },\n        autoCloseCallback: function() {\n            this._messageQueue.shift();\n            if (((this._messageQueue.length > 0))) {\n                this._open();\n            }\n        ;\n        ;\n        },\n        couldNotReplace: function() {\n            this._open.bind(this).defer(this.getCloseTimeout(), false);\n        }\n    });\n    e.exports = k;\n});\n__d(\"WebMessengerEvents\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = h(new g(), {\n        MASTER_DOM_CHANGED: \"master-dom-changed\",\n        DETAIL_DOM_CHANGED: \"detail-dom-changed\",\n        FOCUS_COMPOSER: \"focus-composer\",\n        FOCUS_SEARCH: \"focus-search\",\n        FOCUS_AND_SELECT_SEARCH: \"focus-and-select-search\",\n        SUBMIT_REPLY: \"submit-reply\",\n        UPDATE_SELECTION: \"update-selection\",\n        masterDOMChanged: function() {\n            this.inform(i.MASTER_DOM_CHANGED);\n        },\n        detailDOMChanged: function() {\n            this.inform(i.DETAIL_DOM_CHANGED);\n        },\n        focusComposer: function() {\n            this.inform(i.FOCUS_COMPOSER);\n        },\n        focusSearch: function() {\n            this.inform(i.FOCUS_SEARCH);\n        },\n        focusAndSelectSearch: function() {\n            this.inform(i.FOCUS_AND_SELECT_SEARCH);\n        },\n        updateSelection: function(j) {\n            this.inform(i.UPDATE_SELECTION, j);\n        },\n        submitReply: function() {\n            this.inform(i.SUBMIT_REPLY);\n        }\n    });\n    e.exports = i;\n});\n__d(\"WebMessengerSubscriptionsHandler\", [\"SubscriptionsHandler\",], function(a, b, c, d, e, f) {\n    var g = b(\"SubscriptionsHandler\"), h = new g(\"webmessenger\");\n    e.exports = h;\n});\n__d(\"isWebMessengerURI\", [], function(a, b, c, d, e, f) {\n    function g(h) {\n        return (/^(\\/messages)/).test(h.getPath());\n    };\n;\n    e.exports = g;\n});\n__d(\"WebMessengerWidthControl\", [\"Arbiter\",\"CSS\",\"CSSClassTransition\",\"DOMDimensions\",\"JSBNG__Event\",\"Style\",\"URI\",\"ViewportBounds\",\"WebMessengerEvents\",\"shield\",\"WebMessengerSubscriptionsHandler\",\"$\",\"cx\",\"isWebMessengerURI\",\"JSBNG__requestAnimationFrame\",\"throttle\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"CSSClassTransition\"), j = b(\"DOMDimensions\"), k = b(\"JSBNG__Event\"), l = b(\"Style\"), m = b(\"URI\"), n = b(\"ViewportBounds\"), o = b(\"WebMessengerEvents\"), p = b(\"shield\"), q = b(\"WebMessengerSubscriptionsHandler\"), r = b(\"$\"), s = b(\"cx\"), t = b(\"isWebMessengerURI\"), u = b(\"JSBNG__requestAnimationFrame\"), v = b(\"throttle\"), w = 205, x = 981, y = 257, z = 18, aa = 848, ba = 724, ca = 34096, da = 56, ea, fa, ga;\n    function ha(ma, na, oa) {\n        this.masterChanged = ma;\n        this.detailChaned = na;\n        q.addSubscriptions(k.listen(window, \"resize\", v(p(ia, this, this), 100)), g.subscribe([\"sidebar/initialized\",\"sidebar/show\",\"sidebar/hide\",], p(ia, this, this), g.SUBSCRIBE_NEW));\n        var pa = ((la() ? da : 0));\n        if (oa) {\n            pa = w;\n        }\n    ;\n    ;\n        this._width = ((la() ? 0 : aa));\n        ga = true;\n        ia(this, pa);\n    };\n;\n    function ia(ma, na) {\n        var oa = ((n.getRight() + n.getLeft()));\n        oa = ((((oa || na)) || 0));\n        var pa = ((j.getViewportWithoutScrollbarDimensions().width - oa)), qa = Math.round(Math.max(0, ((((pa / 2)) - ((x / 2))))));\n        pa = ((((x + qa)) - y));\n        pa -= z;\n        pa = Math.max(ba, Math.min(aa, pa));\n        if (((!isNaN(pa) && ((ma._width !== pa))))) {\n            ma._width = pa;\n            var ra = Math.round(((pa / ((1 + ca))))), sa = ((pa - ra));\n            ma.masterChanged(sa);\n            ma.detailChaned(ra);\n            if (la()) {\n                var ta = ((pa + y));\n                ja(function() {\n                    if (fa) {\n                        JSBNG__document.body.className = fa;\n                        fa = \"\";\n                    }\n                ;\n                ;\n                    ka(((ta + \"px\")));\n                    h.removeClass(JSBNG__document.body, \"_5262\");\n                    ((ga && o.detailDOMChanged()));\n                    ga = false;\n                }, fa);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function ja(ma, na) {\n        ((na && h.addClass(JSBNG__document.documentElement, \"_5261\")));\n        u(ma);\n        ((na && h.removeClass.curry(JSBNG__document.documentElement, \"_5261\").defer(1000, false)));\n    };\n;\n    function ka(ma) {\n        l.set(r(\"pageHead\"), \"width\", ma);\n        l.set(r(\"globalContainer\"), \"width\", ma);\n    };\n;\n    function la() {\n        if (!ea) {\n            ea = h.hasClass(JSBNG__document.body, \"_6nw\");\n        }\n    ;\n    ;\n        return ea;\n    };\n;\n    i.registerHandler(function(ma, na, oa, pa) {\n        function qa(ra) {\n            return ((la() && t(m(ra))));\n        };\n    ;\n        if (qa(pa)) {\n            fa = na;\n            return true;\n        }\n         else if (qa(oa)) {\n            ja(function() {\n                ma.className = na;\n                ka(\"\");\n            }, true);\n            return true;\n        }\n        \n    ;\n    ;\n    });\n    e.exports = ha;\n});\n__d(\"TextInputControl\", [\"JSBNG__Event\",\"function-extensions\",\"Class\",\"DOMControl\",\"Input\",\"copyProperties\",\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Class\"), i = b(\"DOMControl\"), j = b(\"Input\"), k = b(\"copyProperties\"), l = b(\"debounce\");\n    function m(n) {\n        this.parent.construct(this, n);\n        var o = this.getRoot(), p = l(this.update.bind(this), 0);\n        g.listen(o, {\n            input: p,\n            keydown: p,\n            paste: p\n        });\n    };\n;\n    h.extend(m, i);\n    k(m.prototype, {\n        setMaxLength: function(n) {\n            j.setMaxLength(this.getRoot(), n);\n            return this;\n        },\n        getValue: function() {\n            return j.getValue(this.getRoot());\n        },\n        isEmpty: function() {\n            return j.isEmpty(this.getRoot());\n        },\n        setValue: function(n) {\n            j.setValue(this.getRoot(), n);\n            this.update();\n            return this;\n        },\n        clear: function() {\n            return this.setValue(\"\");\n        },\n        setPlaceholderText: function(n) {\n            j.setPlaceholder(this.getRoot(), n);\n            return this;\n        }\n    });\n    e.exports = m;\n});\n__d(\"JSBNG__TextMetrics\", [\"JSBNG__Event\",\"DOM\",\"Style\",\"UserAgent\",\"debounce\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Style\"), j = b(\"UserAgent\"), k = b(\"debounce\"), l;\n    function m() {\n        if (((typeof l === \"undefined\"))) {\n            var o = h.create(\"div\", {\n                className: \"webkitZoomTest\"\n            }), p = function() {\n                h.appendContent(JSBNG__document.body, o);\n                l = ((100 / o.clientHeight));\n                h.remove(o);\n            };\n            g.listen(window, \"resize\", k(p, 100));\n            p();\n        }\n    ;\n    ;\n        return l;\n    };\n;\n    function n(o, p) {\n        this._node = o;\n        this._flexible = !!p;\n        var q = \"textarea\", r = \"textMetrics\";\n        if (this._flexible) {\n            q = \"div\";\n            r += \" textMetricsInline\";\n        }\n    ;\n    ;\n        this._shadow = h.create(q, {\n            className: r\n        });\n        var s = [\"fontSize\",\"fontStyle\",\"fontWeight\",\"fontFamily\",\"wordWrap\",];\n        s.forEach(function(u) {\n            i.set(this._shadow, u, i.get(o, u));\n        }.bind(this));\n        var t = i.get(o, \"lineHeight\");\n        if (((j.chrome() || j.webkit()))) {\n            t = ((Math.round(((parseInt(t, 10) * m()))) + \"px\"));\n        }\n    ;\n    ;\n        i.set(this._shadow, \"lineHeight\", t);\n        JSBNG__document.body.appendChild(this._shadow);\n    };\n;\n    n.prototype.measure = function(o) {\n        var p = this._node, q = this._shadow;\n        o = ((((o || p.value)) + \"...\"));\n        if (!this._flexible) {\n            var r = ((((p.clientWidth - i.getFloat(p, \"paddingLeft\"))) - i.getFloat(p, \"paddingRight\")));\n            i.set(q, \"width\", ((Math.max(r, 0) + \"px\")));\n        }\n    ;\n    ;\n        h.setContent(q, o);\n        return {\n            width: q.scrollWidth,\n            height: q.scrollHeight\n        };\n    };\n    n.prototype.destroy = function() {\n        h.remove(this._shadow);\n    };\n    e.exports = n;\n});\n__d(\"TextAreaControl\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"Class\",\"CSS\",\"DOMControl\",\"Style\",\"TextInputControl\",\"JSBNG__TextMetrics\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"Class\"), k = b(\"CSS\"), l = b(\"DOMControl\"), m = b(\"Style\"), n = b(\"TextInputControl\"), o = b(\"JSBNG__TextMetrics\"), p = b(\"copyProperties\");\n    function q(s, t) {\n        return ((m.getFloat(s, t) || 0));\n    };\n;\n    function r(s) {\n        this.autogrow = k.hasClass(s, \"uiTextareaAutogrow\");\n        this.parent.construct(this, s);\n        this.width = null;\n        g.listen(s, \"JSBNG__focus\", this._handleFocus.bind(this));\n    };\n;\n    j.extend(r, n);\n    p(r.prototype, i, {\n        setAutogrow: function(s) {\n            this.autogrow = s;\n            return this;\n        },\n        onupdate: function() {\n            this.parent.onupdate();\n            if (this.autogrow) {\n                var s = this.getRoot();\n                if (!this.metrics) {\n                    this.metrics = new o(s);\n                }\n            ;\n            ;\n                if (((typeof this.initialHeight === \"undefined\"))) {\n                    this.isBorderBox = ((((((m.get(s, \"box-sizing\") === \"border-box\")) || ((m.get(s, \"-moz-box-sizing\") === \"border-box\")))) || ((m.get(s, \"-webkit-box-sizing\") === \"border-box\"))));\n                    this.borderBoxOffset = ((((((q(s, \"padding-top\") + q(s, \"padding-bottom\"))) + q(s, \"border-top-width\"))) + q(s, \"border-bottom-width\")));\n                    this.initialHeight = ((s.offsetHeight - this.borderBoxOffset));\n                }\n            ;\n            ;\n                var t = this.metrics.measure(), u = Math.max(this.initialHeight, t.height);\n                if (this.isBorderBox) {\n                    u += this.borderBoxOffset;\n                }\n            ;\n            ;\n                if (((u !== this.height))) {\n                    this.height = u;\n                    m.set(s, \"height\", ((u + \"px\")));\n                    h.inform(\"reflow\");\n                    this.inform(\"resize\");\n                }\n            ;\n            ;\n            }\n             else if (this.metrics) {\n                this.metrics.destroy();\n                this.metrics = null;\n            }\n            \n        ;\n        ;\n        },\n        resetHeight: function() {\n            this.height = -1;\n            this.update();\n        },\n        _handleFocus: function() {\n            this.width = null;\n        }\n    });\n    r.getInstance = function(s) {\n        return ((l.getInstance(s) || new r(s)));\n    };\n    e.exports = r;\n});\n__d(\"MessagesEmoticonView\", [\"DOM\",\"EmoticonsList\",\"JSBNG__Event\",\"Focus\",\"InputSelection\",\"Keys\",\"Parent\",\"SubscriptionsHandler\",\"TextAreaControl\",\"Toggler\",\"copyProperties\",\"endsWith\",\"startsWith\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"EmoticonsList\"), i = b(\"JSBNG__Event\"), j = b(\"Focus\"), k = b(\"InputSelection\"), l = b(\"Keys\"), m = b(\"Parent\"), n = b(\"SubscriptionsHandler\"), o = b(\"TextAreaControl\"), p = b(\"Toggler\"), q = b(\"copyProperties\"), r = b(\"endsWith\"), s = b(\"startsWith\"), t = h.symbols;\n    function u(w, x, y) {\n        var z = m.byClass(w, \"emoticon\");\n        if (!z) {\n            return;\n        }\n    ;\n    ;\n        var aa = \"emoticon_\", ba = null;\n        z.className.split(\" \").forEach(function(ia) {\n            if (s(ia, aa)) {\n                ba = ia.substring(aa.length);\n            }\n        ;\n        ;\n        });\n        if (!t[ba]) {\n            return;\n        }\n    ;\n    ;\n        var ca = o.getInstance(x), da = ca.getValue(), ea = t[ba], fa = da.substring(0, y.start), ga = da.substring(y.end);\n        if (((((y.start > 0)) && !r(fa, \" \")))) {\n            ea = ((\" \" + ea));\n        }\n    ;\n    ;\n        if (!s(ga, \" \")) {\n            ea += \" \";\n        }\n    ;\n    ;\n        var ha = ((((fa + ea)) + ga));\n        y.start += ea.length;\n        y.end = y.start;\n        ca.setValue(ha);\n        k.set(x, y.start, y.end);\n        return true;\n    };\n;\n    function v(w, x) {\n        var y = {\n            start: 0,\n            end: 0\n        };\n        function z() {\n            y = k.get(x);\n        };\n    ;\n        var aa = g.JSBNG__find(w, \".uiToggleFlyout\");\n        this._subscriptions = new n();\n        this._subscriptions.addSubscriptions(p.subscribe(\"show\", function(ba, ca) {\n            if (((ca.active && g.contains(w, ca.active)))) {\n                k.set(x, y.start, y.end);\n                var da = g.scry(aa, \"a.emoticon\")[0];\n                j.setWithoutOutline(da);\n            }\n        ;\n        ;\n        }), i.listen(aa, \"click\", function(JSBNG__event) {\n            var ba = u(JSBNG__event.getTarget(), x, y);\n            ((ba && p.hide(w)));\n        }), i.listen(aa, \"keyup\", function(JSBNG__event) {\n            if (((JSBNG__event.keyCode === l.ESC))) {\n                p.hide(w);\n                k.set(x, y.start, y.end);\n            }\n        ;\n        ;\n        }), i.listen(x, \"keyup\", z), i.listen(x, \"click\", z));\n    };\n;\n    q(v.prototype, {\n        destroy: function() {\n            this._subscriptions.release();\n            this._subscriptions = null;\n        }\n    });\n    q(v, {\n        create: function(w, x) {\n            return new v(w, x);\n        }\n    });\n    e.exports = v;\n});\n__d(\"MercuryTypingReceiver\", [\"Arbiter\",\"ChannelConstants\",\"MercuryActionTypeConstants\",\"MercuryParticipants\",\"MercuryPayloadSource\",\"MercuryServerRequests\",\"MercuryThreads\",\"TypingDetector\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"MercuryActionTypeConstants\"), j = b(\"MercuryParticipants\"), k = b(\"MercuryPayloadSource\"), l = b(\"MercuryServerRequests\").get(), m = b(\"MercuryThreads\").get(), n = b(\"TypingDetector\"), o = b(\"setTimeoutAcrossTransitions\"), p, q = {\n    }, r = 30000, s = new g();\n    function t(y) {\n        var z = ((q[y] || {\n        })), aa = Object.keys(z);\n        aa.sort(function(ba, ca) {\n            return ((z[ba] - z[ca]));\n        });\n        return aa;\n    };\n;\n    function u() {\n        p = null;\n        var y = JSBNG__Date.now(), z = {\n        }, aa = false;\n        {\n            var fin264keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin264i = (0);\n            var ba;\n            for (; (fin264i < fin264keys.length); (fin264i++)) {\n                ((ba) = (fin264keys[fin264i]));\n                {\n                    var ca = false;\n                    {\n                        var fin265keys = ((window.top.JSBNG_Replay.forInKeys)(((q[ba] || {\n                        })))), fin265i = (0);\n                        var da;\n                        for (; (fin265i < fin265keys.length); (fin265i++)) {\n                            ((da) = (fin265keys[fin265i]));\n                            {\n                                if (((q[ba][da] < ((y - r))))) {\n                                    delete q[ba][da];\n                                    ca = true;\n                                }\n                                 else aa = true;\n                            ;\n                            ;\n                            };\n                        };\n                    };\n                ;\n                    if (ca) {\n                        z[ba] = t(ba);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        {\n            var fin266keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin266i = (0);\n            var ea;\n            for (; (fin266i < fin266keys.length); (fin266i++)) {\n                ((ea) = (fin266keys[fin266i]));\n                {\n                    s.inform(\"state-changed\", z);\n                    break;\n                };\n            };\n        };\n    ;\n        if (aa) {\n            p = o(u, 3000);\n        }\n    ;\n    ;\n    };\n;\n    function v(y, z) {\n        if (((y in q))) {\n            if (((z in q[y]))) {\n                delete q[y][z];\n                w(y);\n            }\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function w(y) {\n        var z = {\n        };\n        z[y] = t(y);\n        s.inform(\"state-changed\", z);\n    };\n;\n    function x(y) {\n        if (y.thread) {\n            return l.getClientThreadIDNow(y.thread);\n        }\n    ;\n    ;\n        if (((y.type === \"typ\"))) {\n            return m.getThreadIdForUser(y.from);\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    g.subscribe([h.getArbiterType(\"typ\"),h.getArbiterType(\"ttyp\"),], function(y, z) {\n        var aa = z.obj, ba = x(aa);\n        if (ba) {\n            var ca = j.getIDForUser(aa.from);\n            if (((aa.st == n.TYPING))) {\n                q[ba] = ((q[ba] || {\n                }));\n                var da = q[ba][ca];\n                q[ba][ca] = JSBNG__Date.now();\n                if (!p) {\n                    p = o(u, 3000);\n                }\n            ;\n            ;\n                ((!da && w(ba)));\n            }\n             else if (((aa.st == n.INACTIVE))) {\n                v(ba, ca);\n            }\n            \n        ;\n        ;\n        }\n    ;\n    ;\n    });\n    l.subscribe(\"update-typing-state\", function(y, z) {\n        var aa = z.payload_source;\n        if (((((aa != k.CLIENT_CHANNEL_MESSAGE)) && ((aa != k.SERVER_ZAP))))) {\n            return;\n        }\n    ;\n    ;\n        var ba = z.actions;\n        if (((!ba || !ba.length))) {\n            return;\n        }\n    ;\n    ;\n        var ca = i.USER_GENERATED_MESSAGE;\n        ba.forEach(function(da) {\n            if (((((da.action_type == ca)) && ((da.author != j.user))))) {\n                v(da.thread_id, da.author);\n            }\n        ;\n        ;\n        });\n    });\n    e.exports = s;\n});\n__d(\"formatUnixTimestamp\", [\"formatDate\",], function(a, b, c, d, e, f) {\n    var g = b(\"formatDate\");\n    function h(i, j, k, l) {\n        var m = new JSBNG__Date(((i * 1000)));\n        return g(m, j, k, l);\n    };\n;\n    e.exports = h;\n});\n__d(\"MercuryIndicatorController\", [\"ArbiterMixin\",\"DOM\",\"MercuryActionTypeConstants\",\"MercuryConfig\",\"MercuryDelayedRoger\",\"MercuryMessageSourceTags\",\"MercuryParticipants\",\"MercuryRoger\",\"MercuryThreads\",\"MercuryTypingReceiver\",\"DateFormatConfig\",\"arrayContains\",\"copyProperties\",\"formatUnixTimestamp\",\"removeFromArray\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"MercuryActionTypeConstants\"), j = b(\"MercuryConfig\"), k = b(\"MercuryDelayedRoger\"), l = b(\"MercuryMessageSourceTags\"), m = b(\"MercuryParticipants\"), n = b(\"MercuryRoger\"), o = b(\"MercuryThreads\").get(), p = b(\"MercuryTypingReceiver\"), q = b(\"DateFormatConfig\"), r = b(\"arrayContains\"), s = b(\"copyProperties\"), t = b(\"formatUnixTimestamp\"), u = b(\"removeFromArray\"), v = b(\"tx\"), w = [];\n    function x(y) {\n        this._threadID = y;\n        this._canonicalUser = o.getCanonicalUserInThread(y);\n        w.push(this);\n    };\n;\n    s(x.prototype, g, {\n        destroy: function() {\n            u(w, this);\n        },\n        setLastMessage: function(y) {\n            this._lastMsg = y;\n            this._handleStateChange();\n        },\n        _informStateChanged: function(y) {\n            if (((((y.activity == \"none\")) && ((this._currentActivity == \"none\"))))) {\n                return;\n            }\n        ;\n        ;\n            if (((this._lastMsg && m.isAuthor(this._lastMsg.author)))) {\n                y.self_authored = true;\n            }\n        ;\n        ;\n            this._currentActivity = y.activity;\n            this.inform(\"state-changed\", y);\n        },\n        _notifySentFrom: function() {\n            var y, z, aa = this._lastMsg.location_text, ba = ((this._lastMsg.source_tags || []));\n            if (aa) {\n                y = v._(\"Sent from {location}\", {\n                    JSBNG__location: aa\n                });\n                z = \"sentFromMobile\";\n            }\n             else if (r(ba, l.MESSENGER)) {\n                y = h.create(\"a\", {\n                    href: \"/mobile/messenger\",\n                    class: \"fcg\",\n                    target: \"_blank\"\n                }, \"Sent from Messenger\");\n                z = \"sentFromMobile\";\n            }\n             else if (r(ba, l.MOBILE)) {\n                y = h.create(\"a\", {\n                    href: \"/mobile\",\n                    class: \"fcg\",\n                    target: \"_blank\"\n                }, \"Sent from Mobile\");\n                z = \"sentFromMobile\";\n            }\n             else if (r(ba, l.EMAIL)) {\n                y = \"Sent from email\";\n                z = \"sentFromEmail\";\n            }\n             else {\n                this._informStateChanged({\n                    activity: \"none\"\n                });\n                return;\n            }\n            \n            \n            \n        ;\n        ;\n            this._informStateChanged({\n                activity: z,\n                text: y\n            });\n        },\n        _notifySeenTimestamp: function(y) {\n            var z = ((n.getSeenTimestamp(this._threadID, y[0]) * 44405)), aa = ((JSBNG__Date.now() * 44424));\n            if (((z < ((aa - 518400))))) {\n                ba = \"M j\";\n            }\n             else if (((z < ((aa - 86400))))) {\n                ba = \"D g:ia\";\n            }\n             else ba = \"g:ia\";\n            \n        ;\n        ;\n            var ba = ((q.formats[ba] || ba)), ca = t(z, ba, false, true);\n            this._informStateChanged({\n                activity: \"seen-timestamp\",\n                text: v._(\"Seen {timestamp}\", {\n                    timestamp: ca\n                })\n            });\n        },\n        _checkNamesForCollision: function(y, z) {\n            var aa = false;\n            m.getMulti(y, function(ba) {\n                function ca(fa) {\n                    if (((typeof ba[fa] !== \"undefined\"))) {\n                        return ba[fa].short_name.toLowerCase();\n                    }\n                     else return fa\n                ;\n                };\n            ;\n                var da = z.map(ca), ea = y.map(ca);\n                aa = da.some(function(fa) {\n                    return ((ea.indexOf(fa) !== ea.lastIndexOf(fa)));\n                });\n            });\n            return aa;\n        },\n        _notifySeenBy: function(y) {\n            var z = this._lastMsg, aa = true;\n            m.getMulti(y, function(ba) {\n                aa = false;\n                if (((this._lastMsg != z))) {\n                    return;\n                }\n            ;\n            ;\n                var ca = o.getThreadMetaNow(this._threadID), da = ((ca ? ca.participants.length : 0)), ea = ((y.length + ((z.author != m.user)))), fa, ga = false, ha = false, ia = ((((da > 2)) && ((ea >= ((da - 1))))));\n                if (((!(ia) && ((da > 0))))) {\n                    ha = this._checkNamesForCollision(ca.participants, y);\n                }\n            ;\n            ;\n                if (ia) {\n                    fa = \"Seen by everyone\";\n                }\n                 else if (((y.length == 1))) {\n                    fa = v._(\"Seen by {user}\", {\n                        user: ba[y[0]].short_name\n                    });\n                }\n                 else if (((y.length == 2))) {\n                    fa = v._(\"Seen by {user1}, {user2}\", {\n                        user1: ba[y[0]].short_name,\n                        user2: ba[y[1]].short_name\n                    });\n                }\n                 else if (((y.length == 3))) {\n                    fa = v._(\"Seen by {user1}, {user2}, {user3}\", {\n                        user1: ba[y[0]].short_name,\n                        user2: ba[y[1]].short_name,\n                        user3: ba[y[2]].short_name\n                    });\n                }\n                 else if (((y.length > 3))) {\n                    var ja = ((Object.keys(ba).length - 2)), ka = v._(\"{num} more\", {\n                        num: ja\n                    }), la = h.create(\"span\", {\n                        className: \"more\"\n                    }, ka);\n                    fa = h.tx._(\"Seen by {user1}, {user2}, {=num more link}\", {\n                        user1: ba[y[0]].short_name,\n                        user2: ba[y[1]].short_name,\n                        \"=num more link\": la\n                    });\n                    ga = true;\n                }\n                \n                \n                \n                \n            ;\n            ;\n                ga = ((ga || ha));\n                this._informStateChanged({\n                    activity: \"seen-by\",\n                    text: fa,\n                    seenBy: y,\n                    hasNameCollision: ha,\n                    tooltip: ga\n                });\n            }.bind(this));\n            ((aa && this._informStateChanged({\n                activity: \"none\"\n            })));\n        },\n        _notifyTyping: function(y) {\n            var z = this._lastMsg, aa = true;\n            m.getMulti(y, function(ba) {\n                aa = false;\n                if (((this._lastMsg != z))) {\n                    return;\n                }\n            ;\n            ;\n                if (((this._canonicalUser || j.ChatMultiTypGK))) {\n                    var ca = o.getThreadMetaNow(this._threadID), da = ((ca ? ca.participants.length : 0)), ea, fa = false;\n                    if (((((da > 2)) && ((y.length >= ((da - 1))))))) {\n                        ea = \"Everyone is typing...\";\n                    }\n                     else if (((y.length == 1))) {\n                        ea = v._(\"{name} is typing...\", {\n                            JSBNG__name: ba[y[0]].short_name\n                        });\n                    }\n                     else if (((y.length == 2))) {\n                        ea = v._(\"{user1} and {user2} are typing...\", {\n                            user1: ba[y[0]].short_name,\n                            user2: ba[y[1]].short_name\n                        });\n                    }\n                     else if (((y.length == 3))) {\n                        ea = v._(\"{user1}, {user2}, and {user3} are typing...\", {\n                            user1: ba[y[0]].short_name,\n                            user2: ba[y[1]].short_name,\n                            user3: ba[y[2]].short_name\n                        });\n                    }\n                     else if (((y.length > 3))) {\n                        var ga = ((Object.keys(ba).length - 2)), ha = v._(\"{num} more\", {\n                            num: ga\n                        }), ia = h.create(\"a\", {\n                            href: \"#\"\n                        }, ha);\n                        ea = h.tx._(\"{user1}, {user2}, and {=num more link} are typing...\", {\n                            user1: ba[y[0]].short_name,\n                            user2: ba[y[1]].short_name,\n                            \"=num more link\": ia\n                        });\n                        fa = true;\n                    }\n                    \n                    \n                    \n                    \n                ;\n                ;\n                    this._informStateChanged({\n                        activity: \"typing\",\n                        text: ea,\n                        typing: y,\n                        tooltip: fa\n                    });\n                }\n            ;\n            ;\n            }.bind(this));\n            ((aa && this._informStateChanged({\n                activity: \"none\"\n            })));\n        },\n        _handleStateChange: function() {\n            var y = i.LOG_MESSAGE;\n            if (((!this._lastMsg || ((this._lastMsg.action_type == y))))) {\n                this._informStateChanged({\n                    activity: \"none\"\n                });\n                return;\n            }\n        ;\n        ;\n            if (((this._typing && this._typing.length))) {\n                this._notifyTyping(this._typing);\n                return;\n            }\n        ;\n        ;\n            if (((this._canonicalUser && ((this._lastMsg.author != m.user))))) {\n                this._notifySentFrom();\n                return;\n            }\n        ;\n        ;\n            var z = k.getSeenBy(this._threadID, true);\n            if (z.length) {\n                if (this._canonicalUser) {\n                    this._notifySeenTimestamp(z);\n                    return;\n                }\n                 else {\n                    this._notifySeenBy(z);\n                    return;\n                }\n            ;\n            }\n        ;\n        ;\n            this._informStateChanged({\n                activity: \"none\"\n            });\n        }\n    });\n    p.subscribe(\"state-changed\", function(y, z) {\n        w.forEach(function(aa) {\n            var ba = z[aa._threadID];\n            if (((ba !== undefined))) {\n                aa._typing = ba;\n                aa._handleStateChange();\n            }\n        ;\n        ;\n        });\n    });\n    k.subscribe(\"state-changed\", function(y, z) {\n        w.forEach(function(aa) {\n            ((z[aa._threadID] && aa._handleStateChange()));\n        });\n    });\n    e.exports = x;\n});\n__d(\"MercuryLastMessageIndicator\", [\"CSS\",\"MercuryIndicatorController\",\"DOM\",\"MercuryParticipants\",\"Tooltip\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"MercuryIndicatorController\"), i = b(\"DOM\"), j = b(\"MercuryParticipants\"), k = b(\"Tooltip\"), l = b(\"copyProperties\"), m = b(\"csx\"), n = b(\"cx\");\n    function o(p, q, r, s) {\n        this._lastMessageIndicator = q;\n        this._hideTyping = ((r || false));\n        this._messagesView = s;\n        this._controller = new h(p);\n        this._subscription = this._controller.subscribe(\"state-changed\", this._handleStateChanged.bind(this));\n    };\n;\n    l(o.prototype, {\n        destroy: function() {\n            this._setClass(null);\n            this._subscription.unsubscribe();\n            this._controller.destroy();\n        },\n        setLastMessage: function(p) {\n            this._controller.setLastMessage(p);\n        },\n        _handleStateChanged: function(p, q) {\n            var r = this._messagesView.isScrolledToBottom();\n            this._rerender(q);\n            ((r && this._messagesView.scrollToBottom()));\n        },\n        _rerender: function(p) {\n            if (((p.activity == \"none\"))) {\n                this._setClass(null);\n                return;\n            }\n        ;\n        ;\n            if (((this._hideTyping && ((p.activity == \"typing\"))))) {\n                this._setClass(null);\n                return;\n            }\n        ;\n        ;\n            g.conditionClass(this._lastMessageIndicator, \"_510e\", p.self_authored);\n            var q = i.JSBNG__find(this._lastMessageIndicator, \"._510f\");\n            if (p.text) {\n                i.setContent(q, p.text);\n            }\n             else i.empty(q);\n        ;\n        ;\n            if (((p.activity.substring(0, 4) == \"seen\"))) {\n                this._setClass(\"seen\");\n                if (((((p.activity == \"seen-by\")) && p.tooltip))) {\n                    j.getMulti(p.seenBy, function(r) {\n                        var s = i.create(\"div\");\n                        {\n                            var fin267keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin267i = (0);\n                            var t;\n                            for (; (fin267i < fin267keys.length); (fin267i++)) {\n                                ((t) = (fin267keys[fin267i]));\n                                {\n                                    var u = i.create(\"div\");\n                                    i.setContent(u, r[t].JSBNG__name);\n                                    i.appendContent(s, u);\n                                };\n                            };\n                        };\n                    ;\n                        var v = p.hasNameCollision, w;\n                        if (v) {\n                            w = this._lastMessageIndicator;\n                        }\n                         else w = i.JSBNG__find(this._lastMessageIndicator, \"span.more\");\n                    ;\n                    ;\n                        k.set(w, s, \"above\", \"center\");\n                    }.bind(this));\n                }\n                 else k.remove(this._lastMessageIndicator);\n            ;\n            ;\n            }\n             else this._setClass(p.activity);\n        ;\n        ;\n        },\n        _setClass: function(p) {\n            if (((this._lastClass === p))) {\n                return;\n            }\n        ;\n        ;\n            ((this._lastClass && g.removeClass(this._lastMessageIndicator, this._lastClass)));\n            ((p && g.addClass(this._lastMessageIndicator, p)));\n            this._lastClass = p;\n        }\n    });\n    e.exports = o;\n});\n__d(\"MercuryStateCheck\", [\"Arbiter\",\"ChannelConstants\",\"MercuryFolders\",\"MessagingTag\",\"MercuryServerRequests\",\"URI\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"MercuryFolders\"), j = b(\"MessagingTag\"), k = b(\"MercuryServerRequests\").get(), l = b(\"URI\"), m = b(\"copyProperties\"), n = m(new g(), {\n        initialize: function() {\n            g.subscribe(h.ON_INVALID_HISTORY, o);\n            d([\"ChannelConnection\",], function(p) {\n                p.subscribe(p.CONNECTED, function(q, r) {\n                    if (!r.init) {\n                        o();\n                    }\n                ;\n                ;\n                });\n            });\n        }\n    });\n    function o() {\n        var p;\n        if (((l.getRequestURI().getPath().search(/messages/) !== -1))) {\n            p = i.getSupportedFolders();\n        }\n         else p = [j.INBOX,];\n    ;\n    ;\n        k.fetchMissedMessages(p);\n    };\n;\n    n.initialize();\n    e.exports = n;\n});\n__d(\"MercuryAttachmentRenderer\", [\"MercuryAttachmentTemplates\",\"MercuryAttachmentAudioClip.react\",\"CSS\",\"MercuryConstants\",\"DOM\",\"JSBNG__Image.react\",\"JSXDOM\",\"MercuryAttachment\",\"MercuryAttachmentType\",\"MercuryMessages\",\"MercuryParticipants\",\"React\",\"Style\",\"URI\",\"UserAgent\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAttachmentTemplates\"), h = b(\"MercuryAttachmentAudioClip.react\"), i = b(\"CSS\"), j = b(\"MercuryConstants\"), k = b(\"DOM\"), l = b(\"JSBNG__Image.react\"), m = b(\"JSXDOM\"), n = b(\"MercuryAttachment\"), o = b(\"MercuryAttachmentType\"), p = b(\"MercuryMessages\").get(), q = b(\"MercuryParticipants\"), r = b(\"React\"), s = b(\"Style\"), t = b(\"URI\"), u = b(\"UserAgent\"), v = b(\"cx\"), w = b(\"tx\"), x = ((u.ie() <= 8));\n    function y(ba, ca) {\n        var da = g[ca].build().setNodeContent(\"filename\", ba.JSBNG__name), ea = da.getNode(\"link\");\n        ea.setAttribute(\"href\", ba.url);\n        ((ba.rel && ea.setAttribute(\"rel\", ba.rel)));\n        i.addClass(da.getRoot(), n.getAttachIconClass(ba.icon_type));\n        return da;\n    };\n;\n    function z(ba, ca) {\n        var da = g[ca].build().setNodeContent(\"filename\", ba.JSBNG__name);\n        i.addClass(da.getRoot(), n.getAttachIconClass(ba.icon_type));\n        return da;\n    };\n;\n    var aa = {\n        renderAttachment: function(ba, ca, da, ea, fa) {\n            var ga = 100, ha = ((ba ? 160 : 400)), ia = ca.attach_type, ja = null, ka = null, la = true, ma = j.MercurySupportedShareType;\n            if (((ia == o.ERROR))) {\n                ja = aa.renderError(ca);\n            }\n        ;\n        ;\n            if (((((!ba && ((ia == o.SHARE)))) && ca.share_xhp))) {\n                ka = aa.renderShareXHP(ca, da.id);\n            }\n        ;\n        ;\n            if (((ia == o.STICKER))) {\n                la = false;\n                ka = aa.renderSticker(ca);\n            }\n        ;\n        ;\n            if (((!ka && ((ia == o.SHARE))))) {\n                var na = ca.share_data_type;\n                switch (na) {\n                  case ma.FB_PHOTO:\n                    ka = aa.renderPreview(ca, da, ea, fa);\n                    break;\n                  case ma.FB_VIDEO:\n                    ka = aa.renderVideoThumb(ca);\n                    break;\n                  case ma.FB_MUSIC_ALBUM:\n                \n                  case ma.FB_SONG:\n                \n                  case ma.FB_PLAYLIST:\n                \n                  case ma.FB_MUSICIAN:\n                \n                  case ma.FB_RADIO_STATION:\n                    ka = aa.renderMusic(ca);\n                    break;\n                  case ma.EXTERNAL:\n                \n                  case ma.FB_TEMPLATE:\n                \n                  case ma.FB_COUPON:\n                \n                  case ma.FB_SOCIAL_REPORT_PHOTO:\n                    ka = aa.renderExternalLink(ca);\n                    break;\n                  default:\n                    if (ca.JSBNG__name) {\n                        ka = aa.renderShareLink(ca, ((da && da.id)), ba);\n                    }\n                ;\n                ;\n                    break;\n                };\n            ;\n            }\n        ;\n        ;\n            if (((!ka && ca.preview_loading))) {\n                ka = aa.renderPreview(null);\n            }\n        ;\n        ;\n            if (((!ka && ca.preview_url))) {\n                ka = aa.renderPreview(ca, da, ea, fa);\n            }\n        ;\n        ;\n            if (((!ka && ((ia == o.FILE))))) {\n                if (((ca.metadata && ((ca.metadata.type == j.MercuryAttachmentAudioClip))))) {\n                    ka = k.create(\"div\");\n                    var oa = aa.renderAudioClip(ca, da.message_id, ga, ha);\n                    r.renderComponent(oa, ka);\n                }\n                 else ka = ((ba ? aa.renderFileLink(ca) : aa.renderExtendedFileLink(ca)));\n            ;\n            }\n        ;\n        ;\n            return {\n                error: ja,\n                JSBNG__content: ka,\n                bubblePreferred: la\n            };\n        },\n        renderError: function(ba) {\n            var ca = g[\":fb:mercury:attachment:error\"].build();\n            k.appendContent(ca.getNode(\"error\"), ba.error_msg);\n            return ca.getRoot();\n        },\n        renderExternalLink: function(ba) {\n            var ca = g[\":fb:mercury:attachment:external-link\"].build().setNodeContent(\"JSBNG__name\", ba.JSBNG__name);\n            ((ba.base_url && ca.setNodeContent(\"shortLink\", ba.base_url)));\n            var da = ca.getNode(\"preview\"), ea = ca.getNode(\"image-link\");\n            ea.setAttribute(\"href\", ba.url);\n            ((ba.rel && ea.setAttribute(\"rel\", ba.rel)));\n            if (ba.preview_url) {\n                var fa = ca.getNode(\"preview-image\");\n                fa.setAttribute(\"src\", ba.preview_url);\n                i.addClass(da, ba.preview_class);\n                i.show(fa);\n            }\n             else {\n                i.addClass(ca.getRoot(), \"noMedia\");\n                i.hide(da);\n            }\n        ;\n        ;\n            ca.getNode(\"JSBNG__name\").setAttribute(\"href\", ba.url);\n            d([\"LinkshimHandler\",], function(ga) {\n                ga.setUpLinkshimHandling(ca.getNode(\"JSBNG__name\"));\n                ga.setUpLinkshimHandling(ca.getNode(\"image-link\"));\n            });\n            if (ba.rel) {\n                ca.getNode(\"JSBNG__name\").setAttribute(\"rel\", ba.rel);\n            }\n        ;\n        ;\n            return ca.getRoot();\n        },\n        renderFileLink: function(ba) {\n            var ca = null;\n            if (((ba.url === \"\"))) {\n                ca = \":fb:mercury:attachment:file-name\";\n                return z(ba, ca).getRoot();\n            }\n             else {\n                ca = \":fb:mercury:attachment:file-link\";\n                return y(ba, ca).getRoot();\n            }\n        ;\n        ;\n        },\n        renderAudioClip: function(ba, ca, da, ea) {\n            var fa = ((ba.metadata.duration / 1000)), ga = 200;\n            if (((da && ea))) {\n                if (((fa < 5))) {\n                    ga = da;\n                }\n                 else ga = ((((((1 - Math.pow(10, ((((fa - 5)) / -30))))) * ((ea - da)))) + da));\n            ;\n            }\n        ;\n        ;\n            return h({\n                src: ba.url,\n                duration: ((ba.metadata.duration / 1000)),\n                showHelp: false,\n                width: ga\n            });\n        },\n        renderExtendedFileLink: function(ba) {\n            var ca = null;\n            if (((ba.url === \"\"))) {\n                ca = \":fb:mercury:attachment:file-name\";\n                return z(ba, ca).getRoot();\n            }\n        ;\n        ;\n            var ca = \":fb:mercury:attachment:extended-file-link\", da = y(ba, ca);\n            if (ba.open_url) {\n                var ea = da.getNode(\"openLinkContainer\");\n                i.show(ea);\n                var fa = da.getNode(\"openFile\");\n                fa.setAttribute(\"href\", ba.open_url);\n            }\n        ;\n        ;\n            var ga = da.getNode(\"downloadFile\");\n            ga.setAttribute(\"href\", ba.url);\n            ((ba.rel && ga.setAttribute(\"rel\", ba.rel)));\n            return da.getRoot();\n        },\n        renderMusic: function(ba) {\n            var ca = g[\":fb:mercury:attachment:music\"].build().setNodeContent(\"filename\", ba.JSBNG__name), da = ca.getNode(\"link\");\n            da.setAttribute(\"href\", ba.url);\n            da.setAttribute(\"target\", \"_blank\");\n            ((ba.rel && da.setAttribute(\"rel\", ba.rel)));\n            var ea = ca.getNode(\"image-link\");\n            ea.setAttribute(\"href\", ba.url);\n            ((ba.rel && ea.setAttribute(\"rel\", ba.rel)));\n            var fa = ca.getNode(\"preview-image\");\n            fa.setAttribute(\"src\", ba.preview_url);\n            i.show(fa);\n            i.addClass(ca.getNode(\"icon_link\"), \"MercuryMusicIcon\");\n            return ca.getRoot();\n        },\n        resizeContain: function(ba, ca) {\n            var da = ((ba.width / ba.height)), ea = ((ca.width / ca.height));\n            if (((ea < da))) {\n                return {\n                    width: Math.min(((ba.height * ea)), ca.width),\n                    height: Math.min(ba.height, ca.height)\n                };\n            }\n             else return {\n                width: Math.min(ba.width, ca.width),\n                height: Math.min(((ba.width / ea)), ca.height)\n            }\n        ;\n        },\n        renderPreview: function(ba, ca, da, ea) {\n            var fa = g[\":fb:mercury:attachment:preview\"].build(), ga = fa.getNode(\"image-link\");\n            if (ba) {\n                ((ba.url && ga.setAttribute(\"href\", ba.url)));\n                ((ba.rel && ga.setAttribute(\"rel\", ba.rel)));\n                var ha;\n                if (ba.preview_uploading) {\n                    i.addClass(ga, \"_57jm\");\n                    if (((da >= 176))) {\n                        ha = \"/images/photos/dots_large.png\";\n                    }\n                     else if (((da >= 86))) {\n                        ha = \"/images/photos/dots_medium.png\";\n                    }\n                     else ha = \"/images/photos/dots_small.png\";\n                    \n                ;\n                ;\n                    s.set(ga, \"width\", ((da + \"px\")));\n                    s.set(ga, \"max-width\", ((da + \"px\")));\n                    if (((ba.preview_width && ba.preview_height))) {\n                        s.set(ga, \"padding-bottom\", ((((((ba.preview_height / ba.preview_width)) * 100)) + \"%\")));\n                    }\n                ;\n                ;\n                }\n                 else if (((ba.metadata && ba.metadata.fbid))) {\n                    ha = t(\"/ajax/mercury/attachments/photo.php\").addQueryData({\n                        fbid: ba.metadata.fbid,\n                        mode: ea,\n                        width: da,\n                        height: da\n                    }).toString();\n                }\n                 else ha = t(ba.preview_url).addQueryData({\n                    mode: ea,\n                    width: da,\n                    height: da\n                }).toString();\n                \n            ;\n            ;\n                var ia = fa.getNode(\"preview-image\");\n                if (ha) {\n                    if (((((((ea === \"contain\")) && ba.preview_width)) && ba.preview_height))) {\n                        var ja = aa.resizeContain({\n                            width: da,\n                            height: da\n                        }, {\n                            width: ba.preview_width,\n                            height: ba.preview_height\n                        });\n                        ia.setAttribute(\"width\", ja.width);\n                        ia.setAttribute(\"height\", ja.height);\n                    }\n                ;\n                ;\n                    if (((ba.preview_uploading || ((((ea === \"cover\")) && !x))))) {\n                        i.addClass(ga, \"_55pj\");\n                        s.set(ga, \"backgroundImage\", ((((\"url(\" + ha)) + \")\")));\n                    }\n                     else {\n                        ia.JSBNG__onload = function() {\n                            ia.removeAttribute(\"width\");\n                            ia.removeAttribute(\"height\");\n                        };\n                        ia.setAttribute(\"src\", ha);\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (ca) {\n                    this.renderReportRespondLink(fa.getRoot(), ba, ca.message_id);\n                }\n            ;\n            ;\n            }\n             else i.addClass(ga, \"_ksa\");\n        ;\n        ;\n            return fa.getRoot();\n        },\n        renderShareLink: function(ba, ca, da) {\n            var ea = g[\":fb:mercury:attachment:share-link\"].build().setNodeContent(\"JSBNG__name\", ba.JSBNG__name), fa = ea.getNode(\"link\");\n            fa.setAttribute(\"href\", ba.url);\n            ((ba.rel && fa.setAttribute(\"rel\", ba.rel)));\n            return ea.getRoot();\n        },\n        renderVideoThumb: function(ba) {\n            var ca = g[\":fb:mercury:attachment:video-thumb\"].build(), da = ca.getNode(\"thumb\");\n            da.setAttribute(\"href\", ba.url);\n            da.setAttribute(\"rel\", ba.rel);\n            var ea = k.JSBNG__find(ca.getRoot(), \"img\");\n            ea.src = ba.preview_url;\n            return ca.getRoot();\n        },\n        renderShareXHP: function(ba, ca) {\n            var da = k.create(\"div\");\n            if (ba) {\n                k.appendContent(da, ba.share_xhp);\n                this.renderReportRespondLink(da, ba, ca);\n            }\n        ;\n        ;\n            return da;\n        },\n        renderSticker: function(ba) {\n            var ca = k.create(\"div\"), da = {\n                uri: ba.url,\n                width: ba.metadata.width,\n                height: ba.metadata.height\n            }, ea = l({\n                className: \"mvs\",\n                src: da\n            });\n            r.renderComponent(ea, ca);\n            return ca;\n        },\n        renderReportRespondLink: function(ba, ca, da) {\n            if (!ca.is_social_report_attachment) {\n                return null;\n            }\n        ;\n        ;\n            switch (ca.share_data_type) {\n              case j.MercurySupportedShareType.FB_PHOTO:\n                break;\n              case j.MercurySupportedShareType.FB_SOCIAL_REPORT_PHOTO:\n                return null;\n              default:\n                return null;\n            };\n        ;\n            var ea = null;\n            if (da) {\n                ea = p.getMessagesFromIDs([da,])[0];\n            }\n        ;\n        ;\n            if (!ea) {\n                return null;\n            }\n        ;\n        ;\n            if (((ea.author === q.user))) {\n                return null;\n            }\n        ;\n        ;\n            var fa = null;\n            q.get(ea.author, function(ga) {\n                fa = k.create(\"a\", {\n                    rel: \"dialog-post\",\n                    className: \"_z6l\",\n                    id: \"respond-link\",\n                    ajaxify: t(\"/ajax/report/social_resolution/photo/\").setQueryData({\n                        attachment_fbid: ca.attach_id,\n                        photo_fbid: ca.shared_object_id,\n                        sender_id: q.getUserID(ga.id)\n                    }).toString()\n                });\n                k.setContent(fa, w._(\"Respond to {name}'s request\", {\n                    JSBNG__name: ga.JSBNG__name\n                }));\n                k.appendContent(ba, fa);\n            });\n        },\n        renderPhotoAttachments: function(ba, ca, da, ea) {\n            var fa = ba.length;\n            if (!fa) {\n                return null;\n            }\n        ;\n        ;\n            var ga = m.div({\n                className: \"_55pk\"\n            }), ha = (m.div({\n                className: \"_55pl\"\n            }, ga));\n            if (((fa === 1))) {\n                var ia = aa.renderPreview(ba[0], ca, da, \"contain\");\n                k.appendContent(ga, ia);\n                return ha;\n            }\n        ;\n        ;\n            var ja = ((((((fa == 2)) || ((fa == 4)))) ? 2 : 3)), ka = ((((da - ((((ja - 1)) * ea)))) / ja)), la = Math.ceil(((fa / ja))), ma = ((((la * ka)) + ((((la - 1)) * ea)))), na = (m.div({\n                className: \"_55pm\",\n                style: ((((\"padding-bottom: \" + ((((ma / da)) * 100)))) + \"%;\"))\n            }));\n            k.appendContent(ga, na);\n            for (var oa = 0; ((oa < fa)); ++oa) {\n                var pa = aa.renderPreview(ba[oa], ca, ka, \"cover\"), qa = ((oa % ja)), ra = Math.floor(((oa / ja)));\n                i.addClass(pa, \"_55pn\");\n                s.apply(pa, {\n                    width: ((((((ka / da)) * 100)) + \"%\")),\n                    left: ((((((((qa * ((ka + ea)))) / da)) * 100)) + \"%\")),\n                    JSBNG__top: ((((((((ra * ((ka + ea)))) / ma)) * 100)) + \"%\"))\n                });\n                k.appendContent(na, pa);\n            };\n        ;\n            return ha;\n        },\n        isPhotoAttachment: function(ba) {\n            return ((((ba.attach_type == o.PHOTO)) || ((((ba.attach_type == o.FILE)) && ba.preview_url))));\n        },\n        isShareAttachment: function(ba) {\n            return ((ba.attach_type == o.SHARE));\n        },\n        isFileAttachment: function(ba) {\n            return ((ba.attach_type == o.FILE));\n        },\n        isErrorAttachment: function(ba) {\n            return ((ba.attach_type == o.ERROR));\n        },\n        booleanLexicographicComparator: function(ba) {\n            return function(ca, da) {\n                for (var ea = 0; ((ea < ba.length)); ++ea) {\n                    var fa = ba[ea](ca), ga = ba[ea](da);\n                    if (((fa && !ga))) {\n                        return -1;\n                    }\n                     else if (((!fa && ga))) {\n                        return 1;\n                    }\n                    \n                ;\n                ;\n                };\n            ;\n                return 0;\n            };\n        }\n    };\n    e.exports = aa;\n});\n__d(\"URLScraper\", [\"ArbiterMixin\",\"DataStore\",\"JSBNG__Event\",\"URLMatcher\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"ArbiterMixin\"), h = b(\"DataStore\"), i = b(\"JSBNG__Event\"), j = b(\"URLMatcher\"), k = b(\"copyProperties\"), l = \"scraperLastPermissiveMatch\";\n    function m(n) {\n        this.input = n;\n        this.enable();\n    };\n;\n    k(m.prototype, g, {\n        reset: function() {\n            h.set(this.input, l, null);\n        },\n        enable: function() {\n            if (this.events) {\n                return;\n            }\n        ;\n        ;\n            var n = function(o) {\n                JSBNG__setTimeout(this.check.bind(this, o), 30);\n            };\n            this.events = i.listen(this.input, {\n                paste: n.bind(this, false),\n                keydown: n.bind(this, true)\n            });\n        },\n        disable: function() {\n            if (!this.events) {\n                return;\n            }\n        ;\n        ;\n            {\n                var fin268keys = ((window.top.JSBNG_Replay.forInKeys)((this.events))), fin268i = (0);\n                var JSBNG__event;\n                for (; (fin268i < fin268keys.length); (fin268i++)) {\n                    ((event) = (fin268keys[fin268i]));\n                    {\n                        this.events[JSBNG__event].remove();\n                    ;\n                    };\n                };\n            };\n        ;\n            this.events = null;\n        },\n        check: function(n) {\n            var o = this.input.value;\n            if (((n && m.trigger(o)))) {\n                return;\n            }\n        ;\n        ;\n            var p = m.match(o), q = j.permissiveMatch(o);\n            if (((q && ((q != h.get(this.input, l)))))) {\n                h.set(this.input, l, q);\n                this.inform(\"match\", {\n                    url: ((p || q)),\n                    alt_url: q\n                });\n            }\n        ;\n        ;\n        }\n    });\n    k(m, j);\n    e.exports = m;\n});\n__d(\"htmlHyperlink\", [\"Env\",\"htmlize\",\"UntrustedLink\",\"URI\",\"URLScraper\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Env\"), h = b(\"htmlize\"), i = b(\"UntrustedLink\"), j = b(\"URI\"), k = b(\"URLScraper\"), l = b(\"cx\");\n    function m(n, o, p, q) {\n        if (((((typeof n === \"undefined\")) || !n.toString))) {\n            return \"\";\n        }\n    ;\n    ;\n        if (((typeof o !== \"function\"))) {\n            o = h;\n        }\n    ;\n    ;\n        if (((typeof p !== \"function\"))) {\n            p = h;\n        }\n    ;\n    ;\n        var n = n.toString(), r = [], s;\n        while ((s = k.match(n))) {\n            var t = n.indexOf(s);\n            if (((t >= 0))) {\n                r.push(o(n.substring(0, t)));\n            }\n        ;\n        ;\n            var u = p(s), v = s.replace(/\"/g, \"%22\");\n            if (!(/^[a-z][a-z0-9\\-+.]+:\\/\\//i.test(s))) {\n                v = ((\"http://\" + v));\n            }\n        ;\n        ;\n            if (j.isValidURI(v)) {\n                r.push(((((((((((((\"\\u003Ca target=\\\"_blank\\\" rel=\\\"nofollow\\\" \" + \"class=\\\"\")) + \"_553k\")) + \"\\\" \")) + \"href=\\\"\")) + v)) + \"\\\"\")));\n                if (((q && !j(v).isFacebookURI()))) {\n                    a.UntrustedLink = i;\n                    r.push(((((\" onmousedown=\\\"UntrustedLink.bootstrap(this, '\" + g.lhsh)) + \"', event)\\\"\")));\n                }\n            ;\n            ;\n                r.push(((((\"\\u003E\" + u)) + \"\\u003C/a\\u003E\")));\n            }\n             else r.push(u);\n        ;\n        ;\n            n = n.substring(((t + s.length)));\n        };\n    ;\n        ((n && r.push(o(n))));\n        return r.join(\"\");\n    };\n;\n    e.exports = m;\n});\n__d(\"MercuryMessageRenderer\", [\"MercuryAttachmentRenderer\",\"CSS\",\"DOM\",\"DOMQuery\",\"HTML\",\"MercuryEmoji\",\"MercuryLogMessageType\",\"MercuryParticipants\",\"Tooltip\",\"cx\",\"htmlHyperlink\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"MercuryAttachmentRenderer\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"HTML\"), l = b(\"MercuryEmoji\"), m = b(\"MercuryLogMessageType\"), n = b(\"MercuryParticipants\"), o = b(\"Tooltip\"), p = b(\"cx\"), q = b(\"htmlHyperlink\"), r = b(\"tx\"), s = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",], t = {\n        renderDate: function(ma) {\n            var na = new JSBNG__Date();\n            na.setHours(0);\n            na.setMinutes(0);\n            na.setSeconds(0);\n            na.setMilliseconds(0);\n            var oa = ((((((24 * 60)) * 60)) * 1000)), pa = ((na.getTime() - ma.getTime()));\n            if (((pa <= 0))) {\n                return \"Today\";\n            }\n             else if (((pa < oa))) {\n                return \"Yesterday\";\n            }\n            \n        ;\n        ;\n            var qa = s[ma.getMonth()], ra = ma.getDate(), sa = ma.getFullYear();\n            if (((sa != na.getFullYear()))) {\n                return r._(\"{month} {date}, {year}\", {\n                    month: qa,\n                    date: ra,\n                    year: sa\n                });\n            }\n             else return r._(\"{month} {date}\", {\n                month: qa,\n                date: ra\n            })\n        ;\n        },\n        renderTooltipFlyout: function(ma, na) {\n            na.forEach(function(oa) {\n                var pa = i.create(\"div\");\n                i.setContent(pa, oa.JSBNG__name);\n                i.appendContent(ma, pa);\n            });\n        },\n        renderLogMessage: function(ma, na, oa, pa) {\n            w(ma, pa);\n            x(na, pa);\n            y(oa, pa);\n        },\n        formatMessageBody: function(ma, na, oa) {\n            var pa = ((ma || \"\")).replace(/\\s+$/, \"\");\n            if (!na) {\n                return v(pa, false, oa);\n            }\n        ;\n        ;\n            var qa = Object.keys(na).map(function(ta) {\n                return window.parseInt(ta);\n            }).sort(function(ta, ua) {\n                return ((ta - ua));\n            }), ra = [], sa = 0;\n            qa.forEach(function(ta) {\n                var ua = pa.slice(sa, ta);\n                if (ua) {\n                    ra.push(v(ua, false, oa));\n                }\n            ;\n            ;\n                sa = ((ta + na[ta].length));\n                var va = pa.slice(ta, sa);\n                if (va) {\n                    ra.push(v(va, true, oa));\n                }\n            ;\n            ;\n            });\n            if (((sa < pa.length))) {\n                ra.push(v(pa.slice(sa), false, oa));\n            }\n        ;\n        ;\n            return ((((ra.length === 0)) ? null : ((((ra.length === 1)) ? ra[0] : i.create(\"span\", {\n            }, ra)))));\n        }\n    };\n    function u(ma, na) {\n        var oa = ma.replace(/\\r\\n?/g, \"\\u000a\").split(/\\n{2,}/), pa = [];\n        for (var qa = 0; ((qa < oa.length)); qa++) {\n            var ra = oa[qa];\n            if (ra.length) {\n                pa.push(\"\\u003Cp\\u003E\");\n                pa.push(na(ra));\n                pa.push(\"\\u003C/p\\u003E\");\n            }\n        ;\n        ;\n        };\n    ;\n        return pa.join(\"\");\n    };\n;\n    function v(ma, na, oa) {\n        var pa = null;\n        if (((((ma.length === 0)) && !na))) {\n            return pa;\n        }\n    ;\n    ;\n        function qa(ra) {\n            return q(ra, l.htmlEmojiAndEmote, null, true);\n        };\n    ;\n        pa = ((oa ? u(ma, qa) : qa(ma)));\n        if (na) {\n            return i.create(\"span\", {\n                className: \"highlight\"\n            }, k(pa));\n        }\n    ;\n    ;\n        return k(pa);\n    };\n;\n    function w(ma, na) {\n        var oa = \"\", pa;\n        switch (na.log_message_type) {\n          case m.JOINABLE_CREATED:\n        \n          case m.JOINABLE_JOINED:\n        \n          case m.SUBSCRIBE:\n            oa = \"mercurySubscribeIcon\";\n            break;\n          case m.UNSUBSCRIBE:\n            oa = \"mercuryUnsubscribeIcon\";\n            break;\n          case m.THREAD_NAME:\n            oa = \"mercuryThreadNameIcon\";\n            break;\n          case m.THREAD_IMAGE:\n            oa = \"mercuryThreadImageIcon\";\n            break;\n          case m.VIDEO_CALL:\n            pa = na.log_message_data.answered;\n            if (((pa || la(na)))) {\n                oa = \"mercuryVideoCallIcon\";\n            }\n             else oa = \"mercuryMissedVideoCallIcon\";\n        ;\n        ;\n            break;\n          case m.PHONE_CALL:\n            pa = na.log_message_data.answered;\n            if (pa) {\n                oa = \"mercuryPhoneCallIcon\";\n            }\n             else oa = \"mercuryMissedPhoneCallIcon\";\n        ;\n        ;\n            break;\n          case m.SERVER_ERROR:\n            oa = \"mercuryErrorIcon\";\n            break;\n        };\n    ;\n        h.addClass(ma, oa);\n    };\n;\n    function x(ma, na) {\n        switch (na.log_message_type) {\n          case m.JOINABLE_CREATED:\n            da(ma, na);\n            break;\n          case m.JOINABLE_JOINED:\n            ea(ma, na);\n            break;\n          case m.SUBSCRIBE:\n            ia(ma, na);\n            break;\n          case m.UNSUBSCRIBE:\n            ja(ma, na);\n            break;\n          case m.VIDEO_CALL:\n            if (la(na)) {\n                z(ma, na);\n            }\n             else ba(ma, na);\n        ;\n        ;\n            break;\n          case m.PHONE_CALL:\n            aa(ma, na);\n            break;\n          case m.THREAD_NAME:\n            ca(ma, na);\n            break;\n          case m.THREAD_IMAGE:\n            fa(ma, na);\n            break;\n          case m.SERVER_ERROR:\n            ka(ma, na);\n            break;\n        };\n    ;\n    };\n;\n    function y(ma, na) {\n        var oa = na.log_message_type;\n        if (((oa == m.THREAD_IMAGE))) {\n            var pa = na.log_message_data.image;\n            if (pa) {\n                var qa = g.renderPreview(((pa.preview_url ? pa : null)));\n                i.setContent(ma, qa);\n                h.addClass(qa, \"_z6a\");\n                h.show(ma);\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    var z = function(ma, na) {\n        n.get(na.author, function(oa) {\n            var pa = i.create(\"span\", {\n                className: \"_511e\"\n            }, oa.short_name), qa;\n            switch (na.log_message_data.event_name) {\n              case \"installing\":\n                qa = i.tx._(\"{firstname} is setting up video calling...\", {\n                    firstname: pa\n                });\n                break;\n              case \"installed\":\n                qa = i.tx._(\"{firstname} finished setting up video calling.\", {\n                    firstname: pa\n                });\n                break;\n              case \"install_canceled\":\n                qa = i.tx._(\"You canceled the video calling installation. \", {\n                    firstname: pa\n                });\n                break;\n            };\n        ;\n            if (qa) {\n                i.setContent(ma, qa);\n            }\n        ;\n        ;\n        });\n    }, aa = function(ma, na) {\n        var oa = na.log_message_data.caller, pa = na.log_message_data.callee, qa = [oa,pa,];\n        n.getMulti(qa, function(ra) {\n            if (((oa == n.user))) {\n                var sa = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[pa].short_name), ta;\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"You called {firstname}.\", {\n                        firstname: sa\n                    });\n                }\n                 else ta = i.tx._(\"{firstname} missed a call from you. \", {\n                    firstname: sa\n                });\n            ;\n            ;\n            }\n             else {\n                var ua = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[oa].short_name);\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"{firstname} called you.\", {\n                        firstname: ua\n                    });\n                }\n                 else ta = i.tx._(\"You missed a call from {firstname}. \", {\n                    firstname: ua\n                });\n            ;\n            ;\n            }\n        ;\n        ;\n            i.setContent(ma, ta);\n        });\n    }, ba = function(ma, na) {\n        var oa = na.log_message_data.caller, pa = na.log_message_data.callee, qa = [oa,pa,];\n        n.getMulti(qa, function(ra) {\n            if (((oa == n.user))) {\n                var sa = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[pa].short_name), ta;\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"You called {firstname}.\", {\n                        firstname: sa\n                    });\n                }\n                 else ta = i.tx._(\"{firstname} missed a call from you. \", {\n                    firstname: sa\n                });\n            ;\n            ;\n            }\n             else {\n                var ua = i.create(\"span\", {\n                    className: \"_511e\"\n                }, ra[oa].short_name);\n                if (na.log_message_data.answered) {\n                    ta = i.tx._(\"{firstname} called you.\", {\n                        firstname: ua\n                    });\n                }\n                 else ta = i.tx._(\"You missed a call from {firstname}. \", {\n                    firstname: ua\n                });\n            ;\n            ;\n            }\n        ;\n        ;\n            i.setContent(ma, ta);\n        });\n    }, ca = function(ma, na) {\n        var oa = na.log_message_data.JSBNG__name, pa = i.create(\"b\", {\n        }, oa);\n        if (((na.author == n.user))) {\n            if (oa) {\n                i.setContent(ma, i.tx._(\"You named the conversation: {name}.\", {\n                    JSBNG__name: pa\n                }));\n            }\n             else i.setContent(ma, i.tx._(\"You removed the conversation name.\"));\n        ;\n        ;\n        }\n         else n.get(na.author, function(qa) {\n            var ra, sa = ga(qa);\n            if (oa) {\n                ra = i.tx._(\"{actor} named the conversation: {name}.\", {\n                    actor: sa,\n                    JSBNG__name: pa\n                });\n            }\n             else ra = i.tx._(\"{actor} removed the conversation name.\", {\n                actor: sa\n            });\n        ;\n        ;\n            i.setContent(ma, ra);\n        });\n    ;\n    ;\n    }, da = function(ma, na) {\n        if (((na.author == n.user))) {\n            i.setContent(ma, i.tx._(\"Other people can join this chat from News Feed and add their friends.\"));\n        }\n         else n.get(na.author, function(oa) {\n            var pa = ga(oa);\n            i.setContent(ma, i.tx._(\"{actor} shared this chat to News Feed. Other people can join and add their friends.\", {\n                actor: pa\n            }));\n        });\n    ;\n    ;\n    }, ea = function(ma, na) {\n        var oa = na.log_message_data.joined_participant;\n        if (((oa == n.user))) {\n            i.setContent(ma, i.tx._(\"You joined the chat. Other people can join from News Feed and add their friends.\"));\n        }\n         else n.get(oa, function(pa) {\n            var qa = ga(pa);\n            i.setContent(ma, i.tx._(\"{actor} joined the chat.\", {\n                actor: qa\n            }));\n        });\n    ;\n    ;\n    }, fa = function(ma, na) {\n        if (((na.author == n.user))) {\n            if (na.log_message_data.image) {\n                i.setContent(ma, i.tx._(\"You changed the conversation picture.\"));\n            }\n             else i.setContent(ma, i.tx._(\"You removed the conversation picture.\"));\n        ;\n        ;\n        }\n         else n.get(na.author, function(oa) {\n            var pa = ga(oa), qa;\n            if (na.log_message_data.image) {\n                qa = i.tx._(\"{actor} changed the conversation picture.\", {\n                    actor: pa\n                });\n            }\n             else qa = i.tx._(\"{actor} removed the conversation picture.\", {\n                actor: pa\n            });\n        ;\n        ;\n            i.setContent(ma, qa);\n        });\n    ;\n    ;\n    }, ga = function(ma) {\n        if (ma.href) {\n            return i.create(\"a\", {\n                href: ma.href,\n                className: \"_511e\"\n            }, ma.JSBNG__name);\n        }\n    ;\n    ;\n        return ma.JSBNG__name;\n    }, ha = function(ma) {\n        var na = ma.indexOf(n.user);\n        if (((na > 0))) {\n            return ma.splice(na, 1).concat(ma);\n        }\n    ;\n    ;\n        return ma;\n    }, ia = function(ma, na) {\n        var oa = ha(na.log_message_data.added_participants), pa = null, qa;\n        if (((oa.length == 1))) {\n            pa = [na.author,oa[0],];\n            n.getMulti(pa, function(ra) {\n                if (((na.author == n.user))) {\n                    qa = i.tx._(\"You added {subscriber1}.\", {\n                        subscriber1: ga(ra[oa[0]])\n                    });\n                }\n                 else if (((oa[0] == n.user))) {\n                    qa = i.tx._(\"{actor} added you.\", {\n                        actor: ga(ra[na.author])\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]])\n                });\n                \n            ;\n            ;\n                i.setContent(ma, qa);\n            });\n        }\n         else if (((oa.length == 2))) {\n            pa = [na.author,].concat(oa);\n            n.getMulti(pa, function(ra) {\n                if (((na.author == n.user))) {\n                    qa = i.tx._(\"You added {subscriber1} and {subscriber2}.\", {\n                        subscriber1: ga(ra[oa[0]]),\n                        subscriber2: ga(ra[oa[1]])\n                    });\n                }\n                 else if (((oa[0] == n.user))) {\n                    qa = i.tx._(\"{actor} added you and {subscriber2}.\", {\n                        actor: ga(ra[na.author]),\n                        subscriber2: ga(ra[oa[1]])\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1} and {subscriber2}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]]),\n                    subscriber2: ga(ra[oa[1]])\n                });\n                \n            ;\n            ;\n                i.setContent(ma, qa);\n            });\n        }\n         else if (((oa.length == 3))) {\n            pa = [na.author,].concat(oa);\n            n.getMulti(pa, function(ra) {\n                if (((na.author == n.user))) {\n                    qa = i.tx._(\"You added {subscriber1}, {subscriber2} and {subscriber3}.\", {\n                        subscriber1: ga(ra[oa[0]]),\n                        subscriber2: ga(ra[oa[1]]),\n                        subscriber3: ga(ra[oa[2]])\n                    });\n                }\n                 else if (((oa[0] == n.user))) {\n                    qa = i.tx._(\"{actor} added you, {subscriber2} and {subscriber3}.\", {\n                        actor: ga(ra[na.author]),\n                        subscriber2: ga(ra[oa[1]]),\n                        subscriber3: ga(ra[oa[2]])\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1}, {subscriber2} and {subscriber3}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]]),\n                    subscriber2: ga(ra[oa[1]]),\n                    subscriber3: ga(ra[oa[2]])\n                });\n                \n            ;\n            ;\n                i.setContent(ma, qa);\n            });\n        }\n         else {\n            pa = [na.author,].concat(oa);\n            n.getMulti(pa, function(ra) {\n                var sa = i.tx._(\"{num} more\", {\n                    num: ((oa.length - 2))\n                }), ta = i.create(\"span\", {\n                    className: \"more\"\n                }, sa), ua = i.create(\"div\");\n                t.renderTooltipFlyout(ua, oa.slice(2).map(function(wa) {\n                    return ra[wa];\n                }));\n                if (((na.author == n.user))) {\n                    qa = i.tx._(\"You added {subscriber1}, {subscriber2} and {more_people}.\", {\n                        subscriber1: ga(ra[oa[0]]),\n                        subscriber2: ga(ra[oa[1]]),\n                        more_people: ta\n                    });\n                }\n                 else if (((oa[0] == n.user))) {\n                    qa = i.tx._(\"{actor} added you, {subscriber2} and {more_people}.\", {\n                        actor: ga(ra[na.author]),\n                        subscriber2: ga(ra[oa[1]]),\n                        more_people: ta\n                    });\n                }\n                 else qa = i.tx._(\"{actor} added {subscriber1}, {subscriber2} and {more_people}.\", {\n                    actor: ga(ra[na.author]),\n                    subscriber1: ga(ra[oa[0]]),\n                    subscriber2: ga(ra[oa[1]]),\n                    more_people: ta\n                });\n                \n            ;\n            ;\n                i.setContent(ma, qa);\n                var va = j.JSBNG__find(ma, \"span.more\");\n                o.set(va, ua, \"above\", \"center\");\n            });\n        }\n        \n        \n    ;\n    ;\n    }, ja = function(ma, na) {\n        n.get(na.author, function(oa) {\n            var pa;\n            if (((na.author == n.user))) {\n                pa = i.tx._(\"You left the conversation.\");\n            }\n             else pa = i.tx._(\"{actor} left the conversation.\", {\n                actor: ga(oa)\n            });\n        ;\n        ;\n            i.setContent(ma, pa);\n        });\n    }, ka = function(ma, na) {\n        var oa = \"We were unable to fetch previous messages in this conversation.\";\n        i.setContent(ma, oa);\n    }, la = function(ma) {\n        return ((((ma.log_message_data.event_name === \"installing\")) || ((ma.log_message_data.event_name === \"install_canceled\"))));\n    };\n    e.exports = t;\n});\n__d(\"MercurySheetPolicy\", [], function(a, b, c, d, e, f) {\n    var g = {\n        canReplaceOpenSheet: function(h, i) {\n            if (((h.getType() == i.getType()))) {\n                return false;\n            }\n        ;\n        ;\n            if (((h.isPermanent() && !i.isPermanent()))) {\n                return false;\n            }\n        ;\n        ;\n            return true;\n        }\n    };\n    e.exports = g;\n});\n__d(\"MercurySheetView\", [\"Animation\",\"ArbiterMixin\",\"MercurySheetPolicy\",\"CSS\",\"DOM\",\"Style\",\"MercurySheetTemplates\",\"Vector\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"MercurySheetPolicy\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Style\"), m = b(\"MercurySheetTemplates\"), n = b(\"Vector\"), o = b(\"copyProperties\"), p = b(\"cx\"), q = 5000, r = function(s, t, u) {\n        this._threadID = s;\n        this._rootElement = t;\n        this._tabMainElement = u;\n        this._openSheet = null;\n    };\n    o(r.prototype, h, {\n        destroy: function() {\n            k.empty(this._rootElement);\n        },\n        _openCommon: function(s, t) {\n            if (((this._openSheet && !i.canReplaceOpenSheet(this._openSheet, s)))) {\n                if (s.couldNotReplace) {\n                    s.couldNotReplace();\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            this.clear(function() {\n                this._openSheet = s;\n                var u = m[\":fb:mercury:tab-sheet:loading\"].build().getRoot();\n                k.setContent(this._rootElement, u);\n                j.show(u);\n                j.show(this._rootElement);\n                s.render();\n                if (t) {\n                    j.addClass(this._tabMainElement, \"sheetSlide\");\n                    j.addClass(this._tabMainElement, \"_1sk4\");\n                    var v = n.getElementDimensions(this._rootElement).y;\n                    l.set(this._rootElement, \"bottom\", ((v + \"px\")));\n                    this.inform(\"resize\");\n                    this._animation = new g(this._rootElement).to(\"bottom\", 0).duration(150).ease(g.ease.both).ondone(function() {\n                        j.removeClass(this._tabMainElement, \"sheetSlide\");\n                        j.removeClass(this._tabMainElement, \"_1sk4\");\n                        this.inform(\"resize\");\n                    }.bind(this)).go();\n                }\n                 else this.inform(\"resize\");\n            ;\n            ;\n                if (!s.isPermanent()) {\n                    var w = q;\n                    if (s.getCloseTimeout) {\n                        w = s.getCloseTimeout();\n                    }\n                ;\n                ;\n                    var x = this.getAutoCloseCallback(s);\n                    this._sheetCloseHandler = this.close.bind(this, s, x).defer(w, false);\n                    if (s.timeoutCanBeReset) {\n                        s.setResetTimeoutCallback(this.resetTimeout.bind(this));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        getAutoCloseCallback: function(s) {\n            if (!s.autoCloseCallback) {\n                return null;\n            }\n        ;\n        ;\n            return s.autoCloseCallback.bind(s);\n        },\n        resetTimeout: function(s, t) {\n            JSBNG__clearTimeout(this._sheetCloseHandler);\n            var u = this.getAutoCloseCallback(s);\n            this._sheetCloseHandler = this.close.bind(this, s, u).defer(t, false);\n        },\n        set: function(s) {\n            return this._openCommon(s, false);\n        },\n        open: function(s) {\n            return this._openCommon(s, true);\n        },\n        close: function(s, t) {\n            if (((this._openSheet != s))) {\n                return;\n            }\n        ;\n        ;\n            if (!this._openSheet) {\n                ((t && t()));\n                return;\n            }\n        ;\n        ;\n            if (this._animation) {\n                this._animation.JSBNG__stop();\n            }\n        ;\n        ;\n            if (this._sheetCloseHandler) {\n                JSBNG__clearTimeout(this._sheetCloseHandler);\n                this._sheetCloseHandler = null;\n            }\n        ;\n        ;\n            j.addClass(this._tabMainElement, \"sheetSlide\");\n            j.addClass(this._tabMainElement, \"_1sk4\");\n            var u = n.getElementDimensions(this._rootElement).y;\n            this.inform(\"resize\");\n            this._animation = new g(this._rootElement).to(\"bottom\", ((u + \"px\"))).duration(100).ease(g.ease.begin).ondone(function() {\n                k.empty(this._rootElement);\n                j.hide(this._rootElement);\n                j.removeClass(this._tabMainElement, \"sheetSlide\");\n                j.removeClass(this._tabMainElement, \"_1sk4\");\n                this._openSheet = null;\n                this.inform(\"resize\");\n                ((t && t()));\n            }.bind(this)).go();\n        },\n        clear: function(s) {\n            this.close(this._openSheet, s);\n        }\n    });\n    e.exports = r;\n});\n__d(\"MercuryStickersData\", [\"Arbiter\",\"MercuryStickersInitialData\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"MercuryStickersInitialData\"), i = h.packs, j = {\n        getPacks: function() {\n            return i;\n        },\n        updatePackData: function(k) {\n            i = k.packs;\n            g.inform(\"MercuryStickers/updatedPacks\");\n        }\n    };\n    e.exports = j;\n});\n__d(\"MercuryStickers\", [\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"MercuryStickersData\",\"MercuryStickersFlyoutList.react\",\"Parent\",\"React\",\"SubscriptionsHandler\",\"Toggler\",\"UIPagelet\",\"XUISpinner.react\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"MercuryStickersData\"), m = b(\"MercuryStickersFlyoutList.react\"), n = b(\"Parent\"), o = b(\"React\"), p = b(\"SubscriptionsHandler\"), q = b(\"Toggler\"), r = b(\"UIPagelet\"), s = b(\"XUISpinner.react\"), t = b(\"copyProperties\"), u = b(\"csx\"), v = b(\"cx\");\n    function w(x) {\n        this._packs = j.JSBNG__find(x, \"._5907\");\n        this._packSelector = j.JSBNG__find(x, \"._5906\");\n        this._loadedPacks = {\n            emoticons: true\n        };\n        var y = n.byClass(x, \"uiToggle\"), z = q.listen(\"show\", y, function() {\n            this._renderPackList();\n            this._subscriptions.addSubscriptions(g.subscribe(\"MercuryStickers/updatedPacks\", this._renderPackList.bind(this)));\n            this._selectPack(l.getPacks()[0].id);\n            q.unsubscribe(z);\n        }.bind(this));\n        this._subscriptions = new p();\n        this._subscriptions.addSubscriptions(k.listen(this._packs, \"click\", function(JSBNG__event) {\n            var aa = n.byClass(JSBNG__event.getTarget(), \"_55bp\");\n            if (aa) {\n                this._selectedSticker(aa);\n                q.hide(y);\n            }\n        ;\n        ;\n        }.bind(this)));\n    };\n;\n    t(w.prototype, h, {\n        _renderPackList: function() {\n            o.renderComponent(m({\n                onPackClick: this._selectPack.bind(this),\n                packs: l.getPacks()\n            }), this._packSelector);\n        },\n        _loadPack: function(x) {\n            if (this._loadedPacks[x]) {\n                return;\n            }\n        ;\n        ;\n            var y = this._getPackWithID(x);\n            o.renderComponent(s({\n                className: \"_5905\"\n            }), y);\n            this._loadedPacks[x] = true;\n            r.loadFromEndpoint(\"StickerPackPagelet\", y, {\n                id: x\n            });\n        },\n        _getPackWithID: function(x) {\n            var y = j.scry(this._packs, ((((((\"._55bq\" + \"[data-id=\\\"\")) + x)) + \"\\\"]\")))[0];\n            if (!y) {\n                y = j.create(\"div\", {\n                    className: \"_55bq hidden_elem\",\n                    \"data-id\": x\n                });\n                j.appendContent(this._packs, y);\n            }\n        ;\n        ;\n            return y;\n        },\n        _selectedSticker: function(x) {\n            var y = parseInt(x.getAttribute(\"data-id\"), 10);\n            this.inform(\"stickerselected\", {\n                id: y\n            });\n        },\n        _selectPack: function(x) {\n            j.scry(this._packs, \"._55bq\").forEach(i.hide);\n            this._loadPack(x);\n            i.show(this._getPackWithID(x));\n        },\n        destroy: function() {\n            ((this._subscriptions && this._subscriptions.release()));\n            this._subscriptions = null;\n        }\n    });\n    e.exports = w;\n});\n__d(\"Token\", [\"CSS\",\"DataStore\",\"DOM\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"copyProperties\"), k = b(\"tx\");\n    function l(m, n) {\n        this.info = m;\n        this.paramName = n;\n    };\n;\n    j(l.prototype, {\n        getInfo: function() {\n            return this.info;\n        },\n        getText: function() {\n            return this.info.text;\n        },\n        getValue: function() {\n            return this.info.uid;\n        },\n        isFreeform: function() {\n            return !!this.info.freeform;\n        },\n        setSelected: function(m) {\n            g.conditionClass(this.getElement(), \"uiTokenSelected\", m);\n            return this;\n        },\n        getElement: function() {\n            if (!this.element) {\n                this.setElement(this.createElement());\n            }\n        ;\n        ;\n            return this.element;\n        },\n        setElement: function(m) {\n            h.set(m, \"Token\", this);\n            this.element = m;\n            return this;\n        },\n        isRemovable: function() {\n            return g.hasClass(this.element, \"removable\");\n        },\n        createElement: function(m, n) {\n            var o = this.paramName, p = this.getText(), q = this.getValue(), r = i.create(\"a\", {\n                href: \"#\",\n                \"aria-label\": k._(\"Remove {item}\", {\n                    item: p\n                }),\n                className: \"remove uiCloseButton uiCloseButtonSmall\"\n            });\n            if (m) {\n                g.addClass(r, \"uiCloseButtonSmallGray\");\n            }\n        ;\n        ;\n            var s = i.create(\"input\", {\n                type: \"hidden\",\n                value: q,\n                JSBNG__name: ((o + \"[]\")),\n                autocomplete: \"off\"\n            }), t = i.create(\"input\", {\n                type: \"hidden\",\n                value: p,\n                JSBNG__name: ((((\"text_\" + o)) + \"[]\")),\n                autocomplete: \"off\"\n            }), u = i.create(\"span\", {\n                className: \"removable uiToken\"\n            }, [p,s,t,r,]);\n            if (m) {\n                g.addClass(u, \"uiTokenGray\");\n            }\n        ;\n        ;\n            if (n) {\n                var v = i.create(\"i\", {\n                    className: n\n                });\n                i.prependContent(u, v);\n            }\n        ;\n        ;\n            return u;\n        }\n    });\n    e.exports = l;\n});\n__d(\"WeakToken\", [\"Class\",\"CSS\",\"Token\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"Token\"), j = b(\"copyProperties\");\n    function k(l, m) {\n        this.parent.construct(this, l, m);\n    };\n;\n    g.extend(k, i);\n    j(k.prototype, {\n        createElement: function() {\n            var l = this.parent.createElement(true, \"UFIWeakReferenceIcon\");\n            h.addClass(l, \"uiTokenWeakReference\");\n            return l;\n        }\n    });\n    e.exports = k;\n});\n__d(\"Tokenizer\", [\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"DOMQuery\",\"DataStore\",\"JSBNG__Event\",\"Focus\",\"Input\",\"Keys\",\"Parent\",\"StickyPlaceholderInput\",\"Style\",\"JSBNG__TextMetrics\",\"Token\",\"UserAgent\",\"WeakToken\",\"copyProperties\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"DataStore\"), m = b(\"JSBNG__Event\"), n = b(\"Focus\"), o = b(\"Input\"), p = b(\"Keys\"), q = b(\"Parent\"), r = b(\"StickyPlaceholderInput\"), s = b(\"Style\"), t = b(\"JSBNG__TextMetrics\"), u = b(\"Token\"), v = b(\"UserAgent\"), w = b(\"WeakToken\"), x = b(\"copyProperties\"), y = b(\"createObjectFrom\"), z = b(\"emptyFunction\"), aa = 20;\n    function ba(ca, da) {\n        this.element = ca;\n        this.typeahead = da;\n        this.input = da.getCore().getElement();\n        l.set(this.element, \"Tokenizer\", this);\n    };\n;\n    ba.getInstance = function(ca) {\n        var da = q.byClass(ca, \"uiTokenizer\");\n        return ((da ? l.get(da, \"Tokenizer\") : null));\n    };\n    x(ba.prototype, h, {\n        inline: false,\n        maxTokens: null,\n        excludeDuplicates: true,\n        placeholder: \"\",\n        init: function(ca, da, ea, fa) {\n            this.init = z;\n            this.tokenarea = ca;\n            this.paramName = da;\n            if (!this.placeholder) {\n                this.placeholder = ((this.input.getAttribute(\"data-placeholder\") || \"\"));\n            }\n        ;\n        ;\n            x(this, ((fa || {\n            })));\n            this.initEvents();\n            this.initTypeahead();\n            this.reset(ea);\n            this.initBehaviors();\n            this.adjustWidth.bind(this).defer();\n            g.inform(\"Tokenizer/init\", this, g.BEHAVIOR_PERSISTENT);\n        },\n        reset: function(ca) {\n            this.tokens = [];\n            this.unique = {\n            };\n            if (ca) {\n                this.populate(ca);\n            }\n             else j.empty(this.tokenarea);\n        ;\n        ;\n            this.updateTokenarea();\n        },\n        populate: function(ca) {\n            var da = [];\n            this.tokens = this.getTokenElements().map(function(ea, fa) {\n                var ga = ca[fa];\n                da.push(this._tokenKey(ga));\n                return this.createToken(ga, ea);\n            }, this);\n            this.unique = y(da, this.tokens);\n        },\n        getElement: function() {\n            return this.element;\n        },\n        getTypeahead: function() {\n            return this.typeahead;\n        },\n        getInput: function() {\n            return this.input;\n        },\n        initBehaviors: function() {\n            this.behaviors = ((this.behaviors || []));\n            if (((this.behaviors instanceof Array))) {\n                this.behaviors.forEach(function(ea) {\n                    ea.behavior(this, ea.config);\n                }.bind(this));\n            }\n             else {\n                var fin269keys = ((window.top.JSBNG_Replay.forInKeys)(((this.behaviors || {\n                })))), fin269i = (0);\n                var ca;\n                for (; (fin269i < fin269keys.length); (fin269i++)) {\n                    ((ca) = (fin269keys[fin269i]));\n                    {\n                        var da = ((window.TokenizerBehaviors && window.TokenizerBehaviors[ca]));\n                        da.call(null, this, this.behaviors[ca]);\n                    };\n                };\n            }\n        ;\n        ;\n        },\n        initTypeahead: function() {\n            var ca = this.typeahead.getCore();\n            ca.resetOnSelect = true;\n            ca.setValueOnSelect = false;\n            ca.preventFocusChangeOnTab = true;\n            if (this.inline) {\n                var da = this.typeahead.getView();\n                i.addClass(da.getElement(), \"uiInlineTokenizerView\");\n            }\n        ;\n        ;\n            this.typeahead.subscribe(\"select\", function(ea, fa) {\n                var ga = fa.selected;\n                if (((\"uid\" in ga))) {\n                    this.updateInput();\n                    this.addToken(this.createToken(ga));\n                }\n            ;\n            ;\n            }.bind(this));\n            this.typeahead.subscribe(\"JSBNG__blur\", this.handleBlur.bind(this));\n        },\n        handleBlur: function(JSBNG__event) {\n            this.inform(\"JSBNG__blur\", {\n                JSBNG__event: JSBNG__event\n            });\n            this.updatePlaceholder();\n        },\n        initEvents: function() {\n            var ca = this.handleEvents.bind(this), da = ((((v.firefox() < 4)) ? \"keypress\" : \"keydown\"));\n            m.listen(this.tokenarea, {\n                click: ca,\n                keydown: ca\n            });\n            m.listen(this.input, \"paste\", this.paste.bind(this));\n            m.listen(this.input, da, this.keydown.bind(this));\n        },\n        handleEvents: function(JSBNG__event) {\n            var ca = JSBNG__event.getTarget(), da = ((ca && this.getTokenElementFromTarget(ca)));\n            if (!da) {\n                return;\n            }\n        ;\n        ;\n            if (((((JSBNG__event.type != \"keydown\")) || ((m.getKeyCode(JSBNG__event) == p.RETURN))))) {\n                this.processEvents(JSBNG__event, ca, da);\n            }\n        ;\n        ;\n        },\n        processEvents: function(JSBNG__event, ca, da) {\n            if (q.byClass(ca, \"remove\")) {\n                var ea = da.nextSibling;\n                ea = ((ea && k.scry(da.nextSibling, \".remove\")[0]));\n                var fa = this.getTokenFromElement(da);\n                fa = this.addTokenData(fa, ca);\n                this.removeToken(fa);\n                this.focusOnTokenRemoval(JSBNG__event, ea);\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        },\n        focusOnTokenRemoval: function(JSBNG__event, ca) {\n            n.set(((((((JSBNG__event.type == \"keydown\")) && ca)) || this.input)));\n        },\n        addTokenData: function(ca, da) {\n            return ca;\n        },\n        keydown: function(JSBNG__event) {\n            this.inform(\"keydown\", {\n                JSBNG__event: JSBNG__event\n            });\n            var ca = m.getKeyCode(JSBNG__event), da = this.input;\n            if (((((this.inline && ((ca == p.BACKSPACE)))) && o.isEmpty(da)))) {\n                var ea = this.getLastToken();\n                if (((ea && ea.isRemovable()))) {\n                    this.removeToken(ea);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this.updateInput();\n        },\n        paste: function(JSBNG__event) {\n            this.inform(\"paste\", {\n                JSBNG__event: JSBNG__event\n            });\n            this.updateInput(true);\n        },\n        focusInput: function() {\n            n.set(this.input);\n        },\n        updateInput: function(ca) {\n            if (!this.inline) {\n                return;\n            }\n        ;\n        ;\n            JSBNG__setTimeout(function() {\n                this.adjustWidth(this.input.value);\n                if (ca) {\n                    this.input.value = this.input.value;\n                }\n            ;\n            ;\n            }.bind(this), 20);\n            r.setPlaceholderText(this.input, \"\");\n            this.inform(\"resize\");\n        },\n        setPlaceholder: function(ca) {\n            this.placeholder = ca;\n            if (this.stickyPlaceholder) {\n                r.setPlaceholderText(this.input, ca);\n            }\n        ;\n        ;\n            this.updatePlaceholder();\n        },\n        updatePlaceholder: function() {\n            if (((!this.inline || this.input.value))) {\n                return;\n            }\n        ;\n        ;\n            var ca = !this.tokens.length, da = \"\";\n            if (((ca || this.stickyPlaceholder))) {\n                this.adjustWidth(this.placeholder);\n                da = this.placeholder;\n            }\n             else this.adjustWidth(this.input.value);\n        ;\n        ;\n            r.setPlaceholderText(this.input, da);\n        },\n        adjustWidth: function(ca) {\n            if (((!this.inline || !this._getIsInDOM()))) {\n                return;\n            }\n        ;\n        ;\n            if (((!ca && ((this.input.value === \"\"))))) {\n                ca = this.placeholder;\n            }\n        ;\n        ;\n            var da = aa;\n            if (((((((ca !== this.placeholder)) || !this.getTokens().length)) || this.stickyPlaceholder))) {\n                var ea = this._getMetrics().measure(ca);\n                da = ((((ea.width + this._getWidthOffset())) + 10));\n            }\n        ;\n        ;\n            s.set(this.input, \"width\", ((da + \"px\")));\n            this.inform(\"resize\");\n        },\n        getToken: function(ca) {\n            return ((this.unique[ca] || null));\n        },\n        getTokens: function() {\n            return ((this.tokens || []));\n        },\n        getTokenElements: function() {\n            return k.scry(this.tokenarea, \"span.uiToken\");\n        },\n        getTokenElementFromTarget: function(ca) {\n            return q.byClass(ca, \"uiToken\");\n        },\n        getTokenFromElement: function(ca) {\n            return l.get(ca, \"Token\");\n        },\n        getTokenValues: function() {\n            if (!this.tokens) {\n                return [];\n            }\n        ;\n        ;\n            return this.tokens.map(function(ca) {\n                return ca.getValue();\n            });\n        },\n        getFirstToken: function() {\n            return ((this.tokens[0] || null));\n        },\n        getLastToken: function() {\n            return ((this.tokens[((this.tokens.length - 1))] || null));\n        },\n        hasMaxTokens: function() {\n            return ((this.maxTokens && ((this.maxTokens <= this.tokens.length))));\n        },\n        createToken: function(ca, da) {\n            var ea = this.getToken(this._tokenKey(ca));\n            if (!ea) {\n                ea = ((ca.weak_reference ? new w(ca, this.paramName) : new u(ca, this.paramName)));\n            }\n        ;\n        ;\n            ((da && ea.setElement(da)));\n            return ea;\n        },\n        addToken: function(ca) {\n            if (this.hasMaxTokens()) {\n                return;\n            }\n        ;\n        ;\n            var da = this._tokenKey(ca.getInfo());\n            if (((da in this.unique))) {\n                return;\n            }\n        ;\n        ;\n            this.unique[da] = ca;\n            this.tokens.push(ca);\n            this.insertToken(ca);\n            this.updateTokenarea();\n            this.inform(\"addToken\", ca);\n            g.inform(\"Form/change\", {\n                node: this.element\n            });\n        },\n        insertToken: function(ca) {\n            j.appendContent(this.tokenarea, ca.getElement());\n        },\n        removeToken: function(ca) {\n            if (!ca) {\n                return;\n            }\n        ;\n        ;\n            var da = this.tokens.indexOf(ca);\n            if (((da < 0))) {\n                return;\n            }\n        ;\n        ;\n            this.tokens.splice(this.tokens.indexOf(ca), 1);\n            delete this.unique[this._tokenKey(ca.getInfo())];\n            j.remove(ca.getElement());\n            this.updateTokenarea();\n            this.inform(\"removeToken\", ca);\n            g.inform(\"Form/change\", {\n                node: this.element\n            });\n        },\n        removeAllTokens: function() {\n            this.reset();\n            this.inform(\"removeAllTokens\");\n        },\n        updateTokenarea: function() {\n            var ca = this.typeahead.getCore(), da = this.getTokenValues();\n            if (this.excludeDuplicates) {\n                ((this._exclusions || (this._exclusions = ca.getExclusions())));\n                ca.setExclusions(da.concat(this._exclusions));\n            }\n        ;\n        ;\n            ca.setEnabled(!this.hasMaxTokens());\n            this.updateTokenareaVisibility();\n            this.updatePlaceholder();\n            this.inform(\"resize\");\n        },\n        updateTokenareaVisibility: function() {\n            i.conditionShow(this.tokenarea, ((this.tokens.length !== 0)));\n        },\n        _tokenKey: function(ca) {\n            return ((ca.uid + ((ca.freeform ? \":\" : \"\"))));\n        },\n        _widthOffset: null,\n        _getWidthOffset: function() {\n            if (((this._widthOffset === null))) {\n                var ca = this.input.clientWidth, da = s.getFloat(this.input, \"width\");\n                if (((ca == da))) {\n                    this._widthOffset = ((s.getFloat(this.input, \"paddingLeft\") + s.getFloat(this.input, \"paddingRight\")));\n                }\n                 else this._widthOffset = 0;\n            ;\n            ;\n            }\n        ;\n        ;\n            return this._widthOffset;\n        },\n        _metrics: null,\n        _getMetrics: function() {\n            if (!this._metrics) {\n                this._metrics = new t(this.input, this.inline);\n            }\n        ;\n        ;\n            return this._metrics;\n        },\n        _getIsInDOM: function() {\n            return ((this._isInDOM || (this._isInDOM = k.contains(JSBNG__document.body, this.input))));\n        }\n    });\n    ba.init = function(ca, da) {\n        ca.init(da.tokenarea, da.param_name, da.initial_info, da.options);\n    };\n    e.exports = ba;\n});\n__d(\"MercuryTypeahead\", [\"JSBNG__Event\",\"ArbiterMixin\",\"DOM\",\"DOMDimensions\",\"Input\",\"Keys\",\"MercuryTypeaheadTemplates\",\"Tokenizer\",\"Typeahead\",\"TypeaheadCore\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"DOMDimensions\"), k = b(\"Input\"), l = b(\"Keys\"), m = b(\"MercuryTypeaheadTemplates\"), n = b(\"Tokenizer\"), o = b(\"Typeahead\"), p = b(\"TypeaheadCore\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = function(t, u) {\n        this._domElement = null;\n        this._typeahead = null;\n        this._tokenizer = null;\n        this._placeholder = \"\";\n        this._exclusions = [];\n        this._viewNodeOrID = null;\n        this._viewOptions = {\n            renderer: \"compact\",\n            autoSelect: true\n        };\n        this._tokenizerBehaviors = [];\n        this._heightPrev = null;\n        this._dataSource = t;\n        this._view = u;\n    };\n    q(s.prototype, h);\n    q(s.prototype, {\n        setPlaceholder: function(t) {\n            this._placeholder = t;\n            return this;\n        },\n        setExcludedParticipants: function(t) {\n            this._exclusions = [];\n            t.forEach(function(u) {\n                var v = u.indexOf(\":\");\n                if (((u.substr(0, v) == \"fbid\"))) {\n                    this._exclusions.push(u.substr(((v + 1))));\n                }\n            ;\n            ;\n            }.bind(this));\n            return this;\n        },\n        setViewNodeID: function(t) {\n            this._viewNodeOrID = t;\n        },\n        setViewNode: function(t) {\n            this._viewNodeOrID = t;\n        },\n        setFullWidthView: function(t) {\n            var u = i.create(\"div\", {\n                className: \"_4ck uiTypeaheadView\"\n            });\n            i.setContent(t, u);\n            this.setViewNode(u);\n        },\n        setViewOption: function(t, u) {\n            this._viewOptions[t] = u;\n        },\n        addTokenizerBehavior: function(t) {\n            this._tokenizerBehaviors.push(t);\n        },\n        build: function(t) {\n            if (this._domElement) {\n                return;\n            }\n        ;\n        ;\n            var u = m[\":fb:mercury:tokenizer\"].build(), v = m[\":fb:mercury:typeahead\"].build();\n            this._domElement = u.getRoot();\n            i.appendContent(this._domElement, v.getRoot());\n            var w = v.getNode(\"textfield\");\n            k.setPlaceholder(w, this._placeholder);\n            w.setAttribute(\"data-placeholder\", this._placeholder);\n            this._input = w;\n            var x = {\n                node_id: this._viewNodeOrID,\n                ctor: this._view,\n                options: this._viewOptions\n            }, y = {\n                ctor: p,\n                options: {\n                    setValueOnSelect: true\n                }\n            };\n            this._typeahead = new o(this._dataSource, x, y, v.getRoot());\n            this._typeahead.init();\n            var z = {\n                inline: true,\n                behaviors: this._tokenizerBehaviors\n            };\n            this._tokenizer = new n(this._domElement, this._typeahead);\n            this._tokenizer.init(u.getNode(\"tokenarea\"), \"participants\", [], z);\n            this._tokenizer.subscribe([\"addToken\",\"removeToken\",\"removeAllTokens\",], this._tokensChanged.bind(this));\n            this._tokenizer.subscribe(\"resize\", function() {\n                this.inform(\"resize\");\n            }.bind(this));\n            g.listen(w, \"JSBNG__focus\", function() {\n                this._resetDataSource();\n                this._typeahead.init();\n            }.bind(this));\n            g.listen(this._domElement, \"click\", this.JSBNG__focus.bind(this));\n            g.listen(w, \"keydown\", this.keydown.bind(this));\n            this._heightPrev = j.getElementDimensions(this._domElement).height;\n        },\n        getElement: function() {\n            return this._domElement;\n        },\n        getSelectedParticipantIDs: function() {\n            var t = [];\n            if (this._tokenizer) {\n                ((this._tokenizer.getTokenValues() || [])).forEach(function(u) {\n                    t.push(((\"fbid:\" + u)));\n                });\n            }\n        ;\n        ;\n            return t;\n        },\n        getTokens: function() {\n            var t = [];\n            if (this._tokenizer) {\n                t = this._tokenizer.getTokens();\n            }\n        ;\n        ;\n            return t;\n        },\n        getTokenizer: function() {\n            return this._tokenizer;\n        },\n        keydown: function(JSBNG__event) {\n            if (((this._tokenizer.inline && ((JSBNG__event.keyCode == l.ESC))))) {\n                if (k.isEmpty(this._input)) {\n                    var t = this._tokenizer.getLastToken();\n                    if (((t && t.isRemovable()))) {\n                        this._tokenizer.removeToken(t);\n                    }\n                ;\n                ;\n                }\n                 else this._typeahead.getCore().reset();\n            ;\n            ;\n                return false;\n            }\n        ;\n        ;\n        },\n        reset: function() {\n            ((this._tokenizer && this._tokenizer.removeAllTokens()));\n            ((this._typeahead && this._typeahead.getCore().reset()));\n        },\n        JSBNG__focus: function() {\n            ((this._tokenizer && this._tokenizer.focusInput()));\n        },\n        getTypeahead: function() {\n            return this._typeahead;\n        },\n        _resetDataSource: function() {\n            this._dataSource.setExclusions(this._exclusions);\n        },\n        _tokensChanged: function() {\n            this.inform(\"tokens-changed\");\n        }\n    });\n    e.exports = s;\n});\n__d(\"PhotosUploadWaterfall\", [\"AsyncSignal\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncSignal\"), h = {\n        APP_FLASH: \"flash_pro\",\n        APP_SIMPLE: \"simple\",\n        APP_ARCHIVE: \"archive\",\n        APP_COMPOSER: \"composer\",\n        APP_MESSENGER: \"messenger\",\n        APP_HTML5: \"html5\",\n        APP_CHAT: \"chat\",\n        INSTALL_CANCEL: 1,\n        INSTALL_INSTALL: 2,\n        INSTALL_UPDATE: 3,\n        INSTALL_REINSTALL: 4,\n        INSTALL_PERMA_CANCEL: 5,\n        INSTALL_SILENT_SKIP: 6,\n        INSTALL_DOWNLOAD: 7,\n        CERROR_RESIZING_FAILED: 6,\n        CERROR_MARKER_EXTRACTION_FAILED: 9,\n        BEGIN: 1,\n        UPLOAD_START: 4,\n        ALL_UPLOADS_DONE: 6,\n        CLIENT_ERROR: 7,\n        RECOVERABLE_CLIENT_ERROR: 12,\n        IMAGES_SELECTED: 9,\n        UPGRADE_REQUIRED: 11,\n        VERSION: 15,\n        SELECT_START: 18,\n        SELECT_CANCELED: 19,\n        CANCEL: 22,\n        CANCEL_DURING_UPLOAD: 83,\n        ONE_RESIZING_START: 2,\n        ONE_UPLOAD_DONE: 29,\n        ONE_RESIZING_DONE: 34,\n        PROGRESS_BAR_STOPPED: 44,\n        MISSED_BEAT: 45,\n        HEART_ATTACK: 46,\n        PUBLISH_START: 100,\n        PUBLISH_SUCCESS: 101,\n        PUBLISH_FAILURE: 102,\n        SESSION_POSTED: 72,\n        POST_PUBLISHED: 80,\n        ONE_UPLOAD_CANCELED: 81,\n        ONE_UPLOAD_CANCELED_DURING_UPLOAD: 82,\n        RESIZER_AVAILABLE: 20,\n        OVERLAY_FIRST: 61,\n        ASYNC_AVAILABLE: 63,\n        FALLBACK_TO_FLASH: 13,\n        RETRY_UPLOAD: 17,\n        TAGGED_ALL_FACES: 14,\n        VAULT_IMAGES_SELECTED: 62,\n        VAULT_CREATE_POST_CANCEL: 65,\n        VAULT_SEND_IN_MESSAGE_CLICKED: 66,\n        VAULT_DELETE_CANCEL: 68,\n        VAULT_ADD_TO_ALBUM_CANCEL: 74,\n        VAULT_SHARE_IN_AN_ALBUM_CLICKED: 76,\n        VAULT_SHARE_OWN_TIMELINE_CLICKED: 77,\n        VAULT_SHARE_FRIENDS_TIMELINE_CLICKED: 78,\n        VAULT_SHARE_IN_A_GROUP_CLICKED: 79,\n        METHOD_DRAGDROP: \"dragdrop\",\n        METHOD_FILE_SELECTOR: \"file_selector\",\n        METHOD_VAULT: \"vault\",\n        METHOD_PHOTOS_OF_YOU: \"photos_of_you\",\n        METHOD_RECENT_PHOTOS: \"recent_photos\",\n        VAULTBOX: \"vaultbox\",\n        GRID: \"grid\",\n        SPOTLIGHT_VAULT_VIEWER: \"spotlight_vault_viewer\",\n        sendSignal: function(i, j) {\n            new g(\"/ajax/photos/waterfall.php\", {\n                data: JSON.stringify(i)\n            }).setHandler(j).send();\n        }\n    };\n    e.exports = h;\n});\n__d(\"FreeformTokenizerBehavior\", [\"Input\",\"Keys\",\"JSBNG__Event\",\"function-extensions\",], function(a, b, c, d, e, f) {\n    var g = b(\"Input\"), h = b(\"Keys\"), i = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    function j(k, l) {\n        var m = ((l.tokenize_on_blur !== false)), n = ((l.tokenize_on_paste !== false)), o = ((l.matcher && new RegExp(l.matcher, \"i\"))), p = ((l.paste_split && new RegExp(l.paste_split))), q = ((l.select_on_comma !== false)), r = ((l.never_submit === true));\n        function s(JSBNG__event) {\n            var t = g.getValue(k.getInput()).trim();\n            if (((((p && JSBNG__event)) && ((JSBNG__event.type == \"paste\"))))) {\n                t = t.split(p);\n            }\n             else t = [t,];\n        ;\n        ;\n            var u = false;\n            for (var v = 0; ((v < t.length)); v++) {\n                var w = t[v].trim();\n                if (((w && ((!o || o.test(w)))))) {\n                    var x = {\n                        uid: w,\n                        text: w,\n                        freeform: true\n                    };\n                    k.addToken(k.createToken(x));\n                    u = true;\n                }\n            ;\n            ;\n            };\n        ;\n            if (((JSBNG__event && u))) {\n                k.getTypeahead().getCore().afterSelect();\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        };\n    ;\n        k.subscribe(\"keydown\", function(t, u) {\n            var JSBNG__event = u.JSBNG__event, v = i.getKeyCode(JSBNG__event);\n            if (((((q && ((v == h.COMMA)))) || ((v == h.RETURN))))) {\n                var w = k.getTypeahead().getView();\n                if (w.JSBNG__getSelection()) {\n                    w.select();\n                    JSBNG__event.kill();\n                }\n                 else s(JSBNG__event);\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((((v == h.RETURN)) && r))) {\n                JSBNG__event.kill();\n            }\n        ;\n        ;\n        });\n        k.subscribe(\"paste\", function(t, u) {\n            if (n) {\n                s.bind(null, u.JSBNG__event).defer(20);\n            }\n        ;\n        ;\n        });\n        k.subscribe(\"JSBNG__blur\", function(t, u) {\n            if (m) {\n                s();\n            }\n        ;\n        ;\n            k.getTypeahead().getCore().reset();\n        });\n    };\n;\n    e.exports = j;\n});");
36591 // 14479
36592 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o94,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yC/r/3O1MmhNwV3-.js",o95);
36593 // undefined
36594 o94 = null;
36595 // undefined
36596 o95 = null;
36597 // 14491
36598 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_96[0](21005.401999980677);
36599 // 14663
36600 fpc.call(JSBNG_Replay.sa0cdb1bc3c127a88a086a13f4a6ca1502f98adf1_257[0], o6,undefined);
36601 // undefined
36602 o6 = null;
36603 // 14710
36604 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523[0], o99,undefined);
36605 // undefined
36606 o99 = null;
36607 // 14711
36608 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36609 // 14721
36610 fpc.call(JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_739[0], o106,undefined);
36611 // undefined
36612 o106 = null;
36613 // 14744
36614 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523[0], o196,undefined);
36615 // undefined
36616 o196 = null;
36617 // 14768
36618 o167.readyState = 2;
36619 // 14766
36620 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o200,o207);
36621 // undefined
36622 o207 = null;
36623 // 14772
36624 o167.readyState = 3;
36625 // 14770
36626 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o200,o210);
36627 // undefined
36628 o210 = null;
36629 // 14776
36630 o167.readyState = 4;
36631 // undefined
36632 o167 = null;
36633 // 14831
36634 o213.toString = f974244559_2135;
36635 // undefined
36636 o213 = null;
36637 // 14774
36638 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o200,o211);
36639 // undefined
36640 o200 = null;
36641 // undefined
36642 o211 = null;
36643 // 14863
36644 o2.readyState = 2;
36645 // 14861
36646 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o96,o212);
36647 // undefined
36648 o212 = null;
36649 // 14867
36650 o2.readyState = 3;
36651 // 14865
36652 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o96,o214);
36653 // undefined
36654 o214 = null;
36655 // 14871
36656 o2.readyState = 4;
36657 // undefined
36658 o2 = null;
36659 // 14915
36660 o217.toString = f974244559_2135;
36661 // undefined
36662 o217 = null;
36663 // 14960
36664 o216.JSBNG__status = null;
36665 // undefined
36666 o216 = null;
36667 // 14869
36668 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o96,o215);
36669 // undefined
36670 o96 = null;
36671 // undefined
36672 o215 = null;
36673 // 15017
36674 o1.readyState = 2;
36675 // 15015
36676 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o122,o205);
36677 // undefined
36678 o205 = null;
36679 // 15021
36680 o1.readyState = 3;
36681 // 15019
36682 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o122,o218);
36683 // undefined
36684 o218 = null;
36685 // 15025
36686 o1.readyState = 4;
36687 // undefined
36688 o1 = null;
36689 // 15069
36690 o221.toString = f974244559_2135;
36691 // undefined
36692 o221 = null;
36693 // 15023
36694 fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_270[0], o122,o219);
36695 // undefined
36696 o122 = null;
36697 // undefined
36698 o219 = null;
36699 // 17832
36700 JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_457[0](21492.93199996464);
36701 // 17838
36702 JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_457[0](21492.93199996464);
36703 // 17919
36704 fpc.call(JSBNG_Replay.sf8457e5183159cd46485198114fb31bc4f940d4d_523[0], o12,undefined);
36705 // undefined
36706 o12 = null;
36707 // 17922
36708 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"3SGVa\",]);\n}\n;\n__d(\"SubscriptionLevels\", [], function(a, b, c, d, e, f) {\n    var g = {\n        ALL: \"162318810514679\",\n        DEFAULT: \"271670892858696\",\n        TOP: \"266156873403755\"\n    };\n    e.exports = g;\n});\n__d(\"EditSubscriptions\", [\"Event\",\"function-extensions\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOM\",\"MenuDeprecated\",\"Parent\",\"SubscriptionLevels\",\"arrayContains\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MenuDeprecated\"), m = b(\"Parent\"), n = b(\"SubscriptionLevels\"), o = b(\"arrayContains\"), p = b(\"cx\"), q = b(\"ge\"), r = 13, s = 45, t = [n.ALL,n.DEFAULT,n.TOP,], u = {\n    }, v = {\n    }, w = {\n    }, x = {\n    }, y = {\n    }, z = {\n    }, aa = {\n    }, ba = {\n    }, ca = {\n    }, da = {\n    }, ea = {\n    }, fa = \"/ajax/follow/follow_profile.php\", ga = \"/ajax/follow/unfollow_profile.php\", ha = \"/ajax/settings/notifications/notify_me.php\", ia = {\n    }, ja = {\n    }, ka = null, la = false;\n    function ma(jb) {\n        return o(t, jb);\n    };\n    function na(jb, kb, lb, mb) {\n        var nb = (m.byClass(mb, \"uiMenuItem\") || m.byClass(mb, \"_54ni\"));\n        if ((!nb || !k.contains(jb, nb))) {\n            return;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuSubscribeCheckbox\")) {\n            if (w[kb]) {\n                qa(jb, kb);\n            }\n             else pa(jb, kb);\n        ;\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuUnsubscribe\")) {\n            qa(jb, kb);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuSettingsItem\")) {\n            db(jb, true);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscriptionMenuGoBack\")) {\n            db(jb, false);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscriptionMenuItem\")) {\n            oa(jb, kb, lb, nb);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuNotifyMeCheckbox\")) {\n            if (x[kb]) {\n                hb(jb, kb);\n            }\n             else gb(jb, kb);\n        ;\n            return false;\n        }\n        \n        \n        \n        \n        \n        \n    ;\n    };\n    function oa(jb, kb, lb, mb) {\n        if (j.hasClass(mb, \"SubscriptionMenuLevel\")) {\n            if (l.isItemChecked(mb)) {\n                return\n            };\n            bb(jb, kb, ua(mb), true, lb);\n        }\n         else if (j.hasClass(mb, \"SubscriptionMenuCategory\")) {\n            ya(kb, mb, !l.isItemChecked(mb), true, lb);\n        }\n         else if (j.hasClass(mb, \"SubscriptionAppStory\")) {\n            ab(kb, mb, !l.isItemChecked(mb), lb);\n        }\n        \n    ;\n    };\n    function pa(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"FollowingUser\", lb);\n        new i().setURI(fa).setMethod(\"POST\").setData({\n            profile_id: kb,\n            location: ra(jb)\n        }).setErrorHandler(h.inform.curry(\"FollowUserFail\", lb)).send();\n    };\n    function qa(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"UnfollowingUser\", lb);\n        new i().setURI(ga).setMethod(\"POST\").setData({\n            profile_id: kb,\n            location: ra(jb)\n        }).setErrorHandler(h.inform.curry(\"UnfollowUserFail\", lb)).send();\n    };\n    function ra(jb) {\n        if (j.hasClass(jb, \"followButtonFlyout\")) {\n            return r;\n        }\n         else return s\n    ;\n    };\n    function sa(jb, kb, lb) {\n        var mb = {\n            profile_id: jb,\n            level: ba[jb],\n            custom_categories: ca[jb],\n            location: lb\n        };\n        new i().setURI(\"/ajax/follow/manage_subscriptions.php\").setData(mb).send();\n    };\n    function ta(jb, kb) {\n        var lb = (ca[kb] || []), mb = l.getItems(jb);\n        mb.forEach(function(nb) {\n            if (j.hasClass(nb, \"SubscriptionMenuCategory\")) {\n                var ob = ua(nb);\n                if (o(lb, ob)) {\n                    wa(nb);\n                }\n                 else xa(nb);\n            ;\n            }\n             else if (j.hasClass(nb, \"SubscriptionAppStory\")) {\n                var pb = ua(nb);\n                if ((ja[kb] && ja[kb][pb])) {\n                    wa(nb);\n                }\n                 else xa(nb);\n            ;\n            }\n            \n        ;\n        });\n        bb(jb, kb, ba[kb], false);\n    };\n    function ua(jb) {\n        var kb = k.scry(jb, \"input\")[0];\n        return (kb && kb.value);\n    };\n    function va(jb) {\n        return k.find(jb, \"a.itemAnchor\");\n    };\n    function wa(jb) {\n        j.addClass(jb, \"checked\");\n        va(jb).setAttribute(\"aria-checked\", true);\n    };\n    function xa(jb) {\n        j.removeClass(jb, \"checked\");\n        va(jb).setAttribute(\"aria-checked\", false);\n    };\n    function ya(jb, kb, lb, mb, nb) {\n        if (lb) {\n            wa(kb);\n        }\n         else xa(kb);\n    ;\n        var ob = ua(kb);\n        if (ma(ob)) {\n            (lb && za(jb, ob));\n        }\n         else if (lb) {\n            if (!o(ca[jb], ob)) {\n                ca[jb].push(ob);\n            };\n        }\n         else {\n            var pb = ca[jb].indexOf(ob);\n            if ((pb !== -1)) {\n                ca[jb].splice(pb, 1);\n            };\n        }\n        \n    ;\n        if (mb) {\n            sa(jb, ob, nb);\n        };\n    };\n    function za(jb, kb) {\n        ba[jb] = kb;\n        h.inform(\"SubscriptionLevelUpdated\", {\n            profile_id: jb,\n            level: kb\n        });\n    };\n    function ab(jb, kb, lb, mb) {\n        var nb = \"/ajax/feed/filter_action/\", ob = ua(kb), pb = {\n            actor_id: jb,\n            app_id: ob\n        };\n        if (lb) {\n            wa(kb);\n            nb += \"resubscribe_user_app/\";\n            pb.action = \"resubscribe_user_app\";\n            if (!ja[jb]) {\n                ja[jb] = {\n                };\n            };\n            ja[jb][ob] = true;\n        }\n         else {\n            xa(kb);\n            nb += \"unsubscribe_user_app_checkbox/\";\n            pb.action = \"unsubscribe_user_app_checkbox\";\n            if (ja[jb]) {\n                ja[jb][ob] = false;\n            };\n        }\n    ;\n        new i().setURI(nb).setData(pb).send();\n    };\n    function bb(jb, kb, lb, mb, nb) {\n        var ob = k.scry(jb, \".SubscriptionMenuLevel\"), pb = null;\n        ob.forEach(function(qb) {\n            if ((ua(qb) == lb)) {\n                pb = qb;\n            }\n             else if (l.isItemChecked(qb)) {\n                ya(kb, qb, false, false);\n            }\n        ;\n        });\n        (pb && ya(kb, pb, true, mb, nb));\n    };\n    function cb(jb, kb, lb) {\n        w[kb] = lb;\n        j.conditionClass(jb, \"isUnsubscribed\", !lb);\n        var mb = k.scry(jb, \"li.SubscribeMenuSubscribeCheckbox\");\n        if ((mb.length !== 0)) {\n            var nb = mb[0];\n            if (lb) {\n                wa(nb);\n            }\n             else xa(nb);\n        ;\n        }\n    ;\n    };\n    function db(jb, kb) {\n        j.conditionClass(jb, \"subscriptionMenuOpen\", kb);\n    };\n    function eb(jb, kb, lb) {\n        var mb = k.find(jb, \".FriendListSubscriptionsMenu\"), nb = k.find(mb, \".uiMenuInner\");\n        if ((ka != null)) {\n            ka.forEach(function(ob) {\n                nb.removeChild(ob);\n            });\n        };\n        lb.forEach(function(ob) {\n            nb.appendChild(ob);\n        });\n        ka = lb;\n    };\n    h.subscribe(\"UnfollowUser\", function(jb, kb) {\n        if (da[kb.profile_id]) {\n            za(kb.profile_id, da[kb.profile_id]);\n            ca[kb.profile_id] = ea[kb.profile_id].slice();\n        }\n    ;\n    });\n    h.subscribe(\"UpdateSubscriptionLevel\", function(jb, kb) {\n        var lb = (kb.profile_id + \"\"), mb = (kb.level + \"\");\n        za(lb, mb);\n        var nb;\n        for (nb in u) {\n            if ((u[nb] === lb)) {\n                var ob = q(nb);\n                (ob && bb(ob, lb, mb, false));\n            }\n        ;\n        };\n    });\n    function fb(jb, kb, lb) {\n        x[kb] = lb;\n        var mb = (z[kb] && !la), nb = k.scry(jb, \"li.SubscribeMenuNotifyMeCheckbox\");\n        if ((nb.length !== 0)) {\n            var ob = nb[0];\n            j.conditionShow(ob, !mb);\n            j.conditionShow(k.find(jb, \"li.SubscribeMenuNotifyMeCheckboxSeparator\"), !mb);\n            if (lb) {\n                wa(ob);\n            }\n             else xa(ob);\n        ;\n        }\n    ;\n    };\n    function gb(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"EnableNotifsForUser\", lb);\n        new i().setURI(ha).setMethod(\"POST\").setData({\n            notifier_id: kb,\n            enable: true\n        }).setErrorHandler(h.inform.curry(\"EnableNotifsForUserFail\", lb)).send();\n    };\n    function hb(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"DisableNotifsForUser\", lb);\n        new i().setURI(ha).setMethod(\"POST\").setData({\n            notifier_id: kb,\n            enable: false\n        }).setErrorHandler(h.inform.curry(\"DisableNotifsForUserFail\", lb)).send();\n    };\n    var ib = {\n        init: function(jb, kb, lb) {\n            var mb = k.getID(jb);\n            if (!u[mb]) {\n                g.listen(jb, \"click\", function(nb) {\n                    return na(jb, u[mb], lb, nb.getTarget());\n                });\n            };\n            if (((lb === s) && ia[kb].length)) {\n                eb(jb, kb, ia[kb]);\n            };\n            if (ba[kb]) {\n                ta(jb, kb);\n            };\n            u[mb] = kb;\n            j.conditionClass(jb, \"NonFriendSubscriptionMenu\", !v[kb]);\n            j.conditionClass(jb, \"cannotSubscribe\", !y[kb]);\n            j.conditionClass(jb, \"noSubscriptionLevels\", (z[kb] && !aa[kb]));\n            j.conditionClass(jb, \"noSubscribeCheckbox\", (!v[kb] && !z[kb]));\n            cb(jb, kb, w[kb]);\n            fb(jb, kb, x[kb]);\n            h.subscribe([\"FollowUser\",\"FollowingUser\",\"UnfollowUserFail\",], function(nb, ob) {\n                cb(jb, kb, true);\n            }.bind(this));\n            h.subscribe([\"UnfollowUser\",\"UnfollowingUser\",\"FollowUserFail\",], function(nb, ob) {\n                h.inform(\"SubMenu/Reset\");\n                cb(jb, kb, false);\n            }.bind(this));\n            h.subscribe([\"EnableNotifsForUser\",\"DisableNotifsForUserFail\",], function(nb, ob) {\n                fb(jb, kb, true);\n            }.bind(this));\n            h.subscribe([\"DisableNotifsForUser\",\"EnableNotifsForUserFail\",], function(nb, ob) {\n                fb(jb, kb, false);\n            }.bind(this));\n            h.subscribe(\"listeditor/friend_lists_changed\", function(nb, ob) {\n                if (ob.notify_state) {\n                    var pb = (ob.added_uid ? ob.added_uid : ob.removed_uid);\n                    fb(jb, pb, ob.notify_state.is_notified);\n                }\n            ;\n            }.bind(this));\n            db(jb, false);\n        },\n        getSubscriptions: function(jb) {\n            return {\n                level: ba[jb],\n                custom_categories: ca[jb]\n            };\n        },\n        setSubscriptions: function(jb, kb, lb, mb, nb, ob, pb, qb, rb, sb, tb, ub, vb) {\n            za(jb, (pb + \"\"));\n            v[jb] = kb;\n            w[jb] = lb;\n            y[jb] = mb;\n            z[jb] = nb;\n            aa[jb] = ob;\n            da[jb] = (rb + \"\");\n            ca[jb] = qb.map(String);\n            ea[jb] = sb.map(String);\n            ia[jb] = vb;\n            x[jb] = tb;\n            la = ub;\n        }\n    };\n    e.exports = (a.EditSubscriptions || ib);\n});\n__d(\"DynamicFriendListEducation\", [\"Event\",\"Arbiter\",\"AsyncRequest\",\"Dialog\",\"PageTransitions\",\"arrayContains\",\"createArrayFrom\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Dialog\"), k = b(\"PageTransitions\"), l = b(\"arrayContains\"), m = b(\"createArrayFrom\"), n = b(\"removeFromArray\"), o, p, q, r, s, t;\n    function u() {\n        (q && q.hide());\n        (r && r.hide());\n    };\n    function v(y) {\n        n(p, y);\n        u();\n        s({\n            accept_tag_education: true\n        });\n    };\n    function w() {\n        u();\n        s({\n            nux_cancel: true\n        });\n    };\n    var x = {\n        init: function(y, z) {\n            o = y;\n            p = m(z).map(String);\n            k.registerHandler(function() {\n                u();\n                o = false;\n                s = undefined;\n                p = [];\n            });\n        },\n        showDialog: function(y, z, aa) {\n            if ((o && l(p, y))) {\n                u();\n                h.inform(\"DynamicFriendListEducation/dialogOpen\", {\n                    uid: z,\n                    flid: y\n                });\n                s = aa;\n                q = new j().setAsync(new i(\"/ajax/friends/lists/smart_list_education.php\").setMethod(\"GET\").setData({\n                    flid: y,\n                    uid: z\n                }).setReadOnly(true)).setHandler(v.bind(this, y)).setCloseHandler(function() {\n                    h.inform(\"DynamicFriendListEducation/dialogClosed\", {\n                        uid: z,\n                        flid: y\n                    });\n                }).setCancelHandler(function() {\n                    h.inform(\"DynamicFriendListEducation/dialogCancel\", {\n                        uid: z,\n                        flid: y\n                    });\n                }).show();\n            }\n             else aa();\n        ;\n        },\n        showContextualDialog: function(y, z, aa, ba) {\n            if ((o && l(p, y))) {\n                u();\n                t = aa;\n                s = ba;\n                new i(\"/ajax/friends/lists/smart_list_contextual_education.php\").setMethod(\"GET\").setData({\n                    flid: y,\n                    uid: z\n                }).setReadOnly(true).send();\n            }\n             else ba();\n        ;\n        },\n        setContextualDialog: function(y, z, aa, ba) {\n            r = y;\n            r.setContext(t);\n            r.show();\n            g.listen(z, \"click\", v.bind(this, ba));\n            g.listen(aa, \"click\", w);\n        }\n    };\n    e.exports = x;\n});\n__d(\"FriendStatus\", [\"function-extensions\",\"Arbiter\",\"AsyncRequest\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",\"eachKeyVal\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\"), l = b(\"eachKeyVal\");\n    function m(q, r, s) {\n        this.id = q;\n        this.update(r, s);\n    };\n    j(m.prototype, {\n        update: function(q, r) {\n            (q && (this.status = q));\n            if (r) {\n                this.lists = k(r).map(String);\n                this._informListChange();\n            }\n        ;\n        },\n        isComplete: function() {\n            return !!this.lists;\n        },\n        addToList: function(q) {\n            if ((this.lists && !i(this.lists, q))) {\n                this.lists.push(q);\n            };\n            this._informListChange();\n        },\n        removeFromList: function(q) {\n            if (this.lists) {\n                var r = this.lists.indexOf(q);\n                ((r !== -1) && this.lists.splice(r, 1));\n            }\n        ;\n            this._informListChange();\n        },\n        updateList: function(q, r) {\n            (r ? this.addToList(q) : this.removeFromList(q));\n        },\n        _informListChange: function() {\n            g.inform(\"FriendListMembershipChange\", {\n                uid: this.id,\n                lists: this.lists\n            });\n        }\n    });\n    j(m, {\n        ARE_FRIENDS: 1,\n        INCOMING_REQUEST: 2,\n        OUTGOING_REQUEST: 3,\n        CAN_REQUEST: 4\n    });\n    var n = {\n    }, o = {\n    };\n    function p(q, r, s) {\n        if (!n[s.uid]) {\n            n[s.uid] = new m(s.uid, q);\n        }\n         else n[s.uid].update(q);\n    ;\n        g.inform(\"FriendRequest/change\", {\n            uid: s.uid,\n            status: q\n        });\n    };\n    g.subscribe([\"FriendRequest/cancel\",\"FriendRequest/unfriend\",\"FriendRequest/sendFail\",], p.curry(m.CAN_REQUEST));\n    g.subscribe([\"FriendRequest/confirmFail\",], p.curry(m.INCOMING_REQUEST));\n    g.subscribe([\"FriendRequest/cancelFail\",\"FriendRequest/sent\",\"FriendRequest/sending\",], p.curry(m.OUTGOING_REQUEST));\n    g.subscribe([\"FriendRequest/confirm\",\"FriendRequest/confirming\",], p.curry(m.ARE_FRIENDS));\n    j(m, {\n        CLOSE_FRIENDS: null,\n        ACQUAINTANCES: null,\n        getFriend: function(q, r) {\n            if ((n[q] && n[q].isComplete())) {\n                r(n[q]);\n            }\n             else if (o[q]) {\n                o[q].push(r);\n            }\n             else {\n                o[q] = [r,];\n                new h().setURI(\"/ajax/friends/status.php\").setData({\n                    friend: q\n                }).setHandler(function(s) {\n                    var t = s.getPayload();\n                    m.initFriend.bind(m, q, t.status, t.lists).defer();\n                }).send();\n            }\n            \n        ;\n        },\n        initFriend: function(q, r, s) {\n            var t = (n[q] || new m(q));\n            t.update((t.status || r), (t.lists || s));\n            n[q] = t;\n            (o[q] && o[q].forEach(function(u) {\n                u(t);\n            }));\n            o[q] = null;\n        },\n        setSpecialLists: function(q) {\n            var r = (m.CLOSE_FRIENDS === null);\n            m.CLOSE_FRIENDS = (q.close + \"\");\n            m.ACQUAINTANCES = (q.acq + \"\");\n            if (r) {\n                l(n, function(s, t) {\n                    t._informListChange();\n                });\n            };\n        }\n    });\n    e.exports = m;\n});\n__d(\"FriendEditLists\", [\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOMQuery\",\"DynamicFriendListEducation\",\"EditSubscriptions\",\"FriendStatus\",\"MenuDeprecated\",\"Parent\",\"ScrollableArea\",\"URI\",\"$\",\"arrayContains\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"DynamicFriendListEducation\"), l = b(\"EditSubscriptions\"), m = b(\"FriendStatus\"), n = b(\"MenuDeprecated\"), o = b(\"Parent\"), p = b(\"ScrollableArea\"), q = b(\"URI\"), r = b(\"$\"), s = b(\"arrayContains\"), t = b(\"copyProperties\"), u = b(\"ge\"), v = 5, w = {\n    }, x = \"/ajax/profile/removefriendconfirm.php\", y = \"/ajax/friends/requests/cancel.php\", z = \"/ajax/choose/\", aa = \"/profile.php\", ba = \"/ajax/report/social.php\", ca, da;\n    function ea(pa, qa, ra) {\n        var sa = w[pa.id], ta = function(ua) {\n            var va = {\n                action: (ra ? \"add_list\" : \"del_list\"),\n                to_friend: sa.id,\n                friendlists: [qa,],\n                source: ca\n            };\n            if (ua) {\n                t(va, ua);\n            };\n            sa.updateList(qa, ra);\n            var wa;\n            if ((ra && (qa == m.CLOSE_FRIENDS))) {\n                wa = ha(pa, m.ACQUAINTANCES);\n                if (n.isItemChecked(wa)) {\n                    n.toggleItem(wa);\n                    ea(pa, m.ACQUAINTANCES, false);\n                }\n            ;\n            }\n             else if ((ra && (qa == m.ACQUAINTANCES))) {\n                wa = ha(pa, m.CLOSE_FRIENDS);\n                if (n.isItemChecked(wa)) {\n                    n.toggleItem(wa);\n                    ea(pa, m.CLOSE_FRIENDS, false);\n                }\n            ;\n            }\n            \n        ;\n            var xa = {\n                flid: qa,\n                uid: sa.id\n            }, ya = (ra ? \"FriendListHovercard/add\" : \"FriendListHovercard/remove\");\n            g.inform(ya, xa);\n            new h().setURI(\"/ajax/add_friend/action.php\").setData(va).send();\n        };\n        if (ra) {\n            k.showDialog(qa, sa.id, ta);\n        }\n         else ta();\n    ;\n    };\n    function fa(pa) {\n        var qa = j.scry(pa, \"input\")[0];\n        return (qa && qa.value);\n    };\n    function ga(pa, qa, ra) {\n        var sa = {\n            uid: qa.id\n        };\n        new h().setURI(y).setMethod(\"POST\").setData({\n            friend: qa.id\n        }).setHandler(g.inform.bind(g, \"FriendRequest/cancel\", sa)).setErrorHandler(g.inform.bind(g, \"FriendRequest/cancelFail\", sa)).setStatusElement(ra).send();\n    };\n    function ha(pa, qa) {\n        var ra = n.getItems(pa);\n        for (var sa = 0; (sa < ra.length); sa++) {\n            if ((fa(ra[sa]) == qa)) {\n                return ra[sa]\n            };\n        };\n        return null;\n    };\n    function ia(pa, qa) {\n        var ra = n.getItems(pa);\n        ra.forEach(function(sa) {\n            var ta = fa(sa), ua = s(qa.lists, ta);\n            if ((n.isItemChecked(sa) !== ua)) {\n                n.toggleItem(sa);\n            };\n        });\n    };\n    function ja(pa) {\n        var qa = n.getItems(pa), ra = (!i.hasClass(pa, \"followButtonFlyout\") && !i.hasClass(pa, \"likeButtonFlyout\")), sa = [], ta = [], ua = 0, va = 0;\n        qa.forEach(function(ab) {\n            if (i.hasClass(ab, \"neverHide\")) {\n                i.removeClass(ab, \"underShowMore\");\n                ua++;\n            }\n             else if (n.isItemChecked(ab)) {\n                sa.push(ab);\n            }\n             else if (((i.hasClass(ab, \"neverShow\") || i.hasClass(ab, \"FriendListCreateTrigger\")) || ((!ra && i.hasClass(ab, \"friendOptionsOnly\"))))) {\n                i.addClass(ab, \"underShowMore\");\n                va++;\n            }\n             else ta.push(ab);\n            \n            \n        ;\n        });\n        var wa = (v - ua), xa = sa.concat(ta), ya = va;\n        xa.forEach(function(ab) {\n            if (i.hasClass(ab, \"ShowMoreItem\")) {\n                wa--;\n                return;\n            }\n        ;\n            if (wa) {\n                i.removeClass(ab, \"underShowMore\");\n                wa--;\n            }\n             else {\n                i.addClass(ab, \"underShowMore\");\n                ya = true;\n            }\n        ;\n        });\n        i.conditionClass(pa, \"hasMoreFriendListItems\", ya);\n        var za = j.scry(pa, \".FriendListMenuShowMore\");\n        za.forEach(function(ab) {\n            i.removeClass(ab, \"FriendListMenuShowMore\");\n        });\n    };\n    function ka(pa, qa) {\n        i.conditionClass(pa, \"FriendListMemorializedUser\", qa);\n    };\n    function la(pa, qa) {\n        i.conditionClass(pa, \"FriendListCannotSuggestFriends\", !qa);\n    };\n    function ma(pa, qa) {\n        var ra = j.scry(pa, \".FriendListUnfriend\")[0], sa = j.scry(pa, \".FriendListCancel\")[0], ta = j.scry(pa, \".FriendListSuggestFriends\")[0], ua = j.scry(pa, \".FriendListFriendship\")[0], va = j.scry(pa, \".FriendListReportBlock\")[0];\n        if (sa) {\n            i.conditionShow(sa, (qa.status == m.OUTGOING_REQUEST));\n        };\n        if (ra) {\n            i.conditionShow(ra, (qa.status == m.ARE_FRIENDS));\n            var wa = j.find(ra, \"a\");\n            wa.setAttribute(\"ajaxify\", q(x).addQueryData({\n                uid: qa.id,\n                unref: da\n            }).toString());\n        }\n         else i.conditionClass(pa, \"NoFriendListActionSeparator\", (!sa || (qa.status != m.OUTGOING_REQUEST)));\n    ;\n        if (ta) {\n            j.find(ta, \"a\").setAttribute(\"href\", q(z).addQueryData({\n                type: \"suggest_friends\",\n                newcomer: qa.id,\n                ref: \"profile_others_dropdown\"\n            }).toString());\n        };\n        if (ua) {\n            i.conditionShow(ua, (qa.status == m.ARE_FRIENDS));\n            j.find(ua, \"a\").setAttribute(\"href\", q(aa).addQueryData({\n                and: qa.id\n            }).toString());\n        }\n    ;\n        if (va) {\n            j.find(va, \"a\").setAttribute(\"ajaxify\", q(ba).addQueryData({\n                content_type: 0,\n                cid: qa.id,\n                rid: qa.id\n            }).toString());\n        };\n    };\n    function na(pa, qa) {\n        var ra = j.scry(pa, \"div.FriendListSubscriptionsMenu\");\n        if ((ra.length !== 0)) {\n            l.init(pa, qa, 45);\n        };\n    };\n    g.subscribe(\"FriendRequest/change\", function(pa, qa) {\n        for (var ra in w) {\n            var sa = u(ra), ta = w[ra];\n            if (((sa && ta) && (ta.id == qa.uid))) {\n                ia(sa, ta);\n                ma(sa, ta);\n                ja(sa);\n            }\n        ;\n        };\n    });\n    n.subscribe(\"select\", function(pa, qa) {\n        if ((i.hasClass(qa.item, \"ShowMoreItem\") && i.hasClass(qa.menu, \"FriendListMenu\"))) {\n            i.addClass(qa.menu, \"FriendListMenuShowMore\");\n            p.poke(qa.item);\n        }\n    ;\n    });\n    var oa = {\n        init: function(pa, qa, ra, sa, ta, ua) {\n            pa = r(pa);\n            ca = ra;\n            da = ua;\n            if (!w[pa.id]) {\n                n.subscribe(\"select\", function(va, wa) {\n                    if (j.contains(pa, wa.item)) {\n                        if (o.byClass(wa.item, \"FriendListItem\")) {\n                            n.toggleItem(wa.item);\n                            var xa = fa(wa.item);\n                            ea(pa, xa, n.isItemChecked(wa.item));\n                        }\n                         else if (o.byClass(wa.item, \"FriendListCancel\")) {\n                            ga(pa, w[pa.id], wa.item);\n                        }\n                         else if (o.byClass(wa.item, \"FriendListUnfriend\")) {\n                            g.inform(\"FriendEditLists/unfriend\");\n                        }\n                        \n                    \n                    };\n                });\n            };\n            i.addClass(pa, \"async_saving\");\n            m.getFriend(qa, function(va) {\n                ka(pa, sa);\n                la(pa, ta);\n                ia(pa, va);\n                ma(pa, va);\n                w[pa.id] = va;\n                ja(pa);\n                na(pa, qa);\n                i.removeClass(pa, \"async_saving\");\n            }.bind(this));\n        }\n    };\n    e.exports = (a.FriendEditLists || oa);\n});\n__d(\"FriendListFlyoutController\", [\"Event\",\"Arbiter\",\"AsyncRequest\",\"Button\",\"ContextualLayer\",\"CSS\",\"DataStore\",\"Dialog\",\"DOM\",\"DOMQuery\",\"FriendEditLists\",\"FriendStatus\",\"Keys\",\"Layer\",\"LayerHideOnEscape\",\"LayerTabIsolation\",\"MenuDeprecated\",\"Parent\",\"ScrollableArea\",\"Style\",\"TabbableElements\",\"UserAgent\",\"cx\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Button\"), k = b(\"ContextualLayer\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"Dialog\"), o = b(\"DOM\"), p = b(\"DOMQuery\"), q = b(\"FriendEditLists\"), r = b(\"FriendStatus\"), s = b(\"Keys\"), t = b(\"Layer\"), u = b(\"LayerHideOnEscape\"), v = b(\"LayerTabIsolation\"), w = b(\"MenuDeprecated\"), x = b(\"Parent\"), y = b(\"ScrollableArea\"), z = b(\"Style\"), aa = b(\"TabbableElements\"), ba = b(\"UserAgent\"), ca = b(\"cx\"), da = b(\"emptyFunction\"), ea, fa, ga = null, ha = null, ia, ja, ka, la, ma, na, oa = 1500, pa, qa = [\"uiButtonConfirm\",\"uiButtonSpecial\",\"_42gz\",\"_42g-\",\"_4jy2\",\"_51tl\",\"_4jy1\",], ra = {\n        init: function(tb, ub) {\n            ra.init = da;\n            ea = tb;\n            ea.subscribe(\"mouseenter\", ab);\n            ea.subscribe(\"mouseleave\", ob);\n            ea.subscribe(\"hide\", cb);\n            ea.enableBehavior(v);\n            ea.enableBehavior(u);\n            pa = ub;\n            if (ga) {\n                o.setContent(ea.getContent(), [ga,ha,]);\n            };\n            var vb = function(wb) {\n                var xb = x.byClass(wb.getTarget(), \"enableFriendListFlyout\");\n                if (xb) {\n                    if ((ia === xb)) {\n                        clearTimeout(la);\n                    }\n                     else {\n                        (fa && qb());\n                        nb(xb);\n                    }\n                \n                };\n            };\n            g.listen(document.documentElement, {\n                mouseover: vb,\n                click: vb,\n                keydown: function(event) {\n                    var wb = event.getTarget();\n                    if (event.getModifiers().any) {\n                        return\n                    };\n                    if ((!fa || p.isNodeOfType(wb, [\"input\",\"textarea\",]))) {\n                        return\n                    };\n                    var xb = g.getKeyCode(event), yb;\n                    switch (xb) {\n                      case s.UP:\n                    \n                      case s.DOWN:\n                        var zb = za();\n                        yb = xa(zb);\n                        va(zb[(yb + (((xb === s.UP) ? -1 : 1)))]);\n                        return false;\n                      case s.SPACE:\n                        var ac = wa(wb);\n                        if (ac) {\n                            sa(ac);\n                            event.prevent();\n                        }\n                    ;\n                        break;\n                      default:\n                        var bc = String.fromCharCode(xb).toLowerCase(), cc = za();\n                        yb = xa(cc);\n                        var dc = yb, ec = cc.length;\n                        while ((((~yb && ((dc = (++dc % ec)) !== yb))) || ((!~yb && (++dc < ec))))) {\n                            var fc = w.getItemLabel(cc[dc]);\n                            if ((fc && (fc.charAt(0).toLowerCase() === bc))) {\n                                va(cc[dc]);\n                                return false;\n                            }\n                        ;\n                        };\n                    };\n                }\n            });\n            h.subscribe(\"FriendEditLists/unfriend\", qb);\n            h.subscribe(\"DynamicFriendListEducation/dialogOpen\", function() {\n                na = true;\n            });\n            h.subscribe(\"DynamicFriendListEducation/dialogClosed\", function() {\n                na = false;\n                ob();\n            });\n        },\n        initContent: function(tb) {\n            o.appendContent(document.body, tb);\n            db(tb);\n            (function() {\n                if (!ga) {\n                    ga = tb;\n                    (ea && o.setContent(ea.getContent(), [ga,ha,]));\n                    l.show(ga);\n                    g.listen(ga, \"click\", rb);\n                    (fa && kb(ia));\n                }\n                 else {\n                    o.remove(tb);\n                    tb = null;\n                }\n            ;\n            }).defer();\n        },\n        initNux: function(tb) {\n            if (ha) {\n                return\n            };\n            ha = tb;\n            (ea && o.setContent(ea.getContent(), [ga,ha,]));\n        },\n        show: function(tb) {\n            lb(tb);\n        },\n        hide: function(tb) {\n            ((tb === false) ? qb() : ob());\n        },\n        setActiveNode: function(tb) {\n            (fa && qb());\n            ia = tb;\n            ja = g.listen(tb, \"mouseleave\", function() {\n                ia = null;\n                (ja && ja.remove());\n            });\n        },\n        setCloseListener: function(tb, ub) {\n            m.set(tb, \"flfcloselistener\", ub);\n            if ((ia != tb)) {\n                m.set(tb, \"flfcloselistenertimeout\", sb.curry(tb).defer(oa));\n            };\n        },\n        setCloseListenerTimeout: function(tb) {\n            oa = tb;\n        }\n    };\n    function sa(tb) {\n        (ba.firefox() && ua(tb).blur());\n        w.inform(\"select\", {\n            menu: ta(tb),\n            item: tb\n        });\n    };\n    function ta(tb) {\n        if (l.hasClass(tb, \"uiMenuContainer\")) {\n            return tb\n        };\n        return x.byClass(tb, \"uiMenu\");\n    };\n    function ua(tb) {\n        return p.find(tb, \"a.itemAnchor\");\n    };\n    function va(tb) {\n        if ((tb && ya(tb))) {\n            w._removeSelected(ea.getContent());\n            l.addClass(tb, \"selected\");\n            ua(tb).focus();\n        }\n    ;\n    };\n    function wa(tb) {\n        return x.byClass(tb, \"uiMenuItem\");\n    };\n    function xa(tb) {\n        if (document.activeElement) {\n            var ub = wa(document.activeElement);\n            return tb.indexOf(ub);\n        }\n    ;\n        return -1;\n    };\n    function ya(tb) {\n        return ((!l.hasClass(tb, \"disabled\") && (z.get(tb, \"display\") !== \"none\")) && (z.get(x.byClass(tb, \"uiMenu\"), \"display\") !== \"none\"));\n    };\n    function za() {\n        return w.getItems(ea.getContent()).filter(ya);\n    };\n    function ab() {\n        clearTimeout(la);\n    };\n    function bb(tb) {\n        for (var ub = 0; (ub < qa.length); ub++) {\n            if (l.hasClass(tb, qa[ub])) {\n                return false\n            };\n        };\n        return true;\n    };\n    function cb() {\n        if (ia) {\n            if (bb(ia)) {\n                l.removeClass(ia, \"_52nd\");\n                if ((l.hasClass(ia, \"uiButton\") || l.hasClass(ia, \"_42fu\"))) {\n                    l.removeClass(ia, \"selected\");\n                };\n            }\n        ;\n            if (m.get(ia, \"flfcloselistener\")) {\n                var tb = ia;\n                m.set(ia, \"flfcloselistenertimeout\", sb.curry(tb).defer(oa));\n            }\n        ;\n        }\n    ;\n        fa = false;\n        jb();\n        ia = null;\n    };\n    function db(tb) {\n        var ub = p.scry(tb, \"[tabindex=\\\"0\\\"]\");\n        ub.forEach(function(vb) {\n            vb.tabIndex = \"-1\";\n        });\n        (ub[0] && (ub[0].tabIndex = \"0\"));\n    };\n    function eb(tb) {\n        if ((p.isNodeOfType(tb, \"label\") && l.hasClass(tb, \"uiButton\"))) {\n            tb = j.getInputElement(tb);\n        };\n        return tb;\n    };\n    function fb(tb) {\n        return m.get(eb(tb), \"profileid\");\n    };\n    function gb(tb) {\n        return (m.get(eb(tb), \"memorialized\") === \"true\");\n    };\n    function hb(tb) {\n        return (m.get(eb(tb), \"cansuggestfriends\") === \"true\");\n    };\n    function ib(tb) {\n        return m.get(eb(tb), \"unref\");\n    };\n    function jb() {\n        (ja && ja.remove());\n        ja = null;\n        (ma && t.unsubscribe(ma));\n        ma = null;\n        (la && clearTimeout(la));\n        la = null;\n    };\n    function kb(tb) {\n        var ub = fb(tb), vb = gb(tb), wb = hb(tb), xb = m.get(tb, \"flloc\"), yb = ib(tb);\n        q.init(ga, ub, xb, vb, wb, yb);\n        l.conditionClass(ga, \"followButtonFlyout\", l.hasClass(tb, \"profileFollowButton\"));\n        l.conditionClass(ga, \"friendButtonFlyout\", ((l.hasClass(tb, \"FriendRequestFriends\") || l.hasClass(tb, \"FriendRequestIncoming\")) || l.hasClass(tb, \"FriendRequestOutgoing\")));\n        l.conditionClass(ga, \"likeButtonFlyout\", l.hasClass(tb, \"profileLikeButton\"));\n        var zb = p.scry(ga, \"div.uiScrollableArea\")[0];\n        (zb && y.poke(zb));\n        var ac = aa.find(ga)[0];\n        (ac && ac.focus());\n    };\n    function lb(tb) {\n        if ((!ea || fa)) {\n            return\n        };\n        ea.setContext(tb);\n        ea.setCausalElement(tb);\n        tb.setAttribute(\"aria-expanded\", \"true\");\n        if (bb(tb)) {\n            l.addClass(tb, \"_52nd\");\n            if ((l.hasClass(tb, \"uiButton\") || l.hasClass(tb, \"_42fu\"))) {\n                l.addClass(tb, \"selected\");\n            };\n        }\n    ;\n        ea.show();\n        ia = tb;\n        fa = true;\n        var ub = null;\n        if (ga) {\n            ub = \"show\";\n            kb(tb);\n        }\n         else {\n            ub = \"init_show\";\n            new i().setURI(\"/ajax/friends/lists/flyout_content.php\").setStatusElement(ea.getContent()).send();\n        }\n    ;\n        jb();\n        ja = g.listen(tb, \"mouseleave\", ob);\n        ma = t.subscribe(\"show\", mb);\n        if (m.get(tb, \"flfcloselistener\")) {\n            clearTimeout(m.remove(tb, \"flfcloselistenertimeout\"));\n        };\n        var vb = fb(tb);\n        r.getFriend(vb, function(wb) {\n            if ((wb.status == r.ARE_FRIENDS)) {\n                new i().setURI(\"/ajax/friends/lists/flyout_log.php\").setData({\n                    target_id: fb(tb),\n                    unref: ib(tb),\n                    action: ub\n                }).send();\n            };\n            if (!ha) {\n                return\n            };\n            if ((wb.status == r.OUTGOING_REQUEST)) {\n                l.show(ha);\n                i.bootstrap(\"/ajax/friends/lists/nux_flyout.php\", null, true);\n            }\n             else l.hide(ha);\n        ;\n        });\n    };\n    function mb(tb, ub) {\n        if ((!((ub instanceof k)) || !p.contains(ia, ub.getContext()))) {\n            ob();\n        };\n    };\n    function nb(tb) {\n        ia = tb;\n        ka = lb.curry(tb).defer(pa);\n        ja = g.listen(tb, \"mouseleave\", function() {\n            clearTimeout(ka);\n            ia = null;\n            (ja && ja.remove());\n        });\n    };\n    function ob() {\n        la = qb.defer(150);\n    };\n    function pb() {\n        var tb = n.getCurrent(), ub = (tb && tb.getBody());\n        return !!((ub && p.scry(ub, \".friendListDialogTourCarousel\")[0]));\n    };\n    function qb() {\n        if ((na || pb())) {\n            return\n        };\n        ((ba.ie() < 8) && document.documentElement.focus());\n        if (ea) {\n            ea.hide();\n            var tb = ea.getCausalElement();\n            (tb && tb.setAttribute(\"aria-expanded\", \"false\"));\n        }\n    ;\n    };\n    function rb(event) {\n        var tb = x.byTag(event.getTarget(), \"a\");\n        if ((tb && l.hasClass(tb, \"FriendListActionItem\"))) {\n            ob();\n        };\n    };\n    function sb(tb) {\n        var ub = m.remove(tb, \"flfcloselistener\");\n        (ub && ub());\n    };\n    e.exports = (a.FriendListFlyoutController || ra);\n});\n__d(\"AddFriendButton\", [\"Event\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"collectDataAttributes\",\"CSS\",\"DOMQuery\",\"FriendListFlyoutController\",\"FriendStatus\",\"ge\",\"goURI\",\"Style\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AsyncResponse\"), l = b(\"collectDataAttributes\"), m = b(\"CSS\"), n = b(\"DOMQuery\"), o = b(\"FriendListFlyoutController\"), p = b(\"FriendStatus\"), q = b(\"ge\"), r = b(\"goURI\"), s = b(\"Style\"), t = b(\"URI\"), u = {\n        ERROR_ALREADY_ADDED: 1431005,\n        init: function(v, w, x, y, z, aa, ba, ca, da, ea, fa, ga) {\n            var ha = v.id, ia = null, ja = n.scry(v, \".addButton\")[0], ka = n.scry(v, \".addFriendText\")[0], la = n.scry(v, \".outgoingButton\")[0], ma = n.scry(v, \".incomingButton\")[0], na = n.scry(v, \".friendButton\")[0];\n            function oa(ua, va, wa) {\n                var xa = new t(ja.getAttribute(\"ajaxify\")), ya = l(v, [\"ft\",\"gt\",]);\n                new j().setURI(aa).setData({\n                    to_friend: w,\n                    action: ua,\n                    how_found: y,\n                    ref_param: z,\n                    link_data: ya,\n                    outgoing_id: la.id,\n                    xids: xa.getQueryData().xids,\n                    logging_location: ba,\n                    no_flyout_on_click: ca,\n                    ego_log_data: da,\n                    http_referer: fa\n                }).setErrorHandler(va).setServerDialogCancelHandler(wa).setRelativeTo(la).send();\n                if ((ga && (ua === \"add_friend\"))) {\n                    new j().setURI(\"/ajax/add_friend/chain_pymk.php\").send();\n                };\n            };\n            function pa(ua, va) {\n                if (ka) {\n                    m.hide(ka);\n                }\n                 else if (ja) {\n                    m.hide(ja);\n                }\n            ;\n                (la && m.hide(la));\n                (ma && m.hide(ma));\n                (na && m.hide(na));\n                if (ua) {\n                    m.show(ua);\n                };\n                if ((((\"Outgoing\" == va) && (ia != va)) && ea)) {\n                    new h(ua).from(\"backgroundColor\", \"#FFF8CC\").to(\"backgroundColor\", \"transparent\").from(\"borderColor\", \"#FFE222\").to(\"borderColor\", s.get(ua, \"borderLeftColor\")).duration(2000).go();\n                };\n                (ia && m.removeClass(v, (\"fStatus\" + ia)));\n                ia = va;\n                m.addClass(v, (\"fStatus\" + va));\n            };\n            function qa(ua) {\n                if (m.hasClass(ua, \"enableFriendListFlyout\")) {\n                    o.show(ua);\n                }\n                 else o.hide();\n            ;\n            };\n            var ra = i.subscribe(\"FriendRequest/change\", function(ua, va) {\n                ta();\n                if ((va.uid != w)) {\n                    return\n                };\n                switch (va.status) {\n                  case p.ARE_FRIENDS:\n                    return pa(na, \"Friends\");\n                  case p.INCOMING_REQUEST:\n                    return pa(ma, \"Incoming\");\n                  case p.OUTGOING_REQUEST:\n                    return pa(la, \"Outgoing\");\n                  case p.CAN_REQUEST:\n                    return pa((ka ? ka : ja), \"Requestable\");\n                };\n            }), sa;\n            if (x) {\n                sa = i.subscribe(\"FriendRequest/confirm\", function(ua, va) {\n                    ta();\n                    ((va.uid == w) && r(x));\n                });\n            };\n            (ja && g.listen(ja, \"click\", function() {\n                i.inform(\"FriendRequest/sending\", {\n                    uid: w\n                });\n                if (ca) {\n                    o.setActiveNode(la);\n                }\n                 else qa(la);\n            ;\n                oa(\"add_friend\", function(ua) {\n                    var va = ((ua.error == u.ERROR_ALREADY_ADDED) ? \"FriendRequest/sent\" : \"FriendRequest/sendFail\");\n                    i.inform(va, {\n                        uid: w\n                    });\n                    o.hide();\n                    k.defaultErrorHandler(ua);\n                }, function(ua) {\n                    i.inform(\"FriendRequest/sendFail\", {\n                        uid: w\n                    });\n                    o.hide();\n                });\n            }));\n            function ta() {\n                if (q(ha)) {\n                    return\n                };\n                (ra && ra.unsubscribe());\n                (sa && sa.unsubscribe());\n                ra = sa = null;\n            };\n        }\n    };\n    e.exports = u;\n});\n__d(\"FriendButtonIcon\", [\"Arbiter\",\"FriendStatus\",\"Button\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"FriendStatus\"), i = b(\"Button\"), j = b(\"arrayContains\");\n    e.exports = {\n        register: function(k, l, m) {\n            g.subscribe(\"FriendListMembershipChange\", function(n, o) {\n                if ((o.uid == m)) {\n                    var p = j(o.lists, h.CLOSE_FRIENDS), q = j(o.lists, h.ACQUAINTANCES);\n                    if ((p && !q)) {\n                        i.setIcon(k, l.close);\n                    }\n                     else if ((q && !p)) {\n                        i.setIcon(k, l.acquaintance);\n                    }\n                     else i.setIcon(k, l.friend);\n                    \n                ;\n                }\n            ;\n            });\n        }\n    };\n});\n__d(\"PopoverMenuShowOnHover\", [\"Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._popoverMenu = j;\n        this._listeners = [];\n    };\n    h(i.prototype, {\n        enable: function() {\n            this._attachMouseListeners(this._popoverMenu.getTriggerElem());\n            this._setMenuSubscription = this._popoverMenu.subscribe(\"setMenu\", this._onSetMenu.bind(this));\n        },\n        disable: function() {\n            while (this._listeners.length) {\n                this._listeners.pop().remove();;\n            };\n            if (this._setMenuSubscription) {\n                this._setMenuSubscription.unsubscribe();\n                this._setMenuSubscription = null;\n            }\n        ;\n        },\n        _onSetMenu: function() {\n            this._attachMouseListeners(this._popoverMenu.getMenu().getRoot());\n        },\n        _attachMouseListeners: function(j) {\n            var k = this._popoverMenu.getPopover();\n            this._listeners.push(g.listen(j, \"mouseenter\", k.showLayer.bind(k)), g.listen(j, \"mouseleave\", k.hideLayer.bind(k)));\n        }\n    });\n    e.exports = i;\n});\n__d(\"OGCollectionAddDialog\", [\"AsyncRequest\",\"DataStore\",\"DOMQuery\",\"Form\",\"MenuDeprecated\",\"URI\",\"collectDataAttributes\",\"copyProperties\",\"csx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"Form\"), k = b(\"MenuDeprecated\"), l = b(\"URI\"), m = b(\"collectDataAttributes\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"tidyEvent\"), q = \"OGCollectionAddDialog\";\n    function r(s, t, u, v, w) {\n        this._dialog = s;\n        this._surface = t;\n        this._endpoint = l(v);\n        this._loadEditMenu = w.loadEditMenu;\n        this._listener = h.get(String(u), q);\n        this._audienceSelector = i.find(this._dialog.getContent(), \".audienceSelector\");\n        this._menu = i.find(this._dialog.getContent(), \"._4-jt\");\n        k.register(this._menu);\n        this._menuSubscriptionToken = k.subscribe(\"select\", this._onMenuClick.bind(this));\n        p([this._dialog.subscribe(\"show\", this._onDialogShow.bind(this)),this._dialog.subscribe(\"hide\", this._onDialogHide.bind(this)),]);\n        this._dialog.show();\n    };\n    n(r, {\n        INSTANCE_KEY: q\n    });\n    n(r.prototype, {\n        _onDialogShow: function() {\n            this._listener.onDialogShow(this._dialog);\n        },\n        _onDialogHide: function() {\n            this._destroy();\n        },\n        _onMenuClick: function(s, t) {\n            if ((t.menu !== this._menu)) {\n                return\n            };\n            var u = t.item;\n            this._listener.onMenuClick(u);\n            var v = i.find(u, \"._5581\"), w = v.getAttribute(\"value\");\n            this._submitRequest(w);\n        },\n        _submitRequest: function(s) {\n            this._endpoint.addQueryData({\n                collection_token: s\n            });\n            this._dialog.hide();\n            this._request = new g(this._endpoint).setData(n(j.serialize(this._audienceSelector), {\n                action: \"add\",\n                load_edit_menu: this._loadEditMenu,\n                surface: this._surface\n            }, m(this._dialog.getContext(), [\"ft\",]))).setHandler(function() {\n                this._listener.onAddSuccess();\n            }.bind(this));\n            this._request.send();\n        },\n        _destroy: function() {\n            this._listener.onDialogHide();\n            k.unsubscribe(this._menuSubscriptionToken);\n        }\n    });\n    e.exports = r;\n});\n__d(\"OGCollectionAddMenu\", [\"CSS\",\"DataStore\",\"DOM\",\"DOMQuery\",\"Event\",\"OGCollectionAddDialog\",\"Parent\",\"TidyArbiterMixin\",\"copyProperties\",\"csx\",\"cx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"Event\"), l = b(\"OGCollectionAddDialog\"), m = b(\"Parent\"), n = b(\"TidyArbiterMixin\"), o = b(\"copyProperties\"), p = b(\"csx\"), q = b(\"cx\"), r = b(\"tidyEvent\");\n    function s(t, u, v, w, x, y) {\n        this._image = u;\n        this._container = v;\n        this._placeholder = w;\n        this._surface = x;\n        this._showPlaceholder = y.showPlaceholder;\n        this._rateControl = i.scry(this._container.parentNode, \"._5586\")[0];\n        s.inform(\"addButton\", {\n            button: this._image,\n            root: this._container\n        });\n        r(k.listen(this._container, \"click\", function(z) {\n            var aa = m.byClass(z.getTarget(), \"_5859\");\n            if ((this.isDialogShowing() && aa)) {\n                z.kill();\n            };\n        }.bind(this)));\n        if ((this._surface === \"friend_timeline_lhc\")) {\n            this._handleAlwaysVisibleLHC();\n        };\n        h.set(String(t), l.INSTANCE_KEY, this);\n    };\n    o(s, n);\n    o(s.prototype, n, {\n        destroy: function() {\n            i.remove(this._container);\n            this._placeholder.destroy();\n        },\n        hide: function() {\n            g.hide(this._container);\n            this._placeholder.hide();\n        },\n        getParent: function() {\n            return this._container.parentNode;\n        },\n        insertMenuIntoDialog: function(t) {\n            this._placeholder.insertIntoDialog(t);\n        },\n        onMenuClick: function(t) {\n            var u = j.find(t, \"._5582\");\n            this._showRate = (this._rateControl && u.getAttribute(\"value\"));\n            g.hide(this._image);\n            if (this._showRate) {\n                g.show(this._rateControl);\n                k.fire(this._rateControl, \"click\");\n            }\n             else if (this._showPlaceholder) {\n                g.show(this._placeholder.getIcon());\n            }\n        ;\n        },\n        onAddSuccess: function() {\n            if ((!this._showPlaceholder && !this._showRate)) {\n                this.inform(\"reload\");\n            };\n        },\n        onDialogShow: function(t) {\n            var u = j.find(t.getContent(), \".audienceSelector\");\n            g.addClass(this._image, \"openToggler\");\n            s.inform(\"menuOpened\", {\n                audienceSelector: u.parentNode\n            });\n            this._dialogShowing = true;\n        },\n        onDialogHide: function() {\n            g.removeClass(this._image, \"openToggler\");\n            this._dialogShowing = false;\n        },\n        isDialogShowing: function() {\n            return this._dialogShowing;\n        },\n        _handleAlwaysVisibleLHC: function() {\n            var t = m.byClass(this._container, \"_4_ij\"), u = m.byClass(t, \"_5-r\");\n            if (g.hasClass(t, \"_58v0\")) {\n                r([this._alwaysVisibleToken = k.listen(u, \"mouseenter\", function() {\n                    g.removeClass(t, \"_58v0\");\n                    this._alwaysVisibleToken.remove();\n                }.bind(this)),]);\n            };\n        }\n    });\n    e.exports = s;\n});\n__d(\"TimelineAppSectionCuration\", [\"Animation\",\"AppSectionCurationState\",\"Arbiter\",\"AsyncSignal\",\"CSS\",\"DOM\",\"Ease\",\"Event\",\"OnVisible\",\"Parent\",\"Style\",\"TidyArbiterMixin\",\"TimelineSection\",\"copyProperties\",\"cx\",\"queryThenMutateDOM\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"AppSectionCurationState\"), i = b(\"Arbiter\"), j = b(\"AsyncSignal\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Ease\"), n = b(\"Event\"), o = b(\"OnVisible\"), p = b(\"Parent\"), q = b(\"Style\"), r = b(\"TidyArbiterMixin\"), s = b(\"TimelineSection\"), t = b(\"copyProperties\"), u = b(\"cx\"), v = b(\"queryThenMutateDOM\"), w = b(\"tidyEvent\"), x = 0, y = {\n    }, z = {\n    };\n    function aa(fa, ga, ha) {\n        var ia, ja, ka = (((ga != h.hide)) && ((ha != h.hide)));\n        v(function() {\n            ja = fa.offsetHeight;\n            ia = ((ga === h.hide) ? 0 : fa.firstChild.offsetHeight);\n        }, function() {\n            q.set(fa, \"height\", (ja + \"px\"));\n            q.set(fa, \"overflow\", \"hidden\");\n            (ia && k.addClass(fa.parentNode, \"_52bu\"));\n            o.checkBuffer.defer();\n            var la = l.getID(fa);\n            (z[la] && z[la].stop());\n            z[la] = new g(fa).to(\"height\", ia).ondone(function() {\n                delete z[la];\n                if (ia) {\n                    q.set(fa, \"overflow\", \"\");\n                    q.set(fa.parentNode, \"overflow\", \"\");\n                }\n            ;\n                (!ia && k.removeClass(fa.parentNode, \"_52bu\"));\n                i.inform(\"reflow\");\n            }).duration((Math.abs((ia - ja)) * ((ka ? 5 : 1.5)))).ease(m.sineOut).go();\n        });\n    };\n    function ba(fa, ga) {\n        if (fa) {\n            k.show(ga);\n            k.hide(fa);\n        }\n    ;\n    };\n    function ca(fa, ga) {\n        if (fa) {\n            k.show(fa);\n            k.hide(ga);\n        }\n    ;\n    };\n    function da(fa, ga) {\n        s.callWithSection(fa, function(ha) {\n            new j(\"/ajax/timeline/collections/app_recs/\", {\n                collection_token: ha.getActiveCollection().getToken(),\n                event_type: ga\n            }).send();\n        });\n    };\n    var ea = t({\n        addSection: function(fa, ga, ha) {\n            y[fa] = {\n                appClickLogged: false,\n                buttons: ga,\n                content: ha,\n                id: fa,\n                state: h.hide\n            };\n            q.set(ha, \"height\", \"0px\");\n            q.set(ha, \"overflow\", \"hidden\");\n            k.show(ha);\n            for (var ia in ga) {\n                w([n.listen(ga[ia].hide_button, \"click\", ea.informState.curry(h.hide, fa)),n.listen(ga[ia].show_button, \"click\", ea.informState.curry(ia, fa)),]);;\n            };\n            ea.register(fa, function(ja, ka, la, ma) {\n                new o(ha, aa.curry(ha, ja, ma), true, x);\n                for (var na in ga) {\n                    ca(ga[na].show_button, ga[na].hide_button);;\n                };\n                if (ga[ja]) {\n                    ba(ga[ja].show_button, ga[ja].hide_button);\n                };\n            });\n        },\n        informState: function(fa, ga) {\n            if ((y[ga] && (y[ga].state !== fa))) {\n                if (((fa === h.showApps) && !y[ga].appClickLogged)) {\n                    y[ga].appClickLogged = true;\n                    da(ga, \"add_apps_click\");\n                }\n            ;\n                var ha = y[ga].state;\n                y[ga].state = fa;\n                ea.inform(fa, {\n                    obj: y[ga],\n                    oldState: ha\n                });\n            }\n        ;\n        },\n        linkContent: function(fa, ga, ha) {\n            var ia = y[fa].buttons[h.showApps].show_button;\n            k.show(p.byClass(ia, \"hidden_elem\"));\n            new o(ia, function() {\n                if ((Math.floor((Math.random() * 100)) === 0)) {\n                    da(fa, \"add_apps_imp\");\n                };\n            }, true, x);\n            ea.register(fa, function(ja, ka, la, ma) {\n                if ((ja == h.showItems)) {\n                    if ((ma == h.showApps)) {\n                        q.set(y[fa].content.parentNode, \"overflow\", \"hidden\");\n                    };\n                    k.show(ga);\n                    k.hide(ha);\n                }\n                 else if ((ja == h.showApps)) {\n                    k.hide(ga);\n                    k.show(ha);\n                }\n                \n            ;\n            });\n        },\n        register: function(fa, ga) {\n            var ha = ea.subscribe([h.hide,h.showItems,h.showApps,], function(ia, ja) {\n                if ((ja.obj.id === fa)) {\n                    ga(ia, ja.obj, ha, ja.oldState);\n                };\n            });\n        },\n        getSectionState: function(fa) {\n            if (y[fa]) {\n                return y[fa].state\n            };\n        }\n    }, r);\n    e.exports = ea;\n});\n__d(\"TimelineMonitor\", [\"Arbiter\",\"Event\",\"Run\",\"Vector\",\"ViewportBounds\",\"ge\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Event\"), i = b(\"Run\"), j = b(\"Vector\"), k = b(\"ViewportBounds\"), l = b(\"ge\"), m = b(\"queryThenMutateDOM\"), n = {\n    }, o = {\n    }, p = 0, q = [], r = null, s = false;\n    function t() {\n        n = {\n        };\n        o = {\n        };\n        p = 0;\n        q.length = 0;\n        (r && r.remove());\n        r = null;\n        s = false;\n    };\n    function u() {\n        if (!r) {\n            r = h.listen(window, \"scroll\", z);\n        };\n        if (!s) {\n            i.onLeave(t);\n            s = true;\n        }\n    ;\n        z();\n    };\n    var v = [], w = [];\n    function x() {\n        q.forEach(function(ea) {\n            var fa = aa.getSection(ea);\n            if ((fa && (fa !== o[ea.id]))) {\n                o[ea.id] = fa;\n                v.push({\n                    section: fa\n                });\n            }\n        ;\n        });\n        var ba = (k.getTop() + j.getScrollPosition().y);\n        for (var ca in n) {\n            var da = n[ca];\n            if (((((ba >= da.boundary) && (p <= da.boundary))) || (((ba <= da.boundary) && (p >= da.boundary))))) {\n                n[ca].fromAbove = (p < ba);\n                w.push(n[ca]);\n            }\n        ;\n        };\n        p = ba;\n    };\n    function y() {\n        v.forEach(function(ba) {\n            g.inform(aa.SECTION_CHANGE, ba);\n        });\n        w.forEach(function(ba) {\n            g.inform(aa.BOUNDARY_PASSED, ba);\n        });\n        v.length = 0;\n        w.length = 0;\n    };\n    function z() {\n        m(x, y, \"TimelineMonitor/scroll\");\n    };\n    var aa = {\n        BOUNDARY_PASSED: \"TimelineMonitor/boundary\",\n        SECTION_CHANGE: \"TimelineMonitor/change\",\n        getSection: function(ba) {\n            var ca = (k.getTop() + j.getScrollPosition().y), da = ba.childSections.getHead();\n            while (da) {\n                if ((l(da.nodeID) && (ca < (j.getElementPosition(da.getNode()).y + j.getElementDimensions(da.getNode()).y)))) {\n                    return da\n                };\n                da = da.getNext();\n            };\n        },\n        monitorBoundary: function(ba, ca) {\n            ca = (ca || ba);\n            if ((!n[ca] || (n[ca].boundary !== ba))) {\n                n[ca] = {\n                    boundary: ba,\n                    id: ca\n                };\n                u();\n            }\n        ;\n        },\n        monitorSection: function(ba) {\n            o[ba.id] = null;\n            q.push(ba);\n            u();\n            return aa.getSection(ba);\n        },\n        poke: function(ba) {\n            z();\n        }\n    };\n    e.exports = aa;\n});\n__d(\"TimelineAppSection\", [\"AppSectionCurationState\",\"Arbiter\",\"Class\",\"CSS\",\"DOM\",\"DOMQuery\",\"DOMScroll\",\"JSLogger\",\"MedleyPageletRequestData\",\"PageletSet\",\"Style\",\"TidyArbiter\",\"TidyArbiterMixin\",\"TimelineAppCollection\",\"TimelineAppSectionCuration\",\"TimelineDynamicSection\",\"TimelineMonitor\",\"TimelineSection\",\"TimelineSmartInsert\",\"TriggerablePageletLoader\",\"ViewportBounds\",\"copyProperties\",\"csx\",\"cx\",\"ge\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AppSectionCurationState\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMQuery\"), m = b(\"DOMScroll\"), n = b(\"JSLogger\"), o = b(\"MedleyPageletRequestData\"), p = b(\"PageletSet\"), q = b(\"Style\"), r = b(\"TidyArbiter\"), s = b(\"TidyArbiterMixin\"), t = b(\"TimelineAppCollection\"), u = b(\"TimelineAppSectionCuration\"), v = b(\"TimelineDynamicSection\"), w = b(\"TimelineMonitor\"), x = b(\"TimelineSection\"), y = b(\"TimelineSmartInsert\"), z = b(\"TriggerablePageletLoader\"), aa = b(\"ViewportBounds\"), ba = b(\"copyProperties\"), ca = b(\"csx\"), da = b(\"cx\"), ea = b(\"ge\"), fa = b(\"tx\"), ga = 500, ha = 2, ia = 500, ja = 18, ka = \"_5bry\", la = \"_3s-\", ma = k.create(\"div\", {\n        className: \"_3s_\"\n    });\n    function na() {\n        return k.create(\"span\", {\n            className: \"_3s18\"\n        }, [k.create(\"a\", {\n            className: \"_3s19\",\n            href: \"#\"\n        }, \"More\"),k.create(\"span\", {\n            className: \"_3s1a\"\n        }),]);\n    };\n    var oa = n.create(\"collections\"), pa = {\n        notes: 295,\n        events: 345,\n        photos: 555,\n        app_quoraapp: 569,\n        friends: 603,\n        app_foodspotting: 621,\n        map: 621,\n        favorites: 645,\n        app_pinterestapp: 699,\n        app_instapp: 699,\n        books: 699,\n        movies: 699,\n        tv: 699,\n        music: 725\n    };\n    function qa(sa) {\n        return pa[sa.replace(\"pagelet_timeline_medley_\", \"\")];\n    };\n    function ra(sa, ta, ua, va) {\n        this.parent.construct(this, ra.getIDBySK(ta), sa, ua);\n        this._sk = ta;\n        this._title = va;\n    };\n    i.extend(ra, v);\n    ba(ra, {\n        createFromArray: function(sa) {\n            return sa.map(function(ta) {\n                return new ra(ta.controller, ta.sk, ta.label, ta.title);\n            });\n        },\n        getIDBySK: function(sa) {\n            return (\"pagelet_timeline_medley_\" + sa);\n        },\n        registerCollections: function(sa, ta, ua) {\n            x.callWithSection(ra.getIDBySK(sa), function(va) {\n                t.createFromArray(ta).forEach(va.appendSection.bind(va));\n                var wa = va.childSections.get(ua);\n                va.setActiveCollection(wa);\n                wa.setIsLoaded(true);\n            });\n        },\n        removeEmptyAppSection: function(sa) {\n            x.callWithSection(ra.getIDBySK(sa), function(ta) {\n                ta.remove();\n            });\n        }\n    }, s);\n    ba(ra.prototype, s, {\n        _createNode: function() {\n            var sa = this.parent._createNode();\n            sa.setAttribute(\"aria-labelledby\", (\"medley_header_\" + this._sk));\n            sa.setAttribute(\"aria-role\", \"region\");\n            k.prependContent(sa, k.create(\"div\", {\n                className: \"_3cz\"\n            }, [this._title,k.create(\"div\", {\n                className: \"_3dc\",\n                \"aria-role\": \"tablist\"\n            }),]));\n            this.resetMinHeight(sa);\n            return sa;\n        },\n        addAuxContent: function(sa) {\n            var ta = l.scry(this.getNode(), \"._6ph\")[0];\n            (ta && k.appendContent(ta, sa));\n            (this._activeCollection && this._checkTabDimensions(this._activeCollection));\n        },\n        nullStateCurationContent: function() {\n            if (!this._nullStateContent) {\n                return\n            };\n            var sa = l.find(this.getNode(), \"._1_cb\");\n            k.replace(sa.firstChild, this._nullStateContent);\n        },\n        addCurationContent: function(sa, ta, ua) {\n            var va = l.scry(this.getNode(), \"._1_cb\")[0];\n            (va && k.appendContent(va, sa));\n            if (ua) {\n                this._nullStateContent = ua;\n            };\n            this._checkCurationContent(ta);\n        },\n        createTriggerLoader: function(sa) {\n            var ta = function(ua) {\n                this._parentSection._lastLoadedSection = this;\n                this.setIsLoaded(true);\n                y.enable();\n                y.run(this.getNode(), function() {\n                    ua();\n                    this.unsetMinHeight();\n                    w.poke(this._parentSection.id);\n                }.bind(this), \"viewport\");\n            }.bind(this);\n            r.subscribe(\"Medley/requestDataSet\", function() {\n                this._triggerLoader = new z({\n                    controller: this._controller,\n                    data: this.getData(),\n                    displayCallback: ta,\n                    options: {\n                        constHeight: true\n                    },\n                    node: this.getNode()\n                }, [{\n                    node: this.getNode(),\n                    onVisibleBuffer: ga,\n                    onVisibleStrict: true,\n                    type: (sa ? z.TRIGGER_NOW : z.TRIGGER_ONVISIBLE)\n                },]);\n            }.bind(this));\n        },\n        freeze: function() {\n            j.addClass(this.getNode(), \"_c4e\");\n            if ((ea(this.nodeID) && !this.isLoaded())) {\n                (this._triggerLoader && this._triggerLoader.disableTriggers());\n            };\n            this.freezeChildren();\n        },\n        getData: function() {\n            if (!this._data) {\n                this._data = ba({\n                    sk: this._sk\n                }, o.get(), {\n                    overview: (this._parentSection._sk !== this._sk)\n                });\n            };\n            return this._data;\n        },\n        getActiveCollection: function() {\n            return this._activeCollection;\n        },\n        remove: function() {\n            if (p.hasPagelet(this.id)) {\n                p.removePagelet(this.id);\n            };\n            k.remove(this.getNode());\n            this._parentSection.childSections.remove(this.id);\n        },\n        setActiveCollection: function(sa) {\n            if (((this._activeCollection === sa) || !sa._tabNode)) {\n                return\n            };\n            if (this._activeCollection) {\n                h.inform(\"TimelineSideAds/refresh\");\n                oa.log(\"change_collection\", {\n                    previous_collection: this._activeCollection.getToken(),\n                    new_collection: sa.getToken()\n                });\n                this.resetMinHeight();\n                this._activeCollection.disableContentLoader();\n                j.hide(this._activeCollection.getNode());\n                j.removeClass(this._activeCollection._tabNode, la);\n                k.scry(this._activeCollection._tabNode, \"div._3s_\").forEach(k.remove);\n                k.appendContent(sa._tabNode, ma.cloneNode(true));\n                (this._activeCollection.auxContent && j.hide(this._activeCollection.auxContent));\n                (this._activeCollection.curationContent && j.hide(this._activeCollection.curationContent));\n                this._activeCollection._tabNode.setAttribute(\"aria-selected\", \"false\");\n            }\n        ;\n            (sa.auxContent && j.show(sa.auxContent));\n            this._checkCurationContent(sa);\n            j.addClass(sa._tabNode, la);\n            this._checkTabDimensions(sa);\n            this._activeCollection = sa;\n            ra.inform(\"changeCollection\");\n            if (!ea(sa.nodeID)) {\n                k.appendContent(l.find(this.getNode(), \"div._3i9\"), sa.getNode());\n            };\n            j.show(sa.getNode());\n            (sa.isLoaded() && this.unsetMinHeight());\n            sa._tabNode.setAttribute(\"aria-selected\", \"true\");\n            sa.enableContentLoader();\n        },\n        resetMinHeight: function(sa) {\n            (sa || (sa = this.getNode()));\n            var ta = (qa(this.id) || (sa.offsetHeight - ha));\n            ((ta > 0) && this._updateScrollAfterHeight(sa, ta));\n        },\n        scrollTo: function(sa, ta) {\n            var ua = aa.getElementPosition(this.getNode());\n            ua.y -= (sa || ja);\n            (ta && this._parentSection.toggleScrollLoad(false));\n            m.scrollTo(ua, ia, null, null, function() {\n                ua = aa.getElementPosition(this.getNode());\n                ua.y -= (sa || ja);\n                m.scrollTo(ua);\n                (ta && this._parentSection.toggleScrollLoad(true));\n            }.bind(this));\n        },\n        thaw: function() {\n            j.removeClass(this.getNode(), \"_c4e\");\n            (this._triggerLoader && this._triggerLoader.enableTriggers());\n            this.thawChildren();\n        },\n        unsetMinHeight: function() {\n            this._updateScrollAfterHeight(this.getNode(), 0);\n        },\n        _updateScrollAfterHeight: function(sa, ta) {\n            q.set(sa, \"min-height\", (ta + \"px\"));\n            h.inform(\"reflow\");\n        },\n        _checkCurationContent: function(sa) {\n            var ta = l.scry(this.getNode(), \"._2zh3\")[0];\n            if (ta) {\n                j.conditionShow(ta, sa.curationContent);\n                if (sa.curationContent) {\n                    j.show(sa.curationContent);\n                    if (sa.curationContentState) {\n                        u.informState(sa.curationContentState, this.id);\n                    };\n                }\n                 else u.informState(g.hide, this.id, g.showItems);\n            ;\n            }\n        ;\n        },\n        _getTabObj: function() {\n            if (!this._tabObj) {\n                this._tabObj = {\n                    aux: k.find(this.getNode(), \"._6ph\"),\n                    items: [],\n                    nav: k.find(this.getNode(), \"._1_ca\"),\n                    tabs: k.find(this.getNode(), \"._3dc\"),\n                    width: 0\n                };\n                j.addClass(this._tabObj.tabs, \"_5brz\");\n            }\n        ;\n            return this._tabObj;\n        },\n        _checkTabDimensions: function(sa) {\n            var ta = this._getTabObj(), ua = (ta.nav.offsetWidth - ta.aux.offsetWidth);\n            if ((ua >= ta.width)) {\n                if ((!ta.hidden && ((ua - ta.tabs.offsetWidth) >= 0))) {\n                    return\n                };\n                j.removeClass(ta.tabs, ka);\n            }\n        ;\n            if ((ta.hidden && (sa._tabNode.parentNode === ta.overflow))) {\n                k.prependContent(ta.overflow, ta.dropdown.previousSibling);\n                k.insertBefore(ta.dropdown, sa._tabNode);\n            }\n        ;\n            if ((((ua - ta.tabs.offsetWidth) >= 0) && !ta.hidden)) {\n                return\n            };\n            var va = ta.items.length;\n            if ((va && ta.hidden)) {\n                for (var wa = 0; (wa < va); wa++) {\n                    k.appendContent(ta.tabs, ta.items[wa]);;\n                };\n                k.remove(ta.dropdown);\n            }\n        ;\n            j.conditionClass(ta.tabs, ka, ((ua - ta.tabs.offsetWidth) < 0));\n            ta.width = ua;\n            ta.hidden = 0;\n            if (((ua - ta.tabs.offsetWidth) >= 0)) {\n                return\n            };\n            if (!ta.dropdown) {\n                ta.dropdown = na();\n                ta.overflow = k.find(ta.dropdown, \"._3s1a\");\n                ta.items = k.scry(this.getNode(), \"._3c_\");\n                va = ta.items.length;\n            }\n        ;\n            k.appendContent(ta.tabs, ta.dropdown);\n            var xa = 0;\n            for (wa = (va - 1); ((wa > 0) && (xa <= 0)); wa--) {\n                if ((ta.items[wa] !== sa._tabNode)) {\n                    k.prependContent(ta.overflow, ta.items[wa]);\n                    xa = (ua - ta.tabs.offsetWidth);\n                    ta.hidden++;\n                }\n            ;\n            };\n        }\n    });\n    e.exports = ra;\n});\n__d(\"TimelineCoverDisclaimer\", [\"Dialog\",], function(a, b, c, d, e, f) {\n    var g = b(\"Dialog\");\n    function h(i, j, k) {\n        if ((h.displayed === undefined)) {\n            h.displayed = true;\n        }\n         else return\n    ;\n        new g().setModal(true).setTitle(i).setBody(j).setButtonsMessage(k).setButtons(g.OK).show();\n    };\n    e.exports = h;\n});\n__d(\"legacy:TimelineCoverDisclaimer\", [\"TimelineCoverDisclaimer\",], function(a, b, c, d) {\n    a.TimelineCoverDisclaimer = b(\"TimelineCoverDisclaimer\");\n}, 3);\n__d(\"TimelineMedley\", [\"Class\",\"CSS\",\"DOM\",\"DOMPosition\",\"DOMQuery\",\"PageTransitions\",\"TimelineAppSection\",\"TimelineDynamicSectionConfig\",\"TimelineMonitor\",\"TimelineSection\",\"URI\",\"ViewportBounds\",\"copyProperties\",\"csx\",\"cx\",\"ge\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMPosition\"), k = b(\"DOMQuery\"), l = b(\"PageTransitions\"), m = b(\"TimelineAppSection\"), n = b(\"TimelineDynamicSectionConfig\"), o = b(\"TimelineMonitor\"), p = b(\"TimelineSection\"), q = b(\"URI\"), r = b(\"ViewportBounds\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"cx\"), v = b(\"ge\"), w = b(\"$\"), x = \"timeline-medley\", y = \"about\", z = 2, aa = false;\n    function ba(ea) {\n        var fa = (ea.getQueryData().sk || ea.getPath().split(\"/\")[2]);\n        return (n.skmapping[fa] || fa);\n    };\n    function ca(ea) {\n        if (ea.getQueryData().id) {\n            return ea.getQueryData.id\n        };\n        return ea.getPath().split(\"/\")[1];\n    };\n    function da(ea, fa, ga) {\n        this.parent.construct(this, x);\n        this.isOverview = (ea.length > 1);\n        n.breaker = ga.breaker;\n        m.createFromArray(ea).forEach(this.appendSection.bind(this));\n        o.monitorSection(this);\n        this._lastLoadedSection = this.childSections.get(m.getIDBySK(fa)).setIsLoaded(true);\n        p.setActiveSectionID(this._lastLoadedSection.id);\n        if ((aa && this.isMedleyView())) {\n            this.addSectionPlaceholders();\n        };\n        var ha = q.getNextURI();\n        this._vanity = ca(ha);\n        this._sk = ba(ha);\n        if (this.isOverview) {\n            l.registerHandler(this._transitionHandler.bind(this));\n        };\n    };\n    g.extend(da, p);\n    s(da, {\n        loadToSection: function(ea, fa) {\n            p.setActiveSectionID(ea);\n            p.callWithSection(x, function(ga) {\n                var ha = ga.childSections.getHead(), ia = 0;\n                while ((ha && (ha.id !== ea))) {\n                    ia++;\n                    ha = ha.getNext();\n                };\n                if (!ia) {\n                    return fa(ha)\n                };\n                ia--;\n                (ia && ga.addUpcomingSectionPlaceholders(ga.childSections.getHead(), ia));\n                ga.addSectionPlaceholder(ha, ha.getPrev(), true);\n                var ja = ha.subscribe(\"loaded\", function() {\n                    fa(ha);\n                    ja.unsubscribe();\n                });\n            });\n        },\n        scrollToSection: function(ea, fa, ga) {\n            p.callWithSection(ea, function(ha) {\n                ha.scrollTo(fa, ga);\n            });\n        },\n        toggleScrollLoad: function(ea) {\n            aa = ea;\n            p.callWithSection(x, function(fa) {\n                fa.toggleScrollLoad(ea);\n            });\n        }\n    });\n    s(da.prototype, {\n        addSectionTeasers: function() {\n            if (!this.isMedleyView()) {\n                h.removeClass(this.getNode(), \"_c4f\");\n                this.thawChildren();\n                this.addSectionPlaceholders();\n                this.addSectionBreak();\n            }\n        ;\n        },\n        addUpcomingSectionPlaceholders: function(ea, fa) {\n            fa = (fa || z);\n            while (ea = ea.getNext()) {\n                if ((!this.addSectionPlaceholder(ea, ea.getPrev()) && (--fa <= 0))) {\n                    break;\n                };\n            };\n        },\n        addSectionPlaceholder: function(ea, fa, ga) {\n            if ((!ea.isLoaded() && v(ea.nodeID))) {\n                return false\n            };\n            if (!v(ea.nodeID)) {\n                i.insertAfter(fa.getNode(), ea.getNode());\n                ea.createTriggerLoader(ga);\n                return false;\n            }\n        ;\n            return true;\n        },\n        addSectionBreak: function() {\n            if (this._lastLoadedSection.getNext()) {\n                i.insertAfter(this.childSections.getHead().getNode(), n.breaker);\n            }\n             else i.remove(n.breaker);\n        ;\n        },\n        addSectionPlaceholders: function() {\n            this.addUpcomingSectionPlaceholders(this._lastLoadedSection);\n        },\n        getNode: function() {\n            return w(this.id);\n        },\n        isMedleyView: function() {\n            return (this._sk === y);\n        },\n        toggleScrollLoad: function(ea) {\n            aa = ea;\n            if (ea) {\n                this.thawChildren();\n                this.addSectionPlaceholders();\n            }\n             else this.freezeChildren();\n        ;\n        },\n        _transitionHandler: function(ea) {\n            if ((ca(ea) !== this._vanity)) {\n                return false\n            };\n            var fa = ba(ea);\n            if (!fa) {\n                return false\n            };\n            if ((fa === y)) {\n                return false;\n            }\n             else {\n                var ga = ea.getQueryData();\n                if (!ga.next_cursor) {\n                    return false\n                };\n                var ha = this.childSections.getHead();\n                while (ha) {\n                    if ((ha._sk === fa)) {\n                        if ((!ha._activeCollection && !k.scry(ha._activeCollection.getNode(), \"._3t3\")[0])) {\n                            return false\n                        };\n                        this._transitionToSection.bind(this, ha, ga).defer();\n                        return true;\n                    }\n                ;\n                    ha = ha.getNext();\n                };\n            }\n        ;\n            return false;\n        },\n        _transitionToSection: function(ea, fa) {\n            var ga = (j.getElementPosition(ea.getNode()).y - r.getTop());\n            i.scry(ea.getNode(), \"._51k9\").forEach(function(ja) {\n                h.removeClass(ja, \"_51k9\");\n            });\n            this._sk = ea._sk;\n            p.setActiveSectionID(ea.id);\n            ea.thaw();\n            h.addClass(this.getNode(), \"_c4f\");\n            this.freezeChildren();\n            var ha = k.find(ea._activeCollection.getNode(), \"._3t3\");\n            ea._activeCollection.addContentLoader(ha, fa.next_cursor);\n            ea._activeCollection._contentLoader.load({\n                node: ha\n            });\n            var ia = this.childSections.getHead();\n            while ((ia && (ia.id !== ea.id))) {\n                ia.remove();\n                ia = this.childSections.getHead();\n            };\n            p.inform(\"Medley/transitionToSection\", ea.id);\n            ea.scrollTo(((ga < 0) ? ga : 0));\n            l.transitionComplete();\n        }\n    });\n    e.exports = da;\n});\n__d(\"TimelineNavLight\", [\"CSS\",\"DOM\",\"DOMQuery\",\"Parent\",\"TimelineSection\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"DOMQuery\"), j = b(\"Parent\"), k = b(\"TimelineSection\"), l = b(\"csx\"), m = b(\"cx\");\n    function n(o) {\n        var p = i.scry(o, \"._6-7\")[0], q = i.scry(o, \"._6-6\"), r = j.byClass(o, \"_70k\").offsetWidth, s = q[(q.length - 1)];\n        if (((s.offsetLeft + s.offsetWidth) > r)) {\n            g.addClass(o, \"_5215\");\n        };\n        for (var t = (q.length - 1); (t > 1); t--) {\n            if (((q[t].offsetLeft + q[t].offsetWidth) > r)) {\n                h.remove(q[t]);\n            }\n             else break;\n        ;\n        };\n        var u = \"_529n\";\n        g.removeClass(j.byClass(o, u), u);\n        k.subscribe(\"Medley/transitionToSection\", function(v, w) {\n            if ((p && (w === p.getAttribute(\"data-medley-id\")))) {\n                return\n            };\n            (p && g.removeClass(p, \"_6-7\"));\n            for (var x = 0; (x < q.length); ++x) {\n                if ((q[x].getAttribute(\"data-medley-id\") === w)) {\n                    g.addClass(q[x], \"_6-7\");\n                    p = q[x];\n                    return;\n                }\n            ;\n            };\n        });\n    };\n    e.exports = n;\n});\n__d(\"TimelineOGCollectionAddSelector\", [\"AsyncRequest\",\"DOM\",\"Form\",\"TidyArbiterMixin\",\"copyProperties\",\"csx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"DOM\"), i = b(\"Form\"), j = b(\"TidyArbiterMixin\"), k = b(\"copyProperties\"), l = b(\"csx\"), m = b(\"tidyEvent\");\n    function n(o, p, q, r) {\n        this._endpoint = q;\n        this._button = o;\n        this._buttonParent = o.parentNode;\n        this._audienceSelector = r;\n        var s = h.find(o, \"._4ihv\");\n        n.inform(\"addButton\", {\n            button: s,\n            root: this._buttonParent\n        });\n        m([p.getMenu().subscribe(\"rendered\", function(t, u) {\n            n.inform(\"menuOpened\", {\n                audienceSelector: r\n            });\n            h.appendContent(h.find(u, \"._54ng\"), r);\n        }),p.subscribe(\"itemselected\", this._onChange.bind(this)),]);\n    };\n    k(n, j);\n    k(n.prototype, j, {\n        _onChange: function(o, p) {\n            var q = p.getValue(), r = (this.inform(\"addedToCollection\", q) || {\n            });\n            new g(this._endpoint).setData(k(i.serialize(this._audienceSelector), r, {\n                action: \"add\",\n                collection_token: q,\n                mechanism: \"add_selector\"\n            })).send();\n        }\n    });\n    e.exports = n;\n});\n__d(\"TimelineCurationNUXController\", [\"AppSectionCurationState\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Event\",\"OGCollectionAddMenu\",\"TimelineOGCollectionAddSelector\",\"URI\",\"$\",\"csx\",\"cx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"AppSectionCurationState\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Event\"), l = b(\"OGCollectionAddMenu\"), m = b(\"TimelineOGCollectionAddSelector\"), n = b(\"URI\"), o = b(\"$\"), p = b(\"csx\"), q = b(\"cx\"), r = b(\"tidyEvent\"), s = 5, t = \"pagelet_timeline_medley_movies\", u = 165, v, w, x, y, z, aa, ba = [], ca = {\n        reports: 0,\n        about: 1,\n        section: 2,\n        section_privacy: 3,\n        add_button: 4,\n        privacy: 5,\n        0: \"reports\",\n        1: \"about\",\n        2: \"section\",\n        3: \"section_privacy\",\n        4: \"add_button\",\n        5: \"privacy\"\n    };\n    function da() {\n        ba.forEach(function(na) {\n            (na.button && na.button.setAttribute(\"data-hover\", \"tooltip\"));\n            (na.listener && na.listener.remove());\n        });\n        ba.length = 0;\n    };\n    function ea(na) {\n        if (z[na]) {\n            z[na].destroy();\n            delete z[na];\n            ((na === \"add_button\") && da());\n        }\n    ;\n        ((aa[na] && aa[na].parentNode) && j.remove(aa[na]));\n    };\n    function fa(na) {\n        if (!i.hasClass(na, \"_50_y\")) {\n            i.addClass(na, \"_50_y\");\n            d([\"Animation\",], function(oa) {\n                new oa(na).to(\"opacity\", 0).duration(300).ease(oa.ease.end).hide().go();\n            });\n        }\n    ;\n    };\n    function ga(na) {\n        ha(na);\n        var oa = (ca[na] + 1);\n        (oa && ia(ca[oa]));\n    };\n    function ha(na) {\n        new h(\"/ajax/timeline/collections/tour/curation/\").setAllowCrossPageTransition(true).setData({\n            step: na\n        }).send();\n        ea(na);\n    };\n    function ia(na) {\n        y = na;\n        switch (na) {\n          case \"reports\":\n            d([\"TimelineController\",], function(oa) {\n                oa.runOnceWhenSectionFullyLoaded(function() {\n                    ka(j.find(o(\"timeline_tab_content\"), \"._3rbg\"), na);\n                }, \"recent\", \"0\");\n            });\n            break;\n          case \"about\":\n            v = j.scry(o(\"fbTimelineHeadline\"), \"._6-6\")[1];\n            w = r(k.listen(v, \"click\", function() {\n                v = null;\n                w.remove();\n                y = \"section\";\n            }));\n            ka(v, na);\n            break;\n          case \"section\":\n            if (v) {\n                n(v.getAttribute(\"href\")).go();\n                v = null;\n                (w && w.remove());\n            }\n             else d([\"OnVisible\",\"TimelineMedley\",], function(oa, pa) {\n                j.appendContent(j.find(o(\"pagelet_timeline_main_column\"), \"._2w3\"), aa.section);\n                r(k.listen(aa.section, \"click\", function() {\n                    pa.scrollToSection(t, u, 1);\n                    fa(aa.section);\n                }));\n                pa.loadToSection(t, function() {\n                    ka(o(t), na);\n                    var qa = new oa(o(t), function() {\n                        fa(aa.section);\n                        qa.remove();\n                    }, false, -u);\n                });\n            });\n        ;\n            break;\n          case \"section_privacy\":\n            d([\"TimelineAppSectionCuration\",], function(oa) {\n                oa.informState(g.showItems, t);\n                ka(j.scry(o(t), \".audienceSelector\")[0], na);\n            });\n            break;\n          case \"privacy\":\n            k.fire(x, \"click\");\n            break;\n        };\n    };\n    function ja(na, oa) {\n        if (z.add_button) {\n            var pa = j.scry(oa, \"[data-hover]\")[0];\n            ba.push({\n                button: pa,\n                listener: r(k.listen(na, \"mouseenter\", function() {\n                    x = na;\n                    ka(na, \"add_button\");\n                }))\n            });\n            (pa && pa.removeAttribute(\"data-hover\"));\n        }\n    ;\n    };\n    function ka(na, oa) {\n        if (z[oa]) {\n            z[oa].setContext(na).setOffsetX(5).show();\n            if ((oa === \"privacy\")) {\n                ea(\"add_button\");\n            };\n        }\n    ;\n    };\n    function la(na, oa, pa) {\n        var qa = pa.getAttribute(\"data-action\");\n        if (((qa === \"next\") || (qa === \"done\"))) {\n            ga(na);\n        }\n         else ha(na);\n    ;\n    };\n    var ma = {\n        init: function(na) {\n            var oa = na.next_step, pa = ca[oa];\n            z = na.dialogs;\n            aa = (na.links ? na.links : []);\n            da();\n            if (((oa === \"section\") && (oa !== y))) {\n                ea(\"section\");\n                ea(\"section_privacy\");\n                pa += 2;\n                oa = ca[pa];\n            }\n        ;\n            for (var qa in z) {\n                r(z[qa].subscribe(\"button\", la.curry(qa)));;\n            };\n            if (z.add_button) {\n                var ra = (na.isViewingSelf ? m : l);\n                r([ra.subscribe(\"menuOpened\", function(sa, ta) {\n                    ka.curry(j.find(ta.audienceSelector, \".audienceSelector\"), \"privacy\").defer(s);\n                }),ra.subscribe(\"addButton\", function(sa, ta) {\n                    ja.curry(ta.button, ta.root).defer(s);\n                }),]);\n            }\n        ;\n            if ((na.isViewingSelf && (pa < ca.add_button))) {\n                ia(oa);\n            };\n        }\n    };\n    e.exports = ma;\n});\n__d(\"TimelineStickyRightColumn\", [\"Arbiter\",\"CSS\",\"DOMQuery\",\"Event\",\"PhotoSnowlift\",\"Run\",\"Style\",\"TimelineContentLoader\",\"Vector\",\"UserAgent\",\"csx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOMQuery\"), j = b(\"Event\"), k = b(\"PhotoSnowlift\"), l = b(\"Run\"), m = b(\"Style\"), n = b(\"TimelineContentLoader\"), o = b(\"Vector\"), p = b(\"UserAgent\"), q = b(\"csx\"), r = b(\"queryThenMutateDOM\"), s = 100, t = 15, u = 15, v = 71, w = false, x = null, y = null, z, aa, ba, ca, da, ea, fa, ga;\n    function ha() {\n        if (k.getInstance().isOpen) {\n            return\n        };\n        z = n.getCurrentSection();\n        if ((!z || !z.rightColumnFinished)) {\n            return\n        };\n        var pa = i.scry(z.node, \"._3rbf\")[0], qa = i.scry(z.node, \"._3rbh\")[0];\n        aa = (pa ? pa.offsetHeight : 0);\n        ba = (qa ? qa.offsetHeight : 0);\n        ca = o.getViewportDimensions().y;\n        fa = (pa ? o.getElementPosition(pa).y : 0);\n        ga = (document.body.clientWidth < document.body.scrollWidth);\n    };\n    function ia() {\n        if (k.getInstance().isOpen) {\n            return\n        };\n        if ((y && (y !== z))) {\n            var pa = i.scry(y.node, \"._3rbh\")[0];\n            if (pa) {\n                ka(pa, \"\", \"\", \"\");\n            };\n        }\n    ;\n        var qa = i.scry(z.node, \"._3rbh\")[0];\n        if (!qa) {\n            return\n        };\n        if (ga) {\n            ka(qa, \"\", \"\", \"\");\n            return;\n        }\n    ;\n        if ((!z || !z.rightColumnFinished)) {\n            return\n        };\n        ja(z);\n        y = (h.hasClass(qa, \"fixed_always\") ? z : null);\n    };\n    function ja(pa) {\n        if (((ba >= aa) || (aa <= ca))) {\n            return\n        };\n        ea = da;\n        da = o.getScrollPosition().y;\n        var qa, ra = i.scry(pa.node, \"._3rbh\")[0];\n        if (!ra) {\n            return\n        };\n        if ((da <= (fa - la()))) {\n            ka(ra, \"\", \"\", \"\");\n            return;\n        }\n    ;\n        if (((aa + fa) <= (da + Math.min((ba + la()), ((ca - u) - v))))) {\n            ka(ra, \"absolute\", \"\", (u + \"px\"));\n            return;\n        }\n    ;\n        if ((ba > ((ca - u) - la()))) {\n            if ((da < ea)) {\n                var sa = false;\n                if ((ra.style.position === \"absolute\")) {\n                    if (((ra.style.top !== \"\") && (((da + la()) - fa) <= parseInt(ra.style.top, 10)))) {\n                        sa = true;\n                    }\n                     else if (((ra.style.bottom !== \"\") && (da <= ((((fa + aa) - la())) - ba)))) {\n                        sa = true;\n                    }\n                \n                };\n                if (sa) {\n                    ka(ra, \"fixed\", (la() + \"px\"), \"\");\n                    return;\n                }\n                 else if (((ra.style.position === \"absolute\") && ra.style.top)) {\n                    return;\n                }\n                 else if (h.hasClass(ra, \"fixed_always\")) {\n                    if ((parseInt(ra.style.top, 10) >= la())) {\n                        return\n                    };\n                    qa = ((da - fa) - ((ba - ((ca - v)))));\n                    if (ea) {\n                        qa += (ea - da);\n                    };\n                    ka(ra, \"absolute\", (qa + \"px\"), \"\");\n                    return;\n                }\n                \n                \n            ;\n            }\n             else {\n                var ta = false;\n                if (((ra.style.position === \"absolute\") || (((ra.style.position === \"\") && !h.hasClass(ra, \"fixed_always\"))))) {\n                    qa = (ra.style.top ? parseInt(ra.style.top, 10) : 0);\n                    if (((da + ca) >= (((fa + qa) + ba) + v))) {\n                        ta = true;\n                    };\n                }\n            ;\n                if (ta) {\n                    qa = (((ca - ba) - u) - v);\n                    ka(ra, \"fixed\", (qa + \"px\"), \"\");\n                    return;\n                }\n                 else if ((da == ea)) {\n                    return;\n                }\n                 else if (h.hasClass(ra, \"fixed_always\")) {\n                    if ((parseInt(ra.style.top, 10) >= la())) {\n                        qa = ((da - fa) + la());\n                        if (ea) {\n                            qa += (ea - da);\n                        };\n                        ka(ra, \"absolute\", (qa + \"px\"), \"\");\n                        return;\n                    }\n                ;\n                }\n                 else if ((ra.style.position === \"absolute\")) {\n                    return\n                }\n                \n                \n            ;\n            }\n        ;\n        }\n         else ka(ra, \"fixed\", (la() + \"px\"), \"\");\n    ;\n    };\n    function ka(pa, qa, ra, sa) {\n        m.set(pa, \"bottom\", sa);\n        if ((qa === \"fixed\")) {\n            h.addClass(pa, \"fixed_always\");\n            m.set(pa, \"position\", \"\");\n        }\n         else {\n            h.removeClass(pa, \"fixed_always\");\n            m.set(pa, \"position\", qa);\n        }\n    ;\n        m.set(pa, \"top\", ra);\n        g.inform(\"reflow\");\n    };\n    function la() {\n        return (h.hasClass(document.documentElement, \"tinyViewport\") ? t : s);\n    };\n    function ma() {\n        r(ha, ia);\n    };\n    function na() {\n        w = false;\n        y = null;\n        while (x.length) {\n            x.pop().remove();;\n        };\n        x = null;\n    };\n    var oa = {\n        init: function() {\n            if ((w || (p.ie() < 8))) {\n                return\n            };\n            w = true;\n            x = [j.listen(window, \"scroll\", ma),j.listen(window, \"resize\", ma),];\n            l.onLeave(na);\n        },\n        adjust: function() {\n            if (w) {\n                ha();\n                ia();\n            }\n        ;\n        }\n    };\n    e.exports = oa;\n});");
36709 // 17923
36710 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sb5aedabafe9890184848a2c0cd28bee9cd1edd94");
36711 // 17924
36712 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"3SGVa\",]);\n}\n;\n;\n__d(\"SubscriptionLevels\", [], function(a, b, c, d, e, f) {\n    var g = {\n        ALL: \"162318810514679\",\n        DEFAULT: \"271670892858696\",\n        TOP: \"266156873403755\"\n    };\n    e.exports = g;\n});\n__d(\"EditSubscriptions\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOM\",\"MenuDeprecated\",\"Parent\",\"SubscriptionLevels\",\"arrayContains\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MenuDeprecated\"), m = b(\"Parent\"), n = b(\"SubscriptionLevels\"), o = b(\"arrayContains\"), p = b(\"cx\"), q = b(\"ge\"), r = 13, s = 45, t = [n.ALL,n.DEFAULT,n.TOP,], u = {\n    }, v = {\n    }, w = {\n    }, x = {\n    }, y = {\n    }, z = {\n    }, aa = {\n    }, ba = {\n    }, ca = {\n    }, da = {\n    }, ea = {\n    }, fa = \"/ajax/follow/follow_profile.php\", ga = \"/ajax/follow/unfollow_profile.php\", ha = \"/ajax/settings/notifications/notify_me.php\", ia = {\n    }, ja = {\n    }, ka = null, la = false;\n    function ma(jb) {\n        return o(t, jb);\n    };\n;\n    function na(jb, kb, lb, mb) {\n        var nb = ((m.byClass(mb, \"uiMenuItem\") || m.byClass(mb, \"_54ni\")));\n        if (((!nb || !k.contains(jb, nb)))) {\n            return;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuSubscribeCheckbox\")) {\n            if (w[kb]) {\n                qa(jb, kb);\n            }\n             else pa(jb, kb);\n        ;\n        ;\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuUnsubscribe\")) {\n            qa(jb, kb);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuSettingsItem\")) {\n            db(jb, true);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscriptionMenuGoBack\")) {\n            db(jb, false);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscriptionMenuItem\")) {\n            oa(jb, kb, lb, nb);\n            return false;\n        }\n         else if (j.hasClass(nb, \"SubscribeMenuNotifyMeCheckbox\")) {\n            if (x[kb]) {\n                hb(jb, kb);\n            }\n             else gb(jb, kb);\n        ;\n        ;\n            return false;\n        }\n        \n        \n        \n        \n        \n        \n    ;\n    ;\n    };\n;\n    function oa(jb, kb, lb, mb) {\n        if (j.hasClass(mb, \"SubscriptionMenuLevel\")) {\n            if (l.isItemChecked(mb)) {\n                return;\n            }\n        ;\n        ;\n            bb(jb, kb, ua(mb), true, lb);\n        }\n         else if (j.hasClass(mb, \"SubscriptionMenuCategory\")) {\n            ya(kb, mb, !l.isItemChecked(mb), true, lb);\n        }\n         else if (j.hasClass(mb, \"SubscriptionAppStory\")) {\n            ab(kb, mb, !l.isItemChecked(mb), lb);\n        }\n        \n        \n    ;\n    ;\n    };\n;\n    function pa(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"FollowingUser\", lb);\n        new i().setURI(fa).setMethod(\"POST\").setData({\n            profile_id: kb,\n            JSBNG__location: ra(jb)\n        }).setErrorHandler(h.inform.curry(\"FollowUserFail\", lb)).send();\n    };\n;\n    function qa(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"UnfollowingUser\", lb);\n        new i().setURI(ga).setMethod(\"POST\").setData({\n            profile_id: kb,\n            JSBNG__location: ra(jb)\n        }).setErrorHandler(h.inform.curry(\"UnfollowUserFail\", lb)).send();\n    };\n;\n    function ra(jb) {\n        if (j.hasClass(jb, \"followButtonFlyout\")) {\n            return r;\n        }\n         else return s\n    ;\n    };\n;\n    function sa(jb, kb, lb) {\n        var mb = {\n            profile_id: jb,\n            level: ba[jb],\n            custom_categories: ca[jb],\n            JSBNG__location: lb\n        };\n        new i().setURI(\"/ajax/follow/manage_subscriptions.php\").setData(mb).send();\n    };\n;\n    function ta(jb, kb) {\n        var lb = ((ca[kb] || [])), mb = l.getItems(jb);\n        mb.forEach(function(nb) {\n            if (j.hasClass(nb, \"SubscriptionMenuCategory\")) {\n                var ob = ua(nb);\n                if (o(lb, ob)) {\n                    wa(nb);\n                }\n                 else xa(nb);\n            ;\n            ;\n            }\n             else if (j.hasClass(nb, \"SubscriptionAppStory\")) {\n                var pb = ua(nb);\n                if (((ja[kb] && ja[kb][pb]))) {\n                    wa(nb);\n                }\n                 else xa(nb);\n            ;\n            ;\n            }\n            \n        ;\n        ;\n        });\n        bb(jb, kb, ba[kb], false);\n    };\n;\n    function ua(jb) {\n        var kb = k.scry(jb, \"input\")[0];\n        return ((kb && kb.value));\n    };\n;\n    function va(jb) {\n        return k.JSBNG__find(jb, \"a.itemAnchor\");\n    };\n;\n    function wa(jb) {\n        j.addClass(jb, \"checked\");\n        va(jb).setAttribute(\"aria-checked\", true);\n    };\n;\n    function xa(jb) {\n        j.removeClass(jb, \"checked\");\n        va(jb).setAttribute(\"aria-checked\", false);\n    };\n;\n    function ya(jb, kb, lb, mb, nb) {\n        if (lb) {\n            wa(kb);\n        }\n         else xa(kb);\n    ;\n    ;\n        var ob = ua(kb);\n        if (ma(ob)) {\n            ((lb && za(jb, ob)));\n        }\n         else if (lb) {\n            if (!o(ca[jb], ob)) {\n                ca[jb].push(ob);\n            }\n        ;\n        ;\n        }\n         else {\n            var pb = ca[jb].indexOf(ob);\n            if (((pb !== -1))) {\n                ca[jb].splice(pb, 1);\n            }\n        ;\n        ;\n        }\n        \n    ;\n    ;\n        if (mb) {\n            sa(jb, ob, nb);\n        }\n    ;\n    ;\n    };\n;\n    function za(jb, kb) {\n        ba[jb] = kb;\n        h.inform(\"SubscriptionLevelUpdated\", {\n            profile_id: jb,\n            level: kb\n        });\n    };\n;\n    function ab(jb, kb, lb, mb) {\n        var nb = \"/ajax/feed/filter_action/\", ob = ua(kb), pb = {\n            actor_id: jb,\n            app_id: ob\n        };\n        if (lb) {\n            wa(kb);\n            nb += \"resubscribe_user_app/\";\n            pb.action = \"resubscribe_user_app\";\n            if (!ja[jb]) {\n                ja[jb] = {\n                };\n            }\n        ;\n        ;\n            ja[jb][ob] = true;\n        }\n         else {\n            xa(kb);\n            nb += \"unsubscribe_user_app_checkbox/\";\n            pb.action = \"unsubscribe_user_app_checkbox\";\n            if (ja[jb]) {\n                ja[jb][ob] = false;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        new i().setURI(nb).setData(pb).send();\n    };\n;\n    function bb(jb, kb, lb, mb, nb) {\n        var ob = k.scry(jb, \".SubscriptionMenuLevel\"), pb = null;\n        ob.forEach(function(qb) {\n            if (((ua(qb) == lb))) {\n                pb = qb;\n            }\n             else if (l.isItemChecked(qb)) {\n                ya(kb, qb, false, false);\n            }\n            \n        ;\n        ;\n        });\n        ((pb && ya(kb, pb, true, mb, nb)));\n    };\n;\n    function cb(jb, kb, lb) {\n        w[kb] = lb;\n        j.conditionClass(jb, \"isUnsubscribed\", !lb);\n        var mb = k.scry(jb, \"li.SubscribeMenuSubscribeCheckbox\");\n        if (((mb.length !== 0))) {\n            var nb = mb[0];\n            if (lb) {\n                wa(nb);\n            }\n             else xa(nb);\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function db(jb, kb) {\n        j.conditionClass(jb, \"subscriptionMenuOpen\", kb);\n    };\n;\n    function eb(jb, kb, lb) {\n        var mb = k.JSBNG__find(jb, \".FriendListSubscriptionsMenu\"), nb = k.JSBNG__find(mb, \".uiMenuInner\");\n        if (((ka != null))) {\n            ka.forEach(function(ob) {\n                nb.removeChild(ob);\n            });\n        }\n    ;\n    ;\n        lb.forEach(function(ob) {\n            nb.appendChild(ob);\n        });\n        ka = lb;\n    };\n;\n    h.subscribe(\"UnfollowUser\", function(jb, kb) {\n        if (da[kb.profile_id]) {\n            za(kb.profile_id, da[kb.profile_id]);\n            ca[kb.profile_id] = ea[kb.profile_id].slice();\n        }\n    ;\n    ;\n    });\n    h.subscribe(\"UpdateSubscriptionLevel\", function(jb, kb) {\n        var lb = ((kb.profile_id + \"\")), mb = ((kb.level + \"\"));\n        za(lb, mb);\n        var nb;\n        {\n            var fin270keys = ((window.top.JSBNG_Replay.forInKeys)((u))), fin270i = (0);\n            (0);\n            for (; (fin270i < fin270keys.length); (fin270i++)) {\n                ((nb) = (fin270keys[fin270i]));\n                {\n                    if (((u[nb] === lb))) {\n                        var ob = q(nb);\n                        ((ob && bb(ob, lb, mb, false)));\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    });\n    function fb(jb, kb, lb) {\n        x[kb] = lb;\n        var mb = ((z[kb] && !la)), nb = k.scry(jb, \"li.SubscribeMenuNotifyMeCheckbox\");\n        if (((nb.length !== 0))) {\n            var ob = nb[0];\n            j.conditionShow(ob, !mb);\n            j.conditionShow(k.JSBNG__find(jb, \"li.SubscribeMenuNotifyMeCheckboxSeparator\"), !mb);\n            if (lb) {\n                wa(ob);\n            }\n             else xa(ob);\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function gb(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"EnableNotifsForUser\", lb);\n        new i().setURI(ha).setMethod(\"POST\").setData({\n            notifier_id: kb,\n            enable: true\n        }).setErrorHandler(h.inform.curry(\"EnableNotifsForUserFail\", lb)).send();\n    };\n;\n    function hb(jb, kb) {\n        var lb = {\n            profile_id: kb\n        };\n        h.inform(\"DisableNotifsForUser\", lb);\n        new i().setURI(ha).setMethod(\"POST\").setData({\n            notifier_id: kb,\n            enable: false\n        }).setErrorHandler(h.inform.curry(\"DisableNotifsForUserFail\", lb)).send();\n    };\n;\n    var ib = {\n        init: function(jb, kb, lb) {\n            var mb = k.getID(jb);\n            if (!u[mb]) {\n                g.listen(jb, \"click\", function(nb) {\n                    return na(jb, u[mb], lb, nb.getTarget());\n                });\n            }\n        ;\n        ;\n            if (((((lb === s)) && ia[kb].length))) {\n                eb(jb, kb, ia[kb]);\n            }\n        ;\n        ;\n            if (ba[kb]) {\n                ta(jb, kb);\n            }\n        ;\n        ;\n            u[mb] = kb;\n            j.conditionClass(jb, \"NonFriendSubscriptionMenu\", !v[kb]);\n            j.conditionClass(jb, \"cannotSubscribe\", !y[kb]);\n            j.conditionClass(jb, \"noSubscriptionLevels\", ((z[kb] && !aa[kb])));\n            j.conditionClass(jb, \"noSubscribeCheckbox\", ((!v[kb] && !z[kb])));\n            cb(jb, kb, w[kb]);\n            fb(jb, kb, x[kb]);\n            h.subscribe([\"FollowUser\",\"FollowingUser\",\"UnfollowUserFail\",], function(nb, ob) {\n                cb(jb, kb, true);\n            }.bind(this));\n            h.subscribe([\"UnfollowUser\",\"UnfollowingUser\",\"FollowUserFail\",], function(nb, ob) {\n                h.inform(\"SubMenu/Reset\");\n                cb(jb, kb, false);\n            }.bind(this));\n            h.subscribe([\"EnableNotifsForUser\",\"DisableNotifsForUserFail\",], function(nb, ob) {\n                fb(jb, kb, true);\n            }.bind(this));\n            h.subscribe([\"DisableNotifsForUser\",\"EnableNotifsForUserFail\",], function(nb, ob) {\n                fb(jb, kb, false);\n            }.bind(this));\n            h.subscribe(\"listeditor/friend_lists_changed\", function(nb, ob) {\n                if (ob.notify_state) {\n                    var pb = ((ob.added_uid ? ob.added_uid : ob.removed_uid));\n                    fb(jb, pb, ob.notify_state.is_notified);\n                }\n            ;\n            ;\n            }.bind(this));\n            db(jb, false);\n        },\n        getSubscriptions: function(jb) {\n            return {\n                level: ba[jb],\n                custom_categories: ca[jb]\n            };\n        },\n        setSubscriptions: function(jb, kb, lb, mb, nb, ob, pb, qb, rb, sb, tb, ub, vb) {\n            za(jb, ((pb + \"\")));\n            v[jb] = kb;\n            w[jb] = lb;\n            y[jb] = mb;\n            z[jb] = nb;\n            aa[jb] = ob;\n            da[jb] = ((rb + \"\"));\n            ca[jb] = qb.map(String);\n            ea[jb] = sb.map(String);\n            ia[jb] = vb;\n            x[jb] = tb;\n            la = ub;\n        }\n    };\n    e.exports = ((a.EditSubscriptions || ib));\n});\n__d(\"DynamicFriendListEducation\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"Dialog\",\"PageTransitions\",\"arrayContains\",\"createArrayFrom\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Dialog\"), k = b(\"PageTransitions\"), l = b(\"arrayContains\"), m = b(\"createArrayFrom\"), n = b(\"removeFromArray\"), o, p, q, r, s, t;\n    function u() {\n        ((q && q.hide()));\n        ((r && r.hide()));\n    };\n;\n    function v(y) {\n        n(p, y);\n        u();\n        s({\n            accept_tag_education: true\n        });\n    };\n;\n    function w() {\n        u();\n        s({\n            nux_cancel: true\n        });\n    };\n;\n    var x = {\n        init: function(y, z) {\n            o = y;\n            p = m(z).map(String);\n            k.registerHandler(function() {\n                u();\n                o = false;\n                s = undefined;\n                p = [];\n            });\n        },\n        showDialog: function(y, z, aa) {\n            if (((o && l(p, y)))) {\n                u();\n                h.inform(\"DynamicFriendListEducation/dialogOpen\", {\n                    uid: z,\n                    flid: y\n                });\n                s = aa;\n                q = new j().setAsync(new i(\"/ajax/friends/lists/smart_list_education.php\").setMethod(\"GET\").setData({\n                    flid: y,\n                    uid: z\n                }).setReadOnly(true)).setHandler(v.bind(this, y)).setCloseHandler(function() {\n                    h.inform(\"DynamicFriendListEducation/dialogClosed\", {\n                        uid: z,\n                        flid: y\n                    });\n                }).setCancelHandler(function() {\n                    h.inform(\"DynamicFriendListEducation/dialogCancel\", {\n                        uid: z,\n                        flid: y\n                    });\n                }).show();\n            }\n             else aa();\n        ;\n        ;\n        },\n        showContextualDialog: function(y, z, aa, ba) {\n            if (((o && l(p, y)))) {\n                u();\n                t = aa;\n                s = ba;\n                new i(\"/ajax/friends/lists/smart_list_contextual_education.php\").setMethod(\"GET\").setData({\n                    flid: y,\n                    uid: z\n                }).setReadOnly(true).send();\n            }\n             else ba();\n        ;\n        ;\n        },\n        setContextualDialog: function(y, z, aa, ba) {\n            r = y;\n            r.setContext(t);\n            r.show();\n            g.listen(z, \"click\", v.bind(this, ba));\n            g.listen(aa, \"click\", w);\n        }\n    };\n    e.exports = x;\n});\n__d(\"FriendStatus\", [\"function-extensions\",\"Arbiter\",\"AsyncRequest\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",\"eachKeyVal\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\"), l = b(\"eachKeyVal\");\n    function m(q, r, s) {\n        this.id = q;\n        this.update(r, s);\n    };\n;\n    j(m.prototype, {\n        update: function(q, r) {\n            ((q && (this.JSBNG__status = q)));\n            if (r) {\n                this.lists = k(r).map(String);\n                this._informListChange();\n            }\n        ;\n        ;\n        },\n        isComplete: function() {\n            return !!this.lists;\n        },\n        addToList: function(q) {\n            if (((this.lists && !i(this.lists, q)))) {\n                this.lists.push(q);\n            }\n        ;\n        ;\n            this._informListChange();\n        },\n        removeFromList: function(q) {\n            if (this.lists) {\n                var r = this.lists.indexOf(q);\n                ((((r !== -1)) && this.lists.splice(r, 1)));\n            }\n        ;\n        ;\n            this._informListChange();\n        },\n        updateList: function(q, r) {\n            ((r ? this.addToList(q) : this.removeFromList(q)));\n        },\n        _informListChange: function() {\n            g.inform(\"FriendListMembershipChange\", {\n                uid: this.id,\n                lists: this.lists\n            });\n        }\n    });\n    j(m, {\n        ARE_FRIENDS: 1,\n        INCOMING_REQUEST: 2,\n        OUTGOING_REQUEST: 3,\n        CAN_REQUEST: 4\n    });\n    var n = {\n    }, o = {\n    };\n    function p(q, r, s) {\n        if (!n[s.uid]) {\n            n[s.uid] = new m(s.uid, q);\n        }\n         else n[s.uid].update(q);\n    ;\n    ;\n        g.inform(\"FriendRequest/change\", {\n            uid: s.uid,\n            JSBNG__status: q\n        });\n    };\n;\n    g.subscribe([\"FriendRequest/cancel\",\"FriendRequest/unfriend\",\"FriendRequest/sendFail\",], p.curry(m.CAN_REQUEST));\n    g.subscribe([\"FriendRequest/confirmFail\",], p.curry(m.INCOMING_REQUEST));\n    g.subscribe([\"FriendRequest/cancelFail\",\"FriendRequest/sent\",\"FriendRequest/sending\",], p.curry(m.OUTGOING_REQUEST));\n    g.subscribe([\"FriendRequest/confirm\",\"FriendRequest/confirming\",], p.curry(m.ARE_FRIENDS));\n    j(m, {\n        CLOSE_FRIENDS: null,\n        ACQUAINTANCES: null,\n        getFriend: function(q, r) {\n            if (((n[q] && n[q].isComplete()))) {\n                r(n[q]);\n            }\n             else if (o[q]) {\n                o[q].push(r);\n            }\n             else {\n                o[q] = [r,];\n                new h().setURI(\"/ajax/friends/status.php\").setData({\n                    friend: q\n                }).setHandler(function(s) {\n                    var t = s.getPayload();\n                    m.initFriend.bind(m, q, t.JSBNG__status, t.lists).defer();\n                }).send();\n            }\n            \n        ;\n        ;\n        },\n        initFriend: function(q, r, s) {\n            var t = ((n[q] || new m(q)));\n            t.update(((t.JSBNG__status || r)), ((t.lists || s)));\n            n[q] = t;\n            ((o[q] && o[q].forEach(function(u) {\n                u(t);\n            })));\n            o[q] = null;\n        },\n        setSpecialLists: function(q) {\n            var r = ((m.CLOSE_FRIENDS === null));\n            m.CLOSE_FRIENDS = ((q.close + \"\"));\n            m.ACQUAINTANCES = ((q.acq + \"\"));\n            if (r) {\n                l(n, function(s, t) {\n                    t._informListChange();\n                });\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = m;\n});\n__d(\"FriendEditLists\", [\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOMQuery\",\"DynamicFriendListEducation\",\"EditSubscriptions\",\"FriendStatus\",\"MenuDeprecated\",\"Parent\",\"ScrollableArea\",\"URI\",\"$\",\"arrayContains\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"DynamicFriendListEducation\"), l = b(\"EditSubscriptions\"), m = b(\"FriendStatus\"), n = b(\"MenuDeprecated\"), o = b(\"Parent\"), p = b(\"ScrollableArea\"), q = b(\"URI\"), r = b(\"$\"), s = b(\"arrayContains\"), t = b(\"copyProperties\"), u = b(\"ge\"), v = 5, w = {\n    }, x = \"/ajax/profile/removefriendconfirm.php\", y = \"/ajax/friends/requests/cancel.php\", z = \"/ajax/choose/\", aa = \"/profile.php\", ba = \"/ajax/report/social.php\", ca, da;\n    function ea(pa, qa, ra) {\n        var sa = w[pa.id], ta = function(ua) {\n            var va = {\n                action: ((ra ? \"add_list\" : \"del_list\")),\n                to_friend: sa.id,\n                friendlists: [qa,],\n                source: ca\n            };\n            if (ua) {\n                t(va, ua);\n            }\n        ;\n        ;\n            sa.updateList(qa, ra);\n            var wa;\n            if (((ra && ((qa == m.CLOSE_FRIENDS))))) {\n                wa = ha(pa, m.ACQUAINTANCES);\n                if (n.isItemChecked(wa)) {\n                    n.toggleItem(wa);\n                    ea(pa, m.ACQUAINTANCES, false);\n                }\n            ;\n            ;\n            }\n             else if (((ra && ((qa == m.ACQUAINTANCES))))) {\n                wa = ha(pa, m.CLOSE_FRIENDS);\n                if (n.isItemChecked(wa)) {\n                    n.toggleItem(wa);\n                    ea(pa, m.CLOSE_FRIENDS, false);\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            var xa = {\n                flid: qa,\n                uid: sa.id\n            }, ya = ((ra ? \"FriendListHovercard/add\" : \"FriendListHovercard/remove\"));\n            g.inform(ya, xa);\n            new h().setURI(\"/ajax/add_friend/action.php\").setData(va).send();\n        };\n        if (ra) {\n            k.showDialog(qa, sa.id, ta);\n        }\n         else ta();\n    ;\n    ;\n    };\n;\n    function fa(pa) {\n        var qa = j.scry(pa, \"input\")[0];\n        return ((qa && qa.value));\n    };\n;\n    function ga(pa, qa, ra) {\n        var sa = {\n            uid: qa.id\n        };\n        new h().setURI(y).setMethod(\"POST\").setData({\n            friend: qa.id\n        }).setHandler(g.inform.bind(g, \"FriendRequest/cancel\", sa)).setErrorHandler(g.inform.bind(g, \"FriendRequest/cancelFail\", sa)).setStatusElement(ra).send();\n    };\n;\n    function ha(pa, qa) {\n        var ra = n.getItems(pa);\n        for (var sa = 0; ((sa < ra.length)); sa++) {\n            if (((fa(ra[sa]) == qa))) {\n                return ra[sa];\n            }\n        ;\n        ;\n        };\n    ;\n        return null;\n    };\n;\n    function ia(pa, qa) {\n        var ra = n.getItems(pa);\n        ra.forEach(function(sa) {\n            var ta = fa(sa), ua = s(qa.lists, ta);\n            if (((n.isItemChecked(sa) !== ua))) {\n                n.toggleItem(sa);\n            }\n        ;\n        ;\n        });\n    };\n;\n    function ja(pa) {\n        var qa = n.getItems(pa), ra = ((!i.hasClass(pa, \"followButtonFlyout\") && !i.hasClass(pa, \"likeButtonFlyout\"))), sa = [], ta = [], ua = 0, va = 0;\n        qa.forEach(function(ab) {\n            if (i.hasClass(ab, \"neverHide\")) {\n                i.removeClass(ab, \"underShowMore\");\n                ua++;\n            }\n             else if (n.isItemChecked(ab)) {\n                sa.push(ab);\n            }\n             else if (((((i.hasClass(ab, \"neverShow\") || i.hasClass(ab, \"FriendListCreateTrigger\"))) || ((!ra && i.hasClass(ab, \"friendOptionsOnly\")))))) {\n                i.addClass(ab, \"underShowMore\");\n                va++;\n            }\n             else ta.push(ab);\n            \n            \n        ;\n        ;\n        });\n        var wa = ((v - ua)), xa = sa.concat(ta), ya = va;\n        xa.forEach(function(ab) {\n            if (i.hasClass(ab, \"ShowMoreItem\")) {\n                wa--;\n                return;\n            }\n        ;\n        ;\n            if (wa) {\n                i.removeClass(ab, \"underShowMore\");\n                wa--;\n            }\n             else {\n                i.addClass(ab, \"underShowMore\");\n                ya = true;\n            }\n        ;\n        ;\n        });\n        i.conditionClass(pa, \"hasMoreFriendListItems\", ya);\n        var za = j.scry(pa, \".FriendListMenuShowMore\");\n        za.forEach(function(ab) {\n            i.removeClass(ab, \"FriendListMenuShowMore\");\n        });\n    };\n;\n    function ka(pa, qa) {\n        i.conditionClass(pa, \"FriendListMemorializedUser\", qa);\n    };\n;\n    function la(pa, qa) {\n        i.conditionClass(pa, \"FriendListCannotSuggestFriends\", !qa);\n    };\n;\n    function ma(pa, qa) {\n        var ra = j.scry(pa, \".FriendListUnfriend\")[0], sa = j.scry(pa, \".FriendListCancel\")[0], ta = j.scry(pa, \".FriendListSuggestFriends\")[0], ua = j.scry(pa, \".FriendListFriendship\")[0], va = j.scry(pa, \".FriendListReportBlock\")[0];\n        if (sa) {\n            i.conditionShow(sa, ((qa.JSBNG__status == m.OUTGOING_REQUEST)));\n        }\n    ;\n    ;\n        if (ra) {\n            i.conditionShow(ra, ((qa.JSBNG__status == m.ARE_FRIENDS)));\n            var wa = j.JSBNG__find(ra, \"a\");\n            wa.setAttribute(\"ajaxify\", q(x).addQueryData({\n                uid: qa.id,\n                unref: da\n            }).toString());\n        }\n         else i.conditionClass(pa, \"NoFriendListActionSeparator\", ((!sa || ((qa.JSBNG__status != m.OUTGOING_REQUEST)))));\n    ;\n    ;\n        if (ta) {\n            j.JSBNG__find(ta, \"a\").setAttribute(\"href\", q(z).addQueryData({\n                type: \"suggest_friends\",\n                newcomer: qa.id,\n                ref: \"profile_others_dropdown\"\n            }).toString());\n        }\n    ;\n    ;\n        if (ua) {\n            i.conditionShow(ua, ((qa.JSBNG__status == m.ARE_FRIENDS)));\n            j.JSBNG__find(ua, \"a\").setAttribute(\"href\", q(aa).addQueryData({\n                and: qa.id\n            }).toString());\n        }\n    ;\n    ;\n        if (va) {\n            j.JSBNG__find(va, \"a\").setAttribute(\"ajaxify\", q(ba).addQueryData({\n                content_type: 0,\n                cid: qa.id,\n                rid: qa.id\n            }).toString());\n        }\n    ;\n    ;\n    };\n;\n    function na(pa, qa) {\n        var ra = j.scry(pa, \"div.FriendListSubscriptionsMenu\");\n        if (((ra.length !== 0))) {\n            l.init(pa, qa, 45);\n        }\n    ;\n    ;\n    };\n;\n    g.subscribe(\"FriendRequest/change\", function(pa, qa) {\n        {\n            var fin271keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin271i = (0);\n            var ra;\n            for (; (fin271i < fin271keys.length); (fin271i++)) {\n                ((ra) = (fin271keys[fin271i]));\n                {\n                    var sa = u(ra), ta = w[ra];\n                    if (((((sa && ta)) && ((ta.id == qa.uid))))) {\n                        ia(sa, ta);\n                        ma(sa, ta);\n                        ja(sa);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n    });\n    n.subscribe(\"select\", function(pa, qa) {\n        if (((i.hasClass(qa.item, \"ShowMoreItem\") && i.hasClass(qa.menu, \"FriendListMenu\")))) {\n            i.addClass(qa.menu, \"FriendListMenuShowMore\");\n            p.poke(qa.item);\n        }\n    ;\n    ;\n    });\n    var oa = {\n        init: function(pa, qa, ra, sa, ta, ua) {\n            pa = r(pa);\n            ca = ra;\n            da = ua;\n            if (!w[pa.id]) {\n                n.subscribe(\"select\", function(va, wa) {\n                    if (j.contains(pa, wa.item)) {\n                        if (o.byClass(wa.item, \"FriendListItem\")) {\n                            n.toggleItem(wa.item);\n                            var xa = fa(wa.item);\n                            ea(pa, xa, n.isItemChecked(wa.item));\n                        }\n                         else if (o.byClass(wa.item, \"FriendListCancel\")) {\n                            ga(pa, w[pa.id], wa.item);\n                        }\n                         else if (o.byClass(wa.item, \"FriendListUnfriend\")) {\n                            g.inform(\"FriendEditLists/unfriend\");\n                        }\n                        \n                        \n                    ;\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n            i.addClass(pa, \"async_saving\");\n            m.getFriend(qa, function(va) {\n                ka(pa, sa);\n                la(pa, ta);\n                ia(pa, va);\n                ma(pa, va);\n                w[pa.id] = va;\n                ja(pa);\n                na(pa, qa);\n                i.removeClass(pa, \"async_saving\");\n            }.bind(this));\n        }\n    };\n    e.exports = ((a.FriendEditLists || oa));\n});\n__d(\"FriendListFlyoutController\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"Button\",\"ContextualLayer\",\"CSS\",\"DataStore\",\"Dialog\",\"DOM\",\"DOMQuery\",\"FriendEditLists\",\"FriendStatus\",\"Keys\",\"Layer\",\"LayerHideOnEscape\",\"LayerTabIsolation\",\"MenuDeprecated\",\"Parent\",\"ScrollableArea\",\"Style\",\"TabbableElements\",\"UserAgent\",\"cx\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Button\"), k = b(\"ContextualLayer\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"Dialog\"), o = b(\"DOM\"), p = b(\"DOMQuery\"), q = b(\"FriendEditLists\"), r = b(\"FriendStatus\"), s = b(\"Keys\"), t = b(\"Layer\"), u = b(\"LayerHideOnEscape\"), v = b(\"LayerTabIsolation\"), w = b(\"MenuDeprecated\"), x = b(\"Parent\"), y = b(\"ScrollableArea\"), z = b(\"Style\"), aa = b(\"TabbableElements\"), ba = b(\"UserAgent\"), ca = b(\"cx\"), da = b(\"emptyFunction\"), ea, fa, ga = null, ha = null, ia, ja, ka, la, ma, na, oa = 1500, pa, qa = [\"uiButtonConfirm\",\"uiButtonSpecial\",\"_42gz\",\"_42g-\",\"_4jy2\",\"_51tl\",\"_4jy1\",], ra = {\n        init: function(tb, ub) {\n            ra.init = da;\n            ea = tb;\n            ea.subscribe(\"mouseenter\", ab);\n            ea.subscribe(\"mouseleave\", ob);\n            ea.subscribe(\"hide\", cb);\n            ea.enableBehavior(v);\n            ea.enableBehavior(u);\n            pa = ub;\n            if (ga) {\n                o.setContent(ea.getContent(), [ga,ha,]);\n            }\n        ;\n        ;\n            var vb = function(wb) {\n                var xb = x.byClass(wb.getTarget(), \"enableFriendListFlyout\");\n                if (xb) {\n                    if (((ia === xb))) {\n                        JSBNG__clearTimeout(la);\n                    }\n                     else {\n                        ((fa && qb()));\n                        nb(xb);\n                    }\n                ;\n                }\n            ;\n            ;\n            };\n            g.listen(JSBNG__document.documentElement, {\n                mouseover: vb,\n                click: vb,\n                keydown: function(JSBNG__event) {\n                    var wb = JSBNG__event.getTarget();\n                    if (JSBNG__event.getModifiers().any) {\n                        return;\n                    }\n                ;\n                ;\n                    if (((!fa || p.isNodeOfType(wb, [\"input\",\"textarea\",])))) {\n                        return;\n                    }\n                ;\n                ;\n                    var xb = g.getKeyCode(JSBNG__event), yb;\n                    switch (xb) {\n                      case s.UP:\n                    \n                      case s.DOWN:\n                        var zb = za();\n                        yb = xa(zb);\n                        va(zb[((yb + ((((xb === s.UP)) ? -1 : 1))))]);\n                        return false;\n                      case s.SPACE:\n                        var ac = wa(wb);\n                        if (ac) {\n                            sa(ac);\n                            JSBNG__event.prevent();\n                        }\n                    ;\n                    ;\n                        break;\n                      default:\n                        var bc = String.fromCharCode(xb).toLowerCase(), cc = za();\n                        yb = xa(cc);\n                        var dc = yb, ec = cc.length;\n                        while (((((~yb && (((dc = ((++dc % ec))) !== yb)))) || ((!~yb && ((++dc < ec))))))) {\n                            var fc = w.getItemLabel(cc[dc]);\n                            if (((fc && ((fc.charAt(0).toLowerCase() === bc))))) {\n                                va(cc[dc]);\n                                return false;\n                            }\n                        ;\n                        ;\n                        };\n                    ;\n                    };\n                ;\n                }\n            });\n            h.subscribe(\"FriendEditLists/unfriend\", qb);\n            h.subscribe(\"DynamicFriendListEducation/dialogOpen\", function() {\n                na = true;\n            });\n            h.subscribe(\"DynamicFriendListEducation/dialogClosed\", function() {\n                na = false;\n                ob();\n            });\n        },\n        initContent: function(tb) {\n            o.appendContent(JSBNG__document.body, tb);\n            db(tb);\n            (function() {\n                if (!ga) {\n                    ga = tb;\n                    ((ea && o.setContent(ea.getContent(), [ga,ha,])));\n                    l.show(ga);\n                    g.listen(ga, \"click\", rb);\n                    ((fa && kb(ia)));\n                }\n                 else {\n                    o.remove(tb);\n                    tb = null;\n                }\n            ;\n            ;\n            }).defer();\n        },\n        initNux: function(tb) {\n            if (ha) {\n                return;\n            }\n        ;\n        ;\n            ha = tb;\n            ((ea && o.setContent(ea.getContent(), [ga,ha,])));\n        },\n        show: function(tb) {\n            lb(tb);\n        },\n        hide: function(tb) {\n            ((((tb === false)) ? qb() : ob()));\n        },\n        setActiveNode: function(tb) {\n            ((fa && qb()));\n            ia = tb;\n            ja = g.listen(tb, \"mouseleave\", function() {\n                ia = null;\n                ((ja && ja.remove()));\n            });\n        },\n        setCloseListener: function(tb, ub) {\n            m.set(tb, \"flfcloselistener\", ub);\n            if (((ia != tb))) {\n                m.set(tb, \"flfcloselistenertimeout\", sb.curry(tb).defer(oa));\n            }\n        ;\n        ;\n        },\n        setCloseListenerTimeout: function(tb) {\n            oa = tb;\n        }\n    };\n    function sa(tb) {\n        ((ba.firefox() && ua(tb).JSBNG__blur()));\n        w.inform(\"select\", {\n            menu: ta(tb),\n            item: tb\n        });\n    };\n;\n    function ta(tb) {\n        if (l.hasClass(tb, \"uiMenuContainer\")) {\n            return tb;\n        }\n    ;\n    ;\n        return x.byClass(tb, \"uiMenu\");\n    };\n;\n    function ua(tb) {\n        return p.JSBNG__find(tb, \"a.itemAnchor\");\n    };\n;\n    function va(tb) {\n        if (((tb && ya(tb)))) {\n            w._removeSelected(ea.getContent());\n            l.addClass(tb, \"selected\");\n            ua(tb).JSBNG__focus();\n        }\n    ;\n    ;\n    };\n;\n    function wa(tb) {\n        return x.byClass(tb, \"uiMenuItem\");\n    };\n;\n    function xa(tb) {\n        if (JSBNG__document.activeElement) {\n            var ub = wa(JSBNG__document.activeElement);\n            return tb.indexOf(ub);\n        }\n    ;\n    ;\n        return -1;\n    };\n;\n    function ya(tb) {\n        return ((((!l.hasClass(tb, \"disabled\") && ((z.get(tb, \"display\") !== \"none\")))) && ((z.get(x.byClass(tb, \"uiMenu\"), \"display\") !== \"none\"))));\n    };\n;\n    function za() {\n        return w.getItems(ea.getContent()).filter(ya);\n    };\n;\n    function ab() {\n        JSBNG__clearTimeout(la);\n    };\n;\n    function bb(tb) {\n        for (var ub = 0; ((ub < qa.length)); ub++) {\n            if (l.hasClass(tb, qa[ub])) {\n                return false;\n            }\n        ;\n        ;\n        };\n    ;\n        return true;\n    };\n;\n    function cb() {\n        if (ia) {\n            if (bb(ia)) {\n                l.removeClass(ia, \"_52nd\");\n                if (((l.hasClass(ia, \"uiButton\") || l.hasClass(ia, \"_42fu\")))) {\n                    l.removeClass(ia, \"selected\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (m.get(ia, \"flfcloselistener\")) {\n                var tb = ia;\n                m.set(ia, \"flfcloselistenertimeout\", sb.curry(tb).defer(oa));\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        fa = false;\n        jb();\n        ia = null;\n    };\n;\n    function db(tb) {\n        var ub = p.scry(tb, \"[tabindex=\\\"0\\\"]\");\n        ub.forEach(function(vb) {\n            vb.tabIndex = \"-1\";\n        });\n        ((ub[0] && (ub[0].tabIndex = \"0\")));\n    };\n;\n    function eb(tb) {\n        if (((p.isNodeOfType(tb, \"label\") && l.hasClass(tb, \"uiButton\")))) {\n            tb = j.getInputElement(tb);\n        }\n    ;\n    ;\n        return tb;\n    };\n;\n    function fb(tb) {\n        return m.get(eb(tb), \"profileid\");\n    };\n;\n    function gb(tb) {\n        return ((m.get(eb(tb), \"memorialized\") === \"true\"));\n    };\n;\n    function hb(tb) {\n        return ((m.get(eb(tb), \"cansuggestfriends\") === \"true\"));\n    };\n;\n    function ib(tb) {\n        return m.get(eb(tb), \"unref\");\n    };\n;\n    function jb() {\n        ((ja && ja.remove()));\n        ja = null;\n        ((ma && t.unsubscribe(ma)));\n        ma = null;\n        ((la && JSBNG__clearTimeout(la)));\n        la = null;\n    };\n;\n    function kb(tb) {\n        var ub = fb(tb), vb = gb(tb), wb = hb(tb), xb = m.get(tb, \"flloc\"), yb = ib(tb);\n        q.init(ga, ub, xb, vb, wb, yb);\n        l.conditionClass(ga, \"followButtonFlyout\", l.hasClass(tb, \"profileFollowButton\"));\n        l.conditionClass(ga, \"friendButtonFlyout\", ((((l.hasClass(tb, \"FriendRequestFriends\") || l.hasClass(tb, \"FriendRequestIncoming\"))) || l.hasClass(tb, \"FriendRequestOutgoing\"))));\n        l.conditionClass(ga, \"likeButtonFlyout\", l.hasClass(tb, \"profileLikeButton\"));\n        var zb = p.scry(ga, \"div.uiScrollableArea\")[0];\n        ((zb && y.poke(zb)));\n        var ac = aa.JSBNG__find(ga)[0];\n        ((ac && ac.JSBNG__focus()));\n    };\n;\n    function lb(tb) {\n        if (((!ea || fa))) {\n            return;\n        }\n    ;\n    ;\n        ea.setContext(tb);\n        ea.setCausalElement(tb);\n        tb.setAttribute(\"aria-expanded\", \"true\");\n        if (bb(tb)) {\n            l.addClass(tb, \"_52nd\");\n            if (((l.hasClass(tb, \"uiButton\") || l.hasClass(tb, \"_42fu\")))) {\n                l.addClass(tb, \"selected\");\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        ea.show();\n        ia = tb;\n        fa = true;\n        var ub = null;\n        if (ga) {\n            ub = \"show\";\n            kb(tb);\n        }\n         else {\n            ub = \"init_show\";\n            new i().setURI(\"/ajax/friends/lists/flyout_content.php\").setStatusElement(ea.getContent()).send();\n        }\n    ;\n    ;\n        jb();\n        ja = g.listen(tb, \"mouseleave\", ob);\n        ma = t.subscribe(\"show\", mb);\n        if (m.get(tb, \"flfcloselistener\")) {\n            JSBNG__clearTimeout(m.remove(tb, \"flfcloselistenertimeout\"));\n        }\n    ;\n    ;\n        var vb = fb(tb);\n        r.getFriend(vb, function(wb) {\n            if (((wb.JSBNG__status == r.ARE_FRIENDS))) {\n                new i().setURI(\"/ajax/friends/lists/flyout_log.php\").setData({\n                    target_id: fb(tb),\n                    unref: ib(tb),\n                    action: ub\n                }).send();\n            }\n        ;\n        ;\n            if (!ha) {\n                return;\n            }\n        ;\n        ;\n            if (((wb.JSBNG__status == r.OUTGOING_REQUEST))) {\n                l.show(ha);\n                i.bootstrap(\"/ajax/friends/lists/nux_flyout.php\", null, true);\n            }\n             else l.hide(ha);\n        ;\n        ;\n        });\n    };\n;\n    function mb(tb, ub) {\n        if (((!((ub instanceof k)) || !p.contains(ia, ub.getContext())))) {\n            ob();\n        }\n    ;\n    ;\n    };\n;\n    function nb(tb) {\n        ia = tb;\n        ka = lb.curry(tb).defer(pa);\n        ja = g.listen(tb, \"mouseleave\", function() {\n            JSBNG__clearTimeout(ka);\n            ia = null;\n            ((ja && ja.remove()));\n        });\n    };\n;\n    function ob() {\n        la = qb.defer(150);\n    };\n;\n    function pb() {\n        var tb = n.getCurrent(), ub = ((tb && tb.getBody()));\n        return !!((ub && p.scry(ub, \".friendListDialogTourCarousel\")[0]));\n    };\n;\n    function qb() {\n        if (((na || pb()))) {\n            return;\n        }\n    ;\n    ;\n        ((((ba.ie() < 8)) && JSBNG__document.documentElement.JSBNG__focus()));\n        if (ea) {\n            ea.hide();\n            var tb = ea.getCausalElement();\n            ((tb && tb.setAttribute(\"aria-expanded\", \"false\")));\n        }\n    ;\n    ;\n    };\n;\n    function rb(JSBNG__event) {\n        var tb = x.byTag(JSBNG__event.getTarget(), \"a\");\n        if (((tb && l.hasClass(tb, \"FriendListActionItem\")))) {\n            ob();\n        }\n    ;\n    ;\n    };\n;\n    function sb(tb) {\n        var ub = m.remove(tb, \"flfcloselistener\");\n        ((ub && ub()));\n    };\n;\n    e.exports = ((a.FriendListFlyoutController || ra));\n});\n__d(\"AddFriendButton\", [\"JSBNG__Event\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"collectDataAttributes\",\"CSS\",\"DOMQuery\",\"FriendListFlyoutController\",\"FriendStatus\",\"ge\",\"goURI\",\"Style\",\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AsyncResponse\"), l = b(\"collectDataAttributes\"), m = b(\"CSS\"), n = b(\"DOMQuery\"), o = b(\"FriendListFlyoutController\"), p = b(\"FriendStatus\"), q = b(\"ge\"), r = b(\"goURI\"), s = b(\"Style\"), t = b(\"URI\"), u = {\n        ERROR_ALREADY_ADDED: 1431005,\n        init: function(v, w, x, y, z, aa, ba, ca, da, ea, fa, ga) {\n            var ha = v.id, ia = null, ja = n.scry(v, \".addButton\")[0], ka = n.scry(v, \".addFriendText\")[0], la = n.scry(v, \".outgoingButton\")[0], ma = n.scry(v, \".incomingButton\")[0], na = n.scry(v, \".friendButton\")[0];\n            function oa(ua, va, wa) {\n                var xa = new t(ja.getAttribute(\"ajaxify\")), ya = l(v, [\"ft\",\"gt\",]);\n                new j().setURI(aa).setData({\n                    to_friend: w,\n                    action: ua,\n                    how_found: y,\n                    ref_param: z,\n                    link_data: ya,\n                    outgoing_id: la.id,\n                    xids: xa.getQueryData().xids,\n                    logging_location: ba,\n                    no_flyout_on_click: ca,\n                    ego_log_data: da,\n                    http_referer: fa\n                }).setErrorHandler(va).setServerDialogCancelHandler(wa).setRelativeTo(la).send();\n                if (((ga && ((ua === \"add_friend\"))))) {\n                    new j().setURI(\"/ajax/add_friend/chain_pymk.php\").send();\n                }\n            ;\n            ;\n            };\n        ;\n            function pa(ua, va) {\n                if (ka) {\n                    m.hide(ka);\n                }\n                 else if (ja) {\n                    m.hide(ja);\n                }\n                \n            ;\n            ;\n                ((la && m.hide(la)));\n                ((ma && m.hide(ma)));\n                ((na && m.hide(na)));\n                if (ua) {\n                    m.show(ua);\n                }\n            ;\n            ;\n                if (((((((\"Outgoing\" == va)) && ((ia != va)))) && ea))) {\n                    new h(ua).from(\"backgroundColor\", \"#FFF8CC\").to(\"backgroundColor\", \"transparent\").from(\"borderColor\", \"#FFE222\").to(\"borderColor\", s.get(ua, \"borderLeftColor\")).duration(2000).go();\n                }\n            ;\n            ;\n                ((ia && m.removeClass(v, ((\"fStatus\" + ia)))));\n                ia = va;\n                m.addClass(v, ((\"fStatus\" + va)));\n            };\n        ;\n            function qa(ua) {\n                if (m.hasClass(ua, \"enableFriendListFlyout\")) {\n                    o.show(ua);\n                }\n                 else o.hide();\n            ;\n            ;\n            };\n        ;\n            var ra = i.subscribe(\"FriendRequest/change\", function(ua, va) {\n                ta();\n                if (((va.uid != w))) {\n                    return;\n                }\n            ;\n            ;\n                switch (va.JSBNG__status) {\n                  case p.ARE_FRIENDS:\n                    return pa(na, \"Friends\");\n                  case p.INCOMING_REQUEST:\n                    return pa(ma, \"Incoming\");\n                  case p.OUTGOING_REQUEST:\n                    return pa(la, \"Outgoing\");\n                  case p.CAN_REQUEST:\n                    return pa(((ka ? ka : ja)), \"Requestable\");\n                };\n            ;\n            }), sa;\n            if (x) {\n                sa = i.subscribe(\"FriendRequest/confirm\", function(ua, va) {\n                    ta();\n                    ((((va.uid == w)) && r(x)));\n                });\n            }\n        ;\n        ;\n            ((ja && g.listen(ja, \"click\", function() {\n                i.inform(\"FriendRequest/sending\", {\n                    uid: w\n                });\n                if (ca) {\n                    o.setActiveNode(la);\n                }\n                 else qa(la);\n            ;\n            ;\n                oa(\"add_friend\", function(ua) {\n                    var va = ((((ua.error == u.ERROR_ALREADY_ADDED)) ? \"FriendRequest/sent\" : \"FriendRequest/sendFail\"));\n                    i.inform(va, {\n                        uid: w\n                    });\n                    o.hide();\n                    k.defaultErrorHandler(ua);\n                }, function(ua) {\n                    i.inform(\"FriendRequest/sendFail\", {\n                        uid: w\n                    });\n                    o.hide();\n                });\n            })));\n            function ta() {\n                if (q(ha)) {\n                    return;\n                }\n            ;\n            ;\n                ((ra && ra.unsubscribe()));\n                ((sa && sa.unsubscribe()));\n                ra = sa = null;\n            };\n        ;\n        }\n    };\n    e.exports = u;\n});\n__d(\"FriendButtonIcon\", [\"Arbiter\",\"FriendStatus\",\"Button\",\"arrayContains\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"FriendStatus\"), i = b(\"Button\"), j = b(\"arrayContains\");\n    e.exports = {\n        register: function(k, l, m) {\n            g.subscribe(\"FriendListMembershipChange\", function(n, o) {\n                if (((o.uid == m))) {\n                    var p = j(o.lists, h.CLOSE_FRIENDS), q = j(o.lists, h.ACQUAINTANCES);\n                    if (((p && !q))) {\n                        i.setIcon(k, l.close);\n                    }\n                     else if (((q && !p))) {\n                        i.setIcon(k, l.acquaintance);\n                    }\n                     else i.setIcon(k, l.friend);\n                    \n                ;\n                ;\n                }\n            ;\n            ;\n            });\n        }\n    };\n});\n__d(\"PopoverMenuShowOnHover\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n    function i(j) {\n        this._popoverMenu = j;\n        this._listeners = [];\n    };\n;\n    h(i.prototype, {\n        enable: function() {\n            this._attachMouseListeners(this._popoverMenu.getTriggerElem());\n            this._setMenuSubscription = this._popoverMenu.subscribe(\"setMenu\", this._onSetMenu.bind(this));\n        },\n        disable: function() {\n            while (this._listeners.length) {\n                this._listeners.pop().remove();\n            ;\n            };\n        ;\n            if (this._setMenuSubscription) {\n                this._setMenuSubscription.unsubscribe();\n                this._setMenuSubscription = null;\n            }\n        ;\n        ;\n        },\n        _onSetMenu: function() {\n            this._attachMouseListeners(this._popoverMenu.getMenu().getRoot());\n        },\n        _attachMouseListeners: function(j) {\n            var k = this._popoverMenu.getPopover();\n            this._listeners.push(g.listen(j, \"mouseenter\", k.showLayer.bind(k)), g.listen(j, \"mouseleave\", k.hideLayer.bind(k)));\n        }\n    });\n    e.exports = i;\n});\n__d(\"OGCollectionAddDialog\", [\"AsyncRequest\",\"DataStore\",\"DOMQuery\",\"Form\",\"MenuDeprecated\",\"URI\",\"collectDataAttributes\",\"copyProperties\",\"csx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"Form\"), k = b(\"MenuDeprecated\"), l = b(\"URI\"), m = b(\"collectDataAttributes\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"tidyEvent\"), q = \"OGCollectionAddDialog\";\n    function r(s, t, u, v, w) {\n        this._dialog = s;\n        this._surface = t;\n        this._endpoint = l(v);\n        this._loadEditMenu = w.loadEditMenu;\n        this._listener = h.get(String(u), q);\n        this._audienceSelector = i.JSBNG__find(this._dialog.getContent(), \".audienceSelector\");\n        this._menu = i.JSBNG__find(this._dialog.getContent(), \"._4-jt\");\n        k.register(this._menu);\n        this._menuSubscriptionToken = k.subscribe(\"select\", this._onMenuClick.bind(this));\n        p([this._dialog.subscribe(\"show\", this._onDialogShow.bind(this)),this._dialog.subscribe(\"hide\", this._onDialogHide.bind(this)),]);\n        this._dialog.show();\n    };\n;\n    n(r, {\n        INSTANCE_KEY: q\n    });\n    n(r.prototype, {\n        _onDialogShow: function() {\n            this._listener.onDialogShow(this._dialog);\n        },\n        _onDialogHide: function() {\n            this._destroy();\n        },\n        _onMenuClick: function(s, t) {\n            if (((t.menu !== this._menu))) {\n                return;\n            }\n        ;\n        ;\n            var u = t.item;\n            this._listener.onMenuClick(u);\n            var v = i.JSBNG__find(u, \"._5581\"), w = v.getAttribute(\"value\");\n            this._submitRequest(w);\n        },\n        _submitRequest: function(s) {\n            this._endpoint.addQueryData({\n                collection_token: s\n            });\n            this._dialog.hide();\n            this._request = new g(this._endpoint).setData(n(j.serialize(this._audienceSelector), {\n                action: \"add\",\n                load_edit_menu: this._loadEditMenu,\n                surface: this._surface\n            }, m(this._dialog.getContext(), [\"ft\",]))).setHandler(function() {\n                this._listener.onAddSuccess();\n            }.bind(this));\n            this._request.send();\n        },\n        _destroy: function() {\n            this._listener.onDialogHide();\n            k.unsubscribe(this._menuSubscriptionToken);\n        }\n    });\n    e.exports = r;\n});\n__d(\"OGCollectionAddMenu\", [\"CSS\",\"DataStore\",\"DOM\",\"DOMQuery\",\"JSBNG__Event\",\"OGCollectionAddDialog\",\"Parent\",\"TidyArbiterMixin\",\"copyProperties\",\"csx\",\"cx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"JSBNG__Event\"), l = b(\"OGCollectionAddDialog\"), m = b(\"Parent\"), n = b(\"TidyArbiterMixin\"), o = b(\"copyProperties\"), p = b(\"csx\"), q = b(\"cx\"), r = b(\"tidyEvent\");\n    function s(t, u, v, w, x, y) {\n        this._image = u;\n        this._container = v;\n        this._placeholder = w;\n        this._surface = x;\n        this._showPlaceholder = y.showPlaceholder;\n        this._rateControl = i.scry(this._container.parentNode, \"._5586\")[0];\n        s.inform(\"addButton\", {\n            button: this._image,\n            root: this._container\n        });\n        r(k.listen(this._container, \"click\", function(z) {\n            var aa = m.byClass(z.getTarget(), \"_5859\");\n            if (((this.isDialogShowing() && aa))) {\n                z.kill();\n            }\n        ;\n        ;\n        }.bind(this)));\n        if (((this._surface === \"friend_timeline_lhc\"))) {\n            this._handleAlwaysVisibleLHC();\n        }\n    ;\n    ;\n        h.set(String(t), l.INSTANCE_KEY, this);\n    };\n;\n    o(s, n);\n    o(s.prototype, n, {\n        destroy: function() {\n            i.remove(this._container);\n            this._placeholder.destroy();\n        },\n        hide: function() {\n            g.hide(this._container);\n            this._placeholder.hide();\n        },\n        getParent: function() {\n            return this._container.parentNode;\n        },\n        insertMenuIntoDialog: function(t) {\n            this._placeholder.insertIntoDialog(t);\n        },\n        onMenuClick: function(t) {\n            var u = j.JSBNG__find(t, \"._5582\");\n            this._showRate = ((this._rateControl && u.getAttribute(\"value\")));\n            g.hide(this._image);\n            if (this._showRate) {\n                g.show(this._rateControl);\n                k.fire(this._rateControl, \"click\");\n            }\n             else if (this._showPlaceholder) {\n                g.show(this._placeholder.getIcon());\n            }\n            \n        ;\n        ;\n        },\n        onAddSuccess: function() {\n            if (((!this._showPlaceholder && !this._showRate))) {\n                this.inform(\"reload\");\n            }\n        ;\n        ;\n        },\n        onDialogShow: function(t) {\n            var u = j.JSBNG__find(t.getContent(), \".audienceSelector\");\n            g.addClass(this._image, \"openToggler\");\n            s.inform(\"menuOpened\", {\n                audienceSelector: u.parentNode\n            });\n            this._dialogShowing = true;\n        },\n        onDialogHide: function() {\n            g.removeClass(this._image, \"openToggler\");\n            this._dialogShowing = false;\n        },\n        isDialogShowing: function() {\n            return this._dialogShowing;\n        },\n        _handleAlwaysVisibleLHC: function() {\n            var t = m.byClass(this._container, \"_4_ij\"), u = m.byClass(t, \"_5-r\");\n            if (g.hasClass(t, \"_58v0\")) {\n                r([this._alwaysVisibleToken = k.listen(u, \"mouseenter\", function() {\n                    g.removeClass(t, \"_58v0\");\n                    this._alwaysVisibleToken.remove();\n                }.bind(this)),]);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = s;\n});\n__d(\"TimelineAppSectionCuration\", [\"Animation\",\"AppSectionCurationState\",\"Arbiter\",\"AsyncSignal\",\"CSS\",\"DOM\",\"Ease\",\"JSBNG__Event\",\"OnVisible\",\"Parent\",\"Style\",\"TidyArbiterMixin\",\"TimelineSection\",\"copyProperties\",\"cx\",\"queryThenMutateDOM\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"AppSectionCurationState\"), i = b(\"Arbiter\"), j = b(\"AsyncSignal\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Ease\"), n = b(\"JSBNG__Event\"), o = b(\"OnVisible\"), p = b(\"Parent\"), q = b(\"Style\"), r = b(\"TidyArbiterMixin\"), s = b(\"TimelineSection\"), t = b(\"copyProperties\"), u = b(\"cx\"), v = b(\"queryThenMutateDOM\"), w = b(\"tidyEvent\"), x = 0, y = {\n    }, z = {\n    };\n    function aa(fa, ga, ha) {\n        var ia, ja, ka = ((((ga != h.hide)) && ((ha != h.hide))));\n        v(function() {\n            ja = fa.offsetHeight;\n            ia = ((((ga === h.hide)) ? 0 : fa.firstChild.offsetHeight));\n        }, function() {\n            q.set(fa, \"height\", ((ja + \"px\")));\n            q.set(fa, \"overflow\", \"hidden\");\n            ((ia && k.addClass(fa.parentNode, \"_52bu\")));\n            o.checkBuffer.defer();\n            var la = l.getID(fa);\n            ((z[la] && z[la].JSBNG__stop()));\n            z[la] = new g(fa).to(\"height\", ia).ondone(function() {\n                delete z[la];\n                if (ia) {\n                    q.set(fa, \"overflow\", \"\");\n                    q.set(fa.parentNode, \"overflow\", \"\");\n                }\n            ;\n            ;\n                ((!ia && k.removeClass(fa.parentNode, \"_52bu\")));\n                i.inform(\"reflow\");\n            }).duration(((Math.abs(((ia - ja))) * ((ka ? 5 : 1.5))))).ease(m.sineOut).go();\n        });\n    };\n;\n    function ba(fa, ga) {\n        if (fa) {\n            k.show(ga);\n            k.hide(fa);\n        }\n    ;\n    ;\n    };\n;\n    function ca(fa, ga) {\n        if (fa) {\n            k.show(fa);\n            k.hide(ga);\n        }\n    ;\n    ;\n    };\n;\n    function da(fa, ga) {\n        s.callWithSection(fa, function(ha) {\n            new j(\"/ajax/timeline/collections/app_recs/\", {\n                collection_token: ha.getActiveCollection().getToken(),\n                event_type: ga\n            }).send();\n        });\n    };\n;\n    var ea = t({\n        addSection: function(fa, ga, ha) {\n            y[fa] = {\n                appClickLogged: false,\n                buttons: ga,\n                JSBNG__content: ha,\n                id: fa,\n                state: h.hide\n            };\n            q.set(ha, \"height\", \"0px\");\n            q.set(ha, \"overflow\", \"hidden\");\n            k.show(ha);\n            {\n                var fin272keys = ((window.top.JSBNG_Replay.forInKeys)((ga))), fin272i = (0);\n                var ia;\n                for (; (fin272i < fin272keys.length); (fin272i++)) {\n                    ((ia) = (fin272keys[fin272i]));\n                    {\n                        w([n.listen(ga[ia].hide_button, \"click\", ea.informState.curry(h.hide, fa)),n.listen(ga[ia].show_button, \"click\", ea.informState.curry(ia, fa)),]);\n                    ;\n                    };\n                };\n            };\n        ;\n            ea.register(fa, function(ja, ka, la, ma) {\n                new o(ha, aa.curry(ha, ja, ma), true, x);\n                {\n                    var fin273keys = ((window.top.JSBNG_Replay.forInKeys)((ga))), fin273i = (0);\n                    var na;\n                    for (; (fin273i < fin273keys.length); (fin273i++)) {\n                        ((na) = (fin273keys[fin273i]));\n                        {\n                            ca(ga[na].show_button, ga[na].hide_button);\n                        ;\n                        };\n                    };\n                };\n            ;\n                if (ga[ja]) {\n                    ba(ga[ja].show_button, ga[ja].hide_button);\n                }\n            ;\n            ;\n            });\n        },\n        informState: function(fa, ga) {\n            if (((y[ga] && ((y[ga].state !== fa))))) {\n                if (((((fa === h.showApps)) && !y[ga].appClickLogged))) {\n                    y[ga].appClickLogged = true;\n                    da(ga, \"add_apps_click\");\n                }\n            ;\n            ;\n                var ha = y[ga].state;\n                y[ga].state = fa;\n                ea.inform(fa, {\n                    obj: y[ga],\n                    oldState: ha\n                });\n            }\n        ;\n        ;\n        },\n        linkContent: function(fa, ga, ha) {\n            var ia = y[fa].buttons[h.showApps].show_button;\n            k.show(p.byClass(ia, \"hidden_elem\"));\n            new o(ia, function() {\n                if (((Math.floor(((Math.JSBNG__random() * 100))) === 0))) {\n                    da(fa, \"add_apps_imp\");\n                }\n            ;\n            ;\n            }, true, x);\n            ea.register(fa, function(ja, ka, la, ma) {\n                if (((ja == h.showItems))) {\n                    if (((ma == h.showApps))) {\n                        q.set(y[fa].JSBNG__content.parentNode, \"overflow\", \"hidden\");\n                    }\n                ;\n                ;\n                    k.show(ga);\n                    k.hide(ha);\n                }\n                 else if (((ja == h.showApps))) {\n                    k.hide(ga);\n                    k.show(ha);\n                }\n                \n            ;\n            ;\n            });\n        },\n        register: function(fa, ga) {\n            var ha = ea.subscribe([h.hide,h.showItems,h.showApps,], function(ia, ja) {\n                if (((ja.obj.id === fa))) {\n                    ga(ia, ja.obj, ha, ja.oldState);\n                }\n            ;\n            ;\n            });\n        },\n        getSectionState: function(fa) {\n            if (y[fa]) {\n                return y[fa].state;\n            }\n        ;\n        ;\n        }\n    }, r);\n    e.exports = ea;\n});\n__d(\"TimelineMonitor\", [\"Arbiter\",\"JSBNG__Event\",\"Run\",\"Vector\",\"ViewportBounds\",\"ge\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"JSBNG__Event\"), i = b(\"Run\"), j = b(\"Vector\"), k = b(\"ViewportBounds\"), l = b(\"ge\"), m = b(\"queryThenMutateDOM\"), n = {\n    }, o = {\n    }, p = 0, q = [], r = null, s = false;\n    function t() {\n        n = {\n        };\n        o = {\n        };\n        p = 0;\n        q.length = 0;\n        ((r && r.remove()));\n        r = null;\n        s = false;\n    };\n;\n    function u() {\n        if (!r) {\n            r = h.listen(window, \"JSBNG__scroll\", z);\n        }\n    ;\n    ;\n        if (!s) {\n            i.onLeave(t);\n            s = true;\n        }\n    ;\n    ;\n        z();\n    };\n;\n    var v = [], w = [];\n    function x() {\n        q.forEach(function(ea) {\n            var fa = aa.getSection(ea);\n            if (((fa && ((fa !== o[ea.id]))))) {\n                o[ea.id] = fa;\n                v.push({\n                    section: fa\n                });\n            }\n        ;\n        ;\n        });\n        var ba = ((k.getTop() + j.getScrollPosition().y));\n        {\n            var fin274keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin274i = (0);\n            var ca;\n            for (; (fin274i < fin274keys.length); (fin274i++)) {\n                ((ca) = (fin274keys[fin274i]));\n                {\n                    var da = n[ca];\n                    if (((((((ba >= da.boundary)) && ((p <= da.boundary)))) || ((((ba <= da.boundary)) && ((p >= da.boundary))))))) {\n                        n[ca].fromAbove = ((p < ba));\n                        w.push(n[ca]);\n                    }\n                ;\n                ;\n                };\n            };\n        };\n    ;\n        p = ba;\n    };\n;\n    function y() {\n        v.forEach(function(ba) {\n            g.inform(aa.SECTION_CHANGE, ba);\n        });\n        w.forEach(function(ba) {\n            g.inform(aa.BOUNDARY_PASSED, ba);\n        });\n        v.length = 0;\n        w.length = 0;\n    };\n;\n    function z() {\n        m(x, y, \"TimelineMonitor/scroll\");\n    };\n;\n    var aa = {\n        BOUNDARY_PASSED: \"TimelineMonitor/boundary\",\n        SECTION_CHANGE: \"TimelineMonitor/change\",\n        getSection: function(ba) {\n            var ca = ((k.getTop() + j.getScrollPosition().y)), da = ba.childSections.getHead();\n            while (da) {\n                if (((l(da.nodeID) && ((ca < ((j.getElementPosition(da.getNode()).y + j.getElementDimensions(da.getNode()).y))))))) {\n                    return da;\n                }\n            ;\n            ;\n                da = da.getNext();\n            };\n        ;\n        },\n        monitorBoundary: function(ba, ca) {\n            ca = ((ca || ba));\n            if (((!n[ca] || ((n[ca].boundary !== ba))))) {\n                n[ca] = {\n                    boundary: ba,\n                    id: ca\n                };\n                u();\n            }\n        ;\n        ;\n        },\n        monitorSection: function(ba) {\n            o[ba.id] = null;\n            q.push(ba);\n            u();\n            return aa.getSection(ba);\n        },\n        poke: function(ba) {\n            z();\n        }\n    };\n    e.exports = aa;\n});\n__d(\"TimelineAppSection\", [\"AppSectionCurationState\",\"Arbiter\",\"Class\",\"CSS\",\"DOM\",\"DOMQuery\",\"DOMScroll\",\"JSLogger\",\"MedleyPageletRequestData\",\"PageletSet\",\"Style\",\"TidyArbiter\",\"TidyArbiterMixin\",\"TimelineAppCollection\",\"TimelineAppSectionCuration\",\"TimelineDynamicSection\",\"TimelineMonitor\",\"TimelineSection\",\"TimelineSmartInsert\",\"TriggerablePageletLoader\",\"ViewportBounds\",\"copyProperties\",\"csx\",\"cx\",\"ge\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"AppSectionCurationState\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMQuery\"), m = b(\"DOMScroll\"), n = b(\"JSLogger\"), o = b(\"MedleyPageletRequestData\"), p = b(\"PageletSet\"), q = b(\"Style\"), r = b(\"TidyArbiter\"), s = b(\"TidyArbiterMixin\"), t = b(\"TimelineAppCollection\"), u = b(\"TimelineAppSectionCuration\"), v = b(\"TimelineDynamicSection\"), w = b(\"TimelineMonitor\"), x = b(\"TimelineSection\"), y = b(\"TimelineSmartInsert\"), z = b(\"TriggerablePageletLoader\"), aa = b(\"ViewportBounds\"), ba = b(\"copyProperties\"), ca = b(\"csx\"), da = b(\"cx\"), ea = b(\"ge\"), fa = b(\"tx\"), ga = 500, ha = 2, ia = 500, ja = 18, ka = \"_5bry\", la = \"_3s-\", ma = k.create(\"div\", {\n        className: \"_3s_\"\n    });\n    function na() {\n        return k.create(\"span\", {\n            className: \"_3s18\"\n        }, [k.create(\"a\", {\n            className: \"_3s19\",\n            href: \"#\"\n        }, \"More\"),k.create(\"span\", {\n            className: \"_3s1a\"\n        }),]);\n    };\n;\n    var oa = n.create(\"collections\"), pa = {\n        notes: 295,\n        events: 345,\n        photos: 555,\n        app_quoraapp: 569,\n        friends: 603,\n        app_foodspotting: 621,\n        map: 621,\n        favorites: 645,\n        app_pinterestapp: 699,\n        app_instapp: 699,\n        books: 699,\n        movies: 699,\n        tv: 699,\n        music: 725\n    };\n    function qa(sa) {\n        return pa[sa.replace(\"pagelet_timeline_medley_\", \"\")];\n    };\n;\n    function ra(sa, ta, ua, va) {\n        this.parent.construct(this, ra.getIDBySK(ta), sa, ua);\n        this._sk = ta;\n        this._title = va;\n    };\n;\n    i.extend(ra, v);\n    ba(ra, {\n        createFromArray: function(sa) {\n            return sa.map(function(ta) {\n                return new ra(ta.controller, ta.sk, ta.label, ta.title);\n            });\n        },\n        getIDBySK: function(sa) {\n            return ((\"pagelet_timeline_medley_\" + sa));\n        },\n        registerCollections: function(sa, ta, ua) {\n            x.callWithSection(ra.getIDBySK(sa), function(va) {\n                t.createFromArray(ta).forEach(va.appendSection.bind(va));\n                var wa = va.childSections.get(ua);\n                va.setActiveCollection(wa);\n                wa.setIsLoaded(true);\n            });\n        },\n        removeEmptyAppSection: function(sa) {\n            x.callWithSection(ra.getIDBySK(sa), function(ta) {\n                ta.remove();\n            });\n        }\n    }, s);\n    ba(ra.prototype, s, {\n        _createNode: function() {\n            var sa = this.parent._createNode();\n            sa.setAttribute(\"aria-labelledby\", ((\"medley_header_\" + this._sk)));\n            sa.setAttribute(\"aria-role\", \"region\");\n            k.prependContent(sa, k.create(\"div\", {\n                className: \"_3cz\"\n            }, [this._title,k.create(\"div\", {\n                className: \"_3dc\",\n                \"aria-role\": \"tablist\"\n            }),]));\n            this.resetMinHeight(sa);\n            return sa;\n        },\n        addAuxContent: function(sa) {\n            var ta = l.scry(this.getNode(), \"._6ph\")[0];\n            ((ta && k.appendContent(ta, sa)));\n            ((this._activeCollection && this._checkTabDimensions(this._activeCollection)));\n        },\n        nullStateCurationContent: function() {\n            if (!this._nullStateContent) {\n                return;\n            }\n        ;\n        ;\n            var sa = l.JSBNG__find(this.getNode(), \"._1_cb\");\n            k.replace(sa.firstChild, this._nullStateContent);\n        },\n        addCurationContent: function(sa, ta, ua) {\n            var va = l.scry(this.getNode(), \"._1_cb\")[0];\n            ((va && k.appendContent(va, sa)));\n            if (ua) {\n                this._nullStateContent = ua;\n            }\n        ;\n        ;\n            this._checkCurationContent(ta);\n        },\n        createTriggerLoader: function(sa) {\n            var ta = function(ua) {\n                this._parentSection._lastLoadedSection = this;\n                this.setIsLoaded(true);\n                y.enable();\n                y.run(this.getNode(), function() {\n                    ua();\n                    this.unsetMinHeight();\n                    w.poke(this._parentSection.id);\n                }.bind(this), \"viewport\");\n            }.bind(this);\n            r.subscribe(\"Medley/requestDataSet\", function() {\n                this._triggerLoader = new z({\n                    controller: this._controller,\n                    data: this.getData(),\n                    displayCallback: ta,\n                    options: {\n                        constHeight: true\n                    },\n                    node: this.getNode()\n                }, [{\n                    node: this.getNode(),\n                    onVisibleBuffer: ga,\n                    onVisibleStrict: true,\n                    type: ((sa ? z.TRIGGER_NOW : z.TRIGGER_ONVISIBLE))\n                },]);\n            }.bind(this));\n        },\n        freeze: function() {\n            j.addClass(this.getNode(), \"_c4e\");\n            if (((ea(this.nodeID) && !this.isLoaded()))) {\n                ((this._triggerLoader && this._triggerLoader.disableTriggers()));\n            }\n        ;\n        ;\n            this.freezeChildren();\n        },\n        getData: function() {\n            if (!this._data) {\n                this._data = ba({\n                    sk: this._sk\n                }, o.get(), {\n                    overview: ((this._parentSection._sk !== this._sk))\n                });\n            }\n        ;\n        ;\n            return this._data;\n        },\n        getActiveCollection: function() {\n            return this._activeCollection;\n        },\n        remove: function() {\n            if (p.hasPagelet(this.id)) {\n                p.removePagelet(this.id);\n            }\n        ;\n        ;\n            k.remove(this.getNode());\n            this._parentSection.childSections.remove(this.id);\n        },\n        setActiveCollection: function(sa) {\n            if (((((this._activeCollection === sa)) || !sa._tabNode))) {\n                return;\n            }\n        ;\n        ;\n            if (this._activeCollection) {\n                h.inform(\"TimelineSideAds/refresh\");\n                oa.log(\"change_collection\", {\n                    previous_collection: this._activeCollection.getToken(),\n                    new_collection: sa.getToken()\n                });\n                this.resetMinHeight();\n                this._activeCollection.disableContentLoader();\n                j.hide(this._activeCollection.getNode());\n                j.removeClass(this._activeCollection._tabNode, la);\n                k.scry(this._activeCollection._tabNode, \"div._3s_\").forEach(k.remove);\n                k.appendContent(sa._tabNode, ma.cloneNode(true));\n                ((this._activeCollection.auxContent && j.hide(this._activeCollection.auxContent)));\n                ((this._activeCollection.curationContent && j.hide(this._activeCollection.curationContent)));\n                this._activeCollection._tabNode.setAttribute(\"aria-selected\", \"false\");\n            }\n        ;\n        ;\n            ((sa.auxContent && j.show(sa.auxContent)));\n            this._checkCurationContent(sa);\n            j.addClass(sa._tabNode, la);\n            this._checkTabDimensions(sa);\n            this._activeCollection = sa;\n            ra.inform(\"changeCollection\");\n            if (!ea(sa.nodeID)) {\n                k.appendContent(l.JSBNG__find(this.getNode(), \"div._3i9\"), sa.getNode());\n            }\n        ;\n        ;\n            j.show(sa.getNode());\n            ((sa.isLoaded() && this.unsetMinHeight()));\n            sa._tabNode.setAttribute(\"aria-selected\", \"true\");\n            sa.enableContentLoader();\n        },\n        resetMinHeight: function(sa) {\n            ((sa || (sa = this.getNode())));\n            var ta = ((qa(this.id) || ((sa.offsetHeight - ha))));\n            ((((ta > 0)) && this._updateScrollAfterHeight(sa, ta)));\n        },\n        JSBNG__scrollTo: function(sa, ta) {\n            var ua = aa.getElementPosition(this.getNode());\n            ua.y -= ((sa || ja));\n            ((ta && this._parentSection.toggleScrollLoad(false)));\n            m.JSBNG__scrollTo(ua, ia, null, null, function() {\n                ua = aa.getElementPosition(this.getNode());\n                ua.y -= ((sa || ja));\n                m.JSBNG__scrollTo(ua);\n                ((ta && this._parentSection.toggleScrollLoad(true)));\n            }.bind(this));\n        },\n        thaw: function() {\n            j.removeClass(this.getNode(), \"_c4e\");\n            ((this._triggerLoader && this._triggerLoader.enableTriggers()));\n            this.thawChildren();\n        },\n        unsetMinHeight: function() {\n            this._updateScrollAfterHeight(this.getNode(), 0);\n        },\n        _updateScrollAfterHeight: function(sa, ta) {\n            q.set(sa, \"min-height\", ((ta + \"px\")));\n            h.inform(\"reflow\");\n        },\n        _checkCurationContent: function(sa) {\n            var ta = l.scry(this.getNode(), \"._2zh3\")[0];\n            if (ta) {\n                j.conditionShow(ta, sa.curationContent);\n                if (sa.curationContent) {\n                    j.show(sa.curationContent);\n                    if (sa.curationContentState) {\n                        u.informState(sa.curationContentState, this.id);\n                    }\n                ;\n                ;\n                }\n                 else u.informState(g.hide, this.id, g.showItems);\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _getTabObj: function() {\n            if (!this._tabObj) {\n                this._tabObj = {\n                    aux: k.JSBNG__find(this.getNode(), \"._6ph\"),\n                    items: [],\n                    nav: k.JSBNG__find(this.getNode(), \"._1_ca\"),\n                    tabs: k.JSBNG__find(this.getNode(), \"._3dc\"),\n                    width: 0\n                };\n                j.addClass(this._tabObj.tabs, \"_5brz\");\n            }\n        ;\n        ;\n            return this._tabObj;\n        },\n        _checkTabDimensions: function(sa) {\n            var ta = this._getTabObj(), ua = ((ta.nav.offsetWidth - ta.aux.offsetWidth));\n            if (((ua >= ta.width))) {\n                if (((!ta.hidden && ((((ua - ta.tabs.offsetWidth)) >= 0))))) {\n                    return;\n                }\n            ;\n            ;\n                j.removeClass(ta.tabs, ka);\n            }\n        ;\n        ;\n            if (((ta.hidden && ((sa._tabNode.parentNode === ta.overflow))))) {\n                k.prependContent(ta.overflow, ta.dropdown.previousSibling);\n                k.insertBefore(ta.dropdown, sa._tabNode);\n            }\n        ;\n        ;\n            if (((((((ua - ta.tabs.offsetWidth)) >= 0)) && !ta.hidden))) {\n                return;\n            }\n        ;\n        ;\n            var va = ta.items.length;\n            if (((va && ta.hidden))) {\n                for (var wa = 0; ((wa < va)); wa++) {\n                    k.appendContent(ta.tabs, ta.items[wa]);\n                ;\n                };\n            ;\n                k.remove(ta.dropdown);\n            }\n        ;\n        ;\n            j.conditionClass(ta.tabs, ka, ((((ua - ta.tabs.offsetWidth)) < 0)));\n            ta.width = ua;\n            ta.hidden = 0;\n            if (((((ua - ta.tabs.offsetWidth)) >= 0))) {\n                return;\n            }\n        ;\n        ;\n            if (!ta.dropdown) {\n                ta.dropdown = na();\n                ta.overflow = k.JSBNG__find(ta.dropdown, \"._3s1a\");\n                ta.items = k.scry(this.getNode(), \"._3c_\");\n                va = ta.items.length;\n            }\n        ;\n        ;\n            k.appendContent(ta.tabs, ta.dropdown);\n            var xa = 0;\n            for (wa = ((va - 1)); ((((wa > 0)) && ((xa <= 0)))); wa--) {\n                if (((ta.items[wa] !== sa._tabNode))) {\n                    k.prependContent(ta.overflow, ta.items[wa]);\n                    xa = ((ua - ta.tabs.offsetWidth));\n                    ta.hidden++;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n    });\n    e.exports = ra;\n});\n__d(\"TimelineCoverDisclaimer\", [\"Dialog\",], function(a, b, c, d, e, f) {\n    var g = b(\"Dialog\");\n    function h(i, j, k) {\n        if (((h.displayed === undefined))) {\n            h.displayed = true;\n        }\n         else return\n    ;\n        new g().setModal(true).setTitle(i).setBody(j).setButtonsMessage(k).setButtons(g.OK).show();\n    };\n;\n    e.exports = h;\n});\n__d(\"legacy:TimelineCoverDisclaimer\", [\"TimelineCoverDisclaimer\",], function(a, b, c, d) {\n    a.TimelineCoverDisclaimer = b(\"TimelineCoverDisclaimer\");\n}, 3);\n__d(\"TimelineMedley\", [\"Class\",\"CSS\",\"DOM\",\"DOMPosition\",\"DOMQuery\",\"PageTransitions\",\"TimelineAppSection\",\"TimelineDynamicSectionConfig\",\"TimelineMonitor\",\"TimelineSection\",\"URI\",\"ViewportBounds\",\"copyProperties\",\"csx\",\"cx\",\"ge\",\"$\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMPosition\"), k = b(\"DOMQuery\"), l = b(\"PageTransitions\"), m = b(\"TimelineAppSection\"), n = b(\"TimelineDynamicSectionConfig\"), o = b(\"TimelineMonitor\"), p = b(\"TimelineSection\"), q = b(\"URI\"), r = b(\"ViewportBounds\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"cx\"), v = b(\"ge\"), w = b(\"$\"), x = \"timeline-medley\", y = \"about\", z = 2, aa = false;\n    function ba(ea) {\n        var fa = ((ea.getQueryData().sk || ea.getPath().split(\"/\")[2]));\n        return ((n.skmapping[fa] || fa));\n    };\n;\n    function ca(ea) {\n        if (ea.getQueryData().id) {\n            return ea.getQueryData.id;\n        }\n    ;\n    ;\n        return ea.getPath().split(\"/\")[1];\n    };\n;\n    function da(ea, fa, ga) {\n        this.parent.construct(this, x);\n        this.isOverview = ((ea.length > 1));\n        n.breaker = ga.breaker;\n        m.createFromArray(ea).forEach(this.appendSection.bind(this));\n        o.monitorSection(this);\n        this._lastLoadedSection = this.childSections.get(m.getIDBySK(fa)).setIsLoaded(true);\n        p.setActiveSectionID(this._lastLoadedSection.id);\n        if (((aa && this.isMedleyView()))) {\n            this.addSectionPlaceholders();\n        }\n    ;\n    ;\n        var ha = q.getNextURI();\n        this._vanity = ca(ha);\n        this._sk = ba(ha);\n        if (this.isOverview) {\n            l.registerHandler(this._transitionHandler.bind(this));\n        }\n    ;\n    ;\n    };\n;\n    g.extend(da, p);\n    s(da, {\n        loadToSection: function(ea, fa) {\n            p.setActiveSectionID(ea);\n            p.callWithSection(x, function(ga) {\n                var ha = ga.childSections.getHead(), ia = 0;\n                while (((ha && ((ha.id !== ea))))) {\n                    ia++;\n                    ha = ha.getNext();\n                };\n            ;\n                if (!ia) {\n                    return fa(ha);\n                }\n            ;\n            ;\n                ia--;\n                ((ia && ga.addUpcomingSectionPlaceholders(ga.childSections.getHead(), ia)));\n                ga.addSectionPlaceholder(ha, ha.getPrev(), true);\n                var ja = ha.subscribe(\"loaded\", function() {\n                    fa(ha);\n                    ja.unsubscribe();\n                });\n            });\n        },\n        scrollToSection: function(ea, fa, ga) {\n            p.callWithSection(ea, function(ha) {\n                ha.JSBNG__scrollTo(fa, ga);\n            });\n        },\n        toggleScrollLoad: function(ea) {\n            aa = ea;\n            p.callWithSection(x, function(fa) {\n                fa.toggleScrollLoad(ea);\n            });\n        }\n    });\n    s(da.prototype, {\n        addSectionTeasers: function() {\n            if (!this.isMedleyView()) {\n                h.removeClass(this.getNode(), \"_c4f\");\n                this.thawChildren();\n                this.addSectionPlaceholders();\n                this.addSectionBreak();\n            }\n        ;\n        ;\n        },\n        addUpcomingSectionPlaceholders: function(ea, fa) {\n            fa = ((fa || z));\n            while (ea = ea.getNext()) {\n                if (((!this.addSectionPlaceholder(ea, ea.getPrev()) && ((--fa <= 0))))) {\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        addSectionPlaceholder: function(ea, fa, ga) {\n            if (((!ea.isLoaded() && v(ea.nodeID)))) {\n                return false;\n            }\n        ;\n        ;\n            if (!v(ea.nodeID)) {\n                i.insertAfter(fa.getNode(), ea.getNode());\n                ea.createTriggerLoader(ga);\n                return false;\n            }\n        ;\n        ;\n            return true;\n        },\n        addSectionBreak: function() {\n            if (this._lastLoadedSection.getNext()) {\n                i.insertAfter(this.childSections.getHead().getNode(), n.breaker);\n            }\n             else i.remove(n.breaker);\n        ;\n        ;\n        },\n        addSectionPlaceholders: function() {\n            this.addUpcomingSectionPlaceholders(this._lastLoadedSection);\n        },\n        getNode: function() {\n            return w(this.id);\n        },\n        isMedleyView: function() {\n            return ((this._sk === y));\n        },\n        toggleScrollLoad: function(ea) {\n            aa = ea;\n            if (ea) {\n                this.thawChildren();\n                this.addSectionPlaceholders();\n            }\n             else this.freezeChildren();\n        ;\n        ;\n        },\n        _transitionHandler: function(ea) {\n            if (((ca(ea) !== this._vanity))) {\n                return false;\n            }\n        ;\n        ;\n            var fa = ba(ea);\n            if (!fa) {\n                return false;\n            }\n        ;\n        ;\n            if (((fa === y))) {\n                return false;\n            }\n             else {\n                var ga = ea.getQueryData();\n                if (!ga.next_cursor) {\n                    return false;\n                }\n            ;\n            ;\n                var ha = this.childSections.getHead();\n                while (ha) {\n                    if (((ha._sk === fa))) {\n                        if (((!ha._activeCollection && !k.scry(ha._activeCollection.getNode(), \"._3t3\")[0]))) {\n                            return false;\n                        }\n                    ;\n                    ;\n                        this._transitionToSection.bind(this, ha, ga).defer();\n                        return true;\n                    }\n                ;\n                ;\n                    ha = ha.getNext();\n                };\n            ;\n            }\n        ;\n        ;\n            return false;\n        },\n        _transitionToSection: function(ea, fa) {\n            var ga = ((j.getElementPosition(ea.getNode()).y - r.getTop()));\n            i.scry(ea.getNode(), \"._51k9\").forEach(function(ja) {\n                h.removeClass(ja, \"_51k9\");\n            });\n            this._sk = ea._sk;\n            p.setActiveSectionID(ea.id);\n            ea.thaw();\n            h.addClass(this.getNode(), \"_c4f\");\n            this.freezeChildren();\n            var ha = k.JSBNG__find(ea._activeCollection.getNode(), \"._3t3\");\n            ea._activeCollection.addContentLoader(ha, fa.next_cursor);\n            ea._activeCollection._contentLoader.load({\n                node: ha\n            });\n            var ia = this.childSections.getHead();\n            while (((ia && ((ia.id !== ea.id))))) {\n                ia.remove();\n                ia = this.childSections.getHead();\n            };\n        ;\n            p.inform(\"Medley/transitionToSection\", ea.id);\n            ea.JSBNG__scrollTo(((((ga < 0)) ? ga : 0)));\n            l.transitionComplete();\n        }\n    });\n    e.exports = da;\n});\n__d(\"TimelineNavLight\", [\"CSS\",\"DOM\",\"DOMQuery\",\"Parent\",\"TimelineSection\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"DOMQuery\"), j = b(\"Parent\"), k = b(\"TimelineSection\"), l = b(\"csx\"), m = b(\"cx\");\n    function n(o) {\n        var p = i.scry(o, \"._6-7\")[0], q = i.scry(o, \"._6-6\"), r = j.byClass(o, \"_70k\").offsetWidth, s = q[((q.length - 1))];\n        if (((((s.offsetLeft + s.offsetWidth)) > r))) {\n            g.addClass(o, \"_5215\");\n        }\n    ;\n    ;\n        for (var t = ((q.length - 1)); ((t > 1)); t--) {\n            if (((((q[t].offsetLeft + q[t].offsetWidth)) > r))) {\n                h.remove(q[t]);\n            }\n             else break;\n        ;\n        ;\n        };\n    ;\n        var u = \"_529n\";\n        g.removeClass(j.byClass(o, u), u);\n        k.subscribe(\"Medley/transitionToSection\", function(v, w) {\n            if (((p && ((w === p.getAttribute(\"data-medley-id\")))))) {\n                return;\n            }\n        ;\n        ;\n            ((p && g.removeClass(p, \"_6-7\")));\n            for (var x = 0; ((x < q.length)); ++x) {\n                if (((q[x].getAttribute(\"data-medley-id\") === w))) {\n                    g.addClass(q[x], \"_6-7\");\n                    p = q[x];\n                    return;\n                }\n            ;\n            ;\n            };\n        ;\n        });\n    };\n;\n    e.exports = n;\n});\n__d(\"TimelineOGCollectionAddSelector\", [\"AsyncRequest\",\"DOM\",\"Form\",\"TidyArbiterMixin\",\"copyProperties\",\"csx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"DOM\"), i = b(\"Form\"), j = b(\"TidyArbiterMixin\"), k = b(\"copyProperties\"), l = b(\"csx\"), m = b(\"tidyEvent\");\n    function n(o, p, q, r) {\n        this._endpoint = q;\n        this._button = o;\n        this._buttonParent = o.parentNode;\n        this._audienceSelector = r;\n        var s = h.JSBNG__find(o, \"._4ihv\");\n        n.inform(\"addButton\", {\n            button: s,\n            root: this._buttonParent\n        });\n        m([p.getMenu().subscribe(\"rendered\", function(t, u) {\n            n.inform(\"menuOpened\", {\n                audienceSelector: r\n            });\n            h.appendContent(h.JSBNG__find(u, \"._54ng\"), r);\n        }),p.subscribe(\"itemselected\", this._onChange.bind(this)),]);\n    };\n;\n    k(n, j);\n    k(n.prototype, j, {\n        _onChange: function(o, p) {\n            var q = p.getValue(), r = ((this.inform(\"addedToCollection\", q) || {\n            }));\n            new g(this._endpoint).setData(k(i.serialize(this._audienceSelector), r, {\n                action: \"add\",\n                collection_token: q,\n                mechanism: \"add_selector\"\n            })).send();\n        }\n    });\n    e.exports = n;\n});\n__d(\"TimelineCurationNUXController\", [\"AppSectionCurationState\",\"AsyncRequest\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"OGCollectionAddMenu\",\"TimelineOGCollectionAddSelector\",\"URI\",\"$\",\"csx\",\"cx\",\"tidyEvent\",], function(a, b, c, d, e, f) {\n    var g = b(\"AppSectionCurationState\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"OGCollectionAddMenu\"), m = b(\"TimelineOGCollectionAddSelector\"), n = b(\"URI\"), o = b(\"$\"), p = b(\"csx\"), q = b(\"cx\"), r = b(\"tidyEvent\"), s = 5, t = \"pagelet_timeline_medley_movies\", u = 165, v, w, x, y, z, aa, ba = [], ca = {\n        reports: 0,\n        about: 1,\n        section: 2,\n        section_privacy: 3,\n        add_button: 4,\n        privacy: 5,\n        0: \"reports\",\n        1: \"about\",\n        2: \"section\",\n        3: \"section_privacy\",\n        4: \"add_button\",\n        5: \"privacy\"\n    };\n    function da() {\n        ba.forEach(function(na) {\n            ((na.button && na.button.setAttribute(\"data-hover\", \"tooltip\")));\n            ((na.listener && na.listener.remove()));\n        });\n        ba.length = 0;\n    };\n;\n    function ea(na) {\n        if (z[na]) {\n            z[na].destroy();\n            delete z[na];\n            ((((na === \"add_button\")) && da()));\n        }\n    ;\n    ;\n        ((((aa[na] && aa[na].parentNode)) && j.remove(aa[na])));\n    };\n;\n    function fa(na) {\n        if (!i.hasClass(na, \"_50_y\")) {\n            i.addClass(na, \"_50_y\");\n            d([\"Animation\",], function(oa) {\n                new oa(na).to(\"opacity\", 0).duration(300).ease(oa.ease.end).hide().go();\n            });\n        }\n    ;\n    ;\n    };\n;\n    function ga(na) {\n        ha(na);\n        var oa = ((ca[na] + 1));\n        ((oa && ia(ca[oa])));\n    };\n;\n    function ha(na) {\n        new h(\"/ajax/timeline/collections/tour/curation/\").setAllowCrossPageTransition(true).setData({\n            step: na\n        }).send();\n        ea(na);\n    };\n;\n    function ia(na) {\n        y = na;\n        switch (na) {\n          case \"reports\":\n            d([\"TimelineController\",], function(oa) {\n                oa.runOnceWhenSectionFullyLoaded(function() {\n                    ka(j.JSBNG__find(o(\"timeline_tab_content\"), \"._3rbg\"), na);\n                }, \"recent\", \"0\");\n            });\n            break;\n          case \"about\":\n            v = j.scry(o(\"fbTimelineHeadline\"), \"._6-6\")[1];\n            w = r(k.listen(v, \"click\", function() {\n                v = null;\n                w.remove();\n                y = \"section\";\n            }));\n            ka(v, na);\n            break;\n          case \"section\":\n            if (v) {\n                n(v.getAttribute(\"href\")).go();\n                v = null;\n                ((w && w.remove()));\n            }\n             else d([\"OnVisible\",\"TimelineMedley\",], function(oa, pa) {\n                j.appendContent(j.JSBNG__find(o(\"pagelet_timeline_main_column\"), \"._2w3\"), aa.section);\n                r(k.listen(aa.section, \"click\", function() {\n                    pa.scrollToSection(t, u, 1);\n                    fa(aa.section);\n                }));\n                pa.loadToSection(t, function() {\n                    ka(o(t), na);\n                    var qa = new oa(o(t), function() {\n                        fa(aa.section);\n                        qa.remove();\n                    }, false, -u);\n                });\n            });\n        ;\n        ;\n            break;\n          case \"section_privacy\":\n            d([\"TimelineAppSectionCuration\",], function(oa) {\n                oa.informState(g.showItems, t);\n                ka(j.scry(o(t), \".audienceSelector\")[0], na);\n            });\n            break;\n          case \"privacy\":\n            k.fire(x, \"click\");\n            break;\n        };\n    ;\n    };\n;\n    function ja(na, oa) {\n        if (z.add_button) {\n            var pa = j.scry(oa, \"[data-hover]\")[0];\n            ba.push({\n                button: pa,\n                listener: r(k.listen(na, \"mouseenter\", function() {\n                    x = na;\n                    ka(na, \"add_button\");\n                }))\n            });\n            ((pa && pa.removeAttribute(\"data-hover\")));\n        }\n    ;\n    ;\n    };\n;\n    function ka(na, oa) {\n        if (z[oa]) {\n            z[oa].setContext(na).setOffsetX(5).show();\n            if (((oa === \"privacy\"))) {\n                ea(\"add_button\");\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n    };\n;\n    function la(na, oa, pa) {\n        var qa = pa.getAttribute(\"data-action\");\n        if (((((qa === \"next\")) || ((qa === \"done\"))))) {\n            ga(na);\n        }\n         else ha(na);\n    ;\n    ;\n    };\n;\n    var ma = {\n        init: function(na) {\n            var oa = na.next_step, pa = ca[oa];\n            z = na.dialogs;\n            aa = ((na.links ? na.links : []));\n            da();\n            if (((((oa === \"section\")) && ((oa !== y))))) {\n                ea(\"section\");\n                ea(\"section_privacy\");\n                pa += 2;\n                oa = ca[pa];\n            }\n        ;\n        ;\n            {\n                var fin275keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin275i = (0);\n                var qa;\n                for (; (fin275i < fin275keys.length); (fin275i++)) {\n                    ((qa) = (fin275keys[fin275i]));\n                    {\n                        r(z[qa].subscribe(\"button\", la.curry(qa)));\n                    ;\n                    };\n                };\n            };\n        ;\n            if (z.add_button) {\n                var ra = ((na.isViewingSelf ? m : l));\n                r([ra.subscribe(\"menuOpened\", function(sa, ta) {\n                    ka.curry(j.JSBNG__find(ta.audienceSelector, \".audienceSelector\"), \"privacy\").defer(s);\n                }),ra.subscribe(\"addButton\", function(sa, ta) {\n                    ja.curry(ta.button, ta.root).defer(s);\n                }),]);\n            }\n        ;\n        ;\n            if (((na.isViewingSelf && ((pa < ca.add_button))))) {\n                ia(oa);\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = ma;\n});\n__d(\"TimelineStickyRightColumn\", [\"Arbiter\",\"CSS\",\"DOMQuery\",\"JSBNG__Event\",\"PhotoSnowlift\",\"Run\",\"Style\",\"TimelineContentLoader\",\"Vector\",\"UserAgent\",\"csx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOMQuery\"), j = b(\"JSBNG__Event\"), k = b(\"PhotoSnowlift\"), l = b(\"Run\"), m = b(\"Style\"), n = b(\"TimelineContentLoader\"), o = b(\"Vector\"), p = b(\"UserAgent\"), q = b(\"csx\"), r = b(\"queryThenMutateDOM\"), s = 100, t = 15, u = 15, v = 71, w = false, x = null, y = null, z, aa, ba, ca, da, ea, fa, ga;\n    function ha() {\n        if (k.getInstance().isOpen) {\n            return;\n        }\n    ;\n    ;\n        z = n.getCurrentSection();\n        if (((!z || !z.rightColumnFinished))) {\n            return;\n        }\n    ;\n    ;\n        var pa = i.scry(z.node, \"._3rbf\")[0], qa = i.scry(z.node, \"._3rbh\")[0];\n        aa = ((pa ? pa.offsetHeight : 0));\n        ba = ((qa ? qa.offsetHeight : 0));\n        ca = o.getViewportDimensions().y;\n        fa = ((pa ? o.getElementPosition(pa).y : 0));\n        ga = ((JSBNG__document.body.clientWidth < JSBNG__document.body.scrollWidth));\n    };\n;\n    function ia() {\n        if (k.getInstance().isOpen) {\n            return;\n        }\n    ;\n    ;\n        if (((y && ((y !== z))))) {\n            var pa = i.scry(y.node, \"._3rbh\")[0];\n            if (pa) {\n                ka(pa, \"\", \"\", \"\");\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        var qa = i.scry(z.node, \"._3rbh\")[0];\n        if (!qa) {\n            return;\n        }\n    ;\n    ;\n        if (ga) {\n            ka(qa, \"\", \"\", \"\");\n            return;\n        }\n    ;\n    ;\n        if (((!z || !z.rightColumnFinished))) {\n            return;\n        }\n    ;\n    ;\n        ja(z);\n        y = ((h.hasClass(qa, \"fixed_always\") ? z : null));\n    };\n;\n    function ja(pa) {\n        if (((((ba >= aa)) || ((aa <= ca))))) {\n            return;\n        }\n    ;\n    ;\n        ea = da;\n        da = o.getScrollPosition().y;\n        var qa, ra = i.scry(pa.node, \"._3rbh\")[0];\n        if (!ra) {\n            return;\n        }\n    ;\n    ;\n        if (((da <= ((fa - la()))))) {\n            ka(ra, \"\", \"\", \"\");\n            return;\n        }\n    ;\n    ;\n        if (((((aa + fa)) <= ((da + Math.min(((ba + la())), ((((ca - u)) - v)))))))) {\n            ka(ra, \"absolute\", \"\", ((u + \"px\")));\n            return;\n        }\n    ;\n    ;\n        if (((ba > ((((ca - u)) - la()))))) {\n            if (((da < ea))) {\n                var sa = false;\n                if (((ra.style.position === \"absolute\"))) {\n                    if (((((ra.style.JSBNG__top !== \"\")) && ((((((da + la())) - fa)) <= parseInt(ra.style.JSBNG__top, 10)))))) {\n                        sa = true;\n                    }\n                     else if (((((ra.style.bottom !== \"\")) && ((da <= ((((((fa + aa)) - la())) - ba))))))) {\n                        sa = true;\n                    }\n                    \n                ;\n                }\n            ;\n            ;\n                if (sa) {\n                    ka(ra, \"fixed\", ((la() + \"px\")), \"\");\n                    return;\n                }\n                 else if (((((ra.style.position === \"absolute\")) && ra.style.JSBNG__top))) {\n                    return;\n                }\n                 else if (h.hasClass(ra, \"fixed_always\")) {\n                    if (((parseInt(ra.style.JSBNG__top, 10) >= la()))) {\n                        return;\n                    }\n                ;\n                ;\n                    qa = ((((da - fa)) - ((ba - ((ca - v))))));\n                    if (ea) {\n                        qa += ((ea - da));\n                    }\n                ;\n                ;\n                    ka(ra, \"absolute\", ((qa + \"px\")), \"\");\n                    return;\n                }\n                \n                \n            ;\n            ;\n            }\n             else {\n                var ta = false;\n                if (((((ra.style.position === \"absolute\")) || ((((ra.style.position === \"\")) && !h.hasClass(ra, \"fixed_always\")))))) {\n                    qa = ((ra.style.JSBNG__top ? parseInt(ra.style.JSBNG__top, 10) : 0));\n                    if (((((da + ca)) >= ((((((fa + qa)) + ba)) + v))))) {\n                        ta = true;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n                if (ta) {\n                    qa = ((((((ca - ba)) - u)) - v));\n                    ka(ra, \"fixed\", ((qa + \"px\")), \"\");\n                    return;\n                }\n                 else if (((da == ea))) {\n                    return;\n                }\n                 else if (h.hasClass(ra, \"fixed_always\")) {\n                    if (((parseInt(ra.style.JSBNG__top, 10) >= la()))) {\n                        qa = ((((da - fa)) + la()));\n                        if (ea) {\n                            qa += ((ea - da));\n                        }\n                    ;\n                    ;\n                        ka(ra, \"absolute\", ((qa + \"px\")), \"\");\n                        return;\n                    }\n                ;\n                ;\n                }\n                 else if (((ra.style.position === \"absolute\"))) {\n                    return;\n                }\n                \n                \n                \n            ;\n            ;\n            }\n        ;\n        ;\n        }\n         else ka(ra, \"fixed\", ((la() + \"px\")), \"\");\n    ;\n    ;\n    };\n;\n    function ka(pa, qa, ra, sa) {\n        m.set(pa, \"bottom\", sa);\n        if (((qa === \"fixed\"))) {\n            h.addClass(pa, \"fixed_always\");\n            m.set(pa, \"position\", \"\");\n        }\n         else {\n            h.removeClass(pa, \"fixed_always\");\n            m.set(pa, \"position\", qa);\n        }\n    ;\n    ;\n        m.set(pa, \"JSBNG__top\", ra);\n        g.inform(\"reflow\");\n    };\n;\n    function la() {\n        return ((h.hasClass(JSBNG__document.documentElement, \"tinyViewport\") ? t : s));\n    };\n;\n    function ma() {\n        r(ha, ia);\n    };\n;\n    function na() {\n        w = false;\n        y = null;\n        while (x.length) {\n            x.pop().remove();\n        ;\n        };\n    ;\n        x = null;\n    };\n;\n    var oa = {\n        init: function() {\n            if (((w || ((p.ie() < 8))))) {\n                return;\n            }\n        ;\n        ;\n            w = true;\n            x = [j.listen(window, \"JSBNG__scroll\", ma),j.listen(window, \"resize\", ma),];\n            l.onLeave(na);\n        },\n        adjust: function() {\n            if (w) {\n                ha();\n                ia();\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = oa;\n});");
36713 // 18229
36714 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o15,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yg/r/5QLY1f97RlL.js",o16);
36715 // undefined
36716 o15 = null;
36717 // undefined
36718 o16 = null;
36719 // 18241
36720 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"jsIYP\",]);\n}\n;\n__d(\"AdsCurrency\", [\"AdsCurrencyConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"AdsCurrencyConfig\").currencies;\n    function h(m) {\n        if (g[m]) {\n            return g[m][0]\n        };\n        return null;\n    };\n    function i(m) {\n        if (g[m]) {\n            return g[m][1]\n        };\n        return null;\n    };\n    function j(m) {\n        if (g[m]) {\n            return (1 * g[m][2])\n        };\n        return 1;\n    };\n    var k = [];\n    for (var l in g) {\n        if (g.hasOwnProperty(l)) {\n            k.push(l);\n        };\n    };\n    f.getFormat = h;\n    f.getSymbol = i;\n    f.getOffset = j;\n    f.currencyMapKeys = k;\n});\n__d(\"ads-lib-formatters\", [\"AdsCurrency\",], function(a, b, c, d, e, f) {\n    var g = b(\"AdsCurrency\"), h = \"USD\";\n    function i(t, u, v) {\n        t = (t || \"\");\n        v = (v || \"\");\n        u = ((typeof u === \"undefined\") ? t.length : u);\n        return ((t.length > u) ? ((t.substr(0, (u - v.length)) + v)) : t);\n    };\n    function j(t, u) {\n        if (((u === undefined) || (u === null))) {\n            u = \"\";\n        };\n        return function(v) {\n            return (!v ? u : i(v, t, \"...\"));\n        };\n    };\n    function k(t, u, v, w) {\n        if ((t === \"N/A\")) {\n            return t\n        };\n        t = (t || 0);\n        v = (v || \"\");\n        w = (w || \".\");\n        t = ((u !== null) ? l(t, u) : (t + \"\"));\n        var x = t.split(\".\"), y = x[0], z = x[1], aa = \"\", ba = /(\\d)(\\d\\d\\d)($|\\D)/, ca = ((\"$1\" + v) + \"$2$3\");\n        while (((aa = y.replace(ba, ca)) != y)) {\n            y = aa;;\n        };\n        var da = y;\n        if (z) {\n            da += (w + z);\n        };\n        return da;\n    };\n    function l(t, u) {\n        var v = Math.pow(10, u);\n        t = ((Math.round((t * v)) / v) + \"\");\n        if (!u) {\n            return t\n        };\n        var w = t.indexOf(\".\"), x = 0;\n        if ((w == -1)) {\n            t += \".\";\n            x = u;\n        }\n         else x = (u - (((t.length - w) - 1)));\n    ;\n        for (var y = 0, z = x; (y < z); y++) {\n            t += \"0\";;\n        };\n        return t;\n    };\n    function m(t) {\n        return function(u) {\n            return k(u, (t || 0), \",\", \".\");\n        };\n    };\n    function n(t, u) {\n        var v = ((u === false) ? 1 : 100);\n        return function(w) {\n            return (k((w * v), (t || 0), \",\", \".\") + \"%\");\n        };\n    };\n    var o = {\n    };\n    function p(t, u, v) {\n        if ((t === undefined)) {\n            t = 2;\n        };\n        if ((v === undefined)) {\n            v = false;\n        };\n        u = (u || h);\n        var w = ((((u + \"-\") + t) + \"-\") + v);\n        if (!o[w]) {\n            var x = (g.getFormat(u) || g.getFormat(h)), y = (g.getSymbol(u) || g.getSymbol(h)), z = (g.getOffset(u) || g.getOffset(h));\n            x = x.replace(\"{symbol}\", y);\n            o[w] = function(aa) {\n                if (v) {\n                    aa = (aa / z);\n                };\n                if (!((aa + \"\")).match(/^\\-?[\\d\\.,]*$/)) {\n                    return \"N/A\"\n                };\n                var ba = k(aa, t, \",\", \".\");\n                return x.replace(\"{amount}\", ba);\n            };\n        }\n    ;\n        return o[w];\n    };\n    function q(t) {\n        t = ((t + \"\")).trim().replace(/^[^\\d]*\\-/, \"\\u0002\");\n        if (!(((/^\\u0002?(\\d+,\\d*){2,}$/.test(t)) || (/^\\u0002?(\\d+\\.\\d*){2,}$/.test(t))))) {\n            t = t.replace(/[\\.,](\\d*\\D*)$/, \"\\u0001$1\");\n        };\n        t = t.replace(/[^0-9\\u0001\\u0002]/g, \"\").replace(\"\\u0001\", \".\").replace(\"\\u0002\", \"-\");\n        return (+t || 0);\n    };\n    function r() {\n        return function(t) {\n            return (k(t, 0, \",\", \".\") + \"%\");\n        };\n    };\n    function s(t) {\n        var u = t.currency(), v = ((t.offset() == 100) ? 2 : 0);\n        return p(v, u);\n    };\n    f.createTextTruncator = j;\n    f.chopString = i;\n    f.parseNumber = q;\n    f.formatNumber = k;\n    f.createNumberFormatter = m;\n    f.createPercentFormatter = n;\n    f.createMoneyFormatter = p;\n    f.createMoneyFormatterForAccount = s;\n    f.createInflationFormatter = r;\n});\n__d(\"ComposerXDatepickerIconReset\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    function i(j) {\n        g.removeClass(j.element, \"_4_na\");\n        g.removeClass(j.element, \"_509o\");\n    };\n    e.exports = i;\n});\n__d(\"legacy:dom-html\", [\"HTML\",], function(a, b, c, d) {\n    a.HTML = b(\"HTML\");\n}, 3);\n__d(\"ScrollingPager\", [\"Arbiter\",\"copyProperties\",\"CSS\",\"OnVisible\",\"UIPagelet\",\"$\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"CSS\"), j = b(\"OnVisible\"), k = b(\"UIPagelet\"), l = b(\"$\"), m = b(\"ge\"), n = {\n    };\n    function o(p, q, r, s) {\n        this.scroll_loader_id = p;\n        this.pagelet_src = q;\n        this.data = r;\n        this.options = (s || {\n        });\n        if (this.options.target_id) {\n            this.target_id = this.options.target_id;\n            this.options.append = true;\n        }\n         else this.target_id = p;\n    ;\n        this.scroll_area_id = this.options.scroll_area_id;\n        this.handler = null;\n    };\n    h(o, {\n        REGISTERED: \"ScrollingPager/registered\",\n        getInstance: function(p) {\n            return n[p];\n        }\n    });\n    h(o.prototype, {\n        setBuffer: function(p) {\n            this.options.buffer = p;\n            (this.onvisible && this.onvisible.setBuffer(p));\n        },\n        getBuffer: function() {\n            return this.options.buffer;\n        },\n        register: function() {\n            this.onvisible = new j(l(this.scroll_loader_id), this.getHandler(), false, this.options.buffer, false, m(this.scroll_area_id));\n            n[this.scroll_loader_id] = this;\n            g.inform(o.REGISTERED, {\n                id: this.scroll_loader_id\n            });\n        },\n        getInstance: function(p) {\n            return n[p];\n        },\n        getHandler: function() {\n            if (this.handler) {\n                return this.handler\n            };\n            function p(q) {\n                var r = m(this.scroll_loader_id);\n                if (!r) {\n                    this.onvisible.remove();\n                    return;\n                }\n            ;\n                i.addClass(r.firstChild, \"async_saving\");\n                var s = this.options.handler;\n                this.options.handler = function() {\n                    g.inform(\"ScrollingPager/loadingComplete\");\n                    (s && s.apply(null, arguments));\n                };\n                if (q) {\n                    this.data.pager_fired_on_init = true;\n                };\n                k.loadFromEndpoint(this.pagelet_src, this.target_id, this.data, this.options);\n            };\n            return p.bind(this);\n        },\n        setHandler: function(p) {\n            this.handler = p;\n        },\n        removeOnVisible: function() {\n            this.onvisible.remove();\n        },\n        checkBuffer: function() {\n            (this.onvisible && this.onvisible.checkBuffer());\n        }\n    });\n    e.exports = o;\n});\n__d(\"StickyController\", [\"Event\",\"CSS\",\"Style\",\"Vector\",\"copyProperties\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CSS\"), i = b(\"Style\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"queryThenMutateDOM\");\n    function m(n, o, p, q) {\n        this._element = n;\n        this._marginTop = o;\n        this._onchange = p;\n        this._proxy = (q || n.parentNode);\n        this._boundQueryOnScroll = this._queryOnScroll.bind(this);\n        this._boundMutateOnScroll = this._mutateOnScroll.bind(this);\n    };\n    k(m.prototype, {\n        handleScroll: function() {\n            l(this._boundQueryOnScroll, this._boundMutateOnScroll);\n        },\n        _queryOnScroll: function() {\n            this._shouldFix = (j.getElementPosition(this._proxy, \"viewport\").y <= this._marginTop);\n        },\n        _mutateOnScroll: function() {\n            var n = this._shouldFix;\n            if ((this.isFixed() !== n)) {\n                i.set(this._element, \"top\", (n ? (this._marginTop + \"px\") : \"\"));\n                h.conditionClass(this._element, \"fixed_elem\", n);\n                (this._onchange && this._onchange(n));\n            }\n        ;\n        },\n        start: function() {\n            if (this._event) {\n                return\n            };\n            this._event = g.listen(window, \"scroll\", this.handleScroll.bind(this));\n            this.handleScroll.bind(this).defer();\n        },\n        stop: function() {\n            (this._event && this._event.remove());\n            this._event = null;\n        },\n        isFixed: function() {\n            return h.hasClass(this._element, \"fixed_elem\");\n        }\n    });\n    e.exports = m;\n});\n__d(\"tidyEvent\", [\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"Run\"), h = [];\n    function i() {\n        while (h.length) {\n            var k = h.shift();\n            if (k.remove) {\n                (k._handler && k.remove());\n            }\n             else (k && k.unsubscribe());\n        ;\n        };\n    };\n    function j(k) {\n        if (!h.length) {\n            g.onLeave(i);\n        };\n        if (Array.isArray(k)) {\n            h = h.concat(k);\n        }\n         else h.push(k);\n    ;\n        return k;\n    };\n    e.exports = j;\n});\n__d(\"TriggerablePageletLoader\", [\"function-extensions\",\"CSS\",\"Event\",\"OnVisible\",\"Run\",\"UIPagelet\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"CSS\"), h = b(\"Event\"), i = b(\"OnVisible\"), j = b(\"Run\"), k = b(\"UIPagelet\"), l = b(\"copyProperties\"), m = [];\n    function n(p) {\n        if (!m[p]) {\n            return\n        };\n        (m[p].__trigger && m[p].__trigger.remove());\n        delete m[p];\n    };\n    function o(p, q) {\n        this._disabledTriggerKeys = [];\n        this._pageletConfig = p;\n        this._loaded = false;\n        this._loading = false;\n        this._triggerKeys = [];\n        if (q) {\n            q.forEach(this.addTrigger.bind(this));\n        };\n        j.onLeave(this.destroy.bind(this));\n    };\n    l(o, {\n        removeTrigger: function(p) {\n            for (var q in m) {\n                if ((m[q] && (m[q].node === p))) {\n                    n(q);\n                };\n            };\n        },\n        TRIGGER_CLICK: \"click\",\n        TRIGGER_ONVISIBLE: \"onvisible\",\n        TRIGGER_NOW: \"now\"\n    });\n    l(o.prototype, {\n        addTrigger: function(p) {\n            p.__trigger = this._createTrigger(p);\n            m.push(p);\n            this._triggerKeys.push((m.length - 1));\n        },\n        destroy: function() {\n            this.removeTriggers();\n            if (this._pageletRequest) {\n                this._pageletRequest.cancel();\n                this._pageletRequest = null;\n                this._loading = false;\n                this._loaded = false;\n            }\n        ;\n        },\n        disableTriggers: function() {\n            this._triggerKeys.forEach(function(p) {\n                if (m[p]) {\n                    m[p].__trigger.remove();\n                    this._disabledTriggerKeys.push(p);\n                }\n            ;\n            }.bind(this));\n        },\n        enableTriggers: function() {\n            if ((this._loaded || this._loading)) {\n                return\n            };\n            this._disabledTriggerKeys.forEach(function(p) {\n                if (m[p]) {\n                    m[p].__trigger = this._createTrigger(m[p]);\n                };\n            }.bind(this));\n            this._disabledTriggerKeys.length = 0;\n        },\n        _createTrigger: function(p) {\n            if ((this._loaded || this._loading)) {\n                return\n            };\n            var q = this.onTrigger.bind(this, p);\n            switch (p.type) {\n              case o.TRIGGER_CLICK:\n                return h.listen(p.node, \"click\", function(r) {\n                    r.prevent();\n                    q();\n                });\n              case o.TRIGGER_ONVISIBLE:\n                return new i(p.node, q, p.onVisibleStrict, p.onVisibleBuffer);\n              case o.TRIGGER_NOW:\n                return q();\n              default:\n            \n            };\n        },\n        load: function(p) {\n            if ((this._loaded || this._loading)) {\n                return\n            };\n            this._loading = true;\n            this._loaded = false;\n            g.addClass(this._pageletConfig.node, \"async_saving\");\n            if ((p && p.node)) {\n                g.addClass(p.node, \"async_saving\");\n            };\n            var q = (this._pageletConfig.options || {\n            });\n            q.displayCallback = this.onLoad.bind(this, p);\n            if ((q.crossPage === undefined)) {\n                q.crossPage = true;\n            };\n            this._pageletRequest = k.loadFromEndpoint(this._pageletConfig.controller, this._pageletConfig.node, this._pageletConfig.data, q);\n        },\n        onLoad: function(p, q) {\n            this._loaded = true;\n            this._pageletRequest = null;\n            g.removeClass(this._pageletConfig.node, \"async_saving\");\n            if ((p && p.node)) {\n                g.removeClass(p.node, \"async_saving\");\n            };\n            if (this._pageletConfig.displayCallback) {\n                this._pageletConfig.displayCallback(q);\n            }\n             else q();\n        ;\n        },\n        onTrigger: function(p) {\n            (p.callback && p.callback(p));\n            if ((!this._loaded && !this._loading)) {\n                this.load(p);\n            };\n        },\n        removeTriggers: function(p) {\n            this._triggerKeys.forEach(function(q) {\n                if ((m[q] && ((!p || (m[q].type === p))))) {\n                    n(q);\n                };\n            });\n        }\n    });\n    e.exports = o;\n});\n__d(\"MedleyPageletRequestData\", [\"Arbiter\",\"TidyArbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"TidyArbiter\"), i = {\n    }, j = {\n        get: function() {\n            return i;\n        },\n        set: function(k) {\n            i = k;\n            h.inform(\"Medley/requestDataSet\", null, g.BEHAVIOR_STATE);\n        }\n    };\n    e.exports = j;\n});\n__d(\"TimelineSection\", [\"Arbiter\",\"DOMScroll\",\"DoublyLinkedListMap\",\"Run\",\"TidyArbiterMixin\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOMScroll\"), i = b(\"DoublyLinkedListMap\"), j = b(\"Run\"), k = b(\"TidyArbiterMixin\"), l = b(\"copyProperties\"), m = b(\"ge\"), n = null;\n    function o() {\n        n = null;\n    };\n    function p(q, r, s) {\n        this.id = q;\n        this.label = s;\n        this.nodeID = r;\n        this._parentSection = null;\n        this.childSections = new i();\n        this._isLoaded = false;\n        p.inform.bind(p, (\"sectionInitialized/\" + q), {\n            section: this\n        }, g.BEHAVIOR_STATE).defer();\n    };\n    l(p, k, {\n        callWithSection: function(q, r) {\n            this.subscribe((\"sectionInitialized/\" + q), function(s, t) {\n                r(t.section);\n            });\n        },\n        setActiveSectionID: function(q) {\n            (!n && j.onLeave(o));\n            n = q;\n        }\n    });\n    l(p.prototype, {\n        appendSection: function(q) {\n            this.childSections.append(q.id, q);\n            q._parentSection = this;\n        },\n        freeze: function() {\n            this.freezeChildren();\n        },\n        freezeChildren: function() {\n            var q = this.childSections.getHead();\n            while (q) {\n                (!q.isActive() && q.freeze());\n                q = q.getNext();\n            };\n        },\n        getNext: function() {\n            return (this._parentSection && this._parentSection.childSections.getNext(this.id));\n        },\n        getPrev: function() {\n            return (this._parentSection && this._parentSection.childSections.getPrev(this.id));\n        },\n        isActive: function() {\n            var q = this;\n            while (q) {\n                if ((q.id === n)) {\n                    return true\n                };\n                q = q._parentSection;\n            };\n            return false;\n        },\n        isLoaded: function() {\n            return this._isLoaded;\n        },\n        setIsLoaded: function(q) {\n            this._isLoaded = q;\n            return this;\n        },\n        scrollTo: function() {\n            if (!m(this.nodeID)) {\n                return\n            };\n            h.scrollTo(this.getNode(), true, false, false, h.scrollTo.bind(this).curry(this.getNode(), 0));\n        },\n        thaw: function() {\n            this.thawChildren();\n        },\n        thawChildren: function() {\n            var q = this.childSections.getHead();\n            while (q) {\n                q.thaw();\n                q = q.getNext();\n            };\n        }\n    });\n    e.exports = p;\n});\n__d(\"TimelineDynamicSection\", [\"Class\",\"DOM\",\"TimelineSection\",\"copyProperties\",\"cx\",\"ge\",\"TimelineDynamicSectionConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"TimelineSection\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"ge\"), m = b(\"TimelineDynamicSectionConfig\");\n    function n(o, p, q) {\n        this._controller = p;\n        this._data = null;\n        this._node = null;\n        this._triggerLoader = null;\n        this.parent.construct(this, o, o, q);\n    };\n    g.extend(n, i);\n    j(n.prototype, {\n        _createNode: function() {\n            return h.create(\"div\", {\n                className: \"_30f\",\n                id: this.nodeID\n            }, [m.throbber.cloneNode(true),]);\n        },\n        getNode: function() {\n            if (!this._node) {\n                this._node = (l(this.nodeID) || this._createNode());\n            };\n            return this._node;\n        }\n    });\n    e.exports = n;\n});\n__d(\"TimelineAppCollection\", [\"function-extensions\",\"Class\",\"CSS\",\"DOM\",\"DOMQuery\",\"Event\",\"MedleyPageletRequestData\",\"NumberFormatConfig\",\"PageTransitions\",\"Parent\",\"Style\",\"TidyArbiter\",\"TidyArbiterMixin\",\"TimelineDynamicSection\",\"TimelineSection\",\"TriggerablePageletLoader\",\"TimelineDynamicSectionConfig\",\"copyProperties\",\"csx\",\"cx\",\"ads-lib-formatters\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"Event\"), l = b(\"MedleyPageletRequestData\"), m = b(\"NumberFormatConfig\"), n = b(\"PageTransitions\"), o = b(\"Parent\"), p = b(\"Style\"), q = b(\"TidyArbiter\"), r = b(\"TidyArbiterMixin\"), s = b(\"TimelineDynamicSection\"), t = b(\"TimelineSection\"), u = b(\"TriggerablePageletLoader\"), v = b(\"TimelineDynamicSectionConfig\"), w = b(\"copyProperties\"), x = b(\"csx\"), y = b(\"cx\"), z = b(\"ads-lib-formatters\"), aa = b(\"ge\"), ba = 500, ca = 8;\n    function da(ha) {\n        var ia = aa(ga.getIDByToken(ha));\n        if (!ia) {\n            return\n        };\n        return i.scry(ia, \"._620\")[0];\n    };\n    function ea(ha, ia) {\n        ((ia && !ia.isDefaultRequested()) && ia.prevent());\n        var ja = ha._parentSection, ka = ja._parentSection;\n        t.setActiveSectionID(ja.id);\n        ja.setActiveCollection(ha);\n        if ((ja._sk === ka._sk)) {\n            if (!h.hasClass(ka.getNode(), \"_c4f\")) {\n                h.addClass(ka.getNode(), \"_c4f\");\n                ka.freezeChildren();\n            }\n        ;\n            (ha._isFullyLoaded && ka.addSectionTeasers());\n        }\n    ;\n        if ((!ka.isMedleyView() && (ja._sk === ka._sk))) {\n            var la = ha.href;\n            n.rewriteCurrentURI(n.getCurrentURI().getUnqualifiedURI(), la);\n        }\n    ;\n    };\n    function fa(ha, ia) {\n        ia.data.overview = (ha._parentSection._sk !== ha._parentSection._parentSection._sk);\n        ia.data.cursor = null;\n        ea(ha);\n    };\n    function ga(ha, ia, ja, ka, la, ma) {\n        this._contentLoader = null;\n        this._isFrozen = false;\n        this._isFullyLoaded = false;\n        this._cursor = 0;\n        this._tabNode = ja;\n        this._tabCount = ((ka > 0) ? ka : 0);\n        this._token = ha;\n        this._ftid = null;\n        this.auxContent = null;\n        this.curationContent = null;\n        this._order = la;\n        this.href = ma;\n        this._sortContent = null;\n        this.refreshCount();\n        this.parent.construct(this, ga.getIDByToken(ha), ia);\n        if (!ja) {\n            return\n        };\n        if (aa(this.nodeID)) {\n            k.listen(ja, \"click\", ea.curry(this));\n        }\n         else this.createTriggerLoader.bind(this).defer();\n    ;\n    };\n    g.extend(ga, s);\n    w(ga, r, {\n        NEW_ITEM: \"TimelineAppCollection/newItem\",\n        ADDING_PLACEHOLDER: \"TimelineAppCollection/addingPlaceholder\",\n        addPlaceholderToCollection: function(ha, ia, ja) {\n            ja = ((typeof ja !== \"undefined\") ? ja : {\n            });\n            if (!ja.suppressCount) {\n                this.incrementCount(ga.getIDByToken(ha));\n            };\n            t.callWithSection(ga.getIDByToken(ha), function(ka) {\n                var la = i.scry(ia, \"._gx7\")[0].cloneNode(true), ma = i.scry(ia, \"._gx8 .img\")[0], na = i.scry(ia, \"._3owb\")[0], oa = (na && na.getAttribute(\"data-obj\"));\n                if ((!la || !oa)) {\n                    return\n                };\n                ka.inform(ga.ADDING_PLACEHOLDER);\n                var pa = da(ha);\n                if (!pa) {\n                    return\n                };\n                var qa = i.scry(pa, ((\"[data-obj=\\\"\" + oa) + \"\\\"]\"))[0], ra = i.create(\"div\", {\n                    className: \"_4-he\"\n                });\n                if (ma) {\n                    p.set(ra, \"background-image\", ((\"url(\" + ma.src) + \")\"));\n                };\n                var sa = i.create(\"div\", {\n                    className: \"_gx8\"\n                }, [ra,]), ta = i.create(\"div\", {\n                    className: \"_gx6\"\n                }, [la,]), ua = i.create(\"div\", {\n                    className: \"_3owb\"\n                }, [sa,ta,]), va = i.create(\"li\", {\n                    className: \"_5rz\",\n                    id: (\"collectionItemPlaceholder\" + oa)\n                }, [ua,]);\n                if ((qa && ja.replaceExistingElement)) {\n                    i.replace(qa.parentNode, va);\n                }\n                 else {\n                    if (qa) {\n                        i.remove(qa.parentNode);\n                    }\n                     else if ((ka.isOverview() && (pa.children.length >= ca))) {\n                        h.addClass(pa.children[(ca - 1)], \"_51k9\");\n                    }\n                ;\n                    i.prependContent(pa, va);\n                }\n            ;\n            });\n        },\n        replaceItem: function(ha, ia, ja) {\n            var ka = o.byClass(ha, \"_620\"), la = i.scry(ka, ((\"div[data-obj=\\\"\" + ia) + \"\\\"]\"))[0];\n            if (la) {\n                ga.inform(ga.NEW_ITEM, {\n                    grid: ka,\n                    newItem: ja\n                });\n                i.replace(la.parentNode, ja);\n            }\n        ;\n        },\n        addItemToCollection: function(ha, ia, ja) {\n            var ka = aa(ja);\n            if (!ka) {\n                return\n            };\n            var la = i.scry(ka, \"._620\")[0], ma = la.parentNode.nextSibling;\n            if ((ma && h.hasClass(ma, \"_3t3\"))) {\n                i.remove(la.lastChild);\n            };\n            this.inform(ga.NEW_ITEM, {\n                grid: la,\n                newItem: ha\n            });\n            var na = aa((\"collectionItemPlaceholder\" + ia));\n            if (na) {\n                i.replace(na, ha);\n                return;\n            }\n        ;\n            i.prependContent(la, ha);\n        },\n        createFromArray: function(ha) {\n            return ha.map(function(ia) {\n                return new ga(ia.token, ia.controller, ia.tab_node, ia.tab_count, ia.order, ia.href);\n            });\n        },\n        decrementCount: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                if ((ia._tabCount > 0)) {\n                    ia._tabCount--;\n                    ia.refreshCount();\n                    ia.flashCountIf();\n                }\n            ;\n            });\n        },\n        enableContentLoader: function(ha, ia, ja) {\n            t.callWithSection(ha, function(ka) {\n                ka.addContentLoader(ia, ja);\n            });\n        },\n        getIDByToken: function(ha) {\n            return (\"pagelet_timeline_app_collection_\" + ha);\n        },\n        incrementCount: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                ia._tabCount++;\n                ia.refreshCount();\n                ia.flashCountIf();\n            });\n        },\n        registerAuxContent: function(ha, ia) {\n            t.callWithSection(ha, function(ja) {\n                ja.registerAuxContent(ia);\n            });\n        },\n        registerAddCurationContent: function(ha, ia, ja, ka) {\n            t.callWithSection(ha, function(la) {\n                la.registerAddCurationContent(ia, ja, ka);\n            });\n        },\n        registerSortContent: function(ha, ia, ja) {\n            t.callWithSection(ha, function(ka) {\n                ka.registerSortContent(ia, ja);\n            });\n        },\n        setLoaded: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                ia.setIsLoaded(true);\n                ia._parentSection.inform(\"loaded\", ia);\n                ia._parentSection.unsetMinHeight();\n            });\n        },\n        setFullyLoaded: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                ia._isFullyLoaded = true;\n                var ja = ia._parentSection;\n                ((ja._sk === ja._parentSection._sk) && ja._parentSection.addSectionTeasers());\n            });\n        },\n        setFTID: function(ha, ia) {\n            t.callWithSection(ha, function(ja) {\n                ja.setFTID(ia);\n            });\n        },\n        switchToNullStateCurationContent: function(ha) {\n            t.callWithSection(ga.getIDByToken(ha), function(ia) {\n                ia.nullStateCurationContent();\n            });\n        }\n    });\n    w(ga.prototype, r, {\n        addContentLoader: function(ha, ia) {\n            this._cursor = ia;\n            q.subscribe(\"Medley/requestDataSet\", function() {\n                var ja = {\n                    node: ha\n                };\n                if (h.hasClass(ha, \"_3t3\")) {\n                    ja.type = u.TRIGGER_CLICK;\n                }\n                 else if (this._isFrozen) {\n                    i.remove(ha);\n                    ja.node = v.pager.cloneNode(true);\n                    i.appendContent(this.getNode(), ja.node);\n                    ja.type = u.TRIGGER_CLICK;\n                }\n                 else {\n                    ja.onVisibleBuffer = ba;\n                    ja.onVisibleStrict = true;\n                    ja.type = u.TRIGGER_ONVISIBLE;\n                }\n                \n            ;\n                if ((ja.type === u.TRIGGER_CLICK)) {\n                    ja.callback = t.setActiveSectionID.curry(this.id);\n                };\n                var ka = w({\n                    displayCallback: function(la) {\n                        i.remove(ja.node);\n                        la();\n                    },\n                    options: {\n                        append: true\n                    }\n                }, this.getDefaultPageletConfig());\n                ka.data.overview = this.isOverview();\n                this._triggerLoader = null;\n                this._contentLoader = new u(ka, [ja,]);\n            }.bind(this));\n        },\n        _createNode: function() {\n            var ha = this.parent._createNode();\n            ha.setAttribute(\"aria-role\", \"tabpanel\");\n            return ha;\n        },\n        createTriggerLoader: function() {\n            q.subscribe(\"Medley/requestDataSet\", function() {\n                var ha = this.getDefaultPageletConfig(), ia = {\n                    callback: fa.curry(this, ha),\n                    node: this._tabNode,\n                    type: u.TRIGGER_CLICK\n                };\n                this._triggerLoader = new u(ha, [ia,]);\n            }.bind(this));\n        },\n        disableContentLoader: function() {\n            (this._contentLoader && this._contentLoader.disableTriggers());\n        },\n        enableContentLoader: function() {\n            var ha = (this._triggerLoader || this._contentLoader);\n            (ha && ha.enableTriggers());\n        },\n        freeze: function() {\n            this._isFrozen = true;\n            if ((!this._contentLoader || this._contentLoader._loading)) {\n                return\n            };\n            this._contentLoader.removeTriggers(u.TRIGGER_ONVISIBLE);\n            var ha = j.scry(this.getNode(), \"._3t3\");\n            if (!ha.length) {\n                var ia = j.scry(this.getNode(), \"._359\")[0];\n                (ia.length && this.addContentLoader(ia, this._cursor));\n            }\n        ;\n        },\n        getCount: function() {\n            return this._tabCount;\n        },\n        getDefaultPageletConfig: function() {\n            return {\n                controller: this._controller,\n                data: w({\n                    collection_token: this._token,\n                    cursor: this._cursor\n                }, l.get(), {\n                    ftid: this._ftid,\n                    order: this._order\n                }, {\n                    sk: this._parentSection._sk\n                }),\n                node: this.getNode()\n            };\n        },\n        getMedleySiteKey: function() {\n            return this._parentSection._parentSection._sk;\n        },\n        flashCountIf: function() {\n            if ((this._parentSection.getActiveCollection() != this)) {\n                h.addClass(this._tabNode, \"_4-k9\");\n                setTimeout(h.removeClass.curry(this._tabNode, \"_4-k9\"), 800);\n            }\n        ;\n        },\n        isOverview: function() {\n            return (this._parentSection._sk != this._parentSection._parentSection._sk);\n        },\n        registerAuxContent: function(ha) {\n            this.auxContent = ha;\n            if ((ha.nodeType == 11)) {\n                this.auxContent = i.create(\"span\", null, ha);\n            };\n            if ((this._parentSection._activeCollection !== this)) {\n                h.hide(this.auxContent);\n            };\n            this._parentSection.addAuxContent(this.auxContent);\n        },\n        registerAddCurationContent: function(ha, ia, ja) {\n            if (this.curationContent) {\n                return\n            };\n            this.curationContent = (((ha.nodeType == 11)) ? i.create(\"span\", null, ha) : ha);\n            this.curationContentState = ia;\n            this._parentSection.addCurationContent(this.curationContent, this, ja);\n        },\n        nullStateCurationContent: function() {\n            this._parentSection.nullStateCurationContent();\n        },\n        registerSortContent: function(ha, ia) {\n            (this._sortContent && i.remove(this._sortContent));\n            this._sortContent = ha;\n            ia.subscribeOnce(\"change\", function(ja, ka) {\n                i.setContent(i.find(ha, \"._57oy\"), ka.label);\n                this._sort(ka.value);\n            }.bind(this));\n        },\n        refreshCount: function() {\n            if (!this._tabNode) {\n                return\n            };\n            var ha = j.find(this._tabNode, \"._3d0\");\n            if ((this._tabCount > 0)) {\n                i.setContent(ha, z.formatNumber(this._tabCount, 0, m.numberDelimiter, \"\"));\n            }\n             else i.setContent(ha, \"\");\n        ;\n        },\n        _resetContent: function() {\n            (this._contentLoader && this._contentLoader.destroy());\n            i.remove(this.getNode());\n            this._node = null;\n            i.appendContent(j.find(this._parentSection.getNode(), \"div._3i9\"), this.getNode());\n            this.addContentLoader(j.find(this.getNode(), \"._359\"), 0);\n        },\n        setFTID: function(ha) {\n            this._ftid = ha;\n        },\n        _sort: function(ha) {\n            this._order = ha;\n            this._resetContent();\n            var ia = this._parentSection, ja = ia._parentSection;\n            if ((!ja.isMedleyView() && (ia._sk === ja._sk))) {\n                var ka = n.getCurrentURI();\n                ka.addQueryData({\n                    order: this._order\n                });\n                n.rewriteCurrentURI(n.getCurrentURI().getUnqualifiedURI(), ka);\n            }\n        ;\n        },\n        thaw: function() {\n            this._isFrozen = false;\n        },\n        getToken: function() {\n            return this._token;\n        }\n    });\n    e.exports = ga;\n});\n__d(\"TimelineCommentsLoader\", [\"Event\",\"CommentPrelude\",\"CSS\",\"DOM\",\"Parent\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CommentPrelude\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Parent\"), l = b(\"emptyFunction\"), m = {\n        init: function() {\n            m.init = l;\n            g.listen(document.body, \"click\", function(n) {\n                var o = k.byClass(n.getTarget(), \"fbTimelineFeedbackCommentLoader\");\n                if (o) {\n                    n.kill();\n                    h.click(o, false);\n                    var p = k.byTag(o, \"form\"), q = j.scry(p, \"li.uiUfiViewAll input\");\n                    if (!q.length) {\n                        q = j.scry(p, \"li.fbUfiViewPrevious input\");\n                    };\n                    if (!q.length) {\n                        q = j.scry(p, \"a.UFIPagerLink\");\n                    };\n                    q[0].click();\n                    i.show(j.find(p, \"li.uiUfiComments\"));\n                    i.removeClass(o, \"fbTimelineFeedbackCommentLoader\");\n                }\n            ;\n            });\n        }\n    };\n    e.exports = m;\n});\n__d(\"TimelineConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        DS_HEIGHT: \"timeline-unit-height\",\n        DS_LOADED: \"timeline-capsule-loaded\",\n        DS_SIDEORG: \"timeline-unit-sideorg\",\n        DS_TAILBALANCE: \"timeline-capsule-tailbalance\",\n        DS_COLUMN_HEIGHT_DIFFERENTIAL: \"timeline-column-diff-height\",\n        FIXED_SIDE_LEFT: \"left\",\n        FIXED_SIDE_RIGHT: \"right\",\n        FIXED_SIDE_BOTH: \"both\",\n        FIXED_SIDE_NONE: \"none\",\n        SCROLL_TO_OFFSET: 30,\n        SUBSECTION_SCROLL_TO_OFFSET: 90,\n        SCRUBBER_DEFAULT_OFFSET: 38,\n        SECTION_LOADING: \"TimelineConstants/sectionLoading\",\n        SECTION_LOADED: \"TimelineConstants/sectionLoaded\",\n        SECTION_FULLY_LOADED: \"TimelineConstants/sectionFullyLoaded\",\n        SECTION_REGISTERED: \"TimelineConstants/sectionRegistered\"\n    };\n    e.exports = g;\n});\n__d(\"TimelineLegacySections\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        get: function(i) {\n            return g[i];\n        },\n        getAll: function() {\n            return g;\n        },\n        remove: function(i) {\n            delete g[i];\n        },\n        removeAll: function() {\n            g = {\n            };\n        },\n        set: function(i, j) {\n            g[i] = j;\n        }\n    };\n    e.exports = h;\n});\n__d(\"TimelineURI\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        TIMELINE_KEY: \"timeline\",\n        WALL_KEY: \"wall\",\n        parseURI: function(i) {\n            i = g(i);\n            var j = i.getQueryData(), k = i.getPath(), l = k.split(\"/\").slice(1);\n            if (((l[0] == \"people\") || (l[0] == \"pages\"))) {\n                l = l.slice(2);\n            };\n            var m = ((j.sk || l[1]) || h.TIMELINE_KEY);\n            if ((m == h.WALL_KEY)) {\n                m = h.TIMELINE_KEY;\n            };\n            var n = null, o = null;\n            if ((m == h.TIMELINE_KEY)) {\n                o = (parseInt(l[2], 10) || null);\n                n = (parseInt(l[3], 10) || null);\n            }\n        ;\n            return {\n                path: k,\n                id: (j.id || l[0]),\n                key: m,\n                viewas: (j.viewas ? j.viewas : 0),\n                filter: (j.filter ? j.filter : null),\n                year: o,\n                month: n,\n                friendship: !!j.and\n            };\n        }\n    };\n    e.exports = h;\n});\n__d(\"TimelineController\", [\"Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOMQuery\",\"Run\",\"ScrollingPager\",\"TidyArbiter\",\"TimelineConstants\",\"TimelineLegacySections\",\"TimelineURI\",\"Vector\",\"ViewportBounds\",\"$\",\"copyProperties\",\"ge\",\"tidyEvent\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOMQuery\"), l = b(\"Run\"), m = b(\"ScrollingPager\"), n = b(\"TidyArbiter\"), o = b(\"TimelineConstants\"), p = b(\"TimelineLegacySections\"), q = b(\"TimelineURI\"), r = b(\"Vector\"), s = b(\"ViewportBounds\"), t = b(\"$\"), u = b(\"copyProperties\"), v = b(\"ge\"), w = b(\"tidyEvent\"), x = b(\"queryThenMutateDOM\"), y = 358, z = 48, aa = 740, ba = 1285, ca = null, da = false, ea, fa, ga, ha = {\n    }, ia = {\n    }, ja = [], ka = null, la = null, ma = false, na = false, oa = 0, pa = false, qa = false, ra = false, sa = {\n    }, ta = false;\n    function ua() {\n        (ka && ka.remove());\n        ka = null;\n    };\n    function va(hb, ib, jb) {\n        jb = (jb || []);\n        if (ha[hb]) {\n            return ha[hb][ib].apply(ha[hb], jb)\n        };\n        ia[hb] = (ia[hb] || {\n        });\n        ia[hb][ib] = jb;\n        return false;\n    };\n    function wa() {\n        if (!(((pa || ra) || qa))) {\n            ua();\n            return;\n        }\n    ;\n        var hb = r.getScrollPosition();\n        pa = (pa && ab(v(\"rightCol\"), hb, \"paddingTop\", true));\n        qa = (qa && ab(t(\"pagelet_above_header_timeline\"), hb, \"top\"));\n        ra = (ra && ab(t(\"blueBar\"), hb, \"paddingTop\"));\n    };\n    var xa = 0;\n    function ya() {\n        xa = r.getScrollPosition();\n    };\n    function za() {\n        x(ya, function() {\n            var hb = ((oa === 0) || (xa.y >= oa));\n            va(gb.STICKY_HEADER, \"toggle\", [hb,]);\n            va(gb.CONTENT, \"checkCurrentSectionChange\");\n        }, \"TimelineController/scrollListener\");\n    };\n    function ab(hb, ib, jb, kb) {\n        if (!hb) {\n            ua();\n            return;\n        }\n    ;\n        if ((ib.y <= 0)) {\n            bb(hb, jb);\n            return false;\n        }\n         else {\n            var lb = (kb && gb.getCurrentScrubber());\n            if ((lb && i.hasClass(lb.getRoot(), \"fixed_elem\"))) {\n                bb(hb, jb);\n                return false;\n            }\n             else {\n                var mb = (parseInt(hb.style[jb], 10) || 0);\n                if ((ib.y < mb)) {\n                    i.addClass(hb, \"timeline_fixed\");\n                    hb.style[jb] = (ib.y + \"px\");\n                }\n                 else i.removeClass(hb, \"timeline_fixed\");\n            ;\n            }\n        ;\n        }\n    ;\n        return true;\n    };\n    function bb(hb, ib) {\n        hb.style[ib] = \"0px\";\n        i.removeClass(hb, \"timeline_fixed\");\n    };\n    function cb() {\n        x(gb.shouldShowWideAds, function() {\n            va(gb.ADS, \"adjustAdsType\", [ma,]);\n            va(gb.ADS, \"adjustAdsToFit\");\n            va(gb.CONTENT, \"adjustContentPadding\");\n            va(gb.STICKY_HEADER_NAV, \"adjustMenuHeights\");\n        }, \"TimelineController/resize\");\n    };\n    function db(hb, ib) {\n        if ((hb == \"sidebar/initialized\")) {\n            ta = true;\n        };\n        va(gb.ADS, \"adjustAdsType\", [gb.shouldShowWideAds(),]);\n    };\n    function eb(hb, ib) {\n        var jb = v(\"rightCol\");\n        if (jb) {\n            jb.style.paddingTop = (ib + \"px\");\n            pa = true;\n        }\n    ;\n        var kb = t(\"pagelet_above_header_timeline\");\n        if (kb.firstChild) {\n            t(\"above_header_timeline_placeholder\").style.height = (kb.offsetHeight + \"px\");\n            kb.style.top = (ib + \"px\");\n            qa = true;\n        }\n    ;\n        var lb = document.documentElement;\n        ra = ((lb.clientHeight < 400) || (lb.clientWidth < lb.scrollWidth));\n        if (ra) {\n            t(\"blueBar\").style.paddingTop = (ib + \"px\");\n        };\n        ka = g.listen(window, \"scroll\", wa);\n        h.inform(\"reflow\");\n    };\n    function fb() {\n        while (ja.length) {\n            ja.pop().remove();;\n        };\n        for (var hb in ha) {\n            (ha[hb].reset && ha[hb].reset());;\n        };\n        ua();\n        ga.unsubscribe();\n        ga = null;\n        ca = null;\n        ea = null;\n        ha = {\n        };\n        ia = {\n        };\n        la = null;\n        na = false;\n        oa = 0;\n        qa = false;\n        if (pa) {\n            var ib = v(\"rightCol\");\n            if (ib) {\n                ib.style.paddingTop = \"\";\n                i.removeClass(ib, \"timeline_fixed\");\n            }\n        ;\n        }\n    ;\n        pa = false;\n        if (ra) {\n            t(\"blueBar\").style.paddingTop = \"\";\n            i.removeClass(t(\"blueBar\"), \"timeline_fixed\");\n        }\n    ;\n        ra = false;\n        ta = false;\n        da = false;\n        j.purge(o.DS_HEIGHT);\n        j.purge(o.DS_LOADED);\n        j.purge(o.DS_SIDEORG);\n        j.purge(o.DS_TAILBALANCE);\n        j.purge(o.DS_COLUMN_HEIGHT_DIFFERENTIAL);\n    };\n    var gb = {\n        NAV: \"nav\",\n        STICKY_HEADER: \"sticky_header\",\n        STICKY_HEADER_NAV: \"sticky_header_nav\",\n        SCRUBBER: \"scrubber\",\n        CONTENT: \"content\",\n        ADS: \"ads\",\n        LOGGING: \"logging\",\n        init: function(hb, ib, jb) {\n            if (da) {\n                return\n            };\n            if ((ib == q.WALL_KEY)) {\n                ib = q.TIMELINE_KEY;\n            };\n            da = true;\n            ea = hb;\n            fa = jb.has_fixed_ads;\n            na = jb.one_column_minimal;\n            sa = {\n                allactivity: true,\n                approve: true\n            };\n            if (!na) {\n                u(sa, {\n                    games: true,\n                    map: true,\n                    music: true,\n                    video: true\n                });\n            };\n            sa[q.TIMELINE_KEY] = true;\n            va(gb.CONTENT, \"adjustContentPadding\");\n            ja.push(g.listen(window, \"scroll\", za), g.listen(window, \"resize\", cb));\n            ga = h.subscribe([\"sidebar/initialized\",\"sidebar/show\",\"sidebar/hide\",], db);\n            w(n.subscribe(\"TimelineCover/coverCollapsed\", eb));\n            l.onLeave(fb);\n            gb.registerCurrentKey(ib);\n        },\n        setAdsTracking: function(hb) {\n            va(gb.ADS, \"start\", [hb,]);\n        },\n        pageHasScrubber: function(hb) {\n            return ((!hb || ((!na && hb.match(/^(og_)?app_/)))) || ((hb in sa)));\n        },\n        fixedAds: function() {\n            return fa;\n        },\n        registerCurrentKey: function(hb) {\n            ca = hb;\n            la = (((hb !== \"map\") && (r.getViewportDimensions().y < aa)) && gb.pageHasScrubber(hb));\n            la = (la || t(\"blueBar\").offsetTop);\n            va(gb.ADS, \"setShortMode\", [la,]);\n            va(gb.ADS, \"updateCurrentKey\", [hb,]);\n            oa = ((hb == q.TIMELINE_KEY) ? (y - z) : 0);\n        },\n        getCurrentKey: function() {\n            return ca;\n        },\n        getCurrentScrubber: function() {\n            return ha[gb.SCRUBBER];\n        },\n        getCurrentStickyHeaderNav: function() {\n            return ha[gb.STICKY_HEADER_NAV];\n        },\n        scrubberHasLoaded: function(hb) {\n            i.conditionClass(hb.getRoot(), \"fixed_elem\", !la);\n            va(gb.ADS, \"registerScrubber\", [hb,]);\n        },\n        scrubberHasChangedState: function() {\n            va(gb.ADS, \"adjustAdsToFit\");\n        },\n        scrubberWasClicked: function(hb) {\n            va(gb.LOGGING, \"logScrubberClick\", [hb,]);\n        },\n        stickyHeaderNavWasClicked: function(hb) {\n            va(gb.LOGGING, \"logStickyHeaderNavClick\", [hb,]);\n        },\n        sectionHasChanged: function(hb, ib) {\n            va(gb.STICKY_HEADER_NAV, \"updateSection\", [hb,ib,]);\n            va(gb.SCRUBBER, \"updateSection\", [hb,ib,]);\n            va(gb.ADS, \"loadAdsIfEnoughTimePassed\");\n            va(gb.LOGGING, \"logSectionChange\", [hb,ib,]);\n        },\n        navigateToSection: function(hb) {\n            va(gb.CONTENT, \"navigateToSection\", [hb,]);\n        },\n        shouldShowWideAds: function() {\n            if (!ta) {\n                ma = false;\n            }\n             else {\n                var hb = ((ba + s.getRight()) + s.getLeft());\n                ma = (r.getViewportDimensions().x >= hb);\n            }\n        ;\n            return ma;\n        },\n        sidebarInitialized: function() {\n            return ta;\n        },\n        adjustStickyHeaderWidth: function() {\n            va(gb.STICKY_HEADER, \"adjustWidth\");\n        },\n        isOneColumnMinimal: function() {\n            return na;\n        },\n        register: function(hb, ib) {\n            ha[hb] = ib;\n            if (ia[hb]) {\n                for (var jb in ia[hb]) {\n                    va(hb, jb, ia[hb][jb]);;\n                };\n                delete ia[hb];\n            }\n        ;\n        },\n        adjustScrollingPagerBuffer: function(hb, ib) {\n            var jb = j.get(o.DS_COLUMN_HEIGHT_DIFFERENTIAL, ib);\n            if (!jb) {\n                return\n            };\n            var kb = m.getInstance(hb);\n            (kb && kb.setBuffer((kb.getBuffer() + Math.abs(jb))));\n        },\n        runOnceWhenSectionFullyLoaded: function(hb, ib, jb) {\n            var kb = p.get(ib);\n            if (kb) {\n                var lb = false;\n                k.scry(kb.node, \".fbTimelineCapsule\").forEach(function(nb) {\n                    if ((!lb && (parseInt(j.get(o.DS_LOADED, nb.id), 10) >= parseInt(jb, 10)))) {\n                        hb();\n                        lb = true;\n                    }\n                ;\n                });\n                if (lb) {\n                    return\n                };\n            }\n        ;\n            var mb = h.subscribe(o.SECTION_FULLY_LOADED, function(nb, ob) {\n                if (((ob.scrubberKey === ib) && (ob.pageIndex === jb))) {\n                    hb();\n                    mb.unsubscribe();\n                }\n            ;\n            });\n        }\n    };\n    e.exports = gb;\n});\n__d(\"TimelineDrag\", [\"Event\",\"ArbiterMixin\",\"Locale\",\"Style\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"ArbiterMixin\"), i = b(\"Locale\"), j = b(\"Style\"), k = b(\"Vector\"), l = b(\"copyProperties\");\n    function m(n, o, p) {\n        p = (p || {\n        });\n        this._listenOn = p.listenOn;\n        this._offsetInput = o;\n        this._defaultOffset = p.default_offset;\n        this._killClicks = p.killClicks;\n        this._vertical = true;\n        this._RTLXSwitch = false;\n        this.setPicture(n, p);\n    };\n    l(m.prototype, h, {\n        setPicture: function(n, o) {\n            if (!n) {\n                return false\n            };\n            o = (o || {\n            });\n            this._picture = n;\n            this._defaultOffset = o.default_offset;\n            if (o.offsetInput) {\n                this._offsetInput = o.offsetInput;\n            };\n            if ((o.vertical !== undefined)) {\n                this._vertical = o.vertical;\n            };\n            if (o.height) {\n                this._containerHeight = o.height;\n            };\n            if (o.width) {\n                this._containerWidth = o.width;\n            };\n            if (this._vertical) {\n                this._offsetType = \"top\";\n                this._eventCoord = \"y\";\n            }\n             else {\n                this._RTLXSwitch = i.isRTL();\n                this._offsetType = \"left\";\n                this._eventCoord = \"x\";\n            }\n        ;\n            if (this._picture.complete) {\n                this._initialLoad();\n            }\n             else this._loadListener = g.listen(this._picture, \"load\", function() {\n                this._loadListener.remove();\n                this._initialLoad();\n            }.bind(this));\n        ;\n        },\n        destroy: function() {\n            this._stopDrag();\n            this._saveOffset();\n            (this._mousedown && this._mousedown.remove());\n            (this._onclick && this._onclick.remove());\n            (this._loadListener && this._loadListener.remove());\n        },\n        _initialLoad: function() {\n            var n = (this._listenOn ? this._listenOn : this._picture);\n            (this._mousedown && this._mousedown.remove());\n            this._mousedown = g.listen(n, \"mousedown\", this._onMouseDown.bind(this));\n            if (this._vertical) {\n                this._maxOffset = (this._containerHeight - this._picture.offsetHeight);\n            }\n             else this._maxOffset = (this._containerWidth - this._picture.offsetWidth);\n        ;\n            if ((this._defaultOffset !== undefined)) {\n                this._setOffset(this._defaultOffset);\n            };\n            (this._onclick && this._onclick.remove());\n            if (this._killClicks) {\n                this._onclick = g.listen(n, \"click\", this._onClick.bind(this));\n            };\n            this._saveOffset();\n        },\n        _onClick: function(event) {\n            event.kill();\n        },\n        _onMouseDown: function(event) {\n            var n = (parseInt(j.get(this._picture, this._offsetType), 10) || 0);\n            this._pictureStartDragOffset = (n - k.getEventPosition(event)[this._eventCoord]);\n            this._startDrag();\n            event.kill();\n        },\n        _startDrag: function() {\n            if (!this._dragStarted) {\n                this.inform(\"startdrag\", this);\n                this._dragTokens = [g.listen(document.documentElement, \"mouseup\", this._onMouseUp.bind(this)),g.listen(document.documentElement, \"mousemove\", this._onMouseMove.bind(this)),];\n                this._dragStarted = true;\n            }\n        ;\n        },\n        _saveOffset: function() {\n            var n = parseInt(j.get(this._picture, this._offsetType), 10);\n            if (this._RTLXSwitch) {\n                this._offsetInput.value = ((n + this._containerWidth) - this._picture.offsetWidth);\n            }\n             else this._offsetInput.value = n;\n        ;\n        },\n        _stopDrag: function() {\n            if (this._dragStarted) {\n                this.inform(\"stopdrag\", this);\n                this._dragStarted = false;\n                this._dragTokens.forEach(function(n) {\n                    n.remove();\n                });\n                this._saveOffset();\n            }\n        ;\n        },\n        _onMouseUp: function(event) {\n            this._stopDrag();\n            event.kill();\n        },\n        _setOffset: function(n) {\n            if (this._RTLXSwitch) {\n                n = Math.max(0, Math.min(n, -this._maxOffset));\n            }\n             else n = Math.min(0, Math.max(n, this._maxOffset));\n        ;\n            j.set(this._picture, this._offsetType, (n + \"px\"));\n        },\n        _onMouseMove: function(event) {\n            this._setOffset((this._pictureStartDragOffset + k.getEventPosition(event)[this._eventCoord]));\n            event.kill();\n        }\n    });\n    e.exports = m;\n});\n__d(\"TimelineCover\", [\"Arbiter\",\"Button\",\"CSS\",\"DOM\",\"HTML\",\"Parent\",\"DOMScroll\",\"TimelineController\",\"TimelineDrag\",\"Style\",\"Vector\",\"$\",\"copyProperties\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Button\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"HTML\"), l = b(\"Parent\"), m = b(\"DOMScroll\"), n = b(\"TimelineController\"), o = b(\"TimelineDrag\"), p = b(\"Style\"), q = b(\"Vector\"), r = b(\"$\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = b(\"ge\");\n    function v(w, x, y) {\n        this.root = r(\"fbProfileCover\");\n        if ((typeof x === \"object\")) {\n            this._coverHeight = x.cover_height;\n            this._coverWidth = x.cover_width;\n            this.previewing = x.previewing;\n            this._isLegacy = false;\n        }\n         else {\n            this._isLegacy = true;\n            this._coverHeight = x;\n            this.previewing = y;\n        }\n    ;\n        this._parentSection = l.byClass(this.root, \"fbTimelineSection\");\n        this.cover = j.find(this.root, \".cover\");\n        v.instance = this;\n        this.editing = false;\n        if (!this._parentSection) {\n            this._parentSection = l.byClass(this.root, \"fbEventHeader\");\n        };\n        if (this.previewing) {\n            this.editMode();\n            this.updateCoverImage(this.previewing);\n        }\n    ;\n    };\n    v.instance = null;\n    v.getInstance = function() {\n        return v.instance;\n    };\n    s(v.prototype, {\n        showLoadingIndicator: function() {\n            var w = u(\"fbCoverImageContainer\");\n            if (w) {\n                i.addClass(w, \"opaquedLoading\");\n            };\n        },\n        hideLoadingIndicator: function() {\n            var w = u(\"fbCoverImageContainer\");\n            if (w) {\n                i.removeClass(w, \"opaquedLoading\");\n            };\n        },\n        isCoverImageVerticalFlow: function(w) {\n            return !(w.style.height);\n        },\n        editMode: function() {\n            h.setEnabled(j.find(this.root, \"button.cancelButton\"), true);\n            h.setEnabled(j.find(this.root, \"button.saveButton\"), true);\n            this.hideLoadingIndicator();\n            this._coverImage = j.scry(this.root, \".coverImage\")[0];\n            var w = j.scry(this._coverImage, \".coverWrap\")[0];\n            if (w) {\n                var x = j.find(w, \".coverPhotoImg\");\n                this._originalIsVertical = this.isCoverImageVerticalFlow(x);\n                this._originalOffset = p.get(x, (this._originalIsVertical ? \"top\" : \"left\"));\n            }\n        ;\n            i.addClass(this._parentSection, \"fbEditCover\");\n            m.scrollTo(this.root);\n            if (this.previewing) {\n                j.remove(this._coverImage);\n                i.show(this._coverImage);\n            }\n        ;\n            var y = j.scry(this._coverImage, \".coverPhotoImg\")[0];\n            if (y) {\n                this._createDragger();\n            };\n            this.editing = true;\n            g.inform(\"CoverPhotoEdit\", {\n                sender: this,\n                state: \"open\"\n            });\n        },\n        _exitEditMode: function() {\n            if (this._timelineDrag) {\n                this._timelineDrag.destroy();\n                this._timelineDrag = null;\n            }\n        ;\n            j.find(this.root, \"input.hiddenPhotoID\").value = null;\n            j.find(this.root, \"input.hiddenVideoID\").value = null;\n            h.setEnabled(j.find(this.root, \"button.cancelButton\"), false);\n            h.setEnabled(j.find(this.root, \"button.saveButton\"), false);\n            i.removeClass(this._parentSection, \"fbEditCover\");\n            this.hideLoadingIndicator();\n            this.previewing = false;\n            g.inform(\"CoverPhotoEdit\", {\n                sender: this,\n                state: \"closed\"\n            });\n        },\n        _createDragger: function(w) {\n            var x;\n            if (this._isLegacy) {\n                x = j.find(this.root, \"input.photoOffsetInput\");\n                this._originalIsVertical = true;\n            }\n             else {\n                var y = ((w === undefined) ? this._originalIsVertical : w);\n                x = (y ? j.find(this.root, \"input.photoOffsetYInput\") : j.find(this.root, \"input.photoOffsetXInput\"));\n            }\n        ;\n            this._timelineDrag = new o(j.find(this.root, \".coverImage .coverPhotoImg\"), x, {\n                height: this._coverHeight,\n                width: this._coverWidth,\n                listenOn: this.cover,\n                vertical: y,\n                killClicks: true\n            });\n        },\n        updateCoverImage: function(w, x, y) {\n            this.videoID = y;\n            if (x) {\n                this.editMode();\n            };\n            j.find(this.root, \"input.hiddenPhotoID\").value = w;\n            j.find(this.root, \"input.hiddenVideoID\").value = (y || null);\n            h.setEnabled(j.find(this.root, \"button.saveButton\"), true);\n            if (x) {\n                j.replace(j.find(this.root, \".coverImage\"), k(x));\n            };\n            var z = j.find(j.find(this.root, \".coverImage\"), \".coverPhotoImg\"), aa = this.isCoverImageVerticalFlow(z), ba;\n            if (this._isLegacy) {\n                ba = j.find(this.root, \"input.photoOffsetInput\");\n            }\n             else ba = (aa ? j.find(this.root, \"input.photoOffsetYInput\") : j.find(this.root, \"input.photoOffsetXInput\"));\n        ;\n            if (this._timelineDrag) {\n                this._timelineDrag.setPicture(z, {\n                    offsetInput: ba,\n                    vertical: aa\n                });\n            }\n             else this._createDragger(aa);\n        ;\n        },\n        cancelUpdate: function() {\n            j.remove(j.scry(this.root, \".coverImage\")[0]);\n            j.prependContent(this.cover, this._coverImage);\n            if ((this._originalOffset !== undefined)) {\n                p.set(j.find(this._coverImage, \".coverPhotoImg\"), (this._originalIsVertical ? \"top\" : \"left\"), this._originalOffset);\n            };\n            this._exitEditMode();\n        },\n        saveComplete: function() {\n            this._coverImage = j.scry(this.root, \".coverImage\")[0];\n            var w = l.byClass(this.root, \"fbTimelineTopSectionBase\");\n            (w && i.removeClass(w, \"_6_5\"));\n            this._exitEditMode();\n        },\n        isInEditMode: function() {\n            return this.editing;\n        }\n    });\n    e.exports = v;\n});\n__d(\"TimelineCapsule\", [\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"DOMQuery\",\"DOMScroll\",\"Parent\",\"TimelineConstants\",\"TimelineLegacySections\",\"UserAgent\",\"Vector\",\"$\",\"createArrayFrom\",\"csx\",\"isEmpty\",\"queryThenMutateDOM\",\"requestAnimationFrame\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"DOMScroll\"), m = b(\"Parent\"), n = b(\"TimelineConstants\"), o = b(\"TimelineLegacySections\"), p = b(\"UserAgent\"), q = b(\"Vector\"), r = b(\"$\"), s = b(\"createArrayFrom\"), t = b(\"csx\"), u = b(\"isEmpty\"), v = b(\"queryThenMutateDOM\"), w = b(\"requestAnimationFrame\"), x = (function() {\n        var y = 45, z = 15, aa = \"use\", ba = \"update\", ca = {\n        }, da = {\n        };\n        function ea(ra) {\n            return h.hasClass(ra, \"fbTimelineBalancer\");\n        };\n        function fa(ra) {\n            return ra.getAttribute(\"data-spine\");\n        };\n        function ga(ra) {\n            return h.hasClass(ra, \"placeholderUnit\");\n        };\n        function ha(ra, sa) {\n            if (sa) {\n                return ((i.get(n.DS_SIDEORG, ra.id) || ra.getAttribute(\"data-side\")))\n            };\n            return ra.getAttribute(\"data-side\");\n        };\n        var ia = function(ra, sa) {\n            if ((p.ie() <= 6)) {\n                ia = function(ta, ua) {\n                    i.set(n.DS_SIDEORG, ta.id, ha(ta, true));\n                    ta.setAttribute(\"data-side\", ua);\n                    h.removeClass(ta, \"leftColumn\");\n                    h.removeClass(ta, \"rightColumn\");\n                    h.addClass(ta, ((ua == \"l\") ? \"leftColumn\" : \"rightColumn\"));\n                };\n            }\n             else ia = function(ta, ua) {\n                i.set(n.DS_SIDEORG, ta.id, ha(ta, true));\n                ta.setAttribute(\"data-side\", ua);\n            };\n        ;\n            ia(ra, sa);\n        };\n        function ja(ra) {\n            return ra.getAttribute(\"data-size\");\n        };\n        function ka(ra) {\n            if (((h.hasClass(ra, \"fbTimelineOneColumn\") && ra.prevSibling) && h.hasClass(ra.prevSibling, \"fbTimelineOneColumn\"))) {\n                return (z * 2)\n            };\n            if (h.hasClass(ra, \"fbTimelineIndeterminateContent\")) {\n                return 0\n            };\n            return z;\n        };\n        function la(ra, sa) {\n            var ta = 0;\n            if ((h.shown(ra) && !h.hasClass(ra, \"placeholderUnit\"))) {\n                if ((sa === aa)) {\n                    ta = i.get(n.DS_HEIGHT, ra.id, null);\n                    if ((ta === null)) {\n                        ta = ra.getAttribute(\"data-calculatedheight\");\n                    };\n                }\n                 else ta = (ra.offsetHeight + ka(ra));\n            \n            };\n            if (((sa === aa) && (ta === null))) {\n                ta = 300;\n            };\n            i.set(n.DS_HEIGHT, ra.id, parseInt(ta, 10));\n        };\n        function ma(ra) {\n            var sa = i.get(n.DS_HEIGHT, ra.id, null);\n            return sa;\n        };\n        function na(ra, sa) {\n            if ((ja(sa) == \"2\")) {\n                return 0;\n            }\n             else if ((ha(sa) == \"r\")) {\n                return (ra + ma(sa));\n            }\n             else return (ra - ma(sa))\n            \n        ;\n        };\n        function oa(ra) {\n            k.scry(ra, \"._3ram\").forEach(function(sa) {\n                var ta = sa.getAttribute(\"data-endmarker\"), ua = sa.getAttribute(\"data-pageindex\"), va = function() {\n                    if (!sa.parentNode) {\n                        return\n                    };\n                    i.set(n.DS_LOADED, ra.id, ua);\n                    j.remove(sa);\n                    g.inform(n.SECTION_FULLY_LOADED, {\n                        scrubberKey: ta,\n                        pageIndex: ua,\n                        capsuleID: ra.id,\n                        childCount: ra.childNodes.length\n                    });\n                };\n                if (o.get(ta)) {\n                    va();\n                }\n                 else var wa = g.subscribe(n.SECTION_REGISTERED, function(xa, ya) {\n                    if ((ya.scrubberKey === ta)) {\n                        va();\n                        wa.unsubscribe();\n                    }\n                ;\n                })\n            ;\n            });\n            g.inform(\"TimelineCapsule/balanced\", {\n                capsule: ra\n            });\n        };\n        function pa(ra) {\n            if (u(ca[ra.id])) {\n                return\n            };\n            var sa = (ea(ra) ? ra.firstChild : ra), ta = sa.childNodes.length, ua = {\n            }, va = {\n            }, wa, xa = z, ya = z, za, ab = [];\n            for (var bb = 0; (bb < ta); bb++) {\n                wa = sa.childNodes[bb];\n                if (h.hasClass(wa, \"fbTimelineUnit\")) {\n                    za = k.scry(wa, \"div.timelineUnitContainer\")[0];\n                    if (za) {\n                        va[wa.id] = za.getAttribute(\"data-time\");\n                    };\n                    if ((!ga(wa) && h.shown(wa))) {\n                        if ((ja(wa) == \"2\")) {\n                            ua[wa.id] = Math.max(xa, ya);\n                            xa = ya = (ua[wa.id] + ma(wa));\n                        }\n                         else if ((ha(wa) == \"r\")) {\n                            ua[wa.id] = ya;\n                            ya += ma(wa);\n                        }\n                         else {\n                            ua[wa.id] = xa;\n                            xa += ma(wa);\n                        }\n                        \n                    ;\n                        if (((ha(wa, true) == \"l\") || (ja(wa) == \"2\"))) {\n                            ab.push(wa.id);\n                        };\n                    }\n                ;\n                }\n            ;\n            };\n            for (bb = 0; (bb < (ab.length - 1)); ++bb) {\n                var cb = ab[bb], db = ab[(bb + 1)], eb = (ua[cb] + y), fb = ua[db];\n                for (var gb in ca[ra.id]) {\n                    if ((eb > fb)) {\n                        break;\n                    };\n                    var hb = ca[ra.id][gb];\n                    if (h.shown(hb)) {\n                        continue;\n                    };\n                    if (((va[gb] <= va[cb]) && (va[gb] > va[db]))) {\n                        hb.style.top = (eb + \"px\");\n                        eb += y;\n                        h.show(hb);\n                    }\n                ;\n                };\n            };\n        };\n        function qa(ra, sa) {\n            var ta = m.byAttribute(ra, \"data-size\");\n            if (ta) {\n                if (h.hasClass(ra.parentNode, \"timelineReportContent\")) {\n                    sa(ra);\n                }\n                 else sa(ta);\n            ;\n                x.balanceCapsule(m.byClass(ta, \"fbTimelineCapsule\"));\n            }\n        ;\n        };\n        return {\n            removeUnit: function(ra) {\n                qa(ra, function(sa) {\n                    j.remove(sa);\n                });\n            },\n            hideUnit: function(ra) {\n                qa(ra, function(sa) {\n                    h.addClass(sa, \"fbTimelineColumnHidden\");\n                });\n            },\n            undoHideUnit: function(ra, sa) {\n                j.remove(m.byClass(sa, \"hiddenText\"));\n                qa(ra, function(ta) {\n                    h.removeClass(ta, \"fbTimelineColumnHidden\");\n                });\n            },\n            unplacehold: function(ra) {\n                var sa = r(ra);\n                sa.style.top = null;\n                h.removeClass(sa, \"visiblePlaceholder\");\n                h.removeClass(sa, \"placeholder\");\n                var ta = m.byClass(sa, \"fbTimelineCapsule\");\n                delete ca[ta.id][ra];\n                x.balanceCapsule(ta);\n            },\n            scrollToCapsule: function(ra) {\n                if (!da.hasOwnProperty(ra.id)) {\n                    var sa = q.getElementPosition(ra.parentNode);\n                    l.scrollTo(new q(q.getScrollPosition().x, (sa.y - n.SUBSECTION_SCROLL_TO_OFFSET), \"document\"));\n                    da[ra.id] = true;\n                }\n            ;\n            },\n            balanceCapsuleFromChild: function(ra, sa) {\n                x.balanceCapsule(m.byClass(ra, \"fbTimelineCapsule\"), sa);\n            },\n            balanceCapsuleDeferred: function(ra, sa) {\n                x.balanceCapsule.curry(ra, sa).defer();\n            },\n            balanceCapsule: function(ra, sa) {\n                if ((!ra || !ra.childNodes)) {\n                    return\n                };\n                var ta = 0, ua, va = document.createDocumentFragment(), wa = [], xa = [], ya = [], za = false, ab = (sa && sa.heights_action);\n                if ((sa && sa.tail_balance)) {\n                    i.set(n.DS_TAILBALANCE, ra.id, sa.tail_balance);\n                };\n                if (((ab !== ba) && ((p.chrome() || p.webkit())))) {\n                    h.toggleClass(ra, \"webkitFix\");\n                };\n                for (var bb = 0; (bb < ra.childNodes.length); bb++) {\n                    ua = ra.childNodes[bb];\n                    if (fa(ua)) {\n                        continue;\n                    }\n                     else if (ea(ua)) {\n                        s(ua.firstChild.childNodes).forEach(function(jb) {\n                            la(jb, ab);\n                        });\n                        continue;\n                    }\n                    \n                ;\n                    la(ua, ab);\n                    if ((ha(ua, true) == \"r\")) {\n                        xa.push(ua);\n                    }\n                     else wa.push(ua);\n                ;\n                    ya.push(ua);\n                    if ((ja(ua) != \"2\")) {\n                        if (((((ta > 0) && (ha(ua) == \"r\"))) || (((ta < 0) && (ha(ua) == \"l\"))))) {\n                            za = true;\n                        }\n                    };\n                    ta = na(ta, ua);\n                };\n                var cb = [], db = [], eb = [];\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(jb) {\n                    var kb = s(jb.firstChild.childNodes);\n                    if (jb.getAttribute(\"data-nonunits\")) {\n                        eb = eb.concat(kb);\n                    }\n                     else if ((ha(jb) == \"left\")) {\n                        cb = cb.concat(kb);\n                    }\n                     else if ((ha(jb) == \"right\")) {\n                        db = db.concat(kb);\n                    }\n                    \n                ;\n                });\n                if (za) {\n                    ra.style.minHeight = ra.offsetHeight;\n                    wa.forEach(function(jb) {\n                        if ((ja(jb) != \"2\")) {\n                            ia(jb, \"l\");\n                        };\n                    });\n                    xa.forEach(function(jb) {\n                        if ((ja(jb) != \"2\")) {\n                            ia(jb, \"r\");\n                        };\n                    });\n                    var fb = j.create(\"li\", {\n                        className: \"fbTimelineBalancer\"\n                    }, j.create(\"ol\", null, wa));\n                    fb.setAttribute(\"data-side\", \"left\");\n                    j.prependContent(ra, fb);\n                    cb = wa.concat(cb);\n                    var gb = j.create(\"li\", {\n                        className: \"fbTimelineBalancer\"\n                    }, j.create(\"ol\", null, xa));\n                    gb.setAttribute(\"data-side\", \"right\");\n                    j.prependContent(ra, gb);\n                    db = xa.concat(db);\n                    ta = 0;\n                }\n            ;\n                while (eb.length) {\n                    va.appendChild(eb.shift());;\n                };\n                while (((((ta >= 0) && cb.length)) || (((ta < 0) && db.length)))) {\n                    if ((ta >= 0)) {\n                        ua = cb.shift();\n                    }\n                     else ua = db.shift();\n                ;\n                    va.appendChild(ua);\n                    ta = na(ta, ua);\n                };\n                ra.appendChild(va);\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(jb) {\n                    if (!jb.firstChild.childNodes.length) {\n                        j.remove(jb);\n                    };\n                });\n                var hb = (((sa && sa.tail_balance)) || i.get(n.DS_TAILBALANCE, ra.id));\n                if (hb) {\n                    ta = x.tailBalance(ra, ta, hb);\n                };\n                if (za) {\n                    ya.forEach(function(jb) {\n                        if ((jb.parentNode !== ra)) {\n                            ra.appendChild(jb);\n                            ta = na(ta, jb);\n                        }\n                    ;\n                    });\n                    ra.style.minHeight = null;\n                }\n            ;\n                var ib = m.byClass(ra, \"fbTimelineSection\");\n                if (ib) {\n                    i.set(n.DS_COLUMN_HEIGHT_DIFFERENTIAL, ib.id, ta);\n                };\n                ca[ra.id] = {\n                };\n                k.scry(ra, \"li.placeholderUnit\").forEach(function(jb) {\n                    ca[ra.id][jb.id] = jb;\n                });\n                pa(ra);\n                oa(ra);\n                if ((ab === aa)) {\n                    sa.heights_action = ba;\n                    w(function() {\n                        w(x.balanceCapsule.curry(ra, sa));\n                    });\n                }\n            ;\n            },\n            tailBalance: function(ra, sa, ta) {\n                if (!ra) {\n                    return sa\n                };\n                var ua = [], va = [], wa = [], xa = [];\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(za) {\n                    var ab = s(za.firstChild.childNodes);\n                    if (za.getAttribute(\"data-nonunits\")) {\n                        xa = xa.concat(ab);\n                    }\n                     else if ((ha(za) == \"left\")) {\n                        va = va.concat(ab);\n                    }\n                     else if ((ha(za) == \"right\")) {\n                        wa = wa.concat(ab);\n                    }\n                    \n                ;\n                    ua = ua.concat(ab);\n                });\n                if (((((ta == n.FIXED_SIDE_RIGHT) && va.length)) || (((ta == n.FIXED_SIDE_LEFT) && wa.length)))) {\n                    return sa\n                };\n                var ya = document.createDocumentFragment();\n                if (ua) {\n                    while (ua.length) {\n                        if ((ta != n.FIXED_SIDE_NONE)) {\n                            if ((ja(ua[0]) != \"2\")) {\n                                if ((sa >= 0)) {\n                                    ia(ua[0], \"l\");\n                                }\n                                 else ia(ua[0], \"r\");\n                            \n                            }\n                        };\n                        sa = na(sa, ua[0]);\n                        ya.appendChild(ua.shift());\n                    }\n                };\n                ra.appendChild(ya);\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(za) {\n                    if (!za.firstChild.childNodes.length) {\n                        j.remove(za);\n                    };\n                });\n                return sa;\n            },\n            loadTwoColumnUnits: function(ra) {\n                var sa = r(ra);\n                v(function() {\n                    var ta = m.byClass(sa, \"fbTimelineSection\");\n                    if (ta) {\n                        var ua = k.find(sa, \"._3rbf\"), va = k.find(sa, \"._3rbh\"), wa = (va.offsetHeight - ua.offsetHeight);\n                        i.set(n.DS_COLUMN_HEIGHT_DIFFERENTIAL, ta.id, wa);\n                    }\n                ;\n                }, oa.curry(sa));\n            }\n        };\n    })();\n    e.exports = (a.TimelineCapsule || x);\n});\n__d(\"TimelineCapsuleUtilities\", [\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = {\n        setFirstUnit: function(i) {\n            var j = true;\n            for (var k = 0; (k < i.childNodes.length); ++k) {\n                var l = i.childNodes[k];\n                if ((l.id.indexOf(\"tl_unit_\") === 0)) {\n                    if (j) {\n                        j = false;\n                        g.addClass(l, \"firstUnit\");\n                    }\n                     else {\n                        g.removeClass(l, \"firstUnit\");\n                        break;\n                    }\n                \n                };\n            };\n        }\n    };\n    e.exports = h;\n});\n__d(\"TimelineUnitSelector\", [\"DOMQuery\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"Parent\"), i = {\n        getUnitsWithTime: function(j) {\n            return g.scry(j, \"div.timelineUnitContainer\").filter(function(k) {\n                return (((h.byClass(k, \"fbTimelineCapsule\") === j) && k.getAttribute(\"data-time\")));\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"TimelineComposerUtilities\", [\"Event\",\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"DOMQuery\",\"Parent\",\"TimelineUnitSelector\",\"Vector\",\"cx\",\"csx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMQuery\"), m = b(\"Parent\"), n = b(\"TimelineUnitSelector\"), o = b(\"Vector\"), p = b(\"cx\"), q = b(\"csx\"), r = (86400 * 31), s = 86400000, t = {\n        listenToSetEstimatedDate: function(u, v) {\n            return h.subscribe(\"ComposerXTimelineTagger/init\", function(w, x) {\n                if (l.contains(u, x.datePickerElement)) {\n                    t.setEstimatedDate(x.datePickerInstance, v());\n                    x.composerTimelineTagger.switchToTagger(\"date\");\n                }\n            ;\n            });\n        },\n        listenToSetEstimatedDateOld: function(u, v) {\n            return h.subscribe(\"TimelineBackdatedComposerTagger/initialized\", function(event, w) {\n                if ((w.composer === u)) {\n                    w.date_picker.subscribe(\"initialized\", function(x, y) {\n                        t.setEstimatedDate(y, v());\n                    });\n                };\n            });\n        },\n        listenToPublish: function(u, v) {\n            if (u.root) {\n                u = u.root;\n            };\n            return h.subscribe(\"composer/publish\", function(event, w) {\n                if ((w.composer_id === u.id)) {\n                    i.loadModules([\"TimelineStoryPublisher\",], function(x) {\n                        x.publish(w);\n                        (v && v());\n                    });\n                };\n            });\n        },\n        listenToAnotherComposerOpen: function(u, v) {\n            return h.subscribe(\"composer/mutate\", function(w, x) {\n                if ((x !== u)) {\n                    v();\n                };\n            });\n        },\n        listenToCancel: function(u, v) {\n            return g.listen(u, \"click\", function(event) {\n                if (m.byClass(event.getTarget(), \"_306\")) {\n                    v();\n                };\n            });\n        },\n        listenToCancelOld: function(u, v) {\n            return g.listen(u, \"click\", function(event) {\n                (m.byClass(event.getTarget(), \"cancelBtn\") && v());\n            });\n        },\n        hidePlaceIfAttachmentsTooTall: function(u) {\n            var v = l.find(u, \"._2_4\"), w = o.getElementDimensions(v).y;\n            if ((w > 50)) {\n                j.hide(l.find(v, \"._mg\"));\n            };\n        },\n        hidePlaceIfAttachmentsTooTallOld: function(u) {\n            var v = k.find(u, \"ul.fbTimelineComposerAttachments\"), w = o.getElementDimensions(v).y;\n            if ((w > 50)) {\n                var x = m.byTag(k.scry(v, \"span.placeAttachment\")[0], \"li\");\n                (x && j.hide(x));\n            }\n        ;\n        },\n        setEstimatedDate: function(u, v) {\n            var w, x;\n            if ((v && j.hasClass(v, \"fbTimelineCapsule\"))) {\n                w = v.getAttribute(\"data-start\");\n                x = v.getAttribute(\"data-end\");\n                if ((w && x)) {\n                    var y = new Date((x * 1000)), z = new Date();\n                    if ((y > z)) {\n                        u.setDate(z.getFullYear(), (z.getMonth() + 1), z.getDate());\n                    }\n                     else if (((x - w) > (2 * r))) {\n                        u.setDate(y.getFullYear());\n                    }\n                     else u.setDate(y.getFullYear(), (y.getMonth() + 1));\n                    \n                ;\n                }\n            ;\n                return;\n            }\n        ;\n            var aa = m.byClass(v, \"fbTimelineCapsule\");\n            if (aa) {\n                w = aa.getAttribute(\"data-start\");\n                x = aa.getAttribute(\"data-end\");\n                var ba = o.getElementPosition(v).y, ca = [x,null,], da = [w,null,], ea = n.getUnitsWithTime(aa);\n                for (var fa = 0; (fa < ea.length); fa++) {\n                    var ga = ea[fa], ha = k.scry(ga.parentNode, \".spinePointer\")[0];\n                    if (!ha) {\n                        continue;\n                    };\n                    var ia = o.getElementPosition(ha).y;\n                    if ((ia <= ba)) {\n                        if ((!ca[1] || (ia > ca[1]))) {\n                            ca = [ga.getAttribute(\"data-time\"),ia,];\n                        };\n                    }\n                     else if ((!da[1] || (ia < da[1]))) {\n                        da = [ga.getAttribute(\"data-time\"),ia,];\n                    }\n                ;\n                };\n                if (((ca[0] !== null) && (da[0] !== null))) {\n                    var ja = (Math.round((((parseInt(ca[0], 10) + parseInt(da[0], 10))) / 2)) * 1000);\n                    ja = Math.min((new Date() - s), ja);\n                    u.setDateWithTimestamp(ja);\n                }\n            ;\n            }\n        ;\n        },\n        showMLEFlyout: function(u) {\n            var v = (k.scry(document, \"a.fbTimelineSpine\").length === 0), w = function(x) {\n                x.showMLEFlyout(u);\n            };\n            if (v) {\n                i.loadModules([\"TimelineSpinelessComposer\",], w);\n            }\n             else i.loadModules([\"TimelineComposer\",], w);\n        ;\n        }\n    };\n    e.exports = t;\n});\n__d(\"TimelineComposer\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"Parent\",\"Run\",\"TimelineCapsule\",\"TimelineCapsuleUtilities\",\"TimelineComposerUtilities\",\"$\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Parent\"), l = b(\"Run\"), m = b(\"TimelineCapsule\"), n = b(\"TimelineCapsuleUtilities\"), o = b(\"TimelineComposerUtilities\"), p = b(\"$\"), q = b(\"cx\"), r;\n    function s(x) {\n        if ((x.isScheduledPost || x.isOGPost)) {\n            return\n        };\n        if (!x.streamStory) {\n            window.location.reload();\n            return;\n        }\n    ;\n        if (x.backdatedTime) {\n            h.loadModules([\"TimelineStoryPublisher\",], function(z) {\n                z.publish(x);\n            });\n            return;\n        }\n    ;\n        var y = w.renderCapsuleBasedStory(r, x.streamStory);\n        g.inform(\"TimelineComposer/on_after_publish\", y, g.BEHAVIOR_PERSISTENT);\n    };\n    function t() {\n        var x = k.byClass(r, \"fbTimelineTwoColumn\");\n        return j.find(x, \".spinePointer\");\n    };\n    function u(x) {\n        var y = v();\n        i.show(y);\n        var z = x.subscribe(\"hide\", function() {\n            i.hide(y);\n            x.unsubscribe(z);\n        });\n    };\n    function v() {\n        var x = k.byClass(r, \"fbTimelineTwoColumn\"), y = j.scry(x, \"div.composerVeil\");\n        if ((y.length !== 1)) {\n            y = j.appendContent(x, j.create(\"div\", {\n                className: \"composerVeil hidden_elem\"\n            }));\n        };\n        return y[0];\n    };\n    var w = {\n        init: function(x) {\n            r = p(x);\n            var y = g.subscribe(\"composer/publish\", function(event, z) {\n                if ((z.composer_id === r.id)) {\n                    s(z);\n                };\n            });\n            l.onLeave(y.unsubscribe.bind(y));\n            if (i.hasClass(r, \"_mj\")) {\n                o.hidePlaceIfAttachmentsTooTall(r);\n            }\n             else o.hidePlaceIfAttachmentsTooTallOld(r);\n        ;\n        },\n        showMLEFlyout: function(x) {\n            x.setContext(t()).show();\n            u(x);\n        },\n        renderCapsuleBasedStory: function(x, y) {\n            var z = k.byClass(x, \"fbTimelineCapsule\");\n            if (!z) {\n                return\n            };\n            var aa = k.byClass(x, \"timelineUnitContainer\").parentNode;\n            if (aa.nextSibling.getAttribute(\"data-spine\")) {\n                aa = aa.nextSibling;\n            };\n            var ba = j.insertAfter(aa, y)[0];\n            h.loadModules([\"Animation\",], function(ca) {\n                new ca(ba.firstChild).from(\"backgroundColor\", \"#fff8dd\").to(\"backgroundColor\", \"#fff\").duration(2000).ease(ca.ease.both).go();\n            });\n            n.setFirstUnit(z);\n            m.balanceCapsule(z);\n            return ba;\n        }\n    };\n    e.exports = (a.TimelineComposer || w);\n});\n__d(\"TimelineSmartInsert\", [\"Run\",\"UserAgent\",\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"Run\"), h = b(\"UserAgent\"), i = b(\"Vector\"), j = 100;\n    function k(q) {\n        if ((q === \"viewport\")) {\n            return i.getViewportDimensions().y\n        };\n        return q;\n    };\n    var l = false, m = false;\n    function n() {\n        if (m) {\n            return\n        };\n        g.onLeave(o);\n        m = true;\n    };\n    function o() {\n        l = false;\n        m = false;\n    };\n    var p = {\n        run: function(q, r, s) {\n            n();\n            if ((!l || (h.ie() <= 8))) {\n                r();\n                return;\n            }\n        ;\n            var t = q.offsetHeight;\n            r();\n            var u = q.offsetHeight, v = i.getScrollPosition().y, w = i.getElementPosition(q).y;\n            if ((((u !== t) && (w < v)) && ((w + t) < (v + k((s || j)))))) {\n                window.scrollBy(0, (u - t));\n            };\n        },\n        enable: function() {\n            l = true;\n        }\n    };\n    e.exports = p;\n});\n__d(\"TimelineContentLoader\", [\"Event\",\"function-extensions\",\"Arbiter\",\"CSS\",\"DOM\",\"DOMScroll\",\"OnVisible\",\"ScrollingPager\",\"TimelineConstants\",\"TimelineController\",\"TimelineLegacySections\",\"TimelineSmartInsert\",\"TimelineURI\",\"UIPagelet\",\"UserAgent\",\"Vector\",\"$\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",\"csx\",\"debounce\",\"ge\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMScroll\"), l = b(\"OnVisible\"), m = b(\"ScrollingPager\"), n = b(\"TimelineConstants\"), o = b(\"TimelineController\"), p = b(\"TimelineLegacySections\"), q = b(\"TimelineSmartInsert\"), r = b(\"TimelineURI\"), s = b(\"UIPagelet\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"$\"), w = b(\"arrayContains\"), x = b(\"copyProperties\"), y = b(\"createArrayFrom\"), z = b(\"csx\"), aa = b(\"debounce\"), ba = b(\"ge\"), ca = b(\"startsWith\"), da = b(\"tx\"), ea = b(\"userAction\"), fa = false, ga = false, ha, ia = null, ja = {\n    }, ka = [], la = [], ma = [], na = {\n    }, oa = {\n    }, pa = {\n    }, qa = {\n    }, ra = null, sa = null, ta = false, ua = null;\n    function va(eb, fb, gb, hb, ib) {\n        this.node = eb;\n        this.loaded = hb;\n        this.canScrollLoad = true;\n        this.canUnload = (fb != db.RECENT);\n        this.scrubberKey = fb;\n        this.historicUnitCount = ib;\n        this._pageletLoadData = gb;\n        this._expandPageletLoadData = {\n        };\n        this.rightColumnFinished = false;\n    };\n    x(va.prototype, {\n        load: function(eb, fb) {\n            if (this.loaded) {\n                return\n            };\n            var gb = this._pageletLoadData;\n            h.inform(n.SECTION_LOADING, {\n                data: gb,\n                scrubberKey: this.scrubberKey\n            });\n            this.loaded = true;\n            i.removeClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            i.removeClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            var hb = \"ProfileTimelineSectionPagelet\", ib = (this.scrubberKey == db.WAY_BACK);\n            if (ib) {\n                hb = \"ProfileTimelineRemainingYearsPagelet\";\n            };\n            gb.time_cutoff = db.getTimeCutoff();\n            gb.highlight_unit_data = eb;\n            gb.parent_key = this.parentKey;\n            gb.force_no_friend_activity = ta;\n            i.addClass(this.node, \"fbTimelineSectionLoading\");\n            if (gb.combine_sections) {\n                i.addClass(this.node, \"combinedSections\");\n            };\n            if ((this.canUnload && ga)) {\n                var jb = this.node.firstChild.cloneNode(true);\n                i.hide(jb);\n                j.insertAfter(this.node, jb);\n            }\n             else this.canScrollLoad = false;\n        ;\n            var kb = null;\n            if ((fb && !mb)) {\n                var lb = this.node;\n                lb.style.minHeight = (window.innerHeight + \"px\");\n                kb = function() {\n                    lb.style.minHeight = null;\n                };\n            }\n        ;\n            var mb = (gb.combine_sections && ib);\n            pa[this.scrubberKey] = s.loadFromEndpoint(hb, (mb ? (gb.unit_container_id + \"_left\") : this.node.id), gb, {\n                usePipe: true,\n                jsNonblock: true,\n                constHeight: true,\n                append: mb,\n                finallyHandler: kb\n            });\n            cb(this.scrubberKey);\n        },\n        preload: function() {\n            i.addClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            i.removeClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            var eb = j.find(this.node, \"span.sectionLabel\");\n            if (eb.getAttribute(\"data-original-label\")) {\n                j.setContent(eb, eb.getAttribute(\"data-original-label\"));\n                eb.removeAttribute(\"data-original-label\");\n            }\n        ;\n        },\n        unload: function() {\n            if ((!this.loaded || !this.canUnload)) {\n                return\n            };\n            this.loaded = false;\n            (pa[this.scrubberKey] && pa[this.scrubberKey].cancel());\n            i.addClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            i.removeClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            if ((this.node.nextSibling && i.hasClass(this.node.nextSibling, \"fbTimelineSection\"))) {\n                j.setContent(this.node, this.node.nextSibling);\n                i.show(this.node.firstChild);\n            }\n             else j.empty(this.node);\n        ;\n            this.deactivateScrollLoad();\n        },\n        activateScrollLoad: function() {\n            this.canScrollLoad = true;\n            i.removeClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            i.addClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            (oa[this.scrubberKey] && oa[this.scrubberKey].reset());\n        },\n        deactivateScrollLoad: function() {\n            if (!this.loaded) {\n                this.canScrollLoad = false;\n                i.removeClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n                i.addClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n                (oa[this.scrubberKey] && oa[this.scrubberKey].remove());\n            }\n        ;\n        },\n        setExpandLoadData: function(eb) {\n            this._expandPageletLoadData = eb;\n            return this;\n        },\n        appendData: function(eb) {\n            x(this._pageleLoadData, eb);\n            return this;\n        },\n        expandSubSections: function() {\n            if (this.subSections.length) {\n                db.navigateToSection(this.subSections[0].scrubberKey);\n            };\n        },\n        expand: function(eb) {\n            if (!this.loaded) {\n                return\n            };\n            sa.add_event((\"expand_\" + this.scrubberKey));\n            var fb = j.find(this.node, \".fbTimelineSectionExpander\");\n            i.addClass(fb.firstChild, \"async_saving\");\n            (eb && i.addClass(eb, \"async_saving\"));\n            this._expandPageletLoadData.time_cutoff = db.getTimeCutoff();\n            db.navigateToSection(this.scrubberKey);\n            j.scry(this.node, \".fbTimelineCapsule\").forEach(j.remove);\n            this._expandPageletLoadData.new_expand = true;\n            (pa[this.scrubberKey] && pa[this.scrubberKey].cancel());\n            pa[this.scrubberKey] = s.loadFromEndpoint(\"ProfileTimelineSectionPagelet\", fb.id, this._expandPageletLoadData, {\n                usePipe: true,\n                jsNonblock: true,\n                constHeight: true\n            });\n        },\n        isPermalinkPeriod: function() {\n            return this._pageletLoadData.is_permalink_period;\n        }\n    });\n    function wa() {\n        if (fa) {\n            return\n        };\n        o.register(o.CONTENT, db);\n        sa = ea(\"timeline\").uai(\"init\", \"scrubber\", false);\n        fa = true;\n        if ((t.ie() <= 7)) {\n            ga = true;\n        };\n    };\n    var xa = aa(function(eb, fb, gb) {\n        var hb = p.get(eb).historicUnitCount;\n        fb -= hb;\n        gb -= 1;\n        if ((((hb == -1) || (gb <= 0)) || (fb < 0))) {\n            return\n        };\n        var ib = db.getNextSectionKey(eb);\n        if (ib) {\n            p.get(ib).load();\n            xa(ib, fb, gb);\n        }\n    ;\n    }, 500);\n    function ya(eb, fb, gb, hb) {\n        var ib = db.getNextSectionKey(fb);\n        if (ib) {\n            oa[ib] = new l(eb, za.curry(ib, eb), false, (gb || 1000));\n        }\n         else if ((fb !== db.WAY_BACK)) {\n            hb = (hb ? hb : 0);\n            if ((hb > 80)) {\n                return null\n            };\n            ya.curry(eb, fb, gb, (hb + 1)).defer(250);\n        }\n        \n    ;\n    };\n    function za(eb, fb) {\n        var gb = p.get(eb);\n        if ((gb && gb.canScrollLoad)) {\n            sa.add_event((\"scroll_load_\" + eb));\n            if (ga) {\n                gb.preload();\n            }\n             else {\n                gb.load();\n                if (ua) {\n                    xa(eb, ua.required_units, ua.max_parallelism);\n                };\n            }\n        ;\n            (fb && j.remove(fb));\n        }\n    ;\n    };\n    function ab() {\n        var eb, fb, gb = false;\n        for (var hb = 0; (hb < ka.length); hb++) {\n            var ib = ka[hb];\n            if (!ib) {\n                continue;\n            };\n            var jb = p.get(ib);\n            if ((jb && ((jb.canScrollLoad || jb.loaded)))) {\n                if (!jb.loaded) {\n                    i.removeClass(jb.node, \"fbTimelineTimePeriodSuppressed\");\n                    i.addClass(jb.node, \"fbTimelineTimePeriodUnexpanded\");\n                }\n            ;\n                if ((eb && fb)) {\n                    bb(eb, fb);\n                    if (gb) {\n                        eb.deactivateScrollLoad();\n                    };\n                    gb = true;\n                }\n            ;\n                eb = null;\n                fb = null;\n                continue;\n            }\n             else if (eb) {\n                fb = jb;\n                jb.deactivateScrollLoad();\n            }\n             else {\n                eb = jb;\n                if (gb) {\n                    jb.activateScrollLoad();\n                };\n            }\n            \n        ;\n            i.removeClass(jb.node, \"fbTimelineTimePeriodSuppressed\");\n            i.addClass(jb.node, \"fbTimelineTimePeriodUnexpanded\");\n        };\n    };\n    function bb(eb, fb) {\n        i.removeClass(fb.node, \"fbTimelineTimePeriodUnexpanded\");\n        i.addClass(fb.node, \"fbTimelineTimePeriodSuppressed\");\n        var gb = j.find(eb.node, \"span.sectionLabel\"), hb = j.find(fb.node, \"span.sectionLabel\");\n        if (!hb.getAttribute(\"data-original-label\")) {\n            hb.setAttribute(\"data-original-label\", j.getText(hb));\n        };\n        if (((gb.getAttribute(\"data-month\") && hb.getAttribute(\"data-month\")) && (gb.getAttribute(\"data-year\") == hb.getAttribute(\"data-year\")))) {\n            j.setContent(hb, da._(\"Show {month1} - {month2} {year}\", {\n                month1: hb.getAttribute(\"data-month\"),\n                month2: gb.getAttribute(\"data-month\"),\n                year: gb.getAttribute(\"data-year\")\n            }));\n        }\n         else if ((gb.getAttribute(\"data-year\") !== hb.getAttribute(\"data-year\"))) {\n            j.setContent(hb, da._(\"Show {year1} - {year2}\", {\n                year1: hb.getAttribute(\"data-year\"),\n                year2: gb.getAttribute(\"data-year\")\n            }));\n        }\n         else j.setContent(hb, da._(\"Show {year}\", {\n            year: hb.getAttribute(\"data-year\")\n        }));\n        \n    ;\n    };\n    function cb(eb) {\n        if (ga) {\n            for (var fb = 0; (fb < (ka.length - 1)); fb++) {\n                var gb = ka[fb];\n                if (!gb) {\n                    continue;\n                };\n                if ((gb != eb)) {\n                    var hb = p.get(gb);\n                    if ((hb.loaded && hb.canUnload)) {\n                        hb.unload();\n                    };\n                }\n            ;\n            }\n        };\n        ab();\n    };\n    var db = {\n        WAY_BACK: \"way_back\",\n        RECENT: \"recent\",\n        HEADER_SCROLL_CUTOFF: 80,\n        CURRENT_SECTION_OFFSET: 150,\n        FOOTER_HEIGHT: 60,\n        registerTimePeriod: function(eb, fb, gb, hb, ib, jb, kb) {\n            wa();\n            if (w(ma, fb)) {\n                return\n            };\n            if (la) {\n                x(gb, la);\n            };\n            var lb = new va(eb, fb, gb, hb, kb);\n            if (!ib) {\n                ka[jb] = fb;\n                ja[fb] = true;\n            }\n             else {\n                lb.parentKey = ib;\n                p.get(ib).subSections = (p.get(ib).subSections || []);\n                p.get(ib).subSections[jb] = lb;\n            }\n        ;\n            p.set(fb, lb);\n            db.checkCurrentSectionChange();\n            h.inform(n.SECTION_REGISTERED, {\n                scrubberKey: fb\n            });\n        },\n        reset: function() {\n            for (var eb in oa) {\n                oa[eb].remove();;\n            };\n            for (var fb in pa) {\n                (pa[fb] && pa[fb].cancel());;\n            };\n            for (var gb in qa) {\n                qa[gb].unsubscribe();\n                delete qa[gb];\n            };\n            (ha && ha.unsubscribe());\n            ha = null;\n            p.removeAll();\n            ia = null;\n            ja = {\n            };\n            ka = [];\n            la = [];\n            ma = [];\n            na = {\n            };\n            oa = {\n            };\n            pa = {\n            };\n            ra = null;\n            sa = null;\n            ta = false;\n            fa = false;\n        },\n        checkCurrentSectionChange: function() {\n            var eb = db.getCurrentSection(), fb = (ia && ia.scrubberKey);\n            if (((eb && (eb.scrubberKey !== fb)) && !eb.isPermalinkPeriod())) {\n                ia = eb;\n                var gb = eb.scrubberKey, hb = eb.parentKey;\n                if (!hb) {\n                    hb = gb;\n                    gb = null;\n                }\n            ;\n                o.sectionHasChanged(hb, gb);\n            }\n        ;\n        },\n        setTimeCutoff: function(eb) {\n            ra = eb;\n        },\n        getTimeCutoff: function() {\n            return ra;\n        },\n        setParallelLoadConfig: function(eb) {\n            ua = eb;\n        },\n        getCurrentSection: function() {\n            var eb = {\n            }, fb = p.getAll();\n            for (var gb in fb) {\n                var hb = fb[gb];\n                if ((!hb.loaded || na[hb.scrubberKey])) {\n                    continue;\n                };\n                var ib = u.getElementPosition(hb.node, \"viewport\").y;\n                if ((hb.scrubberKey == \"recent\")) {\n                    ib--;\n                };\n                if ((ib < db.CURRENT_SECTION_OFFSET)) {\n                    eb[ib] = hb;\n                };\n            };\n            var jb = Math.max.apply(null, Object.keys(eb)), kb = (jb == -Infinity);\n            if (!kb) {\n                return eb[jb];\n            }\n             else if (ka[0]) {\n                return p.get(ka[0])\n            }\n        ;\n            return null;\n        },\n        capsuleForCurrentSection: function() {\n            var eb = db.getCurrentSection();\n            return (eb && j.scry(eb.node, \".fbTimelineCapsule\")[0]);\n        },\n        enableScrollLoad: function(eb, fb, gb, hb) {\n            eb = v(eb);\n            var ib = j.scry(eb.parentNode, \".fbTimelineCapsule\")[0];\n            if (!ib) {\n                return\n            };\n            if ((gb === null)) {\n                ya(eb, fb, hb);\n            }\n             else o.runOnceWhenSectionFullyLoaded(ya.curry(eb, fb, hb), fb, gb);\n        ;\n        },\n        enableScrollLoadOnClick: function(eb, fb, gb) {\n            eb = v(eb);\n            g.listen(eb, \"click\", function(hb) {\n                hb.prevent();\n                db.enableScrollLoad(eb, fb, null, gb);\n            });\n        },\n        expandSectionOnClick: function(eb, fb) {\n            g.listen(eb, \"click\", function(gb) {\n                gb.prevent();\n                p.get(fb).expand();\n            });\n        },\n        expandSubSectionsOnClick: function(eb, fb) {\n            g.listen(eb, \"click\", function(gb) {\n                gb.prevent();\n                p.get(fb).expandSubSections();\n            });\n        },\n        getNextSectionKey: function(eb) {\n            for (var fb = 0; (fb < (ka.length - 1)); fb++) {\n                if ((ka[fb] == eb)) {\n                    while (((fb < (ka.length - 1)) && !ka[(fb + 1)])) {\n                        fb++;;\n                    };\n                    return ka[(fb + 1)];\n                }\n            ;\n            };\n            var gb = p.get(eb);\n            if ((!gb || !gb.parentKey)) {\n                return\n            };\n            var hb = p.get(gb.parentKey);\n            if (!hb) {\n                return\n            };\n            for (var ib = 0; (ib < (hb.subSections.length - 1)); ib++) {\n                if ((hb.subSections[ib].scrubberKey == eb)) {\n                    return hb.subSections[(ib + 1)].scrubberKey\n                };\n            };\n        },\n        hideSection: function(eb) {\n            var fb = p.get(eb);\n            (fb && i.hide(j.find(fb.node, \".fbTimelineSection\")));\n            var gb = o.getCurrentScrubber();\n            if (gb) {\n                var hb = o.getCurrentScrubber().getNav(eb);\n                (hb && i.hide(hb));\n            }\n        ;\n            var ib = o.getCurrentStickyHeaderNav();\n            (ib && ib.removeTimePeriod(eb));\n            na[eb] = true;\n        },\n        loadSectionOnClick: function(eb, fb) {\n            g.listen(eb, \"click\", function(gb) {\n                gb.prevent();\n                p.get(fb).load();\n            });\n        },\n        removeSection: function(eb) {\n            for (var fb in ka) {\n                if ((ka[fb] == eb)) {\n                    ka[fb] = null;\n                    break;\n                }\n            ;\n            };\n            p.remove(eb);\n            delete ja[eb];\n            if ((eb in oa)) {\n                oa[eb].remove();\n                delete oa[eb];\n            }\n        ;\n            var gb = o.getCurrentStickyHeaderNav();\n            (gb && gb.removeTimePeriod(eb));\n            ma.push(eb);\n        },\n        removeSectionParent: function(eb) {\n            j.remove(v(eb).parentNode);\n        },\n        navigateToSection: function(eb, fb, gb) {\n            sa.add_event((\"nav_\" + eb));\n            fb = !!fb;\n            var hb = eb, ib = p.get(eb);\n            if (!ib) {\n                return\n            };\n            if (!ib.loaded) {\n                q.enable();\n                j.scry(v(\"timeline_tab_content\"), \".fbTimelineShowOlderSections\").forEach(j.remove);\n            }\n        ;\n            if (!ja[eb]) {\n                ib.node.style.minHeight = (u.getViewportDimensions().y + \"px\");\n                var jb = h.subscribe(n.SECTION_FULLY_LOADED, function(rb, sb) {\n                    if ((sb.scrubberKey === eb)) {\n                        ib.node.style.minHeight = \"\";\n                        jb.unsubscribe();\n                    }\n                ;\n                });\n                hb = ib.parentKey;\n                var kb = p.get(hb).node;\n                if (!i.hasClass(kb, \"fbTimelineSectionExpanded\")) {\n                    k.scrollTo(kb, 0);\n                    i.addClass(kb, \"fbTimelineSectionExpanded\");\n                    j.scry(kb, \".fbTimelineCapsule\").forEach(j.remove);\n                    j.scry(kb, \"div.fbTimelineSectionExpandPager\").forEach(j.remove);\n                    j.scry(kb, \"div.fbTimelineContentHeader\").forEach(j.remove);\n                    j.scry(kb, \"._5vf\").forEach(function(rb) {\n                        if (!rb.getAttribute(\"data-subsection\")) {\n                            j.remove(rb);\n                        };\n                    });\n                }\n            ;\n                var lb = db.getNextSectionKey(hb);\n                if ((lb && oa[lb])) {\n                    oa[lb].setBuffer(0);\n                };\n            }\n        ;\n            for (var mb = 0; (mb < ka.length); mb++) {\n                var nb = ka[mb];\n                if (!nb) {\n                    continue;\n                };\n                if ((nb == hb)) {\n                    break;\n                };\n                p.get(nb).deactivateScrollLoad();\n                j.scry(v(\"timeline_tab_content\"), \".fbTimelineSectionExpandPager\").forEach(function(rb) {\n                    var sb = m.getInstance(rb.id);\n                    (sb && sb.removeOnVisible());\n                });\n            };\n            db.adjustContentPadding();\n            ib.load(gb, true);\n            ab();\n            var ob = u.getScrollPosition().x, pb = u.getElementPosition(ib.node).y;\n            if (!fb) {\n                var qb = (ja[eb] ? n.SCROLL_TO_OFFSET : n.SUBSECTION_SCROLL_TO_OFFSET);\n                k.scrollTo(new u(ob, (pb - qb), \"document\"), true, false, false, function() {\n                    var rb = u.getElementPosition(ib.node).y;\n                    k.scrollTo(new u(ob, (rb - qb), \"document\"), false);\n                    var sb = j.scry(ib.node, \"h3.uiHeaderTitle\")[0];\n                    if (sb) {\n                        sb.tabIndex = 0;\n                        sb.focus();\n                    }\n                ;\n                });\n            }\n        ;\n        },\n        adjustContentPadding: function() {\n            var eb = ba(\"timeline_tab_content\");\n            if (!eb) {\n                return\n            };\n            if (o.isOneColumnMinimal()) {\n                return\n            };\n            var fb = (o.getCurrentKey() || r.TIMELINE_KEY);\n            if ((fb !== r.TIMELINE_KEY)) {\n                return\n            };\n            var gb = (ka.length - 1), hb = p.get(ka[gb]);\n            eb.style.paddingBottom = ((hb && hb.loaded) ? null : ((((u.getViewportDimensions().y - db.CURRENT_SECTION_OFFSET) - db.HEADER_SCROLL_CUTOFF) - db.FOOTER_HEIGHT) + \"px\"));\n        },\n        adjustContentPaddingAfterLoad: function(eb, fb) {\n            o.runOnceWhenSectionFullyLoaded(db.adjustContentPadding, eb, fb);\n        },\n        appendContentAfterLoad: function(eb, fb, gb) {\n            o.runOnceWhenSectionFullyLoaded(j.appendContent.curry(v(eb), fb), gb, \"0\");\n        },\n        markSectionAsLoaded: function(eb, fb, gb) {\n            o.runOnceWhenSectionFullyLoaded(function() {\n                (ba(eb) && i.removeClass(v(eb).parentNode, \"fbTimelineSectionLoading\"));\n            }, fb, gb);\n        },\n        suppressSectionsAbove: function(eb) {\n            var fb, gb;\n            for (var hb = 0; (hb < ka.length); hb++) {\n                var ib = ka[hb];\n                if (!ib) {\n                    continue;\n                };\n                fb = p.get(ib).node;\n                gb = null;\n                if ((y(eb.parentNode.children).indexOf(eb) <= y(fb.parentNode.children).indexOf(fb))) {\n                    gb = ib;\n                    break;\n                }\n            ;\n                p.get(ib).deactivateScrollLoad();\n            };\n            if (gb) {\n                db.navigateToSection(gb, true);\n            };\n        },\n        forceNoFriendActivity: function() {\n            ta = true;\n        },\n        removeDupes: function(eb) {\n            var fb = ba(eb);\n            if (!fb) {\n                return\n            };\n            var gb = j.scry(fb, \"li.fbTimelineUnit\"), hb = {\n            };\n            for (var ib = 0; (ib < gb.length); ib++) {\n                var jb = gb[ib];\n                if ((jb.id && ca(jb.id, \"tl_unit_\"))) {\n                    var kb = jb.id.substring(8, jb.id.length), lb = (((jb.getAttribute(\"data-unit\") == \"ExperienceSummaryUnit\") ? jb.getAttribute(\"data-time\") : 1));\n                    if ((hb.hasOwnProperty(kb) && (hb[kb] == lb))) {\n                        jb.id = (\"dupe_unit_\" + Math.random());\n                        jb.className = \"hidden_elem\";\n                    }\n                     else hb[kb] = lb;\n                ;\n                }\n            ;\n            };\n        },\n        removeLoadingState: function(eb) {\n            (ba(eb) && i.removeClass(v(eb), \"fbTimelineSectionLoading\"));\n        },\n        setExpandLoadDataForSection: function(eb, fb) {\n            var gb = p.get(eb);\n            (gb && gb.setExpandLoadData(fb));\n        },\n        appendSectionDataForAllSections: function(eb) {\n            la = eb;\n            for (var fb = 0; (fb < (ka.length - 1)); fb++) {\n                var gb = ka[fb];\n                if (!gb) {\n                    continue;\n                };\n                var hb = p.get(gb);\n                (hb && hb.appendData(eb));\n            };\n        },\n        updatePagerAfterLoad: function(eb, fb, gb, hb, ib) {\n            var jb = m.getInstance(eb.firstChild.id);\n            if (!jb) {\n                qa[eb.firstChild.id] = h.subscribe(m.REGISTERED, function(kb, lb) {\n                    qa[eb.firstChild.id].unsubscribe();\n                    delete qa[eb.firstChild.id];\n                    if ((lb.id === eb.firstChild.id)) {\n                        db.updatePagerAfterLoad(eb, fb, gb, hb, ib);\n                    };\n                });\n                return;\n            }\n        ;\n            o.runOnceWhenSectionFullyLoaded(function() {\n                i.removeClass(eb, \"fbTimelineHiddenPager\");\n                jb.checkBuffer();\n            }, gb, hb);\n            if (ib) {\n                o.runOnceWhenSectionFullyLoaded(o.adjustScrollingPagerBuffer.curry(eb.firstChild.id, fb), gb, hb);\n            };\n        },\n        showAfterLoad: function(eb, fb, gb) {\n            o.runOnceWhenSectionFullyLoaded(function() {\n                var hb = ba(eb);\n                (hb && i.show(hb));\n            }, fb, gb);\n        },\n        repositionDialog: function(eb) {\n            h.subscribe(n.SECTION_LOADED, function() {\n                eb.updatePosition();\n            });\n        },\n        rightColumnFinished: function(eb) {\n            var fb = p.get(eb);\n            fb.rightColumnFinished = true;\n        },\n        registerUnrankedGroup: function(eb) {\n            g.listen(eb, \"click\", function(event) {\n                var fb = j.find(eb, \".unranked_group_placeholder\");\n                if ((event.getTarget() !== fb)) {\n                    return event.prevent()\n                };\n                j.remove(fb);\n                i.removeClass(j.find(eb, \".unranked_group_units\"), \"hidden_elem\");\n                return true;\n            });\n        }\n    };\n    e.exports = db;\n});\n__d(\"TimelineLogging\", [\"TimelineController\",\"reportData\",], function(a, b, c, d, e, f) {\n    var g = b(\"TimelineController\"), h = b(\"reportData\"), i = false, j = 0, k = null, l = null, m = {\n        init: function(n) {\n            if (i) {\n                return\n            };\n            j = n;\n            g.register(g.LOGGING, this);\n        },\n        reset: function() {\n            i = false;\n            j = 0;\n            k = null;\n        },\n        log: function(n, o) {\n            o.profile_id = j;\n            h(n, {\n                gt: o\n            });\n        },\n        logSectionChange: function(n, o) {\n            var p = {\n                timeline_section_change: 1,\n                key: n\n            };\n            if ((k && (n == k))) {\n                p.timeline_scrubber = 1;\n                k = null;\n            }\n        ;\n            if ((l && (n == l))) {\n                p.sticky_header_nav = 1;\n                l = null;\n            }\n        ;\n            m.log(\"timeline\", p);\n        },\n        logScrubberClick: function(n) {\n            k = n;\n        },\n        logStickyHeaderNavClick: function(n) {\n            l = n;\n        }\n    };\n    e.exports = m;\n});\n__d(\"TimelineSideAds\", [\"function-extensions\",\"Arbiter\",\"CSS\",\"DOM\",\"EgoAdsObjectSet\",\"Event\",\"StickyController\",\"TimelineConstants\",\"TimelineController\",\"UIPagelet\",\"URI\",\"Vector\",\"cx\",\"csx\",\"debounce\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"EgoAdsObjectSet\"), k = b(\"Event\"), l = b(\"StickyController\"), m = b(\"TimelineConstants\"), n = b(\"TimelineController\"), o = b(\"UIPagelet\"), p = b(\"URI\"), q = b(\"Vector\"), r = b(\"cx\"), s = b(\"csx\"), t = b(\"debounce\"), u = b(\"ge\"), v = 3, w = 4, x = 75, y = \"data-height\", z = 30000, aa = 0, ba = false, ca, da, ea, fa, ga, ha = new j(), ia, ja = false, ka, la = Infinity, ma = 5, na = false, oa, pa, qa, ra, sa, ta, ua = false, va = [], wa;\n    function xa(ub, vb, wb) {\n        var xb = 0;\n        if (vb) {\n            xb += vb.getHeight();\n        };\n        if ((!cb() && !xb)) {\n            return\n        };\n        ub -= xb;\n        var yb = 0;\n        for (var zb = 0; (zb < wb); zb++) {\n            yb += lb(zb);;\n        };\n        if (vb) {\n            if ((ub < yb)) {\n                ub += vb.fold((yb - ub));\n            }\n             else if ((ub > yb)) {\n                ub -= vb.unfold((ub - yb));\n            }\n        \n        };\n        return ub;\n    };\n    function ya() {\n        var ub = da.cloneNode(true);\n        ub.id = \"\";\n        var vb = new j();\n        vb.init(i.scry(ub, \"div.ego_unit\"));\n        var wb = true;\n        vb.forEach(function(xb) {\n            if (wb) {\n                wb = false;\n            }\n             else i.remove(xb);\n        ;\n        });\n        h.addClass(ub, \"fixed_elem\");\n        return ub;\n    };\n    function za() {\n        ga = undefined;\n        if (!n.pageHasScrubber(ia)) {\n            db(ma);\n            gb();\n        }\n         else if (pa) {\n            eb(da, false);\n            var ub = qa;\n            (qa && i.remove(qa));\n            qa = ya();\n            if (ub) {\n                rb();\n            };\n            db(((n.sidebarInitialized() && ja) ? w : v));\n            gb();\n            if (!ka) {\n                var vb = n.getCurrentScrubber();\n                if (vb) {\n                    qb(vb.getRoot(), vb.getOffset());\n                };\n            }\n        ;\n            (ka && ka.start());\n        }\n         else tb.adjustAdsToFit();\n        \n    ;\n    };\n    function ab() {\n        if (qa) {\n            i.remove(qa);\n            qa = null;\n        }\n    ;\n        if (ka) {\n            ka.stop();\n            ka = null;\n        }\n    ;\n        if (cb()) {\n            h.conditionClass(da, \"fixed_elem\", !pa);\n            h.conditionClass(da, \"_22s\", !n.pageHasScrubber(ia));\n        }\n         else h.conditionClass(da, \"fixed_elem\", (!pa && n.pageHasScrubber(ia)));\n    ;\n    };\n    function bb(ub) {\n        var vb = q.getViewportDimensions().y, wb = n.getCurrentScrubber(), xb = (wb ? wb.getOffset() : m.SCRUBBER_DEFAULT_OFFSET), yb = ((vb - xb) - x);\n        if ((wb || cb())) {\n            return xa(yb, wb, ub)\n        };\n    };\n    function cb() {\n        return n.fixedAds();\n    };\n    function db(ub) {\n        fa = Math.min(ub, ha.getCount());\n        ha.forEach(function(vb, wb) {\n            eb(vb, (wb >= fa));\n        });\n        eb(da, (fa === 0));\n    };\n    function eb(ub, vb) {\n        h.conditionClass(ub, \"_22r\", vb);\n        ub.setAttribute(\"aria-hidden\", (vb ? \"true\" : \"false\"));\n    };\n    function fb(ub) {\n        var vb = i.find(ha.getUnit(ub), \"div._4u8\"), wb = vb.getAttribute(\"data-ad\");\n        return JSON.parse(wb).adid;\n    };\n    function gb() {\n        ib();\n        hb();\n    };\n    function hb() {\n        var ub;\n        if ((ga !== undefined)) {\n            ub = ha.getHoldoutAdIDsForSpace(ga, mb);\n        }\n         else ub = ha.getHoldoutAdIDsForNumAds(fa);\n    ;\n        if (ub) {\n            ub.forEach(jb);\n        };\n    };\n    function ib() {\n        if (!ra) {\n            return\n        };\n        for (var ub = (fa - 1); (ub >= 0); --ub) {\n            if (((ka && ka.isFixed()) && ((((ub !== 0)) || ((qa && !h.shown(qa))))))) {\n                continue;\n            };\n            var vb = fb(ub);\n            if (!ra[vb]) {\n                return\n            };\n            jb(vb);\n        };\n    };\n    function jb(ub) {\n        if (!ra[ub]) {\n            return\n        };\n        var vb = i.create(\"iframe\", {\n            src: p(\"/ai.php\").addQueryData({\n                aed: ra[ub]\n            }),\n            width: 0,\n            height: 0,\n            frameborder: 0,\n            scrolling: \"no\",\n            className: \"fbEmuTracking\"\n        });\n        vb.setAttribute(\"aria-hidden\", \"true\");\n        i.appendContent(da, vb);\n        delete ra[ub];\n    };\n    function kb(ub) {\n        var vb = 0;\n        while (((ub > 0) && (vb < ma))) {\n            ub -= lb(vb);\n            if ((ub >= 0)) {\n                vb++;\n            };\n        };\n        return vb;\n    };\n    function lb(ub) {\n        var vb = ha.getUnit(ub);\n        if (!vb) {\n            return 0\n        };\n        return mb(vb);\n    };\n    function mb(ub) {\n        if (!ub.getAttribute(y)) {\n            nb(ub);\n        };\n        return parseInt(ub.getAttribute(y), 10);\n    };\n    function nb(ub) {\n        ub.setAttribute(y, ub.offsetHeight);\n    };\n    function ob() {\n        for (var ub = 0; (ub < ha.getCount()); ub++) {\n            var vb = ha.getUnit(ub);\n            if (!vb) {\n                continue;\n            };\n            nb(vb);\n        };\n    };\n    function pb() {\n        var ub = i.scry(da, \"div.ego_unit\");\n        ha.init(ub);\n        var vb = ub.length;\n        if (!vb) {\n            return\n        };\n        h.addClass(ha.getUnit(0), \"ego_unit_no_top_border\");\n        na = vb;\n        za();\n        var wb = function(xb) {\n            nb(xb);\n            na = --vb;\n            tb.adjustAdsToFit();\n            if (!na) {\n                la = Date.now();\n            };\n        };\n        ub.forEach(function(xb) {\n            function yb() {\n                wb.curry(xb).defer();\n            };\n            var zb = i.scry(xb, \"img.img\")[0];\n            if (!zb) {\n                return\n            };\n            if (zb.complete) {\n                yb();\n            }\n             else k.listen(zb, {\n                load: yb,\n                error: yb,\n                abort: yb\n            });\n        ;\n        });\n    };\n    function qb(ub, vb) {\n        ka = new l(ub, vb, function(wb) {\n            if (wb) {\n                rb();\n            }\n             else {\n                i.remove(qa);\n                gb();\n            }\n        ;\n        });\n        if (qa) {\n            ka.start();\n        };\n    };\n    function rb() {\n        i.insertAfter(da, qa);\n        sb();\n    };\n    function sb() {\n        h.conditionShow(qa, ((lb(0) <= bb(1)) && !h.hasClass(document.documentElement, \"tinyViewport\")));\n    };\n    var tb = {\n        init: function(ub, vb, wb) {\n            if (ba) {\n                return\n            };\n            ma = wb.max_ads;\n            ca = wb.refresh_delay;\n            z = wb.refresh_threshold;\n            ba = true;\n            ea = vb;\n            da = ub;\n            tb.adjustAdsType(n.shouldShowWideAds());\n            sa = g.subscribe([\"UFI/CommentAddedActive\",\"UFI/CommentDeletedActive\",\"UFI/LikeActive\",\"Curation/Action\",\"ProfileBrowser/LoadMoreContent\",\"Ads/NewContentDisplayed\",], tb.loadAdsIfEnoughTimePassed);\n            ta = g.subscribe(\"TimelineSideAds/refresh\", tb.forceReloadAds);\n            wa = t(tb.loadAdsIfEnoughTimePassed, ca, this, true);\n            if (wb.mouse_move) {\n                va.push(k.listen(window, \"mousemove\", wa));\n                va.push(k.listen(window, \"scroll\", wa));\n                va.push(k.listen(window, \"resize\", wa));\n            }\n        ;\n            n.register(n.ADS, tb);\n        },\n        setShortMode: function(ub) {\n            pa = ub;\n        },\n        start: function(ub) {\n            ra = ub;\n            oa = null;\n            pb();\n        },\n        updateCurrentKey: function(ub) {\n            if ((ub == ia)) {\n                return\n            };\n            ia = ub;\n            ab();\n        },\n        loadAds: function(ub) {\n            if ((na || oa)) {\n                return\n            };\n            la = Infinity;\n            oa = o.loadFromEndpoint(\"WebEgoPane\", da.id, {\n                pid: 33,\n                data: [ea,(\"timeline_\" + ub),(pa ? w : ma),++aa,false,]\n            }, {\n                crossPage: true,\n                bundle: false\n            });\n        },\n        registerScrubber: function(ub) {\n            if (pa) {\n                qb(ub.getRoot(), ub.getOffset());\n            };\n            (!oa && tb.adjustAdsToFit());\n        },\n        loadAdsIfEnoughTimePassed: function() {\n            if (((((z && (((Date.now() - la) >= z))) && !h.hasClass(document.documentElement, \"tinyViewport\")) && ((!ka || ka.isFixed()))) && ((!ra || !ra[fb(0)])))) {\n                tb.loadAds(ia);\n            };\n            tb.adjustAdsToFit();\n        },\n        forceReloadAds: function() {\n            tb.loadAds(ia);\n        },\n        adjustAdsType: function(ub) {\n            if ((ub != ja)) {\n                h.conditionClass(da, \"_22q\", !ub);\n                h.conditionClass(da, \"_35q\", !ub);\n                (qa && h.conditionClass(qa, \"_22q\", !ub));\n                (qa && h.conditionClass(qa, \"_35q\", !ub));\n                ja = ub;\n                ob();\n                tb.adjustAdsToFit();\n                var vb = u(\"rightColContent\");\n                if (vb) {\n                    h.conditionClass(vb, \"fbTimelineWideRightCol\", ub);\n                };\n            }\n        ;\n        },\n        adjustAdsToFit: function() {\n            if ((!da || ua)) {\n                return\n            };\n            ua = true;\n            var ub = (ja ? w : v);\n            if (pa) {\n                if ((ka && qa)) {\n                    ka.handleScroll();\n                    if (ka.isFixed()) {\n                        h.conditionShow(qa, ((lb(0) <= bb(1)) && !h.hasClass(document.documentElement, \"tinyViewport\")));\n                    }\n                     else db(ub);\n                ;\n                    gb();\n                }\n            ;\n            }\n             else {\n                var vb = bb(ub);\n                if ((typeof vb !== \"undefined\")) {\n                    ga = vb;\n                    db(kb(vb));\n                    if (!na) {\n                        gb();\n                    };\n                }\n            ;\n            }\n        ;\n            ua = false;\n        },\n        reset: function() {\n            (ka && ka.stop());\n            (oa && oa.cancel());\n            ha = new j();\n            ja = false;\n            da = null;\n            ka = null;\n            oa = null;\n            aa = 0;\n            na = null;\n            pa = null;\n            qa = null;\n            ia = null;\n            la = Infinity;\n            ba = false;\n            (sa && g.unsubscribe(sa));\n            sa = null;\n            (ta && g.unsubscribe(ta));\n            ta = null;\n            va.forEach(function(ub) {\n                ub.remove();\n            });\n            va = [];\n            (wa && wa.reset());\n        }\n    };\n    e.exports = (a.TimelineSideAds || tb);\n});\n__d(\"TimelineStickyHeader\", [\"Animation\",\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"Style\",\"TimelineController\",\"TimelineURI\",\"Vector\",\"ViewportBounds\",\"$\",\"ge\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Style\"), m = b(\"TimelineController\"), n = b(\"TimelineURI\"), o = b(\"Vector\"), p = b(\"ViewportBounds\"), q = b(\"$\"), r = b(\"ge\"), s = b(\"queryThenMutateDOM\"), t = 200, u = false, v = false, w, x, y, z, aa, ba, ca = {\n    }, da = {\n        VISIBLE: \"TimelineStickyHeader/visible\",\n        ADJUST_WIDTH: \"TimelineStickyHeader/adjustWidth\",\n        init: function(ea) {\n            if (u) {\n                return\n            };\n            u = true;\n            w = ea;\n            x = k.find(ea, \"div.name\");\n            y = k.find(ea, \"div.actions\");\n            v = j.hasClass(ea, \"fbTimelineStickyHeaderVisible\");\n            var fa = q(\"blueBar\"), ga, ha = false;\n            s(function() {\n                if (((fa.offsetTop && !r(\"page_admin_panel\")) && (m.getCurrentKey() !== n.TIMELINE_KEY))) {\n                    ga = o.getElementDimensions(fa).y;\n                    ha = true;\n                }\n            ;\n            }, function() {\n                if (ha) {\n                    i.loadModules([\"StickyController\",], function(ia) {\n                        new ia(ea, ga).start();\n                    });\n                }\n                 else j.addClass(ea, \"fixed_elem\");\n            ;\n                s(function() {\n                    aa = ea.offsetTop;\n                    ba = ea.scrollHeight;\n                }, function() {\n                    z = p.addTop(function() {\n                        return (v ? (aa + ba) : 0);\n                    });\n                }, \"TimelineStickyHeader/init\");\n                m.register(m.STICKY_HEADER, da);\n            }, \"TimelineStickyHeader/init\");\n        },\n        reset: function() {\n            u = false;\n            v = false;\n            w = null;\n            x = null;\n            y = null;\n            ca = {\n            };\n            z.remove();\n            z = null;\n        },\n        toggle: function(ea) {\n            if ((ea !== v)) {\n                var fa = (ea ? (aa - ba) : aa), ga = (ea ? aa : (aa - ba));\n                l.set(w, \"top\", (fa + \"px\"));\n                j.addClass(w, \"fbTimelineStickyHeaderAnimating\");\n                var ha = k.getID(w);\n                (ca[ha] && ca[ha].stop());\n                ca[ha] = new g(w).from(\"top\", fa).to(\"top\", ga).duration(t).ondone(function() {\n                    ca[ha] = null;\n                    j.conditionClass(w, \"fbTimelineStickyHeaderHidden\", !ea);\n                    w.setAttribute(\"aria-hidden\", (ea ? \"false\" : \"true\"));\n                    j.removeClass(w, \"fbTimelineStickyHeaderAnimating\");\n                    l.set(w, \"top\", \"\");\n                    h.inform(da.VISIBLE, ea);\n                }).go();\n                v = ea;\n            }\n        ;\n        },\n        adjustWidth: function() {\n            h.inform(da.ADJUST_WIDTH, x, h.BEHAVIOR_STATE);\n        },\n        getRoot: function() {\n            return w;\n        },\n        setActions: function(ea) {\n            if ((u && ea)) {\n                k.setContent(y, ea);\n                y = ea;\n            }\n        ;\n        }\n    };\n    e.exports = (a.TimelineStickyHeader || da);\n});\n__d(\"ButtonGroup\", [\"function-extensions\",\"copyProperties\",\"createArrayFrom\",\"CSS\",\"DataStore\",\"Parent\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"copyProperties\"), h = b(\"createArrayFrom\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"Parent\"), l = \"firstItem\", m = \"lastItem\";\n    function n(s, t) {\n        var u = k.byClass(s, t);\n        if (!u) {\n            throw new Error(\"invalid use case\")\n        };\n        return u;\n    };\n    function o(s) {\n        return (i.shown(s) && h(s.childNodes).some(i.shown));\n    };\n    function p(s) {\n        var t, u, v;\n        h(s.childNodes).forEach(function(w) {\n            v = o(w);\n            i.removeClass(w, l);\n            i.removeClass(w, m);\n            i.conditionShow(w, v);\n            if (v) {\n                t = (t || w);\n                u = w;\n            }\n        ;\n        });\n        (t && i.addClass(t, l));\n        (u && i.addClass(u, m));\n        i.conditionShow(s, t);\n    };\n    function q(s, t) {\n        var u = n(t, \"uiButtonGroupItem\");\n        s(u);\n        p(u.parentNode);\n    };\n    function r(s) {\n        this._root = n(s, \"uiButtonGroup\");\n        j.set(this._root, \"ButtonGroup\", this);\n        p(this._root);\n    };\n    r.getInstance = function(s) {\n        var t = n(s, \"uiButtonGroup\"), u = j.get(t, \"ButtonGroup\");\n        return (u || new r(t));\n    };\n    g(r.prototype, {\n        hideItem: q.curry(i.hide),\n        showItem: q.curry(i.show),\n        toggleItem: q.curry(i.toggle)\n    });\n    e.exports = r;\n});\n__d(\"TimelineStickyHeaderNav\", [\"Event\",\"function-extensions\",\"Arbiter\",\"ButtonGroup\",\"CSS\",\"DOM\",\"Parent\",\"SelectorDeprecated\",\"Style\",\"SubscriptionsHandler\",\"TimelineConstants\",\"TimelineController\",\"TimelineLegacySections\",\"URI\",\"UserAgent\",\"Vector\",\"ge\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"ButtonGroup\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Parent\"), m = b(\"SelectorDeprecated\"), n = b(\"Style\"), o = b(\"SubscriptionsHandler\"), p = b(\"TimelineConstants\"), q = b(\"TimelineController\"), r = b(\"TimelineLegacySections\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"ge\"), w = b(\"tx\"), x = false, y, z, aa, ba, ca, da, ea, fa, ga, ha, ia, ja = {\n    }, ka = {\n    }, la = [], ma = false, na = [], oa = [], pa, qa = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",];\n    function ra() {\n        var fb = m.getSelectorMenu(da);\n        pa.addSubscriptions(g.listen(fb, \"click\", sa), h.subscribe(p.SECTION_LOADED, wa));\n    };\n    function sa(event) {\n        var fb = l.byTag(event.getTarget(), \"a\");\n        if (fb) {\n            var gb = fb.getAttribute(\"data-key\");\n            q.stickyHeaderNavWasClicked(gb);\n            q.navigateToSection(gb);\n            event.prevent();\n        }\n    ;\n    };\n    function ta(fb, gb) {\n        var hb = m.getValue(gb);\n        if ((hb === \"allStories\")) {\n            r.get(fb).expandSubSections();\n        };\n        if ((hb !== \"activityLog\")) {\n            ua(gb);\n        };\n    };\n    function ua(fb) {\n        db(fb, \"highlights\");\n        db(fb, \"allStories\");\n        var gb = k.find(fb, \"li.separator\");\n        j.conditionShow(gb, gb.previousSibling);\n    };\n    function va(fb) {\n        if ((ga[fb] && !z.custom_subsection_menu)) {\n            ab(fb);\n        }\n         else xa();\n    ;\n        q.adjustStickyHeaderWidth();\n    };\n    function wa(fb, gb) {\n        var hb = gb.key;\n        if (ha[hb]) {\n            bb(hb);\n            va(hb);\n        }\n    ;\n    };\n    function xa() {\n        ba.hideItem(ea);\n    };\n    function ya(fb) {\n        var gb = fb.split(\"_\");\n        return qa[(gb.pop() - 1)];\n    };\n    function za(fb) {\n        var gb = fa[fb], hb = ga[fb];\n        if ((!gb && hb)) {\n            gb = fa[fb] = ea.cloneNode(true);\n            var ib = k.scry(gb, \"li.activityLog a\")[0];\n            if (ib) {\n                ib.href = s(ib.href).addQueryData({\n                    key: fb\n                });\n            };\n            var jb = q.getCurrentScrubber();\n            if (hb.length) {\n                j.show(k.find(gb, \"li.separator\"));\n            };\n            for (var kb = 0; (kb < hb.length); kb++) {\n                var lb = hb[kb].scrubberKey, mb = (jb ? jb.getLabelForSubnav(hb[kb].parentKey, lb) : mb = ya(lb));\n                if (mb) {\n                    cb(gb, {\n                        key: lb,\n                        label: mb\n                    });\n                };\n            };\n            pa.addSubscriptions(m.listen(gb, \"change\", ta.curry(fb, gb)), g.listen(gb, \"click\", sa));\n        }\n    ;\n        return gb;\n    };\n    function ab(fb) {\n        var gb = za(fb);\n        k.insertAfter(ea, gb);\n        j.hide(ea);\n        for (var hb in fa) {\n            var ib = fa[hb];\n            j.conditionShow(ib, (ib === gb));\n        };\n        ba.showItem(ea);\n    };\n    function bb(fb) {\n        ga[fb] = r.get(fb).subSections;\n    };\n    function cb(fb, gb) {\n        var hb = k.create(\"a\", {\n            href: \"#\",\n            rel: \"ignore\",\n            className: \"itemAnchor\",\n            tabIndex: 0\n        }, k.create(\"span\", {\n            className: \"itemLabel fsm\"\n        }, gb.label));\n        hb.setAttribute(\"data-key\", gb.key);\n        hb.setAttribute(\"aria-checked\", false);\n        var ib = k.create(\"li\", {\n            className: \"uiMenuItem uiMenuItemRadio uiSelectorOption\"\n        }, hb);\n        ib.setAttribute(\"data-label\", gb.label);\n        var jb = k.find(fb, \"ul.uiMenuInner\"), kb = k.create(\"option\", {\n            value: gb.key\n        }, gb.label), lb = k.find(fb, \"select\");\n        if ((gb.key === \"recent\")) {\n            k.prependContent(jb, ib);\n            k.insertAfter(lb.options[0], kb);\n        }\n         else {\n            k.appendContent(jb, ib);\n            k.appendContent(lb, kb);\n        }\n    ;\n    };\n    function db(fb, gb) {\n        var hb = k.scry(fb, \"li.uiMenuItem\");\n        if (!hb) {\n            return\n        };\n        for (var ib = 0; (ib < hb.length); ib++) {\n            var jb = hb[ib];\n            if ((j.hasClass(jb, gb) || (jb.firstChild.getAttribute(\"data-key\") == gb))) {\n                k.remove(jb);\n                break;\n            }\n        ;\n        };\n        var kb = k.find(fb, \"select\"), lb = k.scry(kb, \"option\");\n        for (ib = 0; (ib < lb.length); ib++) {\n            if ((lb[ib].value === gb)) {\n                k.remove(lb[ib]);\n                return;\n            }\n        ;\n        };\n    };\n    var eb = {\n        init: function(fb, gb) {\n            if (x) {\n                return\n            };\n            x = true;\n            y = fb;\n            z = (gb || {\n            });\n            ca = k.find(y, \"div.pageMenu\");\n            da = k.find(y, \"div.sectionMenu\");\n            ea = k.find(y, \"div.subsectionMenu\");\n            ia = k.find(ca, \"li.uiMenuSeparator\");\n            ba = i.getInstance(ca);\n            pa = new o();\n            fa = {\n            };\n            ga = {\n            };\n            ha = {\n            };\n            eb.adjustMenuHeights();\n            ra();\n            q.register(q.STICKY_HEADER_NAV, eb);\n            oa.forEach(function(hb) {\n                hb();\n            });\n        },\n        reset: function() {\n            x = false;\n            z = {\n            };\n            la = [];\n            ja = {\n            };\n            ka = {\n            };\n            ma = false;\n            na = [];\n            y = null;\n            ca = null;\n            da = null;\n            ea = null;\n            ia = null;\n            fa = {\n            };\n            ga = {\n            };\n            ha = {\n            };\n            pa.release();\n        },\n        addTimePeriod: function(fb) {\n            var gb = q.getCurrentScrubber();\n            if (!gb) {\n                return\n            };\n            var hb = gb.getLabelForNav(fb);\n            if (!hb) {\n                return\n            };\n            cb(da, {\n                key: fb,\n                label: hb\n            });\n            var ib = k.find(da, \"ul.uiMenuInner\");\n            if (((fb === \"recent\") || (ib.children.length < 2))) {\n                m.setSelected(da, fb, true);\n            };\n        },\n        updateSection: function(fb, gb) {\n            if (gb) {\n                var hb = za(fb);\n                if (hb) {\n                    m.setSelected(hb, gb);\n                    ua(hb);\n                }\n                 else aa = fb;\n            ;\n            }\n             else {\n                ha[fb] = true;\n                bb(fb);\n            }\n        ;\n            m.setSelected(da, fb, true);\n            va(fb);\n        },\n        adjustMenuHeights: function() {\n            if ((t.ie() <= 7)) {\n                return\n            };\n            [ca,da,].forEach(function(fb) {\n                var gb = \"\";\n                if (!j.hasClass(document.documentElement, \"tinyViewport\")) {\n                    gb = ((u.getViewportDimensions().y - u.getElementDimensions(v(\"blueBar\")).y) - 80);\n                    gb += \"px\";\n                }\n            ;\n                n.set(k.find(fb, \"ul.uiMenuInner\"), \"maxHeight\", gb);\n            });\n        },\n        initPageMenu: function(fb, gb) {\n            if (!x) {\n                oa.push(eb.initPageMenu.curry(fb, gb));\n                return;\n            }\n        ;\n            function hb(ib, jb) {\n                ib.forEach(function(kb) {\n                    var lb = ka[kb] = k.create(\"li\");\n                    j.hide(lb);\n                    (jb ? k.insertBefore(ia, lb) : k.appendContent(k.find(ca, \"ul.uiMenuInner\"), lb));\n                });\n            };\n            hb(fb, true);\n            hb(gb, false);\n            ja.info = k.scry(ca, \"li\")[0];\n            la = gb;\n            ma = true;\n            if (na.length) {\n                na.forEach(function(ib) {\n                    eb.registerPageMenuItem(ib.key, ib.item);\n                });\n            };\n        },\n        registerPageMenuItem: function(fb, gb) {\n            if (!ma) {\n                na.push({\n                    key: fb,\n                    item: gb\n                });\n                return;\n            }\n        ;\n            if (ka[fb]) {\n                k.replace(ka[fb], gb);\n                ja[fb] = gb;\n                delete ka[fb];\n                if ((la.indexOf(fb) >= 0)) {\n                    j.show(ia);\n                };\n            }\n        ;\n        },\n        removeTimePeriod: function(fb) {\n            db(da, fb);\n        }\n    };\n    e.exports = eb;\n});\n__d(\"TimelineSpinelessComposer\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"Parent\",\"Run\",\"TimelineComposer\",\"TimelineComposerUtilities\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Parent\"), l = b(\"Run\"), m = b(\"TimelineComposer\"), n = b(\"TimelineComposerUtilities\"), o = b(\"csx\"), p = b(\"cx\"), q;\n    function r(w) {\n        if ((w.isScheduledPost || w.isOGPost)) {\n            return\n        };\n        if (!w.streamStory) {\n            window.location.reload();\n            return;\n        }\n    ;\n        if (w.backdatedTime) {\n            h.loadModules([\"TimelineStoryPublisher\",], function(x) {\n                x.publish(w);\n            });\n            return;\n        }\n    ;\n        m.renderCapsuleBasedStory(q, w.streamStory);\n    };\n    function s() {\n        return j.find(k.byClass(q, \"fbTimelineComposerCapsule\"), \"div._4s3\");\n    };\n    function t(w) {\n        var x = u();\n        i.show(x);\n        var y = w.subscribe(\"hide\", function() {\n            i.hide(x);\n            w.unsubscribe(y);\n        });\n    };\n    function u() {\n        var w = k.byClass(q, \"fbTimelineComposerCapsule\"), x = j.scry(w, \"div.composerVeil\");\n        if ((x.length !== 1)) {\n            x = j.appendContent(w, j.create(\"div\", {\n                className: \"composerVeil hidden_elem\"\n            }));\n        };\n        return x[0];\n    };\n    var v = {\n        init: function(w) {\n            q = w;\n            var x = g.subscribe(\"composer/publish\", function(event, y) {\n                if ((y.composer_id === q.id)) {\n                    r(y);\n                };\n            });\n            l.onLeave(x.unsubscribe.bind(x));\n            if (i.hasClass(q, \"_mj\")) {\n                n.hidePlaceIfAttachmentsTooTall(q);\n            }\n             else n.hidePlaceIfAttachmentsTooTallOld(q);\n        ;\n        },\n        showMLEFlyout: function(w) {\n            w.setContext(s()).show();\n            t(w);\n        }\n    };\n    e.exports = v;\n});\n__d(\"TimelineScrubber\", [\"Event\",\"CSS\",\"DOM\",\"Focus\",\"Keys\",\"Parent\",\"TimelineController\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Focus\"), k = b(\"Keys\"), l = b(\"Parent\"), m = b(\"TimelineController\"), n = b(\"Vector\"), o = b(\"copyProperties\");\n    function p(q) {\n        this._root = q;\n        this._navKeys = {\n        };\n        this._subNavKeys = {\n        };\n        this._rollups = {\n        };\n        this._rolledup = {\n        };\n        var r = q.childNodes;\n        this._currentNav = r[0];\n        for (var s = 0; (s < r.length); s++) {\n            var t = r[s].getAttribute(\"data-key\");\n            this._navKeys[t] = r[s];\n            var u = i.scry(r[s], \"ul\");\n            this._subNavKeys[t] = {\n            };\n            if (u.length) {\n                var v = u[0].childNodes;\n                for (var w = 0; (w < v.length); w++) {\n                    this._subNavKeys[t][v[w].getAttribute(\"data-key\")] = v[w];;\n                };\n            }\n        ;\n            var x = r[s].getAttribute(\"data-rollup\");\n            if (x) {\n                this._rollups[x] = (this._rollups[x] || []);\n                this._rollups[x].push(r[s]);\n            }\n        ;\n        };\n        this._clickListener = g.listen(this._root, \"click\", this._handleScrub.bind(this));\n        this._focusHandler = g.listen(this._root, \"keydown\", this._moveFocus.bind(this));\n        this._tabbableElement = i.scry(this._root, \"a\")[0];\n        h.show(this._root);\n        var y = (n.getViewportDimensions().y - this.SCRUBBER_NO_ADS_VERTICAL_BUFFER), z = this.getHeight();\n        if ((z > y)) {\n            this.fold((z - y));\n        };\n        m.register(m.SCRUBBER, this);\n        m.scrubberHasLoaded(this);\n    };\n    o(p.prototype, {\n        KEY_HEIGHT: 23,\n        SUBKEY_HEIGHT: 16,\n        OFFSET: 38,\n        SCRUBBER_NO_ADS_VERTICAL_BUFFER: 125,\n        reset: function() {\n            this._root = null;\n            this._navKeys = {\n            };\n            this._subNavKeys = {\n            };\n            this._rollups = {\n            };\n            this._rolledup = {\n            };\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getNav: function(q) {\n            return this._navKeys[q];\n        },\n        getSubnav: function(q, r) {\n            return this._subNavKeys[q][r];\n        },\n        getHeight: function() {\n            return this._root.offsetHeight;\n        },\n        getLabelForNav: function(q) {\n            var r = this.getNav(q);\n            return (r && i.getText(i.scry(r, \"a\")[0]));\n        },\n        getLabelForSubnav: function(q, r) {\n            var s = this.getSubnav(q, r);\n            return (s && i.getText(i.scry(s, \"a\")[0]));\n        },\n        fold: function(q) {\n            return this._adjustFolding(q, true);\n        },\n        unfold: function(q) {\n            return this._adjustFolding(q, false);\n        },\n        getOffset: function() {\n            return ((this.OFFSET + ((h.hasClass(document.body, \"hasVoiceBar\") ? 26 : 0))) + ((h.hasClass(\"rightColContent\", \"pagesTimelineRightColumn\") ? 48 : 0)));\n        },\n        updateSection: function(q, r) {\n            if (!this._navKeys[q]) {\n                return\n            };\n            var s = this._navKeys[q].getAttribute(\"data-rollup\");\n            if ((this._currentRollup && (this._currentRollup != s))) {\n                h.removeClass(this._currentRollup, \"selected\");\n                h.removeClass(i.scry(this._currentRollup, \"ul\")[0], \"loaded\");\n                delete this._currentRollup;\n            }\n        ;\n            if ((s && this._rolledup[s])) {\n                var t = this._rolledup[s];\n                if (t.getAttribute(\"data-rollup\")) {\n                    this._currentRollup = t;\n                    h.addClass(this._currentRollup, \"selected\");\n                    h.addClass(i.scry(this._currentRollup, \"ul\")[0], \"loaded\");\n                }\n            ;\n            }\n        ;\n            (this._currentNav && h.removeClass(this._currentNav, \"selected\"));\n            (this._currentSubNav && h.removeClass(this._currentSubNav, \"selected\"));\n            this._currentNav = null;\n            this._currentSubNav = null;\n            if (this._navKeys[q]) {\n                this._currentNav = this._navKeys[q];\n                h.addClass(this._currentNav, \"selected\");\n                if ((this.decadesAreSelectable && this._navKeys[r])) {\n                    this._currentSubNav = this._navKeys[r];\n                    h.addClass(this._currentSubNav, \"selected\");\n                }\n                 else if ((r && this._subNavKeys[q][r])) {\n                    this._currentSubNav = this._subNavKeys[q][r];\n                    h.addClass(this._currentSubNav, \"selected\");\n                }\n                \n            ;\n            }\n        ;\n        },\n        _getRollupSize: function(q) {\n            var r = this._currentNav, s = (r && r.getAttribute(\"data-rollup\")), t = (this.KEY_HEIGHT * ((this._rollups[q].length - 1)));\n            if ((q == s)) {\n                t += (this.SUBKEY_HEIGHT * i.scry(r, \"li\").length);\n                t -= (this.SUBKEY_HEIGHT * ((this._rollups[q].length - 1)));\n            }\n        ;\n            return t;\n        },\n        _adjustFolding: function(q, r) {\n            var s = q, t = Object.keys(this._rollups);\n            while (((q > 0) && t.length)) {\n                var u = t[(r ? \"pop\" : \"shift\")]();\n                if ((!r == !this._rolledup[u])) {\n                    continue;\n                };\n                var v = this._getRollupSize(u);\n                if ((v <= 0)) {\n                    continue;\n                };\n                if ((!r && (v > q))) {\n                    break;\n                };\n                this[(r ? \"_collapseRollup\" : \"_expandRollup\")](u);\n                q -= v;\n            };\n            return (s - q);\n        },\n        _collapseRollup: function(q) {\n            var r = this._rollups[q];\n            if (((!r || (r.length < 2)) || this._rolledup[q])) {\n                return\n            };\n            var s = r[0].previousSibling, t = r[0], u = i.create(\"a\", {\n                href: t.firstChild.href,\n                rel: \"ignore\",\n                tabindex: \"-1\"\n            }, [q,]), v = i.create(\"ul\", {\n                className: \"clearfix\"\n            });\n            for (var w = 0; (w < r.length); w++) {\n                v.appendChild(r[w]);;\n            };\n            var x = i.create(\"li\", null, [u,v,]);\n            if (this.decadesAreSelectable) {\n                var y = r[(r.length - 1)], z = (t.getAttribute(\"data-key\") + y.getAttribute(\"data-key\"));\n                x.setAttribute(\"data-start\", y.getAttribute(\"data-start\"));\n                x.setAttribute(\"data-end\", t.getAttribute(\"data-end\"));\n                x.setAttribute(\"data-key\", z);\n                this._navKeys[z] = x;\n            }\n             else x.setAttribute(\"data-key\", t.getAttribute(\"data-key\"));\n        ;\n            x.setAttribute(\"data-rollup\", q);\n            if (s) {\n                i.insertAfter(s, x);\n            }\n             else i.prependContent(this._root, x);\n        ;\n            this._rolledup[q] = x;\n            this._checkSelection();\n            this._ensureFocusableElementIsVisible();\n        },\n        _expandRollup: function(q) {\n            if (!this._rolledup[q]) {\n                return\n            };\n            var r = this._rolledup[q], s = i.scry(r, \"ul\")[0], t = document.createDocumentFragment();\n            while (s.childNodes.length) {\n                t.appendChild(s.firstChild);;\n            };\n            i.replace(r, t);\n            this._rolledup[q] = false;\n            this._checkSelection();\n        },\n        _checkSelection: function() {\n            if (this._currentNav) {\n                var q = (this._currentSubNav && this._currentSubNav.getAttribute(\"data-key\"));\n                this.updateSection(this._currentNav.getAttribute(\"data-key\"), q);\n            }\n        ;\n        },\n        _handleScrub: function(event) {\n            var q = event.getModifiers();\n            if (((event.isMiddleClick() || q.access) || q.meta)) {\n                return true\n            };\n            var r = l.byTag(event.getTarget(), \"a\"), s = (r && l.byAttribute(r, \"data-key\"));\n            if (s) {\n                m.scrubberWasClicked(s.getAttribute(\"data-key\"));\n                m.navigateToSection(s.getAttribute(\"data-key\"));\n                return event.prevent();\n            }\n        ;\n        },\n        _ensureFocusableElementIsVisible: function() {\n            while (!((this._tabbableElement.offsetHeight || this._tabbableElement.offsetWidth))) {\n                this._tabbableElement.tabIndex = -1;\n                var q = l.byTag(l.byTag(this._tabbableElement, \"li\"), \"li\");\n                this._tabbableElement = i.scry(q, \"a\")[0];\n                this._tabbableElement.tabIndex = 0;\n            };\n        },\n        _moveFocus: function(event) {\n            if (event.getModifiers().any) {\n                return\n            };\n            var q = g.getKeyCode(event);\n            if (((q === k.UP) || (q === k.DOWN))) {\n                var r = i.scry(this._root, \"a\").filter(function(u) {\n                    return (u.offsetHeight || u.offsetWidth);\n                }), s = r.indexOf(this._tabbableElement);\n                if ((s != -1)) {\n                    var t = r[(s + (((q === k.UP) ? -1 : 1)))];\n                    if (t) {\n                        t.tabindex = 0;\n                        j.set(t);\n                        this._tabbableElement.tabindex = -1;\n                        this._tabbableElement = t;\n                        event.prevent();\n                    }\n                ;\n                }\n            ;\n            }\n        ;\n        }\n    });\n    e.exports = p;\n});\n__d(\"TimelineMainScrubber\", [\"Arbiter\",\"Class\",\"CSS\",\"DOMQuery\",\"TimelineConstants\",\"TimelineController\",\"TimelineScrubber\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Class\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"TimelineConstants\"), l = b(\"TimelineController\"), m = b(\"TimelineScrubber\"), n = b(\"copyProperties\");\n    function o(p) {\n        this.parent.construct(this, p);\n        this._subscribe = g.subscribe(k.SECTION_LOADED, function(q, r) {\n            var s = this._navKeys[r.key], t = (s && j.scry(s, \"ul\")[0]);\n            if (t) {\n                i.addClass(t, \"loaded\");\n                l.scrubberHasChangedState();\n                if (r.hideSubSections) {\n                    i.hide(t);\n                };\n            }\n        ;\n        }.bind(this));\n    };\n    h.extend(o, m);\n    n(o.prototype, {\n        reset: function() {\n            this.parent.reset();\n            (this._subscribe && this._subscribe.unsubscribe());\n        }\n    });\n    e.exports = o;\n});\n__d(\"legacy:TimelineMainScrubber\", [\"TimelineMainScrubber\",], function(a, b, c, d) {\n    a.TimelineMainScrubber = b(\"TimelineMainScrubber\");\n}, 3);\n__d(\"legacy:TimelineCover\", [\"TimelineCover\",], function(a, b, c, d) {\n    a.TimelineCover = b(\"TimelineCover\");\n}, 3);\n__d(\"legacy:ui-scrolling-pager-js\", [\"ScrollingPager\",], function(a, b, c, d) {\n    a.ScrollingPager = b(\"ScrollingPager\");\n}, 3);\n__d(\"legacy:LegacyContextualDialog\", [\"LegacyContextualDialog\",], function(a, b, c, d) {\n    a.LegacyContextualDialog = b(\"LegacyContextualDialog\");\n}, 3);\n__d(\"ButtonGroupMonitor\", [\"ContextualDialog\",\"ContextualLayer\",\"CSS\",\"Layer\",\"Parent\",\"SelectorDeprecated\",], function(a, b, c, d, e, f) {\n    var g = b(\"ContextualDialog\"), h = b(\"ContextualLayer\"), i = b(\"CSS\"), j = b(\"Layer\"), k = b(\"Parent\"), l = b(\"SelectorDeprecated\");\n    function m(n) {\n        var o = (k.byClass(n, \"bg_stat_elem\") || k.byClass(n, \"uiButtonGroup\"));\n        (o && i.toggleClass(o, \"uiButtonGroupActive\"));\n    };\n    j.subscribe([\"hide\",\"show\",], function(n, o) {\n        if (((o instanceof h) || (o instanceof g))) {\n            m(o.getCausalElement());\n        };\n    });\n    l.subscribe([\"close\",\"open\",], function(n, o) {\n        m(o.selector);\n    });\n});\n__d(\"SubMenu\", [\"Event\",\"Arbiter\",\"copyProperties\",\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"Arbiter\"), i = b(\"copyProperties\"), j = b(\"CSS\");\n    function k() {\n    \n    };\n    i(k.prototype, {\n        _subMenu: null,\n        _mainMenu: null,\n        _forward: null,\n        _backward: null,\n        init: function(l, m, n, o) {\n            this._subMenu = l;\n            this._mainMenu = m;\n            this._forward = n;\n            this._backward = o;\n            h.subscribe(\"SubMenu/Reset\", this._goToMainMenu.bind(this));\n            g.listen(n, \"click\", this._goToSubMenu.bind(this));\n            g.listen(o, \"click\", this._goToMainMenu.bind(this));\n        },\n        initAsyncChildMenu: function(l) {\n            g.listen(this._forward, \"click\", function() {\n                this._goToSubMenu();\n                l.load();\n            }.bind(this));\n        },\n        _goToMainMenu: function() {\n            j.hide(this._subMenu);\n            j.show(this._mainMenu);\n        },\n        _goToSubMenu: function() {\n            j.hide(this._mainMenu);\n            j.show(this._subMenu);\n        }\n    });\n    e.exports = k;\n});\n__d(\"legacy:ui-submenu\", [\"SubMenu\",], function(a, b, c, d) {\n    a.SubMenu = b(\"SubMenu\");\n}, 3);\n__d(\"AsyncMenu\", [\"AsyncRequest\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j(k, l) {\n        this._uri = k;\n        this._elem = l;\n    };\n    h(j.prototype, {\n        _uri: null,\n        _elem: null,\n        load: function() {\n            this.load = i;\n            g.bootstrap(this._uri, this._elem);\n        }\n    });\n    e.exports = j;\n});");
36721 // 18242
36722 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"sb33c49282a87772f79f2c37aa2d65236bfd00c6c");
36723 // 18572
36724 o25.scrollTop = 1399;
36725 // 18243
36726 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"jsIYP\",]);\n}\n;\n;\n__d(\"AdsCurrency\", [\"AdsCurrencyConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"AdsCurrencyConfig\").currencies;\n    function h(m) {\n        if (g[m]) {\n            return g[m][0];\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function i(m) {\n        if (g[m]) {\n            return g[m][1];\n        }\n    ;\n    ;\n        return null;\n    };\n;\n    function j(m) {\n        if (g[m]) {\n            return ((1 * g[m][2]));\n        }\n    ;\n    ;\n        return 1;\n    };\n;\n    var k = [];\n    {\n        var fin276keys = ((window.top.JSBNG_Replay.forInKeys)((g))), fin276i = (0);\n        var l;\n        for (; (fin276i < fin276keys.length); (fin276i++)) {\n            ((l) = (fin276keys[fin276i]));\n            {\n                if (g.hasOwnProperty(l)) {\n                    k.push(l);\n                }\n            ;\n            ;\n            };\n        };\n    };\n;\n    f.getFormat = h;\n    f.getSymbol = i;\n    f.getOffset = j;\n    f.currencyMapKeys = k;\n});\n__d(\"ads-lib-formatters\", [\"AdsCurrency\",], function(a, b, c, d, e, f) {\n    var g = b(\"AdsCurrency\"), h = \"USD\";\n    function i(t, u, v) {\n        t = ((t || \"\"));\n        v = ((v || \"\"));\n        u = ((((typeof u === \"undefined\")) ? t.length : u));\n        return ((((t.length > u)) ? ((t.substr(0, ((u - v.length))) + v)) : t));\n    };\n;\n    function j(t, u) {\n        if (((((u === undefined)) || ((u === null))))) {\n            u = \"\";\n        }\n    ;\n    ;\n        return function(v) {\n            return ((!v ? u : i(v, t, \"...\")));\n        };\n    };\n;\n    function k(t, u, v, w) {\n        if (((t === \"N/A\"))) {\n            return t;\n        }\n    ;\n    ;\n        t = ((t || 0));\n        v = ((v || \"\"));\n        w = ((w || \".\"));\n        t = ((((u !== null)) ? l(t, u) : ((t + \"\"))));\n        var x = t.split(\".\"), y = x[0], z = x[1], aa = \"\", ba = /(\\d)(\\d\\d\\d)($|\\D)/, ca = ((((\"$1\" + v)) + \"$2$3\"));\n        while ((((aa = y.replace(ba, ca)) != y))) {\n            y = aa;\n        ;\n        };\n    ;\n        var da = y;\n        if (z) {\n            da += ((w + z));\n        }\n    ;\n    ;\n        return da;\n    };\n;\n    function l(t, u) {\n        var v = Math.pow(10, u);\n        t = ((((Math.round(((t * v))) / v)) + \"\"));\n        if (!u) {\n            return t;\n        }\n    ;\n    ;\n        var w = t.indexOf(\".\"), x = 0;\n        if (((w == -1))) {\n            t += \".\";\n            x = u;\n        }\n         else x = ((u - ((((t.length - w)) - 1))));\n    ;\n    ;\n        for (var y = 0, z = x; ((y < z)); y++) {\n            t += \"0\";\n        ;\n        };\n    ;\n        return t;\n    };\n;\n    function m(t) {\n        return function(u) {\n            return k(u, ((t || 0)), \",\", \".\");\n        };\n    };\n;\n    function n(t, u) {\n        var v = ((((u === false)) ? 1 : 100));\n        return function(w) {\n            return ((k(((w * v)), ((t || 0)), \",\", \".\") + \"%\"));\n        };\n    };\n;\n    var o = {\n    };\n    function p(t, u, v) {\n        if (((t === undefined))) {\n            t = 2;\n        }\n    ;\n    ;\n        if (((v === undefined))) {\n            v = false;\n        }\n    ;\n    ;\n        u = ((u || h));\n        var w = ((((((((u + \"-\")) + t)) + \"-\")) + v));\n        if (!o[w]) {\n            var x = ((g.getFormat(u) || g.getFormat(h))), y = ((g.getSymbol(u) || g.getSymbol(h))), z = ((g.getOffset(u) || g.getOffset(h)));\n            x = x.replace(\"{symbol}\", y);\n            o[w] = function(aa) {\n                if (v) {\n                    aa = ((aa / z));\n                }\n            ;\n            ;\n                if (!((aa + \"\")).match(/^\\-?[\\d\\.,]*$/)) {\n                    return \"N/A\";\n                }\n            ;\n            ;\n                var ba = k(aa, t, \",\", \".\");\n                return x.replace(\"{amount}\", ba);\n            };\n        }\n    ;\n    ;\n        return o[w];\n    };\n;\n    function q(t) {\n        t = ((t + \"\")).trim().replace(/^[^\\d]*\\-/, \"\\u0002\");\n        if (!(((/^\\u0002?(\\d+,\\d*){2,}$/.test(t)) || (/^\\u0002?(\\d+\\.\\d*){2,}$/.test(t))))) {\n            t = t.replace(/[\\.,](\\d*\\D*)$/, \"\\u0001$1\");\n        }\n    ;\n    ;\n        t = t.replace(/[^0-9\\u0001\\u0002]/g, \"\").replace(\"\\u0001\", \".\").replace(\"\\u0002\", \"-\");\n        return ((+t || 0));\n    };\n;\n    function r() {\n        return function(t) {\n            return ((k(t, 0, \",\", \".\") + \"%\"));\n        };\n    };\n;\n    function s(t) {\n        var u = t.currency(), v = ((((t.offset() == 100)) ? 2 : 0));\n        return p(v, u);\n    };\n;\n    f.createTextTruncator = j;\n    f.chopString = i;\n    f.parseNumber = q;\n    f.formatNumber = k;\n    f.createNumberFormatter = m;\n    f.createPercentFormatter = n;\n    f.createMoneyFormatter = p;\n    f.createMoneyFormatterForAccount = s;\n    f.createInflationFormatter = r;\n});\n__d(\"ComposerXDatepickerIconReset\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = b(\"cx\");\n    function i(j) {\n        g.removeClass(j.element, \"_4_na\");\n        g.removeClass(j.element, \"_509o\");\n    };\n;\n    e.exports = i;\n});\n__d(\"legacy:dom-html\", [\"HTML\",], function(a, b, c, d) {\n    a.HTML = b(\"HTML\");\n}, 3);\n__d(\"ScrollingPager\", [\"Arbiter\",\"copyProperties\",\"CSS\",\"OnVisible\",\"UIPagelet\",\"$\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"CSS\"), j = b(\"OnVisible\"), k = b(\"UIPagelet\"), l = b(\"$\"), m = b(\"ge\"), n = {\n    };\n    function o(p, q, r, s) {\n        this.scroll_loader_id = p;\n        this.pagelet_src = q;\n        this.data = r;\n        this.options = ((s || {\n        }));\n        if (this.options.target_id) {\n            this.target_id = this.options.target_id;\n            this.options.append = true;\n        }\n         else this.target_id = p;\n    ;\n    ;\n        this.scroll_area_id = this.options.scroll_area_id;\n        this.handler = null;\n    };\n;\n    h(o, {\n        REGISTERED: \"ScrollingPager/registered\",\n        getInstance: function(p) {\n            return n[p];\n        }\n    });\n    h(o.prototype, {\n        setBuffer: function(p) {\n            this.options.buffer = p;\n            ((this.onvisible && this.onvisible.setBuffer(p)));\n        },\n        getBuffer: function() {\n            return this.options.buffer;\n        },\n        register: function() {\n            this.onvisible = new j(l(this.scroll_loader_id), this.getHandler(), false, this.options.buffer, false, m(this.scroll_area_id));\n            n[this.scroll_loader_id] = this;\n            g.inform(o.REGISTERED, {\n                id: this.scroll_loader_id\n            });\n        },\n        getInstance: function(p) {\n            return n[p];\n        },\n        getHandler: function() {\n            if (this.handler) {\n                return this.handler;\n            }\n        ;\n        ;\n            function p(q) {\n                var r = m(this.scroll_loader_id);\n                if (!r) {\n                    this.onvisible.remove();\n                    return;\n                }\n            ;\n            ;\n                i.addClass(r.firstChild, \"async_saving\");\n                var s = this.options.handler;\n                this.options.handler = function() {\n                    g.inform(\"ScrollingPager/loadingComplete\");\n                    ((s && s.apply(null, arguments)));\n                };\n                if (q) {\n                    this.data.pager_fired_on_init = true;\n                }\n            ;\n            ;\n                k.loadFromEndpoint(this.pagelet_src, this.target_id, this.data, this.options);\n            };\n        ;\n            return p.bind(this);\n        },\n        setHandler: function(p) {\n            this.handler = p;\n        },\n        removeOnVisible: function() {\n            this.onvisible.remove();\n        },\n        checkBuffer: function() {\n            ((this.onvisible && this.onvisible.checkBuffer()));\n        }\n    });\n    e.exports = o;\n});\n__d(\"StickyController\", [\"JSBNG__Event\",\"CSS\",\"Style\",\"Vector\",\"copyProperties\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"Style\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"queryThenMutateDOM\");\n    function m(n, o, p, q) {\n        this._element = n;\n        this._marginTop = o;\n        this._onchange = p;\n        this._proxy = ((q || n.parentNode));\n        this._boundQueryOnScroll = this._queryOnScroll.bind(this);\n        this._boundMutateOnScroll = this._mutateOnScroll.bind(this);\n    };\n;\n    k(m.prototype, {\n        handleScroll: function() {\n            l(this._boundQueryOnScroll, this._boundMutateOnScroll);\n        },\n        _queryOnScroll: function() {\n            this._shouldFix = ((j.getElementPosition(this._proxy, \"viewport\").y <= this._marginTop));\n        },\n        _mutateOnScroll: function() {\n            var n = this._shouldFix;\n            if (((this.isFixed() !== n))) {\n                i.set(this._element, \"JSBNG__top\", ((n ? ((this._marginTop + \"px\")) : \"\")));\n                h.conditionClass(this._element, \"fixed_elem\", n);\n                ((this._onchange && this._onchange(n)));\n            }\n        ;\n        ;\n        },\n        start: function() {\n            if (this._event) {\n                return;\n            }\n        ;\n        ;\n            this._event = g.listen(window, \"JSBNG__scroll\", this.handleScroll.bind(this));\n            this.handleScroll.bind(this).defer();\n        },\n        JSBNG__stop: function() {\n            ((this._event && this._event.remove()));\n            this._event = null;\n        },\n        isFixed: function() {\n            return h.hasClass(this._element, \"fixed_elem\");\n        }\n    });\n    e.exports = m;\n});\n__d(\"tidyEvent\", [\"Run\",], function(a, b, c, d, e, f) {\n    var g = b(\"Run\"), h = [];\n    function i() {\n        while (h.length) {\n            var k = h.shift();\n            if (k.remove) {\n                ((k._handler && k.remove()));\n            }\n             else ((k && k.unsubscribe()));\n        ;\n        ;\n        };\n    ;\n    };\n;\n    function j(k) {\n        if (!h.length) {\n            g.onLeave(i);\n        }\n    ;\n    ;\n        if (Array.isArray(k)) {\n            h = h.concat(k);\n        }\n         else h.push(k);\n    ;\n    ;\n        return k;\n    };\n;\n    e.exports = j;\n});\n__d(\"TriggerablePageletLoader\", [\"function-extensions\",\"CSS\",\"JSBNG__Event\",\"OnVisible\",\"Run\",\"UIPagelet\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"CSS\"), h = b(\"JSBNG__Event\"), i = b(\"OnVisible\"), j = b(\"Run\"), k = b(\"UIPagelet\"), l = b(\"copyProperties\"), m = [];\n    function n(p) {\n        if (!m[p]) {\n            return;\n        }\n    ;\n    ;\n        ((m[p].__trigger && m[p].__trigger.remove()));\n        delete m[p];\n    };\n;\n    function o(p, q) {\n        this._disabledTriggerKeys = [];\n        this._pageletConfig = p;\n        this._loaded = false;\n        this._loading = false;\n        this._triggerKeys = [];\n        if (q) {\n            q.forEach(this.addTrigger.bind(this));\n        }\n    ;\n    ;\n        j.onLeave(this.destroy.bind(this));\n    };\n;\n    l(o, {\n        removeTrigger: function(p) {\n            {\n                var fin277keys = ((window.top.JSBNG_Replay.forInKeys)((m))), fin277i = (0);\n                var q;\n                for (; (fin277i < fin277keys.length); (fin277i++)) {\n                    ((q) = (fin277keys[fin277i]));\n                    {\n                        if (((m[q] && ((m[q].node === p))))) {\n                            n(q);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        TRIGGER_CLICK: \"click\",\n        TRIGGER_ONVISIBLE: \"onvisible\",\n        TRIGGER_NOW: \"now\"\n    });\n    l(o.prototype, {\n        addTrigger: function(p) {\n            p.__trigger = this._createTrigger(p);\n            m.push(p);\n            this._triggerKeys.push(((m.length - 1)));\n        },\n        destroy: function() {\n            this.removeTriggers();\n            if (this._pageletRequest) {\n                this._pageletRequest.cancel();\n                this._pageletRequest = null;\n                this._loading = false;\n                this._loaded = false;\n            }\n        ;\n        ;\n        },\n        disableTriggers: function() {\n            this._triggerKeys.forEach(function(p) {\n                if (m[p]) {\n                    m[p].__trigger.remove();\n                    this._disabledTriggerKeys.push(p);\n                }\n            ;\n            ;\n            }.bind(this));\n        },\n        enableTriggers: function() {\n            if (((this._loaded || this._loading))) {\n                return;\n            }\n        ;\n        ;\n            this._disabledTriggerKeys.forEach(function(p) {\n                if (m[p]) {\n                    m[p].__trigger = this._createTrigger(m[p]);\n                }\n            ;\n            ;\n            }.bind(this));\n            this._disabledTriggerKeys.length = 0;\n        },\n        _createTrigger: function(p) {\n            if (((this._loaded || this._loading))) {\n                return;\n            }\n        ;\n        ;\n            var q = this.onTrigger.bind(this, p);\n            switch (p.type) {\n              case o.TRIGGER_CLICK:\n                return h.listen(p.node, \"click\", function(r) {\n                    r.prevent();\n                    q();\n                });\n              case o.TRIGGER_ONVISIBLE:\n                return new i(p.node, q, p.onVisibleStrict, p.onVisibleBuffer);\n              case o.TRIGGER_NOW:\n                return q();\n              default:\n            \n            };\n        ;\n        },\n        load: function(p) {\n            if (((this._loaded || this._loading))) {\n                return;\n            }\n        ;\n        ;\n            this._loading = true;\n            this._loaded = false;\n            g.addClass(this._pageletConfig.node, \"async_saving\");\n            if (((p && p.node))) {\n                g.addClass(p.node, \"async_saving\");\n            }\n        ;\n        ;\n            var q = ((this._pageletConfig.options || {\n            }));\n            q.displayCallback = this.onLoad.bind(this, p);\n            if (((q.crossPage === undefined))) {\n                q.crossPage = true;\n            }\n        ;\n        ;\n            this._pageletRequest = k.loadFromEndpoint(this._pageletConfig.controller, this._pageletConfig.node, this._pageletConfig.data, q);\n        },\n        onLoad: function(p, q) {\n            this._loaded = true;\n            this._pageletRequest = null;\n            g.removeClass(this._pageletConfig.node, \"async_saving\");\n            if (((p && p.node))) {\n                g.removeClass(p.node, \"async_saving\");\n            }\n        ;\n        ;\n            if (this._pageletConfig.displayCallback) {\n                this._pageletConfig.displayCallback(q);\n            }\n             else q();\n        ;\n        ;\n        },\n        onTrigger: function(p) {\n            ((p.callback && p.callback(p)));\n            if (((!this._loaded && !this._loading))) {\n                this.load(p);\n            }\n        ;\n        ;\n        },\n        removeTriggers: function(p) {\n            this._triggerKeys.forEach(function(q) {\n                if (((m[q] && ((!p || ((m[q].type === p))))))) {\n                    n(q);\n                }\n            ;\n            ;\n            });\n        }\n    });\n    e.exports = o;\n});\n__d(\"MedleyPageletRequestData\", [\"Arbiter\",\"TidyArbiter\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"TidyArbiter\"), i = {\n    }, j = {\n        get: function() {\n            return i;\n        },\n        set: function(k) {\n            i = k;\n            h.inform(\"Medley/requestDataSet\", null, g.BEHAVIOR_STATE);\n        }\n    };\n    e.exports = j;\n});\n__d(\"TimelineSection\", [\"Arbiter\",\"DOMScroll\",\"DoublyLinkedListMap\",\"Run\",\"TidyArbiterMixin\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"DOMScroll\"), i = b(\"DoublyLinkedListMap\"), j = b(\"Run\"), k = b(\"TidyArbiterMixin\"), l = b(\"copyProperties\"), m = b(\"ge\"), n = null;\n    function o() {\n        n = null;\n    };\n;\n    function p(q, r, s) {\n        this.id = q;\n        this.label = s;\n        this.nodeID = r;\n        this._parentSection = null;\n        this.childSections = new i();\n        this._isLoaded = false;\n        p.inform.bind(p, ((\"sectionInitialized/\" + q)), {\n            section: this\n        }, g.BEHAVIOR_STATE).defer();\n    };\n;\n    l(p, k, {\n        callWithSection: function(q, r) {\n            this.subscribe(((\"sectionInitialized/\" + q)), function(s, t) {\n                r(t.section);\n            });\n        },\n        setActiveSectionID: function(q) {\n            ((!n && j.onLeave(o)));\n            n = q;\n        }\n    });\n    l(p.prototype, {\n        appendSection: function(q) {\n            this.childSections.append(q.id, q);\n            q._parentSection = this;\n        },\n        freeze: function() {\n            this.freezeChildren();\n        },\n        freezeChildren: function() {\n            var q = this.childSections.getHead();\n            while (q) {\n                ((!q.isActive() && q.freeze()));\n                q = q.getNext();\n            };\n        ;\n        },\n        getNext: function() {\n            return ((this._parentSection && this._parentSection.childSections.getNext(this.id)));\n        },\n        getPrev: function() {\n            return ((this._parentSection && this._parentSection.childSections.getPrev(this.id)));\n        },\n        isActive: function() {\n            var q = this;\n            while (q) {\n                if (((q.id === n))) {\n                    return true;\n                }\n            ;\n            ;\n                q = q._parentSection;\n            };\n        ;\n            return false;\n        },\n        isLoaded: function() {\n            return this._isLoaded;\n        },\n        setIsLoaded: function(q) {\n            this._isLoaded = q;\n            return this;\n        },\n        JSBNG__scrollTo: function() {\n            if (!m(this.nodeID)) {\n                return;\n            }\n        ;\n        ;\n            h.JSBNG__scrollTo(this.getNode(), true, false, false, h.JSBNG__scrollTo.bind(this).curry(this.getNode(), 0));\n        },\n        thaw: function() {\n            this.thawChildren();\n        },\n        thawChildren: function() {\n            var q = this.childSections.getHead();\n            while (q) {\n                q.thaw();\n                q = q.getNext();\n            };\n        ;\n        }\n    });\n    e.exports = p;\n});\n__d(\"TimelineDynamicSection\", [\"Class\",\"DOM\",\"TimelineSection\",\"copyProperties\",\"cx\",\"ge\",\"TimelineDynamicSectionConfig\",], function(a, b, c, d, e, f) {\n    var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"TimelineSection\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"ge\"), m = b(\"TimelineDynamicSectionConfig\");\n    function n(o, p, q) {\n        this._controller = p;\n        this._data = null;\n        this._node = null;\n        this._triggerLoader = null;\n        this.parent.construct(this, o, o, q);\n    };\n;\n    g.extend(n, i);\n    j(n.prototype, {\n        _createNode: function() {\n            return h.create(\"div\", {\n                className: \"_30f\",\n                id: this.nodeID\n            }, [m.throbber.cloneNode(true),]);\n        },\n        getNode: function() {\n            if (!this._node) {\n                this._node = ((l(this.nodeID) || this._createNode()));\n            }\n        ;\n        ;\n            return this._node;\n        }\n    });\n    e.exports = n;\n});\n__d(\"TimelineAppCollection\", [\"function-extensions\",\"Class\",\"CSS\",\"DOM\",\"DOMQuery\",\"JSBNG__Event\",\"MedleyPageletRequestData\",\"NumberFormatConfig\",\"PageTransitions\",\"Parent\",\"Style\",\"TidyArbiter\",\"TidyArbiterMixin\",\"TimelineDynamicSection\",\"TimelineSection\",\"TriggerablePageletLoader\",\"TimelineDynamicSectionConfig\",\"copyProperties\",\"csx\",\"cx\",\"ads-lib-formatters\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"JSBNG__Event\"), l = b(\"MedleyPageletRequestData\"), m = b(\"NumberFormatConfig\"), n = b(\"PageTransitions\"), o = b(\"Parent\"), p = b(\"Style\"), q = b(\"TidyArbiter\"), r = b(\"TidyArbiterMixin\"), s = b(\"TimelineDynamicSection\"), t = b(\"TimelineSection\"), u = b(\"TriggerablePageletLoader\"), v = b(\"TimelineDynamicSectionConfig\"), w = b(\"copyProperties\"), x = b(\"csx\"), y = b(\"cx\"), z = b(\"ads-lib-formatters\"), aa = b(\"ge\"), ba = 500, ca = 8;\n    function da(ha) {\n        var ia = aa(ga.getIDByToken(ha));\n        if (!ia) {\n            return;\n        }\n    ;\n    ;\n        return i.scry(ia, \"._620\")[0];\n    };\n;\n    function ea(ha, ia) {\n        ((((ia && !ia.isDefaultRequested())) && ia.prevent()));\n        var ja = ha._parentSection, ka = ja._parentSection;\n        t.setActiveSectionID(ja.id);\n        ja.setActiveCollection(ha);\n        if (((ja._sk === ka._sk))) {\n            if (!h.hasClass(ka.getNode(), \"_c4f\")) {\n                h.addClass(ka.getNode(), \"_c4f\");\n                ka.freezeChildren();\n            }\n        ;\n        ;\n            ((ha._isFullyLoaded && ka.addSectionTeasers()));\n        }\n    ;\n    ;\n        if (((!ka.isMedleyView() && ((ja._sk === ka._sk))))) {\n            var la = ha.href;\n            n.rewriteCurrentURI(n.getCurrentURI().getUnqualifiedURI(), la);\n        }\n    ;\n    ;\n    };\n;\n    function fa(ha, ia) {\n        ia.data.overview = ((ha._parentSection._sk !== ha._parentSection._parentSection._sk));\n        ia.data.cursor = null;\n        ea(ha);\n    };\n;\n    function ga(ha, ia, ja, ka, la, ma) {\n        this._contentLoader = null;\n        this._isFrozen = false;\n        this._isFullyLoaded = false;\n        this._cursor = 0;\n        this._tabNode = ja;\n        this._tabCount = ((((ka > 0)) ? ka : 0));\n        this._token = ha;\n        this._ftid = null;\n        this.auxContent = null;\n        this.curationContent = null;\n        this._order = la;\n        this.href = ma;\n        this._sortContent = null;\n        this.refreshCount();\n        this.parent.construct(this, ga.getIDByToken(ha), ia);\n        if (!ja) {\n            return;\n        }\n    ;\n    ;\n        if (aa(this.nodeID)) {\n            k.listen(ja, \"click\", ea.curry(this));\n        }\n         else this.createTriggerLoader.bind(this).defer();\n    ;\n    ;\n    };\n;\n    g.extend(ga, s);\n    w(ga, r, {\n        NEW_ITEM: \"TimelineAppCollection/newItem\",\n        ADDING_PLACEHOLDER: \"TimelineAppCollection/addingPlaceholder\",\n        addPlaceholderToCollection: function(ha, ia, ja) {\n            ja = ((((typeof ja !== \"undefined\")) ? ja : {\n            }));\n            if (!ja.suppressCount) {\n                this.incrementCount(ga.getIDByToken(ha));\n            }\n        ;\n        ;\n            t.callWithSection(ga.getIDByToken(ha), function(ka) {\n                var la = i.scry(ia, \"._gx7\")[0].cloneNode(true), ma = i.scry(ia, \"._gx8 .img\")[0], na = i.scry(ia, \"._3owb\")[0], oa = ((na && na.getAttribute(\"data-obj\")));\n                if (((!la || !oa))) {\n                    return;\n                }\n            ;\n            ;\n                ka.inform(ga.ADDING_PLACEHOLDER);\n                var pa = da(ha);\n                if (!pa) {\n                    return;\n                }\n            ;\n            ;\n                var qa = i.scry(pa, ((((\"[data-obj=\\\"\" + oa)) + \"\\\"]\")))[0], ra = i.create(\"div\", {\n                    className: \"_4-he\"\n                });\n                if (ma) {\n                    p.set(ra, \"background-image\", ((((\"url(\" + ma.src)) + \")\")));\n                }\n            ;\n            ;\n                var sa = i.create(\"div\", {\n                    className: \"_gx8\"\n                }, [ra,]), ta = i.create(\"div\", {\n                    className: \"_gx6\"\n                }, [la,]), ua = i.create(\"div\", {\n                    className: \"_3owb\"\n                }, [sa,ta,]), va = i.create(\"li\", {\n                    className: \"_5rz\",\n                    id: ((\"collectionItemPlaceholder\" + oa))\n                }, [ua,]);\n                if (((qa && ja.replaceExistingElement))) {\n                    i.replace(qa.parentNode, va);\n                }\n                 else {\n                    if (qa) {\n                        i.remove(qa.parentNode);\n                    }\n                     else if (((ka.isOverview() && ((pa.children.length >= ca))))) {\n                        h.addClass(pa.children[((ca - 1))], \"_51k9\");\n                    }\n                    \n                ;\n                ;\n                    i.prependContent(pa, va);\n                }\n            ;\n            ;\n            });\n        },\n        replaceItem: function(ha, ia, ja) {\n            var ka = o.byClass(ha, \"_620\"), la = i.scry(ka, ((((\"div[data-obj=\\\"\" + ia)) + \"\\\"]\")))[0];\n            if (la) {\n                ga.inform(ga.NEW_ITEM, {\n                    grid: ka,\n                    newItem: ja\n                });\n                i.replace(la.parentNode, ja);\n            }\n        ;\n        ;\n        },\n        addItemToCollection: function(ha, ia, ja) {\n            var ka = aa(ja);\n            if (!ka) {\n                return;\n            }\n        ;\n        ;\n            var la = i.scry(ka, \"._620\")[0], ma = la.parentNode.nextSibling;\n            if (((ma && h.hasClass(ma, \"_3t3\")))) {\n                i.remove(la.lastChild);\n            }\n        ;\n        ;\n            this.inform(ga.NEW_ITEM, {\n                grid: la,\n                newItem: ha\n            });\n            var na = aa(((\"collectionItemPlaceholder\" + ia)));\n            if (na) {\n                i.replace(na, ha);\n                return;\n            }\n        ;\n        ;\n            i.prependContent(la, ha);\n        },\n        createFromArray: function(ha) {\n            return ha.map(function(ia) {\n                return new ga(ia.token, ia.controller, ia.tab_node, ia.tab_count, ia.order, ia.href);\n            });\n        },\n        decrementCount: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                if (((ia._tabCount > 0))) {\n                    ia._tabCount--;\n                    ia.refreshCount();\n                    ia.flashCountIf();\n                }\n            ;\n            ;\n            });\n        },\n        enableContentLoader: function(ha, ia, ja) {\n            t.callWithSection(ha, function(ka) {\n                ka.addContentLoader(ia, ja);\n            });\n        },\n        getIDByToken: function(ha) {\n            return ((\"pagelet_timeline_app_collection_\" + ha));\n        },\n        incrementCount: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                ia._tabCount++;\n                ia.refreshCount();\n                ia.flashCountIf();\n            });\n        },\n        registerAuxContent: function(ha, ia) {\n            t.callWithSection(ha, function(ja) {\n                ja.registerAuxContent(ia);\n            });\n        },\n        registerAddCurationContent: function(ha, ia, ja, ka) {\n            t.callWithSection(ha, function(la) {\n                la.registerAddCurationContent(ia, ja, ka);\n            });\n        },\n        registerSortContent: function(ha, ia, ja) {\n            t.callWithSection(ha, function(ka) {\n                ka.registerSortContent(ia, ja);\n            });\n        },\n        setLoaded: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                ia.setIsLoaded(true);\n                ia._parentSection.inform(\"loaded\", ia);\n                ia._parentSection.unsetMinHeight();\n            });\n        },\n        setFullyLoaded: function(ha) {\n            t.callWithSection(ha, function(ia) {\n                ia._isFullyLoaded = true;\n                var ja = ia._parentSection;\n                ((((ja._sk === ja._parentSection._sk)) && ja._parentSection.addSectionTeasers()));\n            });\n        },\n        setFTID: function(ha, ia) {\n            t.callWithSection(ha, function(ja) {\n                ja.setFTID(ia);\n            });\n        },\n        switchToNullStateCurationContent: function(ha) {\n            t.callWithSection(ga.getIDByToken(ha), function(ia) {\n                ia.nullStateCurationContent();\n            });\n        }\n    });\n    w(ga.prototype, r, {\n        addContentLoader: function(ha, ia) {\n            this._cursor = ia;\n            q.subscribe(\"Medley/requestDataSet\", function() {\n                var ja = {\n                    node: ha\n                };\n                if (h.hasClass(ha, \"_3t3\")) {\n                    ja.type = u.TRIGGER_CLICK;\n                }\n                 else if (this._isFrozen) {\n                    i.remove(ha);\n                    ja.node = v.pager.cloneNode(true);\n                    i.appendContent(this.getNode(), ja.node);\n                    ja.type = u.TRIGGER_CLICK;\n                }\n                 else {\n                    ja.onVisibleBuffer = ba;\n                    ja.onVisibleStrict = true;\n                    ja.type = u.TRIGGER_ONVISIBLE;\n                }\n                \n            ;\n            ;\n                if (((ja.type === u.TRIGGER_CLICK))) {\n                    ja.callback = t.setActiveSectionID.curry(this.id);\n                }\n            ;\n            ;\n                var ka = w({\n                    displayCallback: function(la) {\n                        i.remove(ja.node);\n                        la();\n                    },\n                    options: {\n                        append: true\n                    }\n                }, this.getDefaultPageletConfig());\n                ka.data.overview = this.isOverview();\n                this._triggerLoader = null;\n                this._contentLoader = new u(ka, [ja,]);\n            }.bind(this));\n        },\n        _createNode: function() {\n            var ha = this.parent._createNode();\n            ha.setAttribute(\"aria-role\", \"tabpanel\");\n            return ha;\n        },\n        createTriggerLoader: function() {\n            q.subscribe(\"Medley/requestDataSet\", function() {\n                var ha = this.getDefaultPageletConfig(), ia = {\n                    callback: fa.curry(this, ha),\n                    node: this._tabNode,\n                    type: u.TRIGGER_CLICK\n                };\n                this._triggerLoader = new u(ha, [ia,]);\n            }.bind(this));\n        },\n        disableContentLoader: function() {\n            ((this._contentLoader && this._contentLoader.disableTriggers()));\n        },\n        enableContentLoader: function() {\n            var ha = ((this._triggerLoader || this._contentLoader));\n            ((ha && ha.enableTriggers()));\n        },\n        freeze: function() {\n            this._isFrozen = true;\n            if (((!this._contentLoader || this._contentLoader._loading))) {\n                return;\n            }\n        ;\n        ;\n            this._contentLoader.removeTriggers(u.TRIGGER_ONVISIBLE);\n            var ha = j.scry(this.getNode(), \"._3t3\");\n            if (!ha.length) {\n                var ia = j.scry(this.getNode(), \"._359\")[0];\n                ((ia.length && this.addContentLoader(ia, this._cursor)));\n            }\n        ;\n        ;\n        },\n        getCount: function() {\n            return this._tabCount;\n        },\n        getDefaultPageletConfig: function() {\n            return {\n                controller: this._controller,\n                data: w({\n                    collection_token: this._token,\n                    cursor: this._cursor\n                }, l.get(), {\n                    ftid: this._ftid,\n                    order: this._order\n                }, {\n                    sk: this._parentSection._sk\n                }),\n                node: this.getNode()\n            };\n        },\n        getMedleySiteKey: function() {\n            return this._parentSection._parentSection._sk;\n        },\n        flashCountIf: function() {\n            if (((this._parentSection.getActiveCollection() != this))) {\n                h.addClass(this._tabNode, \"_4-k9\");\n                JSBNG__setTimeout(h.removeClass.curry(this._tabNode, \"_4-k9\"), 800);\n            }\n        ;\n        ;\n        },\n        isOverview: function() {\n            return ((this._parentSection._sk != this._parentSection._parentSection._sk));\n        },\n        registerAuxContent: function(ha) {\n            this.auxContent = ha;\n            if (((ha.nodeType == 11))) {\n                this.auxContent = i.create(\"span\", null, ha);\n            }\n        ;\n        ;\n            if (((this._parentSection._activeCollection !== this))) {\n                h.hide(this.auxContent);\n            }\n        ;\n        ;\n            this._parentSection.addAuxContent(this.auxContent);\n        },\n        registerAddCurationContent: function(ha, ia, ja) {\n            if (this.curationContent) {\n                return;\n            }\n        ;\n        ;\n            this.curationContent = ((((ha.nodeType == 11)) ? i.create(\"span\", null, ha) : ha));\n            this.curationContentState = ia;\n            this._parentSection.addCurationContent(this.curationContent, this, ja);\n        },\n        nullStateCurationContent: function() {\n            this._parentSection.nullStateCurationContent();\n        },\n        registerSortContent: function(ha, ia) {\n            ((this._sortContent && i.remove(this._sortContent)));\n            this._sortContent = ha;\n            ia.subscribeOnce(\"change\", function(ja, ka) {\n                i.setContent(i.JSBNG__find(ha, \"._57oy\"), ka.label);\n                this._sort(ka.value);\n            }.bind(this));\n        },\n        refreshCount: function() {\n            if (!this._tabNode) {\n                return;\n            }\n        ;\n        ;\n            var ha = j.JSBNG__find(this._tabNode, \"._3d0\");\n            if (((this._tabCount > 0))) {\n                i.setContent(ha, z.formatNumber(this._tabCount, 0, m.numberDelimiter, \"\"));\n            }\n             else i.setContent(ha, \"\");\n        ;\n        ;\n        },\n        _resetContent: function() {\n            ((this._contentLoader && this._contentLoader.destroy()));\n            i.remove(this.getNode());\n            this._node = null;\n            i.appendContent(j.JSBNG__find(this._parentSection.getNode(), \"div._3i9\"), this.getNode());\n            this.addContentLoader(j.JSBNG__find(this.getNode(), \"._359\"), 0);\n        },\n        setFTID: function(ha) {\n            this._ftid = ha;\n        },\n        _sort: function(ha) {\n            this._order = ha;\n            this._resetContent();\n            var ia = this._parentSection, ja = ia._parentSection;\n            if (((!ja.isMedleyView() && ((ia._sk === ja._sk))))) {\n                var ka = n.getCurrentURI();\n                ka.addQueryData({\n                    order: this._order\n                });\n                n.rewriteCurrentURI(n.getCurrentURI().getUnqualifiedURI(), ka);\n            }\n        ;\n        ;\n        },\n        thaw: function() {\n            this._isFrozen = false;\n        },\n        getToken: function() {\n            return this._token;\n        }\n    });\n    e.exports = ga;\n});\n__d(\"TimelineCommentsLoader\", [\"JSBNG__Event\",\"CommentPrelude\",\"CSS\",\"DOM\",\"Parent\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CommentPrelude\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Parent\"), l = b(\"emptyFunction\"), m = {\n        init: function() {\n            m.init = l;\n            g.listen(JSBNG__document.body, \"click\", function(n) {\n                var o = k.byClass(n.getTarget(), \"fbTimelineFeedbackCommentLoader\");\n                if (o) {\n                    n.kill();\n                    h.click(o, false);\n                    var p = k.byTag(o, \"form\"), q = j.scry(p, \"li.uiUfiViewAll input\");\n                    if (!q.length) {\n                        q = j.scry(p, \"li.fbUfiViewPrevious input\");\n                    }\n                ;\n                ;\n                    if (!q.length) {\n                        q = j.scry(p, \"a.UFIPagerLink\");\n                    }\n                ;\n                ;\n                    q[0].click();\n                    i.show(j.JSBNG__find(p, \"li.uiUfiComments\"));\n                    i.removeClass(o, \"fbTimelineFeedbackCommentLoader\");\n                }\n            ;\n            ;\n            });\n        }\n    };\n    e.exports = m;\n});\n__d(\"TimelineConstants\", [], function(a, b, c, d, e, f) {\n    var g = {\n        DS_HEIGHT: \"timeline-unit-height\",\n        DS_LOADED: \"timeline-capsule-loaded\",\n        DS_SIDEORG: \"timeline-unit-sideorg\",\n        DS_TAILBALANCE: \"timeline-capsule-tailbalance\",\n        DS_COLUMN_HEIGHT_DIFFERENTIAL: \"timeline-column-diff-height\",\n        FIXED_SIDE_LEFT: \"left\",\n        FIXED_SIDE_RIGHT: \"right\",\n        FIXED_SIDE_BOTH: \"both\",\n        FIXED_SIDE_NONE: \"none\",\n        SCROLL_TO_OFFSET: 30,\n        SUBSECTION_SCROLL_TO_OFFSET: 90,\n        SCRUBBER_DEFAULT_OFFSET: 38,\n        SECTION_LOADING: \"TimelineConstants/sectionLoading\",\n        SECTION_LOADED: \"TimelineConstants/sectionLoaded\",\n        SECTION_FULLY_LOADED: \"TimelineConstants/sectionFullyLoaded\",\n        SECTION_REGISTERED: \"TimelineConstants/sectionRegistered\"\n    };\n    e.exports = g;\n});\n__d(\"TimelineLegacySections\", [], function(a, b, c, d, e, f) {\n    var g = {\n    }, h = {\n        get: function(i) {\n            return g[i];\n        },\n        getAll: function() {\n            return g;\n        },\n        remove: function(i) {\n            delete g[i];\n        },\n        removeAll: function() {\n            g = {\n            };\n        },\n        set: function(i, j) {\n            g[i] = j;\n        }\n    };\n    e.exports = h;\n});\n__d(\"TimelineURI\", [\"URI\",], function(a, b, c, d, e, f) {\n    var g = b(\"URI\"), h = {\n        TIMELINE_KEY: \"timeline\",\n        WALL_KEY: \"wall\",\n        parseURI: function(i) {\n            i = g(i);\n            var j = i.getQueryData(), k = i.getPath(), l = k.split(\"/\").slice(1);\n            if (((((l[0] == \"people\")) || ((l[0] == \"pages\"))))) {\n                l = l.slice(2);\n            }\n        ;\n        ;\n            var m = ((((j.sk || l[1])) || h.TIMELINE_KEY));\n            if (((m == h.WALL_KEY))) {\n                m = h.TIMELINE_KEY;\n            }\n        ;\n        ;\n            var n = null, o = null;\n            if (((m == h.TIMELINE_KEY))) {\n                o = ((parseInt(l[2], 10) || null));\n                n = ((parseInt(l[3], 10) || null));\n            }\n        ;\n        ;\n            return {\n                path: k,\n                id: ((j.id || l[0])),\n                key: m,\n                viewas: ((j.viewas ? j.viewas : 0)),\n                filter: ((j.filter ? j.filter : null)),\n                year: o,\n                month: n,\n                friendship: !!j.and\n            };\n        }\n    };\n    e.exports = h;\n});\n__d(\"TimelineController\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOMQuery\",\"Run\",\"ScrollingPager\",\"TidyArbiter\",\"TimelineConstants\",\"TimelineLegacySections\",\"TimelineURI\",\"Vector\",\"ViewportBounds\",\"$\",\"copyProperties\",\"ge\",\"tidyEvent\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOMQuery\"), l = b(\"Run\"), m = b(\"ScrollingPager\"), n = b(\"TidyArbiter\"), o = b(\"TimelineConstants\"), p = b(\"TimelineLegacySections\"), q = b(\"TimelineURI\"), r = b(\"Vector\"), s = b(\"ViewportBounds\"), t = b(\"$\"), u = b(\"copyProperties\"), v = b(\"ge\"), w = b(\"tidyEvent\"), x = b(\"queryThenMutateDOM\"), y = 358, z = 48, aa = 740, ba = 1285, ca = null, da = false, ea, fa, ga, ha = {\n    }, ia = {\n    }, ja = [], ka = null, la = null, ma = false, na = false, oa = 0, pa = false, qa = false, ra = false, sa = {\n    }, ta = false;\n    function ua() {\n        ((ka && ka.remove()));\n        ka = null;\n    };\n;\n    function va(hb, ib, jb) {\n        jb = ((jb || []));\n        if (ha[hb]) {\n            return ha[hb][ib].apply(ha[hb], jb);\n        }\n    ;\n    ;\n        ia[hb] = ((ia[hb] || {\n        }));\n        ia[hb][ib] = jb;\n        return false;\n    };\n;\n    function wa() {\n        if (!((((pa || ra)) || qa))) {\n            ua();\n            return;\n        }\n    ;\n    ;\n        var hb = r.getScrollPosition();\n        pa = ((pa && ab(v(\"rightCol\"), hb, \"paddingTop\", true)));\n        qa = ((qa && ab(t(\"pagelet_above_header_timeline\"), hb, \"JSBNG__top\")));\n        ra = ((ra && ab(t(\"blueBar\"), hb, \"paddingTop\")));\n    };\n;\n    var xa = 0;\n    function ya() {\n        xa = r.getScrollPosition();\n    };\n;\n    function za() {\n        x(ya, function() {\n            var hb = ((((oa === 0)) || ((xa.y >= oa))));\n            va(gb.STICKY_HEADER, \"toggle\", [hb,]);\n            va(gb.CONTENT, \"checkCurrentSectionChange\");\n        }, \"TimelineController/scrollListener\");\n    };\n;\n    function ab(hb, ib, jb, kb) {\n        if (!hb) {\n            ua();\n            return;\n        }\n    ;\n    ;\n        if (((ib.y <= 0))) {\n            bb(hb, jb);\n            return false;\n        }\n         else {\n            var lb = ((kb && gb.getCurrentScrubber()));\n            if (((lb && i.hasClass(lb.getRoot(), \"fixed_elem\")))) {\n                bb(hb, jb);\n                return false;\n            }\n             else {\n                var mb = ((parseInt(hb.style[jb], 10) || 0));\n                if (((ib.y < mb))) {\n                    i.addClass(hb, \"timeline_fixed\");\n                    hb.style[jb] = ((ib.y + \"px\"));\n                }\n                 else i.removeClass(hb, \"timeline_fixed\");\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        return true;\n    };\n;\n    function bb(hb, ib) {\n        hb.style[ib] = \"0px\";\n        i.removeClass(hb, \"timeline_fixed\");\n    };\n;\n    function cb() {\n        x(gb.shouldShowWideAds, function() {\n            va(gb.ADS, \"adjustAdsType\", [ma,]);\n            va(gb.ADS, \"adjustAdsToFit\");\n            va(gb.CONTENT, \"adjustContentPadding\");\n            va(gb.STICKY_HEADER_NAV, \"adjustMenuHeights\");\n        }, \"TimelineController/resize\");\n    };\n;\n    function db(hb, ib) {\n        if (((hb == \"sidebar/initialized\"))) {\n            ta = true;\n        }\n    ;\n    ;\n        va(gb.ADS, \"adjustAdsType\", [gb.shouldShowWideAds(),]);\n    };\n;\n    function eb(hb, ib) {\n        var jb = v(\"rightCol\");\n        if (jb) {\n            jb.style.paddingTop = ((ib + \"px\"));\n            pa = true;\n        }\n    ;\n    ;\n        var kb = t(\"pagelet_above_header_timeline\");\n        if (kb.firstChild) {\n            t(\"above_header_timeline_placeholder\").style.height = ((kb.offsetHeight + \"px\"));\n            kb.style.JSBNG__top = ((ib + \"px\"));\n            qa = true;\n        }\n    ;\n    ;\n        var lb = JSBNG__document.documentElement;\n        ra = ((((lb.clientHeight < 400)) || ((lb.clientWidth < lb.scrollWidth))));\n        if (ra) {\n            t(\"blueBar\").style.paddingTop = ((ib + \"px\"));\n        }\n    ;\n    ;\n        ka = g.listen(window, \"JSBNG__scroll\", wa);\n        h.inform(\"reflow\");\n    };\n;\n    function fb() {\n        while (ja.length) {\n            ja.pop().remove();\n        ;\n        };\n    ;\n        {\n            var fin278keys = ((window.top.JSBNG_Replay.forInKeys)((ha))), fin278i = (0);\n            var hb;\n            for (; (fin278i < fin278keys.length); (fin278i++)) {\n                ((hb) = (fin278keys[fin278i]));\n                {\n                    ((ha[hb].reset && ha[hb].reset()));\n                ;\n                };\n            };\n        };\n    ;\n        ua();\n        ga.unsubscribe();\n        ga = null;\n        ca = null;\n        ea = null;\n        ha = {\n        };\n        ia = {\n        };\n        la = null;\n        na = false;\n        oa = 0;\n        qa = false;\n        if (pa) {\n            var ib = v(\"rightCol\");\n            if (ib) {\n                ib.style.paddingTop = \"\";\n                i.removeClass(ib, \"timeline_fixed\");\n            }\n        ;\n        ;\n        }\n    ;\n    ;\n        pa = false;\n        if (ra) {\n            t(\"blueBar\").style.paddingTop = \"\";\n            i.removeClass(t(\"blueBar\"), \"timeline_fixed\");\n        }\n    ;\n    ;\n        ra = false;\n        ta = false;\n        da = false;\n        j.purge(o.DS_HEIGHT);\n        j.purge(o.DS_LOADED);\n        j.purge(o.DS_SIDEORG);\n        j.purge(o.DS_TAILBALANCE);\n        j.purge(o.DS_COLUMN_HEIGHT_DIFFERENTIAL);\n    };\n;\n    var gb = {\n        NAV: \"nav\",\n        STICKY_HEADER: \"sticky_header\",\n        STICKY_HEADER_NAV: \"sticky_header_nav\",\n        SCRUBBER: \"scrubber\",\n        CONTENT: \"JSBNG__content\",\n        ADS: \"ads\",\n        LOGGING: \"logging\",\n        init: function(hb, ib, jb) {\n            if (da) {\n                return;\n            }\n        ;\n        ;\n            if (((ib == q.WALL_KEY))) {\n                ib = q.TIMELINE_KEY;\n            }\n        ;\n        ;\n            da = true;\n            ea = hb;\n            fa = jb.has_fixed_ads;\n            na = jb.one_column_minimal;\n            sa = {\n                allactivity: true,\n                approve: true\n            };\n            if (!na) {\n                u(sa, {\n                    games: true,\n                    map: true,\n                    music: true,\n                    video: true\n                });\n            }\n        ;\n        ;\n            sa[q.TIMELINE_KEY] = true;\n            va(gb.CONTENT, \"adjustContentPadding\");\n            ja.push(g.listen(window, \"JSBNG__scroll\", za), g.listen(window, \"resize\", cb));\n            ga = h.subscribe([\"sidebar/initialized\",\"sidebar/show\",\"sidebar/hide\",], db);\n            w(n.subscribe(\"TimelineCover/coverCollapsed\", eb));\n            l.onLeave(fb);\n            gb.registerCurrentKey(ib);\n        },\n        setAdsTracking: function(hb) {\n            va(gb.ADS, \"start\", [hb,]);\n        },\n        pageHasScrubber: function(hb) {\n            return ((((!hb || ((!na && hb.match(/^(og_)?app_/))))) || ((hb in sa))));\n        },\n        fixedAds: function() {\n            return fa;\n        },\n        registerCurrentKey: function(hb) {\n            ca = hb;\n            la = ((((((hb !== \"map\")) && ((r.getViewportDimensions().y < aa)))) && gb.pageHasScrubber(hb)));\n            la = ((la || t(\"blueBar\").offsetTop));\n            va(gb.ADS, \"setShortMode\", [la,]);\n            va(gb.ADS, \"updateCurrentKey\", [hb,]);\n            oa = ((((hb == q.TIMELINE_KEY)) ? ((y - z)) : 0));\n        },\n        getCurrentKey: function() {\n            return ca;\n        },\n        getCurrentScrubber: function() {\n            return ha[gb.SCRUBBER];\n        },\n        getCurrentStickyHeaderNav: function() {\n            return ha[gb.STICKY_HEADER_NAV];\n        },\n        scrubberHasLoaded: function(hb) {\n            i.conditionClass(hb.getRoot(), \"fixed_elem\", !la);\n            va(gb.ADS, \"registerScrubber\", [hb,]);\n        },\n        scrubberHasChangedState: function() {\n            va(gb.ADS, \"adjustAdsToFit\");\n        },\n        scrubberWasClicked: function(hb) {\n            va(gb.LOGGING, \"logScrubberClick\", [hb,]);\n        },\n        stickyHeaderNavWasClicked: function(hb) {\n            va(gb.LOGGING, \"logStickyHeaderNavClick\", [hb,]);\n        },\n        sectionHasChanged: function(hb, ib) {\n            va(gb.STICKY_HEADER_NAV, \"updateSection\", [hb,ib,]);\n            va(gb.SCRUBBER, \"updateSection\", [hb,ib,]);\n            va(gb.ADS, \"loadAdsIfEnoughTimePassed\");\n            va(gb.LOGGING, \"logSectionChange\", [hb,ib,]);\n        },\n        navigateToSection: function(hb) {\n            va(gb.CONTENT, \"navigateToSection\", [hb,]);\n        },\n        shouldShowWideAds: function() {\n            if (!ta) {\n                ma = false;\n            }\n             else {\n                var hb = ((((ba + s.getRight())) + s.getLeft()));\n                ma = ((r.getViewportDimensions().x >= hb));\n            }\n        ;\n        ;\n            return ma;\n        },\n        sidebarInitialized: function() {\n            return ta;\n        },\n        adjustStickyHeaderWidth: function() {\n            va(gb.STICKY_HEADER, \"adjustWidth\");\n        },\n        isOneColumnMinimal: function() {\n            return na;\n        },\n        register: function(hb, ib) {\n            ha[hb] = ib;\n            if (ia[hb]) {\n                {\n                    var fin279keys = ((window.top.JSBNG_Replay.forInKeys)((ia[hb]))), fin279i = (0);\n                    var jb;\n                    for (; (fin279i < fin279keys.length); (fin279i++)) {\n                        ((jb) = (fin279keys[fin279i]));\n                        {\n                            va(hb, jb, ia[hb][jb]);\n                        ;\n                        };\n                    };\n                };\n            ;\n                delete ia[hb];\n            }\n        ;\n        ;\n        },\n        adjustScrollingPagerBuffer: function(hb, ib) {\n            var jb = j.get(o.DS_COLUMN_HEIGHT_DIFFERENTIAL, ib);\n            if (!jb) {\n                return;\n            }\n        ;\n        ;\n            var kb = m.getInstance(hb);\n            ((kb && kb.setBuffer(((kb.getBuffer() + Math.abs(jb))))));\n        },\n        runOnceWhenSectionFullyLoaded: function(hb, ib, jb) {\n            var kb = p.get(ib);\n            if (kb) {\n                var lb = false;\n                k.scry(kb.node, \".fbTimelineCapsule\").forEach(function(nb) {\n                    if (((!lb && ((parseInt(j.get(o.DS_LOADED, nb.id), 10) >= parseInt(jb, 10)))))) {\n                        hb();\n                        lb = true;\n                    }\n                ;\n                ;\n                });\n                if (lb) {\n                    return;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var mb = h.subscribe(o.SECTION_FULLY_LOADED, function(nb, ob) {\n                if (((((ob.scrubberKey === ib)) && ((ob.pageIndex === jb))))) {\n                    hb();\n                    mb.unsubscribe();\n                }\n            ;\n            ;\n            });\n        }\n    };\n    e.exports = gb;\n});\n__d(\"TimelineDrag\", [\"JSBNG__Event\",\"ArbiterMixin\",\"Locale\",\"Style\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"Locale\"), j = b(\"Style\"), k = b(\"Vector\"), l = b(\"copyProperties\");\n    function m(n, o, p) {\n        p = ((p || {\n        }));\n        this._listenOn = p.listenOn;\n        this._offsetInput = o;\n        this._defaultOffset = p.default_offset;\n        this._killClicks = p.killClicks;\n        this._vertical = true;\n        this._RTLXSwitch = false;\n        this.setPicture(n, p);\n    };\n;\n    l(m.prototype, h, {\n        setPicture: function(n, o) {\n            if (!n) {\n                return false;\n            }\n        ;\n        ;\n            o = ((o || {\n            }));\n            this._picture = n;\n            this._defaultOffset = o.default_offset;\n            if (o.offsetInput) {\n                this._offsetInput = o.offsetInput;\n            }\n        ;\n        ;\n            if (((o.vertical !== undefined))) {\n                this._vertical = o.vertical;\n            }\n        ;\n        ;\n            if (o.height) {\n                this._containerHeight = o.height;\n            }\n        ;\n        ;\n            if (o.width) {\n                this._containerWidth = o.width;\n            }\n        ;\n        ;\n            if (this._vertical) {\n                this._offsetType = \"JSBNG__top\";\n                this._eventCoord = \"y\";\n            }\n             else {\n                this._RTLXSwitch = i.isRTL();\n                this._offsetType = \"left\";\n                this._eventCoord = \"x\";\n            }\n        ;\n        ;\n            if (this._picture.complete) {\n                this._initialLoad();\n            }\n             else this._loadListener = g.listen(this._picture, \"load\", function() {\n                this._loadListener.remove();\n                this._initialLoad();\n            }.bind(this));\n        ;\n        ;\n        },\n        destroy: function() {\n            this._stopDrag();\n            this._saveOffset();\n            ((this._mousedown && this._mousedown.remove()));\n            ((this._onclick && this._onclick.remove()));\n            ((this._loadListener && this._loadListener.remove()));\n        },\n        _initialLoad: function() {\n            var n = ((this._listenOn ? this._listenOn : this._picture));\n            ((this._mousedown && this._mousedown.remove()));\n            this._mousedown = g.listen(n, \"mousedown\", this._onMouseDown.bind(this));\n            if (this._vertical) {\n                this._maxOffset = ((this._containerHeight - this._picture.offsetHeight));\n            }\n             else this._maxOffset = ((this._containerWidth - this._picture.offsetWidth));\n        ;\n        ;\n            if (((this._defaultOffset !== undefined))) {\n                this._setOffset(this._defaultOffset);\n            }\n        ;\n        ;\n            ((this._onclick && this._onclick.remove()));\n            if (this._killClicks) {\n                this._onclick = g.listen(n, \"click\", this._onClick.bind(this));\n            }\n        ;\n        ;\n            this._saveOffset();\n        },\n        _onClick: function(JSBNG__event) {\n            JSBNG__event.kill();\n        },\n        _onMouseDown: function(JSBNG__event) {\n            var n = ((parseInt(j.get(this._picture, this._offsetType), 10) || 0));\n            this._pictureStartDragOffset = ((n - k.getEventPosition(JSBNG__event)[this._eventCoord]));\n            this._startDrag();\n            JSBNG__event.kill();\n        },\n        _startDrag: function() {\n            if (!this._dragStarted) {\n                this.inform(\"startdrag\", this);\n                this._dragTokens = [g.listen(JSBNG__document.documentElement, \"mouseup\", this._onMouseUp.bind(this)),g.listen(JSBNG__document.documentElement, \"mousemove\", this._onMouseMove.bind(this)),];\n                this._dragStarted = true;\n            }\n        ;\n        ;\n        },\n        _saveOffset: function() {\n            var n = parseInt(j.get(this._picture, this._offsetType), 10);\n            if (this._RTLXSwitch) {\n                this._offsetInput.value = ((((n + this._containerWidth)) - this._picture.offsetWidth));\n            }\n             else this._offsetInput.value = n;\n        ;\n        ;\n        },\n        _stopDrag: function() {\n            if (this._dragStarted) {\n                this.inform(\"stopdrag\", this);\n                this._dragStarted = false;\n                this._dragTokens.forEach(function(n) {\n                    n.remove();\n                });\n                this._saveOffset();\n            }\n        ;\n        ;\n        },\n        _onMouseUp: function(JSBNG__event) {\n            this._stopDrag();\n            JSBNG__event.kill();\n        },\n        _setOffset: function(n) {\n            if (this._RTLXSwitch) {\n                n = Math.max(0, Math.min(n, -this._maxOffset));\n            }\n             else n = Math.min(0, Math.max(n, this._maxOffset));\n        ;\n        ;\n            j.set(this._picture, this._offsetType, ((n + \"px\")));\n        },\n        _onMouseMove: function(JSBNG__event) {\n            this._setOffset(((this._pictureStartDragOffset + k.getEventPosition(JSBNG__event)[this._eventCoord])));\n            JSBNG__event.kill();\n        }\n    });\n    e.exports = m;\n});\n__d(\"TimelineCover\", [\"Arbiter\",\"Button\",\"CSS\",\"DOM\",\"HTML\",\"Parent\",\"DOMScroll\",\"TimelineController\",\"TimelineDrag\",\"Style\",\"Vector\",\"$\",\"copyProperties\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Button\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"HTML\"), l = b(\"Parent\"), m = b(\"DOMScroll\"), n = b(\"TimelineController\"), o = b(\"TimelineDrag\"), p = b(\"Style\"), q = b(\"Vector\"), r = b(\"$\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = b(\"ge\");\n    function v(w, x, y) {\n        this.root = r(\"fbProfileCover\");\n        if (((typeof x === \"object\"))) {\n            this._coverHeight = x.cover_height;\n            this._coverWidth = x.cover_width;\n            this.previewing = x.previewing;\n            this._isLegacy = false;\n        }\n         else {\n            this._isLegacy = true;\n            this._coverHeight = x;\n            this.previewing = y;\n        }\n    ;\n    ;\n        this._parentSection = l.byClass(this.root, \"fbTimelineSection\");\n        this.cover = j.JSBNG__find(this.root, \".cover\");\n        v.instance = this;\n        this.editing = false;\n        if (!this._parentSection) {\n            this._parentSection = l.byClass(this.root, \"fbEventHeader\");\n        }\n    ;\n    ;\n        if (this.previewing) {\n            this.editMode();\n            this.updateCoverImage(this.previewing);\n        }\n    ;\n    ;\n    };\n;\n    v.instance = null;\n    v.getInstance = function() {\n        return v.instance;\n    };\n    s(v.prototype, {\n        showLoadingIndicator: function() {\n            var w = u(\"fbCoverImageContainer\");\n            if (w) {\n                i.addClass(w, \"opaquedLoading\");\n            }\n        ;\n        ;\n        },\n        hideLoadingIndicator: function() {\n            var w = u(\"fbCoverImageContainer\");\n            if (w) {\n                i.removeClass(w, \"opaquedLoading\");\n            }\n        ;\n        ;\n        },\n        isCoverImageVerticalFlow: function(w) {\n            return !(w.style.height);\n        },\n        editMode: function() {\n            h.setEnabled(j.JSBNG__find(this.root, \"button.cancelButton\"), true);\n            h.setEnabled(j.JSBNG__find(this.root, \"button.saveButton\"), true);\n            this.hideLoadingIndicator();\n            this._coverImage = j.scry(this.root, \".coverImage\")[0];\n            var w = j.scry(this._coverImage, \".coverWrap\")[0];\n            if (w) {\n                var x = j.JSBNG__find(w, \".coverPhotoImg\");\n                this._originalIsVertical = this.isCoverImageVerticalFlow(x);\n                this._originalOffset = p.get(x, ((this._originalIsVertical ? \"JSBNG__top\" : \"left\")));\n            }\n        ;\n        ;\n            i.addClass(this._parentSection, \"fbEditCover\");\n            m.JSBNG__scrollTo(this.root);\n            if (this.previewing) {\n                j.remove(this._coverImage);\n                i.show(this._coverImage);\n            }\n        ;\n        ;\n            var y = j.scry(this._coverImage, \".coverPhotoImg\")[0];\n            if (y) {\n                this._createDragger();\n            }\n        ;\n        ;\n            this.editing = true;\n            g.inform(\"CoverPhotoEdit\", {\n                sender: this,\n                state: \"open\"\n            });\n        },\n        _exitEditMode: function() {\n            if (this._timelineDrag) {\n                this._timelineDrag.destroy();\n                this._timelineDrag = null;\n            }\n        ;\n        ;\n            j.JSBNG__find(this.root, \"input.hiddenPhotoID\").value = null;\n            j.JSBNG__find(this.root, \"input.hiddenVideoID\").value = null;\n            h.setEnabled(j.JSBNG__find(this.root, \"button.cancelButton\"), false);\n            h.setEnabled(j.JSBNG__find(this.root, \"button.saveButton\"), false);\n            i.removeClass(this._parentSection, \"fbEditCover\");\n            this.hideLoadingIndicator();\n            this.previewing = false;\n            g.inform(\"CoverPhotoEdit\", {\n                sender: this,\n                state: \"JSBNG__closed\"\n            });\n        },\n        _createDragger: function(w) {\n            var x;\n            if (this._isLegacy) {\n                x = j.JSBNG__find(this.root, \"input.photoOffsetInput\");\n                this._originalIsVertical = true;\n            }\n             else {\n                var y = ((((w === undefined)) ? this._originalIsVertical : w));\n                x = ((y ? j.JSBNG__find(this.root, \"input.photoOffsetYInput\") : j.JSBNG__find(this.root, \"input.photoOffsetXInput\")));\n            }\n        ;\n        ;\n            this._timelineDrag = new o(j.JSBNG__find(this.root, \".coverImage .coverPhotoImg\"), x, {\n                height: this._coverHeight,\n                width: this._coverWidth,\n                listenOn: this.cover,\n                vertical: y,\n                killClicks: true\n            });\n        },\n        updateCoverImage: function(w, x, y) {\n            this.videoID = y;\n            if (x) {\n                this.editMode();\n            }\n        ;\n        ;\n            j.JSBNG__find(this.root, \"input.hiddenPhotoID\").value = w;\n            j.JSBNG__find(this.root, \"input.hiddenVideoID\").value = ((y || null));\n            h.setEnabled(j.JSBNG__find(this.root, \"button.saveButton\"), true);\n            if (x) {\n                j.replace(j.JSBNG__find(this.root, \".coverImage\"), k(x));\n            }\n        ;\n        ;\n            var z = j.JSBNG__find(j.JSBNG__find(this.root, \".coverImage\"), \".coverPhotoImg\"), aa = this.isCoverImageVerticalFlow(z), ba;\n            if (this._isLegacy) {\n                ba = j.JSBNG__find(this.root, \"input.photoOffsetInput\");\n            }\n             else ba = ((aa ? j.JSBNG__find(this.root, \"input.photoOffsetYInput\") : j.JSBNG__find(this.root, \"input.photoOffsetXInput\")));\n        ;\n        ;\n            if (this._timelineDrag) {\n                this._timelineDrag.setPicture(z, {\n                    offsetInput: ba,\n                    vertical: aa\n                });\n            }\n             else this._createDragger(aa);\n        ;\n        ;\n        },\n        cancelUpdate: function() {\n            j.remove(j.scry(this.root, \".coverImage\")[0]);\n            j.prependContent(this.cover, this._coverImage);\n            if (((this._originalOffset !== undefined))) {\n                p.set(j.JSBNG__find(this._coverImage, \".coverPhotoImg\"), ((this._originalIsVertical ? \"JSBNG__top\" : \"left\")), this._originalOffset);\n            }\n        ;\n        ;\n            this._exitEditMode();\n        },\n        saveComplete: function() {\n            this._coverImage = j.scry(this.root, \".coverImage\")[0];\n            var w = l.byClass(this.root, \"fbTimelineTopSectionBase\");\n            ((w && i.removeClass(w, \"_6_5\")));\n            this._exitEditMode();\n        },\n        isInEditMode: function() {\n            return this.editing;\n        }\n    });\n    e.exports = v;\n});\n__d(\"TimelineCapsule\", [\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"DOMQuery\",\"DOMScroll\",\"Parent\",\"TimelineConstants\",\"TimelineLegacySections\",\"UserAgent\",\"Vector\",\"$\",\"createArrayFrom\",\"csx\",\"isEmpty\",\"queryThenMutateDOM\",\"JSBNG__requestAnimationFrame\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"DOMScroll\"), m = b(\"Parent\"), n = b(\"TimelineConstants\"), o = b(\"TimelineLegacySections\"), p = b(\"UserAgent\"), q = b(\"Vector\"), r = b(\"$\"), s = b(\"createArrayFrom\"), t = b(\"csx\"), u = b(\"isEmpty\"), v = b(\"queryThenMutateDOM\"), w = b(\"JSBNG__requestAnimationFrame\"), x = (function() {\n        var y = 45, z = 15, aa = \"use\", ba = \"update\", ca = {\n        }, da = {\n        };\n        function ea(ra) {\n            return h.hasClass(ra, \"fbTimelineBalancer\");\n        };\n    ;\n        function fa(ra) {\n            return ra.getAttribute(\"data-spine\");\n        };\n    ;\n        function ga(ra) {\n            return h.hasClass(ra, \"placeholderUnit\");\n        };\n    ;\n        function ha(ra, sa) {\n            if (sa) {\n                return ((i.get(n.DS_SIDEORG, ra.id) || ra.getAttribute(\"data-side\")));\n            }\n        ;\n        ;\n            return ra.getAttribute(\"data-side\");\n        };\n    ;\n        var ia = function(ra, sa) {\n            if (((p.ie() <= 6))) {\n                ia = function(ta, ua) {\n                    i.set(n.DS_SIDEORG, ta.id, ha(ta, true));\n                    ta.setAttribute(\"data-side\", ua);\n                    h.removeClass(ta, \"leftColumn\");\n                    h.removeClass(ta, \"rightColumn\");\n                    h.addClass(ta, ((((ua == \"l\")) ? \"leftColumn\" : \"rightColumn\")));\n                };\n            }\n             else ia = function(ta, ua) {\n                i.set(n.DS_SIDEORG, ta.id, ha(ta, true));\n                ta.setAttribute(\"data-side\", ua);\n            };\n        ;\n        ;\n            ia(ra, sa);\n        };\n        function ja(ra) {\n            return ra.getAttribute(\"data-size\");\n        };\n    ;\n        function ka(ra) {\n            if (((((h.hasClass(ra, \"fbTimelineOneColumn\") && ra.prevSibling)) && h.hasClass(ra.prevSibling, \"fbTimelineOneColumn\")))) {\n                return ((z * 2));\n            }\n        ;\n        ;\n            if (h.hasClass(ra, \"fbTimelineIndeterminateContent\")) {\n                return 0;\n            }\n        ;\n        ;\n            return z;\n        };\n    ;\n        function la(ra, sa) {\n            var ta = 0;\n            if (((h.shown(ra) && !h.hasClass(ra, \"placeholderUnit\")))) {\n                if (((sa === aa))) {\n                    ta = i.get(n.DS_HEIGHT, ra.id, null);\n                    if (((ta === null))) {\n                        ta = ra.getAttribute(\"data-calculatedheight\");\n                    }\n                ;\n                ;\n                }\n                 else ta = ((ra.offsetHeight + ka(ra)));\n            ;\n            }\n        ;\n        ;\n            if (((((sa === aa)) && ((ta === null))))) {\n                ta = 300;\n            }\n        ;\n        ;\n            i.set(n.DS_HEIGHT, ra.id, parseInt(ta, 10));\n        };\n    ;\n        function ma(ra) {\n            var sa = i.get(n.DS_HEIGHT, ra.id, null);\n            return sa;\n        };\n    ;\n        function na(ra, sa) {\n            if (((ja(sa) == \"2\"))) {\n                return 0;\n            }\n             else if (((ha(sa) == \"r\"))) {\n                return ((ra + ma(sa)));\n            }\n             else return ((ra - ma(sa)))\n            \n        ;\n        };\n    ;\n        function oa(ra) {\n            k.scry(ra, \"._3ram\").forEach(function(sa) {\n                var ta = sa.getAttribute(\"data-endmarker\"), ua = sa.getAttribute(\"data-pageindex\"), va = function() {\n                    if (!sa.parentNode) {\n                        return;\n                    }\n                ;\n                ;\n                    i.set(n.DS_LOADED, ra.id, ua);\n                    j.remove(sa);\n                    g.inform(n.SECTION_FULLY_LOADED, {\n                        scrubberKey: ta,\n                        pageIndex: ua,\n                        capsuleID: ra.id,\n                        childCount: ra.childNodes.length\n                    });\n                };\n                if (o.get(ta)) {\n                    va();\n                }\n                 else var wa = g.subscribe(n.SECTION_REGISTERED, function(xa, ya) {\n                    if (((ya.scrubberKey === ta))) {\n                        va();\n                        wa.unsubscribe();\n                    }\n                ;\n                ;\n                })\n            ;\n            });\n            g.inform(\"TimelineCapsule/balanced\", {\n                capsule: ra\n            });\n        };\n    ;\n        function pa(ra) {\n            if (u(ca[ra.id])) {\n                return;\n            }\n        ;\n        ;\n            var sa = ((ea(ra) ? ra.firstChild : ra)), ta = sa.childNodes.length, ua = {\n            }, va = {\n            }, wa, xa = z, ya = z, za, ab = [];\n            for (var bb = 0; ((bb < ta)); bb++) {\n                wa = sa.childNodes[bb];\n                if (h.hasClass(wa, \"fbTimelineUnit\")) {\n                    za = k.scry(wa, \"div.timelineUnitContainer\")[0];\n                    if (za) {\n                        va[wa.id] = za.getAttribute(\"data-time\");\n                    }\n                ;\n                ;\n                    if (((!ga(wa) && h.shown(wa)))) {\n                        if (((ja(wa) == \"2\"))) {\n                            ua[wa.id] = Math.max(xa, ya);\n                            xa = ya = ((ua[wa.id] + ma(wa)));\n                        }\n                         else if (((ha(wa) == \"r\"))) {\n                            ua[wa.id] = ya;\n                            ya += ma(wa);\n                        }\n                         else {\n                            ua[wa.id] = xa;\n                            xa += ma(wa);\n                        }\n                        \n                    ;\n                    ;\n                        if (((((ha(wa, true) == \"l\")) || ((ja(wa) == \"2\"))))) {\n                            ab.push(wa.id);\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n            for (bb = 0; ((bb < ((ab.length - 1)))); ++bb) {\n                var cb = ab[bb], db = ab[((bb + 1))], eb = ((ua[cb] + y)), fb = ua[db];\n                {\n                    var fin280keys = ((window.top.JSBNG_Replay.forInKeys)((ca[ra.id]))), fin280i = (0);\n                    var gb;\n                    for (; (fin280i < fin280keys.length); (fin280i++)) {\n                        ((gb) = (fin280keys[fin280i]));\n                        {\n                            if (((eb > fb))) {\n                                break;\n                            }\n                        ;\n                        ;\n                            var hb = ca[ra.id][gb];\n                            if (h.shown(hb)) {\n                                continue;\n                            }\n                        ;\n                        ;\n                            if (((((va[gb] <= va[cb])) && ((va[gb] > va[db]))))) {\n                                hb.style.JSBNG__top = ((eb + \"px\"));\n                                eb += y;\n                                h.show(hb);\n                            }\n                        ;\n                        ;\n                        };\n                    };\n                };\n            ;\n            };\n        ;\n        };\n    ;\n        function qa(ra, sa) {\n            var ta = m.byAttribute(ra, \"data-size\");\n            if (ta) {\n                if (h.hasClass(ra.parentNode, \"timelineReportContent\")) {\n                    sa(ra);\n                }\n                 else sa(ta);\n            ;\n            ;\n                x.balanceCapsule(m.byClass(ta, \"fbTimelineCapsule\"));\n            }\n        ;\n        ;\n        };\n    ;\n        return {\n            removeUnit: function(ra) {\n                qa(ra, function(sa) {\n                    j.remove(sa);\n                });\n            },\n            hideUnit: function(ra) {\n                qa(ra, function(sa) {\n                    h.addClass(sa, \"fbTimelineColumnHidden\");\n                });\n            },\n            undoHideUnit: function(ra, sa) {\n                j.remove(m.byClass(sa, \"hiddenText\"));\n                qa(ra, function(ta) {\n                    h.removeClass(ta, \"fbTimelineColumnHidden\");\n                });\n            },\n            unplacehold: function(ra) {\n                var sa = r(ra);\n                sa.style.JSBNG__top = null;\n                h.removeClass(sa, \"visiblePlaceholder\");\n                h.removeClass(sa, \"placeholder\");\n                var ta = m.byClass(sa, \"fbTimelineCapsule\");\n                delete ca[ta.id][ra];\n                x.balanceCapsule(ta);\n            },\n            scrollToCapsule: function(ra) {\n                if (!da.hasOwnProperty(ra.id)) {\n                    var sa = q.getElementPosition(ra.parentNode);\n                    l.JSBNG__scrollTo(new q(q.getScrollPosition().x, ((sa.y - n.SUBSECTION_SCROLL_TO_OFFSET)), \"JSBNG__document\"));\n                    da[ra.id] = true;\n                }\n            ;\n            ;\n            },\n            balanceCapsuleFromChild: function(ra, sa) {\n                x.balanceCapsule(m.byClass(ra, \"fbTimelineCapsule\"), sa);\n            },\n            balanceCapsuleDeferred: function(ra, sa) {\n                x.balanceCapsule.curry(ra, sa).defer();\n            },\n            balanceCapsule: function(ra, sa) {\n                if (((!ra || !ra.childNodes))) {\n                    return;\n                }\n            ;\n            ;\n                var ta = 0, ua, va = JSBNG__document.createDocumentFragment(), wa = [], xa = [], ya = [], za = false, ab = ((sa && sa.heights_action));\n                if (((sa && sa.tail_balance))) {\n                    i.set(n.DS_TAILBALANCE, ra.id, sa.tail_balance);\n                }\n            ;\n            ;\n                if (((((ab !== ba)) && ((p.chrome() || p.webkit()))))) {\n                    h.toggleClass(ra, \"webkitFix\");\n                }\n            ;\n            ;\n                for (var bb = 0; ((bb < ra.childNodes.length)); bb++) {\n                    ua = ra.childNodes[bb];\n                    if (fa(ua)) {\n                        continue;\n                    }\n                     else if (ea(ua)) {\n                        s(ua.firstChild.childNodes).forEach(function(jb) {\n                            la(jb, ab);\n                        });\n                        continue;\n                    }\n                    \n                ;\n                ;\n                    la(ua, ab);\n                    if (((ha(ua, true) == \"r\"))) {\n                        xa.push(ua);\n                    }\n                     else wa.push(ua);\n                ;\n                ;\n                    ya.push(ua);\n                    if (((ja(ua) != \"2\"))) {\n                        if (((((((ta > 0)) && ((ha(ua) == \"r\")))) || ((((ta < 0)) && ((ha(ua) == \"l\"))))))) {\n                            za = true;\n                        }\n                    ;\n                    }\n                ;\n                ;\n                    ta = na(ta, ua);\n                };\n            ;\n                var cb = [], db = [], eb = [];\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(jb) {\n                    var kb = s(jb.firstChild.childNodes);\n                    if (jb.getAttribute(\"data-nonunits\")) {\n                        eb = eb.concat(kb);\n                    }\n                     else if (((ha(jb) == \"left\"))) {\n                        cb = cb.concat(kb);\n                    }\n                     else if (((ha(jb) == \"right\"))) {\n                        db = db.concat(kb);\n                    }\n                    \n                    \n                ;\n                ;\n                });\n                if (za) {\n                    ra.style.minHeight = ra.offsetHeight;\n                    wa.forEach(function(jb) {\n                        if (((ja(jb) != \"2\"))) {\n                            ia(jb, \"l\");\n                        }\n                    ;\n                    ;\n                    });\n                    xa.forEach(function(jb) {\n                        if (((ja(jb) != \"2\"))) {\n                            ia(jb, \"r\");\n                        }\n                    ;\n                    ;\n                    });\n                    var fb = j.create(\"li\", {\n                        className: \"fbTimelineBalancer\"\n                    }, j.create(\"ol\", null, wa));\n                    fb.setAttribute(\"data-side\", \"left\");\n                    j.prependContent(ra, fb);\n                    cb = wa.concat(cb);\n                    var gb = j.create(\"li\", {\n                        className: \"fbTimelineBalancer\"\n                    }, j.create(\"ol\", null, xa));\n                    gb.setAttribute(\"data-side\", \"right\");\n                    j.prependContent(ra, gb);\n                    db = xa.concat(db);\n                    ta = 0;\n                }\n            ;\n            ;\n                while (eb.length) {\n                    va.appendChild(eb.shift());\n                ;\n                };\n            ;\n                while (((((((ta >= 0)) && cb.length)) || ((((ta < 0)) && db.length))))) {\n                    if (((ta >= 0))) {\n                        ua = cb.shift();\n                    }\n                     else ua = db.shift();\n                ;\n                ;\n                    va.appendChild(ua);\n                    ta = na(ta, ua);\n                };\n            ;\n                ra.appendChild(va);\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(jb) {\n                    if (!jb.firstChild.childNodes.length) {\n                        j.remove(jb);\n                    }\n                ;\n                ;\n                });\n                var hb = ((((sa && sa.tail_balance)) || i.get(n.DS_TAILBALANCE, ra.id)));\n                if (hb) {\n                    ta = x.tailBalance(ra, ta, hb);\n                }\n            ;\n            ;\n                if (za) {\n                    ya.forEach(function(jb) {\n                        if (((jb.parentNode !== ra))) {\n                            ra.appendChild(jb);\n                            ta = na(ta, jb);\n                        }\n                    ;\n                    ;\n                    });\n                    ra.style.minHeight = null;\n                }\n            ;\n            ;\n                var ib = m.byClass(ra, \"fbTimelineSection\");\n                if (ib) {\n                    i.set(n.DS_COLUMN_HEIGHT_DIFFERENTIAL, ib.id, ta);\n                }\n            ;\n            ;\n                ca[ra.id] = {\n                };\n                k.scry(ra, \"li.placeholderUnit\").forEach(function(jb) {\n                    ca[ra.id][jb.id] = jb;\n                });\n                pa(ra);\n                oa(ra);\n                if (((ab === aa))) {\n                    sa.heights_action = ba;\n                    w(function() {\n                        w(x.balanceCapsule.curry(ra, sa));\n                    });\n                }\n            ;\n            ;\n            },\n            tailBalance: function(ra, sa, ta) {\n                if (!ra) {\n                    return sa;\n                }\n            ;\n            ;\n                var ua = [], va = [], wa = [], xa = [];\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(za) {\n                    var ab = s(za.firstChild.childNodes);\n                    if (za.getAttribute(\"data-nonunits\")) {\n                        xa = xa.concat(ab);\n                    }\n                     else if (((ha(za) == \"left\"))) {\n                        va = va.concat(ab);\n                    }\n                     else if (((ha(za) == \"right\"))) {\n                        wa = wa.concat(ab);\n                    }\n                    \n                    \n                ;\n                ;\n                    ua = ua.concat(ab);\n                });\n                if (((((((ta == n.FIXED_SIDE_RIGHT)) && va.length)) || ((((ta == n.FIXED_SIDE_LEFT)) && wa.length))))) {\n                    return sa;\n                }\n            ;\n            ;\n                var ya = JSBNG__document.createDocumentFragment();\n                if (ua) {\n                    while (ua.length) {\n                        if (((ta != n.FIXED_SIDE_NONE))) {\n                            if (((ja(ua[0]) != \"2\"))) {\n                                if (((sa >= 0))) {\n                                    ia(ua[0], \"l\");\n                                }\n                                 else ia(ua[0], \"r\");\n                            ;\n                            }\n                        ;\n                        }\n                    ;\n                    ;\n                        sa = na(sa, ua[0]);\n                        ya.appendChild(ua.shift());\n                    };\n                }\n            ;\n            ;\n                ra.appendChild(ya);\n                k.scry(ra, \"li.fbTimelineBalancer\").forEach(function(za) {\n                    if (!za.firstChild.childNodes.length) {\n                        j.remove(za);\n                    }\n                ;\n                ;\n                });\n                return sa;\n            },\n            loadTwoColumnUnits: function(ra) {\n                var sa = r(ra);\n                v(function() {\n                    var ta = m.byClass(sa, \"fbTimelineSection\");\n                    if (ta) {\n                        var ua = k.JSBNG__find(sa, \"._3rbf\"), va = k.JSBNG__find(sa, \"._3rbh\"), wa = ((va.offsetHeight - ua.offsetHeight));\n                        i.set(n.DS_COLUMN_HEIGHT_DIFFERENTIAL, ta.id, wa);\n                    }\n                ;\n                ;\n                }, oa.curry(sa));\n            }\n        };\n    })();\n    e.exports = ((a.TimelineCapsule || x));\n});\n__d(\"TimelineCapsuleUtilities\", [\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"CSS\"), h = {\n        setFirstUnit: function(i) {\n            var j = true;\n            for (var k = 0; ((k < i.childNodes.length)); ++k) {\n                var l = i.childNodes[k];\n                if (((l.id.indexOf(\"tl_unit_\") === 0))) {\n                    if (j) {\n                        j = false;\n                        g.addClass(l, \"firstUnit\");\n                    }\n                     else {\n                        g.removeClass(l, \"firstUnit\");\n                        break;\n                    }\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n        }\n    };\n    e.exports = h;\n});\n__d(\"TimelineUnitSelector\", [\"DOMQuery\",\"Parent\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOMQuery\"), h = b(\"Parent\"), i = {\n        getUnitsWithTime: function(j) {\n            return g.scry(j, \"div.timelineUnitContainer\").filter(function(k) {\n                return ((((h.byClass(k, \"fbTimelineCapsule\") === j)) && k.getAttribute(\"data-time\")));\n            });\n        }\n    };\n    e.exports = i;\n});\n__d(\"TimelineComposerUtilities\", [\"JSBNG__Event\",\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"DOMQuery\",\"Parent\",\"TimelineUnitSelector\",\"Vector\",\"cx\",\"csx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMQuery\"), m = b(\"Parent\"), n = b(\"TimelineUnitSelector\"), o = b(\"Vector\"), p = b(\"cx\"), q = b(\"csx\"), r = ((86400 * 31)), s = 86400000, t = {\n        listenToSetEstimatedDate: function(u, v) {\n            return h.subscribe(\"ComposerXTimelineTagger/init\", function(w, x) {\n                if (l.contains(u, x.datePickerElement)) {\n                    t.setEstimatedDate(x.datePickerInstance, v());\n                    x.composerTimelineTagger.switchToTagger(\"date\");\n                }\n            ;\n            ;\n            });\n        },\n        listenToSetEstimatedDateOld: function(u, v) {\n            return h.subscribe(\"TimelineBackdatedComposerTagger/initialized\", function(JSBNG__event, w) {\n                if (((w.composer === u))) {\n                    w.date_picker.subscribe(\"initialized\", function(x, y) {\n                        t.setEstimatedDate(y, v());\n                    });\n                }\n            ;\n            ;\n            });\n        },\n        listenToPublish: function(u, v) {\n            if (u.root) {\n                u = u.root;\n            }\n        ;\n        ;\n            return h.subscribe(\"composer/publish\", function(JSBNG__event, w) {\n                if (((w.composer_id === u.id))) {\n                    i.loadModules([\"TimelineStoryPublisher\",], function(x) {\n                        x.publish(w);\n                        ((v && v()));\n                    });\n                }\n            ;\n            ;\n            });\n        },\n        listenToAnotherComposerOpen: function(u, v) {\n            return h.subscribe(\"composer/mutate\", function(w, x) {\n                if (((x !== u))) {\n                    v();\n                }\n            ;\n            ;\n            });\n        },\n        listenToCancel: function(u, v) {\n            return g.listen(u, \"click\", function(JSBNG__event) {\n                if (m.byClass(JSBNG__event.getTarget(), \"_306\")) {\n                    v();\n                }\n            ;\n            ;\n            });\n        },\n        listenToCancelOld: function(u, v) {\n            return g.listen(u, \"click\", function(JSBNG__event) {\n                ((m.byClass(JSBNG__event.getTarget(), \"cancelBtn\") && v()));\n            });\n        },\n        hidePlaceIfAttachmentsTooTall: function(u) {\n            var v = l.JSBNG__find(u, \"._2_4\"), w = o.getElementDimensions(v).y;\n            if (((w > 50))) {\n                j.hide(l.JSBNG__find(v, \"._mg\"));\n            }\n        ;\n        ;\n        },\n        hidePlaceIfAttachmentsTooTallOld: function(u) {\n            var v = k.JSBNG__find(u, \"ul.fbTimelineComposerAttachments\"), w = o.getElementDimensions(v).y;\n            if (((w > 50))) {\n                var x = m.byTag(k.scry(v, \"span.placeAttachment\")[0], \"li\");\n                ((x && j.hide(x)));\n            }\n        ;\n        ;\n        },\n        setEstimatedDate: function(u, v) {\n            var w, x;\n            if (((v && j.hasClass(v, \"fbTimelineCapsule\")))) {\n                w = v.getAttribute(\"data-start\");\n                x = v.getAttribute(\"data-end\");\n                if (((w && x))) {\n                    var y = new JSBNG__Date(((x * 1000))), z = new JSBNG__Date();\n                    if (((y > z))) {\n                        u.setDate(z.getFullYear(), ((z.getMonth() + 1)), z.getDate());\n                    }\n                     else if (((((x - w)) > ((2 * r))))) {\n                        u.setDate(y.getFullYear());\n                    }\n                     else u.setDate(y.getFullYear(), ((y.getMonth() + 1)));\n                    \n                ;\n                ;\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            var aa = m.byClass(v, \"fbTimelineCapsule\");\n            if (aa) {\n                w = aa.getAttribute(\"data-start\");\n                x = aa.getAttribute(\"data-end\");\n                var ba = o.getElementPosition(v).y, ca = [x,null,], da = [w,null,], ea = n.getUnitsWithTime(aa);\n                for (var fa = 0; ((fa < ea.length)); fa++) {\n                    var ga = ea[fa], ha = k.scry(ga.parentNode, \".spinePointer\")[0];\n                    if (!ha) {\n                        continue;\n                    }\n                ;\n                ;\n                    var ia = o.getElementPosition(ha).y;\n                    if (((ia <= ba))) {\n                        if (((!ca[1] || ((ia > ca[1]))))) {\n                            ca = [ga.getAttribute(\"data-time\"),ia,];\n                        }\n                    ;\n                    ;\n                    }\n                     else if (((!da[1] || ((ia < da[1]))))) {\n                        da = [ga.getAttribute(\"data-time\"),ia,];\n                    }\n                    \n                ;\n                ;\n                };\n            ;\n                if (((((ca[0] !== null)) && ((da[0] !== null))))) {\n                    var ja = ((Math.round(((((parseInt(ca[0], 10) + parseInt(da[0], 10))) / 2))) * 1000));\n                    ja = Math.min(((new JSBNG__Date() - s)), ja);\n                    u.setDateWithTimestamp(ja);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        showMLEFlyout: function(u) {\n            var v = ((k.scry(JSBNG__document, \"a.fbTimelineSpine\").length === 0)), w = function(x) {\n                x.showMLEFlyout(u);\n            };\n            if (v) {\n                i.loadModules([\"TimelineSpinelessComposer\",], w);\n            }\n             else i.loadModules([\"TimelineComposer\",], w);\n        ;\n        ;\n        }\n    };\n    e.exports = t;\n});\n__d(\"TimelineComposer\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"Parent\",\"Run\",\"TimelineCapsule\",\"TimelineCapsuleUtilities\",\"TimelineComposerUtilities\",\"$\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Parent\"), l = b(\"Run\"), m = b(\"TimelineCapsule\"), n = b(\"TimelineCapsuleUtilities\"), o = b(\"TimelineComposerUtilities\"), p = b(\"$\"), q = b(\"cx\"), r;\n    function s(x) {\n        if (((x.isScheduledPost || x.isOGPost))) {\n            return;\n        }\n    ;\n    ;\n        if (!x.streamStory) {\n            window.JSBNG__location.reload();\n            return;\n        }\n    ;\n    ;\n        if (x.backdatedTime) {\n            h.loadModules([\"TimelineStoryPublisher\",], function(z) {\n                z.publish(x);\n            });\n            return;\n        }\n    ;\n    ;\n        var y = w.renderCapsuleBasedStory(r, x.streamStory);\n        g.inform(\"TimelineComposer/on_after_publish\", y, g.BEHAVIOR_PERSISTENT);\n    };\n;\n    function t() {\n        var x = k.byClass(r, \"fbTimelineTwoColumn\");\n        return j.JSBNG__find(x, \".spinePointer\");\n    };\n;\n    function u(x) {\n        var y = v();\n        i.show(y);\n        var z = x.subscribe(\"hide\", function() {\n            i.hide(y);\n            x.unsubscribe(z);\n        });\n    };\n;\n    function v() {\n        var x = k.byClass(r, \"fbTimelineTwoColumn\"), y = j.scry(x, \"div.composerVeil\");\n        if (((y.length !== 1))) {\n            y = j.appendContent(x, j.create(\"div\", {\n                className: \"composerVeil hidden_elem\"\n            }));\n        }\n    ;\n    ;\n        return y[0];\n    };\n;\n    var w = {\n        init: function(x) {\n            r = p(x);\n            var y = g.subscribe(\"composer/publish\", function(JSBNG__event, z) {\n                if (((z.composer_id === r.id))) {\n                    s(z);\n                }\n            ;\n            ;\n            });\n            l.onLeave(y.unsubscribe.bind(y));\n            if (i.hasClass(r, \"_mj\")) {\n                o.hidePlaceIfAttachmentsTooTall(r);\n            }\n             else o.hidePlaceIfAttachmentsTooTallOld(r);\n        ;\n        ;\n        },\n        showMLEFlyout: function(x) {\n            x.setContext(t()).show();\n            u(x);\n        },\n        renderCapsuleBasedStory: function(x, y) {\n            var z = k.byClass(x, \"fbTimelineCapsule\");\n            if (!z) {\n                return;\n            }\n        ;\n        ;\n            var aa = k.byClass(x, \"timelineUnitContainer\").parentNode;\n            if (aa.nextSibling.getAttribute(\"data-spine\")) {\n                aa = aa.nextSibling;\n            }\n        ;\n        ;\n            var ba = j.insertAfter(aa, y)[0];\n            h.loadModules([\"Animation\",], function(ca) {\n                new ca(ba.firstChild).from(\"backgroundColor\", \"#fff8dd\").to(\"backgroundColor\", \"#fff\").duration(2000).ease(ca.ease.both).go();\n            });\n            n.setFirstUnit(z);\n            m.balanceCapsule(z);\n            return ba;\n        }\n    };\n    e.exports = ((a.TimelineComposer || w));\n});\n__d(\"TimelineSmartInsert\", [\"Run\",\"UserAgent\",\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"Run\"), h = b(\"UserAgent\"), i = b(\"Vector\"), j = 100;\n    function k(q) {\n        if (((q === \"viewport\"))) {\n            return i.getViewportDimensions().y;\n        }\n    ;\n    ;\n        return q;\n    };\n;\n    var l = false, m = false;\n    function n() {\n        if (m) {\n            return;\n        }\n    ;\n    ;\n        g.onLeave(o);\n        m = true;\n    };\n;\n    function o() {\n        l = false;\n        m = false;\n    };\n;\n    var p = {\n        run: function(q, r, s) {\n            n();\n            if (((!l || ((h.ie() <= 8))))) {\n                r();\n                return;\n            }\n        ;\n        ;\n            var t = q.offsetHeight;\n            r();\n            var u = q.offsetHeight, v = i.getScrollPosition().y, w = i.getElementPosition(q).y;\n            if (((((((u !== t)) && ((w < v)))) && ((((w + t)) < ((v + k(((s || j)))))))))) {\n                window.JSBNG__scrollBy(0, ((u - t)));\n            }\n        ;\n        ;\n        },\n        enable: function() {\n            l = true;\n        }\n    };\n    e.exports = p;\n});\n__d(\"TimelineContentLoader\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"CSS\",\"DOM\",\"DOMScroll\",\"OnVisible\",\"ScrollingPager\",\"TimelineConstants\",\"TimelineController\",\"TimelineLegacySections\",\"TimelineSmartInsert\",\"TimelineURI\",\"UIPagelet\",\"UserAgent\",\"Vector\",\"$\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",\"csx\",\"debounce\",\"ge\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMScroll\"), l = b(\"OnVisible\"), m = b(\"ScrollingPager\"), n = b(\"TimelineConstants\"), o = b(\"TimelineController\"), p = b(\"TimelineLegacySections\"), q = b(\"TimelineSmartInsert\"), r = b(\"TimelineURI\"), s = b(\"UIPagelet\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"$\"), w = b(\"arrayContains\"), x = b(\"copyProperties\"), y = b(\"createArrayFrom\"), z = b(\"csx\"), aa = b(\"debounce\"), ba = b(\"ge\"), ca = b(\"startsWith\"), da = b(\"tx\"), ea = b(\"userAction\"), fa = false, ga = false, ha, ia = null, ja = {\n    }, ka = [], la = [], ma = [], na = {\n    }, oa = {\n    }, pa = {\n    }, qa = {\n    }, ra = null, sa = null, ta = false, ua = null;\n    function va(eb, fb, gb, hb, ib) {\n        this.node = eb;\n        this.loaded = hb;\n        this.canScrollLoad = true;\n        this.canUnload = ((fb != db.RECENT));\n        this.scrubberKey = fb;\n        this.historicUnitCount = ib;\n        this._pageletLoadData = gb;\n        this._expandPageletLoadData = {\n        };\n        this.rightColumnFinished = false;\n    };\n;\n    x(va.prototype, {\n        load: function(eb, fb) {\n            if (this.loaded) {\n                return;\n            }\n        ;\n        ;\n            var gb = this._pageletLoadData;\n            h.inform(n.SECTION_LOADING, {\n                data: gb,\n                scrubberKey: this.scrubberKey\n            });\n            this.loaded = true;\n            i.removeClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            i.removeClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            var hb = \"ProfileTimelineSectionPagelet\", ib = ((this.scrubberKey == db.WAY_BACK));\n            if (ib) {\n                hb = \"ProfileTimelineRemainingYearsPagelet\";\n            }\n        ;\n        ;\n            gb.time_cutoff = db.getTimeCutoff();\n            gb.highlight_unit_data = eb;\n            gb.parent_key = this.parentKey;\n            gb.force_no_friend_activity = ta;\n            i.addClass(this.node, \"fbTimelineSectionLoading\");\n            if (gb.combine_sections) {\n                i.addClass(this.node, \"combinedSections\");\n            }\n        ;\n        ;\n            if (((this.canUnload && ga))) {\n                var jb = this.node.firstChild.cloneNode(true);\n                i.hide(jb);\n                j.insertAfter(this.node, jb);\n            }\n             else this.canScrollLoad = false;\n        ;\n        ;\n            var kb = null;\n            if (((fb && !mb))) {\n                var lb = this.node;\n                lb.style.minHeight = ((window.JSBNG__innerHeight + \"px\"));\n                kb = function() {\n                    lb.style.minHeight = null;\n                };\n            }\n        ;\n        ;\n            var mb = ((gb.combine_sections && ib));\n            pa[this.scrubberKey] = s.loadFromEndpoint(hb, ((mb ? ((gb.unit_container_id + \"_left\")) : this.node.id)), gb, {\n                usePipe: true,\n                jsNonblock: true,\n                constHeight: true,\n                append: mb,\n                finallyHandler: kb\n            });\n            cb(this.scrubberKey);\n        },\n        preload: function() {\n            i.addClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            i.removeClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            var eb = j.JSBNG__find(this.node, \"span.sectionLabel\");\n            if (eb.getAttribute(\"data-original-label\")) {\n                j.setContent(eb, eb.getAttribute(\"data-original-label\"));\n                eb.removeAttribute(\"data-original-label\");\n            }\n        ;\n        ;\n        },\n        unload: function() {\n            if (((!this.loaded || !this.canUnload))) {\n                return;\n            }\n        ;\n        ;\n            this.loaded = false;\n            ((pa[this.scrubberKey] && pa[this.scrubberKey].cancel()));\n            i.addClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            i.removeClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            if (((this.node.nextSibling && i.hasClass(this.node.nextSibling, \"fbTimelineSection\")))) {\n                j.setContent(this.node, this.node.nextSibling);\n                i.show(this.node.firstChild);\n            }\n             else j.empty(this.node);\n        ;\n        ;\n            this.deactivateScrollLoad();\n        },\n        activateScrollLoad: function() {\n            this.canScrollLoad = true;\n            i.removeClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n            i.addClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n            ((oa[this.scrubberKey] && oa[this.scrubberKey].reset()));\n        },\n        deactivateScrollLoad: function() {\n            if (!this.loaded) {\n                this.canScrollLoad = false;\n                i.removeClass(this.node, \"fbTimelineTimePeriodUnexpanded\");\n                i.addClass(this.node, \"fbTimelineTimePeriodSuppressed\");\n                ((oa[this.scrubberKey] && oa[this.scrubberKey].remove()));\n            }\n        ;\n        ;\n        },\n        setExpandLoadData: function(eb) {\n            this._expandPageletLoadData = eb;\n            return this;\n        },\n        appendData: function(eb) {\n            x(this._pageleLoadData, eb);\n            return this;\n        },\n        expandSubSections: function() {\n            if (this.subSections.length) {\n                db.navigateToSection(this.subSections[0].scrubberKey);\n            }\n        ;\n        ;\n        },\n        expand: function(eb) {\n            if (!this.loaded) {\n                return;\n            }\n        ;\n        ;\n            sa.add_event(((\"expand_\" + this.scrubberKey)));\n            var fb = j.JSBNG__find(this.node, \".fbTimelineSectionExpander\");\n            i.addClass(fb.firstChild, \"async_saving\");\n            ((eb && i.addClass(eb, \"async_saving\")));\n            this._expandPageletLoadData.time_cutoff = db.getTimeCutoff();\n            db.navigateToSection(this.scrubberKey);\n            j.scry(this.node, \".fbTimelineCapsule\").forEach(j.remove);\n            this._expandPageletLoadData.new_expand = true;\n            ((pa[this.scrubberKey] && pa[this.scrubberKey].cancel()));\n            pa[this.scrubberKey] = s.loadFromEndpoint(\"ProfileTimelineSectionPagelet\", fb.id, this._expandPageletLoadData, {\n                usePipe: true,\n                jsNonblock: true,\n                constHeight: true\n            });\n        },\n        isPermalinkPeriod: function() {\n            return this._pageletLoadData.is_permalink_period;\n        }\n    });\n    function wa() {\n        if (fa) {\n            return;\n        }\n    ;\n    ;\n        o.register(o.CONTENT, db);\n        sa = ea(\"timeline\").uai(\"init\", \"scrubber\", false);\n        fa = true;\n        if (((t.ie() <= 7))) {\n            ga = true;\n        }\n    ;\n    ;\n    };\n;\n    var xa = aa(function(eb, fb, gb) {\n        var hb = p.get(eb).historicUnitCount;\n        fb -= hb;\n        gb -= 1;\n        if (((((((hb == -1)) || ((gb <= 0)))) || ((fb < 0))))) {\n            return;\n        }\n    ;\n    ;\n        var ib = db.getNextSectionKey(eb);\n        if (ib) {\n            p.get(ib).load();\n            xa(ib, fb, gb);\n        }\n    ;\n    ;\n    }, 500);\n    function ya(eb, fb, gb, hb) {\n        var ib = db.getNextSectionKey(fb);\n        if (ib) {\n            oa[ib] = new l(eb, za.curry(ib, eb), false, ((gb || 1000)));\n        }\n         else if (((fb !== db.WAY_BACK))) {\n            hb = ((hb ? hb : 0));\n            if (((hb > 80))) {\n                return null;\n            }\n        ;\n        ;\n            ya.curry(eb, fb, gb, ((hb + 1))).defer(250);\n        }\n        \n    ;\n    ;\n    };\n;\n    function za(eb, fb) {\n        var gb = p.get(eb);\n        if (((gb && gb.canScrollLoad))) {\n            sa.add_event(((\"scroll_load_\" + eb)));\n            if (ga) {\n                gb.preload();\n            }\n             else {\n                gb.load();\n                if (ua) {\n                    xa(eb, ua.required_units, ua.max_parallelism);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ((fb && j.remove(fb)));\n        }\n    ;\n    ;\n    };\n;\n    function ab() {\n        var eb, fb, gb = false;\n        for (var hb = 0; ((hb < ka.length)); hb++) {\n            var ib = ka[hb];\n            if (!ib) {\n                continue;\n            }\n        ;\n        ;\n            var jb = p.get(ib);\n            if (((jb && ((jb.canScrollLoad || jb.loaded))))) {\n                if (!jb.loaded) {\n                    i.removeClass(jb.node, \"fbTimelineTimePeriodSuppressed\");\n                    i.addClass(jb.node, \"fbTimelineTimePeriodUnexpanded\");\n                }\n            ;\n            ;\n                if (((eb && fb))) {\n                    bb(eb, fb);\n                    if (gb) {\n                        eb.deactivateScrollLoad();\n                    }\n                ;\n                ;\n                    gb = true;\n                }\n            ;\n            ;\n                eb = null;\n                fb = null;\n                continue;\n            }\n             else if (eb) {\n                fb = jb;\n                jb.deactivateScrollLoad();\n            }\n             else {\n                eb = jb;\n                if (gb) {\n                    jb.activateScrollLoad();\n                }\n            ;\n            ;\n            }\n            \n        ;\n        ;\n            i.removeClass(jb.node, \"fbTimelineTimePeriodSuppressed\");\n            i.addClass(jb.node, \"fbTimelineTimePeriodUnexpanded\");\n        };\n    ;\n    };\n;\n    function bb(eb, fb) {\n        i.removeClass(fb.node, \"fbTimelineTimePeriodUnexpanded\");\n        i.addClass(fb.node, \"fbTimelineTimePeriodSuppressed\");\n        var gb = j.JSBNG__find(eb.node, \"span.sectionLabel\"), hb = j.JSBNG__find(fb.node, \"span.sectionLabel\");\n        if (!hb.getAttribute(\"data-original-label\")) {\n            hb.setAttribute(\"data-original-label\", j.getText(hb));\n        }\n    ;\n    ;\n        if (((((gb.getAttribute(\"data-month\") && hb.getAttribute(\"data-month\"))) && ((gb.getAttribute(\"data-year\") == hb.getAttribute(\"data-year\")))))) {\n            j.setContent(hb, da._(\"Show {month1} - {month2} {year}\", {\n                month1: hb.getAttribute(\"data-month\"),\n                month2: gb.getAttribute(\"data-month\"),\n                year: gb.getAttribute(\"data-year\")\n            }));\n        }\n         else if (((gb.getAttribute(\"data-year\") !== hb.getAttribute(\"data-year\")))) {\n            j.setContent(hb, da._(\"Show {year1} - {year2}\", {\n                year1: hb.getAttribute(\"data-year\"),\n                year2: gb.getAttribute(\"data-year\")\n            }));\n        }\n         else j.setContent(hb, da._(\"Show {year}\", {\n            year: hb.getAttribute(\"data-year\")\n        }));\n        \n    ;\n    ;\n    };\n;\n    function cb(eb) {\n        if (ga) {\n            for (var fb = 0; ((fb < ((ka.length - 1)))); fb++) {\n                var gb = ka[fb];\n                if (!gb) {\n                    continue;\n                }\n            ;\n            ;\n                if (((gb != eb))) {\n                    var hb = p.get(gb);\n                    if (((hb.loaded && hb.canUnload))) {\n                        hb.unload();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        }\n    ;\n    ;\n        ab();\n    };\n;\n    var db = {\n        WAY_BACK: \"way_back\",\n        RECENT: \"recent\",\n        HEADER_SCROLL_CUTOFF: 80,\n        CURRENT_SECTION_OFFSET: 150,\n        FOOTER_HEIGHT: 60,\n        registerTimePeriod: function(eb, fb, gb, hb, ib, jb, kb) {\n            wa();\n            if (w(ma, fb)) {\n                return;\n            }\n        ;\n        ;\n            if (la) {\n                x(gb, la);\n            }\n        ;\n        ;\n            var lb = new va(eb, fb, gb, hb, kb);\n            if (!ib) {\n                ka[jb] = fb;\n                ja[fb] = true;\n            }\n             else {\n                lb.parentKey = ib;\n                p.get(ib).subSections = ((p.get(ib).subSections || []));\n                p.get(ib).subSections[jb] = lb;\n            }\n        ;\n        ;\n            p.set(fb, lb);\n            db.checkCurrentSectionChange();\n            h.inform(n.SECTION_REGISTERED, {\n                scrubberKey: fb\n            });\n        },\n        reset: function() {\n            {\n                var fin281keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin281i = (0);\n                var eb;\n                for (; (fin281i < fin281keys.length); (fin281i++)) {\n                    ((eb) = (fin281keys[fin281i]));\n                    {\n                        oa[eb].remove();\n                    ;\n                    };\n                };\n            };\n        ;\n            {\n                var fin282keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin282i = (0);\n                var fb;\n                for (; (fin282i < fin282keys.length); (fin282i++)) {\n                    ((fb) = (fin282keys[fin282i]));\n                    {\n                        ((pa[fb] && pa[fb].cancel()));\n                    ;\n                    };\n                };\n            };\n        ;\n            {\n                var fin283keys = ((window.top.JSBNG_Replay.forInKeys)((qa))), fin283i = (0);\n                var gb;\n                for (; (fin283i < fin283keys.length); (fin283i++)) {\n                    ((gb) = (fin283keys[fin283i]));\n                    {\n                        qa[gb].unsubscribe();\n                        delete qa[gb];\n                    };\n                };\n            };\n        ;\n            ((ha && ha.unsubscribe()));\n            ha = null;\n            p.removeAll();\n            ia = null;\n            ja = {\n            };\n            ka = [];\n            la = [];\n            ma = [];\n            na = {\n            };\n            oa = {\n            };\n            pa = {\n            };\n            ra = null;\n            sa = null;\n            ta = false;\n            fa = false;\n        },\n        checkCurrentSectionChange: function() {\n            var eb = db.getCurrentSection(), fb = ((ia && ia.scrubberKey));\n            if (((((eb && ((eb.scrubberKey !== fb)))) && !eb.isPermalinkPeriod()))) {\n                ia = eb;\n                var gb = eb.scrubberKey, hb = eb.parentKey;\n                if (!hb) {\n                    hb = gb;\n                    gb = null;\n                }\n            ;\n            ;\n                o.sectionHasChanged(hb, gb);\n            }\n        ;\n        ;\n        },\n        setTimeCutoff: function(eb) {\n            ra = eb;\n        },\n        getTimeCutoff: function() {\n            return ra;\n        },\n        setParallelLoadConfig: function(eb) {\n            ua = eb;\n        },\n        getCurrentSection: function() {\n            var eb = {\n            }, fb = p.getAll();\n            {\n                var fin284keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin284i = (0);\n                var gb;\n                for (; (fin284i < fin284keys.length); (fin284i++)) {\n                    ((gb) = (fin284keys[fin284i]));\n                    {\n                        var hb = fb[gb];\n                        if (((!hb.loaded || na[hb.scrubberKey]))) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var ib = u.getElementPosition(hb.node, \"viewport\").y;\n                        if (((hb.scrubberKey == \"recent\"))) {\n                            ib--;\n                        }\n                    ;\n                    ;\n                        if (((ib < db.CURRENT_SECTION_OFFSET))) {\n                            eb[ib] = hb;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            var jb = Math.max.apply(null, Object.keys(eb)), kb = ((jb == -Infinity));\n            if (!kb) {\n                return eb[jb];\n            }\n             else if (ka[0]) {\n                return p.get(ka[0]);\n            }\n            \n        ;\n        ;\n            return null;\n        },\n        capsuleForCurrentSection: function() {\n            var eb = db.getCurrentSection();\n            return ((eb && j.scry(eb.node, \".fbTimelineCapsule\")[0]));\n        },\n        enableScrollLoad: function(eb, fb, gb, hb) {\n            eb = v(eb);\n            var ib = j.scry(eb.parentNode, \".fbTimelineCapsule\")[0];\n            if (!ib) {\n                return;\n            }\n        ;\n        ;\n            if (((gb === null))) {\n                ya(eb, fb, hb);\n            }\n             else o.runOnceWhenSectionFullyLoaded(ya.curry(eb, fb, hb), fb, gb);\n        ;\n        ;\n        },\n        enableScrollLoadOnClick: function(eb, fb, gb) {\n            eb = v(eb);\n            g.listen(eb, \"click\", function(hb) {\n                hb.prevent();\n                db.enableScrollLoad(eb, fb, null, gb);\n            });\n        },\n        expandSectionOnClick: function(eb, fb) {\n            g.listen(eb, \"click\", function(gb) {\n                gb.prevent();\n                p.get(fb).expand();\n            });\n        },\n        expandSubSectionsOnClick: function(eb, fb) {\n            g.listen(eb, \"click\", function(gb) {\n                gb.prevent();\n                p.get(fb).expandSubSections();\n            });\n        },\n        getNextSectionKey: function(eb) {\n            for (var fb = 0; ((fb < ((ka.length - 1)))); fb++) {\n                if (((ka[fb] == eb))) {\n                    while (((((fb < ((ka.length - 1)))) && !ka[((fb + 1))]))) {\n                        fb++;\n                    ;\n                    };\n                ;\n                    return ka[((fb + 1))];\n                }\n            ;\n            ;\n            };\n        ;\n            var gb = p.get(eb);\n            if (((!gb || !gb.parentKey))) {\n                return;\n            }\n        ;\n        ;\n            var hb = p.get(gb.parentKey);\n            if (!hb) {\n                return;\n            }\n        ;\n        ;\n            for (var ib = 0; ((ib < ((hb.subSections.length - 1)))); ib++) {\n                if (((hb.subSections[ib].scrubberKey == eb))) {\n                    return hb.subSections[((ib + 1))].scrubberKey;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        hideSection: function(eb) {\n            var fb = p.get(eb);\n            ((fb && i.hide(j.JSBNG__find(fb.node, \".fbTimelineSection\"))));\n            var gb = o.getCurrentScrubber();\n            if (gb) {\n                var hb = o.getCurrentScrubber().getNav(eb);\n                ((hb && i.hide(hb)));\n            }\n        ;\n        ;\n            var ib = o.getCurrentStickyHeaderNav();\n            ((ib && ib.removeTimePeriod(eb)));\n            na[eb] = true;\n        },\n        loadSectionOnClick: function(eb, fb) {\n            g.listen(eb, \"click\", function(gb) {\n                gb.prevent();\n                p.get(fb).load();\n            });\n        },\n        removeSection: function(eb) {\n            {\n                var fin285keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin285i = (0);\n                var fb;\n                for (; (fin285i < fin285keys.length); (fin285i++)) {\n                    ((fb) = (fin285keys[fin285i]));\n                    {\n                        if (((ka[fb] == eb))) {\n                            ka[fb] = null;\n                            break;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            p.remove(eb);\n            delete ja[eb];\n            if (((eb in oa))) {\n                oa[eb].remove();\n                delete oa[eb];\n            }\n        ;\n        ;\n            var gb = o.getCurrentStickyHeaderNav();\n            ((gb && gb.removeTimePeriod(eb)));\n            ma.push(eb);\n        },\n        removeSectionParent: function(eb) {\n            j.remove(v(eb).parentNode);\n        },\n        navigateToSection: function(eb, fb, gb) {\n            sa.add_event(((\"nav_\" + eb)));\n            fb = !!fb;\n            var hb = eb, ib = p.get(eb);\n            if (!ib) {\n                return;\n            }\n        ;\n        ;\n            if (!ib.loaded) {\n                q.enable();\n                j.scry(v(\"timeline_tab_content\"), \".fbTimelineShowOlderSections\").forEach(j.remove);\n            }\n        ;\n        ;\n            if (!ja[eb]) {\n                ib.node.style.minHeight = ((u.getViewportDimensions().y + \"px\"));\n                var jb = h.subscribe(n.SECTION_FULLY_LOADED, function(rb, sb) {\n                    if (((sb.scrubberKey === eb))) {\n                        ib.node.style.minHeight = \"\";\n                        jb.unsubscribe();\n                    }\n                ;\n                ;\n                });\n                hb = ib.parentKey;\n                var kb = p.get(hb).node;\n                if (!i.hasClass(kb, \"fbTimelineSectionExpanded\")) {\n                    k.JSBNG__scrollTo(kb, 0);\n                    i.addClass(kb, \"fbTimelineSectionExpanded\");\n                    j.scry(kb, \".fbTimelineCapsule\").forEach(j.remove);\n                    j.scry(kb, \"div.fbTimelineSectionExpandPager\").forEach(j.remove);\n                    j.scry(kb, \"div.fbTimelineContentHeader\").forEach(j.remove);\n                    j.scry(kb, \"._5vf\").forEach(function(rb) {\n                        if (!rb.getAttribute(\"data-subsection\")) {\n                            j.remove(rb);\n                        }\n                    ;\n                    ;\n                    });\n                }\n            ;\n            ;\n                var lb = db.getNextSectionKey(hb);\n                if (((lb && oa[lb]))) {\n                    oa[lb].setBuffer(0);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            for (var mb = 0; ((mb < ka.length)); mb++) {\n                var nb = ka[mb];\n                if (!nb) {\n                    continue;\n                }\n            ;\n            ;\n                if (((nb == hb))) {\n                    break;\n                }\n            ;\n            ;\n                p.get(nb).deactivateScrollLoad();\n                j.scry(v(\"timeline_tab_content\"), \".fbTimelineSectionExpandPager\").forEach(function(rb) {\n                    var sb = m.getInstance(rb.id);\n                    ((sb && sb.removeOnVisible()));\n                });\n            };\n        ;\n            db.adjustContentPadding();\n            ib.load(gb, true);\n            ab();\n            var ob = u.getScrollPosition().x, pb = u.getElementPosition(ib.node).y;\n            if (!fb) {\n                var qb = ((ja[eb] ? n.SCROLL_TO_OFFSET : n.SUBSECTION_SCROLL_TO_OFFSET));\n                k.JSBNG__scrollTo(new u(ob, ((pb - qb)), \"JSBNG__document\"), true, false, false, function() {\n                    var rb = u.getElementPosition(ib.node).y;\n                    k.JSBNG__scrollTo(new u(ob, ((rb - qb)), \"JSBNG__document\"), false);\n                    var sb = j.scry(ib.node, \"h3.uiHeaderTitle\")[0];\n                    if (sb) {\n                        sb.tabIndex = 0;\n                        sb.JSBNG__focus();\n                    }\n                ;\n                ;\n                });\n            }\n        ;\n        ;\n        },\n        adjustContentPadding: function() {\n            var eb = ba(\"timeline_tab_content\");\n            if (!eb) {\n                return;\n            }\n        ;\n        ;\n            if (o.isOneColumnMinimal()) {\n                return;\n            }\n        ;\n        ;\n            var fb = ((o.getCurrentKey() || r.TIMELINE_KEY));\n            if (((fb !== r.TIMELINE_KEY))) {\n                return;\n            }\n        ;\n        ;\n            var gb = ((ka.length - 1)), hb = p.get(ka[gb]);\n            eb.style.paddingBottom = ((((hb && hb.loaded)) ? null : ((((((((u.getViewportDimensions().y - db.CURRENT_SECTION_OFFSET)) - db.HEADER_SCROLL_CUTOFF)) - db.FOOTER_HEIGHT)) + \"px\"))));\n        },\n        adjustContentPaddingAfterLoad: function(eb, fb) {\n            o.runOnceWhenSectionFullyLoaded(db.adjustContentPadding, eb, fb);\n        },\n        appendContentAfterLoad: function(eb, fb, gb) {\n            o.runOnceWhenSectionFullyLoaded(j.appendContent.curry(v(eb), fb), gb, \"0\");\n        },\n        markSectionAsLoaded: function(eb, fb, gb) {\n            o.runOnceWhenSectionFullyLoaded(function() {\n                ((ba(eb) && i.removeClass(v(eb).parentNode, \"fbTimelineSectionLoading\")));\n            }, fb, gb);\n        },\n        suppressSectionsAbove: function(eb) {\n            var fb, gb;\n            for (var hb = 0; ((hb < ka.length)); hb++) {\n                var ib = ka[hb];\n                if (!ib) {\n                    continue;\n                }\n            ;\n            ;\n                fb = p.get(ib).node;\n                gb = null;\n                if (((y(eb.parentNode.children).indexOf(eb) <= y(fb.parentNode.children).indexOf(fb)))) {\n                    gb = ib;\n                    break;\n                }\n            ;\n            ;\n                p.get(ib).deactivateScrollLoad();\n            };\n        ;\n            if (gb) {\n                db.navigateToSection(gb, true);\n            }\n        ;\n        ;\n        },\n        forceNoFriendActivity: function() {\n            ta = true;\n        },\n        removeDupes: function(eb) {\n            var fb = ba(eb);\n            if (!fb) {\n                return;\n            }\n        ;\n        ;\n            var gb = j.scry(fb, \"li.fbTimelineUnit\"), hb = {\n            };\n            for (var ib = 0; ((ib < gb.length)); ib++) {\n                var jb = gb[ib];\n                if (((jb.id && ca(jb.id, \"tl_unit_\")))) {\n                    var kb = jb.id.substring(8, jb.id.length), lb = ((((jb.getAttribute(\"data-unit\") == \"ExperienceSummaryUnit\")) ? jb.getAttribute(\"data-time\") : 1));\n                    if (((hb.hasOwnProperty(kb) && ((hb[kb] == lb))))) {\n                        jb.id = ((\"dupe_unit_\" + Math.JSBNG__random()));\n                        jb.className = \"hidden_elem\";\n                    }\n                     else hb[kb] = lb;\n                ;\n                ;\n                }\n            ;\n            ;\n            };\n        ;\n        },\n        removeLoadingState: function(eb) {\n            ((ba(eb) && i.removeClass(v(eb), \"fbTimelineSectionLoading\")));\n        },\n        setExpandLoadDataForSection: function(eb, fb) {\n            var gb = p.get(eb);\n            ((gb && gb.setExpandLoadData(fb)));\n        },\n        appendSectionDataForAllSections: function(eb) {\n            la = eb;\n            for (var fb = 0; ((fb < ((ka.length - 1)))); fb++) {\n                var gb = ka[fb];\n                if (!gb) {\n                    continue;\n                }\n            ;\n            ;\n                var hb = p.get(gb);\n                ((hb && hb.appendData(eb)));\n            };\n        ;\n        },\n        updatePagerAfterLoad: function(eb, fb, gb, hb, ib) {\n            var jb = m.getInstance(eb.firstChild.id);\n            if (!jb) {\n                qa[eb.firstChild.id] = h.subscribe(m.REGISTERED, function(kb, lb) {\n                    qa[eb.firstChild.id].unsubscribe();\n                    delete qa[eb.firstChild.id];\n                    if (((lb.id === eb.firstChild.id))) {\n                        db.updatePagerAfterLoad(eb, fb, gb, hb, ib);\n                    }\n                ;\n                ;\n                });\n                return;\n            }\n        ;\n        ;\n            o.runOnceWhenSectionFullyLoaded(function() {\n                i.removeClass(eb, \"fbTimelineHiddenPager\");\n                jb.checkBuffer();\n            }, gb, hb);\n            if (ib) {\n                o.runOnceWhenSectionFullyLoaded(o.adjustScrollingPagerBuffer.curry(eb.firstChild.id, fb), gb, hb);\n            }\n        ;\n        ;\n        },\n        showAfterLoad: function(eb, fb, gb) {\n            o.runOnceWhenSectionFullyLoaded(function() {\n                var hb = ba(eb);\n                ((hb && i.show(hb)));\n            }, fb, gb);\n        },\n        repositionDialog: function(eb) {\n            h.subscribe(n.SECTION_LOADED, function() {\n                eb.updatePosition();\n            });\n        },\n        rightColumnFinished: function(eb) {\n            var fb = p.get(eb);\n            fb.rightColumnFinished = true;\n        },\n        registerUnrankedGroup: function(eb) {\n            g.listen(eb, \"click\", function(JSBNG__event) {\n                var fb = j.JSBNG__find(eb, \".unranked_group_placeholder\");\n                if (((JSBNG__event.getTarget() !== fb))) {\n                    return JSBNG__event.prevent();\n                }\n            ;\n            ;\n                j.remove(fb);\n                i.removeClass(j.JSBNG__find(eb, \".unranked_group_units\"), \"hidden_elem\");\n                return true;\n            });\n        }\n    };\n    e.exports = db;\n});\n__d(\"TimelineLogging\", [\"TimelineController\",\"reportData\",], function(a, b, c, d, e, f) {\n    var g = b(\"TimelineController\"), h = b(\"reportData\"), i = false, j = 0, k = null, l = null, m = {\n        init: function(n) {\n            if (i) {\n                return;\n            }\n        ;\n        ;\n            j = n;\n            g.register(g.LOGGING, this);\n        },\n        reset: function() {\n            i = false;\n            j = 0;\n            k = null;\n        },\n        log: function(n, o) {\n            o.profile_id = j;\n            h(n, {\n                gt: o\n            });\n        },\n        logSectionChange: function(n, o) {\n            var p = {\n                timeline_section_change: 1,\n                key: n\n            };\n            if (((k && ((n == k))))) {\n                p.timeline_scrubber = 1;\n                k = null;\n            }\n        ;\n        ;\n            if (((l && ((n == l))))) {\n                p.sticky_header_nav = 1;\n                l = null;\n            }\n        ;\n        ;\n            m.log(\"timeline\", p);\n        },\n        logScrubberClick: function(n) {\n            k = n;\n        },\n        logStickyHeaderNavClick: function(n) {\n            l = n;\n        }\n    };\n    e.exports = m;\n});\n__d(\"TimelineSideAds\", [\"function-extensions\",\"Arbiter\",\"CSS\",\"DOM\",\"EgoAdsObjectSet\",\"JSBNG__Event\",\"StickyController\",\"TimelineConstants\",\"TimelineController\",\"UIPagelet\",\"URI\",\"Vector\",\"cx\",\"csx\",\"debounce\",\"ge\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"EgoAdsObjectSet\"), k = b(\"JSBNG__Event\"), l = b(\"StickyController\"), m = b(\"TimelineConstants\"), n = b(\"TimelineController\"), o = b(\"UIPagelet\"), p = b(\"URI\"), q = b(\"Vector\"), r = b(\"cx\"), s = b(\"csx\"), t = b(\"debounce\"), u = b(\"ge\"), v = 3, w = 4, x = 75, y = \"data-height\", z = 30000, aa = 0, ba = false, ca, da, ea, fa, ga, ha = new j(), ia, ja = false, ka, la = Infinity, ma = 5, na = false, oa, pa, qa, ra, sa, ta, ua = false, va = [], wa;\n    function xa(ub, vb, wb) {\n        var xb = 0;\n        if (vb) {\n            xb += vb.getHeight();\n        }\n    ;\n    ;\n        if (((!cb() && !xb))) {\n            return;\n        }\n    ;\n    ;\n        ub -= xb;\n        var yb = 0;\n        for (var zb = 0; ((zb < wb)); zb++) {\n            yb += lb(zb);\n        ;\n        };\n    ;\n        if (vb) {\n            if (((ub < yb))) {\n                ub += vb.fold(((yb - ub)));\n            }\n             else if (((ub > yb))) {\n                ub -= vb.unfold(((ub - yb)));\n            }\n            \n        ;\n        }\n    ;\n    ;\n        return ub;\n    };\n;\n    function ya() {\n        var ub = da.cloneNode(true);\n        ub.id = \"\";\n        var vb = new j();\n        vb.init(i.scry(ub, \"div.ego_unit\"));\n        var wb = true;\n        vb.forEach(function(xb) {\n            if (wb) {\n                wb = false;\n            }\n             else i.remove(xb);\n        ;\n        ;\n        });\n        h.addClass(ub, \"fixed_elem\");\n        return ub;\n    };\n;\n    function za() {\n        ga = undefined;\n        if (!n.pageHasScrubber(ia)) {\n            db(ma);\n            gb();\n        }\n         else if (pa) {\n            eb(da, false);\n            var ub = qa;\n            ((qa && i.remove(qa)));\n            qa = ya();\n            if (ub) {\n                rb();\n            }\n        ;\n        ;\n            db(((((n.sidebarInitialized() && ja)) ? w : v)));\n            gb();\n            if (!ka) {\n                var vb = n.getCurrentScrubber();\n                if (vb) {\n                    qb(vb.getRoot(), vb.getOffset());\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ((ka && ka.start()));\n        }\n         else tb.adjustAdsToFit();\n        \n    ;\n    ;\n    };\n;\n    function ab() {\n        if (qa) {\n            i.remove(qa);\n            qa = null;\n        }\n    ;\n    ;\n        if (ka) {\n            ka.JSBNG__stop();\n            ka = null;\n        }\n    ;\n    ;\n        if (cb()) {\n            h.conditionClass(da, \"fixed_elem\", !pa);\n            h.conditionClass(da, \"_22s\", !n.pageHasScrubber(ia));\n        }\n         else h.conditionClass(da, \"fixed_elem\", ((!pa && n.pageHasScrubber(ia))));\n    ;\n    ;\n    };\n;\n    function bb(ub) {\n        var vb = q.getViewportDimensions().y, wb = n.getCurrentScrubber(), xb = ((wb ? wb.getOffset() : m.SCRUBBER_DEFAULT_OFFSET)), yb = ((((vb - xb)) - x));\n        if (((wb || cb()))) {\n            return xa(yb, wb, ub);\n        }\n    ;\n    ;\n    };\n;\n    function cb() {\n        return n.fixedAds();\n    };\n;\n    function db(ub) {\n        fa = Math.min(ub, ha.getCount());\n        ha.forEach(function(vb, wb) {\n            eb(vb, ((wb >= fa)));\n        });\n        eb(da, ((fa === 0)));\n    };\n;\n    function eb(ub, vb) {\n        h.conditionClass(ub, \"_22r\", vb);\n        ub.setAttribute(\"aria-hidden\", ((vb ? \"true\" : \"false\")));\n    };\n;\n    function fb(ub) {\n        var vb = i.JSBNG__find(ha.getUnit(ub), \"div._4u8\"), wb = vb.getAttribute(\"data-ad\");\n        return JSON.parse(wb).adid;\n    };\n;\n    function gb() {\n        ib();\n        hb();\n    };\n;\n    function hb() {\n        var ub;\n        if (((ga !== undefined))) {\n            ub = ha.getHoldoutAdIDsForSpace(ga, mb);\n        }\n         else ub = ha.getHoldoutAdIDsForNumAds(fa);\n    ;\n    ;\n        if (ub) {\n            ub.forEach(jb);\n        }\n    ;\n    ;\n    };\n;\n    function ib() {\n        if (!ra) {\n            return;\n        }\n    ;\n    ;\n        for (var ub = ((fa - 1)); ((ub >= 0)); --ub) {\n            if (((((ka && ka.isFixed())) && ((((ub !== 0)) || ((qa && !h.shown(qa)))))))) {\n                continue;\n            }\n        ;\n        ;\n            var vb = fb(ub);\n            if (!ra[vb]) {\n                return;\n            }\n        ;\n        ;\n            jb(vb);\n        };\n    ;\n    };\n;\n    function jb(ub) {\n        if (!ra[ub]) {\n            return;\n        }\n    ;\n    ;\n        var vb = i.create(\"div\", {\n            src: p(\"/ai.php\").addQueryData({\n                aed: ra[ub]\n            }),\n            width: 0,\n            height: 0,\n            frameborder: 0,\n            scrolling: \"no\",\n            className: \"fbEmuTracking\"\n        });\n        vb.setAttribute(\"aria-hidden\", \"true\");\n        i.appendContent(da, vb);\n        delete ra[ub];\n    };\n;\n    function kb(ub) {\n        var vb = 0;\n        while (((((ub > 0)) && ((vb < ma))))) {\n            ub -= lb(vb);\n            if (((ub >= 0))) {\n                vb++;\n            }\n        ;\n        ;\n        };\n    ;\n        return vb;\n    };\n;\n    function lb(ub) {\n        var vb = ha.getUnit(ub);\n        if (!vb) {\n            return 0;\n        }\n    ;\n    ;\n        return mb(vb);\n    };\n;\n    function mb(ub) {\n        if (!ub.getAttribute(y)) {\n            nb(ub);\n        }\n    ;\n    ;\n        return parseInt(ub.getAttribute(y), 10);\n    };\n;\n    function nb(ub) {\n        ub.setAttribute(y, ub.offsetHeight);\n    };\n;\n    function ob() {\n        for (var ub = 0; ((ub < ha.getCount())); ub++) {\n            var vb = ha.getUnit(ub);\n            if (!vb) {\n                continue;\n            }\n        ;\n        ;\n            nb(vb);\n        };\n    ;\n    };\n;\n    function pb() {\n        var ub = i.scry(da, \"div.ego_unit\");\n        ha.init(ub);\n        var vb = ub.length;\n        if (!vb) {\n            return;\n        }\n    ;\n    ;\n        h.addClass(ha.getUnit(0), \"ego_unit_no_top_border\");\n        na = vb;\n        za();\n        var wb = function(xb) {\n            nb(xb);\n            na = --vb;\n            tb.adjustAdsToFit();\n            if (!na) {\n                la = JSBNG__Date.now();\n            }\n        ;\n        ;\n        };\n        ub.forEach(function(xb) {\n            function yb() {\n                wb.curry(xb).defer();\n            };\n        ;\n            var zb = i.scry(xb, \"img.img\")[0];\n            if (!zb) {\n                return;\n            }\n        ;\n        ;\n            if (zb.complete) {\n                yb();\n            }\n             else k.listen(zb, {\n                load: yb,\n                error: yb,\n                abort: yb\n            });\n        ;\n        ;\n        });\n    };\n;\n    function qb(ub, vb) {\n        ka = new l(ub, vb, function(wb) {\n            if (wb) {\n                rb();\n            }\n             else {\n                i.remove(qa);\n                gb();\n            }\n        ;\n        ;\n        });\n        if (qa) {\n            ka.start();\n        }\n    ;\n    ;\n    };\n;\n    function rb() {\n        i.insertAfter(da, qa);\n        sb();\n    };\n;\n    function sb() {\n        h.conditionShow(qa, ((((lb(0) <= bb(1))) && !h.hasClass(JSBNG__document.documentElement, \"tinyViewport\"))));\n    };\n;\n    var tb = {\n        init: function(ub, vb, wb) {\n            if (ba) {\n                return;\n            }\n        ;\n        ;\n            ma = wb.max_ads;\n            ca = wb.refresh_delay;\n            z = wb.refresh_threshold;\n            ba = true;\n            ea = vb;\n            da = ub;\n            tb.adjustAdsType(n.shouldShowWideAds());\n            sa = g.subscribe([\"UFI/CommentAddedActive\",\"UFI/CommentDeletedActive\",\"UFI/LikeActive\",\"Curation/Action\",\"ProfileBrowser/LoadMoreContent\",\"Ads/NewContentDisplayed\",], tb.loadAdsIfEnoughTimePassed);\n            ta = g.subscribe(\"TimelineSideAds/refresh\", tb.forceReloadAds);\n            wa = t(tb.loadAdsIfEnoughTimePassed, ca, this, true);\n            if (wb.mouse_move) {\n                va.push(k.listen(window, \"mousemove\", wa));\n                va.push(k.listen(window, \"JSBNG__scroll\", wa));\n                va.push(k.listen(window, \"resize\", wa));\n            }\n        ;\n        ;\n            n.register(n.ADS, tb);\n        },\n        setShortMode: function(ub) {\n            pa = ub;\n        },\n        start: function(ub) {\n            ra = ub;\n            oa = null;\n            pb();\n        },\n        updateCurrentKey: function(ub) {\n            if (((ub == ia))) {\n                return;\n            }\n        ;\n        ;\n            ia = ub;\n            ab();\n        },\n        loadAds: function(ub) {\n            if (((na || oa))) {\n                return;\n            }\n        ;\n        ;\n            la = Infinity;\n            oa = o.loadFromEndpoint(\"WebEgoPane\", da.id, {\n                pid: 33,\n                data: [ea,((\"timeline_\" + ub)),((pa ? w : ma)),++aa,false,]\n            }, {\n                crossPage: true,\n                bundle: false\n            });\n        },\n        registerScrubber: function(ub) {\n            if (pa) {\n                qb(ub.getRoot(), ub.getOffset());\n            }\n        ;\n        ;\n            ((!oa && tb.adjustAdsToFit()));\n        },\n        loadAdsIfEnoughTimePassed: function() {\n            if (((((((((z && ((((JSBNG__Date.now() - la)) >= z)))) && !h.hasClass(JSBNG__document.documentElement, \"tinyViewport\"))) && ((!ka || ka.isFixed())))) && ((!ra || !ra[fb(0)]))))) {\n                tb.loadAds(ia);\n            }\n        ;\n        ;\n            tb.adjustAdsToFit();\n        },\n        forceReloadAds: function() {\n            tb.loadAds(ia);\n        },\n        adjustAdsType: function(ub) {\n            if (((ub != ja))) {\n                h.conditionClass(da, \"_22q\", !ub);\n                h.conditionClass(da, \"_35q\", !ub);\n                ((qa && h.conditionClass(qa, \"_22q\", !ub)));\n                ((qa && h.conditionClass(qa, \"_35q\", !ub)));\n                ja = ub;\n                ob();\n                tb.adjustAdsToFit();\n                var vb = u(\"rightColContent\");\n                if (vb) {\n                    h.conditionClass(vb, \"fbTimelineWideRightCol\", ub);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        adjustAdsToFit: function() {\n            if (((!da || ua))) {\n                return;\n            }\n        ;\n        ;\n            ua = true;\n            var ub = ((ja ? w : v));\n            if (pa) {\n                if (((ka && qa))) {\n                    ka.handleScroll();\n                    if (ka.isFixed()) {\n                        h.conditionShow(qa, ((((lb(0) <= bb(1))) && !h.hasClass(JSBNG__document.documentElement, \"tinyViewport\"))));\n                    }\n                     else db(ub);\n                ;\n                ;\n                    gb();\n                }\n            ;\n            ;\n            }\n             else {\n                var vb = bb(ub);\n                if (((typeof vb !== \"undefined\"))) {\n                    ga = vb;\n                    db(kb(vb));\n                    if (!na) {\n                        gb();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ua = false;\n        },\n        reset: function() {\n            ((ka && ka.JSBNG__stop()));\n            ((oa && oa.cancel()));\n            ha = new j();\n            ja = false;\n            da = null;\n            ka = null;\n            oa = null;\n            aa = 0;\n            na = null;\n            pa = null;\n            qa = null;\n            ia = null;\n            la = Infinity;\n            ba = false;\n            ((sa && g.unsubscribe(sa)));\n            sa = null;\n            ((ta && g.unsubscribe(ta)));\n            ta = null;\n            va.forEach(function(ub) {\n                ub.remove();\n            });\n            va = [];\n            ((wa && wa.reset()));\n        }\n    };\n    e.exports = ((a.TimelineSideAds || tb));\n});\n__d(\"TimelineStickyHeader\", [\"Animation\",\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"Style\",\"TimelineController\",\"TimelineURI\",\"Vector\",\"ViewportBounds\",\"$\",\"ge\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n    var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Style\"), m = b(\"TimelineController\"), n = b(\"TimelineURI\"), o = b(\"Vector\"), p = b(\"ViewportBounds\"), q = b(\"$\"), r = b(\"ge\"), s = b(\"queryThenMutateDOM\"), t = 200, u = false, v = false, w, x, y, z, aa, ba, ca = {\n    }, da = {\n        VISIBLE: \"TimelineStickyHeader/visible\",\n        ADJUST_WIDTH: \"TimelineStickyHeader/adjustWidth\",\n        init: function(ea) {\n            if (u) {\n                return;\n            }\n        ;\n        ;\n            u = true;\n            w = ea;\n            x = k.JSBNG__find(ea, \"div.JSBNG__name\");\n            y = k.JSBNG__find(ea, \"div.actions\");\n            v = j.hasClass(ea, \"fbTimelineStickyHeaderVisible\");\n            var fa = q(\"blueBar\"), ga, ha = false;\n            s(function() {\n                if (((((fa.offsetTop && !r(\"page_admin_panel\"))) && ((m.getCurrentKey() !== n.TIMELINE_KEY))))) {\n                    ga = o.getElementDimensions(fa).y;\n                    ha = true;\n                }\n            ;\n            ;\n            }, function() {\n                if (ha) {\n                    i.loadModules([\"StickyController\",], function(ia) {\n                        new ia(ea, ga).start();\n                    });\n                }\n                 else j.addClass(ea, \"fixed_elem\");\n            ;\n            ;\n                s(function() {\n                    aa = ea.offsetTop;\n                    ba = ea.scrollHeight;\n                }, function() {\n                    z = p.addTop(function() {\n                        return ((v ? ((aa + ba)) : 0));\n                    });\n                }, \"TimelineStickyHeader/init\");\n                m.register(m.STICKY_HEADER, da);\n            }, \"TimelineStickyHeader/init\");\n        },\n        reset: function() {\n            u = false;\n            v = false;\n            w = null;\n            x = null;\n            y = null;\n            ca = {\n            };\n            z.remove();\n            z = null;\n        },\n        toggle: function(ea) {\n            if (((ea !== v))) {\n                var fa = ((ea ? ((aa - ba)) : aa)), ga = ((ea ? aa : ((aa - ba))));\n                l.set(w, \"JSBNG__top\", ((fa + \"px\")));\n                j.addClass(w, \"fbTimelineStickyHeaderAnimating\");\n                var ha = k.getID(w);\n                ((ca[ha] && ca[ha].JSBNG__stop()));\n                ca[ha] = new g(w).from(\"JSBNG__top\", fa).to(\"JSBNG__top\", ga).duration(t).ondone(function() {\n                    ca[ha] = null;\n                    j.conditionClass(w, \"fbTimelineStickyHeaderHidden\", !ea);\n                    w.setAttribute(\"aria-hidden\", ((ea ? \"false\" : \"true\")));\n                    j.removeClass(w, \"fbTimelineStickyHeaderAnimating\");\n                    l.set(w, \"JSBNG__top\", \"\");\n                    h.inform(da.VISIBLE, ea);\n                }).go();\n                v = ea;\n            }\n        ;\n        ;\n        },\n        adjustWidth: function() {\n            h.inform(da.ADJUST_WIDTH, x, h.BEHAVIOR_STATE);\n        },\n        getRoot: function() {\n            return w;\n        },\n        setActions: function(ea) {\n            if (((u && ea))) {\n                k.setContent(y, ea);\n                y = ea;\n            }\n        ;\n        ;\n        }\n    };\n    e.exports = ((a.TimelineStickyHeader || da));\n});\n__d(\"ButtonGroup\", [\"function-extensions\",\"copyProperties\",\"createArrayFrom\",\"CSS\",\"DataStore\",\"Parent\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"copyProperties\"), h = b(\"createArrayFrom\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"Parent\"), l = \"firstItem\", m = \"lastItem\";\n    function n(s, t) {\n        var u = k.byClass(s, t);\n        if (!u) {\n            throw new Error(\"invalid use case\");\n        }\n    ;\n    ;\n        return u;\n    };\n;\n    function o(s) {\n        return ((i.shown(s) && h(s.childNodes).some(i.shown)));\n    };\n;\n    function p(s) {\n        var t, u, v;\n        h(s.childNodes).forEach(function(w) {\n            v = o(w);\n            i.removeClass(w, l);\n            i.removeClass(w, m);\n            i.conditionShow(w, v);\n            if (v) {\n                t = ((t || w));\n                u = w;\n            }\n        ;\n        ;\n        });\n        ((t && i.addClass(t, l)));\n        ((u && i.addClass(u, m)));\n        i.conditionShow(s, t);\n    };\n;\n    function q(s, t) {\n        var u = n(t, \"uiButtonGroupItem\");\n        s(u);\n        p(u.parentNode);\n    };\n;\n    function r(s) {\n        this._root = n(s, \"uiButtonGroup\");\n        j.set(this._root, \"ButtonGroup\", this);\n        p(this._root);\n    };\n;\n    r.getInstance = function(s) {\n        var t = n(s, \"uiButtonGroup\"), u = j.get(t, \"ButtonGroup\");\n        return ((u || new r(t)));\n    };\n    g(r.prototype, {\n        hideItem: q.curry(i.hide),\n        showItem: q.curry(i.show),\n        toggleItem: q.curry(i.toggle)\n    });\n    e.exports = r;\n});\n__d(\"TimelineStickyHeaderNav\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"ButtonGroup\",\"CSS\",\"DOM\",\"Parent\",\"SelectorDeprecated\",\"Style\",\"SubscriptionsHandler\",\"TimelineConstants\",\"TimelineController\",\"TimelineLegacySections\",\"URI\",\"UserAgent\",\"Vector\",\"ge\",\"tx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\");\n    b(\"function-extensions\");\n    var h = b(\"Arbiter\"), i = b(\"ButtonGroup\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Parent\"), m = b(\"SelectorDeprecated\"), n = b(\"Style\"), o = b(\"SubscriptionsHandler\"), p = b(\"TimelineConstants\"), q = b(\"TimelineController\"), r = b(\"TimelineLegacySections\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"ge\"), w = b(\"tx\"), x = false, y, z, aa, ba, ca, da, ea, fa, ga, ha, ia, ja = {\n    }, ka = {\n    }, la = [], ma = false, na = [], oa = [], pa, qa = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",];\n    function ra() {\n        var fb = m.getSelectorMenu(da);\n        pa.addSubscriptions(g.listen(fb, \"click\", sa), h.subscribe(p.SECTION_LOADED, wa));\n    };\n;\n    function sa(JSBNG__event) {\n        var fb = l.byTag(JSBNG__event.getTarget(), \"a\");\n        if (fb) {\n            var gb = fb.getAttribute(\"data-key\");\n            q.stickyHeaderNavWasClicked(gb);\n            q.navigateToSection(gb);\n            JSBNG__event.prevent();\n        }\n    ;\n    ;\n    };\n;\n    function ta(fb, gb) {\n        var hb = m.getValue(gb);\n        if (((hb === \"allStories\"))) {\n            r.get(fb).expandSubSections();\n        }\n    ;\n    ;\n        if (((hb !== \"activityLog\"))) {\n            ua(gb);\n        }\n    ;\n    ;\n    };\n;\n    function ua(fb) {\n        db(fb, \"highlights\");\n        db(fb, \"allStories\");\n        var gb = k.JSBNG__find(fb, \"li.separator\");\n        j.conditionShow(gb, gb.previousSibling);\n    };\n;\n    function va(fb) {\n        if (((ga[fb] && !z.custom_subsection_menu))) {\n            ab(fb);\n        }\n         else xa();\n    ;\n    ;\n        q.adjustStickyHeaderWidth();\n    };\n;\n    function wa(fb, gb) {\n        var hb = gb.key;\n        if (ha[hb]) {\n            bb(hb);\n            va(hb);\n        }\n    ;\n    ;\n    };\n;\n    function xa() {\n        ba.hideItem(ea);\n    };\n;\n    function ya(fb) {\n        var gb = fb.split(\"_\");\n        return qa[((gb.pop() - 1))];\n    };\n;\n    function za(fb) {\n        var gb = fa[fb], hb = ga[fb];\n        if (((!gb && hb))) {\n            gb = fa[fb] = ea.cloneNode(true);\n            var ib = k.scry(gb, \"li.activityLog a\")[0];\n            if (ib) {\n                ib.href = s(ib.href).addQueryData({\n                    key: fb\n                });\n            }\n        ;\n        ;\n            var jb = q.getCurrentScrubber();\n            if (hb.length) {\n                j.show(k.JSBNG__find(gb, \"li.separator\"));\n            }\n        ;\n        ;\n            for (var kb = 0; ((kb < hb.length)); kb++) {\n                var lb = hb[kb].scrubberKey, mb = ((jb ? jb.getLabelForSubnav(hb[kb].parentKey, lb) : mb = ya(lb)));\n                if (mb) {\n                    cb(gb, {\n                        key: lb,\n                        label: mb\n                    });\n                }\n            ;\n            ;\n            };\n        ;\n            pa.addSubscriptions(m.listen(gb, \"change\", ta.curry(fb, gb)), g.listen(gb, \"click\", sa));\n        }\n    ;\n    ;\n        return gb;\n    };\n;\n    function ab(fb) {\n        var gb = za(fb);\n        k.insertAfter(ea, gb);\n        j.hide(ea);\n        {\n            var fin286keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin286i = (0);\n            var hb;\n            for (; (fin286i < fin286keys.length); (fin286i++)) {\n                ((hb) = (fin286keys[fin286i]));\n                {\n                    var ib = fa[hb];\n                    j.conditionShow(ib, ((ib === gb)));\n                };\n            };\n        };\n    ;\n        ba.showItem(ea);\n    };\n;\n    function bb(fb) {\n        ga[fb] = r.get(fb).subSections;\n    };\n;\n    function cb(fb, gb) {\n        var hb = k.create(\"a\", {\n            href: \"#\",\n            rel: \"ignore\",\n            className: \"itemAnchor\",\n            tabIndex: 0\n        }, k.create(\"span\", {\n            className: \"itemLabel fsm\"\n        }, gb.label));\n        hb.setAttribute(\"data-key\", gb.key);\n        hb.setAttribute(\"aria-checked\", false);\n        var ib = k.create(\"li\", {\n            className: \"uiMenuItem uiMenuItemRadio uiSelectorOption\"\n        }, hb);\n        ib.setAttribute(\"data-label\", gb.label);\n        var jb = k.JSBNG__find(fb, \"ul.uiMenuInner\"), kb = k.create(\"option\", {\n            value: gb.key\n        }, gb.label), lb = k.JSBNG__find(fb, \"select\");\n        if (((gb.key === \"recent\"))) {\n            k.prependContent(jb, ib);\n            k.insertAfter(lb.options[0], kb);\n        }\n         else {\n            k.appendContent(jb, ib);\n            k.appendContent(lb, kb);\n        }\n    ;\n    ;\n    };\n;\n    function db(fb, gb) {\n        var hb = k.scry(fb, \"li.uiMenuItem\");\n        if (!hb) {\n            return;\n        }\n    ;\n    ;\n        for (var ib = 0; ((ib < hb.length)); ib++) {\n            var jb = hb[ib];\n            if (((j.hasClass(jb, gb) || ((jb.firstChild.getAttribute(\"data-key\") == gb))))) {\n                k.remove(jb);\n                break;\n            }\n        ;\n        ;\n        };\n    ;\n        var kb = k.JSBNG__find(fb, \"select\"), lb = k.scry(kb, \"option\");\n        for (ib = 0; ((ib < lb.length)); ib++) {\n            if (((lb[ib].value === gb))) {\n                k.remove(lb[ib]);\n                return;\n            }\n        ;\n        ;\n        };\n    ;\n    };\n;\n    var eb = {\n        init: function(fb, gb) {\n            if (x) {\n                return;\n            }\n        ;\n        ;\n            x = true;\n            y = fb;\n            z = ((gb || {\n            }));\n            ca = k.JSBNG__find(y, \"div.pageMenu\");\n            da = k.JSBNG__find(y, \"div.sectionMenu\");\n            ea = k.JSBNG__find(y, \"div.subsectionMenu\");\n            ia = k.JSBNG__find(ca, \"li.uiMenuSeparator\");\n            ba = i.getInstance(ca);\n            pa = new o();\n            fa = {\n            };\n            ga = {\n            };\n            ha = {\n            };\n            eb.adjustMenuHeights();\n            ra();\n            q.register(q.STICKY_HEADER_NAV, eb);\n            oa.forEach(function(hb) {\n                hb();\n            });\n        },\n        reset: function() {\n            x = false;\n            z = {\n            };\n            la = [];\n            ja = {\n            };\n            ka = {\n            };\n            ma = false;\n            na = [];\n            y = null;\n            ca = null;\n            da = null;\n            ea = null;\n            ia = null;\n            fa = {\n            };\n            ga = {\n            };\n            ha = {\n            };\n            pa.release();\n        },\n        addTimePeriod: function(fb) {\n            var gb = q.getCurrentScrubber();\n            if (!gb) {\n                return;\n            }\n        ;\n        ;\n            var hb = gb.getLabelForNav(fb);\n            if (!hb) {\n                return;\n            }\n        ;\n        ;\n            cb(da, {\n                key: fb,\n                label: hb\n            });\n            var ib = k.JSBNG__find(da, \"ul.uiMenuInner\");\n            if (((((fb === \"recent\")) || ((ib.children.length < 2))))) {\n                m.setSelected(da, fb, true);\n            }\n        ;\n        ;\n        },\n        updateSection: function(fb, gb) {\n            if (gb) {\n                var hb = za(fb);\n                if (hb) {\n                    m.setSelected(hb, gb);\n                    ua(hb);\n                }\n                 else aa = fb;\n            ;\n            ;\n            }\n             else {\n                ha[fb] = true;\n                bb(fb);\n            }\n        ;\n        ;\n            m.setSelected(da, fb, true);\n            va(fb);\n        },\n        adjustMenuHeights: function() {\n            if (((t.ie() <= 7))) {\n                return;\n            }\n        ;\n        ;\n            [ca,da,].forEach(function(fb) {\n                var gb = \"\";\n                if (!j.hasClass(JSBNG__document.documentElement, \"tinyViewport\")) {\n                    gb = ((((u.getViewportDimensions().y - u.getElementDimensions(v(\"blueBar\")).y)) - 80));\n                    gb += \"px\";\n                }\n            ;\n            ;\n                n.set(k.JSBNG__find(fb, \"ul.uiMenuInner\"), \"maxHeight\", gb);\n            });\n        },\n        initPageMenu: function(fb, gb) {\n            if (!x) {\n                oa.push(eb.initPageMenu.curry(fb, gb));\n                return;\n            }\n        ;\n        ;\n            function hb(ib, jb) {\n                ib.forEach(function(kb) {\n                    var lb = ka[kb] = k.create(\"li\");\n                    j.hide(lb);\n                    ((jb ? k.insertBefore(ia, lb) : k.appendContent(k.JSBNG__find(ca, \"ul.uiMenuInner\"), lb)));\n                });\n            };\n        ;\n            hb(fb, true);\n            hb(gb, false);\n            ja.info = k.scry(ca, \"li\")[0];\n            la = gb;\n            ma = true;\n            if (na.length) {\n                na.forEach(function(ib) {\n                    eb.registerPageMenuItem(ib.key, ib.item);\n                });\n            }\n        ;\n        ;\n        },\n        registerPageMenuItem: function(fb, gb) {\n            if (!ma) {\n                na.push({\n                    key: fb,\n                    item: gb\n                });\n                return;\n            }\n        ;\n        ;\n            if (ka[fb]) {\n                k.replace(ka[fb], gb);\n                ja[fb] = gb;\n                delete ka[fb];\n                if (((la.indexOf(fb) >= 0))) {\n                    j.show(ia);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        removeTimePeriod: function(fb) {\n            db(da, fb);\n        }\n    };\n    e.exports = eb;\n});\n__d(\"TimelineSpinelessComposer\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"Parent\",\"Run\",\"TimelineComposer\",\"TimelineComposerUtilities\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Parent\"), l = b(\"Run\"), m = b(\"TimelineComposer\"), n = b(\"TimelineComposerUtilities\"), o = b(\"csx\"), p = b(\"cx\"), q;\n    function r(w) {\n        if (((w.isScheduledPost || w.isOGPost))) {\n            return;\n        }\n    ;\n    ;\n        if (!w.streamStory) {\n            window.JSBNG__location.reload();\n            return;\n        }\n    ;\n    ;\n        if (w.backdatedTime) {\n            h.loadModules([\"TimelineStoryPublisher\",], function(x) {\n                x.publish(w);\n            });\n            return;\n        }\n    ;\n    ;\n        m.renderCapsuleBasedStory(q, w.streamStory);\n    };\n;\n    function s() {\n        return j.JSBNG__find(k.byClass(q, \"fbTimelineComposerCapsule\"), \"div._4s3\");\n    };\n;\n    function t(w) {\n        var x = u();\n        i.show(x);\n        var y = w.subscribe(\"hide\", function() {\n            i.hide(x);\n            w.unsubscribe(y);\n        });\n    };\n;\n    function u() {\n        var w = k.byClass(q, \"fbTimelineComposerCapsule\"), x = j.scry(w, \"div.composerVeil\");\n        if (((x.length !== 1))) {\n            x = j.appendContent(w, j.create(\"div\", {\n                className: \"composerVeil hidden_elem\"\n            }));\n        }\n    ;\n    ;\n        return x[0];\n    };\n;\n    var v = {\n        init: function(w) {\n            q = w;\n            var x = g.subscribe(\"composer/publish\", function(JSBNG__event, y) {\n                if (((y.composer_id === q.id))) {\n                    r(y);\n                }\n            ;\n            ;\n            });\n            l.onLeave(x.unsubscribe.bind(x));\n            if (i.hasClass(q, \"_mj\")) {\n                n.hidePlaceIfAttachmentsTooTall(q);\n            }\n             else n.hidePlaceIfAttachmentsTooTallOld(q);\n        ;\n        ;\n        },\n        showMLEFlyout: function(w) {\n            w.setContext(s()).show();\n            t(w);\n        }\n    };\n    e.exports = v;\n});\n__d(\"TimelineScrubber\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"Focus\",\"Keys\",\"Parent\",\"TimelineController\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Focus\"), k = b(\"Keys\"), l = b(\"Parent\"), m = b(\"TimelineController\"), n = b(\"Vector\"), o = b(\"copyProperties\");\n    function p(q) {\n        this._root = q;\n        this._navKeys = {\n        };\n        this._subNavKeys = {\n        };\n        this._rollups = {\n        };\n        this._rolledup = {\n        };\n        var r = q.childNodes;\n        this._currentNav = r[0];\n        for (var s = 0; ((s < r.length)); s++) {\n            var t = r[s].getAttribute(\"data-key\");\n            this._navKeys[t] = r[s];\n            var u = i.scry(r[s], \"ul\");\n            this._subNavKeys[t] = {\n            };\n            if (u.length) {\n                var v = u[0].childNodes;\n                for (var w = 0; ((w < v.length)); w++) {\n                    this._subNavKeys[t][v[w].getAttribute(\"data-key\")] = v[w];\n                ;\n                };\n            ;\n            }\n        ;\n        ;\n            var x = r[s].getAttribute(\"data-rollup\");\n            if (x) {\n                this._rollups[x] = ((this._rollups[x] || []));\n                this._rollups[x].push(r[s]);\n            }\n        ;\n        ;\n        };\n    ;\n        this._clickListener = g.listen(this._root, \"click\", this._handleScrub.bind(this));\n        this._focusHandler = g.listen(this._root, \"keydown\", this._moveFocus.bind(this));\n        this._tabbableElement = i.scry(this._root, \"a\")[0];\n        h.show(this._root);\n        var y = ((n.getViewportDimensions().y - this.SCRUBBER_NO_ADS_VERTICAL_BUFFER)), z = this.getHeight();\n        if (((z > y))) {\n            this.fold(((z - y)));\n        }\n    ;\n    ;\n        m.register(m.SCRUBBER, this);\n        m.scrubberHasLoaded(this);\n    };\n;\n    o(p.prototype, {\n        KEY_HEIGHT: 23,\n        SUBKEY_HEIGHT: 16,\n        OFFSET: 38,\n        SCRUBBER_NO_ADS_VERTICAL_BUFFER: 125,\n        reset: function() {\n            this._root = null;\n            this._navKeys = {\n            };\n            this._subNavKeys = {\n            };\n            this._rollups = {\n            };\n            this._rolledup = {\n            };\n        },\n        getRoot: function() {\n            return this._root;\n        },\n        getNav: function(q) {\n            return this._navKeys[q];\n        },\n        getSubnav: function(q, r) {\n            return this._subNavKeys[q][r];\n        },\n        getHeight: function() {\n            return this._root.offsetHeight;\n        },\n        getLabelForNav: function(q) {\n            var r = this.getNav(q);\n            return ((r && i.getText(i.scry(r, \"a\")[0])));\n        },\n        getLabelForSubnav: function(q, r) {\n            var s = this.getSubnav(q, r);\n            return ((s && i.getText(i.scry(s, \"a\")[0])));\n        },\n        fold: function(q) {\n            return this._adjustFolding(q, true);\n        },\n        unfold: function(q) {\n            return this._adjustFolding(q, false);\n        },\n        getOffset: function() {\n            return ((((this.OFFSET + ((h.hasClass(JSBNG__document.body, \"hasVoiceBar\") ? 26 : 0)))) + ((h.hasClass(\"rightColContent\", \"pagesTimelineRightColumn\") ? 48 : 0))));\n        },\n        updateSection: function(q, r) {\n            if (!this._navKeys[q]) {\n                return;\n            }\n        ;\n        ;\n            var s = this._navKeys[q].getAttribute(\"data-rollup\");\n            if (((this._currentRollup && ((this._currentRollup != s))))) {\n                h.removeClass(this._currentRollup, \"selected\");\n                h.removeClass(i.scry(this._currentRollup, \"ul\")[0], \"loaded\");\n                delete this._currentRollup;\n            }\n        ;\n        ;\n            if (((s && this._rolledup[s]))) {\n                var t = this._rolledup[s];\n                if (t.getAttribute(\"data-rollup\")) {\n                    this._currentRollup = t;\n                    h.addClass(this._currentRollup, \"selected\");\n                    h.addClass(i.scry(this._currentRollup, \"ul\")[0], \"loaded\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            ((this._currentNav && h.removeClass(this._currentNav, \"selected\")));\n            ((this._currentSubNav && h.removeClass(this._currentSubNav, \"selected\")));\n            this._currentNav = null;\n            this._currentSubNav = null;\n            if (this._navKeys[q]) {\n                this._currentNav = this._navKeys[q];\n                h.addClass(this._currentNav, \"selected\");\n                if (((this.decadesAreSelectable && this._navKeys[r]))) {\n                    this._currentSubNav = this._navKeys[r];\n                    h.addClass(this._currentSubNav, \"selected\");\n                }\n                 else if (((r && this._subNavKeys[q][r]))) {\n                    this._currentSubNav = this._subNavKeys[q][r];\n                    h.addClass(this._currentSubNav, \"selected\");\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        _getRollupSize: function(q) {\n            var r = this._currentNav, s = ((r && r.getAttribute(\"data-rollup\"))), t = ((this.KEY_HEIGHT * ((this._rollups[q].length - 1))));\n            if (((q == s))) {\n                t += ((this.SUBKEY_HEIGHT * i.scry(r, \"li\").length));\n                t -= ((this.SUBKEY_HEIGHT * ((this._rollups[q].length - 1))));\n            }\n        ;\n        ;\n            return t;\n        },\n        _adjustFolding: function(q, r) {\n            var s = q, t = Object.keys(this._rollups);\n            while (((((q > 0)) && t.length))) {\n                var u = t[((r ? \"pop\" : \"shift\"))]();\n                if (((!r == !this._rolledup[u]))) {\n                    continue;\n                }\n            ;\n            ;\n                var v = this._getRollupSize(u);\n                if (((v <= 0))) {\n                    continue;\n                }\n            ;\n            ;\n                if (((!r && ((v > q))))) {\n                    break;\n                }\n            ;\n            ;\n                this[((r ? \"_collapseRollup\" : \"_expandRollup\"))](u);\n                q -= v;\n            };\n        ;\n            return ((s - q));\n        },\n        _collapseRollup: function(q) {\n            var r = this._rollups[q];\n            if (((((!r || ((r.length < 2)))) || this._rolledup[q]))) {\n                return;\n            }\n        ;\n        ;\n            var s = r[0].previousSibling, t = r[0], u = i.create(\"a\", {\n                href: t.firstChild.href,\n                rel: \"ignore\",\n                tabindex: \"-1\"\n            }, [q,]), v = i.create(\"ul\", {\n                className: \"clearfix\"\n            });\n            for (var w = 0; ((w < r.length)); w++) {\n                v.appendChild(r[w]);\n            ;\n            };\n        ;\n            var x = i.create(\"li\", null, [u,v,]);\n            if (this.decadesAreSelectable) {\n                var y = r[((r.length - 1))], z = ((t.getAttribute(\"data-key\") + y.getAttribute(\"data-key\")));\n                x.setAttribute(\"data-start\", y.getAttribute(\"data-start\"));\n                x.setAttribute(\"data-end\", t.getAttribute(\"data-end\"));\n                x.setAttribute(\"data-key\", z);\n                this._navKeys[z] = x;\n            }\n             else x.setAttribute(\"data-key\", t.getAttribute(\"data-key\"));\n        ;\n        ;\n            x.setAttribute(\"data-rollup\", q);\n            if (s) {\n                i.insertAfter(s, x);\n            }\n             else i.prependContent(this._root, x);\n        ;\n        ;\n            this._rolledup[q] = x;\n            this._checkSelection();\n            this._ensureFocusableElementIsVisible();\n        },\n        _expandRollup: function(q) {\n            if (!this._rolledup[q]) {\n                return;\n            }\n        ;\n        ;\n            var r = this._rolledup[q], s = i.scry(r, \"ul\")[0], t = JSBNG__document.createDocumentFragment();\n            while (s.childNodes.length) {\n                t.appendChild(s.firstChild);\n            ;\n            };\n        ;\n            i.replace(r, t);\n            this._rolledup[q] = false;\n            this._checkSelection();\n        },\n        _checkSelection: function() {\n            if (this._currentNav) {\n                var q = ((this._currentSubNav && this._currentSubNav.getAttribute(\"data-key\")));\n                this.updateSection(this._currentNav.getAttribute(\"data-key\"), q);\n            }\n        ;\n        ;\n        },\n        _handleScrub: function(JSBNG__event) {\n            var q = JSBNG__event.getModifiers();\n            if (((((JSBNG__event.isMiddleClick() || q.access)) || q.meta))) {\n                return true;\n            }\n        ;\n        ;\n            var r = l.byTag(JSBNG__event.getTarget(), \"a\"), s = ((r && l.byAttribute(r, \"data-key\")));\n            if (s) {\n                m.scrubberWasClicked(s.getAttribute(\"data-key\"));\n                m.navigateToSection(s.getAttribute(\"data-key\"));\n                return JSBNG__event.prevent();\n            }\n        ;\n        ;\n        },\n        _ensureFocusableElementIsVisible: function() {\n            while (!((this._tabbableElement.offsetHeight || this._tabbableElement.offsetWidth))) {\n                this._tabbableElement.tabIndex = -1;\n                var q = l.byTag(l.byTag(this._tabbableElement, \"li\"), \"li\");\n                this._tabbableElement = i.scry(q, \"a\")[0];\n                this._tabbableElement.tabIndex = 0;\n            };\n        ;\n        },\n        _moveFocus: function(JSBNG__event) {\n            if (JSBNG__event.getModifiers().any) {\n                return;\n            }\n        ;\n        ;\n            var q = g.getKeyCode(JSBNG__event);\n            if (((((q === k.UP)) || ((q === k.DOWN))))) {\n                var r = i.scry(this._root, \"a\").filter(function(u) {\n                    return ((u.offsetHeight || u.offsetWidth));\n                }), s = r.indexOf(this._tabbableElement);\n                if (((s != -1))) {\n                    var t = r[((s + ((((q === k.UP)) ? -1 : 1))))];\n                    if (t) {\n                        t.tabindex = 0;\n                        j.set(t);\n                        this._tabbableElement.tabindex = -1;\n                        this._tabbableElement = t;\n                        JSBNG__event.prevent();\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = p;\n});\n__d(\"TimelineMainScrubber\", [\"Arbiter\",\"Class\",\"CSS\",\"DOMQuery\",\"TimelineConstants\",\"TimelineController\",\"TimelineScrubber\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"Arbiter\"), h = b(\"Class\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"TimelineConstants\"), l = b(\"TimelineController\"), m = b(\"TimelineScrubber\"), n = b(\"copyProperties\");\n    function o(p) {\n        this.parent.construct(this, p);\n        this._subscribe = g.subscribe(k.SECTION_LOADED, function(q, r) {\n            var s = this._navKeys[r.key], t = ((s && j.scry(s, \"ul\")[0]));\n            if (t) {\n                i.addClass(t, \"loaded\");\n                l.scrubberHasChangedState();\n                if (r.hideSubSections) {\n                    i.hide(t);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        }.bind(this));\n    };\n;\n    h.extend(o, m);\n    n(o.prototype, {\n        reset: function() {\n            this.parent.reset();\n            ((this._subscribe && this._subscribe.unsubscribe()));\n        }\n    });\n    e.exports = o;\n});\n__d(\"legacy:TimelineMainScrubber\", [\"TimelineMainScrubber\",], function(a, b, c, d) {\n    a.TimelineMainScrubber = b(\"TimelineMainScrubber\");\n}, 3);\n__d(\"legacy:TimelineCover\", [\"TimelineCover\",], function(a, b, c, d) {\n    a.TimelineCover = b(\"TimelineCover\");\n}, 3);\n__d(\"legacy:ui-scrolling-pager-js\", [\"ScrollingPager\",], function(a, b, c, d) {\n    a.ScrollingPager = b(\"ScrollingPager\");\n}, 3);\n__d(\"legacy:LegacyContextualDialog\", [\"LegacyContextualDialog\",], function(a, b, c, d) {\n    a.LegacyContextualDialog = b(\"LegacyContextualDialog\");\n}, 3);\n__d(\"ButtonGroupMonitor\", [\"ContextualDialog\",\"ContextualLayer\",\"CSS\",\"Layer\",\"Parent\",\"SelectorDeprecated\",], function(a, b, c, d, e, f) {\n    var g = b(\"ContextualDialog\"), h = b(\"ContextualLayer\"), i = b(\"CSS\"), j = b(\"Layer\"), k = b(\"Parent\"), l = b(\"SelectorDeprecated\");\n    function m(n) {\n        var o = ((k.byClass(n, \"bg_stat_elem\") || k.byClass(n, \"uiButtonGroup\")));\n        ((o && i.toggleClass(o, \"uiButtonGroupActive\")));\n    };\n;\n    j.subscribe([\"hide\",\"show\",], function(n, o) {\n        if (((((o instanceof h)) || ((o instanceof g))))) {\n            m(o.getCausalElement());\n        }\n    ;\n    ;\n    });\n    l.subscribe([\"close\",\"open\",], function(n, o) {\n        m(o.selector);\n    });\n});\n__d(\"SubMenu\", [\"JSBNG__Event\",\"Arbiter\",\"copyProperties\",\"CSS\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"copyProperties\"), j = b(\"CSS\");\n    function k() {\n    \n    };\n;\n    i(k.prototype, {\n        _subMenu: null,\n        _mainMenu: null,\n        _forward: null,\n        _backward: null,\n        init: function(l, m, n, o) {\n            this._subMenu = l;\n            this._mainMenu = m;\n            this._forward = n;\n            this._backward = o;\n            h.subscribe(\"SubMenu/Reset\", this._goToMainMenu.bind(this));\n            g.listen(n, \"click\", this._goToSubMenu.bind(this));\n            g.listen(o, \"click\", this._goToMainMenu.bind(this));\n        },\n        initAsyncChildMenu: function(l) {\n            g.listen(this._forward, \"click\", function() {\n                this._goToSubMenu();\n                l.load();\n            }.bind(this));\n        },\n        _goToMainMenu: function() {\n            j.hide(this._subMenu);\n            j.show(this._mainMenu);\n        },\n        _goToSubMenu: function() {\n            j.hide(this._mainMenu);\n            j.show(this._subMenu);\n        }\n    });\n    e.exports = k;\n});\n__d(\"legacy:ui-submenu\", [\"SubMenu\",], function(a, b, c, d) {\n    a.SubMenu = b(\"SubMenu\");\n}, 3);\n__d(\"AsyncMenu\", [\"AsyncRequest\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j(k, l) {\n        this._uri = k;\n        this._elem = l;\n    };\n;\n    h(j.prototype, {\n        _uri: null,\n        _elem: null,\n        load: function() {\n            this.load = i;\n            g.bootstrap(this._uri, this._elem);\n        }\n    });\n    e.exports = j;\n});");
36727 // 19829
36728 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o14,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yJ/r/QYljgrU-Eo8.js",o77);
36729 // undefined
36730 o14 = null;
36731 // undefined
36732 o77 = null;
36733 // 20728
36734 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"if (self.CavalryLogger) {\n    CavalryLogger.start_js([\"+h1d2\",]);\n}\n;\n__d(\"ImageUtils\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\"), h = {\n        hasLoaded: function(i) {\n            if ((i.naturalWidth !== undefined)) {\n                return (i.complete && (i.width !== 0));\n            }\n             else if ((((i.height == 20) && (i.width == 20)) && i.complete)) {\n                return false;\n            }\n             else if (((i.complete === undefined) && (g.webkit() < 500))) {\n                var j = new Image();\n                j.src = i.src;\n                return j.complete;\n            }\n            \n            \n        ;\n            return i.complete;\n        }\n    };\n    e.exports = h;\n});\n__d(\"PhotoEverstoreLogger\", [\"Event\",\"AsyncRequest\",\"copyProperties\",\"ImageUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\"), j = b(\"ImageUtils\"), k = {\n        BATCH_WINDOW_MS: 500,\n        storedLog: []\n    };\n    function l() {\n    \n    };\n    i(l, {\n        _log: function(n) {\n            k.storedLog.push(n);\n            if ((k.storedLog.length == 1)) {\n                setTimeout(m, k.BATCH_WINDOW_MS, false);\n            };\n        },\n        logImmediately: function(n) {\n            l._log(n);\n        },\n        registerForLogging: function(n) {\n            if (j.hasLoaded(n)) {\n                l._log(n.src);\n            }\n             else g.listen(n, \"load\", function(event) {\n                l._log(n.src);\n            });\n        ;\n        }\n    });\n    function m() {\n        var n = k.storedLog;\n        k.storedLog = [];\n        var o = JSON.stringify(n);\n        new h().setURI(\"/ajax/photos/logging/everstore_logging.php\").setData({\n            loggedUrls: o\n        }).setMethod(\"POST\").setOption(\"suppressErrorHandlerWarning\", true).setOption(\"suppressErrorAlerts\", true).send();\n    };\n    e.exports = l;\n});\n__d(\"PhotoSessionLog\", [\"AsyncRequest\",\"Run\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Run\"), i = b(\"Vector\"), j = b(\"copyProperties\");\n    function k() {\n    \n    };\n    j(k, {\n        UNKNOWN: 0,\n        ESC: 1,\n        X: 2,\n        OUTSIDE: 3,\n        UNLOAD: 4,\n        NAVIGATE: 5,\n        AGGREGATE: 6,\n        LEAVE: 7,\n        PERMALINK: 0,\n        SNOWLIFT: 6,\n        AGGREGATION_COUNT: 20,\n        set: null,\n        time: null,\n        views: 0,\n        fbidList: [],\n        details: {\n        },\n        width: 0,\n        height: 0,\n        first: false,\n        last: false,\n        logIds: false,\n        version: null,\n        source: null,\n        buttonLikes: 0,\n        pagingAction: \"\",\n        faceTagImpressions: 0,\n        cycle: false,\n        endOfRelevant: false,\n        relevantCount: 0,\n        initLogging: function(l) {\n            this.set = null;\n            this.time = new Date();\n            this.views = 0;\n            this.hiResLoads = 0;\n            this.fullScreenViews = {\n            };\n            this.first = true;\n            this.last = false;\n            this.logIds = false;\n            this.version = l;\n            this.buttonLikes = 0;\n            this.pagingAction = \"\";\n            this.faceTagImpressions = 0;\n            this.cycle = false;\n            this.endOfRelevant = false;\n            this.relevantCount = 0;\n            if ((l === k.SNOWLIFT)) {\n                var m = i.getViewportDimensions();\n                this.width = m.x;\n                this.height = m.y;\n            }\n        ;\n        },\n        setLogFbids: function(l) {\n            this.logIds = l;\n        },\n        setPhotoSet: function(l) {\n            this.set = l;\n        },\n        addButtonLike: function() {\n            this.buttonLikes++;\n        },\n        setPagingAction: function(l) {\n            this.pagingAction = l;\n        },\n        addFaceTagImpression: function() {\n            this.faceTagImpressions++;\n        },\n        setCycle: function(l) {\n            this.cycle = l;\n        },\n        setEndOfRelevant: function(l) {\n            this.endOfRelevant = l;\n        },\n        setRelevantCount: function(l) {\n            this.relevantCount = l;\n        },\n        setEndMetrics: function(l) {\n            this.endMetrics = l;\n        },\n        setSource: function(l) {\n            this.source = l;\n        },\n        addPhotoView: function(l, m, n) {\n            if ((this.logIds && (this.views >= this.AGGREGATION_COUNT))) {\n                this.logPhotoViews(this.AGGREGATE);\n            };\n            this.views++;\n            if (l) {\n                this.fbidList.push([l.fbid,l.owner,Date.now(),]);\n            };\n            if (m) {\n                this.hiResLoads++;\n            };\n            if (n) {\n                this.fullScreenViews[l.fbid] = true;\n            };\n        },\n        logEnterFullScreen: function(l) {\n            this.fullScreenViews[l] = true;\n        },\n        addDetailData: function(l, m) {\n            if (!this.details[l]) {\n                this.details[l] = {\n                    t: m.num_tags,\n                    l: m.has_location,\n                    c: m.has_caption,\n                    cm: m.comment_count,\n                    lk: m.like_count,\n                    w: m.width,\n                    h: m.height,\n                    ad: \"{}\",\n                    p: this.pagingAction\n                };\n            };\n        },\n        updateAdData: function(l, m) {\n            if (this.details[l]) {\n                this.details[l].ad = JSON.stringify(m);\n            };\n        },\n        logPhotoViews: function(l) {\n            if (((!this.views) || (((this.version === k.SNOWLIFT) && (l == k.LEAVE))))) {\n                return\n            };\n            if ((l != this.AGGREGATE)) {\n                this.last = true;\n            };\n            var m = {\n                set: this.set,\n                time: (new Date() - this.time),\n                fbids: (this.logIds ? this.fbidList : []),\n                details: (this.logIds ? this.details : {\n                }),\n                first: this.first,\n                last: this.last,\n                close: (l ? l : this.UNKNOWN),\n                button_likes: this.buttonLikes,\n                version: this.version,\n                face_imp: this.faceTagImpressions,\n                endmetric: this.endMetrics,\n                cycle: this.cycle,\n                end_relev: this.endOfRelevant,\n                relev_count: this.relevantCount,\n                source: this.source\n            };\n            if ((this.version === k.SNOWLIFT)) {\n                var n = i.getViewportDimensions();\n                m.width = (n.x || this.width);\n                m.height = (n.y || this.height);\n                if ((this.hiResLoads > 0)) {\n                    m.hires_loads = this.hiResLoads;\n                };\n                if (this.last) {\n                    var o = Object.keys(this.fullScreenViews).length;\n                    if ((o > 0)) {\n                        m.fullscreen = o;\n                    };\n                }\n            ;\n            }\n        ;\n            new g().setURI(\"/ajax/photos/logging/session_logging.php\").setAllowCrossPageTransition(true).setOption(\"asynchronous\", ((l != k.UNLOAD))).setOption(\"suppressErrorHandlerWarning\", true).setData(m).send();\n            this.views = 0;\n            this.hiResLoads = 0;\n            this.fbidList = [];\n            this.details = {\n            };\n            this.first = false;\n            this.buttonLikes = 0;\n            if (this.last) {\n                this.set = null;\n                this.logIds = false;\n                this.fullScreenViews = {\n                };\n            }\n        ;\n        }\n    });\n    h.onUnload(function() {\n        k.logPhotoViews(k.UNLOAD);\n    });\n    h.onLeave(function() {\n        k.logPhotoViews(k.LEAVE);\n    });\n    e.exports = k;\n});\n__d(\"PhotoViewerImage\", [\"PhotoEverstoreLogger\",\"URI\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"PhotoEverstoreLogger\"), h = b(\"URI\"), i = b(\"Vector\"), j = b(\"copyProperties\");\n    function k(l) {\n        this._hiResDimensions = (l.hiResDimensions && i.deserialize(l.hiResDimensions));\n        this._normalDimensions = (l.normalDimensions && i.deserialize(l.normalDimensions));\n        this._info = l.info;\n        this._video = l.video;\n        this._shouldLog = l.everstoreLogThis;\n        this._hiResSrc = l.hiResSrc;\n        this._normalSrc = l.normalSrc;\n        this._thumbSrc = l.thumbSrc;\n        this._isInverted = false;\n        this._data = l;\n    };\n    j(k.prototype, {\n        getURIString: function() {\n            return h(this._info.permalink).getUnqualifiedURI().toString();\n        },\n        hasHiResDimensions: function() {\n            return !!this._hiResDimensions;\n        },\n        getHiResDimensions: function() {\n            return this._hiResDimensions;\n        },\n        getNormalDimensions: function() {\n            return this._normalDimensions;\n        },\n        getHiResSrc: function() {\n            return this._hiResSrc;\n        },\n        getNormalSrc: function() {\n            return this._normalSrc;\n        },\n        getThumbSrc: function() {\n            return this._thumbSrc;\n        },\n        getInfo: function() {\n            return this._info;\n        },\n        getPermalink: function() {\n            return this._info.permalink;\n        },\n        getHighestResSrc: function() {\n            return (this._hiResSrc || this._normalSrc);\n        },\n        preload: function(l) {\n            if (this.getHighestResSrc()) {\n                if ((l && !this._resource)) {\n                    this._resource = new Image();\n                    this._resource.src = this.getHighestResSrc();\n                    if (this._shouldLog) {\n                        g.logImmediately(this._resource.src);\n                    };\n                }\n                 else if ((!l && !this._small)) {\n                    this._small = new Image();\n                    this._small.src = (this._normalSrc || this._hiResSrc);\n                    if (this._shouldLog) {\n                        g.logImmediately(this._small.src);\n                    };\n                }\n                \n            \n            };\n        },\n        setDimensions: function(l, m) {\n            this.widthRatio = (l / this._hiResDimensions.x);\n            this.heightRatio = (m / this._hiResDimensions.y);\n            this._hiResDimensions = this._hiResDimensions.mul(this.widthRatio, this.heightRatio);\n            this._normalDimensions = this._normalDimensions.mul(this.widthRatio, this.heightRatio);\n        },\n        invertDimensions: function() {\n            this._hiResDimensions = new i(this._hiResDimensions.y, this._hiResDimensions.x);\n            this._normalDimensions = new i(this._normalDimensions.y, this._normalDimensions.x);\n            this._isInverted = !this._isInverted;\n        },\n        copy: function() {\n            return new k(this._data);\n        }\n    });\n    e.exports = k;\n});\n__d(\"PhotosConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        VIEWER_PERMALINK: 0,\n        VIEWER_SNOWLIFT: 6,\n        VIEWER_VAULTBOX: 8,\n        BULK_EDITOR: 3,\n        FLASH_UPLOADER: 4,\n        HTML5_UPLOADER: 10,\n        SIZE_NORMAL: \"n\",\n        PIC_NORMAL_FBX_SIZE: 180\n    };\n    e.exports = g;\n});\n__d(\"PhotosUtils\", [\"copyProperties\",\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"Vector\");\n    function i() {\n    \n    };\n    g(i, {\n        getNearestBox: function(j, k) {\n            var l = Infinity, m = null;\n            for (var n in j) {\n                var o = j[n];\n                if (o.contains(k)) {\n                    var p = k.distanceTo(o.getCenter());\n                    if ((p < l)) {\n                        l = p;\n                        m = n;\n                    }\n                ;\n                }\n            ;\n            };\n            return m;\n        },\n        absoluteToNormalizedPosition: function(j, k) {\n            var l = h.getElementPosition(j), m = h.getElementDimensions(j), n = k.sub(l).mul((100 / m.x), (100 / m.y));\n            n.domain = \"pure\";\n            return n;\n        },\n        normalizedToAbsolutePosition: function(j, k) {\n            var l = h.getElementPosition(j), m = h.getElementDimensions(j), n = k.mul((m.x / 100), (m.y / 100)).add(l);\n            n.domain = \"document\";\n            return n;\n        },\n        isFacebox: function(j) {\n            return j.match(/^face:/);\n        }\n    });\n    e.exports = i;\n});\n__d(\"PhotoStreamCache\", [\"DOM\",\"HTML\",\"PhotosConst\",\"PhotoEverstoreLogger\",\"PhotoViewerImage\",\"Rect\",\"UIPagelet\",\"URI\",\"Vector\",\"copyProperties\",\"createArrayFrom\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"HTML\"), i = b(\"PhotosConst\"), j = b(\"PhotoEverstoreLogger\"), k = b(\"PhotoViewerImage\"), l = b(\"Rect\"), m = b(\"UIPagelet\"), n = b(\"URI\"), o = b(\"Vector\"), p = b(\"copyProperties\"), q = b(\"createArrayFrom\"), r = b(\"ge\");\n    function s() {\n    \n    };\n    p(s, {\n        ERROR: \"error\",\n        HTML: \"html\",\n        IMAGE_DATA: \"image\",\n        EXTRA: \"extra\",\n        BUFFER_SIZE: 3,\n        INIT_BUCKET_SIZE: 4,\n        FULL_BUCKET_SIZE: 12,\n        ERROR_ID: -1,\n        INIT_PLACEHOLDER: 1\n    });\n    p(s.prototype, {\n        init: function(t, u, v) {\n            this.version = t;\n            this.pageletName = u;\n            this.pageletRootID = v;\n            this.bufferSize = s.BUFFER_SIZE;\n            this.fullBucketSize = s.FULL_BUCKET_SIZE;\n            this.initError = false;\n            this.isActive = true;\n            this.leftLock = false;\n            this.rightLock = false;\n            this.useAjaxPipe = true;\n            this.reset();\n        },\n        setUseAjaxPipe: function(t) {\n            this.useAjaxPipe = t;\n        },\n        reset: function() {\n            this.cache = {\n                image: {\n                },\n                extra: {\n                },\n                html: {\n                }\n            };\n            this.fbidList = [];\n            this.loaded = false;\n            this.allLoaded = false;\n            this.permalinkMap = {\n            };\n            this.position = 0;\n            this.totalCount = null;\n            this.firstCursor = null;\n            this.firstCursorIndex = null;\n        },\n        waitForInitData: function() {\n            this.fbidList.push(s.INIT_PLACEHOLDER);\n        },\n        destroy: function() {\n            this.reset();\n            this.isActive = false;\n        },\n        isLoaded: function() {\n            return this.loaded;\n        },\n        canPage: function() {\n            if (!this.isLoaded()) {\n                return false\n            };\n            if ((this.totalCount !== null)) {\n                return (this.totalCount > 1)\n            };\n            return (this.getLength() > 1);\n        },\n        errorInCurrent: function() {\n            if (this.initError) {\n                return true;\n            }\n             else if (!this.isLoaded()) {\n                return false\n            }\n        ;\n            return this.checkErrorAt(this.getCursor());\n        },\n        getLength: function() {\n            return this.fbidList.length;\n        },\n        getPhotoSet: function() {\n            return this.photoSetQuery.set;\n        },\n        getPhotoSetQuery: function() {\n            return this.photoSetQuery;\n        },\n        getCurrentImageData: function() {\n            return this.getImageData(this.getCursor());\n        },\n        getImageData: function(t) {\n            return this.getCacheContent(t, s.IMAGE_DATA);\n        },\n        getCurrentHtml: function() {\n            return this.getCacheContent(this.getCursor(), s.HTML);\n        },\n        getCurrentExtraData: function() {\n            return this.getCacheContent(this.getCursor(), s.EXTRA);\n        },\n        getCacheContent: function(t, u) {\n            if (((!t || (t === s.ERROR_ID)) || (t === s.INIT_PLACEHOLDER))) {\n                return null\n            };\n            return this.cache[u][t];\n        },\n        getCursorPos: function() {\n            return this.position;\n        },\n        getCursor: function() {\n            if (((this.position >= 0) && (this.position < this.getLength()))) {\n                return this.fbidList[this.position]\n            };\n            return null;\n        },\n        getCursorForURI: function(t) {\n            return this.permalinkMap[t];\n        },\n        calculatePositionForMovement: function(t) {\n            var u = (this.position + t);\n            if (this.allLoaded) {\n                var v = this.getLength();\n                u = (((v + (u % v))) % v);\n            }\n        ;\n            return u;\n        },\n        isValidMovement: function(t) {\n            if ((!this.isLoaded() || !this.canPage())) {\n                return false\n            };\n            var u = this.calculatePositionForMovement(t);\n            return ((this.getCursor() > 0) || (((u >= 0) && (u < this.getLength()))));\n        },\n        moveCursor: function(t) {\n            if (!this.isValidMovement(t)) {\n                return\n            };\n            this.position = this.calculatePositionForMovement(t);\n            if ((t !== 0)) {\n                this.loadMoreIfNeccessary((t > 0));\n            };\n        },\n        checkErrorAt: function(t) {\n            if (!this.isLoaded()) {\n                return false\n            };\n            if ((t === s.ERROR_ID)) {\n                return true\n            };\n            return false;\n        },\n        getRelativeMovement: function(t) {\n            for (var u = 0; (u < this.getLength()); u++) {\n                if ((this.fbidList[u] == t)) {\n                    return (u - this.position)\n                };\n            };\n            return null;\n        },\n        preloadImages: function(t) {\n            var u, v, w = this.getLength(), x = this.cache.image, y = s.BUFFER_SIZE;\n            if ((w > (y * 2))) {\n                u = ((((this.position + w) - (y % w))) % w);\n                v = (((this.position + y)) % w);\n            }\n             else {\n                u = 0;\n                v = (w - 1);\n            }\n        ;\n            while ((u != v)) {\n                var z = this.fbidList[u];\n                if ((this.version === i.VIEWER_VAULTBOX)) {\n                    (x[z] && x[z].preload(t));\n                }\n                 else if ((x[z] && x[z].url)) {\n                    if ((t && !x[z].resource)) {\n                        x[z].resource = new Image();\n                        x[z].resource.src = x[z].url;\n                        if ((x[z].everstoreLogThis === true)) {\n                            j.logImmediately(x[z].resource.src);\n                        };\n                    }\n                     else if ((!t && !x[z].small)) {\n                        x[z].small = new Image();\n                        x[z].small.src = (x[z].smallurl || x[z].url);\n                        if ((x[z].everstoreLogThis === true)) {\n                            j.logImmediately(x[z].small.src);\n                        };\n                    }\n                    \n                \n                }\n            ;\n                u = (((u + 1)) % w);\n            };\n        },\n        loadMoreIfNeccessary: function(t) {\n            if (((this.allLoaded || ((t && this.rightLock))) || ((!t && this.leftLock)))) {\n                return\n            };\n            var u = (t ? 1 : -1), v = (this.position + (this.bufferSize * u));\n            if (((v < 0) && !this.checkErrorAt(this.getEndCursor(false)))) {\n                this.leftLock = true;\n                this.fetch(this.fullBucketSize, false);\n            }\n             else if (((v > this.getLength()) && !this.checkErrorAt(this.getEndCursor(true)))) {\n                this.rightLock = true;\n                this.fetch(this.fullBucketSize, true);\n            }\n            \n        ;\n        },\n        getEndCursor: function(t) {\n            return (t ? this.fbidList[(this.getLength() - 1)] : this.fbidList[0]);\n        },\n        calculateRelativeIndex: function(t, u, v) {\n            if (!this.totalCount) {\n                return null\n            };\n            var w = this.fbidList.indexOf(u), x = this.fbidList.indexOf(v);\n            if (((w === -1) || (x === -1))) {\n                return null\n            };\n            var y = (x - w);\n            return ((((t + y) + this.totalCount)) % this.totalCount);\n        },\n        calculateDistance: function(t, u) {\n            var v = this.fbidList.indexOf(t), w = this.fbidList.indexOf(u);\n            if (((v === -1) || (w === -1))) {\n                return null\n            };\n            return ((((w - v) + this.getLength())) % this.getLength());\n        },\n        fetch: function(t, u) {\n            var v = this.getEndCursor(u), w = p({\n                cursor: v,\n                version: this.version,\n                end: this.getEndCursor(!u),\n                fetchSize: (u ? t : (-1 * t)),\n                relevant_count: this.relevantCount\n            }, this.photoSetQuery);\n            if ((this.totalCount && (this.firstCursorIndex !== null))) {\n                w.total = this.totalCount;\n                w.cursorIndex = this.calculateRelativeIndex(this.firstCursorIndex, this.firstCursor, v);\n            }\n        ;\n            var x = r(this.pageletRootID);\n            if (!x) {\n                x = g.create(\"div\", {\n                    id: this.pageletRootID\n                });\n                g.appendContent(document.body, x);\n            }\n        ;\n            m.loadFromEndpoint(this.pageletName, x, w, {\n                usePipe: this.useAjaxPipe,\n                automatic: true,\n                jsNonblock: true,\n                crossPage: true\n            });\n            if (!this.useAjaxPipe) {\n                this.setUseAjaxPipe(true);\n            };\n        },\n        storeToCache: function(t) {\n            var u = {\n            };\n            if (!this.isActive) {\n                return u\n            };\n            if ((\"error\" in t)) {\n                this.processErrorResult(t.error);\n                u.error = true;\n                return u;\n            }\n        ;\n            if ((\"init\" in t)) {\n                this.processInitResult(t.init);\n                u.init = {\n                    logids: t.init.logids,\n                    fbid: t.init.fbid,\n                    loggedin: t.init.loggedin,\n                    fromad: t.init.fromad,\n                    disablesessionads: t.init.disablesessionads,\n                    flashtags: t.init.flashtags\n                };\n            }\n        ;\n            if ((\"image\" in t)) {\n                this.processImageResult(t.image);\n                u.image = true;\n            }\n        ;\n            if ((\"data\" in t)) {\n                this.processDataResult(t.data);\n                u.data = true;\n            }\n        ;\n            return u;\n        },\n        processInitResult: function(t) {\n            if (this.loaded) {\n                return\n            };\n            this.loaded = true;\n            this.photoSetQuery = t.query;\n            if (t.bufferSize) {\n                this.bufferSize = t.bufferSize;\n            };\n            if (t.fullBucketSize) {\n                this.fullBucketSize = t.fullBucketSize;\n            };\n            if ((this.fbidList.length === 0)) {\n                this.fbidList.push(t.fbid);\n                this.rightLock = true;\n            }\n             else {\n                var u = this.fbidList.indexOf(s.INIT_PLACEHOLDER);\n                if ((u != -1)) {\n                    this.fbidList[u] = t.fbid;\n                };\n            }\n        ;\n            this.firstCursor = t.fbid;\n            if (((\"initIndex\" in t) && (\"totalCount\" in t))) {\n                this.firstCursorIndex = t.initIndex;\n                this.totalCount = t.totalCount;\n            }\n        ;\n            if ((this.version == i.VIEWER_PERMALINK)) {\n                this.fetch(s.INIT_BUCKET_SIZE, true);\n            };\n        },\n        processImageResult: function(t) {\n            for (var u in t) {\n                if (((u === this.firstCursor) && t[u].everstoreLogThis)) {\n                    j.logImmediately(t[u].url);\n                };\n                if ((this.version === i.VIEWER_VAULTBOX)) {\n                    var v = t[u];\n                    this.cache.image[u] = new k(v);\n                    this.permalinkMap[this.cache.image[u].getURIString()] = u;\n                }\n                 else {\n                    this.cache.image[u] = t[u];\n                    if (t[u].dimensions) {\n                        this.cache.image[u].dimensions = o.deserialize(t[u].dimensions);\n                    };\n                    if (t[u].smalldims) {\n                        this.cache.image[u].smalldims = o.deserialize(t[u].smalldims);\n                    };\n                    this.permalinkMap[n(t[u].info.permalink).getUnqualifiedURI().toString()] = u;\n                }\n            ;\n            };\n        },\n        attachToFbidsList: function(t, u, v) {\n            if (this.allLoaded) {\n                return\n            };\n            if ((u === -1)) {\n                for (var w = (t.length - 1); (w >= 0); w--) {\n                    this.fbidList.unshift(t[w]);\n                    this.position++;\n                };\n                this.leftLock = false;\n            }\n             else {\n                for (var x = 0; (x < t.length); x++) {\n                    this.fbidList.push(t[x]);;\n                };\n                this.rightLock = false;\n            }\n        ;\n            if (v) {\n                this.setAllLoaded();\n            };\n        },\n        setAllLoaded: function() {\n            this.allLoaded = true;\n            if ((this.getCursor() === null)) {\n                this.position = this.calculatePositionForMovement(0);\n            };\n        },\n        processDataResult: function(t) {\n            for (var u in t) {\n                if (!this.cache.html[u]) {\n                    this.cache.html[u] = {\n                    };\n                };\n                for (var v in t[u].html) {\n                    var w = t[u].html[v];\n                    if ((typeof w === \"string\")) {\n                        w = h(w).getRootNode();\n                    };\n                    this.cache.html[u][v] = q(w.childNodes);\n                };\n                if (!((\"extra\" in t[u]))) {\n                    this.cache.extra[u] = null;\n                    continue;\n                }\n            ;\n                this.cache.extra[u] = {\n                    tagRects: {\n                    }\n                };\n                if (!Array.isArray(t[u].extra.tagRects)) {\n                    for (var x in t[u].extra.tagRects) {\n                        if (t[u].extra.tagRects[x]) {\n                            this.cache.extra[u].tagRects[x] = l.deserialize(t[u].extra.tagRects[x]);\n                        };\n                    }\n                };\n                Object.keys(t[u].extra).forEach(function(y) {\n                    if ((y == \"tagRects\")) {\n                        return\n                    };\n                    this.cache.extra[u][y] = t[u].extra[y];\n                }.bind(this));\n            };\n        },\n        processErrorResult: function(t) {\n            if (!this.isLoaded()) {\n                this.initError = true;\n                return;\n            }\n        ;\n            var u = t.side, v = [s.ERROR_ID,];\n            this.attachToFbidsList(v, u);\n        },\n        setTotalCount: function(t) {\n            this.totalCount = t;\n        },\n        setFirstCursorIndex: function(t) {\n            this.firstCursorIndex = t;\n        }\n    });\n    e.exports = s;\n});\n__d(\"PhotoSnowliftAds\", [\"Event\",\"copyProperties\",\"CSS\",\"csx\",\"DataStore\",\"DOM\",\"PhotoSessionLog\",\"UIPagelet\",\"URI\",\"Vector\",\"extendArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"Event\"), h = b(\"copyProperties\"), i = b(\"CSS\"), j = b(\"csx\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"PhotoSessionLog\"), n = b(\"UIPagelet\"), o = b(\"URI\"), p = b(\"Vector\"), q = b(\"extendArray\"), r = {\n        DEFAULT_UNITS_REFRESH_RATE: 30000,\n        UNITS_REGISTER_DELAY: 1000,\n        root: null,\n        availableDimensions: null,\n        loadQuery: null,\n        lastLoadTime: 0,\n        minAds: 100,\n        units: null,\n        isLogAdData: null,\n        displayedCallback: null,\n        refreshUnitsRate: null,\n        position: null,\n        adsStatus: \"null\",\n        adsEvents: {\n        },\n        snowliftRedesign: false,\n        resetEvents: function() {\n            this.adsStatus = \"reset\";\n            this.adsEvents = {\n            };\n        },\n        addEvent: function(s, t) {\n            if (t) {\n                this.adsStatus = s;\n            };\n            var u = Date.now();\n            this.adsEvents[((s + \"_\") + u)] = u;\n        },\n        init: function(s, t, u, v) {\n            this.reset();\n            this.root = s;\n            this.snowlift = t;\n            this.minAds = u.min_ads;\n            this.displayedCallback = v;\n            this.addEvent(\"init\", true);\n            this.snowliftRedesign = u.snowlift_redesign;\n            this.refreshUnitsRate = r.DEFAULT_UNITS_REFRESH_RATE;\n            if (u.refresh_fast) {\n                this.refreshUnitsRate = u.refresh_rate;\n            };\n        },\n        reset: function() {\n            this.lastLoadTime = 0;\n            this.position = 0;\n            this.units = [];\n            this.resetEvents();\n            this.addEvent(\"reset\", true);\n        },\n        resize: function(s) {\n            this.availableDimensions = s;\n            this.loadQuery = this.snowlift.getLoadQuery();\n            this.processResize();\n        },\n        calculateUnitSizes: function(s, t, u) {\n            var v = {\n            };\n            s.forEach(function(w) {\n                var x = w.root.firstChild.offsetHeight;\n                w.units.forEach(function(z) {\n                    if ((!i.hasClass(z, \"hidden\") && !((this.getIsAds(z) && this.getIsHoldout(z))))) {\n                        var aa = this.getHeight(z.firstChild, t);\n                        x -= aa;\n                    }\n                ;\n                }.bind(this));\n                var y = {\n                    height: x,\n                    visible: false\n                };\n                w.units.forEach(function(z) {\n                    var aa = this.getIsAds(z), ba = this.getHeight(z.firstChild, t), ca = this.getUnitId(z), da = (aa && this.getIsHoldout(z));\n                    if ((da && u)) {\n                        return\n                    };\n                    v[ca] = {\n                        height: ba,\n                        visible: false,\n                        priority: 0,\n                        is_ads: aa,\n                        is_holdout: da,\n                        section_ref: y\n                    };\n                }.bind(this));\n            }.bind(this));\n            return v;\n        },\n        calculateVisibleUnits: function(s, t, u) {\n            var v = 0, w = this.getUnitPriority(t);\n            w.forEach(function(x) {\n                if (t.hasOwnProperty(x)) {\n                    var y = t[x], z = y.height;\n                    if (!y.section_ref.visible) {\n                        z += y.section_ref.height;\n                    };\n                    y.height_below = (u - z);\n                    y.visible = ((y.height_below >= 0) && (z > 0));\n                    if (y.visible) {\n                        y.section_ref.visible = true;\n                        u -= z;\n                        v++;\n                    }\n                ;\n                }\n            ;\n            }.bind(this));\n            return t;\n        },\n        displayUnits: function(s, t) {\n            s.forEach(function(u) {\n                var v = false, w = true;\n                u.units.forEach(function(x) {\n                    var y = this.getUnitId(x), z = t[y];\n                    if (!z) {\n                        return\n                    };\n                    var aa = z.visible, ba = z.height_below, ca = z.is_ads;\n                    i.conditionClass(x, \"hidden\", !aa);\n                    if (((ca && aa) && w)) {\n                        var da = l.find(x, \"div.ego_unit\");\n                        i.addClass(da, \"ego_unit_no_top_border\");\n                        w = false;\n                    }\n                ;\n                    v = (v || aa);\n                    this.calcUnitStats(this.units[ca][y], aa, ba);\n                }.bind(this));\n                i.conditionClass(u.root, \"hidden\", !v);\n            }.bind(this));\n        },\n        getUnitsDisplayed: function(s, t) {\n            var u = 0;\n            s.forEach(function(v) {\n                v.units.forEach(function(w) {\n                    var x = this.getUnitId(w), y = t[x];\n                    if ((!y || !y.visible)) {\n                        return\n                    };\n                    u++;\n                }.bind(this));\n            }.bind(this));\n            return u;\n        },\n        getHeightsRequired: function(s, t) {\n            var u = 0, v = [];\n            s.forEach(function(w) {\n                var x = false;\n                w.units.forEach(function(y) {\n                    var z = this.getUnitId(y), aa = t[z];\n                    if (!aa) {\n                        return\n                    };\n                    u += aa.height;\n                    if (!x) {\n                        u += aa.section_ref.height;\n                        x = true;\n                    }\n                ;\n                    v.push(u);\n                }.bind(this));\n            }.bind(this));\n            return v;\n        },\n        getUnitPriority: function(s) {\n            var t = [], u = 0, v = 0;\n            for (var w in s) {\n                var x = s[w];\n                t.push(w);\n                var y = ((this.minAds + u) + v);\n                if (x.is_ads) {\n                    if ((v < this.minAds)) {\n                        y = v;\n                    };\n                    v++;\n                }\n                 else u++;\n            ;\n                x.priority = y;\n            };\n            t = t.sort(function(z, aa) {\n                var ba = s[z], ca = s[aa];\n                return (ba.priority - ca.priority);\n            }.bind(this));\n            return t;\n        },\n        updateUnitsStatus: function() {\n            var s = this.availableDimensions.x, t = this.availableDimensions.y, u = this.calculateUnitSizes(this.sections, s);\n            u = this.calculateVisibleUnits(this.sections, u, t);\n            for (var v in u) {\n                if (!u.hasOwnProperty(v)) {\n                    continue;\n                };\n                var w = u[v];\n                if ((!w.is_holdout || !w.visible)) {\n                    continue;\n                };\n                var x = this.units[1][v];\n                this.calcUnitStats(x, w.visible, w.height_below);\n            };\n            u = this.calculateUnitSizes(this.sections, s, true);\n            u = this.calculateVisibleUnits(this.sections, u, t);\n            this.displayUnits(this.sections, u);\n            if (this.displayedCallback) {\n                var y = this.getUnitsDisplayed(this.sections, u), z = this.getHeightsRequired(this.sections, u);\n                this.displayedCallback(y, z);\n            }\n        ;\n        },\n        calcUnitStats: function(s, t, u) {\n            var v = Date.now();\n            if (s.visible) {\n                s.totalTime += (v - s.lastShowTime);\n            };\n            if (((s.trackingCode !== null) && (s.totalTime >= this.UNITS_REGISTER_DELAY))) {\n                var w = s.trackingCode;\n                s.trackingCode = null;\n                this.registerImpression(w, s.registerUrl);\n            }\n        ;\n            s.visible = t;\n            s.heightBelow = u;\n            s.lastShowTime = v;\n        },\n        prepareResize: function() {\n            var s = function(t) {\n                var u = l.create(\"div\", {\n                    className: \"inner\"\n                }), v = l.create(\"div\", {\n                    className: \"wrapper\"\n                }, u);\n                l.replace(t, v);\n                l.setContent(u, t);\n                return v;\n            };\n            this.sections = l.scry(this.root, \"div.ego_section\").map(function(t) {\n                return {\n                    root: s(t),\n                    units: l.scry(t, \"div.ego_unit\").map(s)\n                };\n            });\n        },\n        processResize: function() {\n            if (((this.isLoading || (this.lastLoadTime === 0)) || (this.availableDimensions === null))) {\n                this.setLogData();\n                return;\n            }\n        ;\n            this.updateUnitsStatus();\n            this.setLogData();\n            var s = this.nextRegisterTime();\n            if ((s !== Infinity)) {\n                this.processResize.bind(this).defer(s, true);\n            };\n        },\n        setIsLogAdData: function(s) {\n            this.isLogAdData = s;\n            this.addEvent(\"setIsLogAdData\", false);\n            this.setLogData();\n        },\n        setLogData: function() {\n            var s = this.snowlift.getImageId();\n            if ((this.isLogAdData && s)) {\n                var t = p.getElementDimensions(this.snowlift.getImage()), u = p.getElementDimensions(this.snowlift.getRHCHeader()), v = p.getElementDimensions(this.snowlift.getRHCBody()), w = p.getElementDimensions(this.snowlift.getRHCFooter()), x = {\n                    query_set: this.snowlift.getLoadQuery().set,\n                    window_x: window.innerWidth,\n                    window_y: window.innerHeight,\n                    image_x: t.x,\n                    image_y: t.y,\n                    header_x: u.x,\n                    header_y: u.y,\n                    body_x: v.x,\n                    body_y: v.y,\n                    footer_x: w.x,\n                    footer_y: w.y,\n                    ads_below_space: this.getAdsBelowSpace(),\n                    time: Date.now(),\n                    adsStatus: this.adsStatus,\n                    adsEvents: this.adsEvents,\n                    refreshRate: this.refreshUnitsRate,\n                    position: this.position\n                };\n                m.updateAdData(s, x);\n            }\n        ;\n        },\n        getAdsBelowSpace: function() {\n            var s = [], t = this.units[1];\n            for (var u in t) {\n                if ((t.hasOwnProperty(u) && !this.getIsHoldout(this.getAdUnit(u)))) {\n                    s.push(t[u].heightBelow);\n                };\n            };\n            return s;\n        },\n        getIsAds: function(s) {\n            var t = l.scry(s, \"div._4u8\");\n            return t.length;\n        },\n        getUnitId: function(s) {\n            if (this.getIsAds(s)) {\n                return this.getAdId(s);\n            }\n             else return this.getEgoId(s)\n        ;\n        },\n        getEgoId: function(s) {\n            var t = l.find(s, \"div.ego_unit\");\n            return t.getAttribute(\"data-ego-fbid\");\n        },\n        getAdData: function(s) {\n            var t = l.find(s, \"div._4u8\"), u = t.getAttribute(\"data-ad\");\n            return ((u && JSON.parse(u)) || {\n            });\n        },\n        getAdId: function(s) {\n            return this.getAdData(s).adid;\n        },\n        getIsHoldout: function(s) {\n            return (s && this.getAdData(s).holdout);\n        },\n        getAdUnit: function(s) {\n            if (!this.sections) {\n                return null\n            };\n            var t = [];\n            this.sections.forEach(function(v) {\n                q(t, v.units);\n            });\n            for (var u = 0; (u < t.length); u++) {\n                if ((this.getIsAds(t[u]) && (this.getAdId(t[u]) == s))) {\n                    return t[u]\n                };\n            };\n            return null;\n        },\n        nextRegisterTime: function() {\n            var s = Infinity, t = h(h({\n            }, this.units[0]), this.units[1]);\n            for (var u in t) {\n                if (t.hasOwnProperty(u)) {\n                    var v = t[u];\n                    if (((v.trackingCode !== null) && v.visible)) {\n                        s = Math.min(s, (this.UNITS_REGISTER_DELAY - v.totalTime));\n                    };\n                }\n            ;\n            };\n            return s;\n        },\n        getHeight: function(s, t) {\n            var u = k.get(s, \"height\");\n            if ((u && (u.x === t))) {\n                return u.y\n            };\n            return this.cacheHeight(s, t);\n        },\n        cacheHeight: function(s, t) {\n            var u = {\n                x: t,\n                y: s.offsetHeight\n            };\n            k.set(s, \"height\", u);\n            return u.y;\n        },\n        loadAdsAndEgo: function() {\n            this.resetEvents();\n            this.addEvent(\"adsRequested\", true);\n            this.position++;\n            n.loadFromEndpoint(\"WebEgoPane\", this.root, {\n                pid: 34,\n                data: [this.loadQuery.set,this.getCursorFBID(this.loadQuery),this.snowliftRedesign,]\n            }, {\n                crossPage: true,\n                bundle: false\n            });\n        },\n        getCursorFBID: function(s) {\n            if ((s.v !== undefined)) {\n                return s.v\n            };\n            if ((s.fbid !== undefined)) {\n                return s.fbid\n            };\n            return \"0\";\n        },\n        unitsLoaded: function(s, t) {\n            var u;\n            if (t) {\n                u = \"/ai.php\";\n                this.addEvent(\"adsLoaded\", true);\n            }\n             else {\n                u = \"/ajax/ei.php\";\n                this.addEvent(\"egoLoaded\", true);\n            }\n        ;\n            var v = {\n            };\n            for (var w in s) {\n                if (s.hasOwnProperty(w)) {\n                    v[w] = {\n                        trackingCode: s[w],\n                        totalTime: 0,\n                        lastShowTime: 0,\n                        heightBelow: -10000,\n                        visible: false,\n                        registerUrl: u\n                    };\n                };\n            };\n            this.units[t] = v;\n            if (t) {\n                this.waitForImages(this.imagesLoaded.bind(this));\n            };\n        },\n        imagesLoaded: function() {\n            this.prepareResize();\n            this.addEvent(\"imagesLoaded\", true);\n            this.lastLoadTime = Date.now();\n            this.isLoading = false;\n            this.processResize();\n            i.removeClass(this.root, \"loading\");\n        },\n        loadAdsFromUserActivity: function() {\n            var s = Date.now(), t = this.refreshUnitsRate;\n            if ((!this.isLoading && ((s - this.lastLoadTime) > t))) {\n                i.addClass(this.root, \"loading\");\n                this.isLoading = true;\n                this.loadAdsAndEgo();\n            }\n        ;\n        },\n        registerImpression: function(s, t) {\n            var u = l.create(\"iframe\", {\n                src: o(t).addQueryData({\n                    aed: s\n                }),\n                width: 0,\n                height: 0,\n                frameborder: 0,\n                scrolling: \"no\",\n                className: \"fbEmuTracking\"\n            });\n            u.setAttribute(\"aria-hidden\", \"true\");\n            l.appendContent(this.root, u);\n        },\n        waitForImages: function(s) {\n            var t = l.scry(this.root, \"img.img\"), u = t.length, v = u;\n            if ((v === 0)) {\n                s();\n            };\n            var w = function() {\n                v--;\n                if ((v === 0)) {\n                    s.defer();\n                };\n            };\n            for (var x = 0; (x < u); x++) {\n                var y = t[x];\n                if (y.complete) {\n                    w();\n                }\n                 else g.listen(y, {\n                    load: w,\n                    error: w,\n                    abort: w\n                });\n            ;\n            };\n        }\n    };\n    e.exports = r;\n});\n__d(\"PhotoViewer\", [\"Bootloader\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j() {\n        this.image = null;\n        this.root = null;\n        this.stream = null;\n    };\n    h(j, {\n        bootstrap: function(k, l) {\n            g.loadModules([\"PhotoSnowlift\",], function(m) {\n                m.bootstrap(k, l);\n            });\n        }\n    });\n    h(j.prototype, {\n        getEventPrefix: i.thatReturnsNull,\n        getEventString: function(k) {\n            var l = this.getEventPrefix();\n            if (l) {\n                return ((l + \".\") + k)\n            };\n            return null;\n        },\n        getImage: function() {\n            return this.image;\n        },\n        getPosition: function() {\n            return (this.stream ? this.stream.getCursor() : null);\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        getSourceString: i.thatReturnsNull,\n        getVersionConst: i.thatReturnsNull,\n        getViewerSource: i.thatReturnsNull,\n        getViewerSet: i.thatReturnsNull\n    });\n    e.exports = j;\n});\n__d(\"PhotoSnowlift\", [\"function-extensions\",\"Arbiter\",\"AsyncDialog\",\"AsyncRequest\",\"Bootloader\",\"Class\",\"collectDataAttributes\",\"CSS\",\"Dialog\",\"DOM\",\"DOMControl\",\"Event\",\"FullScreen\",\"Input\",\"ImageUtils\",\"Keys\",\"Layer\",\"LinkController\",\"Locale\",\"PageTransitions\",\"Parent\",\"PhotosConst\",\"PhotoSessionLog\",\"PhotoSnowliftAds\",\"PhotoStreamCache\",\"PhotosUtils\",\"PhotoViewer\",\"Rect\",\"ScrollableArea\",\"Style\",\"Toggler\",\"UIPagelet\",\"URI\",\"UserAgent\",\"Vector\",\"$\",\"asyncCallback\",\"computeRelativeURI\",\"copyProperties\",\"createArrayFrom\",\"csx\",\"emptyFunction\",\"ge\",\"goURI\",\"shield\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"AsyncDialog\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Class\"), l = b(\"collectDataAttributes\"), m = b(\"CSS\"), n = b(\"Dialog\"), o = b(\"DOM\"), p = b(\"DOMControl\"), q = b(\"Event\"), r = b(\"FullScreen\"), s = b(\"Input\"), t = b(\"ImageUtils\"), u = b(\"Keys\"), v = b(\"Layer\"), w = b(\"LinkController\"), x = b(\"Locale\"), y = b(\"PageTransitions\"), z = b(\"Parent\"), aa = b(\"PhotosConst\"), ba = b(\"PhotoSessionLog\"), ca = b(\"PhotoSnowliftAds\"), da = b(\"PhotoStreamCache\"), ea = b(\"PhotosUtils\"), fa = b(\"PhotoViewer\"), ga = b(\"Rect\"), ha = b(\"ScrollableArea\"), ia = b(\"Style\"), ja = b(\"Toggler\"), ka = b(\"UIPagelet\"), la = b(\"URI\"), ma = b(\"UserAgent\"), na = b(\"Vector\"), oa = b(\"$\"), pa = b(\"asyncCallback\"), qa = b(\"computeRelativeURI\"), ra = b(\"copyProperties\"), sa = b(\"createArrayFrom\"), ta = b(\"csx\"), ua = b(\"emptyFunction\"), va = b(\"ge\"), wa = b(\"goURI\"), xa = b(\"shield\"), ya = b(\"startsWith\"), za = b(\"tx\"), ab = b(\"userAction\");\n    function bb() {\n        this.parent.construct(this);\n    };\n    ra(bb, {\n        STATE_ERROR: \"error\",\n        STATE_HTML: \"html\",\n        STATE_IMAGE_PIXELS: \"image_pixels\",\n        STATE_IMAGE_DATA: \"image\",\n        LOADING_TIMEOUT: 2000,\n        PAGER_FADE: 3000,\n        FULL_SCREEN_PADDING: 10,\n        STAGE_HIRES_MAX: {\n            x: 2048,\n            y: 2048\n        },\n        STAGE_NORMAL_MAX: {\n            x: 960,\n            y: 960\n        },\n        STAGE_MIN: {\n            x: 520,\n            y: 520\n        },\n        SIDEBAR_SIZE_MAX: 360,\n        STAGE_CHROME: {\n            x: 82,\n            y: 42\n        },\n        VIDEO_BOTTOM_BAR_SPACE: 40,\n        GOPREV_AREA: 120,\n        TIMELINE_STRETCH_WIDTH: 843,\n        TIMELINE_STRETCH_MIN: 480,\n        MIN_TAG_DISTANCE: 83,\n        PADDING_MIN: 40,\n        MIN_UFI_HEIGHT: 250,\n        COLLECTIONS_UNTAGGED_PHOTOS: 3,\n        PHOTOS_OF_YOU_SUGGESTIONS: 28,\n        MIN_ADS_VISIBLE: 1,\n        _instance: null,\n        getInstance: function() {\n            if (!bb._instance) {\n                bb._instance = new bb();\n            };\n            return bb._instance;\n        },\n        initWithSpotlight: function(cb, db) {\n            bb.getInstance().init(cb, db);\n        },\n        touch: ua,\n        addPhotoFbids: function(cb, db, eb, fb) {\n            bb.getInstance().addPhotoFbids(cb, db, eb, fb);\n        },\n        attachFollowFlyout: function(cb) {\n            o.insertAfter(oa(\"fbPhotoSnowliftSubscribe\"), cb);\n        },\n        attachSubscribeFlyout: function(cb) {\n            o.insertAfter(oa(\"fbPhotoSnowliftSubscribe\"), cb);\n        },\n        attachTagger: function(cb) {\n            bb.getInstance().attachTagger(cb);\n        },\n        preload: function(cb, db) {\n            bb.getInstance().preload(cb, db);\n        },\n        bootstrap: function(cb, db) {\n            if ((cb && la(cb).getQueryData().hasOwnProperty(\"share_id\"))) {\n                j.loadModules([\"SpotlightShareViewer\",], function(eb) {\n                    eb.bootstrap(cb, db);\n                });\n                return;\n            }\n        ;\n            bb.getInstance().bootstrap(cb, db);\n        },\n        closeRefresh: function() {\n            bb.getInstance().closeRefresh();\n        },\n        deletePhoto: function(cb) {\n            bb.getInstance().deletePhoto(cb);\n        },\n        getImage: function() {\n            return bb.getInstance().getImage();\n        },\n        getImageId: function() {\n            return bb.getInstance().getImageId();\n        },\n        getLoadQuery: function() {\n            return bb.getInstance().getLoadQuery();\n        },\n        getRHCBody: function() {\n            return bb.getInstance().getRHCBody();\n        },\n        getRHCFooter: function() {\n            return bb.getInstance().getRHCFooter();\n        },\n        getRHCHeader: function() {\n            return bb.getInstance().getRHCHeader();\n        },\n        getRoot: function() {\n            return bb.getInstance().getRoot();\n        },\n        likePhotoSkipConfirmation: function(cb) {\n            bb.getInstance().likePhotoSkipConfirmation(cb);\n        },\n        saveTagsFromPayload: function(cb) {\n            bb.getInstance().saveTagsFromPayload(cb);\n        },\n        saveTagsFromPayloadDelayed: function(cb) {\n            bb.saveTagsFromPayload.curry(cb).defer(2000);\n        },\n        handleServerError: function(cb, db) {\n            bb.getInstance().handleServerError(cb, db);\n        },\n        setVideoWarning: function(cb, db) {\n            var eb = bb.getInstance(), fb = (\"video_warning_\" + cb);\n            if (!eb.videoWarnings) {\n                eb.videoWarnings = [];\n            };\n            eb.videoWarnings[fb] = db;\n        },\n        storeFromData: function(cb) {\n            bb.getInstance().storeFromData(cb);\n        },\n        swapData: function() {\n            bb.getInstance().swapData();\n        },\n        touchMarkup: ua,\n        updateTotalCount: function(cb, db, eb) {\n            bb.getInstance().updateTotalCount(cb, db, eb);\n        }\n    });\n    k.extend(bb, fa);\n    ra(bb.prototype, {\n        switchTimer: null,\n        imageRefreshTimer: null,\n        imageLoadingTimer: null,\n        lastPage: 0,\n        currentMinSize: null,\n        currentImageSize: null,\n        resetUriStack: true,\n        thumbSrc: null,\n        shouldStretch: false,\n        stageMax: bb.STAGE_NORMAL_MAX,\n        stageChrome: bb.STAGE_CHROME,\n        stagePagerPrev: null,\n        ua: null,\n        PhotoTagger: null,\n        showHover: false,\n        skipLikePhotoConfirmation: false,\n        isShowingLikePhotoConfirmation: false,\n        preload: function(cb, db) {\n            j.loadModules([\"PhotoTagger\",\"Live\",\"PhotoTagApproval\",\"PhotoTags\",\"TagTokenizer\",\"fb-photos-snowlift-fullscreen-css\",], function(fb) {\n                this.PhotoTagger = fb;\n            }.bind(this));\n            var eb = this.getImageSrc(la(cb).getQueryData());\n            if (eb) {\n                (new Image()).src = eb;\n            };\n        },\n        bootstrap: function(cb, db) {\n            if ((cb && la(cb).getQueryData().makeprofile)) {\n                this.enableCropperOnInit = true;\n                this.isUserProfilePic = la(cb).getQueryData().makeuserprofile;\n                this.isInProfilePicAlbum = la(cb).getQueryData().inprofilepicalbum;\n            }\n        ;\n            this.preload(cb, db);\n            if (this.closeDirty) {\n                this.bootstrap.bind(this, cb, db).defer();\n                return;\n            }\n        ;\n            ca.reset();\n            this.resetUriStack = true;\n            if (this.isOpen) {\n                if (this.openExplicitly) {\n                    this.closeCleanup();\n                    this.resetUriStack = false;\n                }\n                 else return\n            \n            };\n            this.ua = ab(\"snowlift\", db).uai(\"open\");\n            this.returningToStart = false;\n            (this.loading && m.removeClass(this.loading, \"loading\"));\n            if (db) {\n                m.addClass((this.loading = db), \"loading\");\n                if (this.container) {\n                    var eb = z.byClass(db, \"uiStreamStory\");\n                    if (eb) {\n                        this.container.setAttribute(\"data-ownerid\", eb.id);\n                    }\n                     else this.container.removeAttribute(\"data-ownerid\");\n                ;\n                }\n            ;\n                this.getThumbAndSize(db);\n            }\n             else this.loading = null;\n        ;\n            g.inform(\"PhotoSnowlift.GO\", cb, g.BEHAVIOR_STATE);\n            this.loadFrameIfUninitialized();\n        },\n        getCurrentImageServerSizeDimensions: function() {\n            return this.stream.getCurrentImageData().dimensions;\n        },\n        getEventPrefix: function() {\n            return \"PhotoSnowlift\";\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        getSourceString: function() {\n            return \"snowlift\";\n        },\n        getViewerSource: function() {\n            return this.source;\n        },\n        getViewerSet: function() {\n            return this.stream.getPhotoSet();\n        },\n        getVersionConst: function() {\n            return aa.VIEWER_SNOWLIFT;\n        },\n        getImage: function() {\n            return this.image;\n        },\n        getImageId: function() {\n            return this.stream.getCursor();\n        },\n        getRHCHeader: function() {\n            return this.rhcHeader;\n        },\n        getRHCBody: function() {\n            return this.ufiForm;\n        },\n        getRHCFooter: function() {\n            return this.rhcFooter;\n        },\n        getLoadQuery: function() {\n            return this.loadQuery;\n        },\n        getCurrentPhotoInfo: function() {\n            var cb = this.stream.getCurrentImageData();\n            if (cb) {\n                return cb.info\n            };\n            return null;\n        },\n        getOwnerId: function() {\n            var cb = this.stream.getCurrentImageData();\n            if (cb) {\n                return cb.info.owner\n            };\n            return null;\n        },\n        getThumbAndSize: function(cb) {\n            this.currentImageSize = null;\n            this.thumbSrc = null;\n            var db = la(cb.getAttribute(\"ajaxify\")).getQueryData();\n            if (!db.size) {\n                return\n            };\n            var eb = na.deserialize(db.size);\n            if ((!eb.x || !eb.y)) {\n                return\n            };\n            this.currentImageSize = eb;\n            if (((!m.hasClass(cb, \"uiMediaThumb\") && !m.hasClass(cb, \"uiPhotoThumb\")) && !m.hasClass(cb, \"uiScaledThumb\"))) {\n                return\n            };\n            if (cb.getAttribute(\"data-cropped\")) {\n                return\n            };\n            var fb = o.scry(cb, \"img\")[0], gb = o.scry(cb, \"i\")[0], hb = z.byAttribute(cb, \"data-size\");\n            this.shouldStretch = ((((((hb && this.currentImageSize) && fb) && (hb.getAttribute(\"data-size\") === \"2\")) && (this.currentImageSize.x > this.currentImageSize.y)) && (this.currentImageSize.x <= bb.TIMELINE_STRETCH_WIDTH)) && (fb.offsetWidth === bb.TIMELINE_STRETCH_WIDTH));\n            var ib;\n            if (fb) {\n                ib = fb.src;\n            }\n             else if (gb) {\n                ib = ia.get(gb, \"backgroundImage\").replace(/.*url\\(\"?([^\"]*)\"?\\).*/, \"$1\");\n            }\n             else return\n            \n        ;\n            this.thumbSrc = ib;\n        },\n        loadFrameIfUninitialized: function() {\n            if (this.root) {\n                return\n            };\n            new i(\"/ajax/photos/snowlift/init.php\").setAllowCrossPageTransition(true).setMethod(\"GET\").setReadOnly(true).send();\n        },\n        init: function(cb, db) {\n            this.init = ua;\n            this.showHover = db.pivot_hover;\n            ba.setEndMetrics(db.pivot_end_metric);\n            this.enableSnowliftProfilePicCropper = db.snowlift_profile_pic_cropper;\n            this.pagersOnKeyboardNav = db.pagers_on_keyboard_nav;\n            this.hilitAllTagsAndBoxesOnHover = db.snowlift_hover_shows_all_tags_and_faces;\n            this.fullscreen = r.isSupported();\n            this.showOGVideos = db.og_videos;\n            this.resizeCommentsForAds = db.resize_comments_for_ads;\n            this.stageMax = bb.STAGE_HIRES_MAX;\n            this.spotlight = cb;\n            this.spotlight.subscribe(\"blur\", function() {\n                this.closingAction = ba.OUTSIDE;\n            }.bind(this));\n            this.spotlight.subscribe(\"hide\", xa(this.closeHandler, this));\n            this.spotlight.subscribe(\"key\", this.keyHandler.bind(this));\n            this.initializeNodes(this.spotlight.getRoot());\n            ca.init(this.sideAdUnit, this, db, this.adsDisplayedCallback.bind(this));\n            this.inAdsDisplayedCallback = false;\n            if (!this.subscription) {\n                w.registerHandler(this.handleNavigateAway.bind(this));\n                this.subscription = g.subscribe(\"PhotoSnowlift.GO\", function(eb, fb) {\n                    this.openExplicitly = true;\n                    (this.loading && m.removeClass(this.loading, \"loading\"));\n                    this.open(fb);\n                }.bind(this));\n            }\n        ;\n            this.transitionHandlerRegistered = false;\n            this.returningToStart = false;\n            y.registerHandler(this.openHandler.bind(this));\n            this.openHandlerRegistered = true;\n            g.subscribe(\"PhotoTagApproval.HILITE_TAG\", this.onHiliteTag.bind(this));\n            g.subscribe(\"PhotoTagApproval.UPDATE_TAG_BOX\", this.onUpdateTagBox.bind(this));\n            if (this.fullscreen) {\n                r.subscribe(\"changed\", this.onFullScreenChange.bind(this));\n            };\n        },\n        onFullScreenChange: function() {\n            var cb = r.isFullScreen();\n            m.conditionClass(document.body, \"fbPhotoSnowliftFullScreenMode\", cb);\n            if (cb) {\n                if (!m.hasClass(this.root, \"fbPhotoSnowliftEditMode\")) {\n                    this.collapseRHC();\n                };\n                var db = this.stream.getCurrentImageData();\n                if ((((db && db.url) && (this.image.src !== db.url)) && this.shouldShowHiRes(db))) {\n                    this.switchImage(db.url);\n                };\n                this.adjustForResize();\n            }\n             else {\n                this.uncollapseRHC();\n                if ((ma.chrome() && !m.hasClass(this.root, \"fbPhotoSnowliftEditMode\"))) {\n                    this.page(0, false);\n                };\n                g.inform(\"reflow\");\n            }\n        ;\n            ja.hide();\n            if (this.cropper) {\n                this.cropper.resetPhoto();\n            };\n        },\n        initializeNodes: function(cb) {\n            this.root = cb;\n            this.container = o.find(cb, \"div.fbPhotoSnowliftContainer\");\n            this.snowliftPopup = o.find(this.container, \"div.fbPhotoSnowliftPopup\");\n            this.rhc = o.find(this.snowliftPopup, \"div.rhc\");\n            this.rhcHeader = o.find(this.rhc, \"div.rhcHeader\");\n            this.rhcFooter = o.find(this.rhc, \"div.rhcFooter\");\n            this.ufiForm = o.find(this.rhc, \"form.fbPhotosSnowliftFeedbackForm\");\n            this.ufiInputContainer = o.find(this.rhc, \"div.fbPhotosSnowboxFeedbackInput\");\n            this.scroller = o.find(this.ufiForm, \"div.rhcScroller\");\n            this.scrollerBody = o.find(this.scroller, \"div.uiScrollableAreaBody\");\n            this.stageWrapper = o.find(this.snowliftPopup, \"div.stageWrapper\");\n            this.overlay = o.find(this.snowliftPopup, \"div.snowliftOverlay\");\n            this.errorBox = o.find(this.stageWrapper, \"div.stageError\");\n            this.image = o.find(this.stageWrapper, \"img.spotlight\");\n            this.stage = o.find(this.stageWrapper, \"div.stage\");\n            this.videoStage = o.find(this.stageWrapper, \"div.videoStage\");\n            this.prevPager = o.find(this.snowliftPopup, \"a.snowliftPager.prev\");\n            this.nextPager = o.find(this.snowliftPopup, \"a.snowliftPager.next\");\n            this.stageActions = o.find(cb, \"div.stageActions\");\n            this.buttonActions = o.find(this.stageActions, \"div.fbPhotosPhotoButtons\");\n            this.productMetadata = o.scry(this.rhc, \"div.fbPhotosSnowliftProductMetadata\").pop();\n            this.sideAdUnit = o.find(cb, \"._5ciw\");\n            g.inform(\"Amoeba/instrumentMulti\", [[this.container,\"snowlift\",],[this.rhc,\"rhc\",],[this.rhcHeader,\"rhc_header\",],[this.ufiForm,\"ufi_form\",],[this.ufiInputContainer,\"ufi_input\",],[this.prevPager,\"prev_pager\",],[this.nextPager,\"next_pager\",],[this.stageActions,\"stage_actions\",],[this.sideAdUnit,\"side_ads\",],], g.BEHAVIOR_PERSISTENT);\n            m.conditionClass(this.root, \"fullScreenAvailable\", this.fullscreen);\n        },\n        initializeScroller: function() {\n            this.initializeScroller = ua;\n            this.scrollableArea = ha.fromNative(this.scroller, {\n                fade: true,\n                persistent: true\n            });\n            var cb = function(event) {\n                var db = q.$E(event).getTarget();\n                if (o.contains(this.ufiInputContainer, db)) {\n                    var eb = p.getInstance(db);\n                    if (eb) {\n                        this.scrollableArea.scrollToBottom();\n                        var fb = eb.subscribe(\"resize\", function() {\n                            var hb = this.scrollableArea.isScrolledToBottom();\n                            this.adjustScroller();\n                            (hb && this.scrollableArea.scrollToBottom());\n                        }.bind(this)), gb = q.listen(db, \"blur\", function() {\n                            eb.unsubscribe(fb);\n                            gb.remove();\n                        });\n                    }\n                ;\n                }\n            ;\n            }.bind(this);\n            g.subscribe(\"ufi/changed\", function(db, eb) {\n                if ((this.ufiForm === eb.form)) {\n                    this.adjustScrollerIfNecessary();\n                };\n            }.bind(this));\n            g.subscribe(\"ufi/comment\", function(db, eb) {\n                if ((this.ufiForm === eb.form)) {\n                    if (eb.isranked) {\n                        this.scrollableArea.scrollToTop();\n                    }\n                     else this.scrollableArea.scrollToBottom();\n                \n                };\n            }.bind(this));\n            q.listen(this.rhc, \"click\", function(event) {\n                var db = event.getTarget();\n                if (((z.byTag(db, \"a\") || z.byTag(db, \"button\")) || o.isNodeOfType(db, \"input\"))) {\n                    this.adjustScrollerIfNecessary();\n                };\n            }.bind(this));\n            g.subscribe([\"reflow\",\"CommentUFI.Pager\",], function() {\n                if (this.isOpen) {\n                    this.adjustScroller();\n                };\n            }.bind(this));\n            q.listen(this.ufiForm, \"focusin\", cb);\n        },\n        openHandler: function(cb) {\n            if ((((((this.isOpen || (cb.getPath() != \"/photo.php\")) || this.returningToStart) || cb.getQueryData().closeTheater) || cb.getQueryData().permPage) || cb.getQueryData().makeprofile)) {\n                this.openHandlerRegistered = false;\n                return false;\n            }\n        ;\n            this.open(cb);\n            this._uriStack.push(la(cb).getQualifiedURI().toString());\n            y.transitionComplete(true);\n            return true;\n        },\n        getImageSrc: function(cb) {\n            if (cb.smallsrc) {\n                if (!cb.size) {\n                    return cb.smallsrc\n                };\n                var db = na.deserialize(cb.size), eb = this.getStageSize(db);\n                if (((eb.x <= bb.STAGE_NORMAL_MAX.x) && (eb.y <= bb.STAGE_NORMAL_MAX.y))) {\n                    return cb.smallsrc\n                };\n            }\n        ;\n            return cb.src;\n        },\n        open: function(cb) {\n            var db = la(cb).getQueryData(), eb = this.getImageSrc(db);\n            if (eb) {\n                delete db.src;\n                delete db.smallsrc;\n            }\n        ;\n            if (this.resetUriStack) {\n                this._uriStack = [];\n            };\n            if (!this.initialLoad) {\n                db.firstLoad = true;\n                this.initialLoad = true;\n            }\n        ;\n            this.sessionID = Date.now();\n            this.sessionPhotosHilited = {\n            };\n            this.loadQuery = ra(db, {\n                ssid: this.sessionID\n            });\n            this.isOpen = true;\n            this.pagersShown = false;\n            this.refreshOnClose = false;\n            this.hilitedTag = null;\n            this.loadingStates = {\n                image: false,\n                html: false\n            };\n            this.replaceUrl = false;\n            this.source = null;\n            this.saveTagSubscription = g.subscribe(\"PhotoTagger.SAVE_TAG\", this.onTagSaved.bind(this));\n            this.taggedPhotoIds = [];\n            this.stream = new da();\n            this.stream.init(aa.VIEWER_SNOWLIFT, \"PhotoViewerPagelet\", \"pagelet_photo_viewer\");\n            this.fetchInitialData();\n            this.setLoadingState(bb.STATE_HTML, true);\n            this.rhcCollapsed = false;\n            this._open(cb, eb);\n            if (this.enableSnowliftProfilePicCropper) {\n                j.loadModules([\"SnowliftPicCropper\",], function(fb) {\n                    this.cropper = fb.getInstance(this);\n                    this.cropper.init();\n                    if (this.enableCropperOnInit) {\n                        var gb = g.subscribe(\"PhotoSnowlift.SWITCH_IMAGE\", function() {\n                            if (this.isInProfilePicAlbum) {\n                                this.cropper.showPicInProfileAlbumDialog();\n                            }\n                             else this.cropper.enableCropping(this.isUserProfilePic);\n                        ;\n                            g.unsubscribe(gb);\n                        }.bind(this));\n                        this.enableCropperOnInit = false;\n                    }\n                ;\n                }.bind(this));\n            };\n            j.loadModules([\"PhotosButtonTooltips\",], function(fb) {\n                fb.init();\n            });\n        },\n        _open: function(cb, db) {\n            this.createLoader(db);\n            this.spotlight.show();\n            (this.ua && this.ua.add_event(\"frame\"));\n            g.inform(\"layer_shown\", {\n                type: \"PhotoSnowlift\"\n            });\n            g.inform(\"PhotoSnowlift.OPEN\");\n            this.stageHandlers = [q.listen(window, \"resize\", this.adjustForResize.bind(this)),q.listen(this.stageWrapper, \"click\", this.buttonListener.bind(this)),q.listen(this.stageWrapper, \"mouseleave\", function(event) {\n                var gb = event.getTarget();\n                if (!(((((((z.byClass(gb, \"snowliftOverlay\") || z.byClass(gb, \"fbPhotoSnowliftTagApproval\")) || z.byClass(gb, \"tagPointer\")) || z.byClass(gb, \"arrow\")) || z.byClass(gb, \"faceboxSuggestion\")) || z.byClass(gb, \"typeaheadWrapper\")) || z.byClass(gb, \"photoTagTypeahead\")))) {\n                    this.unhiliteAllTags();\n                };\n                this.hidePagers();\n            }.bind(this)),q.listen(this.stageWrapper, \"mousemove\", this.hilitePagerOnMouseMove.bind(this)),q.listen(this.stageWrapper, \"mousemove\", this.hiliteTagsOnMouseMove.bind(this)),q.listen(this.overlay, \"mouseenter\", this.unhiliteAllTags.bind(this)),];\n            this.stageHandlers.push(q.listen(this.container, \"click\", function(event) {\n                var gb = event.getTarget();\n                if (z.byClass(gb, \"rotateRight\")) {\n                    this.rotate(\"right\");\n                }\n                 else if (z.byClass(gb, \"rotateLeft\")) {\n                    this.rotate(\"left\");\n                }\n                 else if (z.byClass(gb, \"closeTheater\")) {\n                    if (r.isFullScreen()) {\n                        r.toggleFullScreen();\n                        return;\n                    }\n                ;\n                    this.closingAction = ba.X;\n                    this.closeHandler();\n                    return false;\n                }\n                 else if (this.fullscreen) {\n                    if (z.byClass(gb, \"fbPhotoSnowliftFullScreen\")) {\n                        this.toggleFullScreen();\n                    }\n                     else if (z.byClass(gb, \"fbPhotoSnowliftCollapse\")) {\n                        this.toggleCollapse();\n                    }\n                \n                }\n                \n                \n            ;\n            }.bind(this)));\n            var eb = va(\"fbPhotoSnowliftFeedback\");\n            if (eb) {\n                this.stageHandlers.push(q.listen(eb, \"click\", function(event) {\n                    var gb = event.getTarget();\n                    if ((z.byClass(gb, \"like_link\") || ((z.byClass(gb, \"UFILikeLink\") && z.byClass(gb, \"UIActionLinks\"))))) {\n                        this.toggleLikeButton();\n                    };\n                    var hb = z.byClass(event.getTarget(), \"uiUfiCollapsedComment\");\n                    if (hb) {\n                        m.addClass(hb, \"uiUfiCollapsedCommentToggle\");\n                    };\n                }.bind(this)));\n            };\n            var fb = va(\"fbPhotoSnowliftOnProfile\");\n            if (fb) {\n                this.stageHandlers.push(q.listen(fb, \"click\", function(event) {\n                    if (z.byClass(event.getTarget(), \"fbPhotoRemoveFromProfileLink\")) {\n                        this.refreshOnClose = true;\n                    };\n                }.bind(this)));\n            };\n            if (this.resetUriStack) {\n                this.startingURI = la.getMostRecentURI().addQueryData({\n                    closeTheater: 1\n                }).getUnqualifiedURI();\n            };\n            if (!db) {\n                this.setLoadingState(bb.STATE_IMAGE_DATA, true);\n            };\n            if (!this.transitionHandlerRegistered) {\n                y.registerHandler(this.transitionHandler.bind(this));\n                this.transitionHandlerRegistered = true;\n            }\n        ;\n            ba.initLogging(ba.SNOWLIFT);\n            if (this.pivots) {\n                ba.setRelevantCount(this.pivots.relevantCount);\n            };\n        },\n        toggleFullScreen: function() {\n            var cb = r.toggleFullScreen(document.documentElement);\n            if (cb) {\n                var db = this.stream.getCurrentImageData();\n                if ((((db && db.url) && (this.image.src !== db.url)) && this.shouldShowHiRes(db))) {\n                    (new Image()).src = db.url;\n                };\n                ba.logEnterFullScreen(this.stream.getCursor());\n            }\n        ;\n        },\n        getStream: function() {\n            return this.stream;\n        },\n        fetchInitialData: function() {\n            (this.ua && this.ua.add_event(\"init_data\"));\n            this.stream.waitForInitData();\n            var cb = l(this.container, [\"ft\",]);\n            if ((((cb && cb.ft) && cb.ft.ei) && this.loadQuery)) {\n                this.loadQuery.ei = cb.ft.ei;\n            };\n            ka.loadFromEndpoint(\"PhotoViewerInitPagelet\", va(\"pagelet_photo_viewer_init\", this.root), this.loadQuery, {\n                usePipe: true,\n                jsNonblock: true,\n                crossPage: true\n            });\n        },\n        toggleCollapse: function() {\n            if (this.rhcCollapsed) {\n                this.uncollapseRHC();\n            }\n             else this.collapseRHC();\n        ;\n        },\n        collapseRHC: function() {\n            this.rhcCollapsed = true;\n            m.addClass(this.root, \"collapseRHC\");\n            this.adjustForResize();\n        },\n        uncollapseRHC: function() {\n            this.rhcCollapsed = false;\n            m.removeClass(this.root, \"collapseRHC\");\n            this.adjustForResize();\n        },\n        closeHandler: function() {\n            if (!this.isOpen) {\n                return\n            };\n            this.closingAction = (this.closingAction || ba.ESC);\n            if ((la.getMostRecentURI().addQueryData({\n                closeTheater: 1\n            }).getUnqualifiedURI().toString() == this.startingURI.toString())) {\n                this.close();\n                return;\n            }\n        ;\n            this.returnToStartingURI(this.refreshOnClose);\n            this.close();\n        },\n        returnToStartingURI: function(cb, db) {\n            if (!cb) {\n                if (db) {\n                    this.squashNextTransition(wa.curry(db));\n                }\n                 else this.squashNextTransition();\n            \n            };\n            this.returningToStart = true;\n            var eb = g.subscribe(\"page_transition\", (function() {\n                this.returningToStart = false;\n                eb.unsubscribe();\n            }).bind(this)), fb = (cb || isNaN(ma.opera())), gb = this._uriStack.length;\n            if ((fb && (gb < window.history.length))) {\n                window.history.go(-gb);\n            }\n             else {\n                var hb = this.startingURI, ib = new la(hb).removeQueryData(\"closeTheater\");\n                if (((hb.getQueryData().sk == \"approve\") && (hb.getPath() == \"/profile.php\"))) {\n                    ib.removeQueryData(\"highlight\");\n                    ib.removeQueryData(\"notif_t\");\n                }\n            ;\n                wa(ib);\n            }\n        ;\n        },\n        squashNextTransition: function(cb) {\n            this.squashNext = true;\n            y.registerHandler(function db() {\n                if (this.squashNext) {\n                    this.squashNext = false;\n                    if (cb) {\n                        cb.defer();\n                    };\n                    y.transitionComplete(true);\n                    return true;\n                }\n            ;\n                return false;\n            }.bind(this), 7);\n        },\n        handleNavigateAway: function(cb) {\n            var db = qa(y._most_recent_uri.getQualifiedURI(), cb.getAttribute(\"href\"));\n            if ((this.isOpen && ya(db.getPath(), \"/hashtag/\"))) {\n                this.close();\n                y.transitionComplete(true);\n                this.squashNextTransition();\n                y.go(this.startingURI);\n                return true;\n            }\n        ;\n            if ((((this.isOpen && ((db instanceof la))) && (db.getUnqualifiedURI().toString() != this.startingURI.toString())) && (db.getPath() != \"/photo.php\"))) {\n                if (!this.closingAction) {\n                    this.closingAction = ba.NAVIGATE;\n                };\n                this.returnToStartingURI(false, db);\n                this.close();\n                return false;\n            }\n        ;\n            return true;\n        },\n        postProcessTaggedPhotos: function() {\n            if ((this.taggedPhotoIds && (this.taggedPhotoIds.length > 0))) {\n                var cb = null;\n                if ((this.source === bb.COLLECTIONS_UNTAGGED_PHOTOS)) {\n                    cb = \"/ajax/photos/photo/edit/skiptag/\";\n                }\n                 else if ((this.source === bb.PHOTOS_OF_YOU_SUGGESTIONS)) {\n                    cb = \"/ajax/photos/photo/add_to_star_grid/\";\n                }\n            ;\n                if (cb) {\n                    new i().setURI(cb).setAllowCrossPageTransition(true).setData({\n                        media_id: this.taggedPhotoIds\n                    }).send();\n                };\n            }\n        ;\n        },\n        onTagSaved: function(cb, db) {\n            if (this.taggedPhotoIds) {\n                if (((this.source === bb.PHOTOS_OF_YOU_SUGGESTIONS) && !db.self_tag)) {\n                    return\n                };\n                this.taggedPhotoIds.push(db.photo_fbid);\n            }\n        ;\n        },\n        close: function() {\n            if (!this.isOpen) {\n                return\n            };\n            this.isOpen = false;\n            if (this.fullscreen) {\n                r.disableFullScreen();\n            };\n            ab(\"snowlift\").uai(\"close\");\n            (this.cropper && this.cropper.disableCropping());\n            this.spotlight.hide();\n            this.openExplicitly = false;\n            this.postProcessTaggedPhotos();\n            g.unsubscribe(this.saveTagSubscription);\n            this.taggedPhotoIds = [];\n            this.closeDirty = true;\n            this.closeCleanup.bind(this).defer();\n        },\n        closeCleanup: function() {\n            this.closeDirty = false;\n            m.removeClass(this.root, \"dataLoading\");\n            ba.logPhotoViews(this.closingAction);\n            this.destroy();\n            m.hide(this.errorBox);\n            m.hide(this.image);\n            this.currentImageSize = null;\n            this.thumbSrc = null;\n            this.shouldStretch = false;\n            this.resetUriStack = true;\n            m.removeClass(this.stageWrapper, \"showVideo\");\n            o.empty(this.videoStage);\n            this.uncollapseRHC();\n            this.currentMinSize = null;\n            this.rhcMinHeight = null;\n            this.setStagePagersState(\"reset\");\n            this.recacheData();\n            o.empty(this.sideAdUnit);\n            this.stream.destroy();\n            var cb = (this.closingAction === ba.NAVIGATE);\n            this.closingAction = null;\n            if (!this.openHandlerRegistered) {\n                y.registerHandler(this.openHandler.bind(this));\n                this.openHandlerRegistered = true;\n            }\n        ;\n            g.inform(\"layer_hidden\", {\n                type: \"PhotoSnowlift\"\n            });\n            g.inform(\"PhotoSnowlift.CLOSE\", cb);\n            this.root.setAttribute(\"aria-busy\", \"true\");\n        },\n        createLoader: function(cb) {\n            if ((this.currentImageSize === null)) {\n                this.adjustStageSize(bb.STAGE_MIN);\n            }\n             else {\n                var db = this.getStageSize(this.currentImageSize);\n                db = new na(Math.max(db.x, bb.STAGE_MIN.x), Math.max(db.y, bb.STAGE_MIN.y));\n                var eb = this.getImageSizeInStage(this.currentImageSize, db);\n                if ((this.thumbSrc === null)) {\n                    this.adjustStageSize(eb);\n                }\n                 else this.useImage(o.create(\"img\", {\n                    className: \"spotlight\",\n                    alt: \"\",\n                    src: this.thumbSrc,\n                    style: {\n                        width: (eb.x + \"px\"),\n                        height: (eb.y + \"px\")\n                    }\n                }), eb, false);\n            ;\n            }\n        ;\n            this.setLoadingState(this.STATE_IMAGE_PIXELS, true);\n            if (cb) {\n                (function() {\n                    var fb = new Image(), gb = q.listen(fb, \"load\", pa(function() {\n                        if (!this.isOpen) {\n                            return\n                        };\n                        if ((!this.stream || !this.stream.errorInCurrent())) {\n                            this.switchImage(cb, this.currentImageSize);\n                            (this.ua && this.ua.add_event(\"image\"));\n                            this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n                        }\n                    ;\n                    }.bind(this), \"photo_theater\"));\n                    g.subscribeOnce(\"PhotoSnowlift.PAGE\", gb.remove.bind(gb));\n                    fb.src = cb;\n                }).bind(this).defer();\n            };\n            m.hide(this.stageActions);\n            this.setStagePagersState(\"disabled\");\n        },\n        initDataFetched: function(cb) {\n            ba.setPhotoSet(this.stream.getPhotoSet());\n            ba.setLogFbids(cb.logids);\n            var db = this.stream.getCurrentImageData();\n            ba.addPhotoView(db.info, this.shouldShowHiRes(db), (this.fullscreen && r.isFullScreen()));\n            var eb = this.stream.getCurrentExtraData();\n            if ((eb && (eb.source !== undefined))) {\n                this.source = parseInt(eb.source, 10);\n                ba.setSource(this.source);\n            }\n        ;\n            if (!this.pageHandlers) {\n                this.pageHandlers = [q.listen(this.root, \"click\", this.pageListener.bind(this)),q.listen(this.root, \"mouseleave\", this.mouseLeaveListener.bind(this)),];\n            };\n            m.show(this.stageActions);\n            this.root.setAttribute(\"aria-busy\", \"false\");\n            this.isLoggedInViewer = cb.loggedin;\n            this.disableAdsForSession = (cb.disablesessionads || !this.isLoggedInViewer);\n            this.showFlashTags = !!cb.flashtags;\n            this.disableAds = (this.disableAdsForSession || cb.fromad);\n            this.loadAds();\n        },\n        adjustScrollerIfNecessary: function() {\n            clearTimeout(this.scrollerTimeout);\n            this.scrollerTimeout = this.adjustScroller.bind(this).defer();\n        },\n        adjustScroller: function(cb) {\n            clearTimeout(this.scrollerTimeout);\n            this.initializeScroller();\n            this.scrollableArea.resize();\n            var db = na.getElementDimensions(this.rhc), eb = db.y;\n            eb -= na.getElementDimensions(this.rhcHeader).y;\n            eb -= na.getElementDimensions(this.ufiInputContainer).y;\n            if (this.productMetadata) {\n                var fb = na.getElementDimensions(this.productMetadata);\n                if ((fb.x !== 0)) {\n                    eb -= fb.y;\n                };\n            }\n        ;\n            if ((cb == null)) {\n                cb = 0;\n            };\n            this.rhcMinHeight = (db.y - ((eb - bb.MIN_UFI_HEIGHT)));\n            eb = Math.max(0, eb);\n            var gb = na.getElementDimensions(this.scrollerBody).y, hb = Math.max(bb.MIN_UFI_HEIGHT, (eb - cb));\n            if ((gb >= hb)) {\n                ia.set(this.scroller, \"height\", (hb + \"px\"));\n                if ((eb > hb)) {\n                    m.removeClass(this.rhc, \"pinnedUfi\");\n                    eb -= hb;\n                }\n                 else {\n                    m.addClass(this.rhc, \"pinnedUfi\");\n                    eb = 0;\n                }\n            ;\n            }\n             else {\n                ia.set(this.scroller, \"height\", \"auto\");\n                m.removeClass(this.rhc, \"pinnedUfi\");\n                eb -= gb;\n            }\n        ;\n            var ib = o.scry(this.scrollerBody, \"li.UFIFirstComponent\");\n            if ((ib.length === 0)) {\n                var jb = o.scry(this.ufiInputContainer, \"li.UFIAddComment\");\n                if ((jb.length !== 0)) {\n                    m.addClass(jb[0], \"UFIFirstComponent\");\n                };\n            }\n        ;\n            var kb = na.getElementDimensions(this.ufiInputContainer).y;\n            ia.set(this.ufiForm, \"padding-bottom\", (kb + \"px\"));\n            ca.resize(new na(db.x, eb));\n            this.scrollableArea.adjustGripper();\n        },\n        adjustForResize: function() {\n            this.currentMinSize = null;\n            this.adjustStageSize();\n            this.adjustForNewData();\n        },\n        shouldShowHiRes: function(cb) {\n            if ((!cb || !cb.smallurl)) {\n                return false\n            };\n            var db = this.getStageSize(cb.dimensions), eb = this.getImageSizeInStage(cb.dimensions, db);\n            return (((eb.x > bb.STAGE_NORMAL_MAX.x) || (eb.y > bb.STAGE_NORMAL_MAX.y)));\n        },\n        getImageURL: function(cb) {\n            if (cb.video) {\n                return null;\n            }\n             else if ((cb.smallurl && !this.shouldShowHiRes(cb))) {\n                return cb.smallurl\n            }\n        ;\n            return cb.url;\n        },\n        getImageDimensions: function(cb) {\n            if ((cb.smalldims && ((!this.shouldShowHiRes(cb) || (this.image.src === cb.smallurl))))) {\n                return cb.smalldims\n            };\n            return cb.dimensions;\n        },\n        getStageSize: function(cb, db) {\n            var eb = na.getViewportDimensions(), fb = new na(cb.x, cb.y);\n            if (db) {\n                fb = new na(Math.max(cb.x, db.x), Math.max(cb.y, db.y));\n            };\n            var gb, hb;\n            if ((this.fullscreen && r.isFullScreen())) {\n                return new na(((this.rhcCollapsed ? screen.width : (screen.width - bb.SIDEBAR_SIZE_MAX))), (screen.height - (bb.FULL_SCREEN_PADDING * 2)));\n            }\n             else {\n                gb = Math.min(fb.x, this.stageMax.x, (((eb.x - bb.SIDEBAR_SIZE_MAX) - bb.STAGE_CHROME.x)));\n                hb = Math.min(fb.y, this.stageMax.y, (eb.y - bb.STAGE_CHROME.y));\n            }\n        ;\n            if (((gb === 0) && (hb === 0))) {\n                return new na(0, 0)\n            };\n            var ib = (gb / hb), jb = (fb.x / fb.y);\n            if ((ib < jb)) {\n                return new na(gb, Math.round((gb / jb)))\n            };\n            return new na(Math.round((hb * jb)), hb);\n        },\n        getImageSizeInStage: function(cb, db) {\n            var eb = cb.x, fb = cb.y;\n            if (((eb >= db.x) || (fb >= db.y))) {\n                var gb = (db.x / db.y), hb = (eb / fb);\n                if ((gb < hb)) {\n                    eb = db.x;\n                    fb = Math.round((eb / hb));\n                }\n                 else if ((gb > hb)) {\n                    fb = db.y;\n                    eb = Math.round((fb * hb));\n                }\n                 else {\n                    eb = db.x;\n                    fb = db.y;\n                }\n                \n            ;\n            }\n        ;\n            return new na(eb, fb);\n        },\n        adjustStageSize: function(cb) {\n            var db = this.currentImageSize;\n            if (cb) {\n                db = cb;\n            }\n             else {\n                var eb = (this.stream && this.stream.getCurrentImageData());\n                if (eb) {\n                    db = this.getImageDimensions(eb);\n                };\n            }\n        ;\n            if (!db) {\n                return\n            };\n            this.currentImageSize = db;\n            var fb = 0;\n            if (((((this.shouldStretch && !this.getVideoOnStage()) && (db.x > db.y)) && (db.x <= bb.TIMELINE_STRETCH_WIDTH)) && (db.x >= bb.TIMELINE_STRETCH_MIN))) {\n                db.y = Math.round(((db.y * bb.TIMELINE_STRETCH_WIDTH) / db.x));\n                db.x = bb.TIMELINE_STRETCH_WIDTH;\n            }\n             else if (this.getVideoOnStage()) {\n                fb = (bb.VIDEO_BOTTOM_BAR_SPACE * 2);\n            }\n        ;\n            var gb = this.getStageSize(db, this.currentMinSize);\n            if (!this.currentMinSize) {\n                this.currentMinSize = new na(0, 0);\n            };\n            if (!this.rhcMinHeight) {\n                this.rhcMinHeight = 0;\n            };\n            this.currentMinSize = new na(Math.max(gb.x, bb.STAGE_MIN.x, this.currentMinSize.x), Math.max(gb.y, bb.STAGE_MIN.y, this.currentMinSize.y));\n            var hb = this.getImageSizeInStage(db, this.currentMinSize), ib = (this.currentMinSize.x - hb.x), jb = (this.currentMinSize.y - hb.y);\n            if (((ib > 0) && (ib < bb.PADDING_MIN))) {\n                this.currentMinSize.x -= ib;\n            }\n             else if (((jb > 0) && (jb < bb.PADDING_MIN))) {\n                this.currentMinSize.y -= jb;\n            }\n        ;\n            var kb = o.scry(this.productMetadata, \"#fbPhotoSnowliftTaggedProducts .taggee\");\n            if (kb.length) {\n                this.currentMinSize.y = Math.max(this.currentMinSize.y, this.rhcMinHeight);\n            };\n            var lb = (this.currentMinSize.x + bb.SIDEBAR_SIZE_MAX);\n            if (this.rhcCollapsed) {\n                lb = this.currentMinSize.x;\n            };\n            this.snowliftPopup.style.cssText = (((((\"width:\" + lb) + \"px;\") + \"height:\") + this.currentMinSize.y) + \"px;\");\n            var mb = ((this.currentMinSize.y - fb) + \"px\");\n            if ((ma.firefox() || (ma.ie() < 8))) {\n                var nb = ia.get(this.stageWrapper, \"font-size\");\n                if ((ma.ie() && (nb.indexOf(\"px\") < 0))) {\n                    var ob = o.create(\"div\");\n                    ob.style.fontSize = nb;\n                    ob.style.height = \"1em\";\n                    nb = ob.style.pixelHeight;\n                }\n            ;\n                mb = (((((this.currentMinSize.y - fb)) / parseFloat(nb))) + \"em\");\n            }\n        ;\n            this.stageWrapper.style.cssText = (((((\"width:\" + this.currentMinSize.x) + \"px;\") + \"line-height:\") + mb) + \";\");\n            if ((ma.ie() < 8)) {\n                ia.set(this.root, \"height\", (na.getViewportDimensions().y + \"px\"));\n                ia.set(this.container, \"min-height\", (((this.currentMinSize.y + bb.STAGE_CHROME.y)) + \"px\"));\n            }\n        ;\n            this.image.style.cssText = (((((\"width:\" + hb.x) + \"px;\") + \"height:\") + hb.y) + \"px;\");\n            var pb = this.getTagger();\n            if (pb) {\n                pb.repositionTagger();\n            };\n            this.adjustScrollerIfNecessary();\n        },\n        adjustForNewData: function() {\n            if (!this.image) {\n                return\n            };\n            var cb = o.scry(this.stage, \"div.tagsWrapper\")[0], db = na.getElementDimensions(this.image);\n            if (cb) {\n                ia.set(cb, \"width\", (db.x + \"px\"));\n                ia.set(cb, \"height\", (db.y + \"px\"));\n                if ((ma.ie() <= 7)) {\n                    var eb = o.scry(this.root, \"div.tagContainer\")[0];\n                    if (eb) {\n                        m.conditionClass(cb, \"ie7VerticalFix\", (na.getElementDimensions(eb).y > db.y));\n                    };\n                }\n            ;\n            }\n        ;\n        },\n        adsDisplayedCallback: function(cb, db) {\n            if ((((((this.resizeCommentsForAds && !this.inAdsDisplayedCallback) && !this.disableAds) && (bb.MIN_ADS_VISIBLE > 0)) && (cb < bb.MIN_ADS_VISIBLE)) && (db.length >= bb.MIN_ADS_VISIBLE))) {\n                this.inAdsDisplayedCallback = true;\n                var eb = db[(bb.MIN_ADS_VISIBLE - 1)];\n                this.adjustScroller(eb);\n                this.inAdsDisplayedCallback = false;\n            }\n        ;\n        },\n        setLoadingState: function(cb, db) {\n            switch (cb) {\n              case bb.STATE_IMAGE_PIXELS:\n                m.conditionClass(this.root, \"imagePixelsLoading\", db);\n                break;\n              case bb.STATE_IMAGE_DATA:\n                this.loadingStates[cb] = db;\n                m.conditionClass(this.root, \"imageLoading\", db);\n                break;\n              case bb.STATE_HTML:\n                this.loadingStates[cb] = db;\n                m.conditionClass(this.root, \"dataLoading\", db);\n                this.rhc.setAttribute(\"aria-busy\", (db ? \"true\" : \"false\"));\n                break;\n            };\n        },\n        destroy: function() {\n            this.stageHandlers.forEach(function(cb) {\n                cb.remove();\n            });\n            if (this.pageHandlers) {\n                this.pageHandlers.forEach(function(cb) {\n                    cb.remove();\n                });\n                this.pageHandlers = null;\n            }\n        ;\n        },\n        checkState: function(cb) {\n            if (((cb != bb.STATE_ERROR) && !this.loadingStates[cb])) {\n                return\n            };\n            switch (cb) {\n              case bb.STATE_IMAGE_DATA:\n                var db = this.stream.getCurrentImageData();\n                if (db) {\n                    var eb = this.getImageURL(db);\n                    if (eb) {\n                        this.switchImage(eb, null, true);\n                    }\n                     else if (db.video) {\n                        this.switchVideo(db.video, true);\n                    }\n                ;\n                    this.setLoadingState(cb, false);\n                }\n            ;\n                break;\n              case bb.STATE_HTML:\n                if (this.stream.getCurrentHtml()) {\n                    this.swapData();\n                    this.showPagers(bb.PAGER_FADE);\n                    this.setLoadingState(cb, false);\n                }\n            ;\n                break;\n              default:\n                if (this.stream.errorInCurrent()) {\n                    m.hide(this.image);\n                    m.show(this.errorBox);\n                }\n            ;\n                break;\n            };\n        },\n        buttonListener: function(event) {\n            var cb = event.getTarget(), db = Date.now();\n            if (z.byClass(cb, \"fbPhotoTagApprovalBox\")) {\n                return\n            };\n            if (z.byClass(cb, \"fbPhotosCornerWantButton\")) {\n                event.stop();\n                return;\n            }\n        ;\n            if (((db - this.lastPage) < 350)) {\n                return\n            };\n            if (z.byClass(cb, \"fbPhotosPhotoLike\")) {\n                this.likePhoto();\n            }\n             else if (z.byClass(cb, \"tagApproveIgnore\")) {\n                this.updateTagBox(event, cb);\n            }\n        ;\n        },\n        likePhoto: function() {\n            ba.addButtonLike();\n            var cb = oa(\"fbPhotoSnowliftFeedback\"), db = o.scry(cb, \"button.like_link\")[0];\n            if (!db) {\n                db = o.scry(cb, \"a.UFILikeLink\")[0];\n            };\n            var eb = db.getAttribute(\"href\");\n            if (r.isFullScreen()) {\n                if (ma.chrome()) {\n                    db.setAttribute(\"href\", \"javascript:;\");\n                }\n            };\n            db.click();\n            db.setAttribute(\"href\", eb);\n        },\n        toggleLikeButton: function() {\n            var cb = o.scry(this.buttonActions, \"a.fbPhotosPhotoLike\")[0];\n            if (cb) {\n                var db = o.find(this.root, \".likeCount\"), eb = o.find(db, \".likeCountNum\");\n                if (db) {\n                    if (m.hasClass(cb, \"viewerLikesThis\")) {\n                        o.setContent(eb, (parseInt(eb.textContent, 10) - 1));\n                    }\n                     else o.setContent(eb, (parseInt(eb.textContent, 10) + 1));\n                \n                };\n                m.toggleClass(cb, \"viewerLikesThis\");\n                m.removeClass(cb, \"viewerAlreadyLikedThis\");\n            }\n        ;\n        },\n        likePhotoWithKey: function() {\n            if (this.isShowingLikePhotoConfirmation) {\n                return\n            };\n            if (this.skipLikePhotoConfirmation) {\n                this.likePhoto();\n            }\n             else h.send(new i(\"/photos/confirm_like.php\"), function(cb) {\n                this.isShowingLikePhotoConfirmation = true;\n                cb.subscribe(\"confirm\", this.onCloseLikePhotoConfirmDialog.bind(this));\n                cb.subscribe(\"cancel\", this.onCloseLikePhotoConfirmDialog.bind(this));\n            }.bind(this));\n        ;\n            return false;\n        },\n        likePhotoSkipConfirmation: function(cb) {\n            this.skipLikePhotoConfirmation = cb;\n            this.likePhoto();\n        },\n        onCloseLikePhotoConfirmDialog: function() {\n            this.isShowingLikePhotoConfirmation = false;\n        },\n        updateTagBox: function(cb, db) {\n            this.unhiliteAllTags();\n            var eb = va(cb);\n            if (!eb) {\n                return\n            };\n            m.addClass(eb, \"tagBox\");\n            m.addClass(eb, \"tagBoxPendingResponse\");\n            m.removeClass(eb, \"tagBoxPending\");\n            m.hide(o.find(eb, \"span.tagForm\"));\n            if (db) {\n                m.show(o.find(eb, \"span.tagApproved\"));\n            }\n             else m.show(o.find(eb, \"span.tagIgnored\"));\n        ;\n        },\n        rotate: function(cb) {\n            var db = this.stream.getCursor();\n            if (this.getVideoOnStage()) {\n                var eb = (((cb == \"left\")) ? 270 : 90);\n                j.loadModules([\"VideoRotate\",], function(gb) {\n                    new gb(db).motionRotate(eb);\n                });\n                return;\n            }\n        ;\n            var fb = ra({\n                fbid: db,\n                cs_ver: aa.VIEWER_SNOWLIFT\n            }, this.stream.getPhotoSetQuery());\n            fb[cb] = 1;\n            this.setLoadingState(bb.STATE_IMAGE_DATA, true);\n            this.setLoadingState(this.STATE_IMAGE_PIXELS, true);\n            m.hide(this.image);\n            new i(\"/ajax/photos/photo/rotate/\").setAllowCrossPageTransition(true).setData(fb).setErrorHandler(this.rotationError.bind(this, db)).setFinallyHandler(this.rotationComplete.bind(this, db)).setMethod(\"POST\").setReadOnly(false).send();\n        },\n        rotationComplete: function(cb, db) {\n            if ((cb == this.stream.getCursor())) {\n                this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n                this.switchImage(this.getImageURL(this.stream.getCurrentImageData()));\n                this.swapData();\n            }\n        ;\n        },\n        rotationError: function(cb, db) {\n            if ((cb == this.stream.getCursor())) {\n                this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n                this.switchImage(this.getImageURL(this.stream.getCurrentImageData()));\n                j.loadModules([\"AsyncResponse\",], function(eb) {\n                    eb.defaultErrorHandler(db);\n                });\n            }\n        ;\n        },\n        saveTagsFromPayload: function(cb) {\n            this.storeFromData(cb);\n            if (((\"data\" in cb) && (this.stream.getCursor() in cb.data))) {\n                this.swapData();\n            };\n        },\n        saveEdit: function() {\n            if (!m.hasClass(this.root, \"fbPhotoSnowliftEditMode\")) {\n                return\n            };\n            j.loadModules([\"PhotoInlineEditor\",\"Form\",], function(cb, db) {\n                var eb = cb.getInstance(this.getViewerConst());\n                (eb && db.bootstrap(eb.getForm().controller));\n            }.bind(this));\n        },\n        mouseLeaveListener: function(event) {\n            this.unhiliteAllTags();\n            this.reHilitePendingTag();\n        },\n        hilitePagerOnMouseMove: function(event) {\n            var cb = na.getEventPosition(event), db = na.getElementPosition(this.stage);\n            if (x.isRTL()) {\n                var eb = na.getElementDimensions(this.stage);\n                this.stagePagerPrev = ((eb.x - ((cb.x - db.x))) < bb.GOPREV_AREA);\n            }\n             else this.stagePagerPrev = ((cb.x - db.x) < bb.GOPREV_AREA);\n        ;\n            m.conditionClass(this.prevPager, \"hilightPager\", this.stagePagerPrev);\n            m.conditionClass(this.nextPager, \"hilightPager\", !this.stagePagerPrev);\n            var fb, gb = event.getTarget();\n            if (((!z.byClass(gb, \"snowliftOverlay\") && !z.byClass(gb, \"bottomBarActions\")) && !z.byClass(gb, \"snowliftPager\"))) {\n                fb = bb.PAGER_FADE;\n            };\n            this.showPagers(fb);\n        },\n        showPagers: function(cb) {\n            clearTimeout(this.fadePagerTimer);\n            this.setStagePagersState(\"active\");\n            if ((typeof cb !== \"undefined\")) {\n                this.fadePagerTimer = this.hidePagers.bind(this).defer(cb);\n            };\n        },\n        hidePagers: function() {\n            var cb = o.scry(this.getRoot(), \".fbPhotosPhotoActionsMenu\")[0];\n            if (cb) {\n                return\n            };\n            clearTimeout(this.fadePagerTimer);\n            this.setStagePagersState(\"inactive\");\n        },\n        getTagger: function() {\n            if (!this.PhotoTagger) {\n                return null\n            };\n            var cb = this.PhotoTagger.getInstance(aa.VIEWER_SNOWLIFT);\n            if ((!cb || !cb.tagHoverFacebox)) {\n                return null\n            };\n            return cb;\n        },\n        hiliteAllBoxes: function() {\n            o.scry(this.stage, \"div.tagsWrapper div.faceBox\").forEach(function(cb) {\n                m.addClass(cb, \"otherActive\");\n            });\n        },\n        flashAllTags: function() {\n            var cb = this.stream.getCurrentImageData().info.fbid;\n            if (this.sessionPhotosHilited[cb]) {\n                return\n            };\n            o.scry(this.stage, \"div.tagsWrapper div.tagBox\").forEach(function(db) {\n                m.addClass(db, \"hover\");\n            });\n            this.sessionPhotosHilited[cb] = true;\n            this.unhiliteTimer = this.unhiliteAllTags.bind(this).defer(2000, true);\n        },\n        unhiliteAllTags: function() {\n            clearTimeout(this.unhiliteTimer);\n            o.scry(this.stage, \"div.tagsWrapper div.hover\").forEach(function(db) {\n                m.removeClass(db, \"hover\");\n            });\n            if (this.hilitAllTagsAndBoxesOnHover) {\n                o.scry(this.stage, \"div.tagsWrapper div.otherActive\").forEach(function(db) {\n                    m.removeClass(db, \"otherActive\");\n                });\n            };\n            this.hilitedTag = null;\n            if (!m.hasClass(this.root, \"taggingMode\")) {\n                var cb = this.getTagger();\n                if (cb) {\n                    cb.hideTagger();\n                    cb.setCurrentFacebox(null);\n                }\n            ;\n            }\n        ;\n        },\n        switchHilitedTags: function(cb, db) {\n            if ((this.switchTimer !== null)) {\n                clearTimeout(this.switchTimer);\n                this.switchTimer = null;\n            }\n        ;\n            this.unhiliteAllTags();\n            if (this.hilitAllTagsAndBoxesOnHover) {\n                this.hiliteAllBoxes();\n            };\n            var eb = va(cb);\n            if (eb) {\n                this.hilitedTag = cb;\n                if ((!m.hasClass(this.root, \"taggingMode\") && ea.isFacebox(this.hilitedTag))) {\n                    var fb = this.getTagger();\n                    if (fb) {\n                        m.addClass(eb, \"hover\");\n                        var gb = fb.getFacebox(cb);\n                        fb.setCurrentFacebox(gb);\n                        if (gb) {\n                            fb.addTagFromFacebox(gb);\n                        };\n                    }\n                ;\n                }\n                 else m.addClass(eb, \"hover\");\n            ;\n                if (((m.hasClass(eb, \"tagBoxPending\") && !m.hasClass(eb, \"showPendingTagName\")) && (db === true))) {\n                    o.scry(this.stage, \"div.tagsWrapper div.showPendingTagName\").forEach(function(hb) {\n                        m.removeClass(hb, \"showPendingTagName\");\n                    });\n                    m.addClass(eb, \"showPendingTagName\");\n                }\n            ;\n            }\n        ;\n        },\n        reHilitePendingTag: function() {\n            var cb = va(this.hilitedTag);\n            if ((cb && m.hasClass(cb, \"showPendingTagName\"))) {\n                return\n            };\n            var db = o.scry(this.stage, \"div.tagsWrapper div.showPendingTagName\")[0];\n            if (db) {\n                this.switchHilitedTags(db.id);\n            };\n        },\n        hiliteTagsOnMouseMove: function(event) {\n            if ((!this.stream.getCurrentExtraData() || this.getVideoOnStage())) {\n                return\n            };\n            if ((this.switchTimer !== null)) {\n                return\n            };\n            var cb = event.getTarget();\n            if (((((((z.byClass(cb, \"snowliftOverlay\") || z.byClass(cb, \"fbPhotoSnowliftTagApproval\")) || z.byClass(cb, \"tagPointer\")) || z.byClass(cb, \"arrow\")) || z.byClass(cb, \"faceboxSuggestion\")) || z.byClass(cb, \"typeaheadWrapper\")) || z.byClass(cb, \"photoTagTypeahead\"))) {\n                return\n            };\n            var db = z.byClass(cb, \"tagBoxPending\"), eb = false;\n            if (this.hilitedTag) {\n                var fb = va(this.hilitedTag);\n                eb = (fb && m.hasClass(fb, \"tagBoxPending\"));\n            }\n        ;\n            var gb = ((((!this.hilitedTag && db)) || ((!eb && db))));\n            if (gb) {\n                this.switchHilitedTags(db.id);\n                return;\n            }\n        ;\n            if ((db && ((db.id == this.hilitedTag)))) {\n                return\n            };\n            var hb = 250, ib = ea.absoluteToNormalizedPosition(this.image, na.getEventPosition(event));\n            if (this.currentTagHasPrecedence(ib)) {\n                return\n            };\n            var jb = ea.getNearestBox(this.stream.getCurrentExtraData().tagRects, ib);\n            if (!jb) {\n                if (!eb) {\n                    this.unhiliteAllTags();\n                    this.reHilitePendingTag();\n                }\n            ;\n                return;\n            }\n        ;\n            var kb = null;\n            if (eb) {\n                var lb = {\n                };\n                lb[this.hilitedTag] = this.stream.getCurrentExtraData().tagRects[this.hilitedTag];\n                kb = ea.getNearestBox(lb, ib);\n            }\n        ;\n            if (((kb !== null) && eb)) {\n                return\n            };\n            if ((this.hilitedTag != jb)) {\n                if (eb) {\n                    this.switchTimer = this.switchHilitedTags.bind(this, jb).defer(hb);\n                }\n                 else {\n                    if (this.showHover) {\n                        if (!this.seenTags) {\n                            this.seenTags = [];\n                        };\n                        if (!this.seenTags[jb]) {\n                            ba.addFaceTagImpression();\n                            this.seenTags[jb] = true;\n                        }\n                    ;\n                    }\n                ;\n                    this.switchHilitedTags(jb);\n                }\n            \n            };\n        },\n        currentTagHasPrecedence: function(cb) {\n            if (!this.hilitedTag) {\n                return false\n            };\n            if ((this.stream.getCurrentExtraData().tagRects[this.hilitedTag] === undefined)) {\n                this.hilitedTag = null;\n                return false;\n            }\n        ;\n            var db = this.stream.getCurrentExtraData().tagRects[this.hilitedTag], eb = new ga((db.t + ((db.h() / 2))), db.r, (db.b + ((ea.isFacebox(this.hilitedTag) ? 10 : 0))), db.l, db.domain);\n            return eb.contains(cb);\n        },\n        getVideoOnStage: function() {\n            var cb = (this.stream && this.stream.getCurrentImageData());\n            return (cb && cb.video);\n        },\n        shouldPageOnAction: function(cb, db) {\n            if ((!this.isOpen || this.isShowingLikePhotoConfirmation)) {\n                return false\n            };\n            var eb = (o.isNode(db) && (((z.byClass(db, \"snowliftPager\") || z.byClass(db, \"stagePagers\")) || z.byClass(db, \"pivotPageColumn\")))), fb = (o.isNode(db) && z.byClass(db, \"stage\")), gb = m.hasClass(db, \"faceBox\"), hb = ((((((((fb && m.hasClass(this.root, \"taggingMode\"))) || z.byClass(db, \"tagBoxPending\")) || z.byClass(db, \"tagBoxPendingResponse\")) || z.byClass(db, \"fbPhotoTagApprovalBox\")) || z.byClass(db, \"tag\")) || ((this.cropper && this.cropper.croppingMode))));\n            if (hb) {\n                return false\n            };\n            return (((((cb == u.LEFT) || (cb == u.RIGHT)) || ((!m.hasClass(this.root, \"taggingMode\") && gb))) || eb) || fb);\n        },\n        keyHandler: function(cb, event) {\n            if ((event.getModifiers().any || (v.getTopmostLayer() !== this.spotlight))) {\n                return true\n            };\n            switch (q.getKeyCode(event)) {\n              case u.LEFT:\n            \n              case u.RIGHT:\n                if (!this.pagersOnKeyboardNav) {\n                    this.showPagers(bb.PAGER_FADE);\n                };\n                this.pageListener(event);\n                return false;\n              case 70:\n                return this.toggleFullScreen();\n              case 76:\n                return this.likePhotoWithKey();\n            };\n        },\n        pageListener: function(event) {\n            var cb = q.getKeyCode(event), db = event.getTarget();\n            if (!this.shouldPageOnAction(cb, db)) {\n                return\n            };\n            var eb = 0;\n            if ((cb == u.RIGHT)) {\n                eb = 1;\n                ba.setPagingAction(\"key_right\");\n            }\n             else if ((cb == u.LEFT)) {\n                eb = -1;\n                ba.setPagingAction(\"key_left\");\n            }\n             else if (z.byClass(db, \"next\")) {\n                eb = 1;\n                ba.setPagingAction(\"click_next\");\n            }\n             else if (z.byClass(db, \"prev\")) {\n                eb = -1;\n                ba.setPagingAction(\"click_prev\");\n            }\n             else if (!this.stagePagerPrev) {\n                eb = 1;\n                ba.setPagingAction(\"click_stage\");\n            }\n             else {\n                eb = -1;\n                ba.setPagingAction(\"click_stage_back\");\n            }\n            \n            \n            \n            \n        ;\n            var fb = o.scry(this.ufiForm, \"input.mentionsHidden\"), gb = false;\n            for (var hb = 0; (hb < fb.length); hb++) {\n                if (!s.isEmpty(fb[hb])) {\n                    gb = true;\n                    break;\n                }\n            ;\n            };\n            if (((gb || m.hasClass(this.root, \"fbPhotoSnowliftEditMode\")) || ((this.cropper && this.cropper.croppingMode)))) {\n                this.warnLeavePage(eb);\n            }\n             else {\n                this.page(eb, (ma.chrome() && r.isFullScreen()));\n                ab(\"snowlift\", db, event).uai(ba.pagingAction);\n            }\n        ;\n        },\n        warnLeavePage: function(cb) {\n            new n().setTitle(\"Are you sure you want to leave this page?\").setBody(\"You have unsaved changes that will be lost if you leave the page.\").setButtons([{\n                name: \"leave_page\",\n                label: \"Leave this Page\",\n                handler: this.page.bind(this, cb)\n            },{\n                name: \"continue_editing\",\n                label: \"Stay on this Page\",\n                className: \"inputaux\"\n            },]).setModal(true).show();\n        },\n        page: function(cb, db) {\n            if (!this.stream.isValidMovement(cb)) {\n                this.showPagers(bb.PAGER_FADE);\n                return;\n            }\n        ;\n            this.lastPage = Date.now();\n            this.unhiliteAllTags();\n            this.seenTags = [];\n            var eb = this.getVideoOnStage();\n            if (eb) {\n                this.switchVideo(eb, false);\n            };\n            if ((this.pivots && this.pivots.page(cb))) {\n                return\n            };\n            g.inform(\"PhotoSnowlift.PAGE\");\n            ja.hide();\n            this.recacheData();\n            this.stream.moveCursor(cb);\n            m.hide(this.image);\n            if (this.stream.errorInCurrent()) {\n                this.setLoadingState(bb.STATE_HTML, true);\n                m.show(this.errorBox);\n                return;\n            }\n        ;\n            var fb = this.stream.getCurrentImageData();\n            if (fb) {\n                var gb = this.getImageURL(fb);\n                if (gb) {\n                    this.switchImage(gb, null, true);\n                }\n                 else if (fb.video) {\n                    this.switchVideo(fb.video, true);\n                }\n            ;\n                if (!db) {\n                    this.replaceUrl = true;\n                    wa(fb.info.permalink);\n                }\n            ;\n                this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n            }\n             else {\n                this.setLoadingState(bb.STATE_IMAGE_PIXELS, true);\n                this.setLoadingState(bb.STATE_IMAGE_DATA, true);\n            }\n        ;\n            if (this.stream.getCurrentHtml()) {\n                this.swapData();\n            }\n             else this.setLoadingState(bb.STATE_HTML, true);\n        ;\n            this.disableAds = this.disableAdsForSession;\n            this.loadAds();\n            if (this.cropper) {\n                this.cropper.resetPhoto();\n            };\n        },\n        logImpressionDetailsForPhoto: function() {\n            var cb = [].concat(o.scry(oa(\"fbPhotoSnowliftTagList\"), \"input.photoImpressionDetails\"), o.scry(oa(\"fbPhotoSnowliftFeedback\"), \"input.photoImpressionDetails\"));\n            if ((cb.length === 0)) {\n                return\n            };\n            var db = {\n            };\n            for (var eb = 0; (eb < cb.length); eb++) {\n                db[cb[eb].name] = cb[eb].value;;\n            };\n            if (this.getVideoOnStage()) {\n                db.width = 0;\n                db.height = 0;\n            }\n             else {\n                var fb = this.getImageDimensions(this.stream.getCurrentImageData());\n                db.width = fb.x;\n                db.height = fb.y;\n            }\n        ;\n            ba.addDetailData(this.stream.getCursor(), db);\n            ca.setIsLogAdData(true);\n        },\n        loadAds: function() {\n            if (this.disableAds) {\n                return\n            };\n            ca.loadAdsFromUserActivity();\n        },\n        transitionHandler: function(cb) {\n            if ((((cb.getQueryData().closeTheater || cb.getQueryData().permPage) || cb.getQueryData().makeprofile) || this.returningToStart)) {\n                if (this.isOpen) {\n                    this.close();\n                };\n                this.transitionHandlerRegistered = false;\n                return false;\n            }\n        ;\n            if (this.replaceUrl) {\n                this.replaceUrl = false;\n                this._uriStack.push(cb.getQualifiedURI().toString());\n                y.transitionComplete(true);\n                return true;\n            }\n        ;\n            var db = this._uriStack.length;\n            if (((db >= 2) && (this._uriStack[(db - 2)] == cb.getQualifiedURI().toString()))) {\n                this._uriStack.pop();\n            };\n            var eb = this.stream.getCursorForURI(cb.getUnqualifiedURI().toString());\n            if (eb) {\n                var fb = this.stream.getRelativeMovement(eb);\n                this.page(fb, true);\n                y.transitionComplete(false);\n                return true;\n            }\n        ;\n            if (this.isOpen) {\n                y.transitionComplete(true);\n                this.close();\n                return true;\n            }\n        ;\n            this.transitionHandlerRegistered = false;\n            return false;\n        },\n        recacheData: function() {\n            if (!this.loadingStates.html) {\n                var cb = this.stream.getCurrentHtml();\n                for (var db in cb) {\n                    cb[db] = sa(oa(db).childNodes);\n                    o.empty(oa(db));\n                };\n            }\n        ;\n        },\n        reloadIfTimeout: function() {\n            if (!t.hasLoaded(this.image)) {\n                var cb = this.makeNewImage(this.image.src, true);\n                q.listen(cb, \"load\", this.useImage.bind(this, cb, null, true));\n            }\n        ;\n        },\n        useImage: function(cb, db, eb) {\n            if ((eb && t.hasLoaded(this.image))) {\n                return\n            };\n            o.replace(this.image, cb);\n            this.image = cb;\n            g.inform(\"Amoeba/instrument\", [this.image,\"image\",], g.BEHAVIOR_PERSISTENT);\n            this.adjustStageSize(db);\n        },\n        makeNewImage: function(cb, db) {\n            if (this.imageLoadingTimer) {\n                clearTimeout(this.imageLoadingTimer);\n                this.imageLoadingTimer = null;\n            }\n             else if (!db) {\n                this.imageRefreshTimer = setTimeout(this.reloadIfTimeout.bind(this), bb.LOADING_TIMEOUT);\n            }\n        ;\n            var eb = o.create(\"img\", {\n                className: \"spotlight\",\n                alt: \"\"\n            });\n            eb.setAttribute(\"aria-describedby\", \"fbPhotosSnowliftCaption\");\n            eb.setAttribute(\"aria-busy\", \"true\");\n            q.listen(eb, \"load\", pa(function() {\n                clearTimeout(this.imageRefreshTimer);\n                this.image.setAttribute(\"aria-busy\", \"false\");\n                this.setLoadingState(this.STATE_IMAGE_PIXELS, false);\n                (function() {\n                    if (this.isOpen) {\n                        this.adjustStageSize();\n                        this.adjustForNewData();\n                    }\n                ;\n                }).bind(this).defer();\n            }.bind(this), \"photo_theater\"));\n            eb.src = cb;\n            return eb;\n        },\n        switchImage: function(cb, db, eb) {\n            m.hide(this.image);\n            m.hide(this.errorBox);\n            this.setLoadingState(this.STATE_IMAGE_PIXELS, true);\n            var fb = (this.stream && this.stream.getCurrentImageData());\n            if (fb) {\n                ba.addPhotoView(fb.info, this.shouldShowHiRes(fb), (this.fullscreen && r.isFullScreen()));\n            };\n            this.useImage(this.makeNewImage(cb, false), db, false);\n            if (eb) {\n                this.stream.preloadImages(this.shouldShowHiRes(fb));\n            };\n            if ((this.cropper && this.cropper.croppingMode)) {\n                this.cropper.resetPhoto();\n            };\n            g.inform(\"PhotoSnowlift.SWITCH_IMAGE\");\n        },\n        switchVideo: function(cb, db) {\n            var eb = (\"swf_\" + cb);\n            if (db) {\n                m.addClass(this.stageWrapper, \"showVideo\");\n                var fb = o.create(\"div\", {\n                    className: \"videoStageContainer\"\n                });\n                o.appendContent(this.videoStage, fb);\n                fb.id = cb;\n                if ((window[eb] && !va(eb))) {\n                    window[eb].write(cb);\n                };\n                var gb = (\"video_warning_\" + cb), hb = va(cb);\n                if (!this.videoWarnings) {\n                    this.videoWarnings = [];\n                };\n                if ((hb && this.videoWarnings[gb])) {\n                    o.setContent(hb, this.videoWarnings[gb]);\n                };\n                this.adjustStageSizeForVideo.bind(this, eb).defer();\n            }\n             else {\n                (window[eb] && window[eb].addVariable(\"video_autoplay\", 0));\n                (this.videoLoadTimer && clearTimeout(this.videoLoadTimer));\n                o.empty(this.videoStage);\n                m.removeClass(this.stageWrapper, \"showVideo\");\n            }\n        ;\n        },\n        checkVideoStatus: function(cb) {\n            if (this.videoLoadTimer) {\n                clearTimeout(this.videoLoadTimer);\n            };\n            var db = this.getVideoOnStage();\n            if (!db) {\n                return;\n            }\n             else {\n                var eb = (\"swf_\" + db);\n                if ((cb !== eb)) {\n                    return\n                };\n                this.adjustStageSizeForVideo(cb);\n            }\n        ;\n        },\n        adjustStageSizeForVideo: function(cb) {\n            var db = va(cb);\n            if (!db) {\n                this.videoLoadTimer = setTimeout(this.checkVideoStatus.bind(this, cb), 200);\n            }\n             else this.adjustStageSize(new na(db.width, db.height));\n        ;\n        },\n        handleServerError: function(cb, db) {\n            o.setContent(this.errorBox, cb);\n            this.storeFromData(db);\n        },\n        swapData: function() {\n            var cb, db = this.stream.getCurrentHtml();\n            if (db) {\n                this.setLoadingState(bb.STATE_HTML, false);\n                for (var eb in db) {\n                    cb = va(eb);\n                    (cb && o.setContent(cb, db[eb]));\n                };\n                g.inform(\"PhotoSnowlift.DATA_CHANGE\", this.stream.getCurrentImageData().info, g.BEHAVIOR_STATE);\n                if (this.stream.getCurrentExtraData()) {\n                    g.inform(\"PhotoSnowlift.EXTRA_DATA_CHANGE\", this.stream.getCurrentExtraData(), g.BEHAVIOR_STATE);\n                };\n            }\n        ;\n            this.adjustScroller();\n            this.adjustStageSize();\n            this.scrollableArea.showScrollbar(false);\n            this.adjustForNewData();\n            this.logImpressionDetailsForPhoto();\n            if (this.showFlashTags) {\n                this.flashAllTags();\n            };\n        },\n        updateTotalCount: function(cb, db, eb) {\n            var fb = this.stream.getCurrentHtml();\n            if (fb) {\n                var gb = oa(\"fbPhotoSnowliftPositionAndCount\");\n                o.replace(gb, eb);\n                gb = eb;\n                m.show(gb);\n                var hb = \"fbPhotoSnowliftPositionAndCount\";\n                fb[hb] = sa(gb.childNodes);\n            }\n        ;\n            this.stream.setTotalCount(cb);\n            this.stream.setFirstCursorIndex(db);\n        },\n        addPhotoFbids: function(cb, db, eb, fb) {\n            if (((fb && this.sessionID) && (fb != this.sessionID))) {\n                return\n            };\n            var gb = (this.stream.getCursor() === null);\n            this.stream.attachToFbidsList(cb, db, eb);\n            if ((eb && gb)) {\n                this.page(0, true);\n            };\n            if ((this.pivots && eb)) {\n                this.pivots.setCycleCount(this.stream.calculateDistance(this.stream.getCursor(), this.stream.firstCursor));\n            };\n            if ((!this.pagersShown && this.stream.canPage())) {\n                this.setStagePagersState(\"ready\");\n            };\n        },\n        attachTagger: function(cb) {\n            o.appendContent(this.stageActions, cb);\n        },\n        storeFromData: function(cb) {\n            if (!this.isOpen) {\n                return\n            };\n            if (((cb.ssid && this.sessionID) && (this.sessionID != cb.ssid))) {\n                return\n            };\n            var db = this.stream.storeToCache(cb);\n            if ((\"error\" in db)) {\n                this.checkState(bb.STATE_ERROR);\n                return;\n            }\n        ;\n            if ((\"init\" in db)) {\n                this.initDataFetched(db.init);\n                if (this.openExplicitly) {\n                    this.replaceUrl = true;\n                    wa(this.stream.getCurrentImageData().info.permalink);\n                }\n            ;\n                if (this.stream.canPage()) {\n                    this.setStagePagersState(\"ready\");\n                };\n                (this.ua && this.ua.add_event(\"ufi\"));\n            }\n        ;\n            if ((\"image\" in db)) {\n                this.checkState(bb.STATE_IMAGE_DATA);\n            };\n            if ((\"data\" in db)) {\n                this.checkState(bb.STATE_HTML);\n            };\n        },\n        setStagePagersState: function(cb) {\n            switch (cb) {\n              case \"ready\":\n                m.addClass(this.root, \"pagingReady\");\n                this.pagersShown = true;\n                (this.ua && this.ua.add_event(\"arrows\"));\n                return;\n              case \"active\":\n                m.addClass(this.root, \"pagingActivated\");\n                return;\n              case \"inactive\":\n                m.removeClass(this.root, \"pagingActivated\");\n                return;\n              case \"disabled\":\n            \n              case \"reset\":\n                m.removeClass(this.root, \"pagingReady\");\n                return;\n            };\n        },\n        deletePhoto: function(cb) {\n            this.closeRefresh();\n        },\n        closeRefresh: function() {\n            this.refreshOnClose = true;\n            this.closeHandler();\n        },\n        onHiliteTag: function(cb, db) {\n            if ((db.version != aa.VIEWER_SNOWLIFT)) {\n                return\n            };\n            var eb = db.tag;\n            if (eb) {\n                this.switchHilitedTags(eb, true);\n            };\n        },\n        onUpdateTagBox: function(cb, db) {\n            if ((db.version == aa.VIEWER_SNOWLIFT)) {\n                this.updateTagBox(db.id, db.approve);\n            };\n        }\n    });\n    e.exports = bb;\n});\n__d(\"Spotlight\", [\"JSXDOM\",\"Arbiter\",\"ArbiterMixin\",\"Class\",\"DOM\",\"Layer\",\"LayerAutoFocus\",\"LayerTabIsolation\",\"ModalLayer\",\"Vector\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"Class\"), k = b(\"DOM\"), l = b(\"Layer\"), m = b(\"LayerAutoFocus\"), n = b(\"LayerTabIsolation\"), o = b(\"ModalLayer\"), p = b(\"Vector\"), q = b(\"copyProperties\"), r = b(\"csx\"), s = b(\"cx\");\n    function t(v, w) {\n        this.parent.construct(this, v, w);\n        this.stageMinSize = new p(0, 0);\n        this.stagePadding = new p(0, 0);\n    };\n    j.extend(t, l);\n    q(t.prototype, i, {\n        stageMinSize: null,\n        stagePadding: null,\n        _buildWrapper: function(v, w) {\n            return (g.div({\n                className: \"_n8 _3qx\"\n            }, g.div({\n                className: \"_n9\"\n            }, w)));\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([u,m,n,o,]);\n        },\n        getContentRoot: function() {\n            if (!this._content) {\n                this._content = k.find(this.getRoot(), \"div._n3\");\n            };\n            return this._content;\n        },\n        configure: function(v) {\n            if (v.stageMinSize) {\n                this.stageMinSize = v.stageMinSize;\n            };\n            if (v.stagePadding) {\n                this.stagePadding = v.stagePadding;\n            };\n        },\n        onContentLoaded: function() {\n            this.inform(\"content-load\");\n        },\n        updatePermalink: function(v) {\n            this.inform(\"permalinkchange\", v);\n        }\n    });\n    function u(v) {\n        this._layer = v;\n    };\n    q(u.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(v, w) {\n                if ((v === \"show\")) {\n                    h.inform(\"layer_shown\", {\n                        type: \"Spotlight\"\n                    });\n                }\n                 else h.inform(\"layer_hidden\", {\n                    type: \"Spotlight\"\n                });\n            ;\n            });\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        }\n    });\n    e.exports = t;\n});");
36735 // 20729
36736 fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o7,"s59b577b526f180e5d77954be1f7288f31b8c5e38");
36737 // undefined
36738 o7 = null;
36739 // 20730
36740 geval("if (JSBNG__self.CavalryLogger) {\n    CavalryLogger.start_js([\"+h1d2\",]);\n}\n;\n;\n__d(\"ImageUtils\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n    var g = b(\"UserAgent\"), h = {\n        hasLoaded: function(i) {\n            if (((i.naturalWidth !== undefined))) {\n                return ((i.complete && ((i.width !== 0))));\n            }\n             else if (((((((i.height == 20)) && ((i.width == 20)))) && i.complete))) {\n                return false;\n            }\n             else if (((((i.complete === undefined)) && ((g.webkit() < 500))))) {\n                var j = new JSBNG__Image();\n                j.src = i.src;\n                return j.complete;\n            }\n            \n            \n        ;\n        ;\n            return i.complete;\n        }\n    };\n    e.exports = h;\n});\n__d(\"PhotoEverstoreLogger\", [\"JSBNG__Event\",\"AsyncRequest\",\"copyProperties\",\"ImageUtils\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\"), j = b(\"ImageUtils\"), k = {\n        BATCH_WINDOW_MS: 500,\n        storedLog: []\n    };\n    function l() {\n    \n    };\n;\n    i(l, {\n        _log: function(n) {\n            k.storedLog.push(n);\n            if (((k.storedLog.length == 1))) {\n                JSBNG__setTimeout(m, k.BATCH_WINDOW_MS, false);\n            }\n        ;\n        ;\n        },\n        logImmediately: function(n) {\n            l._log(n);\n        },\n        registerForLogging: function(n) {\n            if (j.hasLoaded(n)) {\n                l._log(n.src);\n            }\n             else g.listen(n, \"load\", function(JSBNG__event) {\n                l._log(n.src);\n            });\n        ;\n        ;\n        }\n    });\n    function m() {\n        var n = k.storedLog;\n        k.storedLog = [];\n        var o = JSON.stringify(n);\n        new h().setURI(\"/ajax/photos/logging/everstore_logging.php\").setData({\n            loggedUrls: o\n        }).setMethod(\"POST\").setOption(\"suppressErrorHandlerWarning\", true).setOption(\"suppressErrorAlerts\", true).send();\n    };\n;\n    e.exports = l;\n});\n__d(\"PhotoSessionLog\", [\"AsyncRequest\",\"Run\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"AsyncRequest\"), h = b(\"Run\"), i = b(\"Vector\"), j = b(\"copyProperties\");\n    function k() {\n    \n    };\n;\n    j(k, {\n        UNKNOWN: 0,\n        ESC: 1,\n        X: 2,\n        OUTSIDE: 3,\n        UNLOAD: 4,\n        NAVIGATE: 5,\n        AGGREGATE: 6,\n        LEAVE: 7,\n        PERMALINK: 0,\n        SNOWLIFT: 6,\n        AGGREGATION_COUNT: 20,\n        set: null,\n        time: null,\n        views: 0,\n        fbidList: [],\n        details: {\n        },\n        width: 0,\n        height: 0,\n        first: false,\n        last: false,\n        logIds: false,\n        version: null,\n        source: null,\n        buttonLikes: 0,\n        pagingAction: \"\",\n        faceTagImpressions: 0,\n        cycle: false,\n        endOfRelevant: false,\n        relevantCount: 0,\n        initLogging: function(l) {\n            this.set = null;\n            this.time = new JSBNG__Date();\n            this.views = 0;\n            this.hiResLoads = 0;\n            this.fullScreenViews = {\n            };\n            this.first = true;\n            this.last = false;\n            this.logIds = false;\n            this.version = l;\n            this.buttonLikes = 0;\n            this.pagingAction = \"\";\n            this.faceTagImpressions = 0;\n            this.cycle = false;\n            this.endOfRelevant = false;\n            this.relevantCount = 0;\n            if (((l === k.SNOWLIFT))) {\n                var m = i.getViewportDimensions();\n                this.width = m.x;\n                this.height = m.y;\n            }\n        ;\n        ;\n        },\n        setLogFbids: function(l) {\n            this.logIds = l;\n        },\n        setPhotoSet: function(l) {\n            this.set = l;\n        },\n        addButtonLike: function() {\n            this.buttonLikes++;\n        },\n        setPagingAction: function(l) {\n            this.pagingAction = l;\n        },\n        addFaceTagImpression: function() {\n            this.faceTagImpressions++;\n        },\n        setCycle: function(l) {\n            this.cycle = l;\n        },\n        setEndOfRelevant: function(l) {\n            this.endOfRelevant = l;\n        },\n        setRelevantCount: function(l) {\n            this.relevantCount = l;\n        },\n        setEndMetrics: function(l) {\n            this.endMetrics = l;\n        },\n        setSource: function(l) {\n            this.source = l;\n        },\n        addPhotoView: function(l, m, n) {\n            if (((this.logIds && ((this.views >= this.AGGREGATION_COUNT))))) {\n                this.logPhotoViews(this.AGGREGATE);\n            }\n        ;\n        ;\n            this.views++;\n            if (l) {\n                this.fbidList.push([l.fbid,l.owner,JSBNG__Date.now(),]);\n            }\n        ;\n        ;\n            if (m) {\n                this.hiResLoads++;\n            }\n        ;\n        ;\n            if (n) {\n                this.fullScreenViews[l.fbid] = true;\n            }\n        ;\n        ;\n        },\n        logEnterFullScreen: function(l) {\n            this.fullScreenViews[l] = true;\n        },\n        addDetailData: function(l, m) {\n            if (!this.details[l]) {\n                this.details[l] = {\n                    t: m.num_tags,\n                    l: m.has_location,\n                    c: m.has_caption,\n                    cm: m.comment_count,\n                    lk: m.like_count,\n                    w: m.width,\n                    h: m.height,\n                    ad: \"{}\",\n                    p: this.pagingAction\n                };\n            }\n        ;\n        ;\n        },\n        updateAdData: function(l, m) {\n            if (this.details[l]) {\n                this.details[l].ad = JSON.stringify(m);\n            }\n        ;\n        ;\n        },\n        logPhotoViews: function(l) {\n            if ((((!this.views) || ((((this.version === k.SNOWLIFT)) && ((l == k.LEAVE))))))) {\n                return;\n            }\n        ;\n        ;\n            if (((l != this.AGGREGATE))) {\n                this.last = true;\n            }\n        ;\n        ;\n            var m = {\n                set: this.set,\n                time: ((new JSBNG__Date() - this.time)),\n                fbids: ((this.logIds ? this.fbidList : [])),\n                details: ((this.logIds ? this.details : {\n                })),\n                first: this.first,\n                last: this.last,\n                close: ((l ? l : this.UNKNOWN)),\n                button_likes: this.buttonLikes,\n                version: this.version,\n                face_imp: this.faceTagImpressions,\n                endmetric: this.endMetrics,\n                cycle: this.cycle,\n                end_relev: this.endOfRelevant,\n                relev_count: this.relevantCount,\n                source: this.source\n            };\n            if (((this.version === k.SNOWLIFT))) {\n                var n = i.getViewportDimensions();\n                m.width = ((n.x || this.width));\n                m.height = ((n.y || this.height));\n                if (((this.hiResLoads > 0))) {\n                    m.hires_loads = this.hiResLoads;\n                }\n            ;\n            ;\n                if (this.last) {\n                    var o = Object.keys(this.fullScreenViews).length;\n                    if (((o > 0))) {\n                        m.fullscreen = o;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            new g().setURI(\"/ajax/photos/logging/session_logging.php\").setAllowCrossPageTransition(true).setOption(\"asynchronous\", ((l != k.UNLOAD))).setOption(\"suppressErrorHandlerWarning\", true).setData(m).send();\n            this.views = 0;\n            this.hiResLoads = 0;\n            this.fbidList = [];\n            this.details = {\n            };\n            this.first = false;\n            this.buttonLikes = 0;\n            if (this.last) {\n                this.set = null;\n                this.logIds = false;\n                this.fullScreenViews = {\n                };\n            }\n        ;\n        ;\n        }\n    });\n    h.onUnload(function() {\n        k.logPhotoViews(k.UNLOAD);\n    });\n    h.onLeave(function() {\n        k.logPhotoViews(k.LEAVE);\n    });\n    e.exports = k;\n});\n__d(\"PhotoViewerImage\", [\"PhotoEverstoreLogger\",\"URI\",\"Vector\",\"copyProperties\",], function(a, b, c, d, e, f) {\n    var g = b(\"PhotoEverstoreLogger\"), h = b(\"URI\"), i = b(\"Vector\"), j = b(\"copyProperties\");\n    function k(l) {\n        this._hiResDimensions = ((l.hiResDimensions && i.deserialize(l.hiResDimensions)));\n        this._normalDimensions = ((l.normalDimensions && i.deserialize(l.normalDimensions)));\n        this._info = l.info;\n        this._video = l.video;\n        this._shouldLog = l.everstoreLogThis;\n        this._hiResSrc = l.hiResSrc;\n        this._normalSrc = l.normalSrc;\n        this._thumbSrc = l.thumbSrc;\n        this._isInverted = false;\n        this._data = l;\n    };\n;\n    j(k.prototype, {\n        getURIString: function() {\n            return h(this._info.permalink).getUnqualifiedURI().toString();\n        },\n        hasHiResDimensions: function() {\n            return !!this._hiResDimensions;\n        },\n        getHiResDimensions: function() {\n            return this._hiResDimensions;\n        },\n        getNormalDimensions: function() {\n            return this._normalDimensions;\n        },\n        getHiResSrc: function() {\n            return this._hiResSrc;\n        },\n        getNormalSrc: function() {\n            return this._normalSrc;\n        },\n        getThumbSrc: function() {\n            return this._thumbSrc;\n        },\n        getInfo: function() {\n            return this._info;\n        },\n        getPermalink: function() {\n            return this._info.permalink;\n        },\n        getHighestResSrc: function() {\n            return ((this._hiResSrc || this._normalSrc));\n        },\n        preload: function(l) {\n            if (this.getHighestResSrc()) {\n                if (((l && !this._resource))) {\n                    this._resource = new JSBNG__Image();\n                    this._resource.src = this.getHighestResSrc();\n                    if (this._shouldLog) {\n                        g.logImmediately(this._resource.src);\n                    }\n                ;\n                ;\n                }\n                 else if (((!l && !this._small))) {\n                    this._small = new JSBNG__Image();\n                    this._small.src = ((this._normalSrc || this._hiResSrc));\n                    if (this._shouldLog) {\n                        g.logImmediately(this._small.src);\n                    }\n                ;\n                ;\n                }\n                \n            ;\n            }\n        ;\n        ;\n        },\n        setDimensions: function(l, m) {\n            this.widthRatio = ((l / this._hiResDimensions.x));\n            this.heightRatio = ((m / this._hiResDimensions.y));\n            this._hiResDimensions = this._hiResDimensions.mul(this.widthRatio, this.heightRatio);\n            this._normalDimensions = this._normalDimensions.mul(this.widthRatio, this.heightRatio);\n        },\n        invertDimensions: function() {\n            this._hiResDimensions = new i(this._hiResDimensions.y, this._hiResDimensions.x);\n            this._normalDimensions = new i(this._normalDimensions.y, this._normalDimensions.x);\n            this._isInverted = !this._isInverted;\n        },\n        copy: function() {\n            return new k(this._data);\n        }\n    });\n    e.exports = k;\n});\n__d(\"PhotosConst\", [], function(a, b, c, d, e, f) {\n    var g = {\n        VIEWER_PERMALINK: 0,\n        VIEWER_SNOWLIFT: 6,\n        VIEWER_VAULTBOX: 8,\n        BULK_EDITOR: 3,\n        FLASH_UPLOADER: 4,\n        HTML5_UPLOADER: 10,\n        SIZE_NORMAL: \"n\",\n        PIC_NORMAL_FBX_SIZE: 180\n    };\n    e.exports = g;\n});\n__d(\"PhotosUtils\", [\"copyProperties\",\"Vector\",], function(a, b, c, d, e, f) {\n    var g = b(\"copyProperties\"), h = b(\"Vector\");\n    function i() {\n    \n    };\n;\n    g(i, {\n        getNearestBox: function(j, k) {\n            var l = Infinity, m = null;\n            {\n                var fin287keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin287i = (0);\n                var n;\n                for (; (fin287i < fin287keys.length); (fin287i++)) {\n                    ((n) = (fin287keys[fin287i]));\n                    {\n                        var o = j[n];\n                        if (o.contains(k)) {\n                            var p = k.distanceTo(o.getCenter());\n                            if (((p < l))) {\n                                l = p;\n                                m = n;\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return m;\n        },\n        absoluteToNormalizedPosition: function(j, k) {\n            var l = h.getElementPosition(j), m = h.getElementDimensions(j), n = k.sub(l).mul(((100 / m.x)), ((100 / m.y)));\n            n.domain = \"pure\";\n            return n;\n        },\n        normalizedToAbsolutePosition: function(j, k) {\n            var l = h.getElementPosition(j), m = h.getElementDimensions(j), n = k.mul(((m.x / 100)), ((m.y / 100))).add(l);\n            n.domain = \"JSBNG__document\";\n            return n;\n        },\n        isFacebox: function(j) {\n            return j.match(/^face:/);\n        }\n    });\n    e.exports = i;\n});\n__d(\"PhotoStreamCache\", [\"DOM\",\"HTML\",\"PhotosConst\",\"PhotoEverstoreLogger\",\"PhotoViewerImage\",\"JSBNG__Rect\",\"UIPagelet\",\"URI\",\"Vector\",\"copyProperties\",\"createArrayFrom\",\"ge\",], function(a, b, c, d, e, f) {\n    var g = b(\"DOM\"), h = b(\"HTML\"), i = b(\"PhotosConst\"), j = b(\"PhotoEverstoreLogger\"), k = b(\"PhotoViewerImage\"), l = b(\"JSBNG__Rect\"), m = b(\"UIPagelet\"), n = b(\"URI\"), o = b(\"Vector\"), p = b(\"copyProperties\"), q = b(\"createArrayFrom\"), r = b(\"ge\");\n    function s() {\n    \n    };\n;\n    p(s, {\n        ERROR: \"error\",\n        HTML: \"html\",\n        IMAGE_DATA: \"image\",\n        EXTRA: \"extra\",\n        BUFFER_SIZE: 3,\n        INIT_BUCKET_SIZE: 4,\n        FULL_BUCKET_SIZE: 12,\n        ERROR_ID: -1,\n        INIT_PLACEHOLDER: 1\n    });\n    p(s.prototype, {\n        init: function(t, u, v) {\n            this.version = t;\n            this.pageletName = u;\n            this.pageletRootID = v;\n            this.bufferSize = s.BUFFER_SIZE;\n            this.fullBucketSize = s.FULL_BUCKET_SIZE;\n            this.initError = false;\n            this.isActive = true;\n            this.leftLock = false;\n            this.rightLock = false;\n            this.useAjaxPipe = true;\n            this.reset();\n        },\n        setUseAjaxPipe: function(t) {\n            this.useAjaxPipe = t;\n        },\n        reset: function() {\n            this.cache = {\n                image: {\n                },\n                extra: {\n                },\n                html: {\n                }\n            };\n            this.fbidList = [];\n            this.loaded = false;\n            this.allLoaded = false;\n            this.permalinkMap = {\n            };\n            this.position = 0;\n            this.totalCount = null;\n            this.firstCursor = null;\n            this.firstCursorIndex = null;\n        },\n        waitForInitData: function() {\n            this.fbidList.push(s.INIT_PLACEHOLDER);\n        },\n        destroy: function() {\n            this.reset();\n            this.isActive = false;\n        },\n        isLoaded: function() {\n            return this.loaded;\n        },\n        canPage: function() {\n            if (!this.isLoaded()) {\n                return false;\n            }\n        ;\n        ;\n            if (((this.totalCount !== null))) {\n                return ((this.totalCount > 1));\n            }\n        ;\n        ;\n            return ((this.getLength() > 1));\n        },\n        errorInCurrent: function() {\n            if (this.initError) {\n                return true;\n            }\n             else if (!this.isLoaded()) {\n                return false;\n            }\n            \n        ;\n        ;\n            return this.checkErrorAt(this.getCursor());\n        },\n        getLength: function() {\n            return this.fbidList.length;\n        },\n        getPhotoSet: function() {\n            return this.photoSetQuery.set;\n        },\n        getPhotoSetQuery: function() {\n            return this.photoSetQuery;\n        },\n        getCurrentImageData: function() {\n            return this.getImageData(this.getCursor());\n        },\n        getImageData: function(t) {\n            return this.getCacheContent(t, s.IMAGE_DATA);\n        },\n        getCurrentHtml: function() {\n            return this.getCacheContent(this.getCursor(), s.HTML);\n        },\n        getCurrentExtraData: function() {\n            return this.getCacheContent(this.getCursor(), s.EXTRA);\n        },\n        getCacheContent: function(t, u) {\n            if (((((!t || ((t === s.ERROR_ID)))) || ((t === s.INIT_PLACEHOLDER))))) {\n                return null;\n            }\n        ;\n        ;\n            return this.cache[u][t];\n        },\n        getCursorPos: function() {\n            return this.position;\n        },\n        getCursor: function() {\n            if (((((this.position >= 0)) && ((this.position < this.getLength()))))) {\n                return this.fbidList[this.position];\n            }\n        ;\n        ;\n            return null;\n        },\n        getCursorForURI: function(t) {\n            return this.permalinkMap[t];\n        },\n        calculatePositionForMovement: function(t) {\n            var u = ((this.position + t));\n            if (this.allLoaded) {\n                var v = this.getLength();\n                u = ((((v + ((u % v)))) % v));\n            }\n        ;\n        ;\n            return u;\n        },\n        isValidMovement: function(t) {\n            if (((!this.isLoaded() || !this.canPage()))) {\n                return false;\n            }\n        ;\n        ;\n            var u = this.calculatePositionForMovement(t);\n            return ((((this.getCursor() > 0)) || ((((u >= 0)) && ((u < this.getLength()))))));\n        },\n        moveCursor: function(t) {\n            if (!this.isValidMovement(t)) {\n                return;\n            }\n        ;\n        ;\n            this.position = this.calculatePositionForMovement(t);\n            if (((t !== 0))) {\n                this.loadMoreIfNeccessary(((t > 0)));\n            }\n        ;\n        ;\n        },\n        checkErrorAt: function(t) {\n            if (!this.isLoaded()) {\n                return false;\n            }\n        ;\n        ;\n            if (((t === s.ERROR_ID))) {\n                return true;\n            }\n        ;\n        ;\n            return false;\n        },\n        getRelativeMovement: function(t) {\n            for (var u = 0; ((u < this.getLength())); u++) {\n                if (((this.fbidList[u] == t))) {\n                    return ((u - this.position));\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        preloadImages: function(t) {\n            var u, v, w = this.getLength(), x = this.cache.image, y = s.BUFFER_SIZE;\n            if (((w > ((y * 2))))) {\n                u = ((((((this.position + w)) - ((y % w)))) % w));\n                v = ((((this.position + y)) % w));\n            }\n             else {\n                u = 0;\n                v = ((w - 1));\n            }\n        ;\n        ;\n            while (((u != v))) {\n                var z = this.fbidList[u];\n                if (((this.version === i.VIEWER_VAULTBOX))) {\n                    ((x[z] && x[z].preload(t)));\n                }\n                 else if (((x[z] && x[z].url))) {\n                    if (((t && !x[z].resource))) {\n                        x[z].resource = new JSBNG__Image();\n                        x[z].resource.src = x[z].url;\n                        if (((x[z].everstoreLogThis === true))) {\n                            j.logImmediately(x[z].resource.src);\n                        }\n                    ;\n                    ;\n                    }\n                     else if (((!t && !x[z].small))) {\n                        x[z].small = new JSBNG__Image();\n                        x[z].small.src = ((x[z].smallurl || x[z].url));\n                        if (((x[z].everstoreLogThis === true))) {\n                            j.logImmediately(x[z].small.src);\n                        }\n                    ;\n                    ;\n                    }\n                    \n                ;\n                }\n                \n            ;\n            ;\n                u = ((((u + 1)) % w));\n            };\n        ;\n        },\n        loadMoreIfNeccessary: function(t) {\n            if (((((this.allLoaded || ((t && this.rightLock)))) || ((!t && this.leftLock))))) {\n                return;\n            }\n        ;\n        ;\n            var u = ((t ? 1 : -1)), v = ((this.position + ((this.bufferSize * u))));\n            if (((((v < 0)) && !this.checkErrorAt(this.getEndCursor(false))))) {\n                this.leftLock = true;\n                this.fetch(this.fullBucketSize, false);\n            }\n             else if (((((v > this.getLength())) && !this.checkErrorAt(this.getEndCursor(true))))) {\n                this.rightLock = true;\n                this.fetch(this.fullBucketSize, true);\n            }\n            \n        ;\n        ;\n        },\n        getEndCursor: function(t) {\n            return ((t ? this.fbidList[((this.getLength() - 1))] : this.fbidList[0]));\n        },\n        calculateRelativeIndex: function(t, u, v) {\n            if (!this.totalCount) {\n                return null;\n            }\n        ;\n        ;\n            var w = this.fbidList.indexOf(u), x = this.fbidList.indexOf(v);\n            if (((((w === -1)) || ((x === -1))))) {\n                return null;\n            }\n        ;\n        ;\n            var y = ((x - w));\n            return ((((((t + y)) + this.totalCount)) % this.totalCount));\n        },\n        calculateDistance: function(t, u) {\n            var v = this.fbidList.indexOf(t), w = this.fbidList.indexOf(u);\n            if (((((v === -1)) || ((w === -1))))) {\n                return null;\n            }\n        ;\n        ;\n            return ((((((w - v)) + this.getLength())) % this.getLength()));\n        },\n        fetch: function(t, u) {\n            var v = this.getEndCursor(u), w = p({\n                cursor: v,\n                version: this.version,\n                end: this.getEndCursor(!u),\n                fetchSize: ((u ? t : ((-1 * t)))),\n                relevant_count: this.relevantCount\n            }, this.photoSetQuery);\n            if (((this.totalCount && ((this.firstCursorIndex !== null))))) {\n                w.total = this.totalCount;\n                w.cursorIndex = this.calculateRelativeIndex(this.firstCursorIndex, this.firstCursor, v);\n            }\n        ;\n        ;\n            var x = r(this.pageletRootID);\n            if (!x) {\n                x = g.create(\"div\", {\n                    id: this.pageletRootID\n                });\n                g.appendContent(JSBNG__document.body, x);\n            }\n        ;\n        ;\n            m.loadFromEndpoint(this.pageletName, x, w, {\n                usePipe: this.useAjaxPipe,\n                automatic: true,\n                jsNonblock: true,\n                crossPage: true\n            });\n            if (!this.useAjaxPipe) {\n                this.setUseAjaxPipe(true);\n            }\n        ;\n        ;\n        },\n        storeToCache: function(t) {\n            var u = {\n            };\n            if (!this.isActive) {\n                return u;\n            }\n        ;\n        ;\n            if (((\"error\" in t))) {\n                this.processErrorResult(t.error);\n                u.error = true;\n                return u;\n            }\n        ;\n        ;\n            if (((\"init\" in t))) {\n                this.processInitResult(t.init);\n                u.init = {\n                    logids: t.init.logids,\n                    fbid: t.init.fbid,\n                    loggedin: t.init.loggedin,\n                    fromad: t.init.fromad,\n                    disablesessionads: t.init.disablesessionads,\n                    flashtags: t.init.flashtags\n                };\n            }\n        ;\n        ;\n            if (((\"image\" in t))) {\n                this.processImageResult(t.image);\n                u.image = true;\n            }\n        ;\n        ;\n            if (((\"data\" in t))) {\n                this.processDataResult(t.data);\n                u.data = true;\n            }\n        ;\n        ;\n            return u;\n        },\n        processInitResult: function(t) {\n            if (this.loaded) {\n                return;\n            }\n        ;\n        ;\n            this.loaded = true;\n            this.photoSetQuery = t.query;\n            if (t.bufferSize) {\n                this.bufferSize = t.bufferSize;\n            }\n        ;\n        ;\n            if (t.fullBucketSize) {\n                this.fullBucketSize = t.fullBucketSize;\n            }\n        ;\n        ;\n            if (((this.fbidList.length === 0))) {\n                this.fbidList.push(t.fbid);\n                this.rightLock = true;\n            }\n             else {\n                var u = this.fbidList.indexOf(s.INIT_PLACEHOLDER);\n                if (((u != -1))) {\n                    this.fbidList[u] = t.fbid;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this.firstCursor = t.fbid;\n            if (((((\"initIndex\" in t)) && ((\"totalCount\" in t))))) {\n                this.firstCursorIndex = t.initIndex;\n                this.totalCount = t.totalCount;\n            }\n        ;\n        ;\n            if (((this.version == i.VIEWER_PERMALINK))) {\n                this.fetch(s.INIT_BUCKET_SIZE, true);\n            }\n        ;\n        ;\n        },\n        processImageResult: function(t) {\n            {\n                var fin288keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin288i = (0);\n                var u;\n                for (; (fin288i < fin288keys.length); (fin288i++)) {\n                    ((u) = (fin288keys[fin288i]));\n                    {\n                        if (((((u === this.firstCursor)) && t[u].everstoreLogThis))) {\n                            j.logImmediately(t[u].url);\n                        }\n                    ;\n                    ;\n                        if (((this.version === i.VIEWER_VAULTBOX))) {\n                            var v = t[u];\n                            this.cache.image[u] = new k(v);\n                            this.permalinkMap[this.cache.image[u].getURIString()] = u;\n                        }\n                         else {\n                            this.cache.image[u] = t[u];\n                            if (t[u].dimensions) {\n                                this.cache.image[u].dimensions = o.deserialize(t[u].dimensions);\n                            }\n                        ;\n                        ;\n                            if (t[u].smalldims) {\n                                this.cache.image[u].smalldims = o.deserialize(t[u].smalldims);\n                            }\n                        ;\n                        ;\n                            this.permalinkMap[n(t[u].info.permalink).getUnqualifiedURI().toString()] = u;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n        },\n        attachToFbidsList: function(t, u, v) {\n            if (this.allLoaded) {\n                return;\n            }\n        ;\n        ;\n            if (((u === -1))) {\n                for (var w = ((t.length - 1)); ((w >= 0)); w--) {\n                    this.fbidList.unshift(t[w]);\n                    this.position++;\n                };\n            ;\n                this.leftLock = false;\n            }\n             else {\n                for (var x = 0; ((x < t.length)); x++) {\n                    this.fbidList.push(t[x]);\n                ;\n                };\n            ;\n                this.rightLock = false;\n            }\n        ;\n        ;\n            if (v) {\n                this.setAllLoaded();\n            }\n        ;\n        ;\n        },\n        setAllLoaded: function() {\n            this.allLoaded = true;\n            if (((this.getCursor() === null))) {\n                this.position = this.calculatePositionForMovement(0);\n            }\n        ;\n        ;\n        },\n        processDataResult: function(t) {\n            {\n                var fin289keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin289i = (0);\n                var u;\n                for (; (fin289i < fin289keys.length); (fin289i++)) {\n                    ((u) = (fin289keys[fin289i]));\n                    {\n                        if (!this.cache.html[u]) {\n                            this.cache.html[u] = {\n                            };\n                        }\n                    ;\n                    ;\n                        {\n                            var fin290keys = ((window.top.JSBNG_Replay.forInKeys)((t[u].html))), fin290i = (0);\n                            var v;\n                            for (; (fin290i < fin290keys.length); (fin290i++)) {\n                                ((v) = (fin290keys[fin290i]));\n                                {\n                                    var w = t[u].html[v];\n                                    if (((typeof w === \"string\"))) {\n                                        w = h(w).getRootNode();\n                                    }\n                                ;\n                                ;\n                                    this.cache.html[u][v] = q(w.childNodes);\n                                };\n                            };\n                        };\n                    ;\n                        if (!((\"extra\" in t[u]))) {\n                            this.cache.extra[u] = null;\n                            continue;\n                        }\n                    ;\n                    ;\n                        this.cache.extra[u] = {\n                            tagRects: {\n                            }\n                        };\n                        if (!Array.isArray(t[u].extra.tagRects)) {\n                            {\n                                var fin291keys = ((window.top.JSBNG_Replay.forInKeys)((t[u].extra.tagRects))), fin291i = (0);\n                                var x;\n                                for (; (fin291i < fin291keys.length); (fin291i++)) {\n                                    ((x) = (fin291keys[fin291i]));\n                                    {\n                                        if (t[u].extra.tagRects[x]) {\n                                            this.cache.extra[u].tagRects[x] = l.deserialize(t[u].extra.tagRects[x]);\n                                        }\n                                    ;\n                                    ;\n                                    };\n                                };\n                            };\n                        }\n                    ;\n                    ;\n                        Object.keys(t[u].extra).forEach(function(y) {\n                            if (((y == \"tagRects\"))) {\n                                return;\n                            }\n                        ;\n                        ;\n                            this.cache.extra[u][y] = t[u].extra[y];\n                        }.bind(this));\n                    };\n                };\n            };\n        ;\n        },\n        processErrorResult: function(t) {\n            if (!this.isLoaded()) {\n                this.initError = true;\n                return;\n            }\n        ;\n        ;\n            var u = t.side, v = [s.ERROR_ID,];\n            this.attachToFbidsList(v, u);\n        },\n        setTotalCount: function(t) {\n            this.totalCount = t;\n        },\n        setFirstCursorIndex: function(t) {\n            this.firstCursorIndex = t;\n        }\n    });\n    e.exports = s;\n});\n__d(\"PhotoSnowliftAds\", [\"JSBNG__Event\",\"copyProperties\",\"CSS\",\"csx\",\"DataStore\",\"DOM\",\"PhotoSessionLog\",\"UIPagelet\",\"URI\",\"Vector\",\"extendArray\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"CSS\"), j = b(\"csx\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"PhotoSessionLog\"), n = b(\"UIPagelet\"), o = b(\"URI\"), p = b(\"Vector\"), q = b(\"extendArray\"), r = {\n        DEFAULT_UNITS_REFRESH_RATE: 30000,\n        UNITS_REGISTER_DELAY: 1000,\n        root: null,\n        availableDimensions: null,\n        loadQuery: null,\n        lastLoadTime: 0,\n        minAds: 100,\n        units: null,\n        isLogAdData: null,\n        displayedCallback: null,\n        refreshUnitsRate: null,\n        position: null,\n        adsStatus: \"null\",\n        adsEvents: {\n        },\n        snowliftRedesign: false,\n        resetEvents: function() {\n            this.adsStatus = \"reset\";\n            this.adsEvents = {\n            };\n        },\n        addEvent: function(s, t) {\n            if (t) {\n                this.adsStatus = s;\n            }\n        ;\n        ;\n            var u = JSBNG__Date.now();\n            this.adsEvents[((((s + \"_\")) + u))] = u;\n        },\n        init: function(s, t, u, v) {\n            this.reset();\n            this.root = s;\n            this.snowlift = t;\n            this.minAds = u.min_ads;\n            this.displayedCallback = v;\n            this.addEvent(\"init\", true);\n            this.snowliftRedesign = u.snowlift_redesign;\n            this.refreshUnitsRate = r.DEFAULT_UNITS_REFRESH_RATE;\n            if (u.refresh_fast) {\n                this.refreshUnitsRate = u.refresh_rate;\n            }\n        ;\n        ;\n        },\n        reset: function() {\n            this.lastLoadTime = 0;\n            this.position = 0;\n            this.units = [];\n            this.resetEvents();\n            this.addEvent(\"reset\", true);\n        },\n        resize: function(s) {\n            this.availableDimensions = s;\n            this.loadQuery = this.snowlift.getLoadQuery();\n            this.processResize();\n        },\n        calculateUnitSizes: function(s, t, u) {\n            var v = {\n            };\n            s.forEach(function(w) {\n                var x = w.root.firstChild.offsetHeight;\n                w.units.forEach(function(z) {\n                    if (((!i.hasClass(z, \"hidden\") && !((this.getIsAds(z) && this.getIsHoldout(z)))))) {\n                        var aa = this.getHeight(z.firstChild, t);\n                        x -= aa;\n                    }\n                ;\n                ;\n                }.bind(this));\n                var y = {\n                    height: x,\n                    visible: false\n                };\n                w.units.forEach(function(z) {\n                    var aa = this.getIsAds(z), ba = this.getHeight(z.firstChild, t), ca = this.getUnitId(z), da = ((aa && this.getIsHoldout(z)));\n                    if (((da && u))) {\n                        return;\n                    }\n                ;\n                ;\n                    v[ca] = {\n                        height: ba,\n                        visible: false,\n                        priority: 0,\n                        is_ads: aa,\n                        is_holdout: da,\n                        section_ref: y\n                    };\n                }.bind(this));\n            }.bind(this));\n            return v;\n        },\n        calculateVisibleUnits: function(s, t, u) {\n            var v = 0, w = this.getUnitPriority(t);\n            w.forEach(function(x) {\n                if (t.hasOwnProperty(x)) {\n                    var y = t[x], z = y.height;\n                    if (!y.section_ref.visible) {\n                        z += y.section_ref.height;\n                    }\n                ;\n                ;\n                    y.height_below = ((u - z));\n                    y.visible = ((((y.height_below >= 0)) && ((z > 0))));\n                    if (y.visible) {\n                        y.section_ref.visible = true;\n                        u -= z;\n                        v++;\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            return t;\n        },\n        displayUnits: function(s, t) {\n            s.forEach(function(u) {\n                var v = false, w = true;\n                u.units.forEach(function(x) {\n                    var y = this.getUnitId(x), z = t[y];\n                    if (!z) {\n                        return;\n                    }\n                ;\n                ;\n                    var aa = z.visible, ba = z.height_below, ca = z.is_ads;\n                    i.conditionClass(x, \"hidden\", !aa);\n                    if (((((ca && aa)) && w))) {\n                        var da = l.JSBNG__find(x, \"div.ego_unit\");\n                        i.addClass(da, \"ego_unit_no_top_border\");\n                        w = false;\n                    }\n                ;\n                ;\n                    v = ((v || aa));\n                    this.calcUnitStats(this.units[ca][y], aa, ba);\n                }.bind(this));\n                i.conditionClass(u.root, \"hidden\", !v);\n            }.bind(this));\n        },\n        getUnitsDisplayed: function(s, t) {\n            var u = 0;\n            s.forEach(function(v) {\n                v.units.forEach(function(w) {\n                    var x = this.getUnitId(w), y = t[x];\n                    if (((!y || !y.visible))) {\n                        return;\n                    }\n                ;\n                ;\n                    u++;\n                }.bind(this));\n            }.bind(this));\n            return u;\n        },\n        getHeightsRequired: function(s, t) {\n            var u = 0, v = [];\n            s.forEach(function(w) {\n                var x = false;\n                w.units.forEach(function(y) {\n                    var z = this.getUnitId(y), aa = t[z];\n                    if (!aa) {\n                        return;\n                    }\n                ;\n                ;\n                    u += aa.height;\n                    if (!x) {\n                        u += aa.section_ref.height;\n                        x = true;\n                    }\n                ;\n                ;\n                    v.push(u);\n                }.bind(this));\n            }.bind(this));\n            return v;\n        },\n        getUnitPriority: function(s) {\n            var t = [], u = 0, v = 0;\n            {\n                var fin292keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin292i = (0);\n                var w;\n                for (; (fin292i < fin292keys.length); (fin292i++)) {\n                    ((w) = (fin292keys[fin292i]));\n                    {\n                        var x = s[w];\n                        t.push(w);\n                        var y = ((((this.minAds + u)) + v));\n                        if (x.is_ads) {\n                            if (((v < this.minAds))) {\n                                y = v;\n                            }\n                        ;\n                        ;\n                            v++;\n                        }\n                         else u++;\n                    ;\n                    ;\n                        x.priority = y;\n                    };\n                };\n            };\n        ;\n            t = t.sort(function(z, aa) {\n                var ba = s[z], ca = s[aa];\n                return ((ba.priority - ca.priority));\n            }.bind(this));\n            return t;\n        },\n        updateUnitsStatus: function() {\n            var s = this.availableDimensions.x, t = this.availableDimensions.y, u = this.calculateUnitSizes(this.sections, s);\n            u = this.calculateVisibleUnits(this.sections, u, t);\n            {\n                var fin293keys = ((window.top.JSBNG_Replay.forInKeys)((u))), fin293i = (0);\n                var v;\n                for (; (fin293i < fin293keys.length); (fin293i++)) {\n                    ((v) = (fin293keys[fin293i]));\n                    {\n                        if (!u.hasOwnProperty(v)) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var w = u[v];\n                        if (((!w.is_holdout || !w.visible))) {\n                            continue;\n                        }\n                    ;\n                    ;\n                        var x = this.units[1][v];\n                        this.calcUnitStats(x, w.visible, w.height_below);\n                    };\n                };\n            };\n        ;\n            u = this.calculateUnitSizes(this.sections, s, true);\n            u = this.calculateVisibleUnits(this.sections, u, t);\n            this.displayUnits(this.sections, u);\n            if (this.displayedCallback) {\n                var y = this.getUnitsDisplayed(this.sections, u), z = this.getHeightsRequired(this.sections, u);\n                this.displayedCallback(y, z);\n            }\n        ;\n        ;\n        },\n        calcUnitStats: function(s, t, u) {\n            var v = JSBNG__Date.now();\n            if (s.visible) {\n                s.totalTime += ((v - s.lastShowTime));\n            }\n        ;\n        ;\n            if (((((s.trackingCode !== null)) && ((s.totalTime >= this.UNITS_REGISTER_DELAY))))) {\n                var w = s.trackingCode;\n                s.trackingCode = null;\n                this.registerImpression(w, s.registerUrl);\n            }\n        ;\n        ;\n            s.visible = t;\n            s.heightBelow = u;\n            s.lastShowTime = v;\n        },\n        prepareResize: function() {\n            var s = function(t) {\n                var u = l.create(\"div\", {\n                    className: \"JSBNG__inner\"\n                }), v = l.create(\"div\", {\n                    className: \"wrapper\"\n                }, u);\n                l.replace(t, v);\n                l.setContent(u, t);\n                return v;\n            };\n            this.sections = l.scry(this.root, \"div.ego_section\").map(function(t) {\n                return {\n                    root: s(t),\n                    units: l.scry(t, \"div.ego_unit\").map(s)\n                };\n            });\n        },\n        processResize: function() {\n            if (((((this.isLoading || ((this.lastLoadTime === 0)))) || ((this.availableDimensions === null))))) {\n                this.setLogData();\n                return;\n            }\n        ;\n        ;\n            this.updateUnitsStatus();\n            this.setLogData();\n            var s = this.nextRegisterTime();\n            if (((s !== Infinity))) {\n                this.processResize.bind(this).defer(s, true);\n            }\n        ;\n        ;\n        },\n        setIsLogAdData: function(s) {\n            this.isLogAdData = s;\n            this.addEvent(\"setIsLogAdData\", false);\n            this.setLogData();\n        },\n        setLogData: function() {\n            var s = this.snowlift.getImageId();\n            if (((this.isLogAdData && s))) {\n                var t = p.getElementDimensions(this.snowlift.getImage()), u = p.getElementDimensions(this.snowlift.getRHCHeader()), v = p.getElementDimensions(this.snowlift.getRHCBody()), w = p.getElementDimensions(this.snowlift.getRHCFooter()), x = {\n                    query_set: this.snowlift.getLoadQuery().set,\n                    window_x: window.JSBNG__innerWidth,\n                    window_y: window.JSBNG__innerHeight,\n                    image_x: t.x,\n                    image_y: t.y,\n                    header_x: u.x,\n                    header_y: u.y,\n                    body_x: v.x,\n                    body_y: v.y,\n                    footer_x: w.x,\n                    footer_y: w.y,\n                    ads_below_space: this.getAdsBelowSpace(),\n                    time: JSBNG__Date.now(),\n                    adsStatus: this.adsStatus,\n                    adsEvents: this.adsEvents,\n                    refreshRate: this.refreshUnitsRate,\n                    position: this.position\n                };\n                m.updateAdData(s, x);\n            }\n        ;\n        ;\n        },\n        getAdsBelowSpace: function() {\n            var s = [], t = this.units[1];\n            {\n                var fin294keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin294i = (0);\n                var u;\n                for (; (fin294i < fin294keys.length); (fin294i++)) {\n                    ((u) = (fin294keys[fin294i]));\n                    {\n                        if (((t.hasOwnProperty(u) && !this.getIsHoldout(this.getAdUnit(u))))) {\n                            s.push(t[u].heightBelow);\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return s;\n        },\n        getIsAds: function(s) {\n            var t = l.scry(s, \"div._4u8\");\n            return t.length;\n        },\n        getUnitId: function(s) {\n            if (this.getIsAds(s)) {\n                return this.getAdId(s);\n            }\n             else return this.getEgoId(s)\n        ;\n        },\n        getEgoId: function(s) {\n            var t = l.JSBNG__find(s, \"div.ego_unit\");\n            return t.getAttribute(\"data-ego-fbid\");\n        },\n        getAdData: function(s) {\n            var t = l.JSBNG__find(s, \"div._4u8\"), u = t.getAttribute(\"data-ad\");\n            return ((((u && JSON.parse(u))) || {\n            }));\n        },\n        getAdId: function(s) {\n            return this.getAdData(s).adid;\n        },\n        getIsHoldout: function(s) {\n            return ((s && this.getAdData(s).holdout));\n        },\n        getAdUnit: function(s) {\n            if (!this.sections) {\n                return null;\n            }\n        ;\n        ;\n            var t = [];\n            this.sections.forEach(function(v) {\n                q(t, v.units);\n            });\n            for (var u = 0; ((u < t.length)); u++) {\n                if (((this.getIsAds(t[u]) && ((this.getAdId(t[u]) == s))))) {\n                    return t[u];\n                }\n            ;\n            ;\n            };\n        ;\n            return null;\n        },\n        nextRegisterTime: function() {\n            var s = Infinity, t = h(h({\n            }, this.units[0]), this.units[1]);\n            {\n                var fin295keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin295i = (0);\n                var u;\n                for (; (fin295i < fin295keys.length); (fin295i++)) {\n                    ((u) = (fin295keys[fin295i]));\n                    {\n                        if (t.hasOwnProperty(u)) {\n                            var v = t[u];\n                            if (((((v.trackingCode !== null)) && v.visible))) {\n                                s = Math.min(s, ((this.UNITS_REGISTER_DELAY - v.totalTime)));\n                            }\n                        ;\n                        ;\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            return s;\n        },\n        getHeight: function(s, t) {\n            var u = k.get(s, \"height\");\n            if (((u && ((u.x === t))))) {\n                return u.y;\n            }\n        ;\n        ;\n            return this.cacheHeight(s, t);\n        },\n        cacheHeight: function(s, t) {\n            var u = {\n                x: t,\n                y: s.offsetHeight\n            };\n            k.set(s, \"height\", u);\n            return u.y;\n        },\n        loadAdsAndEgo: function() {\n            this.resetEvents();\n            this.addEvent(\"adsRequested\", true);\n            this.position++;\n            n.loadFromEndpoint(\"WebEgoPane\", this.root, {\n                pid: 34,\n                data: [this.loadQuery.set,this.getCursorFBID(this.loadQuery),this.snowliftRedesign,]\n            }, {\n                crossPage: true,\n                bundle: false\n            });\n        },\n        getCursorFBID: function(s) {\n            if (((s.v !== undefined))) {\n                return s.v;\n            }\n        ;\n        ;\n            if (((s.fbid !== undefined))) {\n                return s.fbid;\n            }\n        ;\n        ;\n            return \"0\";\n        },\n        unitsLoaded: function(s, t) {\n            var u;\n            if (t) {\n                u = \"/ai.php\";\n                this.addEvent(\"adsLoaded\", true);\n            }\n             else {\n                u = \"/ajax/ei.php\";\n                this.addEvent(\"egoLoaded\", true);\n            }\n        ;\n        ;\n            var v = {\n            };\n            {\n                var fin296keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin296i = (0);\n                var w;\n                for (; (fin296i < fin296keys.length); (fin296i++)) {\n                    ((w) = (fin296keys[fin296i]));\n                    {\n                        if (s.hasOwnProperty(w)) {\n                            v[w] = {\n                                trackingCode: s[w],\n                                totalTime: 0,\n                                lastShowTime: 0,\n                                heightBelow: -10000,\n                                visible: false,\n                                registerUrl: u\n                            };\n                        }\n                    ;\n                    ;\n                    };\n                };\n            };\n        ;\n            this.units[t] = v;\n            if (t) {\n                this.waitForImages(this.imagesLoaded.bind(this));\n            }\n        ;\n        ;\n        },\n        imagesLoaded: function() {\n            this.prepareResize();\n            this.addEvent(\"imagesLoaded\", true);\n            this.lastLoadTime = JSBNG__Date.now();\n            this.isLoading = false;\n            this.processResize();\n            i.removeClass(this.root, \"loading\");\n        },\n        loadAdsFromUserActivity: function() {\n            var s = JSBNG__Date.now(), t = this.refreshUnitsRate;\n            if (((!this.isLoading && ((((s - this.lastLoadTime)) > t))))) {\n                i.addClass(this.root, \"loading\");\n                this.isLoading = true;\n                this.loadAdsAndEgo();\n            }\n        ;\n        ;\n        },\n        registerImpression: function(s, t) {\n            var u = l.create(\"div\", {\n                src: o(t).addQueryData({\n                    aed: s\n                }),\n                width: 0,\n                height: 0,\n                frameborder: 0,\n                scrolling: \"no\",\n                className: \"fbEmuTracking\"\n            });\n            u.setAttribute(\"aria-hidden\", \"true\");\n            l.appendContent(this.root, u);\n        },\n        waitForImages: function(s) {\n            var t = l.scry(this.root, \"img.img\"), u = t.length, v = u;\n            if (((v === 0))) {\n                s();\n            }\n        ;\n        ;\n            var w = function() {\n                v--;\n                if (((v === 0))) {\n                    s.defer();\n                }\n            ;\n            ;\n            };\n            for (var x = 0; ((x < u)); x++) {\n                var y = t[x];\n                if (y.complete) {\n                    w();\n                }\n                 else g.listen(y, {\n                    load: w,\n                    error: w,\n                    abort: w\n                });\n            ;\n            ;\n            };\n        ;\n        }\n    };\n    e.exports = r;\n});\n__d(\"PhotoViewer\", [\"Bootloader\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n    var g = b(\"Bootloader\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n    function j() {\n        this.image = null;\n        this.root = null;\n        this.stream = null;\n    };\n;\n    h(j, {\n        bootstrap: function(k, l) {\n            g.loadModules([\"PhotoSnowlift\",], function(m) {\n                m.bootstrap(k, l);\n            });\n        }\n    });\n    h(j.prototype, {\n        getEventPrefix: i.thatReturnsNull,\n        getEventString: function(k) {\n            var l = this.getEventPrefix();\n            if (l) {\n                return ((((l + \".\")) + k));\n            }\n        ;\n        ;\n            return null;\n        },\n        getImage: function() {\n            return this.image;\n        },\n        getPosition: function() {\n            return ((this.stream ? this.stream.getCursor() : null));\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        getSourceString: i.thatReturnsNull,\n        getVersionConst: i.thatReturnsNull,\n        getViewerSource: i.thatReturnsNull,\n        getViewerSet: i.thatReturnsNull\n    });\n    e.exports = j;\n});\n__d(\"PhotoSnowlift\", [\"function-extensions\",\"Arbiter\",\"AsyncDialog\",\"AsyncRequest\",\"Bootloader\",\"Class\",\"collectDataAttributes\",\"CSS\",\"Dialog\",\"DOM\",\"DOMControl\",\"JSBNG__Event\",\"FullScreen\",\"Input\",\"ImageUtils\",\"Keys\",\"Layer\",\"LinkController\",\"Locale\",\"PageTransitions\",\"Parent\",\"PhotosConst\",\"PhotoSessionLog\",\"PhotoSnowliftAds\",\"PhotoStreamCache\",\"PhotosUtils\",\"PhotoViewer\",\"JSBNG__Rect\",\"ScrollableArea\",\"Style\",\"Toggler\",\"UIPagelet\",\"URI\",\"UserAgent\",\"Vector\",\"$\",\"asyncCallback\",\"computeRelativeURI\",\"copyProperties\",\"createArrayFrom\",\"csx\",\"emptyFunction\",\"ge\",\"goURI\",\"shield\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n    b(\"function-extensions\");\n    var g = b(\"Arbiter\"), h = b(\"AsyncDialog\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Class\"), l = b(\"collectDataAttributes\"), m = b(\"CSS\"), n = b(\"Dialog\"), o = b(\"DOM\"), p = b(\"DOMControl\"), q = b(\"JSBNG__Event\"), r = b(\"FullScreen\"), s = b(\"Input\"), t = b(\"ImageUtils\"), u = b(\"Keys\"), v = b(\"Layer\"), w = b(\"LinkController\"), x = b(\"Locale\"), y = b(\"PageTransitions\"), z = b(\"Parent\"), aa = b(\"PhotosConst\"), ba = b(\"PhotoSessionLog\"), ca = b(\"PhotoSnowliftAds\"), da = b(\"PhotoStreamCache\"), ea = b(\"PhotosUtils\"), fa = b(\"PhotoViewer\"), ga = b(\"JSBNG__Rect\"), ha = b(\"ScrollableArea\"), ia = b(\"Style\"), ja = b(\"Toggler\"), ka = b(\"UIPagelet\"), la = b(\"URI\"), ma = b(\"UserAgent\"), na = b(\"Vector\"), oa = b(\"$\"), pa = b(\"asyncCallback\"), qa = b(\"computeRelativeURI\"), ra = b(\"copyProperties\"), sa = b(\"createArrayFrom\"), ta = b(\"csx\"), ua = b(\"emptyFunction\"), va = b(\"ge\"), wa = b(\"goURI\"), xa = b(\"shield\"), ya = b(\"startsWith\"), za = b(\"tx\"), ab = b(\"userAction\");\n    function bb() {\n        this.parent.construct(this);\n    };\n;\n    ra(bb, {\n        STATE_ERROR: \"error\",\n        STATE_HTML: \"html\",\n        STATE_IMAGE_PIXELS: \"image_pixels\",\n        STATE_IMAGE_DATA: \"image\",\n        LOADING_TIMEOUT: 2000,\n        PAGER_FADE: 3000,\n        FULL_SCREEN_PADDING: 10,\n        STAGE_HIRES_MAX: {\n            x: 2048,\n            y: 2048\n        },\n        STAGE_NORMAL_MAX: {\n            x: 960,\n            y: 960\n        },\n        STAGE_MIN: {\n            x: 520,\n            y: 520\n        },\n        SIDEBAR_SIZE_MAX: 360,\n        STAGE_CHROME: {\n            x: 82,\n            y: 42\n        },\n        VIDEO_BOTTOM_BAR_SPACE: 40,\n        GOPREV_AREA: 120,\n        TIMELINE_STRETCH_WIDTH: 843,\n        TIMELINE_STRETCH_MIN: 480,\n        MIN_TAG_DISTANCE: 83,\n        PADDING_MIN: 40,\n        MIN_UFI_HEIGHT: 250,\n        COLLECTIONS_UNTAGGED_PHOTOS: 3,\n        PHOTOS_OF_YOU_SUGGESTIONS: 28,\n        MIN_ADS_VISIBLE: 1,\n        _instance: null,\n        getInstance: function() {\n            if (!bb._instance) {\n                bb._instance = new bb();\n            }\n        ;\n        ;\n            return bb._instance;\n        },\n        initWithSpotlight: function(cb, db) {\n            bb.getInstance().init(cb, db);\n        },\n        touch: ua,\n        addPhotoFbids: function(cb, db, eb, fb) {\n            bb.getInstance().addPhotoFbids(cb, db, eb, fb);\n        },\n        attachFollowFlyout: function(cb) {\n            o.insertAfter(oa(\"fbPhotoSnowliftSubscribe\"), cb);\n        },\n        attachSubscribeFlyout: function(cb) {\n            o.insertAfter(oa(\"fbPhotoSnowliftSubscribe\"), cb);\n        },\n        attachTagger: function(cb) {\n            bb.getInstance().attachTagger(cb);\n        },\n        preload: function(cb, db) {\n            bb.getInstance().preload(cb, db);\n        },\n        bootstrap: function(cb, db) {\n            if (((cb && la(cb).getQueryData().hasOwnProperty(\"share_id\")))) {\n                j.loadModules([\"SpotlightShareViewer\",], function(eb) {\n                    eb.bootstrap(cb, db);\n                });\n                return;\n            }\n        ;\n        ;\n            bb.getInstance().bootstrap(cb, db);\n        },\n        closeRefresh: function() {\n            bb.getInstance().closeRefresh();\n        },\n        deletePhoto: function(cb) {\n            bb.getInstance().deletePhoto(cb);\n        },\n        getImage: function() {\n            return bb.getInstance().getImage();\n        },\n        getImageId: function() {\n            return bb.getInstance().getImageId();\n        },\n        getLoadQuery: function() {\n            return bb.getInstance().getLoadQuery();\n        },\n        getRHCBody: function() {\n            return bb.getInstance().getRHCBody();\n        },\n        getRHCFooter: function() {\n            return bb.getInstance().getRHCFooter();\n        },\n        getRHCHeader: function() {\n            return bb.getInstance().getRHCHeader();\n        },\n        getRoot: function() {\n            return bb.getInstance().getRoot();\n        },\n        likePhotoSkipConfirmation: function(cb) {\n            bb.getInstance().likePhotoSkipConfirmation(cb);\n        },\n        saveTagsFromPayload: function(cb) {\n            bb.getInstance().saveTagsFromPayload(cb);\n        },\n        saveTagsFromPayloadDelayed: function(cb) {\n            bb.saveTagsFromPayload.curry(cb).defer(2000);\n        },\n        handleServerError: function(cb, db) {\n            bb.getInstance().handleServerError(cb, db);\n        },\n        setVideoWarning: function(cb, db) {\n            var eb = bb.getInstance(), fb = ((\"video_warning_\" + cb));\n            if (!eb.videoWarnings) {\n                eb.videoWarnings = [];\n            }\n        ;\n        ;\n            eb.videoWarnings[fb] = db;\n        },\n        storeFromData: function(cb) {\n            bb.getInstance().storeFromData(cb);\n        },\n        swapData: function() {\n            bb.getInstance().swapData();\n        },\n        touchMarkup: ua,\n        updateTotalCount: function(cb, db, eb) {\n            bb.getInstance().updateTotalCount(cb, db, eb);\n        }\n    });\n    k.extend(bb, fa);\n    ra(bb.prototype, {\n        switchTimer: null,\n        imageRefreshTimer: null,\n        imageLoadingTimer: null,\n        lastPage: 0,\n        currentMinSize: null,\n        currentImageSize: null,\n        resetUriStack: true,\n        thumbSrc: null,\n        shouldStretch: false,\n        stageMax: bb.STAGE_NORMAL_MAX,\n        stageChrome: bb.STAGE_CHROME,\n        stagePagerPrev: null,\n        ua: null,\n        PhotoTagger: null,\n        showHover: false,\n        skipLikePhotoConfirmation: false,\n        isShowingLikePhotoConfirmation: false,\n        preload: function(cb, db) {\n            j.loadModules([\"PhotoTagger\",\"Live\",\"PhotoTagApproval\",\"PhotoTags\",\"TagTokenizer\",\"fb-photos-snowlift-fullscreen-css\",], function(fb) {\n                this.PhotoTagger = fb;\n            }.bind(this));\n            var eb = this.getImageSrc(la(cb).getQueryData());\n            if (eb) {\n                (new JSBNG__Image()).src = eb;\n            }\n        ;\n        ;\n        },\n        bootstrap: function(cb, db) {\n            if (((cb && la(cb).getQueryData().makeprofile))) {\n                this.enableCropperOnInit = true;\n                this.isUserProfilePic = la(cb).getQueryData().makeuserprofile;\n                this.isInProfilePicAlbum = la(cb).getQueryData().inprofilepicalbum;\n            }\n        ;\n        ;\n            this.preload(cb, db);\n            if (this.closeDirty) {\n                this.bootstrap.bind(this, cb, db).defer();\n                return;\n            }\n        ;\n        ;\n            ca.reset();\n            this.resetUriStack = true;\n            if (this.isOpen) {\n                if (this.openExplicitly) {\n                    this.closeCleanup();\n                    this.resetUriStack = false;\n                }\n                 else return\n            ;\n            }\n        ;\n        ;\n            this.ua = ab(\"snowlift\", db).uai(\"open\");\n            this.returningToStart = false;\n            ((this.loading && m.removeClass(this.loading, \"loading\")));\n            if (db) {\n                m.addClass((this.loading = db), \"loading\");\n                if (this.container) {\n                    var eb = z.byClass(db, \"uiStreamStory\");\n                    if (eb) {\n                        this.container.setAttribute(\"data-ownerid\", eb.id);\n                    }\n                     else this.container.removeAttribute(\"data-ownerid\");\n                ;\n                ;\n                }\n            ;\n            ;\n                this.getThumbAndSize(db);\n            }\n             else this.loading = null;\n        ;\n        ;\n            g.inform(\"PhotoSnowlift.GO\", cb, g.BEHAVIOR_STATE);\n            this.loadFrameIfUninitialized();\n        },\n        getCurrentImageServerSizeDimensions: function() {\n            return this.stream.getCurrentImageData().dimensions;\n        },\n        getEventPrefix: function() {\n            return \"PhotoSnowlift\";\n        },\n        getRoot: function() {\n            return this.root;\n        },\n        getSourceString: function() {\n            return \"snowlift\";\n        },\n        getViewerSource: function() {\n            return this.source;\n        },\n        getViewerSet: function() {\n            return this.stream.getPhotoSet();\n        },\n        getVersionConst: function() {\n            return aa.VIEWER_SNOWLIFT;\n        },\n        getImage: function() {\n            return this.image;\n        },\n        getImageId: function() {\n            return this.stream.getCursor();\n        },\n        getRHCHeader: function() {\n            return this.rhcHeader;\n        },\n        getRHCBody: function() {\n            return this.ufiForm;\n        },\n        getRHCFooter: function() {\n            return this.rhcFooter;\n        },\n        getLoadQuery: function() {\n            return this.loadQuery;\n        },\n        getCurrentPhotoInfo: function() {\n            var cb = this.stream.getCurrentImageData();\n            if (cb) {\n                return cb.info;\n            }\n        ;\n        ;\n            return null;\n        },\n        getOwnerId: function() {\n            var cb = this.stream.getCurrentImageData();\n            if (cb) {\n                return cb.info.owner;\n            }\n        ;\n        ;\n            return null;\n        },\n        getThumbAndSize: function(cb) {\n            this.currentImageSize = null;\n            this.thumbSrc = null;\n            var db = la(cb.getAttribute(\"ajaxify\")).getQueryData();\n            if (!db.size) {\n                return;\n            }\n        ;\n        ;\n            var eb = na.deserialize(db.size);\n            if (((!eb.x || !eb.y))) {\n                return;\n            }\n        ;\n        ;\n            this.currentImageSize = eb;\n            if (((((!m.hasClass(cb, \"uiMediaThumb\") && !m.hasClass(cb, \"uiPhotoThumb\"))) && !m.hasClass(cb, \"uiScaledThumb\")))) {\n                return;\n            }\n        ;\n        ;\n            if (cb.getAttribute(\"data-cropped\")) {\n                return;\n            }\n        ;\n        ;\n            var fb = o.scry(cb, \"img\")[0], gb = o.scry(cb, \"i\")[0], hb = z.byAttribute(cb, \"data-size\");\n            this.shouldStretch = ((((((((((((hb && this.currentImageSize)) && fb)) && ((hb.getAttribute(\"data-size\") === \"2\")))) && ((this.currentImageSize.x > this.currentImageSize.y)))) && ((this.currentImageSize.x <= bb.TIMELINE_STRETCH_WIDTH)))) && ((fb.offsetWidth === bb.TIMELINE_STRETCH_WIDTH))));\n            var ib;\n            if (fb) {\n                ib = fb.src;\n            }\n             else if (gb) {\n                ib = ia.get(gb, \"backgroundImage\").replace(/.*url\\(\"?([^\"]*)\"?\\).*/, \"$1\");\n            }\n             else return\n            \n        ;\n            this.thumbSrc = ib;\n        },\n        loadFrameIfUninitialized: function() {\n            if (this.root) {\n                return;\n            }\n        ;\n        ;\n            new i(\"/ajax/photos/snowlift/init.php\").setAllowCrossPageTransition(true).setMethod(\"GET\").setReadOnly(true).send();\n        },\n        init: function(cb, db) {\n            this.init = ua;\n            this.showHover = db.pivot_hover;\n            ba.setEndMetrics(db.pivot_end_metric);\n            this.enableSnowliftProfilePicCropper = db.snowlift_profile_pic_cropper;\n            this.pagersOnKeyboardNav = db.pagers_on_keyboard_nav;\n            this.hilitAllTagsAndBoxesOnHover = db.snowlift_hover_shows_all_tags_and_faces;\n            this.fullscreen = r.isSupported();\n            this.showOGVideos = db.og_videos;\n            this.resizeCommentsForAds = db.resize_comments_for_ads;\n            this.stageMax = bb.STAGE_HIRES_MAX;\n            this.spotlight = cb;\n            this.spotlight.subscribe(\"JSBNG__blur\", function() {\n                this.closingAction = ba.OUTSIDE;\n            }.bind(this));\n            this.spotlight.subscribe(\"hide\", xa(this.closeHandler, this));\n            this.spotlight.subscribe(\"key\", this.keyHandler.bind(this));\n            this.initializeNodes(this.spotlight.getRoot());\n            ca.init(this.sideAdUnit, this, db, this.adsDisplayedCallback.bind(this));\n            this.inAdsDisplayedCallback = false;\n            if (!this.subscription) {\n                w.registerHandler(this.handleNavigateAway.bind(this));\n                this.subscription = g.subscribe(\"PhotoSnowlift.GO\", function(eb, fb) {\n                    this.openExplicitly = true;\n                    ((this.loading && m.removeClass(this.loading, \"loading\")));\n                    this.open(fb);\n                }.bind(this));\n            }\n        ;\n        ;\n            this.transitionHandlerRegistered = false;\n            this.returningToStart = false;\n            y.registerHandler(this.openHandler.bind(this));\n            this.openHandlerRegistered = true;\n            g.subscribe(\"PhotoTagApproval.HILITE_TAG\", this.onHiliteTag.bind(this));\n            g.subscribe(\"PhotoTagApproval.UPDATE_TAG_BOX\", this.onUpdateTagBox.bind(this));\n            if (this.fullscreen) {\n                r.subscribe(\"changed\", this.onFullScreenChange.bind(this));\n            }\n        ;\n        ;\n        },\n        onFullScreenChange: function() {\n            var cb = r.isFullScreen();\n            m.conditionClass(JSBNG__document.body, \"fbPhotoSnowliftFullScreenMode\", cb);\n            if (cb) {\n                if (!m.hasClass(this.root, \"fbPhotoSnowliftEditMode\")) {\n                    this.collapseRHC();\n                }\n            ;\n            ;\n                var db = this.stream.getCurrentImageData();\n                if (((((((db && db.url)) && ((this.image.src !== db.url)))) && this.shouldShowHiRes(db)))) {\n                    this.switchImage(db.url);\n                }\n            ;\n            ;\n                this.adjustForResize();\n            }\n             else {\n                this.uncollapseRHC();\n                if (((ma.chrome() && !m.hasClass(this.root, \"fbPhotoSnowliftEditMode\")))) {\n                    this.page(0, false);\n                }\n            ;\n            ;\n                g.inform(\"reflow\");\n            }\n        ;\n        ;\n            ja.hide();\n            if (this.cropper) {\n                this.cropper.resetPhoto();\n            }\n        ;\n        ;\n        },\n        initializeNodes: function(cb) {\n            this.root = cb;\n            this.container = o.JSBNG__find(cb, \"div.fbPhotoSnowliftContainer\");\n            this.snowliftPopup = o.JSBNG__find(this.container, \"div.fbPhotoSnowliftPopup\");\n            this.rhc = o.JSBNG__find(this.snowliftPopup, \"div.rhc\");\n            this.rhcHeader = o.JSBNG__find(this.rhc, \"div.rhcHeader\");\n            this.rhcFooter = o.JSBNG__find(this.rhc, \"div.rhcFooter\");\n            this.ufiForm = o.JSBNG__find(this.rhc, \"form.fbPhotosSnowliftFeedbackForm\");\n            this.ufiInputContainer = o.JSBNG__find(this.rhc, \"div.fbPhotosSnowboxFeedbackInput\");\n            this.scroller = o.JSBNG__find(this.ufiForm, \"div.rhcScroller\");\n            this.scrollerBody = o.JSBNG__find(this.scroller, \"div.uiScrollableAreaBody\");\n            this.stageWrapper = o.JSBNG__find(this.snowliftPopup, \"div.stageWrapper\");\n            this.overlay = o.JSBNG__find(this.snowliftPopup, \"div.snowliftOverlay\");\n            this.errorBox = o.JSBNG__find(this.stageWrapper, \"div.stageError\");\n            this.image = o.JSBNG__find(this.stageWrapper, \"img.spotlight\");\n            this.stage = o.JSBNG__find(this.stageWrapper, \"div.stage\");\n            this.videoStage = o.JSBNG__find(this.stageWrapper, \"div.videoStage\");\n            this.prevPager = o.JSBNG__find(this.snowliftPopup, \"a.snowliftPager.prev\");\n            this.nextPager = o.JSBNG__find(this.snowliftPopup, \"a.snowliftPager.next\");\n            this.stageActions = o.JSBNG__find(cb, \"div.stageActions\");\n            this.buttonActions = o.JSBNG__find(this.stageActions, \"div.fbPhotosPhotoButtons\");\n            this.productMetadata = o.scry(this.rhc, \"div.fbPhotosSnowliftProductMetadata\").pop();\n            this.sideAdUnit = o.JSBNG__find(cb, \"._5ciw\");\n            g.inform(\"Amoeba/instrumentMulti\", [[this.container,\"snowlift\",],[this.rhc,\"rhc\",],[this.rhcHeader,\"rhc_header\",],[this.ufiForm,\"ufi_form\",],[this.ufiInputContainer,\"ufi_input\",],[this.prevPager,\"prev_pager\",],[this.nextPager,\"next_pager\",],[this.stageActions,\"stage_actions\",],[this.sideAdUnit,\"side_ads\",],], g.BEHAVIOR_PERSISTENT);\n            m.conditionClass(this.root, \"fullScreenAvailable\", this.fullscreen);\n        },\n        initializeScroller: function() {\n            this.initializeScroller = ua;\n            this.scrollableArea = ha.fromNative(this.scroller, {\n                fade: true,\n                persistent: true\n            });\n            var cb = function(JSBNG__event) {\n                var db = q.$E(JSBNG__event).getTarget();\n                if (o.contains(this.ufiInputContainer, db)) {\n                    var eb = p.getInstance(db);\n                    if (eb) {\n                        this.scrollableArea.scrollToBottom();\n                        var fb = eb.subscribe(\"resize\", function() {\n                            var hb = this.scrollableArea.isScrolledToBottom();\n                            this.adjustScroller();\n                            ((hb && this.scrollableArea.scrollToBottom()));\n                        }.bind(this)), gb = q.listen(db, \"JSBNG__blur\", function() {\n                            eb.unsubscribe(fb);\n                            gb.remove();\n                        });\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }.bind(this);\n            g.subscribe(\"ufi/changed\", function(db, eb) {\n                if (((this.ufiForm === eb.form))) {\n                    this.adjustScrollerIfNecessary();\n                }\n            ;\n            ;\n            }.bind(this));\n            g.subscribe(\"ufi/comment\", function(db, eb) {\n                if (((this.ufiForm === eb.form))) {\n                    if (eb.isranked) {\n                        this.scrollableArea.scrollToTop();\n                    }\n                     else this.scrollableArea.scrollToBottom();\n                ;\n                }\n            ;\n            ;\n            }.bind(this));\n            q.listen(this.rhc, \"click\", function(JSBNG__event) {\n                var db = JSBNG__event.getTarget();\n                if (((((z.byTag(db, \"a\") || z.byTag(db, \"button\"))) || o.isNodeOfType(db, \"input\")))) {\n                    this.adjustScrollerIfNecessary();\n                }\n            ;\n            ;\n            }.bind(this));\n            g.subscribe([\"reflow\",\"CommentUFI.Pager\",], function() {\n                if (this.isOpen) {\n                    this.adjustScroller();\n                }\n            ;\n            ;\n            }.bind(this));\n            q.listen(this.ufiForm, \"focusin\", cb);\n        },\n        openHandler: function(cb) {\n            if (((((((((((this.isOpen || ((cb.getPath() != \"/photo.php\")))) || this.returningToStart)) || cb.getQueryData().closeTheater)) || cb.getQueryData().permPage)) || cb.getQueryData().makeprofile))) {\n                this.openHandlerRegistered = false;\n                return false;\n            }\n        ;\n        ;\n            this.open(cb);\n            this._uriStack.push(la(cb).getQualifiedURI().toString());\n            y.transitionComplete(true);\n            return true;\n        },\n        getImageSrc: function(cb) {\n            if (cb.smallsrc) {\n                if (!cb.size) {\n                    return cb.smallsrc;\n                }\n            ;\n            ;\n                var db = na.deserialize(cb.size), eb = this.getStageSize(db);\n                if (((((eb.x <= bb.STAGE_NORMAL_MAX.x)) && ((eb.y <= bb.STAGE_NORMAL_MAX.y))))) {\n                    return cb.smallsrc;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            return cb.src;\n        },\n        open: function(cb) {\n            var db = la(cb).getQueryData(), eb = this.getImageSrc(db);\n            if (eb) {\n                delete db.src;\n                delete db.smallsrc;\n            }\n        ;\n        ;\n            if (this.resetUriStack) {\n                this._uriStack = [];\n            }\n        ;\n        ;\n            if (!this.initialLoad) {\n                db.firstLoad = true;\n                this.initialLoad = true;\n            }\n        ;\n        ;\n            this.sessionID = JSBNG__Date.now();\n            this.sessionPhotosHilited = {\n            };\n            this.loadQuery = ra(db, {\n                ssid: this.sessionID\n            });\n            this.isOpen = true;\n            this.pagersShown = false;\n            this.refreshOnClose = false;\n            this.hilitedTag = null;\n            this.loadingStates = {\n                image: false,\n                html: false\n            };\n            this.replaceUrl = false;\n            this.source = null;\n            this.saveTagSubscription = g.subscribe(\"PhotoTagger.SAVE_TAG\", this.onTagSaved.bind(this));\n            this.taggedPhotoIds = [];\n            this.stream = new da();\n            this.stream.init(aa.VIEWER_SNOWLIFT, \"PhotoViewerPagelet\", \"pagelet_photo_viewer\");\n            this.fetchInitialData();\n            this.setLoadingState(bb.STATE_HTML, true);\n            this.rhcCollapsed = false;\n            this._open(cb, eb);\n            if (this.enableSnowliftProfilePicCropper) {\n                j.loadModules([\"SnowliftPicCropper\",], function(fb) {\n                    this.cropper = fb.getInstance(this);\n                    this.cropper.init();\n                    if (this.enableCropperOnInit) {\n                        var gb = g.subscribe(\"PhotoSnowlift.SWITCH_IMAGE\", function() {\n                            if (this.isInProfilePicAlbum) {\n                                this.cropper.showPicInProfileAlbumDialog();\n                            }\n                             else this.cropper.enableCropping(this.isUserProfilePic);\n                        ;\n                        ;\n                            g.unsubscribe(gb);\n                        }.bind(this));\n                        this.enableCropperOnInit = false;\n                    }\n                ;\n                ;\n                }.bind(this));\n            }\n        ;\n        ;\n            j.loadModules([\"PhotosButtonTooltips\",], function(fb) {\n                fb.init();\n            });\n        },\n        _open: function(cb, db) {\n            this.createLoader(db);\n            this.spotlight.show();\n            ((this.ua && this.ua.add_event(\"frame\")));\n            g.inform(\"layer_shown\", {\n                type: \"PhotoSnowlift\"\n            });\n            g.inform(\"PhotoSnowlift.OPEN\");\n            this.stageHandlers = [q.listen(window, \"resize\", this.adjustForResize.bind(this)),q.listen(this.stageWrapper, \"click\", this.buttonListener.bind(this)),q.listen(this.stageWrapper, \"mouseleave\", function(JSBNG__event) {\n                var gb = JSBNG__event.getTarget();\n                if (!((((((((((((z.byClass(gb, \"snowliftOverlay\") || z.byClass(gb, \"fbPhotoSnowliftTagApproval\"))) || z.byClass(gb, \"tagPointer\"))) || z.byClass(gb, \"arrow\"))) || z.byClass(gb, \"faceboxSuggestion\"))) || z.byClass(gb, \"typeaheadWrapper\"))) || z.byClass(gb, \"photoTagTypeahead\")))) {\n                    this.unhiliteAllTags();\n                }\n            ;\n            ;\n                this.hidePagers();\n            }.bind(this)),q.listen(this.stageWrapper, \"mousemove\", this.hilitePagerOnMouseMove.bind(this)),q.listen(this.stageWrapper, \"mousemove\", this.hiliteTagsOnMouseMove.bind(this)),q.listen(this.overlay, \"mouseenter\", this.unhiliteAllTags.bind(this)),];\n            this.stageHandlers.push(q.listen(this.container, \"click\", function(JSBNG__event) {\n                var gb = JSBNG__event.getTarget();\n                if (z.byClass(gb, \"rotateRight\")) {\n                    this.rotate(\"right\");\n                }\n                 else if (z.byClass(gb, \"rotateLeft\")) {\n                    this.rotate(\"left\");\n                }\n                 else if (z.byClass(gb, \"closeTheater\")) {\n                    if (r.isFullScreen()) {\n                        r.toggleFullScreen();\n                        return;\n                    }\n                ;\n                ;\n                    this.closingAction = ba.X;\n                    this.closeHandler();\n                    return false;\n                }\n                 else if (this.fullscreen) {\n                    if (z.byClass(gb, \"fbPhotoSnowliftFullScreen\")) {\n                        this.toggleFullScreen();\n                    }\n                     else if (z.byClass(gb, \"fbPhotoSnowliftCollapse\")) {\n                        this.toggleCollapse();\n                    }\n                    \n                ;\n                }\n                \n                \n                \n            ;\n            ;\n            }.bind(this)));\n            var eb = va(\"fbPhotoSnowliftFeedback\");\n            if (eb) {\n                this.stageHandlers.push(q.listen(eb, \"click\", function(JSBNG__event) {\n                    var gb = JSBNG__event.getTarget();\n                    if (((z.byClass(gb, \"like_link\") || ((z.byClass(gb, \"UFILikeLink\") && z.byClass(gb, \"UIActionLinks\")))))) {\n                        this.toggleLikeButton();\n                    }\n                ;\n                ;\n                    var hb = z.byClass(JSBNG__event.getTarget(), \"uiUfiCollapsedComment\");\n                    if (hb) {\n                        m.addClass(hb, \"uiUfiCollapsedCommentToggle\");\n                    }\n                ;\n                ;\n                }.bind(this)));\n            }\n        ;\n        ;\n            var fb = va(\"fbPhotoSnowliftOnProfile\");\n            if (fb) {\n                this.stageHandlers.push(q.listen(fb, \"click\", function(JSBNG__event) {\n                    if (z.byClass(JSBNG__event.getTarget(), \"fbPhotoRemoveFromProfileLink\")) {\n                        this.refreshOnClose = true;\n                    }\n                ;\n                ;\n                }.bind(this)));\n            }\n        ;\n        ;\n            if (this.resetUriStack) {\n                this.startingURI = la.getMostRecentURI().addQueryData({\n                    closeTheater: 1\n                }).getUnqualifiedURI();\n            }\n        ;\n        ;\n            if (!db) {\n                this.setLoadingState(bb.STATE_IMAGE_DATA, true);\n            }\n        ;\n        ;\n            if (!this.transitionHandlerRegistered) {\n                y.registerHandler(this.transitionHandler.bind(this));\n                this.transitionHandlerRegistered = true;\n            }\n        ;\n        ;\n            ba.initLogging(ba.SNOWLIFT);\n            if (this.pivots) {\n                ba.setRelevantCount(this.pivots.relevantCount);\n            }\n        ;\n        ;\n        },\n        toggleFullScreen: function() {\n            var cb = r.toggleFullScreen(JSBNG__document.documentElement);\n            if (cb) {\n                var db = this.stream.getCurrentImageData();\n                if (((((((db && db.url)) && ((this.image.src !== db.url)))) && this.shouldShowHiRes(db)))) {\n                    (new JSBNG__Image()).src = db.url;\n                }\n            ;\n            ;\n                ba.logEnterFullScreen(this.stream.getCursor());\n            }\n        ;\n        ;\n        },\n        getStream: function() {\n            return this.stream;\n        },\n        fetchInitialData: function() {\n            ((this.ua && this.ua.add_event(\"init_data\")));\n            this.stream.waitForInitData();\n            var cb = l(this.container, [\"ft\",]);\n            if (((((((cb && cb.ft)) && cb.ft.ei)) && this.loadQuery))) {\n                this.loadQuery.ei = cb.ft.ei;\n            }\n        ;\n        ;\n            ka.loadFromEndpoint(\"PhotoViewerInitPagelet\", va(\"pagelet_photo_viewer_init\", this.root), this.loadQuery, {\n                usePipe: true,\n                jsNonblock: true,\n                crossPage: true\n            });\n        },\n        toggleCollapse: function() {\n            if (this.rhcCollapsed) {\n                this.uncollapseRHC();\n            }\n             else this.collapseRHC();\n        ;\n        ;\n        },\n        collapseRHC: function() {\n            this.rhcCollapsed = true;\n            m.addClass(this.root, \"collapseRHC\");\n            this.adjustForResize();\n        },\n        uncollapseRHC: function() {\n            this.rhcCollapsed = false;\n            m.removeClass(this.root, \"collapseRHC\");\n            this.adjustForResize();\n        },\n        closeHandler: function() {\n            if (!this.isOpen) {\n                return;\n            }\n        ;\n        ;\n            this.closingAction = ((this.closingAction || ba.ESC));\n            if (((la.getMostRecentURI().addQueryData({\n                closeTheater: 1\n            }).getUnqualifiedURI().toString() == this.startingURI.toString()))) {\n                this.close();\n                return;\n            }\n        ;\n        ;\n            this.returnToStartingURI(this.refreshOnClose);\n            this.close();\n        },\n        returnToStartingURI: function(cb, db) {\n            if (!cb) {\n                if (db) {\n                    this.squashNextTransition(wa.curry(db));\n                }\n                 else this.squashNextTransition();\n            ;\n            }\n        ;\n        ;\n            this.returningToStart = true;\n            var eb = g.subscribe(\"page_transition\", (function() {\n                this.returningToStart = false;\n                eb.unsubscribe();\n            }).bind(this)), fb = ((cb || isNaN(ma.JSBNG__opera()))), gb = this._uriStack.length;\n            if (((fb && ((gb < window.JSBNG__history.length))))) {\n                window.JSBNG__history.go(-gb);\n            }\n             else {\n                var hb = this.startingURI, ib = new la(hb).removeQueryData(\"closeTheater\");\n                if (((((hb.getQueryData().sk == \"approve\")) && ((hb.getPath() == \"/profile.php\"))))) {\n                    ib.removeQueryData(\"highlight\");\n                    ib.removeQueryData(\"notif_t\");\n                }\n            ;\n            ;\n                wa(ib);\n            }\n        ;\n        ;\n        },\n        squashNextTransition: function(cb) {\n            this.squashNext = true;\n            y.registerHandler(function db() {\n                if (this.squashNext) {\n                    this.squashNext = false;\n                    if (cb) {\n                        cb.defer();\n                    }\n                ;\n                ;\n                    y.transitionComplete(true);\n                    return true;\n                }\n            ;\n            ;\n                return false;\n            }.bind(this), 7);\n        },\n        handleNavigateAway: function(cb) {\n            var db = qa(y._most_recent_uri.getQualifiedURI(), cb.getAttribute(\"href\"));\n            if (((this.isOpen && ya(db.getPath(), \"/hashtag/\")))) {\n                this.close();\n                y.transitionComplete(true);\n                this.squashNextTransition();\n                y.go(this.startingURI);\n                return true;\n            }\n        ;\n        ;\n            if (((((((this.isOpen && ((db instanceof la)))) && ((db.getUnqualifiedURI().toString() != this.startingURI.toString())))) && ((db.getPath() != \"/photo.php\"))))) {\n                if (!this.closingAction) {\n                    this.closingAction = ba.NAVIGATE;\n                }\n            ;\n            ;\n                this.returnToStartingURI(false, db);\n                this.close();\n                return false;\n            }\n        ;\n        ;\n            return true;\n        },\n        postProcessTaggedPhotos: function() {\n            if (((this.taggedPhotoIds && ((this.taggedPhotoIds.length > 0))))) {\n                var cb = null;\n                if (((this.source === bb.COLLECTIONS_UNTAGGED_PHOTOS))) {\n                    cb = \"/ajax/photos/photo/edit/skiptag/\";\n                }\n                 else if (((this.source === bb.PHOTOS_OF_YOU_SUGGESTIONS))) {\n                    cb = \"/ajax/photos/photo/add_to_star_grid/\";\n                }\n                \n            ;\n            ;\n                if (cb) {\n                    new i().setURI(cb).setAllowCrossPageTransition(true).setData({\n                        media_id: this.taggedPhotoIds\n                    }).send();\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        onTagSaved: function(cb, db) {\n            if (this.taggedPhotoIds) {\n                if (((((this.source === bb.PHOTOS_OF_YOU_SUGGESTIONS)) && !db.self_tag))) {\n                    return;\n                }\n            ;\n            ;\n                this.taggedPhotoIds.push(db.photo_fbid);\n            }\n        ;\n        ;\n        },\n        close: function() {\n            if (!this.isOpen) {\n                return;\n            }\n        ;\n        ;\n            this.isOpen = false;\n            if (this.fullscreen) {\n                r.disableFullScreen();\n            }\n        ;\n        ;\n            ab(\"snowlift\").uai(\"close\");\n            ((this.cropper && this.cropper.disableCropping()));\n            this.spotlight.hide();\n            this.openExplicitly = false;\n            this.postProcessTaggedPhotos();\n            g.unsubscribe(this.saveTagSubscription);\n            this.taggedPhotoIds = [];\n            this.closeDirty = true;\n            this.closeCleanup.bind(this).defer();\n        },\n        closeCleanup: function() {\n            this.closeDirty = false;\n            m.removeClass(this.root, \"dataLoading\");\n            ba.logPhotoViews(this.closingAction);\n            this.destroy();\n            m.hide(this.errorBox);\n            m.hide(this.image);\n            this.currentImageSize = null;\n            this.thumbSrc = null;\n            this.shouldStretch = false;\n            this.resetUriStack = true;\n            m.removeClass(this.stageWrapper, \"showVideo\");\n            o.empty(this.videoStage);\n            this.uncollapseRHC();\n            this.currentMinSize = null;\n            this.rhcMinHeight = null;\n            this.setStagePagersState(\"reset\");\n            this.recacheData();\n            o.empty(this.sideAdUnit);\n            this.stream.destroy();\n            var cb = ((this.closingAction === ba.NAVIGATE));\n            this.closingAction = null;\n            if (!this.openHandlerRegistered) {\n                y.registerHandler(this.openHandler.bind(this));\n                this.openHandlerRegistered = true;\n            }\n        ;\n        ;\n            g.inform(\"layer_hidden\", {\n                type: \"PhotoSnowlift\"\n            });\n            g.inform(\"PhotoSnowlift.CLOSE\", cb);\n            this.root.setAttribute(\"aria-busy\", \"true\");\n        },\n        createLoader: function(cb) {\n            if (((this.currentImageSize === null))) {\n                this.adjustStageSize(bb.STAGE_MIN);\n            }\n             else {\n                var db = this.getStageSize(this.currentImageSize);\n                db = new na(Math.max(db.x, bb.STAGE_MIN.x), Math.max(db.y, bb.STAGE_MIN.y));\n                var eb = this.getImageSizeInStage(this.currentImageSize, db);\n                if (((this.thumbSrc === null))) {\n                    this.adjustStageSize(eb);\n                }\n                 else this.useImage(o.create(\"img\", {\n                    className: \"spotlight\",\n                    alt: \"\",\n                    src: this.thumbSrc,\n                    style: {\n                        width: ((eb.x + \"px\")),\n                        height: ((eb.y + \"px\"))\n                    }\n                }), eb, false);\n            ;\n            ;\n            }\n        ;\n        ;\n            this.setLoadingState(this.STATE_IMAGE_PIXELS, true);\n            if (cb) {\n                (function() {\n                    var fb = new JSBNG__Image(), gb = q.listen(fb, \"load\", pa(function() {\n                        if (!this.isOpen) {\n                            return;\n                        }\n                    ;\n                    ;\n                        if (((!this.stream || !this.stream.errorInCurrent()))) {\n                            this.switchImage(cb, this.currentImageSize);\n                            ((this.ua && this.ua.add_event(\"image\")));\n                            this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n                        }\n                    ;\n                    ;\n                    }.bind(this), \"photo_theater\"));\n                    g.subscribeOnce(\"PhotoSnowlift.PAGE\", gb.remove.bind(gb));\n                    fb.src = cb;\n                }).bind(this).defer();\n            }\n        ;\n        ;\n            m.hide(this.stageActions);\n            this.setStagePagersState(\"disabled\");\n        },\n        initDataFetched: function(cb) {\n            ba.setPhotoSet(this.stream.getPhotoSet());\n            ba.setLogFbids(cb.logids);\n            var db = this.stream.getCurrentImageData();\n            ba.addPhotoView(db.info, this.shouldShowHiRes(db), ((this.fullscreen && r.isFullScreen())));\n            var eb = this.stream.getCurrentExtraData();\n            if (((eb && ((eb.source !== undefined))))) {\n                this.source = parseInt(eb.source, 10);\n                ba.setSource(this.source);\n            }\n        ;\n        ;\n            if (!this.pageHandlers) {\n                this.pageHandlers = [q.listen(this.root, \"click\", this.pageListener.bind(this)),q.listen(this.root, \"mouseleave\", this.mouseLeaveListener.bind(this)),];\n            }\n        ;\n        ;\n            m.show(this.stageActions);\n            this.root.setAttribute(\"aria-busy\", \"false\");\n            this.isLoggedInViewer = cb.loggedin;\n            this.disableAdsForSession = ((cb.disablesessionads || !this.isLoggedInViewer));\n            this.showFlashTags = !!cb.flashtags;\n            this.disableAds = ((this.disableAdsForSession || cb.fromad));\n            this.loadAds();\n        },\n        adjustScrollerIfNecessary: function() {\n            JSBNG__clearTimeout(this.scrollerTimeout);\n            this.scrollerTimeout = this.adjustScroller.bind(this).defer();\n        },\n        adjustScroller: function(cb) {\n            JSBNG__clearTimeout(this.scrollerTimeout);\n            this.initializeScroller();\n            this.scrollableArea.resize();\n            var db = na.getElementDimensions(this.rhc), eb = db.y;\n            eb -= na.getElementDimensions(this.rhcHeader).y;\n            eb -= na.getElementDimensions(this.ufiInputContainer).y;\n            if (this.productMetadata) {\n                var fb = na.getElementDimensions(this.productMetadata);\n                if (((fb.x !== 0))) {\n                    eb -= fb.y;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (((cb == null))) {\n                cb = 0;\n            }\n        ;\n        ;\n            this.rhcMinHeight = ((db.y - ((eb - bb.MIN_UFI_HEIGHT))));\n            eb = Math.max(0, eb);\n            var gb = na.getElementDimensions(this.scrollerBody).y, hb = Math.max(bb.MIN_UFI_HEIGHT, ((eb - cb)));\n            if (((gb >= hb))) {\n                ia.set(this.scroller, \"height\", ((hb + \"px\")));\n                if (((eb > hb))) {\n                    m.removeClass(this.rhc, \"pinnedUfi\");\n                    eb -= hb;\n                }\n                 else {\n                    m.addClass(this.rhc, \"pinnedUfi\");\n                    eb = 0;\n                }\n            ;\n            ;\n            }\n             else {\n                ia.set(this.scroller, \"height\", \"auto\");\n                m.removeClass(this.rhc, \"pinnedUfi\");\n                eb -= gb;\n            }\n        ;\n        ;\n            var ib = o.scry(this.scrollerBody, \"li.UFIFirstComponent\");\n            if (((ib.length === 0))) {\n                var jb = o.scry(this.ufiInputContainer, \"li.UFIAddComment\");\n                if (((jb.length !== 0))) {\n                    m.addClass(jb[0], \"UFIFirstComponent\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            var kb = na.getElementDimensions(this.ufiInputContainer).y;\n            ia.set(this.ufiForm, \"padding-bottom\", ((kb + \"px\")));\n            ca.resize(new na(db.x, eb));\n            this.scrollableArea.adjustGripper();\n        },\n        adjustForResize: function() {\n            this.currentMinSize = null;\n            this.adjustStageSize();\n            this.adjustForNewData();\n        },\n        shouldShowHiRes: function(cb) {\n            if (((!cb || !cb.smallurl))) {\n                return false;\n            }\n        ;\n        ;\n            var db = this.getStageSize(cb.dimensions), eb = this.getImageSizeInStage(cb.dimensions, db);\n            return ((((eb.x > bb.STAGE_NORMAL_MAX.x)) || ((eb.y > bb.STAGE_NORMAL_MAX.y))));\n        },\n        getImageURL: function(cb) {\n            if (cb.video) {\n                return null;\n            }\n             else if (((cb.smallurl && !this.shouldShowHiRes(cb)))) {\n                return cb.smallurl;\n            }\n            \n        ;\n        ;\n            return cb.url;\n        },\n        getImageDimensions: function(cb) {\n            if (((cb.smalldims && ((!this.shouldShowHiRes(cb) || ((this.image.src === cb.smallurl))))))) {\n                return cb.smalldims;\n            }\n        ;\n        ;\n            return cb.dimensions;\n        },\n        getStageSize: function(cb, db) {\n            var eb = na.getViewportDimensions(), fb = new na(cb.x, cb.y);\n            if (db) {\n                fb = new na(Math.max(cb.x, db.x), Math.max(cb.y, db.y));\n            }\n        ;\n        ;\n            var gb, hb;\n            if (((this.fullscreen && r.isFullScreen()))) {\n                return new na(((this.rhcCollapsed ? JSBNG__screen.width : ((JSBNG__screen.width - bb.SIDEBAR_SIZE_MAX)))), ((JSBNG__screen.height - ((bb.FULL_SCREEN_PADDING * 2)))));\n            }\n             else {\n                gb = Math.min(fb.x, this.stageMax.x, ((((eb.x - bb.SIDEBAR_SIZE_MAX)) - bb.STAGE_CHROME.x)));\n                hb = Math.min(fb.y, this.stageMax.y, ((eb.y - bb.STAGE_CHROME.y)));\n            }\n        ;\n        ;\n            if (((((gb === 0)) && ((hb === 0))))) {\n                return new na(0, 0);\n            }\n        ;\n        ;\n            var ib = ((gb / hb)), jb = ((fb.x / fb.y));\n            if (((ib < jb))) {\n                return new na(gb, Math.round(((gb / jb))));\n            }\n        ;\n        ;\n            return new na(Math.round(((hb * jb))), hb);\n        },\n        getImageSizeInStage: function(cb, db) {\n            var eb = cb.x, fb = cb.y;\n            if (((((eb >= db.x)) || ((fb >= db.y))))) {\n                var gb = ((db.x / db.y)), hb = ((eb / fb));\n                if (((gb < hb))) {\n                    eb = db.x;\n                    fb = Math.round(((eb / hb)));\n                }\n                 else if (((gb > hb))) {\n                    fb = db.y;\n                    eb = Math.round(((fb * hb)));\n                }\n                 else {\n                    eb = db.x;\n                    fb = db.y;\n                }\n                \n            ;\n            ;\n            }\n        ;\n        ;\n            return new na(eb, fb);\n        },\n        adjustStageSize: function(cb) {\n            var db = this.currentImageSize;\n            if (cb) {\n                db = cb;\n            }\n             else {\n                var eb = ((this.stream && this.stream.getCurrentImageData()));\n                if (eb) {\n                    db = this.getImageDimensions(eb);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            if (!db) {\n                return;\n            }\n        ;\n        ;\n            this.currentImageSize = db;\n            var fb = 0;\n            if (((((((((this.shouldStretch && !this.getVideoOnStage())) && ((db.x > db.y)))) && ((db.x <= bb.TIMELINE_STRETCH_WIDTH)))) && ((db.x >= bb.TIMELINE_STRETCH_MIN))))) {\n                db.y = Math.round(((((db.y * bb.TIMELINE_STRETCH_WIDTH)) / db.x)));\n                db.x = bb.TIMELINE_STRETCH_WIDTH;\n            }\n             else if (this.getVideoOnStage()) {\n                fb = ((bb.VIDEO_BOTTOM_BAR_SPACE * 2));\n            }\n            \n        ;\n        ;\n            var gb = this.getStageSize(db, this.currentMinSize);\n            if (!this.currentMinSize) {\n                this.currentMinSize = new na(0, 0);\n            }\n        ;\n        ;\n            if (!this.rhcMinHeight) {\n                this.rhcMinHeight = 0;\n            }\n        ;\n        ;\n            this.currentMinSize = new na(Math.max(gb.x, bb.STAGE_MIN.x, this.currentMinSize.x), Math.max(gb.y, bb.STAGE_MIN.y, this.currentMinSize.y));\n            var hb = this.getImageSizeInStage(db, this.currentMinSize), ib = ((this.currentMinSize.x - hb.x)), jb = ((this.currentMinSize.y - hb.y));\n            if (((((ib > 0)) && ((ib < bb.PADDING_MIN))))) {\n                this.currentMinSize.x -= ib;\n            }\n             else if (((((jb > 0)) && ((jb < bb.PADDING_MIN))))) {\n                this.currentMinSize.y -= jb;\n            }\n            \n        ;\n        ;\n            var kb = o.scry(this.productMetadata, \"#fbPhotoSnowliftTaggedProducts .taggee\");\n            if (kb.length) {\n                this.currentMinSize.y = Math.max(this.currentMinSize.y, this.rhcMinHeight);\n            }\n        ;\n        ;\n            var lb = ((this.currentMinSize.x + bb.SIDEBAR_SIZE_MAX));\n            if (this.rhcCollapsed) {\n                lb = this.currentMinSize.x;\n            }\n        ;\n        ;\n            this.snowliftPopup.style.cssText = ((((((((((\"width:\" + lb)) + \"px;\")) + \"height:\")) + this.currentMinSize.y)) + \"px;\"));\n            var mb = ((((this.currentMinSize.y - fb)) + \"px\"));\n            if (((ma.firefox() || ((ma.ie() < 8))))) {\n                var nb = ia.get(this.stageWrapper, \"font-size\");\n                if (((ma.ie() && ((nb.indexOf(\"px\") < 0))))) {\n                    var ob = o.create(\"div\");\n                    ob.style.fontSize = nb;\n                    ob.style.height = \"1em\";\n                    nb = ob.style.pixelHeight;\n                }\n            ;\n            ;\n                mb = ((((((this.currentMinSize.y - fb)) / parseFloat(nb))) + \"em\"));\n            }\n        ;\n        ;\n            this.stageWrapper.style.cssText = ((((((((((\"width:\" + this.currentMinSize.x)) + \"px;\")) + \"line-height:\")) + mb)) + \";\"));\n            if (((ma.ie() < 8))) {\n                ia.set(this.root, \"height\", ((na.getViewportDimensions().y + \"px\")));\n                ia.set(this.container, \"min-height\", ((((this.currentMinSize.y + bb.STAGE_CHROME.y)) + \"px\")));\n            }\n        ;\n        ;\n            this.image.style.cssText = ((((((((((\"width:\" + hb.x)) + \"px;\")) + \"height:\")) + hb.y)) + \"px;\"));\n            var pb = this.getTagger();\n            if (pb) {\n                pb.repositionTagger();\n            }\n        ;\n        ;\n            this.adjustScrollerIfNecessary();\n        },\n        adjustForNewData: function() {\n            if (!this.image) {\n                return;\n            }\n        ;\n        ;\n            var cb = o.scry(this.stage, \"div.tagsWrapper\")[0], db = na.getElementDimensions(this.image);\n            if (cb) {\n                ia.set(cb, \"width\", ((db.x + \"px\")));\n                ia.set(cb, \"height\", ((db.y + \"px\")));\n                if (((ma.ie() <= 7))) {\n                    var eb = o.scry(this.root, \"div.tagContainer\")[0];\n                    if (eb) {\n                        m.conditionClass(cb, \"ie7VerticalFix\", ((na.getElementDimensions(eb).y > db.y)));\n                    }\n                ;\n                ;\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        adsDisplayedCallback: function(cb, db) {\n            if (((((((((((this.resizeCommentsForAds && !this.inAdsDisplayedCallback)) && !this.disableAds)) && ((bb.MIN_ADS_VISIBLE > 0)))) && ((cb < bb.MIN_ADS_VISIBLE)))) && ((db.length >= bb.MIN_ADS_VISIBLE))))) {\n                this.inAdsDisplayedCallback = true;\n                var eb = db[((bb.MIN_ADS_VISIBLE - 1))];\n                this.adjustScroller(eb);\n                this.inAdsDisplayedCallback = false;\n            }\n        ;\n        ;\n        },\n        setLoadingState: function(cb, db) {\n            switch (cb) {\n              case bb.STATE_IMAGE_PIXELS:\n                m.conditionClass(this.root, \"imagePixelsLoading\", db);\n                break;\n              case bb.STATE_IMAGE_DATA:\n                this.loadingStates[cb] = db;\n                m.conditionClass(this.root, \"imageLoading\", db);\n                break;\n              case bb.STATE_HTML:\n                this.loadingStates[cb] = db;\n                m.conditionClass(this.root, \"dataLoading\", db);\n                this.rhc.setAttribute(\"aria-busy\", ((db ? \"true\" : \"false\")));\n                break;\n            };\n        ;\n        },\n        destroy: function() {\n            this.stageHandlers.forEach(function(cb) {\n                cb.remove();\n            });\n            if (this.pageHandlers) {\n                this.pageHandlers.forEach(function(cb) {\n                    cb.remove();\n                });\n                this.pageHandlers = null;\n            }\n        ;\n        ;\n        },\n        checkState: function(cb) {\n            if (((((cb != bb.STATE_ERROR)) && !this.loadingStates[cb]))) {\n                return;\n            }\n        ;\n        ;\n            switch (cb) {\n              case bb.STATE_IMAGE_DATA:\n                var db = this.stream.getCurrentImageData();\n                if (db) {\n                    var eb = this.getImageURL(db);\n                    if (eb) {\n                        this.switchImage(eb, null, true);\n                    }\n                     else if (db.video) {\n                        this.switchVideo(db.video, true);\n                    }\n                    \n                ;\n                ;\n                    this.setLoadingState(cb, false);\n                }\n            ;\n            ;\n                break;\n              case bb.STATE_HTML:\n                if (this.stream.getCurrentHtml()) {\n                    this.swapData();\n                    this.showPagers(bb.PAGER_FADE);\n                    this.setLoadingState(cb, false);\n                }\n            ;\n            ;\n                break;\n              default:\n                if (this.stream.errorInCurrent()) {\n                    m.hide(this.image);\n                    m.show(this.errorBox);\n                }\n            ;\n            ;\n                break;\n            };\n        ;\n        },\n        buttonListener: function(JSBNG__event) {\n            var cb = JSBNG__event.getTarget(), db = JSBNG__Date.now();\n            if (z.byClass(cb, \"fbPhotoTagApprovalBox\")) {\n                return;\n            }\n        ;\n        ;\n            if (z.byClass(cb, \"fbPhotosCornerWantButton\")) {\n                JSBNG__event.JSBNG__stop();\n                return;\n            }\n        ;\n        ;\n            if (((((db - this.lastPage)) < 350))) {\n                return;\n            }\n        ;\n        ;\n            if (z.byClass(cb, \"fbPhotosPhotoLike\")) {\n                this.likePhoto();\n            }\n             else if (z.byClass(cb, \"tagApproveIgnore\")) {\n                this.updateTagBox(JSBNG__event, cb);\n            }\n            \n        ;\n        ;\n        },\n        likePhoto: function() {\n            ba.addButtonLike();\n            var cb = oa(\"fbPhotoSnowliftFeedback\"), db = o.scry(cb, \"button.like_link\")[0];\n            if (!db) {\n                db = o.scry(cb, \"a.UFILikeLink\")[0];\n            }\n        ;\n        ;\n            var eb = db.getAttribute(\"href\");\n            if (r.isFullScreen()) {\n                if (ma.chrome()) {\n                    db.setAttribute(\"href\", \"javascript:;\");\n                }\n            ;\n            }\n        ;\n        ;\n            db.click();\n            db.setAttribute(\"href\", eb);\n        },\n        toggleLikeButton: function() {\n            var cb = o.scry(this.buttonActions, \"a.fbPhotosPhotoLike\")[0];\n            if (cb) {\n                var db = o.JSBNG__find(this.root, \".likeCount\"), eb = o.JSBNG__find(db, \".likeCountNum\");\n                if (db) {\n                    if (m.hasClass(cb, \"viewerLikesThis\")) {\n                        o.setContent(eb, ((parseInt(eb.textContent, 10) - 1)));\n                    }\n                     else o.setContent(eb, ((parseInt(eb.textContent, 10) + 1)));\n                ;\n                }\n            ;\n            ;\n                m.toggleClass(cb, \"viewerLikesThis\");\n                m.removeClass(cb, \"viewerAlreadyLikedThis\");\n            }\n        ;\n        ;\n        },\n        likePhotoWithKey: function() {\n            if (this.isShowingLikePhotoConfirmation) {\n                return;\n            }\n        ;\n        ;\n            if (this.skipLikePhotoConfirmation) {\n                this.likePhoto();\n            }\n             else h.send(new i(\"/photos/confirm_like.php\"), function(cb) {\n                this.isShowingLikePhotoConfirmation = true;\n                cb.subscribe(\"JSBNG__confirm\", this.onCloseLikePhotoConfirmDialog.bind(this));\n                cb.subscribe(\"cancel\", this.onCloseLikePhotoConfirmDialog.bind(this));\n            }.bind(this));\n        ;\n        ;\n            return false;\n        },\n        likePhotoSkipConfirmation: function(cb) {\n            this.skipLikePhotoConfirmation = cb;\n            this.likePhoto();\n        },\n        onCloseLikePhotoConfirmDialog: function() {\n            this.isShowingLikePhotoConfirmation = false;\n        },\n        updateTagBox: function(cb, db) {\n            this.unhiliteAllTags();\n            var eb = va(cb);\n            if (!eb) {\n                return;\n            }\n        ;\n        ;\n            m.addClass(eb, \"tagBox\");\n            m.addClass(eb, \"tagBoxPendingResponse\");\n            m.removeClass(eb, \"tagBoxPending\");\n            m.hide(o.JSBNG__find(eb, \"span.tagForm\"));\n            if (db) {\n                m.show(o.JSBNG__find(eb, \"span.tagApproved\"));\n            }\n             else m.show(o.JSBNG__find(eb, \"span.tagIgnored\"));\n        ;\n        ;\n        },\n        rotate: function(cb) {\n            var db = this.stream.getCursor();\n            if (this.getVideoOnStage()) {\n                var eb = ((((cb == \"left\")) ? 270 : 90));\n                j.loadModules([\"VideoRotate\",], function(gb) {\n                    new gb(db).motionRotate(eb);\n                });\n                return;\n            }\n        ;\n        ;\n            var fb = ra({\n                fbid: db,\n                cs_ver: aa.VIEWER_SNOWLIFT\n            }, this.stream.getPhotoSetQuery());\n            fb[cb] = 1;\n            this.setLoadingState(bb.STATE_IMAGE_DATA, true);\n            this.setLoadingState(this.STATE_IMAGE_PIXELS, true);\n            m.hide(this.image);\n            new i(\"/ajax/photos/photo/rotate/\").setAllowCrossPageTransition(true).setData(fb).setErrorHandler(this.rotationError.bind(this, db)).setFinallyHandler(this.rotationComplete.bind(this, db)).setMethod(\"POST\").setReadOnly(false).send();\n        },\n        rotationComplete: function(cb, db) {\n            if (((cb == this.stream.getCursor()))) {\n                this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n                this.switchImage(this.getImageURL(this.stream.getCurrentImageData()));\n                this.swapData();\n            }\n        ;\n        ;\n        },\n        rotationError: function(cb, db) {\n            if (((cb == this.stream.getCursor()))) {\n                this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n                this.switchImage(this.getImageURL(this.stream.getCurrentImageData()));\n                j.loadModules([\"AsyncResponse\",], function(eb) {\n                    eb.defaultErrorHandler(db);\n                });\n            }\n        ;\n        ;\n        },\n        saveTagsFromPayload: function(cb) {\n            this.storeFromData(cb);\n            if (((((\"data\" in cb)) && ((this.stream.getCursor() in cb.data))))) {\n                this.swapData();\n            }\n        ;\n        ;\n        },\n        saveEdit: function() {\n            if (!m.hasClass(this.root, \"fbPhotoSnowliftEditMode\")) {\n                return;\n            }\n        ;\n        ;\n            j.loadModules([\"PhotoInlineEditor\",\"Form\",], function(cb, db) {\n                var eb = cb.getInstance(this.getViewerConst());\n                ((eb && db.bootstrap(eb.getForm().controller)));\n            }.bind(this));\n        },\n        mouseLeaveListener: function(JSBNG__event) {\n            this.unhiliteAllTags();\n            this.reHilitePendingTag();\n        },\n        hilitePagerOnMouseMove: function(JSBNG__event) {\n            var cb = na.getEventPosition(JSBNG__event), db = na.getElementPosition(this.stage);\n            if (x.isRTL()) {\n                var eb = na.getElementDimensions(this.stage);\n                this.stagePagerPrev = ((((eb.x - ((cb.x - db.x)))) < bb.GOPREV_AREA));\n            }\n             else this.stagePagerPrev = ((((cb.x - db.x)) < bb.GOPREV_AREA));\n        ;\n        ;\n            m.conditionClass(this.prevPager, \"hilightPager\", this.stagePagerPrev);\n            m.conditionClass(this.nextPager, \"hilightPager\", !this.stagePagerPrev);\n            var fb, gb = JSBNG__event.getTarget();\n            if (((((!z.byClass(gb, \"snowliftOverlay\") && !z.byClass(gb, \"bottomBarActions\"))) && !z.byClass(gb, \"snowliftPager\")))) {\n                fb = bb.PAGER_FADE;\n            }\n        ;\n        ;\n            this.showPagers(fb);\n        },\n        showPagers: function(cb) {\n            JSBNG__clearTimeout(this.fadePagerTimer);\n            this.setStagePagersState(\"active\");\n            if (((typeof cb !== \"undefined\"))) {\n                this.fadePagerTimer = this.hidePagers.bind(this).defer(cb);\n            }\n        ;\n        ;\n        },\n        hidePagers: function() {\n            var cb = o.scry(this.getRoot(), \".fbPhotosPhotoActionsMenu\")[0];\n            if (cb) {\n                return;\n            }\n        ;\n        ;\n            JSBNG__clearTimeout(this.fadePagerTimer);\n            this.setStagePagersState(\"inactive\");\n        },\n        getTagger: function() {\n            if (!this.PhotoTagger) {\n                return null;\n            }\n        ;\n        ;\n            var cb = this.PhotoTagger.getInstance(aa.VIEWER_SNOWLIFT);\n            if (((!cb || !cb.tagHoverFacebox))) {\n                return null;\n            }\n        ;\n        ;\n            return cb;\n        },\n        hiliteAllBoxes: function() {\n            o.scry(this.stage, \"div.tagsWrapper div.faceBox\").forEach(function(cb) {\n                m.addClass(cb, \"otherActive\");\n            });\n        },\n        flashAllTags: function() {\n            var cb = this.stream.getCurrentImageData().info.fbid;\n            if (this.sessionPhotosHilited[cb]) {\n                return;\n            }\n        ;\n        ;\n            o.scry(this.stage, \"div.tagsWrapper div.tagBox\").forEach(function(db) {\n                m.addClass(db, \"hover\");\n            });\n            this.sessionPhotosHilited[cb] = true;\n            this.unhiliteTimer = this.unhiliteAllTags.bind(this).defer(2000, true);\n        },\n        unhiliteAllTags: function() {\n            JSBNG__clearTimeout(this.unhiliteTimer);\n            o.scry(this.stage, \"div.tagsWrapper div.hover\").forEach(function(db) {\n                m.removeClass(db, \"hover\");\n            });\n            if (this.hilitAllTagsAndBoxesOnHover) {\n                o.scry(this.stage, \"div.tagsWrapper div.otherActive\").forEach(function(db) {\n                    m.removeClass(db, \"otherActive\");\n                });\n            }\n        ;\n        ;\n            this.hilitedTag = null;\n            if (!m.hasClass(this.root, \"taggingMode\")) {\n                var cb = this.getTagger();\n                if (cb) {\n                    cb.hideTagger();\n                    cb.setCurrentFacebox(null);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        switchHilitedTags: function(cb, db) {\n            if (((this.switchTimer !== null))) {\n                JSBNG__clearTimeout(this.switchTimer);\n                this.switchTimer = null;\n            }\n        ;\n        ;\n            this.unhiliteAllTags();\n            if (this.hilitAllTagsAndBoxesOnHover) {\n                this.hiliteAllBoxes();\n            }\n        ;\n        ;\n            var eb = va(cb);\n            if (eb) {\n                this.hilitedTag = cb;\n                if (((!m.hasClass(this.root, \"taggingMode\") && ea.isFacebox(this.hilitedTag)))) {\n                    var fb = this.getTagger();\n                    if (fb) {\n                        m.addClass(eb, \"hover\");\n                        var gb = fb.getFacebox(cb);\n                        fb.setCurrentFacebox(gb);\n                        if (gb) {\n                            fb.addTagFromFacebox(gb);\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                }\n                 else m.addClass(eb, \"hover\");\n            ;\n            ;\n                if (((((m.hasClass(eb, \"tagBoxPending\") && !m.hasClass(eb, \"showPendingTagName\"))) && ((db === true))))) {\n                    o.scry(this.stage, \"div.tagsWrapper div.showPendingTagName\").forEach(function(hb) {\n                        m.removeClass(hb, \"showPendingTagName\");\n                    });\n                    m.addClass(eb, \"showPendingTagName\");\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n        },\n        reHilitePendingTag: function() {\n            var cb = va(this.hilitedTag);\n            if (((cb && m.hasClass(cb, \"showPendingTagName\")))) {\n                return;\n            }\n        ;\n        ;\n            var db = o.scry(this.stage, \"div.tagsWrapper div.showPendingTagName\")[0];\n            if (db) {\n                this.switchHilitedTags(db.id);\n            }\n        ;\n        ;\n        },\n        hiliteTagsOnMouseMove: function(JSBNG__event) {\n            if (((!this.stream.getCurrentExtraData() || this.getVideoOnStage()))) {\n                return;\n            }\n        ;\n        ;\n            if (((this.switchTimer !== null))) {\n                return;\n            }\n        ;\n        ;\n            var cb = JSBNG__event.getTarget();\n            if (((((((((((((z.byClass(cb, \"snowliftOverlay\") || z.byClass(cb, \"fbPhotoSnowliftTagApproval\"))) || z.byClass(cb, \"tagPointer\"))) || z.byClass(cb, \"arrow\"))) || z.byClass(cb, \"faceboxSuggestion\"))) || z.byClass(cb, \"typeaheadWrapper\"))) || z.byClass(cb, \"photoTagTypeahead\")))) {\n                return;\n            }\n        ;\n        ;\n            var db = z.byClass(cb, \"tagBoxPending\"), eb = false;\n            if (this.hilitedTag) {\n                var fb = va(this.hilitedTag);\n                eb = ((fb && m.hasClass(fb, \"tagBoxPending\")));\n            }\n        ;\n        ;\n            var gb = ((((!this.hilitedTag && db)) || ((!eb && db))));\n            if (gb) {\n                this.switchHilitedTags(db.id);\n                return;\n            }\n        ;\n        ;\n            if (((db && ((db.id == this.hilitedTag))))) {\n                return;\n            }\n        ;\n        ;\n            var hb = 250, ib = ea.absoluteToNormalizedPosition(this.image, na.getEventPosition(JSBNG__event));\n            if (this.currentTagHasPrecedence(ib)) {\n                return;\n            }\n        ;\n        ;\n            var jb = ea.getNearestBox(this.stream.getCurrentExtraData().tagRects, ib);\n            if (!jb) {\n                if (!eb) {\n                    this.unhiliteAllTags();\n                    this.reHilitePendingTag();\n                }\n            ;\n            ;\n                return;\n            }\n        ;\n        ;\n            var kb = null;\n            if (eb) {\n                var lb = {\n                };\n                lb[this.hilitedTag] = this.stream.getCurrentExtraData().tagRects[this.hilitedTag];\n                kb = ea.getNearestBox(lb, ib);\n            }\n        ;\n        ;\n            if (((((kb !== null)) && eb))) {\n                return;\n            }\n        ;\n        ;\n            if (((this.hilitedTag != jb))) {\n                if (eb) {\n                    this.switchTimer = this.switchHilitedTags.bind(this, jb).defer(hb);\n                }\n                 else {\n                    if (this.showHover) {\n                        if (!this.seenTags) {\n                            this.seenTags = [];\n                        }\n                    ;\n                    ;\n                        if (!this.seenTags[jb]) {\n                            ba.addFaceTagImpression();\n                            this.seenTags[jb] = true;\n                        }\n                    ;\n                    ;\n                    }\n                ;\n                ;\n                    this.switchHilitedTags(jb);\n                }\n            ;\n            }\n        ;\n        ;\n        },\n        currentTagHasPrecedence: function(cb) {\n            if (!this.hilitedTag) {\n                return false;\n            }\n        ;\n        ;\n            if (((this.stream.getCurrentExtraData().tagRects[this.hilitedTag] === undefined))) {\n                this.hilitedTag = null;\n                return false;\n            }\n        ;\n        ;\n            var db = this.stream.getCurrentExtraData().tagRects[this.hilitedTag], eb = new ga(((db.t + ((db.h() / 2)))), db.r, ((db.b + ((ea.isFacebox(this.hilitedTag) ? 10 : 0)))), db.l, db.domain);\n            return eb.contains(cb);\n        },\n        getVideoOnStage: function() {\n            var cb = ((this.stream && this.stream.getCurrentImageData()));\n            return ((cb && cb.video));\n        },\n        shouldPageOnAction: function(cb, db) {\n            if (((!this.isOpen || this.isShowingLikePhotoConfirmation))) {\n                return false;\n            }\n        ;\n        ;\n            var eb = ((o.isNode(db) && ((((z.byClass(db, \"snowliftPager\") || z.byClass(db, \"stagePagers\"))) || z.byClass(db, \"pivotPageColumn\"))))), fb = ((o.isNode(db) && z.byClass(db, \"stage\"))), gb = m.hasClass(db, \"faceBox\"), hb = ((((((((((((fb && m.hasClass(this.root, \"taggingMode\"))) || z.byClass(db, \"tagBoxPending\"))) || z.byClass(db, \"tagBoxPendingResponse\"))) || z.byClass(db, \"fbPhotoTagApprovalBox\"))) || z.byClass(db, \"tag\"))) || ((this.cropper && this.cropper.croppingMode))));\n            if (hb) {\n                return false;\n            }\n        ;\n        ;\n            return ((((((((((cb == u.LEFT)) || ((cb == u.RIGHT)))) || ((!m.hasClass(this.root, \"taggingMode\") && gb)))) || eb)) || fb));\n        },\n        keyHandler: function(cb, JSBNG__event) {\n            if (((JSBNG__event.getModifiers().any || ((v.getTopmostLayer() !== this.spotlight))))) {\n                return true;\n            }\n        ;\n        ;\n            switch (q.getKeyCode(JSBNG__event)) {\n              case u.LEFT:\n            \n              case u.RIGHT:\n                if (!this.pagersOnKeyboardNav) {\n                    this.showPagers(bb.PAGER_FADE);\n                }\n            ;\n            ;\n                this.pageListener(JSBNG__event);\n                return false;\n              case 70:\n                return this.toggleFullScreen();\n              case 76:\n                return this.likePhotoWithKey();\n            };\n        ;\n        },\n        pageListener: function(JSBNG__event) {\n            var cb = q.getKeyCode(JSBNG__event), db = JSBNG__event.getTarget();\n            if (!this.shouldPageOnAction(cb, db)) {\n                return;\n            }\n        ;\n        ;\n            var eb = 0;\n            if (((cb == u.RIGHT))) {\n                eb = 1;\n                ba.setPagingAction(\"key_right\");\n            }\n             else if (((cb == u.LEFT))) {\n                eb = -1;\n                ba.setPagingAction(\"key_left\");\n            }\n             else if (z.byClass(db, \"next\")) {\n                eb = 1;\n                ba.setPagingAction(\"click_next\");\n            }\n             else if (z.byClass(db, \"prev\")) {\n                eb = -1;\n                ba.setPagingAction(\"click_prev\");\n            }\n             else if (!this.stagePagerPrev) {\n                eb = 1;\n                ba.setPagingAction(\"click_stage\");\n            }\n             else {\n                eb = -1;\n                ba.setPagingAction(\"click_stage_back\");\n            }\n            \n            \n            \n            \n        ;\n        ;\n            var fb = o.scry(this.ufiForm, \"input.mentionsHidden\"), gb = false;\n            for (var hb = 0; ((hb < fb.length)); hb++) {\n                if (!s.isEmpty(fb[hb])) {\n                    gb = true;\n                    break;\n                }\n            ;\n            ;\n            };\n        ;\n            if (((((gb || m.hasClass(this.root, \"fbPhotoSnowliftEditMode\"))) || ((this.cropper && this.cropper.croppingMode))))) {\n                this.warnLeavePage(eb);\n            }\n             else {\n                this.page(eb, ((ma.chrome() && r.isFullScreen())));\n                ab(\"snowlift\", db, JSBNG__event).uai(ba.pagingAction);\n            }\n        ;\n        ;\n        },\n        warnLeavePage: function(cb) {\n            new n().setTitle(\"Are you sure you want to leave this page?\").setBody(\"You have unsaved changes that will be lost if you leave the page.\").setButtons([{\n                JSBNG__name: \"leave_page\",\n                label: \"Leave this Page\",\n                handler: this.page.bind(this, cb)\n            },{\n                JSBNG__name: \"continue_editing\",\n                label: \"Stay on this Page\",\n                className: \"inputaux\"\n            },]).setModal(true).show();\n        },\n        page: function(cb, db) {\n            if (!this.stream.isValidMovement(cb)) {\n                this.showPagers(bb.PAGER_FADE);\n                return;\n            }\n        ;\n        ;\n            this.lastPage = JSBNG__Date.now();\n            this.unhiliteAllTags();\n            this.seenTags = [];\n            var eb = this.getVideoOnStage();\n            if (eb) {\n                this.switchVideo(eb, false);\n            }\n        ;\n        ;\n            if (((this.pivots && this.pivots.page(cb)))) {\n                return;\n            }\n        ;\n        ;\n            g.inform(\"PhotoSnowlift.PAGE\");\n            ja.hide();\n            this.recacheData();\n            this.stream.moveCursor(cb);\n            m.hide(this.image);\n            if (this.stream.errorInCurrent()) {\n                this.setLoadingState(bb.STATE_HTML, true);\n                m.show(this.errorBox);\n                return;\n            }\n        ;\n        ;\n            var fb = this.stream.getCurrentImageData();\n            if (fb) {\n                var gb = this.getImageURL(fb);\n                if (gb) {\n                    this.switchImage(gb, null, true);\n                }\n                 else if (fb.video) {\n                    this.switchVideo(fb.video, true);\n                }\n                \n            ;\n            ;\n                if (!db) {\n                    this.replaceUrl = true;\n                    wa(fb.info.permalink);\n                }\n            ;\n            ;\n                this.setLoadingState(bb.STATE_IMAGE_DATA, false);\n            }\n             else {\n                this.setLoadingState(bb.STATE_IMAGE_PIXELS, true);\n                this.setLoadingState(bb.STATE_IMAGE_DATA, true);\n            }\n        ;\n        ;\n            if (this.stream.getCurrentHtml()) {\n                this.swapData();\n            }\n             else this.setLoadingState(bb.STATE_HTML, true);\n        ;\n        ;\n            this.disableAds = this.disableAdsForSession;\n            this.loadAds();\n            if (this.cropper) {\n                this.cropper.resetPhoto();\n            }\n        ;\n        ;\n        },\n        logImpressionDetailsForPhoto: function() {\n            var cb = [].concat(o.scry(oa(\"fbPhotoSnowliftTagList\"), \"input.photoImpressionDetails\"), o.scry(oa(\"fbPhotoSnowliftFeedback\"), \"input.photoImpressionDetails\"));\n            if (((cb.length === 0))) {\n                return;\n            }\n        ;\n        ;\n            var db = {\n            };\n            for (var eb = 0; ((eb < cb.length)); eb++) {\n                db[cb[eb].JSBNG__name] = cb[eb].value;\n            ;\n            };\n        ;\n            if (this.getVideoOnStage()) {\n                db.width = 0;\n                db.height = 0;\n            }\n             else {\n                var fb = this.getImageDimensions(this.stream.getCurrentImageData());\n                db.width = fb.x;\n                db.height = fb.y;\n            }\n        ;\n        ;\n            ba.addDetailData(this.stream.getCursor(), db);\n            ca.setIsLogAdData(true);\n        },\n        loadAds: function() {\n            if (this.disableAds) {\n                return;\n            }\n        ;\n        ;\n            ca.loadAdsFromUserActivity();\n        },\n        transitionHandler: function(cb) {\n            if (((((((cb.getQueryData().closeTheater || cb.getQueryData().permPage)) || cb.getQueryData().makeprofile)) || this.returningToStart))) {\n                if (this.isOpen) {\n                    this.close();\n                }\n            ;\n            ;\n                this.transitionHandlerRegistered = false;\n                return false;\n            }\n        ;\n        ;\n            if (this.replaceUrl) {\n                this.replaceUrl = false;\n                this._uriStack.push(cb.getQualifiedURI().toString());\n                y.transitionComplete(true);\n                return true;\n            }\n        ;\n        ;\n            var db = this._uriStack.length;\n            if (((((db >= 2)) && ((this._uriStack[((db - 2))] == cb.getQualifiedURI().toString()))))) {\n                this._uriStack.pop();\n            }\n        ;\n        ;\n            var eb = this.stream.getCursorForURI(cb.getUnqualifiedURI().toString());\n            if (eb) {\n                var fb = this.stream.getRelativeMovement(eb);\n                this.page(fb, true);\n                y.transitionComplete(false);\n                return true;\n            }\n        ;\n        ;\n            if (this.isOpen) {\n                y.transitionComplete(true);\n                this.close();\n                return true;\n            }\n        ;\n        ;\n            this.transitionHandlerRegistered = false;\n            return false;\n        },\n        recacheData: function() {\n            if (!this.loadingStates.html) {\n                var cb = this.stream.getCurrentHtml();\n                {\n                    var fin297keys = ((window.top.JSBNG_Replay.forInKeys)((cb))), fin297i = (0);\n                    var db;\n                    for (; (fin297i < fin297keys.length); (fin297i++)) {\n                        ((db) = (fin297keys[fin297i]));\n                        {\n                            cb[db] = sa(oa(db).childNodes);\n                            o.empty(oa(db));\n                        };\n                    };\n                };\n            ;\n            }\n        ;\n        ;\n        },\n        reloadIfTimeout: function() {\n            if (!t.hasLoaded(this.image)) {\n                var cb = this.makeNewImage(this.image.src, true);\n                q.listen(cb, \"load\", this.useImage.bind(this, cb, null, true));\n            }\n        ;\n        ;\n        },\n        useImage: function(cb, db, eb) {\n            if (((eb && t.hasLoaded(this.image)))) {\n                return;\n            }\n        ;\n        ;\n            o.replace(this.image, cb);\n            this.image = cb;\n            g.inform(\"Amoeba/instrument\", [this.image,\"image\",], g.BEHAVIOR_PERSISTENT);\n            this.adjustStageSize(db);\n        },\n        makeNewImage: function(cb, db) {\n            if (this.imageLoadingTimer) {\n                JSBNG__clearTimeout(this.imageLoadingTimer);\n                this.imageLoadingTimer = null;\n            }\n             else if (!db) {\n                this.imageRefreshTimer = JSBNG__setTimeout(this.reloadIfTimeout.bind(this), bb.LOADING_TIMEOUT);\n            }\n            \n        ;\n        ;\n            var eb = o.create(\"img\", {\n                className: \"spotlight\",\n                alt: \"\"\n            });\n            eb.setAttribute(\"aria-describedby\", \"fbPhotosSnowliftCaption\");\n            eb.setAttribute(\"aria-busy\", \"true\");\n            q.listen(eb, \"load\", pa(function() {\n                JSBNG__clearTimeout(this.imageRefreshTimer);\n                this.image.setAttribute(\"aria-busy\", \"false\");\n                this.setLoadingState(this.STATE_IMAGE_PIXELS, false);\n                (function() {\n                    if (this.isOpen) {\n                        this.adjustStageSize();\n                        this.adjustForNewData();\n                    }\n                ;\n                ;\n                }).bind(this).defer();\n            }.bind(this), \"photo_theater\"));\n            eb.src = cb;\n            return eb;\n        },\n        switchImage: function(cb, db, eb) {\n            m.hide(this.image);\n            m.hide(this.errorBox);\n            this.setLoadingState(this.STATE_IMAGE_PIXELS, true);\n            var fb = ((this.stream && this.stream.getCurrentImageData()));\n            if (fb) {\n                ba.addPhotoView(fb.info, this.shouldShowHiRes(fb), ((this.fullscreen && r.isFullScreen())));\n            }\n        ;\n        ;\n            this.useImage(this.makeNewImage(cb, false), db, false);\n            if (eb) {\n                this.stream.preloadImages(this.shouldShowHiRes(fb));\n            }\n        ;\n        ;\n            if (((this.cropper && this.cropper.croppingMode))) {\n                this.cropper.resetPhoto();\n            }\n        ;\n        ;\n            g.inform(\"PhotoSnowlift.SWITCH_IMAGE\");\n        },\n        switchVideo: function(cb, db) {\n            var eb = ((\"swf_\" + cb));\n            if (db) {\n                m.addClass(this.stageWrapper, \"showVideo\");\n                var fb = o.create(\"div\", {\n                    className: \"videoStageContainer\"\n                });\n                o.appendContent(this.videoStage, fb);\n                fb.id = cb;\n                if (((window[eb] && !va(eb)))) {\n                    window[eb].write(cb);\n                }\n            ;\n            ;\n                var gb = ((\"video_warning_\" + cb)), hb = va(cb);\n                if (!this.videoWarnings) {\n                    this.videoWarnings = [];\n                }\n            ;\n            ;\n                if (((hb && this.videoWarnings[gb]))) {\n                    o.setContent(hb, this.videoWarnings[gb]);\n                }\n            ;\n            ;\n                this.adjustStageSizeForVideo.bind(this, eb).defer();\n            }\n             else {\n                ((window[eb] && window[eb].addVariable(\"video_autoplay\", 0)));\n                ((this.videoLoadTimer && JSBNG__clearTimeout(this.videoLoadTimer)));\n                o.empty(this.videoStage);\n                m.removeClass(this.stageWrapper, \"showVideo\");\n            }\n        ;\n        ;\n        },\n        checkVideoStatus: function(cb) {\n            if (this.videoLoadTimer) {\n                JSBNG__clearTimeout(this.videoLoadTimer);\n            }\n        ;\n        ;\n            var db = this.getVideoOnStage();\n            if (!db) {\n                return;\n            }\n             else {\n                var eb = ((\"swf_\" + db));\n                if (((cb !== eb))) {\n                    return;\n                }\n            ;\n            ;\n                this.adjustStageSizeForVideo(cb);\n            }\n        ;\n        ;\n        },\n        adjustStageSizeForVideo: function(cb) {\n            var db = va(cb);\n            if (!db) {\n                this.videoLoadTimer = JSBNG__setTimeout(this.checkVideoStatus.bind(this, cb), 200);\n            }\n             else this.adjustStageSize(new na(db.width, db.height));\n        ;\n        ;\n        },\n        handleServerError: function(cb, db) {\n            o.setContent(this.errorBox, cb);\n            this.storeFromData(db);\n        },\n        swapData: function() {\n            var cb, db = this.stream.getCurrentHtml();\n            if (db) {\n                this.setLoadingState(bb.STATE_HTML, false);\n                {\n                    var fin298keys = ((window.top.JSBNG_Replay.forInKeys)((db))), fin298i = (0);\n                    var eb;\n                    for (; (fin298i < fin298keys.length); (fin298i++)) {\n                        ((eb) = (fin298keys[fin298i]));\n                        {\n                            cb = va(eb);\n                            ((cb && o.setContent(cb, db[eb])));\n                        };\n                    };\n                };\n            ;\n                g.inform(\"PhotoSnowlift.DATA_CHANGE\", this.stream.getCurrentImageData().info, g.BEHAVIOR_STATE);\n                if (this.stream.getCurrentExtraData()) {\n                    g.inform(\"PhotoSnowlift.EXTRA_DATA_CHANGE\", this.stream.getCurrentExtraData(), g.BEHAVIOR_STATE);\n                }\n            ;\n            ;\n            }\n        ;\n        ;\n            this.adjustScroller();\n            this.adjustStageSize();\n            this.scrollableArea.showScrollbar(false);\n            this.adjustForNewData();\n            this.logImpressionDetailsForPhoto();\n            if (this.showFlashTags) {\n                this.flashAllTags();\n            }\n        ;\n        ;\n        },\n        updateTotalCount: function(cb, db, eb) {\n            var fb = this.stream.getCurrentHtml();\n            if (fb) {\n                var gb = oa(\"fbPhotoSnowliftPositionAndCount\");\n                o.replace(gb, eb);\n                gb = eb;\n                m.show(gb);\n                var hb = \"fbPhotoSnowliftPositionAndCount\";\n                fb[hb] = sa(gb.childNodes);\n            }\n        ;\n        ;\n            this.stream.setTotalCount(cb);\n            this.stream.setFirstCursorIndex(db);\n        },\n        addPhotoFbids: function(cb, db, eb, fb) {\n            if (((((fb && this.sessionID)) && ((fb != this.sessionID))))) {\n                return;\n            }\n        ;\n        ;\n            var gb = ((this.stream.getCursor() === null));\n            this.stream.attachToFbidsList(cb, db, eb);\n            if (((eb && gb))) {\n                this.page(0, true);\n            }\n        ;\n        ;\n            if (((this.pivots && eb))) {\n                this.pivots.setCycleCount(this.stream.calculateDistance(this.stream.getCursor(), this.stream.firstCursor));\n            }\n        ;\n        ;\n            if (((!this.pagersShown && this.stream.canPage()))) {\n                this.setStagePagersState(\"ready\");\n            }\n        ;\n        ;\n        },\n        attachTagger: function(cb) {\n            o.appendContent(this.stageActions, cb);\n        },\n        storeFromData: function(cb) {\n            if (!this.isOpen) {\n                return;\n            }\n        ;\n        ;\n            if (((((cb.ssid && this.sessionID)) && ((this.sessionID != cb.ssid))))) {\n                return;\n            }\n        ;\n        ;\n            var db = this.stream.storeToCache(cb);\n            if (((\"error\" in db))) {\n                this.checkState(bb.STATE_ERROR);\n                return;\n            }\n        ;\n        ;\n            if (((\"init\" in db))) {\n                this.initDataFetched(db.init);\n                if (this.openExplicitly) {\n                    this.replaceUrl = true;\n                    wa(this.stream.getCurrentImageData().info.permalink);\n                }\n            ;\n            ;\n                if (this.stream.canPage()) {\n                    this.setStagePagersState(\"ready\");\n                }\n            ;\n            ;\n                ((this.ua && this.ua.add_event(\"ufi\")));\n            }\n        ;\n        ;\n            if (((\"image\" in db))) {\n                this.checkState(bb.STATE_IMAGE_DATA);\n            }\n        ;\n        ;\n            if (((\"data\" in db))) {\n                this.checkState(bb.STATE_HTML);\n            }\n        ;\n        ;\n        },\n        setStagePagersState: function(cb) {\n            switch (cb) {\n              case \"ready\":\n                m.addClass(this.root, \"pagingReady\");\n                this.pagersShown = true;\n                ((this.ua && this.ua.add_event(\"arrows\")));\n                return;\n              case \"active\":\n                m.addClass(this.root, \"pagingActivated\");\n                return;\n              case \"inactive\":\n                m.removeClass(this.root, \"pagingActivated\");\n                return;\n              case \"disabled\":\n            \n              case \"reset\":\n                m.removeClass(this.root, \"pagingReady\");\n                return;\n            };\n        ;\n        },\n        deletePhoto: function(cb) {\n            this.closeRefresh();\n        },\n        closeRefresh: function() {\n            this.refreshOnClose = true;\n            this.closeHandler();\n        },\n        onHiliteTag: function(cb, db) {\n            if (((db.version != aa.VIEWER_SNOWLIFT))) {\n                return;\n            }\n        ;\n        ;\n            var eb = db.tag;\n            if (eb) {\n                this.switchHilitedTags(eb, true);\n            }\n        ;\n        ;\n        },\n        onUpdateTagBox: function(cb, db) {\n            if (((db.version == aa.VIEWER_SNOWLIFT))) {\n                this.updateTagBox(db.id, db.approve);\n            }\n        ;\n        ;\n        }\n    });\n    e.exports = bb;\n});\n__d(\"Spotlight\", [\"JSXDOM\",\"Arbiter\",\"ArbiterMixin\",\"Class\",\"DOM\",\"Layer\",\"LayerAutoFocus\",\"LayerTabIsolation\",\"ModalLayer\",\"Vector\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n    var g = b(\"JSXDOM\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"Class\"), k = b(\"DOM\"), l = b(\"Layer\"), m = b(\"LayerAutoFocus\"), n = b(\"LayerTabIsolation\"), o = b(\"ModalLayer\"), p = b(\"Vector\"), q = b(\"copyProperties\"), r = b(\"csx\"), s = b(\"cx\");\n    function t(v, w) {\n        this.parent.construct(this, v, w);\n        this.stageMinSize = new p(0, 0);\n        this.stagePadding = new p(0, 0);\n    };\n;\n    j.extend(t, l);\n    q(t.prototype, i, {\n        stageMinSize: null,\n        stagePadding: null,\n        _buildWrapper: function(v, w) {\n            return (g.div({\n                className: \"_n8 _3qx\"\n            }, g.div({\n                className: \"_n9\"\n            }, w)));\n        },\n        _getDefaultBehaviors: function() {\n            return this.parent._getDefaultBehaviors().concat([u,m,n,o,]);\n        },\n        getContentRoot: function() {\n            if (!this._content) {\n                this._content = k.JSBNG__find(this.getRoot(), \"div._n3\");\n            }\n        ;\n        ;\n            return this._content;\n        },\n        configure: function(v) {\n            if (v.stageMinSize) {\n                this.stageMinSize = v.stageMinSize;\n            }\n        ;\n        ;\n            if (v.stagePadding) {\n                this.stagePadding = v.stagePadding;\n            }\n        ;\n        ;\n        },\n        onContentLoaded: function() {\n            this.inform(\"content-load\");\n        },\n        updatePermalink: function(v) {\n            this.inform(\"permalinkchange\", v);\n        }\n    });\n    function u(v) {\n        this._layer = v;\n    };\n;\n    q(u.prototype, {\n        _subscription: null,\n        enable: function() {\n            this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(v, w) {\n                if (((v === \"show\"))) {\n                    h.inform(\"layer_shown\", {\n                        type: \"Spotlight\"\n                    });\n                }\n                 else h.inform(\"layer_hidden\", {\n                    type: \"Spotlight\"\n                });\n            ;\n            ;\n            });\n        },\n        disable: function() {\n            this._subscription.unsubscribe();\n            this._subscription = null;\n        }\n    });\n    e.exports = t;\n});");
36741 // 20923
36742 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o37,false,"http://jsbngssl.fbstatic-a.akamaihd.net/rsrc.php/v2/yo/r/0gMMCDzw75A.js",o58);
36743 // undefined
36744 o37 = null;
36745 // undefined
36746 o58 = null;
36747 // 21123
36748 JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_457[0](22279.18699994916);
36749 // 21196
36750 o25.scrollTop = 1479;
36751 // undefined
36752 o25 = null;
36753 // 21135
36754 JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_457[0](22279.18699994916);
36755 // 21506
36756 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36757 // 21637
36758 JSBNG_Replay.s6de57b149b09c494ec606f82771caf93a5a215db_133[0](false);
36759 // 22096
36760 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36761 // 22315
36762 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36763 // 22388
36764 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36765 // 22399
36766 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36767 // 22805
36768 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36769 // 23433
36770 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36771 // 25657
36772 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36773 // 26046
36774 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36775 // 31464
36776 JSBNG_Replay.s8ead2a036e92884168d3fc8f84e49d83e5bb9b50_757[0](false);
36777 // 33004
36778 JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_226[0](o8);
36779 // undefined
36780 o8 = null;
36781 // 33023
36782 cb(); return null; }
36783 finalize(); })();